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

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

Kako elemene matrice simetrično preslikati obzirom na sporednu dijagonalu?

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

Moze li mi neko reci gdje sam pogrijesio u ovom zadatku:

1. Potrebno je unijeti interval I[x,y] i ipisati sve proste brojeve u tom intervalu. 

 

#include <iostream>

using namespace std;

int main ()

{

int x, y, c;

cout<<"Unesite donju granicu intervala: ";

cin>>x;

cout<<"Unesite gornju granicu intervala: ";

cin>>y;

for(int i=x; i<=y; i++)

{

       c=0;

for(int j=2; j<=y/2; j++)

{

if(i%j==0)

{

       c++;

break;

}

}

if(c==0 && i!=1)

     {

cout<<i<<"\t";

     }

}

system("pause");

return 0;

}

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

Kako elemene matrice simetrično preslikati obzirom na sporednu dijagonalu?

 

 

Kod matrice 3x3 imamo tri zamjene, odnosno mijenjamo 6 elemenata, a elementi na sporednoj dijagonali ostaju na mjestu. Zamjena ide redom [0][0] = [2][2], [0][1] = [2][1]

 

 

#include <iostream>
#include<string>


int main()
{
    int matrica[3][3] = { {2, 5, 3}, {8, 9, 1}, {4, 7, 5 } };
    for(int i = 0; i < 3 - 1 ; i++)
    {
       for(int j = 0; j < 3-i-1; j++)
       {
          int temp = matrica[i][j];
          matrica[i][j] = matrica[3 - i - 1][3 - j - 1];
          matrica[3 - i - 1][3 - j - 1] = temp;
       }
    }
    for(int i = 0; i < 3; i++)
    {
       for(int j = 0; j < 3; j++)
       {
          std::cout<< matrica[i][j] << " ";
       }
       std::cout<< "\n";
    }
    return 0;
}


 

Poruka je uređivana zadnji put sri 20.11.2013 16:09 (Floki).
17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
eagle05 kaže...

Moze li mi neko reci gdje sam pogrijesio u ovom zadatku:

1. Potrebno je unijeti interval I[x,y] i ipisati sve proste brojeve u tom intervalu. 

 

#include <iostream>

using namespace std;

int main ()

{

int x, y, c;

cout<<"Unesite donju granicu intervala: ";

cin>>x;

cout<<"Unesite gornju granicu intervala: ";

cin>>y;

for(int i=x; i<=y; i++)

{

       c=0;

for(int j=2; j<=y/2; j++)

{

if(i%j==0)

{

       c++;

break;

}

}

if(c==0 && i!=1)

     {

cout<<i<<"\t";

     }

}

system("pause");

return 0;

}

 

Pogledaj malo ovaj kod, provjeru vršiš do sqrt broja kojeg testiraš, a provjeru prima zasnivaš na breaku, tako da nijedna dodatna varijabla nije potrebna, jer ako je kvadrat j veći od i, broj je prim.

Naravno, mogao sam ubaciti i varijablu bool za provjeru unutar izraza if kod modula, ali čini mi se nepotrebno, mada ovako još nisam vidio da netko radi.

 

#include <iostream>

using namespace std;

int main ()

{

int x, y, i, j;

cout<<"Unesite donju granicu intervala: ";

cin>>x;

cout<<"Unesite gornju granicu intervala: ";

cin>>y;

for(i=x; i<=y; i++)

{
    for(j=2; j*j<=i; j++)
    {
       if(i%j == 0)
          break;
    }
    if(j * j > i)
    cout<< i << " ";
}


system("pause");

return 0;

}

Poruka je uređivana zadnji put sri 20.11.2013 17:24 (Floki).
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Ako nije problem da mi pomognete tj. kazete na koji nacin bih mogao rijesiti ovaj problem:

U zadatku trebam da upisem neku poziciju za Fiboniccijev niz i da mi ispise koji se broj nalazi na toj poziciji(npr. fib. niz je: 0,1,1,2,3,5,8,13,21,34,... i ako ja unesem broj za poziciju 10 meni treba ispisati broj 34). Ja sam uradio da mi ispise sve brojeve do one granice koju ja unesem, ali ne znam sta trebam uraditi da mi ispise samo ovaj zadnji broj.

Evo kod za ispis svih brojeva do neke granice:

 

#include<iostream>

#include<conio.h>

using namespace std;

int main()

{

   int x=0,y=1,z=0,g,i=1;

   cout<<"Unesi granicu: ";

   cin>>g;

   cout<<x<<endl;

   cout<<y<<endl;

   while(i<=g-2)

   {

     z=x+y;

     cout<<z<<endl;

     x=y;

     y=z;

     i++;

   }

   getch();

}

 

Moj PC  
0 0 hvala 0
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Deveti po redu fibonacci niza je 34, jer prvi u nizu 0 ima notaciju nultog po redu.

 

#include <iostream>

using namespace std;

int main ()

{
    int broj = 9, prvi = 0, drugi = 1, suma;
    while(broj - 1)
    {
       suma = prvi + drugi;
       prvi = drugi;
       drugi = suma;
       broj--;
    }
    cout<< drugi << endl;
    return 0;
}

Poruka je uređivana zadnji put sri 20.11.2013 19:07 (Floki).
 
0 0 hvala 1
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Floki kaže...

Deveti po redu fibonacci niza je 34, jer prvi u nizu 0 ima notaciju nultog po redu.

 

#include <iostream>

using namespace std;

int main ()

{
    int broj = 9, prvi = 0, drugi = 1, suma;
    while(broj - 1)
    {
       suma = prvi + drugi;
       prvi = drugi;
       drugi = suma;
       broj--;
    }
    cout<< drugi << endl;
    return 0;
}

Ono sam samo za primjer rekao deseti odnosno deveti po redu, ali meni treba program koji ce mi ispisati bilo koji broj iz niza u ovisnosti koji aj broj unesem, a ne samo 9-ti po redu(ako unesem 7 da mi ispise 13, ako unesem 8 da ispise 21,....)

edit: Uradio sam ovo, hvala na pomoci

Poruka je uređivana zadnji put sri 20.11.2013 19:19 (eagle05).
17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
eagle05 kaže...
Floki kaže...

Deveti po redu fibonacci niza je 34, jer prvi u nizu 0 ima notaciju nultog po redu.

 

#include <iostream>

using namespace std;

int main ()

{
    int broj = 9, prvi = 0, drugi = 1, suma;
    while(broj - 1)
    {
       suma = prvi + drugi;
       prvi = drugi;
       drugi = suma;
       broj--;
    }
    cout<< drugi << endl;
    return 0;
}

Ono sam samo za primjer rekao deseti odnosno deveti po redu, ali meni treba program koji ce mi ispisati bilo koji broj iz niza u ovisnosti koji aj broj unesem, a ne samo 9-ti po redu(ako unesem 7 da mi ispise 13, ako unesem 8 da ispise 21,....)

to jest to, umjesto što sam inicijaliziao varijablu broj, samo je treba unijeti sa cin objektom, sve veće od 0, ako se unese 0, da ispiše 0.

 

Ovako bi odgovaralo matematičkoj notaciji, za unos 0 dobije se 0, ostalo po redu

 

#include <iostream>

using namespace std;

int main ()

{
    int broj, prvi = 0, drugi = 1, suma;
    cin>> broj;
    while(broj > 0)
    {
       suma = prvi + drugi;
       prvi = drugi;
       drugi = suma;
       broj--;
    }
    cout<< prvi << endl;
    return 0;
}

 

 

Kroz while petlju samo zbrajamo prvi i drugi i za sljedeći korak prvi postaje drugi, a drugi prethodna suma. Nakon toga varijablu broj dekrementiramo.

 

Poruka je uređivana zadnji put sri 20.11.2013 22:15 (Floki).
11 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Trebm za informatiku uradit neki kviz. Treba da racuna bodove i na kraju da mi pokaze te bodove i ocjenu po mogucnosti. Na internetu sam trazio ali nista nema, u programiranj nisam neki strucnjak! POMOC

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

Pa za to niti ne trebaš biti stručnjak. Ne možeš znati nešto što tek učiš, dakle glavu u knjigu/bilježnicu i gledaj što tamo piše o programskom jeziku u kojem bi to trebao napraviti (pretpostavljam C/C++ čim pišeš u ovoj temi).

To understand what recursion is, you must first understand recursion.
11 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Niste me razumjeli, trebam napravit kviz u bilo kojem programu, programiranje nismo radili, tako da...

14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
McKenzie 3000 kaže...

.., programiranje nismo radili, tako da...

..čekaš da ti to netko drugi napravi?

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
11 godina
odjavljen
offline
Programiranje u C++-u - pitanja i odgovori

// Program koji će racunati korijen datog broja //

//Korijen se u c++ racuna funkcijom, gdje varijanta datog broja tipa double. Ova funkcija se koristi kao operator zajedno sa size of i ()

#include<iostream>

using namespace std;

int main ()

{

 

   double broj,korijen;

   cout<<"Unesi broj:";

   cin>>broj;

   korijen=sqrt;

   cout<<"korijeni broja"<<broj<<"su";

   cout<<korijen<<"i"<<-korijen<<endl;

   system("pause");

   return 0;

}

nešto mi ovaj program ne radi, u čemu je problem ?
i
#include<iostream.h>
#include<math.h>
int main ()
{
   int a,n,rezultat;
   cout<<"\n Baza:";
   cin>>a;
   cout<<"nStepen:";
   cin<<n;
   rez=pow(a,n);
   cout<<"\n----------";
   cout<<"\n"<a<<n<<"="<<rez<<endl;
   return 0;
}
Ako imas Steam dodaj me: WolfET03
Poruka je uređivana zadnji put pet 22.11.2013 20:24 (Silwncer).
Moj PC  
0 0 hvala 0
11 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Ako neko ima program slican, moze mi poslat kod da prepravim pitanja i to je to. -_-

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

Meni nije mi jasno, kako to da to trebas napraviti, a niste ucili programiranje? Zanimljivo...

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
11 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Da imas profesoricu poput moje, bilo bi ti jasno. :{#}

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

Da imas profesoricu poput moje, bilo bi ti jasno. :{#}

 

Koja profesorica, koja škola?

14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Floki kaže...
eagle05 kaže...

Moze li mi neko reci gdje sam pogrijesio u ovom zadatku:

1. Potrebno je unijeti interval I[x,y] i ipisati sve proste brojeve u tom intervalu.

Pogledaj malo ovaj kod, provjeru vršiš do sqrt broja kojeg testiraš, a provjeru prima zasnivaš na breaku, tako da nijedna dodatna varijabla nije potrebna, jer ako je kvadrat j veći od i, broj je prim.

Naravno, mogao sam ubaciti i varijablu bool za provjeru unutar izraza if kod modula, ali čini mi se nepotrebno, mada ovako još nisam vidio da netko radi.

 

#include <iostream>

using namespace std;

int main ()

{

int x, y, i, j;

cout<<"Unesite donju granicu intervala: ";

cin>>x;

cout<<"Unesite gornju granicu intervala: ";

cin>>y;

for(i=x; i<=y; i++)

{
   for(j=2; j*j<=i; j++)
    {
       if(i%j == 0)
          break;
    }
    if(j * j > i)
    cout<< i << " ";
}


system("pause");

return 0;

}

Moze li mi neko reci zasto se ovdje provjera vrsi do koriejna broja?

Floki kaže...

Potreban ispis broja  koji se nalazi na unesenoj poziciji u Fibonaccijevom nizu.

#include <iostream>

using namespace std;

int main ()

{
    int broj, prvi = 0, drugi = 1, suma;
    cin>> broj;
   while(broj > 0)
    {
       suma = prvi + drugi;
       prvi = drugi;
       drugi = suma;
       broj--;
    }
    cout<< prvi << endl;
    return 0;
}

 

Moze li mi neko reci u ovom zadatku zasto je u while uvjet postavljen da je (broj>0)?

16 godina
odjavljen
offline
Re: Programiranje u C++-u - pitanja i odgovori
McKenzie 3000 kaže...

Niste me razumjeli, trebam napravit kviz u bilo kojem programu, programiranje nismo radili, tako da...

Bilo kojem, kažeš? Smijeh

 

HAI
I HAS A ANSWR1 ITZ "Da"
I HAS A ANSWR2 ITZ "Nisam ucio"

I HAS A COUNTER ITZ 0

VISIBLE "Je li ovo sa Bugovog foruma?"
GIMMEH INPUT1

VISIBLE "Zasto zicas odgovore?"
GIMMEH INPUT2

VISIBLE "Izaberi broj. 1 ili 2."
GIMMEH INPUT3

VISIBLE ":)"

BOTH SAEM INPUT1 AN ANSWR1, O RLY?
  YA RLY
    VISIBLE "Bravo, pogodio si di si bio"
    UPZ COUNTER!!1
  NO WAI
    VISIBLE "Ne znas ni di si"
OIC

BOTH SAEM INPUT2 AN ANSWR2, O RLY?
  YA RLY
    VISIBLE "Tak je, nije profesorica kriva"
    UPZ COUNTER!!1
  NO WAI
    VISIBLE "Ne lazi"
OIC

INPUT3, WTF?
 OMG "1"
  VISIBLE "LOLCODE"
  GTFO
 OMG "2"
  VISIBLE "Hahaha, pwnd"
  UPZ COUNTER!!1
  GTFO
 OMGWTF
  VISIBLE "Sto si to napisao?"
OIC

VISIBLE SMOOSH "Tocnih odgovora: " AN COUNTER AN " od 3"
VISIBLE ":)"
VISIBLE "Copyright sum_of_all_fears"
KTHXBYE

Kao interpreter možete koristiti ovo (obrišite primjer, c/p u polje, "can i has program" i gledajte desno, u stdout, to je "konzola"). Ili ako je netko avanturistički raspoložen, može skinuti "pravi" interpreter LCI, sa IO podrškom i svime! Smijeh

http://nighthawk-software.blogspot.com/
11 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Floki kaže...

 

#include <iostream>

using namespace std;

int main ()

{
    int broj, prvi = 0, drugi = 1, suma;
    cin>> broj;
   while(broj > 0)
    {
       suma = prvi + drugi;
       prvi = drugi;
       drugi = suma;
       broj--;
    }
    cout<< prvi << endl;
    return 0;
}

 

Moze li mi neko reci u ovom zadatku zasto je u while uvjet postavljen da je (broj>0)?

Zato jer, nam while kaze da radi nesto dok je broj koji smo unijeli veci od 0, znaci ako unsemo 0 izbacit ce nam 0 jer ce 'preskociti' while jer ne odgovara uvijetu koji kaze da broj koji se unese mora biti veci od 0, a ako unesemo broj koji je veci od nule onda ce raditi sve sta pise pod while, u ovo primjeru:

 

suma = prvi + drugi;

prvi = drugi;

drugi = suma;

broj--;

 

 

Poruka je uređivana zadnji put sub 23.11.2013 1:57 (tLeon).
11 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Bok!

 

Optimiziram kod jednog svog programa i neke radnje ponavljam više puta na nekim strukturama, pa mislim da je najbolje jednostavno cijeli taj kod staviti u jednu funkciju i jednostavno proslijediti adresu na strukturu. Mučio sam se sat vremena da sam pokušam skužiti, i onda barem 3 sata na netu probavao razne dijelove koda nažalost bez uspjeha.

 

#include <stdio.h>

struct ResultStructure  //globalna struktura
{
  float base;
  float height;
  float area;
}my;

void f(struct ResultStructure &area);

int main ()
{

    my.base = 12;
    my.height = 23;
    f(&my);

    printf("\n %d",my.area);
   return 0;
}


void f(ResultStructure &area)
{
   area.area = .5f * (area.base * area.height);

   printf("\n area u funkciji %d %d",area.area,&area.area);

}

 

ovo je neki jednostavni kod koji pokušavam natjerati da radi. Znači ima globalna struktura, čiju adresu šaljem funkciji i u funkciji hoću mjenjati vrijednosti.

Unaprijed hvala na pomoći

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

Pozdrav. Radi se o binarnom stablu...ako mi neko može pomoći

 

Neznam kako upisati novi broj, a da ovaj prethodni bude zapamćen...Meni samo zapamti zadnje upisane brojeve.(tj ispiše mi 10  16  14)

 

Hvala

 

evo koda

 

#include <iostream>

 

using namespace std;

 

struct cvor{

int broj;

cvor *lijevi;

cvor *desni;

};

 

 

 

void unos(cvor *&stablo, int broj)

{

   if(stablo == NULL)

   {

    cvor *novi;

    novi = new cvor;

    novi -> broj = broj;

    novi ->desni= NULL;

    novi ->lijevi= NULL;

    stablo = novi;

   }

 

   if(broj < stablo->broj)

   {

    cvor *novi;

    novi = new cvor;

    novi -> broj = broj;

    novi ->desni= NULL;

    novi ->lijevi= NULL;

    stablo ->lijevi = novi;

   }

   if(broj > stablo->broj)

   {

    cvor *novi;

    novi = new cvor;

    novi -> broj = broj;

    novi ->desni= NULL;

    novi ->lijevi= NULL;

    stablo ->desni = novi;

   }

}

void postorder(cvor *stablo)

{

   if (stablo != NULL)

 

     {

     postorder(stablo->lijevi);

     postorder(stablo->desni);

     cout << stablo ->broj<< " ";

     }

}

 

int main()

{

   cvor * stablo;

   stablo = NULL;

   int broj;

 

   unos(stablo,14);

   unos(stablo,12);

   unos(stablo,15);

   unos(stablo,16);

   unos(stablo,10);

 

   postorder(stablo);

 

   return 0;

}

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

for(j=2; j*j<=i; j++)
    {
       if(i%j == 0)
          break;
    }
    if(j * j > i)
    cout<< i << " ";

 

 

 

Pa zašto vršimo provjeru do sqrt?

Ako imamo neki broj n koji nije prim, to znači da je djeljiv sa nekim brojem a, a ako je djeljiv sa nekim brojem a, onda je djeljiv i sa nekim brojem b.

n = a * b

Samo jedan od faktora a i b može biti veći od korjena broja n, ali ne oba, kad bi oba bila veća, produkt a * b bi bio veći od n.

Primjer:

64 = 8 * 8

Ako je jedan faktor veći od sqrt 64, onda je drugi manji

64 = 2 * 32

Dakle, za provjeru da li je 64 prim broj nije potrebno ići dalje od 8, jer interval 2-8 sadrži manji faktor koji ide u paru sa većim faktorom, tj. kad provjerimo 2, ne trebamo provjeravati 32.

 

Drugi izraz ima programersko objašnjenje.

Ako petlja nije prekinuta sa breakom, odnosno ako nema u intervalu 2 - sqrt n djeljivog broja sa n, u tom slučaju je petljja prekinuta sa uvjetom završetka petlje j * j <= i, a to znači da je broj prim.

 

 

p.s. ako je što nejasno, pitaj ovdje, ne koristim pp za te svrhe. 

Poruka je uređivana zadnji put sub 23.11.2013 14:05 (Floki).
 
0 0 hvala 1
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

edit: rijesen je problem

Poruka je uređivana zadnji put sub 23.11.2013 16:47 (eagle05).
11 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
eagle05 kaže...

Sta treba ovdje uraditi ako se unese interval npr. od 0-20 da ne ispisuje 0 i 1 jer prosti brojevi su veci od 1?

Ja sam pokusao staviti if petlju ako se unese x ili y manje od 1 da ispise poruku da se moraju unijeti brojevi veci od 1 i to radi, ali ne mogu uraditi program na taj nacin

 

if ( x < 1 || y < 1 ) {

   cout<< " poruka " <<endl;

 

   system("pause");

   return 0;

}

 

http://programiranje.org/
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
prazna bilježnica kaže...

Bok!


#include <stdio.h>

struct ResultStructure  //globalna struktura
{
  float base;
  float height;
  float area;
}my;

void f(struct ResultStructure &area);

int main ()
{

    my.base = 12;
    my.height = 23;
    f(&my);

    printf("\n %d",my.area);
   return 0;
}


void f(ResultStructure &area)
{
   area.area = .5f * (area.base * area.height);

   printf("\n area u funkciji %d %d",area.area,&area.area);

}

 

ovo je neki jednostavni kod koji pokušavam natjerati da radi. Znači ima globalna struktura, čiju adresu šaljem funkciji i u funkciji hoću mjenjati vrijednosti.

Unaprijed hvala na pomoći

Pomiješao ti se C i C++, kao i specifikatori formata za printf.

 

1.

void f(struct ResultStructure &area);

U C++ u je kod deklariranja varijable definiranog strukturnog tipa suvišno navoditi 'struct' keyword. U C-u je to potrebno osim ako ne koristiš typedef.

 

2.

f(&my);

Ovako se ne radi pass by reference u C++, ali u C-u na taj način prosljeđuješ adresu neke varijable. Dakle ponovno, odluči se hoćeš li koristiti C ili C++ način. Trenutno ti je prototip deklariran tako da funkcija kao argument prima C++ referencu na strukturu, a u ovoj liniji ti funkciji prosljeđuješ memorijsku adresu strukture.

 

Ako će biti C način, onda funkcija 'f' kao argument treba primati pokazivač na strukturu, a argument joj prosljeđuješ ili pomoću operatora koji daje memorijsku adresu varijable ili pomoću pokazivača, dakle:

void f(ResultStructure *area);
...
f(&my);

 

a ako će biti C++ način onda funkcija 'f' prima referencu na strukturu, a kao argument joj prosljeđuješ samu strukturu (kompajler će to pretvoriti u potrebnu vrijednost) dakle:

void f(ResultStructure &area);
...
f(my);

 

3.

printf("\n %d",my.area);

'area' član strukture 'ResultStructure' je float tipa, '%d' je specifikator za integer tip (cijeli broj) tako da nećeš dobiti ono što očekuješ. '%f' je specifikator za floating point tip. Pogledaj ovdje kompletno uputstvo za printf funkciju.

 

4.

printf("\n area u funkciji %d %d",area.area,&area.area);

Opet korištenje pogrešnog specifikatora...

 

I samo komentar za kraj, kada imaš globalnu varijablu, nije potrebno okolo prosljeđivati njenu memorijsku adresu budući da se ona nalazi u dosegu cijele source datoteke, pa joj možeš izravno pristupati iz bilo koje funkcije unutar te iste source datoteke (a ako ju želiš učiniti vidljivom i u ostalim source datotekama onda koristiš 'extern' keyword)

To understand what recursion is, you must first understand recursion.
17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
ivek_sp kaže...

Pozdrav. Radi se o binarnom stablu...ako mi neko može pomoći

 

Neznam kako upisati novi broj, a da ovaj prethodni bude zapamćen...Meni samo zapamti zadnje upisane brojeve.(tj ispiše mi 10  16  14)

 

Hvala

 

Zato što u jedan te isti nod pridružuješ različite lijeve i desne nodove, pa ih na kraju uvijek imaš tri.

Probaj ovako sa rekurzijom, kad dođe do null noda dodaje na stablo, na lijevo ili desno ovisno o broju.

 

#include<iostream>
using namespace std;

struct cvor
{
    int broj;
    cvor* lijevi;
    cvor* desni;
};

void unos(cvor*& stablo, int broj)
{
    if (stablo == NULL)
    {
       stablo = new cvor;
       stablo->desni = NULL;
       stablo->lijevi = NULL;
       stablo->broj = broj;
    }
    else if (broj > stablo->broj)
       unos(stablo->desni, broj);
    else unos(stablo->lijevi, broj);
}

void postorder(cvor* stablo)
{
    if (stablo != NULL)
    {
       postorder(stablo->lijevi);
       postorder(stablo->desni);
       cout << stablo->broj << " ";
    }
}
int main()
{
    cvor* stablo = NULL;
    int broj;
    unos(stablo, 14);
    unos(stablo, 12);
    unos(stablo, 15);
    unos(stablo, 16);
    unos(stablo, 10);
    postorder(stablo);
    return 0;
}

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

Moze pomoc pocetniku?

upisi jedan troznamenkasti broj, ispisati broj njegovih znamenki... 

Moj PC  
0 0 hvala 0
11 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Rodić kaže...

Moze pomoc pocetniku?

upisi jedan troznamenkasti broj, ispisati broj njegovih znamenki... 

 

imat ces jedinice , desetice i stotice

 

jedinice = broj % 10;

stotice = broj / 100;

desetice = (broj - stotice*100) / 10;

http://programiranje.org/
16 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Evo jedno početničko pitanje:

 

Neka je dana deklaracija dvodimenzionalnog polja:
double elementi[100][50];
Ukoliko bismo elemente polja posložili u tablicu s 100
redaka i 50 stupaca, napišite naredbu koja ispisuje
element koji se nalazi u 30. retku i 18. stupcu.
(Treba napisati samo jednu liniju kôda u kojoj se ispisuje
se samo element, bez oznake za novi red)

 

Kako biste to riješili?

Zahvaljujem

Moj PC  
0 0 hvala 0
E-mail:
Lozinka:
 
vrh stranice