Programiranje u C++-u - pitanja i odgovori izdvojena tema

poruka: 7.285
|
čitano: 1.712.063
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
12 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Kod kojeg si napisao kad se malo ljepše formatira izgleda ovako:

 

    for(int i=0; i<5; i++){
        zbirclanova=zbirclanova+niz[i];
        float artimeticka=zbirclanova/5.0;
        if( niz[i]%2==0 && niz[i] > artimeticka ){
            cout <<niz[i]<<endl;
        }
    }

Sad se bolje vidi da petlja koja računa sumu zahvaća i kod koji određuje aritmetičku sredinu i ispisuje rezultat. Treba prvo izračunati sumu pa teko onda nastaviti dalje:

    for(int i=0; i<5; i++){
        zbirclanova=zbirclanova+niz[i];
    }
    float artimeticka=zbirclanova/5.0;
    if( niz[i]%2==0 && niz[i] > artimeticka ){
        cout <<niz[i]<<endl;
    }

Uvijek je dobro pravilno identirati (uvlačiti) kod, čak i kad te jezik na to ne prisiljava. Significant whitespace FTW.

17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
iTrako kaže...

Ne kontam?

Pogledaj kako si napravio  drugu petlju:

 

for(int i=0; i<5; i++){

  zbirclanova=zbirclanova+niz[i];

 

  float artimeticka=zbirclanova/5.0;

 

  if( niz[i]%2==0 && niz[i] > artimeticka )

   {

   cout <<niz[i]<<endl;

   }   

  }

 

To tako ne ide, kod svake iteracije petlje imaš drugi zbroj članova i drugu aritmetičku sredinu koju u istoj toj petlji provjeravaš, dakle ne provjeravaš točnu aritmetičku sredinu za sve članove niza osim posljednjeg.

Dakle, u prvoj petlji kojom unosiš članove niza izračunaj zbroj članova, a onda izvan petlje izračunaj aritmetičku sredinu, a u ovoj drugoj petlji izvrši samo ovu if provjeru iz gornjeg koda.

 

To bi bilo objašnjenje onog spartanskog da petlja zahvaća previše koda{#}

 

 

Poruka je uređivana zadnji put ned 10.2.2013 12:27 (Floki).
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Skonto, i popravio radi sad. Hvala vam momci :)


Inače ovo su samo neki školski programi, to učim samo "zbog škole", inače ja radim ui i web dizajn tako da sam low u C++ :S

 

ps. to pisanje koda je naprosto nevjerovatno glupo u devc++ kojeg koristimo, stisneš enter ode kursor na pola ekrana :/ 

 
0 0 hvala 0
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
iTrako kaže...

Skonto, i popravio radi sad. Hvala vam momci :)

Inače ovo su samo neki školski programi, to učim samo "zbog škole", inače ja radim ui i web dizajn tako da sam low u C++ :S

ps. to pisanje koda je naprosto nevjerovatno glupo u devc++ kojeg koristimo, stisneš enter ode kursor na pola ekrana :/ 

Vjerovao ili ne, malo znanja iz programiranja ti moze samo pomoci oko dizajna, u najmanju ruku da shvatis programere koliko ce im nesto sto si dizajnirao biti lako/tesko implementirati.

Sto se pisanja koda tice, mozes ga pisati u bilo cemu, pa makar to bio obican Notepad.

The programmer is fighting against the two most destructive forces in the universe: entropy and human stupidity. --Damian Conway
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
1domagoj1 kaže...
iTrako kaže...

Skonto, i popravio radi sad. Hvala vam momci :)

Inače ovo su samo neki školski programi, to učim samo "zbog škole", inače ja radim ui i web dizajn tako da sam low u C++ :S

ps. to pisanje koda je naprosto nevjerovatno glupo u devc++ kojeg koristimo, stisneš enter ode kursor na pola ekrana :/ 

Vjerovao ili ne, malo znanja iz programiranja ti moze samo pomoci oko dizajna, u najmanju ruku da shvatis programere koliko ce im nesto sto si dizajnirao biti lako/tesko implementirati.

Sto se pisanja koda tice, mozes ga pisati u bilo cemu, pa makar to bio obican Notepad.

 

Znam, radim sa osnovnim ono HTML, css, uskoro ću možda počet učit osnove PHPa :D

13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Osnovno znanje iz programiranja će ti dobro doći u učenju PHP-a.

12 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Nisam znao gdje da ovo pitam pa evo budem ovdje. Dakle frend se počo sve više zanimat za kompove i tako to i sad on mene jedan dan vidio da prčkam s programiranjem.Moli on mene da mu pokažem neš a meni se neda i stalno mu govorim da je 21.stolječe i da pogleda malo po internetu- uputio sam ga i forum. Sad dođe on do mene za par dana i počne se žalit kao om to niš nekuži itd... Pa evo zamolio me da pitam ako neko može otvorit temu sa programiranjem al da se govori ono baš o osnovama. Što je programiranje,programski jezici, kako se pišu i kud se pišu itd...

 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Treba njega uputiti na knjigu, a za ostale nejasnoće neka pita ovdje na forumu na temama koje su već otvorene.

0xBADC0DE
12 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori
Molim za pomoć, znači mučim se sa zadatkom 2,3 dana ne mogu skontati, ili sam toliko glup ili nemam potrebno znanje ili je stvarno pretežak.
Zadatak glasi ovako:
Napišite program, poštujući sve faze procesa programiranja, za šifriranje i dešifriranje unesenog prirodnog broja (ne većeg 1 000 000). Uneseni broj šifrirajte tako da svaku drugu znamenku broja zamijenite s vrijednošću (znamenka+4)%3. 
Za šifriranje upotrijebite funkciju : int sifriranje (int);
a za dešifriranje upotrijebite funkciju: int desifriranje (int);
Eh znači uradim ja šifriranje ali jednostavno dešifriranje nemoguće.Nemate pojma kako bih bio zahvalan da mi samo date neki hint kako, šta?
Evo šifriranje (nadam se da je dobro):
int sifriranje(int broj)
{
 int i=1;
 int ost,znamenka_m=0,znamenka_n=0;
 while(broj>0)
 {
 
 ost=broj%10;
 
 if(i%2==0)
 {
 znamenka_m+=((ost+4)%3)*pow(10,i-1);
 }
 else
 {
 znamenka_n+=ost*pow(10,i-1);
 }
 broj/=10;
 i++;
 }
 return (znamenka_m+znamenka_n);
}
 
0 0 hvala 0
12 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Molio bih one koji imaju kod za rad sa velikim brojevima koji omogućava rad sa aritmetičke operacije naročito mod operacijom i operacije poređenja.Hvala

 
0 0 hvala 0
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
nerko111 kaže...

Molio bih one koji imaju kod za rad sa velikim brojevima koji omogućava rad sa aritmetičke operacije naročito mod operacijom i operacije poređenja.Hvala

http://bit.ly/Z5gqZT

The programmer is fighting against the two most destructive forces in the universe: entropy and human stupidity. --Damian Conway
12 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
TAPTAP12 kaže...
Molim za pomoć, znači mučim se sa zadatkom 2,3 dana ne mogu skontati, ili sam toliko glup ili nemam potrebno znanje ili je stvarno pretežak.
Zadatak glasi ovako:
Napišite program, poštujući sve faze procesa programiranja, za šifriranje i dešifriranje unesenog prirodnog broja (ne većeg 1 000 000). Uneseni broj šifrirajte tako da svaku drugu znamenku broja zamijenite s vrijednošću (znamenka+4)%3. 
Za šifriranje upotrijebite funkciju : int sifriranje (int);
a za dešifriranje upotrijebite funkciju: int desifriranje (int);
Eh znači uradim ja šifriranje ali jednostavno dešifriranje nemoguće.Nemate pojma kako bih bio zahvalan da mi samo date neki hint kako, šta?

Dešifriranje je neizvedivo jer opisana funkcija nije injekcija, tj. može generirati isti rezultat za dva različita argumenta. Na primjer:

 

sifriranje(10) = 11
sifriranje(13) = 11
sifriranje(16) = 11
sifriranje(19) = 11

 

Očito nije moguće jednoznačno dešifrirati broj 11. U najboljem slučaju možeš ispisati sve potencijalne kandidate: (10, 13, 16, 19)

12 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Pa da to sam i ja skužio da različite brojeve šifrira u isti...ali mislim da nije baš dobro riješenje da izbacim potencijalne brojeve (ne definisano je)....ja sam razmišlja još da napišem onaj broj koji je unesen predhodno tj da u funkciji desifriranje jednostavno izbaci onaj broj koji je trebalo šifrirati,,,u izvršavanju programa to se ne bi primjetilo ali da li je to pravilno, msm očigledno da nije čim se traži dešifriranje šifriranog broja.....svaki prijedlog je dobro došao.

17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
TAPTAP12 kaže...

Pa da to sam i ja skužio da različite brojeve šifrira u isti...ali mislim da nije baš dobro riješenje da izbacim potencijalne brojeve (ne definisano je)....ja sam razmišlja još da napišem onaj broj koji je unesen predhodno tj da u funkciji desifriranje jednostavno izbaci onaj broj koji je trebalo šifrirati,,,u izvršavanju programa to se ne bi primjetilo ali da li je to pravilno, msm očigledno da nije čim se traži dešifriranje šifriranog broja.....svaki prijedlog je dobro došao.

Gle, ako funkcija za sifriranje nije injekcija, onda ona ne valja i gotovo. Promijeni nacin kodiranja broja ili ako ti je tako profesor zadao, javi mu se i reci da f-ja nije injekcija i da ne valja za sifriranje.

The programmer is fighting against the two most destructive forces in the universe: entropy and human stupidity. --Damian Conway
12 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
1domagoj1 kaže...
TAPTAP12 kaže...

Pa da to sam i ja skužio da različite brojeve šifrira u isti...ali mislim da nije baš dobro riješenje da izbacim potencijalne brojeve (ne definisano je)....ja sam razmišlja još da napišem onaj broj koji je unesen predhodno tj da u funkciji desifriranje jednostavno izbaci onaj broj koji je trebalo šifrirati,,,u izvršavanju programa to se ne bi primjetilo ali da li je to pravilno, msm očigledno da nije čim se traži dešifriranje šifriranog broja.....svaki prijedlog je dobro došao.

Gle, ako funkcija za sifriranje nije injekcija, onda ona ne valja i gotovo. Promijeni nacin kodiranja broja ili ako ti je tako profesor zadao, javi mu se i reci da f-ja nije injekcija i da ne valja za sifriranje.

A čuj razumijem ja vas, ali sumnjam da je profa u krivu jer je davao slične zadatke, tipa šifriraj (znamenka+1)%5 (također različite brojeve šifrira pod isti).....a nisam vidio riješenja jer su ovo zadatci za zadaću....a ako vi ovdje kažete da ne valja onda ja ne znam u koju crkvu idem da se molim :D...

17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
TAPTAP12 kaže...

A čuj razumijem ja vas, ali sumnjam da je profa u krivu jer je davao slične zadatke, tipa šifriraj (znamenka+1)%5 (također različite brojeve šifrira pod isti).....a nisam vidio riješenja jer su ovo zadatci za zadaću....a ako vi ovdje kažete da ne valja onda ja ne znam u koju crkvu idem da se molim :D...

Ako si ti dobro implementirao u kodu (ne znam, nisam provjeravao kod), a ne radi, onda se javi i to reci profesoru. Reci mu kratko i jasno da to ne valja. Sto mislis, sto bi se u ratu dogodilo da recimo sifriraju poruku "NE napadaj koordinate x,y tamo su nasi", a ovima se desifriralo "NAPADNI koordinate x, y tamo nema nasih"?

 

Ili jednostavno implemetiraj ovakvu kakva je, pa ispisi sve moguce rezultate. Ali velim ti, javi se profesoru (NE grize sigurno!), reci mu kako stvari stoje i pitaj ga sto ti je ciniti, tako ces najbolje znati kako i sto dalje.

The programmer is fighting against the two most destructive forces in the universe: entropy and human stupidity. --Damian Conway
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Ja bi isto volio viditi rješenje, ne vidim način da dešifrram broj 11 bez još jednog podatka, koliko dijeljenja je bilo prije ostatka.

 
0 0 hvala 0
12 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
1domagoj1 kaže...
TAPTAP12 kaže...

A čuj razumijem ja vas, ali sumnjam da je profa u krivu jer je davao slične zadatke, tipa šifriraj (znamenka+1)%5 (također različite brojeve šifrira pod isti).....a nisam vidio riješenja jer su ovo zadatci za zadaću....a ako vi ovdje kažete da ne valja onda ja ne znam u koju crkvu idem da se molim :D...

Ako si ti dobro implementirao u kodu (ne znam, nisam provjeravao kod), a ne radi, onda se javi i to reci profesoru. Reci mu kratko i jasno da to ne valja. Sto mislis, sto bi se u ratu dogodilo da recimo sifriraju poruku "NE napadaj koordinate x,y tamo su nasi", a ovima se desifriralo "NAPADNI koordinate x, y tamo nema nasih"?

 

Ili jednostavno implemetiraj ovakvu kakva je, pa ispisi sve moguce rezultate. Ali velim ti, javi se profesoru (NE grize sigurno!), reci mu kako stvari stoje i pitaj ga sto ti je ciniti, tako ces najbolje znati kako i sto dalje.

pa da tako je to...a naravno da ću se javiti profi ali mi neće dati rješenje jer su ovo zadatci za zadaću, i msm da mu je napunjen inbox mojim e-mailovima :D , ajd u svakom slučaju hvala....i ja se slažem s vama, budem ispisao moguća riješenja (ako niš profa ne kaže)

17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Ona tvoja funkcija kod šifriranja daje za broj 16 daje 26, ne čini se u redu, provjeri , trebalo bi dati 11

 
0 0 hvala 0
12 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Floki kaže...

Ona tvoja funkcija kod šifriranja daje za broj 16 daje 26, ne čini se u redu, provjeri , trebalo bi dati 11

Pošto nije naglašeno ja sam to radio svaki drugi zdesna na lijevo. 

17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Ovo bi bilo s lijeva na desno.  Dakle broj 84125 šifrira u broj 82105.

 


int sifriranje(int broj)
{
 int pom = broj, brojZnamenki = 0, znamenka, sifra = 0, potencija = 1;
 while (pom>0)
 {
    pom /= 10;
    brojZnamenki++;
 }
 while (broj>0)
 {
    znamenka = broj % 10;


     if(brojZnamenki % 2 == 0)
     {
       sifra += (znamenka + 4)%3 * potencija;
    }
    else
    {
       sifra += znamenka * potencija;
    }
    potencija *= 10;
    broj /= 10;
    brojZnamenki--;
 }
 return sifra;
}

Poruka je uređivana zadnji put pon 11.2.2013 19:59 (Floki).
 
0 0 hvala 0
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Dakle, to je jedino smisleno rješenje što mi pada na pamet, da se mogu jedino dešifrirati prethodno šifrirani brojevi. Tako da se na lijevu stranu broja doda broj dijeljenja do ostatka.

Npr. za broj 16 se dobije šifrirani broj 211. Pošto sada znamo da smo kod znamenke 1 imali dva dijeljenja znamenka = (3 * 3 + 1) -4, i tako dobijemo znamenku 6, odnosno broj 16. To bi valjda moglo raditi.

Poruka je uređivana zadnji put pon 11.2.2013 20:42 (Floki).
 
0 0 hvala 0
12 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Floki kaže...

Dakle, to je jedino smisleno rješenje što mi pada na pamet, da se mogu jedino dešifrirati prethodno šifrirani brojevi. Tako da se na lijevu stranu broja doda broj dijeljenja do ostatka.

Npr. za broj 16 se dobije šifrirani broj 211. Pošto sada znamo da smo kod znamenke 1 imali dva dijeljenja znamenka = (3 * 3 + 1) -4, i tako dobijemo znamenku 6, odnosno broj 16. To bi valjda moglo raditi.

Joj čitam ovo X puta al' ne kontam, da prebrojimo broj djeljenja jel'?

17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Uzmeš npr znamenku 6 i u petlji

while(znamenka>2)

{

      znamenka /= 3;

      brojDjeljenja++;

}

Poruka je uređivana zadnji put pon 11.2.2013 21:35 (Floki).
 
0 0 hvala 0
12 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Floki kaže...

Uzmeš npr znamenku 6 i u petlji

while(znamenka>0)

{

      znamenka /= 3;

      brojDjeljenja++;

}

Dobro, tu prebroji broj djeljenja jedne znamenke ali kako to kasnije iskoristiti ako ima više znamenki??

17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
TAPTAP12 kaže...
Floki kaže...

Uzmeš npr znamenku 6 i u petlji

while(znamenka>0)

{

      znamenka /= 3;

      brojDjeljenja++;

}

Dobro, tu prebroji broj djeljenja jedne znamenke ali kako to kasnije iskoristiti ako ima više znamenki??

Pa nadodavaj ih u poseban broj i na kraju dodaj šifriranom broju, mislim da ide broj dijeljenja dok je veće od dva, a tu varijablu brojDijeljenja inicijalizirati na 0.

Probaj, to ti je samo teorija, nisam to isprobao, da znam kako točno treba.

Poruka je uređivana zadnji put pon 11.2.2013 21:35 (Floki).
12 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Evo kako sam ja uradio zadatak gdje trebam šifrirati broj sa (znamenka+1)%5, jednostavno dodao globalnu varijablu veci_p, koja samo nadodaje ako su znamenke vece od 5.

 

#include<iostream>

using namespace std;

 

int sifriranje(int);

int desifriranje(int);

int veci_p=0;

 

int main()

{

 int broj;

 cout << "Unesite broj koji zelite sifrirati: ";

 cin >> broj;

 while(broj>1000000)

 {

 cout << "Morate unijeti manji od mil" << endl;

 cin >> broj;

 }

 

 cout << "Sifriran: " << sifriranje(broj) << endl;

 cout << "Desifrovan: " << desifriranje(sifriranje(broj));

 

 system("PAUSE>0");

 return 0;

}

 

int sifriranje(int broj)

{

 int i=1;

 int ost,znamenka_m=0,znamenka_n=0,potencija=1;

 while(broj>0)

 {

 

 ost=broj%10;

 

 if(i%2==0)

 {

 if(ost>=5)

 {

 veci_p+=5*potencija/2;

 }

 

 znamenka_m+=((ost+1)%5)*potencija;

 }

 else

 {

 znamenka_n+=ost*potencija;

 }

 broj/=10;

 i++;

 potencija*=10;

 }

 return (znamenka_m+znamenka_n);

}

 

int desifriranje(int broj)

{

 int i=1;

 int ost_sif,znamenka_m=0,znamenka_n=0,potencija=1;

 

 while(broj>0)

 {

 

 ost_sif=broj%10;

 

 if(i%2==0)

 {

 znamenka_m+=(ost_sif-1)*potencija;

 }

 else

 {

 znamenka_n+=ost_sif*potencija;

 }

 broj/=10;

 i++;

 potencija*=10;

 }

 return (znamenka_m+znamenka_n+veci_p);

}

 

Međutim ovdje se javlja problem kada korisnik unese 4 ili 9 ondosno jednostavno se poništi 4+1=5 => 5%5=0

17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Tako bi se moglo i ovo, u globalnu varijablu broj dijeljenja, a ne nadodavati na broj, međutim, to je onda samo slijedno, ne može se dešifrirati prethodno šifrirani broj zapisan ili primljen odnekud.

 
0 0 hvala 0
16 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
Kako da namjestim input da se u jednoj liniji jedna varijabla unosi a druga je odvojena zarezom i razmakom?

tipa A, B ?
R.I.P. EnlightenedPhoenix 24.6.2011. R.I.P. Steve Jobs 6.10.2011. 1955. - 2011.
14 godina
offline
Programiranje u C++-u - pitanja i odgovori

Kako mogu napraviti prvo input 5 elemanata, a onda output koji program ispisuje? Mogu dati kod na pm ako je netko voljan to riješiti...

 

Poruka je uređivana zadnji put sri 13.2.2013 19:23 (david7).
Moj PC  
0 0 hvala 0
E-mail:
Lozinka:
 
vrh stranice