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

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

U trećem srednjem sam nešto "brčkao" po C-u ali profa je bila jako loša.Ok tada nisam imao ni volje ni ničega sam sjesti i učiti.

 

Sada me to primilo i uz studij(elo) bi htio naučiti programirati.(C,C#,C++).Moje pitanje je od kojeg jezika krenuti.Znam da  je napisano "iljadama" al eto.!

Fitness osobni trener - Više informacija na PM
Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Pa ako imaš nekog predznanja uzmi C++, bilo koji C-like jezik da naučiš, lako se šaltati sa jednog na drugi.
Što učite u školi?, možda da kreneš sa C#-om radi shvaćanja OOP-a,...

Jezik je teško nametnuti, na forumu imaš primjere iz skoro svih jezika, čak i iz ADA-e.

Programming is understanding. – Kristen Nygaard
16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
royalhero kaže...

Pa ako imaš nekog predznanja uzmi C++, bilo koji C-like jezik da naučiš, lako se šaltati sa jednog na drugi.
Što učite u školi?, možda da kreneš sa C#-om radi shvaćanja OOP-a,...

Jezik je teško nametnuti, na forumu imaš primjere iz skoro svih jezika, čak i iz ADA-e.

Ajmo reći da krećem iz početka.Od nule.Jer ono u srednjoj je bila sprdačina i ništa.

 

 

Programiranje na faksu imam tek u 6. semestru i mislim da je C++ u pitanju u večini.Ali nebitno.Sad želim krenut od početka.!

Fitness osobni trener - Više informacija na PM
16 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

 

{

int i = 0;

printf("i = %d\n", i); //0//

 

for (i = 3; i < 10; i++); 

 

printf("i = %d\n", i);                        //10//

printf("i = %d\n", ++i);                       //11//

printf("i = %d\n", i);                        //11//

printf("i = %d\n", i++);                       //11//

printf("i = %d\ti = %d\ti =%d\t\n", i++, i, ++i);           //12, 13, 14// 

}

 

 

Sad ne kuzim zasto na kraju ispis ide i=13 i=13 i=14 jer mi je nekako logički 12 pa 13 pa 14?

 

ili to ++i ima prednost nad i i i++,a i prednost nadi++?

Ste videli lepote, ko sredi noci Zapiha veter samote Rosa, reke in morja R.I.P. EnlightenedPhoenix 24.6.2011.
Poruka je uređivana zadnji put uto 6.12.2011 19:11 (Mitsuoka).
 
0 0 hvala 0
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Uzmi C++ ili C#.

C++

#include<iostream>

#include<cstdio>

using namespace std;

int main()

{

   cout<<"Ovo je C++"<<endl;

   system("PAUSE");

   return 0;

}

 

C#
using system;

class program

{

   public static int Main()

   {

       Console.WriteLine("Ovo je CSharp");

       return 0;

   }

}

 

Uglavnom, razlike su veoma male pohvataš ih za "2 dana", mada je po meni bolje krenuti sa C++, ali sa C#-om bi trebao brže shvatiti objektno-orjentisani koncept.
Kažem ti, bilo koji od ta 3 da uzmeš nećeš pogriješiti, pogledaj još za Javu.

 

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

Hvala puno.! Krenuti ću sa C++ ,a baciti ću oko i na javu.

Fitness osobni trener - Više informacija na PM
Moj PC  
1 0 hvala 0
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Mitsuoka kaže...
Sad ne kuzim zasto na kraju ispis ide i=13 i=13 i=14 jer mi je nekako logički 12 pa 13 pa 14?

 

ili to ++i ima prednost nad i i i++,a i prednost nadi++?

++i je predinkrementiranje, i++ je postinkrementiranje. Kod prvog ti se varijabla prvo inkrementira, a onda ispise (ta uvecana vrijednost dakle), a kod drugog se prvo ispise (stara vrijednost) pa se tek onda inkrementira, pa kad sljedeci put ispises, tek ce se onda ispisati inkrementirana vrijednost.

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
Mitsuoka kaže...
printf("i = %d\ti = %d\ti =%d\t\n", i++, i, ++i);           //12, 13, 14//

Razloži si zadnju naredbu. Znači, i ti je trenutno 12. I onda ide:

printf("i = %d\ti = %d\ti =%d\t\n",

i

++

i

++

i

 

I što vidimo? Ispisuje se i (12), pa se i uvećava za 1, pa se ispisuje i (13), pa se i uvećava za 1 pa se ispisuje i (14).

 

++i znači da će se prvo i uvećati za jedan pa će se onda ispisati

i++ znači da će se prvo ispisati i pa će se tek onda uvećati za jedan

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

mbaksa, krivo je to, tako sam i ja mislio, ali procitaj opet ispisuje se 13, 14, 14

 

po toj logici onda ++i ima prednost nad i, koji ima prednost nad i++?

Ste videli lepote, ko sredi noci Zapiha veter samote Rosa, reke in morja R.I.P. EnlightenedPhoenix 24.6.2011.
Poruka je uređivana zadnji put uto 6.12.2011 19:24 (Mitsuoka).
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Je li baš onaj o godinama i mjesecima tako lagan

input je starost u godinama i mjesecima, a output godina i mjesec rođenja

 

dakle, kad bi danas bila veljača, a netko imao 25 godina i 6 mjeseci, nije isto kao danas kad je prosinac.

Poruka je uređivana zadnji put uto 6.12.2011 19:24 (Floki).
 
0 0 hvala 0
15 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

frend mi je ovako rekao:

 

#include <stdio.h>

int main ()
{
    int broj, zbroj = 0, i = 0;
    int znamenke[100];

    printf ("Unesite broj:  ");
    scanf ("%d", &broj);

    do {
       znamenke[i] = broj % 10;
       ++i;
    } while (broj /= 10);

    while (--i >= 0) {
          printf("%d\n", znamenke[i]);
          zbroj += znamenke[i];
    }

    printf("Zbroj znamenki:  %d\n", zbroj);

    getchar();
    system("pause");
}

 

 

e sad mi neke od tih naredni nismo ucili (do, while, getchar) jel se moze isti zadatak napisati jednostavnije? znaci unos 3-znamenkasti broj, rastaviti na znamenke i napisati njihov zbroj

Dirt 3 -&amp;amp;amp;amp;gt; Dino Bzik
Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
dmanz kaže...
e sad mi neke od tih naredni nismo ucili (do, while, getchar) jel se moze isti zadatak napisati jednostavnije? znaci unos 3-znamenkasti broj, rastaviti na znamenke i napisati njihov zbroj

Pa dobio si odgovor, znaš li koristiti modolo %.
Inače, nema se šta učiti kod getchar(), tu nije potrebna jer će program pauzirati naredba system("PAUSE");.

Programming is understanding. – Kristen Nygaard
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
royalhero kaže...
dmanz kaže...
e sad mi neke od tih naredni nismo ucili (do, while, getchar) jel se moze isti zadatak napisati jednostavnije? znaci unos 3-znamenkasti broj, rastaviti na znamenke i napisati njihov zbroj

Pa dobio si odgovor, znaš li koristiti modolo %.
Inače, nema se šta učiti kod getchar(), tu nije potrebna jer će program pauzirati naredba system("PAUSE");.

pa ne znam, nisam bio prosli put na satu a samo su taj dan radili (C) i sutra je vec test a ja neznam nista o tome, mislim znam otprilike iz knjige nesto, ali ako bi mi netko napisao sad tu naucio bi kak se koristi to, a sigurno nije komplicirano valjda se u nekih 5 redova da rjesiti..

Dirt 3 -&amp;amp;amp;amp;gt; Dino Bzik
15 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
dmanz kaže...

frend mi je ovako rekao:

 

#include <stdio.h>

int main ()
{
    int broj, zbroj = 0, i = 0;
    int znamenke[100];

    printf ("Unesite broj:  ");
    scanf ("%d", &broj);

    do {
       znamenke[i] = broj % 10;
       ++i;
    } while (broj /= 10);

    while (--i >= 0) {
          printf("%d\n", znamenke[i]);
          zbroj += znamenke[i];
    }

    printf("Zbroj znamenki:  %d\n", zbroj);

    getchar();
    system("pause");
}

 

 

e sad mi neke od tih naredni nismo ucili (do, while, getchar) jel se moze isti zadatak napisati jednostavnije? znaci unos 3-znamenkasti broj, rastaviti na znamenke i napisati njihov zbroj

Naravno da moze. Tebi je unaprijed poznat broj znamenki pa ti nikakve petlje nisu potrebne, kao i funkcija getchar koja je potpuno nepotrebna. A funkciju system() ne mozes pozvati ako ne ukljucis sdlib.h.

Pretpostavljam da ti je unos broja jasan. Sada moras deklarirati jedn varijablu za zbroj i inicijalizirati je na nulu. Znamenku jedinica ces dobiti kao ostatak broja pri dijeljenju sa 10(npr. 356/10=35 i ostatak 6). Zatim taj broj moras podijeliti sa 10, buduci ja varijabla tipa int pri dijeljnju dobit ces cijeli broj zaokruzen na prvu cijelu(npr. 35/10=3.5 odnosno u int tipu 3). Zatim opet trazis ostatak pri dijeljenu sa 10 i onda isto ponovis da dobijes trecu znamenku.

 

Sad reci sto ti tocno nije jasno.

Twitter- @capttawish Linux/GNU live forever.
15 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

#include <stdio.h>
main ()
{
int broj, x, y, z;

printf ("Unesite troznamenkasti broj: ");
scanf ("%d, &broj);

x = broj / 100;
y = (broj % 100) / 10;
z = (broj % 10);

printf("Prva: %d\nDruga: %d\nTreca: %d\n", x, y, z);
printf("Zbroj znamenaka je: %d\n", x + y + z);

system("pause");
}

 

 

evo kako sam sada napisao, jel je ovako sve dobro?

Dirt 3 -&amp;amp;amp;amp;gt; Dino Bzik
Moj PC  
0 0 hvala 0
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
Mitsuoka kaže...

mbaksa, krivo je to, tako sam i ja mislio, ali procitaj opet ispisuje se 13, 14, 14

 

po toj logici onda ++i ima prednost nad i, koji ima prednost nad i++?

Nisam pažljivo pročitao tvoju poruku. Nego pazi stvar - ako napišeš:

 

printf("i = %d\ti = %d\ti = %d\n", i++, i, i++);           //12, 13, 14//

 

Ispiše ti 13, 14, 12!

 

 

Nemam pojma u čem je stvar. {#} Nek se jave stručnjaci za operatore u C++-u. Isto se događa i kad koristiš cout i zanimljivo je što će inkrementiranje recimo zadnjeg kojeg ispisuješ promijeniti i ove prethodne!

Poruka je uređivana zadnji put uto 6.12.2011 19:45 (mbaksa).
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
dmanz kaže...

evo kako sam sada napisao, jel je ovako sve dobro?

Reci ti nama! Jesi isprobao da li radi? Nisi? Isprobaj!

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

main ()

To je nepravilno!!!

 

Main deklariši kao int, i na kraju funkcije vrati 0, pomoću naredbe return.

Testiraj kod pa ćeš znati radi li.

Programming is understanding. – Kristen Nygaard
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
mbaksa kaže...
dmanz kaže...

evo kako sam sada napisao, jel je ovako sve dobro?

Reci ti nama! Jesi isprobao da li radi? Nisi? Isprobaj!

da isprobao sam radi kak spada, nisam to mislio vas pitat nego dal je sve napisano u skladu kak bi trebalo pisati npr u testu, znaci da nema nekih viska naredbi i tako tog?

 

e to royalhero za takve greske sam mislio pitat, njima je profa objasnila ovako kak sam napisao :O

Dirt 3 -&amp;amp;amp;amp;gt; Dino Bzik
Poruka je uređivana zadnji put uto 6.12.2011 19:45 (dmanz).
16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
mbaksa kaže...
Mitsuoka kaže...

mbaksa, krivo je to, tako sam i ja mislio, ali procitaj opet ispisuje se 13, 14, 14

 

po toj logici onda ++i ima prednost nad i, koji ima prednost nad i++?

Nisam pažljivo pročitao tvoju poruku. Nego pazi stvar - ako napišeš:

 

printf("i = %d\ti = %d\ti = %d\n", i++, i, i++);           //12, 13, 14//

 

Ispiše ti 13, 14, 12!

 

printf("i = %d\ti = %d\ti = %d\n", i++, i, ++i);           //12, 13, 14//

 

 

Nemam pojma u čem je stvar. {#} Nek se jave stručnjaci za operatore u C++-u. Isto se događa i kad koristiš cout i zanimljivo je što će inkrementiranje recimo zadnjeg kojeg ispisuješ promijeniti i ove prethodne!

opet ne citas pazljivo {#}

 

evo gledaj sliku. stvari u komentarima su ono što bih ja rekao da treba bit, a dolje je u programu kako je.

Ste videli lepote, ko sredi noci Zapiha veter samote Rosa, reke in morja R.I.P. EnlightenedPhoenix 24.6.2011.
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
royalhero kaže...
dmanz kaže...

main ()

To je nepravilno!!!

 

Main deklariši kao int, i na kraju funkcije vrati 0, pomoću naredbe return.

Testiraj kod pa ćeš znati radi li.

znaci napisem ovako: int main() {      , netreba void?

 

i ovo return(0) stavim poslije pauze znaci cisto na kraj?

Dirt 3 -&amp;amp;amp;amp;gt; Dino Bzik
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
dmanz kaže...

da isprobao sam radi kak spada, nisam to mislio vas pitat nego dal je sve napisano u skladu kak bi trebalo pisati npr u testu, znaci da nema nekih viska naredbi i tako tog?

 

e to royalhero za takve greske sam mislio pitat, njima je profa objasnila ovako kak sam napisao :O

Svaki program počinje s int main, to ti je royalhero napomenuo, a završava s return 0! Dakle, dopiši na kraj programa return 0.

 

Kako ti je to nestao desni navodnik u naredbi sa scanf-om?

 

Indentacija - razmaci s lijeve strane - imaš li ih pa ti ih je forum obrisao ili što? Ako nemaš, trebaš imati sve hijerarhijski - znači razmaci unutar funkcije main. Ako imaš, onda si to trebao popraviti ili pokušati drugačije pasteati.

 

Ostalo se čini OK.

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

Void je funkcija koja nema povratnu vrijednost, kada budeš radio funkcije onda se javi da ti objasnimo šta je Void.


Void zaboravi za sad!!!, radi ovako:

#include<stdio.h>

int main()

{

   printf("Ovo je C\n");

   system("PAUSE");

   return 0;

}

Programming is understanding. – Kristen Nygaard
16 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Što nitko ne zna odg. na moje pitanje?

 

 

Zašto je u zadnjoj liniji ispis 13 14 14, a ne 12 13 14?

Ste videli lepote, ko sredi noci Zapiha veter samote Rosa, reke in morja R.I.P. EnlightenedPhoenix 24.6.2011.
Poruka je uređivana zadnji put uto 6.12.2011 20:01 (Mitsuoka).
 
0 0 hvala 0
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

http://sites.google.com/site/sandasutalo/osnove-programiranja/operatori/aritmeticki-unarni-operatori

Ako ti se da Googlaj, pa vidi ko ima prioritete, ili čekaj nekoga ko je skontao šta ti zapravo hoćeš.

Programming is understanding. – Kristen Nygaard
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

U knjizi sam dao dva primjera na tu temu;

 

int C = 0;

cout<< C << endl;    // Ispisuje 0    C=0
cout<< C++ << endl;  // Ispisuje 0    Nakon ispisa...  C=1
cout<< ++C << endl;  // Ispisuje 2    C=2
cout<< --C << endl;  // Ispisuje 1    C=1
cout<< C-- << endl;  // Ispisuje 1    Nakon ispisa...  C=0 

 

a zatim jedan kompliciraniji:

 

int a = 0, b = 1, c = 2;

a = ++b + c--;        // a = 2 + 2,        a=4, b=2, c=1
b = a - --c + ++b;    // b = 4 - 0 + 3,    a=4, b=7, c=0
c = b++ - a-- + --c;  // c = 7 - 4 - 1,    a=3, b=8, c=2

cout<< a << endl; // 3
cout<< b << endl; // 8
cout<< c << endl; // 2

 

Prouči ako te baš zanima.

http://www.chess.com/livechess/profile/Tracer1808
Poruka je uređivana zadnji put uto 6.12.2011 20:08 (TracerCPP).
Moj PC  
1 0 hvala 1
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Znaš li ti unarne operatore?

++i će inkremenitirati varijablu prije ispisa, kao što sam ti rekao preko PM.

 

Uzmi primjer.

i=3;

cout<<++i<<endl; //ispisati će 4

cout<<i<<endl; //ponovno će ispisati 4

cout<<++i<<endl; //ispisati će 5

???

 

Tracer me kvalitetnije preduhitrio, eh da na tim sam primjerima shvatio aritmetičke operatore{#}.

Programming is understanding. – Kristen Nygaard
Poruka je uređivana zadnji put uto 6.12.2011 20:07 (royalhero).
15 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
Mitsuoka kaže...

Što nitko ne zna odg. na moje pitanje?

 

 

Zašto je u zadnjoj liniji ispis 13 14 14, a ne 12 13 14?

U demistificarnom c++/u je najednome mjestu navedeno da se tako unrarni operatori kao argumenti funkcije ne smiju ni pod koju cijenu korstiti. Naime raylog tomu je sto standardom nije odredeno po kojem ce se redoslijedu argumenti unutar funkcije izracunavati, tocnije to ovisi o samome prevoditelju. Tako da ce ti za razlicite compilere biti razlicit rezultat.

 

Twitter- @capttawish Linux/GNU live forever.
16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
royalhero kaže...

Znaš li ti unarne operatore?

++i će inkremenitirati varijablu prije ispisa, kao što sam ti rekao preko PM.

 

Uzmi primjer.

i=3;

cout<<++i<<endl; //ispisati će 4

cout<<i<<endl; //ponovno će ispisati 4

cout<<++i<<endl; //ispisati će 5

???

Rekao sam znam to... ali jesi promotrio moj zadatak... (KOMENTARE SAM JA PISAO)

 

 

1. i++ (zbroji nakon što ispiše vrijednost) znači 12

2. i (vrijednost nakon zbrajanja) onda 13
3. ++i (zbroji pa ispiše vrijednost) i onda 14

 

 


Zato i pitam objašnjenje jer ne kužim, ZAŠTO ISPIŠE 13 14 14

Može li to netko objasnit? Onako za početnike, jer u ovim mojim skriptama nema nigdje objašnjenja zadatka, a ljude sa faksa koje sam pitao kuže još manje od mene.

 

i ne kužim sa cout cin jer uopce ne baratamo time... 

 

Jel radim grešku pri opisivanju mog problema? Jer mi svi dajete odg na nešto što znam.

 

@captain_soap_McTawish meni to ništa ne znači kada je to zadatak za kolokvij. Ja ništa tu nisam pisao... Tako da mi ne trebaju savjeti kako nešto napisat, nego zašto nešto ispiše tako kako je... 

Ste videli lepote, ko sredi noci Zapiha veter samote Rosa, reke in morja R.I.P. EnlightenedPhoenix 24.6.2011.
Poruka je uređivana zadnji put uto 6.12.2011 20:21 (Mitsuoka).
15 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
Mitsuoka kaže...

 

@captain_soap_McTawish meni to ništa ne znači kada je to zadatak za kolokvij. Ja ništa tu nisam pisao... Tako da mi ne trebaju savjeti kako nešto napisat, nego zašto nešto ispiše tako kako je... 

Ocito nisi procitao moj post dobro. Naime:

#include <stdio.h>

int main(){
    int i=10;
    printf("i=%d i=%d i=%d",++i,i++,i);
    return 0;
}

ovaj kod ce meni ispisati 12,10,12 sto se moze ciniti potpuno nelogicno medutim nije. Argumenti se ne izracnavaju po redu kako se salju u funkciju. tj. program prije nego sto proslijedi argument mora izracunati vrijednost argumenata, ali on nece racunati ovim redom:

++i,i++,i sto bi bilo 11,11,12 vec ce ici nekim drugim redom. U ovom slucaju prvo i++,++i,i. I red kojim ce compiler racunati argumente nije odreden, pa to ovisi o compileru.

Twitter- @capttawish Linux/GNU live forever.
E-mail:
Lozinka:
 
vrh stranice