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

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

Inače C# WPF & Expression Studio=Awesome{#}

Ali polako putujemo u {#}.

Programming is understanding. – Kristen Nygaard
Poruka je uređivana zadnji put sri 7.12.2011 16:54 (royalhero).
15 godina
offline
Programiranje u C++-u - pitanja i odgovori

pozdrav, da li mi netko može obijasnit zašto mi baca bug ovaj program , tocnije "zbrojidjelovepizze" is being used withouth being initialized", ugl ovaj drugi for ima funkciju zbrajanja svih brojeva u vectoru, nasa sam na netu kako se to radi, al mi baca bug,inace ovo je samo dio programa, rješavam jedan zadatak z-trenninga pa sam zapea ovde:

 

 

#include<iostream>

#include<string>

#include<vector>

 

using namespace std;

 

int main()

 

{

int brojprijatelja;

double djelovipizze;

double zbrojdjelovapizze;

vector <double> vectordjelovapizze;

cout << " mirko upisi koliko prijatelja ces pozvati" << endl;

cin >> brojprijatelja;

cout << " neka tvoji prijatelji upisu koliko pizze zele pojesti" << endl;

for(int i = 0; i < brojprijatelja; i++)

  {

cin >> djelovipizze;

vectordjelovapizze.push_back(djelovipizze);

  }

for (int i=0; i<vectordjelovapizze.size();i++)

  {

  zbrojdjelovapizze += vectordjelovapizze[i];    - Kad upalim debugger ovde stane i baci bug.

  }

cout << zbrojdjelovapizze << endl;

 

 

 

}

 

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Varijabli "zbrojdjelovapizze" nisi dodjelio nikakvu pocetnu vrijednost, nego samo zbrajas na ono sto se nalazi u memoriji (smece). Postavi varijablu prvo na 0.0 pa onda zbrajaj.

 

double zbrojdjelovapizze=0.0;

 

edit: kôd ti je katastrofalno formatiran, nadam se da je to samo rezultat loseg kopiranja na forum.

My computer once beat me at chess, but we got even after a round of boxing.
Poruka je uređivana zadnji put čet 8.12.2011 0:12 (rustweaver).
15 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
rustweaver kaže...

Varijabli "zbrojdjelovapizze" nisi dodjelio nikakvu pocetnu vrijednost, nego samo zbrajas na ono sto se nalazi u memoriji (smece). Postavi varijablu prvo na 0.0 pa onda zbrajaj.

 

double zbrojdjelovapizze=0.0;

 

edit: kôd ti je katastrofalno formatiran, nadam se da je to samo rezultat loseg kopiranja na forum.

ah ma šta je najgore od svega to mi je i palo napamet pa sam stavia zbrojdjelovapizze = 0, al s obzirom da je double varijabla treba sam stavit 0.0, s obzirom da sam ga kodira u ponoč, ništa čudno :D , btw rekla mi je mater da ću dobit pod bor demistificirani c++ 3. izdanje, pa se bacam na posao za praznike.

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
athlon64 kaže...

btw rekla mi je mater da ću dobit pod bor demistificirani c++ 3. izdanje, pa se bacam na posao za praznike.

{#}

Moram priznat da si me ugodno iznenadio sa ovim.

Computer games do not affect kids: I mean if Pacman affected us as kids we'd all be running around in darkened rooms, munching magic pills while listening to repetitive electronic music!
15 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
tnakir kaže...
athlon64 kaže...

btw rekla mi je mater da ću dobit pod bor demistificirani c++ 3. izdanje, pa se bacam na posao za praznike.

{#}

Moram priznat da si me ugodno iznenadio sa ovim.

haha zašto xd :D

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
athlon64 kaže...
tnakir kaže...
athlon64 kaže...

btw rekla mi je mater da ću dobit pod bor demistificirani c++ 3. izdanje, pa se bacam na posao za praznike.

{#}

Moram priznat da si me ugodno iznenadio sa ovim.

haha zašto xd :D

Jer nisi trazio gamersko ovo|ono.

Computer games do not affect kids: I mean if Pacman affected us as kids we'd all be running around in darkened rooms, munching magic pills while listening to repetitive electronic music!
15 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
tnakir kaže...
athlon64 kaže...
tnakir kaže...
athlon64 kaže...

btw rekla mi je mater da ću dobit pod bor demistificirani c++ 3. izdanje, pa se bacam na posao za praznike.

{#}

Moram priznat da si me ugodno iznenadio sa ovim.

haha zašto xd :D

Jer nisi trazio gamersko ovo|ono.

ahahahah, a komponente za pc sam financiram jer mater ionako misli da previše trošim na njega, a ovu knjigu stvarno želim da se mogu kako bog zapovida uvatit posla jer ovo kopanje po netu ne liči na ništa, a ona će mi je drage volje uzet :D

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

pozdrav, ucio cam se radit u c++ u dev-c++ i onda sam preso na code::blocks u kojem trenutno radim.

Sljedeci program...

 

#include <cstdlib>
#include <iostream>
#include <cmath>
#include <conio.h>

using namespace std;

int main()
{
char a;
cout<<"Pritisnite 1 za izlazak"<<endl<<endl<<endl;
while (a!='1'){
a=getch();
cout<<a<<endl;
}
system("pause");
return 0;
}

 

...sam pisao u devu i bez izmjene sam ga kopirao i kompajlirao u code::blocksu.

 

U devu kad kliknem 1 mi izade iz programa (getch) ali u code::blocksu se nista ne desava... ostat koda pravilno (jednako) se izvodi.

Moje pitanje je gdje je došlo do greške, jesi li kompajleri tako različiti i mogu li očekivat ovakve greške u budućnosti?

Igor
Moj PC  
0 0 hvala 0
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
CRT kaže...
U devu kad kliknem 1 mi izade iz programa (getch) ali u code::blocksu se nista ne desava... ostat koda pravilno (jednako) se izvodi.

Moje pitanje je gdje je došlo do greške, jesi li kompajleri tako različiti i mogu li očekivat ovakve greške u budućnosti?

Nije riječ o nikakvoj greški nego si program pokrenuo na način da se konzola ne zatvara automatski nakon završetka programa. Imaš tipke F8 i F9 čini mi se - ako pokreneš s F8 konzola se automatski zatvara, ako pokreneš s F9 konzola se ne zatvara automatski, nego pritiskom na neku tipku.

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

pa zašto se to onda ne događa, kada stisnem jedan, kaze mi da opet nesto stisnem da se program zatvori, nakon toga se ne zatvori nego mi da izvjesce trejanja programa i return 0 te opet press any key.. i tek kada stisnem nesto se zatvara. sa f8 opet mi izbaci dijalog press any key i onda se nakon toga zatvara. mene zanima kako zatvorit program cim pritisnem na jedinicu.

 

EDIT: hvala, maknuo sam system pause i pokrenuo f8, onda se automatski zatvara. ipak, u devu system pause je bio prisutan....

Igor
Poruka je uređivana zadnji put čet 8.12.2011 9:40 (CRT).
Moj PC  
0 0 hvala 0
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
CRT kaže...

pa zašto se to onda ne događa, kada stisnem jedan, kaze mi da opet nesto stisnem da se program zatvori, nakon toga se ne zatvori nego mi da izvjesce trejanja programa i return 0 te opet press any key.. i tek kada stisnem nesto se zatvara.

Ponovno pogledaj svoj kôd i malo uključi mozak. {#} Ako treba ponovno pročitaj moju poruku.

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

Prvo, formatiraj taj kod da na nesto lici.

 

#include <cstdlib>
#include <iostream>
#include <cmath>
#include <cstdio>

using namespace std;

int main()
{
    char a;
    cout<<"Pritisnite 1 za izlazak"<<endl<<endl<<endl;

    while (a!='1')
    {
        a = getchar();
        cout << a << endl;
      exit(0); // ili ovako, ili stavi umjesto cout << a;
    }

    return 0;
}

 

Nadalje, <conio.h> nije standardno zaglavlje, kao niti getch() funkcija koja je definirana u njemu. Umjesto toga koristi <cstdio> zaglavlje i funkciju getchar() ili std::cin objekt, posto je rijec o C++-u.

 

system("pause") takoder nije standardna f-ja, preporuka je da je ne koristis, a koliko znam u C::B-u ju nije niti potrebno koristiti (na Windowsima).

 

K tome, ovaj tvoj program je pisan tako da izade iz while petlje, a ne iz programa (iako poslije while petlje nema nicega osim return 0, pa bi trebao izaci, ali nije poanta sad u tome), tako da to sto ti se konzola zatvori nije nikakva greska, vec je to u redu, zato jer je program tako napisan (C::B zadrzi konzolu otvorenu do pritiska tipke Enter). Ako zelis izlazak iz programa iz while petlje, koristi funkciju exit() koja je definirana u <cstdlib> zaglavlju (boldano).

 

EDIT: Sad sam probao sa exit() u while petlji, iako radi to sto treba raditi, C::B ne gasi konzolu, dakle ista je stvar. Uglavnom, lupi F8, postoje dva nacina pokretanja. F8 je debugger.

 

C provides a programmer with more than enough rope to hang himself. C++ provides a firing squad, blindfold and last cigarette.
Poruka je uređivana zadnji put čet 8.12.2011 10:14 (mbaksa).
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

hvala, ali...

 

sa getcharom, dobijem drugaciji efekt... on mi ispisuje u jednom redu i pritiskom na enter ispisuje samo prvo slovo/broj koji je upisan (razmumijem zasto je to tako)...dok sa getchom ide svaki char u sljedeci red, dakle cim ja dodijelim vrjednost charu, ovaj ga ispisuje... ovo sa exit(0) , ovo u zagradi su milisekunde prija zatvaranja, ili?

Igor
Poruka je uređivana zadnji put čet 8.12.2011 9:51 (CRT).
Moj PC  
0 0 hvala 0
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
CRT kaže...

hvala, ali...

 

1) sa getcharom, dobijem drugaciji efekt... on mi ispisuje u jednom redu dok sa getchom ide svaki char u sljedeci red... 2)ovo sa exit(0) , ovo u zagradi su milisekunde prija zatvaranja, ili?

1) Ne kuzim sto zelis reci s ovime. getchar() i getch() nista ne ispisuju. EDIT: Tj. getchar() echoa upisani character ako si na to mislio...

2) http://www.cplusplus.com/reference/clibrary/cstdlib/exit/

C provides a programmer with more than enough rope to hang himself. C++ provides a firing squad, blindfold and last cigarette.
Poruka je uređivana zadnji put čet 8.12.2011 9:53 (1domagoj1).
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

sa getcharom:

 

dodijelim vrjednost charu, xyz slova/brojeva, i on mi ispise samo prvo (to razumijem zasto je to tako, ali to nisam htio postic) i onda se program zavrsi

 

 

sa getchom:

 

cim ja dodijelim vrjednost charu, dakle samo klkinem na "i" ovaj ispisuje i, i tako za svako slovo koje ide u novi red.

kada charu dodijelim vrjednost 1, program zavrsava

 

Igor
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
1domagoj1 kaže...
izlazak iz programa iz while petlje, koristi funkciju exit() koja je definirana u <cstdlib> zaglavlju (boldano).

 

Zasto bi koristio exit() iz cstdlib kad mozes koristiti najobicniji return ?

 

Umjesto getchar ili getch koristi cin.get() ili cin.getline().

 

I opcenito zaboravi na conio.h, nikad nista dobro nije doslo iz conio.h.

All religions are the same: religion is basically guilt, with different holidays.
Poruka je uređivana zadnji put čet 8.12.2011 10:06 (drnde).
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
drnde kaže...
1domagoj1 kaže...
izlazak iz programa iz while petlje, koristi funkciju exit() koja je definirana u <cstdlib> zaglavlju (boldano).

 

Zasto bi koristio exit() iz cstdlib kad mozes koristiti najobicniji return ?

Ne samo to, nego zašto bi koristio ikakav apsolutni izlaz, kad može iz petlje jednostavno izaći naredbom break?

16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
mbaksa kaže...
drnde kaže...
1domagoj1 kaže...
izlazak iz programa iz while petlje, koristi funkciju exit() koja je definirana u <cstdlib> zaglavlju (boldano).

 

Zasto bi koristio exit() iz cstdlib kad mozes koristiti najobicniji return ?

Ne samo to, nego zašto bi koristio ikakav apsolutni izlaz, kad može iz petlje jednostavno izaći naredbom break?

Neznam, nisam bas pratio, zar pitanje nije kako izaci iz programa a da se ne odvrti do kraja, ali eto:

 

Ne samo to, moze izaci iz petlje tako da jednostavno koristi do-while kao sto bi trebao tako da postavi

uvjet koji ce biti false pri zeljenoj vrijednosti unosa. {#}

 

 

All religions are the same: religion is basically guilt, with different holidays.
Poruka je uređivana zadnji put čet 8.12.2011 10:05 (drnde).
17 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Jeste procitali ovaj dio uopce? {#} Tocnije, ovaj boldani dio.

K tome, ovaj tvoj program je pisan tako da izade iz while petlje, a ne iz programa (iako poslije while petlje nema nicega osim return 0, pa bi trebao izaci, ali nije poanta sad u tome) ...

Ovdje kod njega kod ovakvog jednostavnog programa nema potrebe za tako necim, ali kad je rijec o vecem programu, recimo da ima tri ugnjezdene for petlje ili sto ti ja znam, a nakon nekog uvjeta u trecoj for petlji treba izaci iz programa. break mu nece puno pomoci, osim ako ne strukturira for petlje tako da kad prva breaka da sve izlete van (ovo je jedna od rijetkih situacija gdje je goto okej koristiti - visestruki break). Ili exit(), a moze i return iako osobno bas returnove ne ostavljam po svuda po programu, osim na kraju...

 

EDIT: Damn, zajeb*al sam se pa editirao onaj post s odgovorom, jel se moze to kako vratiti?

C provides a programmer with more than enough rope to hang himself. C++ provides a firing squad, blindfold and last cigarette.
Poruka je uređivana zadnji put čet 8.12.2011 10:08 (1domagoj1).
 
0 0 hvala 0
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
drnde kaže...
mbaksa kaže...

Ne samo to, nego zašto bi koristio ikakav apsolutni izlaz, kad može iz petlje jednostavno izaći naredbom break?

Neznam, nisam bas pratio, zar pitanje nije kako izaci iz programa a da se ne odvrti do kraja, ali eto:

 

Ne samo to, moze izaci iz petlje tako da jednostavno koristi do-while kao sto bi trebao tako da postavi

uvjet koji ce biti false pri zeljenoj vrijednosti unosa. {#}

Jedno od nepisanih pravila je da ne prekidaš program na silu, osim ako to nije nužno, jer se time ruši hijerarhija programa. U konkretnom programu nije bilo nužno prekinuti program, dakle ni halt ni return na tome mjestu nisu opravdani.

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

getch i getchar dodjeluju vrijednost charu bez potrebe da se klikne enter, zar ne?

 

mene zanima zasto cim upisemo jedo slovo/broj u getch cout naredba ga odmah ispisuje, i petlja se izvrsava dok charu ne dodijelim vrjednost 1

problem je kod getchara koji "ne reagira" ja charu mogu upisat bezbroj slova/brojeva i onda ce mi cout naredbom ispisat samo prvu, i to shvacam

 

mene zanima kako kod getcahara postignut efekt od getcha

 

eh da, moze mi neko objasnit razliku itmeđu for i while?

 

Igor
Moj PC  
0 0 hvala 0
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
1domagoj1 kaže...

Ovdje kod njega kod ovakvog jednostavnog programa nema potrebe za tako necim, ali kad je rijec o vecem programu, recimo da ima tri ugnjezdene for petlje ili sto ti ja znam, a nakon nekog uvjeta u trecoj for petlji treba izaci iz programa. break mu nece puno pomoci, osim ako ne strukturira for petlje tako da kad prva breaka da sve izlete van (ovo je jedna od rijetkih situacija gdje je goto okej koristiti - visestruki break). Ili exit(), a moze i return iako osobno bas returnove ne ostavljam po svuda po programu, osim na kraju...

Što znači to "veći program"? Nebitno je koliko je program velik, jer se program dâ (i trebao bi se) usitniti kroz funkcije i objekte. Jedino što je bitno je koliko je složen trenutni algoritam koji koristi više razina petlji. Dakle, postoje slučajevi kad se nasilni izlazak ne može izbjeći, ali to su rijetki slučajevi. Ako dođe do toga, češće je razlog tome što programer nije adekvatno rascjepkao kôd - što je neku od petlji zapravo mogao ubaciti u funkciju ili nešto slično.

 

Imaš neke konkretne slučajeve gdje moraš nasilno izlaziti, da ih proanaliziramo?

 

CRT kaže...
eh da, moze mi neko objasnit razliku itmeđu for i while? 

Pa kako možeš išta programirati ako to ne znaš? For se koristi kad kod ulaska u petlju znaš koliko puta će se petlja odvrtiti, a while i do-while kad ne znaš. While se koristi kad uvjet provjeravaš na početku petlje, do-while kad provjeravaš na kraju.

16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
1domagoj1 kaže...

Ovdje kod njega kod ovakvog jednostavnog programa nema potrebe za tako necim, ali kad je rijec o vecem programu, recimo da ima tri ugnjezdene for petlje ili sto ti ja znam, a nakon nekog uvjeta u trecoj for petlji treba izaci iz programa. break mu nece puno pomoci, osim ako ne strukturira for petlje tako da kad prva breaka da sve izlete van (ovo je jedna od rijetkih situacija gdje je goto okej koristiti - visestruki break). Ili exit(), a moze i return iako osobno bas returnove ne ostavljam po svuda po programu, osim na kraju...

 

EDIT: Damn, zajeb*al sam se pa editirao onaj post s odgovorom, jel se moze to kako vratiti?

1. Ako gnijezdis vise od dvije petlje a ne radi se o nekom kopliciranom matematickom algoritmu

mozda bi se trebao zapitati da li mozda nesto krivo radis.

2. Ako mislis da je to ipak ono sto zelis ali imas potrebu u 15toj petlji odjednom izaci iz svih petlji

bez da se izvrse do kraja sigurno nesto radis krivo.

3. U svakom slucaju bi bolje bilo deklarirati pomocnu variablu koja je dostpuna svim petljama nego koristiti goto.

4. exit() nema smisla koristiti u c++ kao prvo jer zahtijeva cstdlib a kao druo jer imas nekih problema oko

nepozivanja destruktora koliko vidim.

All religions are the same: religion is basically guilt, with different holidays.
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
mbaksa kaže...
...

 

Imaš neke konkretne slučajeve gdje moraš nasilno izlaziti, da ih proanaliziramo?

...

Oprostite mi, ovo je C. Takoder, ispricavam se na velicini koda. Davno sam to radio. Ovdje sam koristio returnove, ne exit.
/*! lab1.c
 *
 * Kopira sadrzaj jednog direktorija u drugi. Pri tome ce se stare datoteke, ako
 * nisu iste novima, preimenovati tako da se na ime doda vrijeme zadnje promjene
 * (u obliku YYYY-MM-DD_HH-MM-SS), a nova ce se onda tamo kopirati pod
 * orginalnim imenom.
 * Pretpostavka je da se u direktoriju nalaze samo datoteke - inace program nece
 * raditi ispravno. Takodjer, preskacu se datoteke koje pocinju tockom (a to su
 * na *UNIX* sustavima i oznake trenutnog direktorija (.), i onog ispod (..).
 */

#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <time.h>
#include <utime.h>
#include <malloc.h>

#include <string.h>
#include <stdio.h>

#define IME    80
#define BLOK 1000

#include "datoteke.h"

int main ( int argc, char *argv[] )
{
    /* zadano */

    char ime1[IME], ime2[IME], ime3[IME], vrijeme[20];
    int n, i;
    char **dat;
    DIR *test;

    if ( argc != 3 )
    {
       fprintf ( stderr, "Program kopira jedan direktorij u drugi\n" );
       fprintf ( stderr, "Uporaba: %s direkt1 direkt2\n", argv[0] );
      return 1;
    }

    dat = dohvati_datoteke ( argv[1], &n );
    if ( dat == NULL )
      return 2;

    if ( ( test = opendir ( argv[2] ) ) == NULL )
    {
       if ( mkdir ( argv[2], 0755 ) ) /* 0755 == rwx r-x r-x */
       {
          perror ( "mkdir" );
          fprintf ( stderr, "Ne moze se stvoriti direktorij %s\n",
              argv[2]);
         return 3;
       }
    }
    else {
       closedir ( test );
    }

    printf ( "Kopiram iz %s -> %s:\n", argv[1], argv[2] );

    /* Iteriraj po svim datotekama */
    for ( i = 0; i < n; i++ )
    {
       printf ( "%s\n", dat[i] );

       strcpy ( ime1, argv[1] );
       strcat ( ime1, "/" );
       strcat ( ime1, dat[i] );

       strcpy ( ime2, argv[2] );
       strcat ( ime2, "/" );
       strcat ( ime2, dat[i] );
       /* pretpostavlja se da je ukupna duljina manja od IME ! Bolje bi
       bilo kada bi se to provjerilo i koristilo strncpy i strncat. */

       if ( usporedi ( ime1, ime2 ) )
       {
          if ( !vrijeme_zadnje_promjene ( ime2, vrijeme ) )
          {
             /* datoteka postoji */
             strcpy ( ime3, ime2 );
             strcat ( ime3, "." );
             strcat ( ime3, vrijeme );
             rename ( ime2, ime3 );
          }

          kopiraj_datoteku ( ime1, ime2 );
       }

       /* sleep (5); */
    }

    free ( dat );

    return 0;
}

drnde kaže...

1. Ako gnijezdis vise od dvije petlje a ne radi se o nekom kopliciranom matematickom algoritmu

mozda bi se trebao zapitati da li mozda nesto krivo radis.

2. Ako mislis da je to ipak ono sto zelis ali imas potrebu u 15toj petlji odjednom izaci iz svih petlji

bez da se izvrse do kraja sigurno nesto radis krivo.

3. U svakom slucaju bi bolje bilo deklarirati pomocnu variablu koja je dostpuna svim petljama nego koristiti goto.

4. exit() nema smisla koristiti u c++ kao prvo jer zahtijeva cstdlib a kao druo jer imas nekih problema oko

nepozivanja destruktora koliko vidim.

1. Nisam niti rekao da je kompliciran. Ne razumijem tocno sto hoces reci s ovim, samo sam bubnuo nesto sto mi je prvo palo na pamet.

2. Ne mora biti.

3. Uvijek, rekao sam samo da je to jedan od rijetkih slucajeva gdje bi goto bio opravdan.

4. Naravno, u tom trenutku nisam niti razmisljao o objektima, konstruktorima, destruktorima, vec iz C-olike perspektive.

C provides a programmer with more than enough rope to hang himself. C++ provides a firing squad, blindfold and last cigarette.
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori

@Domagoj - Ko da si odrasao na BEJZIKU.

 

 

int greska = 0;

if (argc == 3) {
    dat = dohvati_datoteke ( argv[1], &n );
    if ( dat != NULL ) {
       ...
    };
    else greska = 2;
};
else {
    fprintf ( stderr, "Program kopira jedan direktorij u drugi\n" );
    fprintf ( stderr, "Uporaba: %s direkt1 direkt2\n", argv[0] );
    greska = 1;
}

 

...

 

return greska;

 

 

Ne da mi se sad zezati još s trećim returnom, no za ova dva je jasno da si ih mogao izbjeći jednostavnom oporabom else-a. {#} Logika ti je posve kontra - ti ideš ispitivati je li došlo do neke greške i onda silom izlaziš iz programa umjesto da ideš ispitivati treba li se program nastaviti izvršavati, a ako se ne treba, neka prirodno dođe do kraja. Razmisli malo o tome. Pokušaj sagledati svoj program iz te perspektive. Mislim, situacija je ista kao kad ti bejzikaš da program s hrpom goto-a i tvrdi ti da se taj program ne može napraviti bez svih tih silnih gotoa. A onda mu pokažeš da se može.

 

Poruka je uređivana zadnji put čet 8.12.2011 10:55 (mbaksa).
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
athlon64 kaže...

ah ma šta je najgore od svega to mi je i palo napamet pa sam stavia zbrojdjelovapizze = 0, al s obzirom da je double varijabla treba sam stavit 0.0

Nisam siguran da kod dodjeljivanja vrijednosti varijabli tipa double ili float ima neke razlike izmedu 0 i 0.0, compiler bi to trebao automatski prilagoditi. Bitno je samo da varijabli dodjelis neku vrijednost.

My computer once beat me at chess, but we got even after a round of boxing.
17 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

@Mario - Hah, nije lose :D, zgodno da. Onako mi je prvo palo na pamet, a radi, pa ono, nije me puno bas to brinulo.

C provides a programmer with more than enough rope to hang himself. C++ provides a firing squad, blindfold and last cigarette.
Poruka je uređivana zadnji put čet 8.12.2011 11:01 (1domagoj1).
 
0 0 hvala 0
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
rustweaver kaže...
athlon64 kaže...

ah ma šta je najgore od svega to mi je i palo napamet pa sam stavia zbrojdjelovapizze = 0, al s obzirom da je double varijabla treba sam stavit 0.0

Nisam siguran da kod dodjeljivanja vrijednosti varijabli tipa double ili float ima neke razlike izmedu 0 i 0.0, compiler bi to trebao automatski prilagoditi. Bitno je samo da varijabli dodjelis neku vrijednost.

Tako je. Onda bi mu se eventualno žalio na implicitni cast ili tako nešto.

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

Hah, nije lose :D, zgodno da. Onako mi je prvo palo na pamet, a radi, pa ono, nije me puno bas to brinulo.

Nije te brinulo jer si pogrešno naučio pisati strukturiran kôd. Možda ti nitko ni nije pokazao da to može drugačije. Uglavnom, nadam se da si sad nešto naučio i da ćeš se sljedeći put dvaput zapitati trebaš li zaista negdje u sredini funkcije puknuti exit ili return. Imaš opet ekstremista koji su protiv bilo kakvog kršenja hijerarhije programa, dakle i protiv brakea, ali eto - to su ekstremisti.

E-mail:
Lozinka:
 
vrh stranice