[ SuperC @ 13.11.2006. 11:56 ] @
Potrebno je napisati program koji ce bilo koje cifre (max 50) ucitati i sortirane iscitati. Prilikom sortiranja potrebno je koristiti rekurzivni algoritam. Pored toga anci maximum i staviti ga na prvo mjesto liste. Gdje je greska?

#include <iostream>
using namespace std;
void sortiere(int a, int e);
int werte[]={34, -45, 2, 3, -4, 5, 1, -8, 9, 1, 23, 21};
char antw;

int main ()
{
start:

sortiere (0, size of (werte/4);
for (int r=0; r< sizeof(werte)/4; r++)
cout << werte [r]<< " ";

cout << "nocheinmal?: ";
cin >> antw;

if (antw == "n")
{
goto ende;
}
else
{
goto start;
}
ende;
return 0;
}

ende;
return 0;
}

if (a<e)
{
int gr =werte[a];
int zw;
int index;
for (int i=a; i<e; i++)
{
if (werte >gr)
gr=werte ;
index = i;
{
{
if (index!=0)
{
zw=werte [index];
werte [index] = werte [a];
werte [a]=zw;
}
sortierung (a+1), e);
}
}

[ SuperC @ 13.11.2006. 11:58 ] @
kad kompajliram kaze mi sljedece:

h5b12.c: In function 'int main()':
h5b12.c:11: error: 'size' was not declared in this scope
h5b12.c:18: error: ISO C++ forbids comparison between pointer and integer
h5b12.c:26: error: 'ende' was not declared in this scope
h5b12.c:20: error: label 'ende' used but not defined
h5b12.c: At global scope:
h5b12.c:30: error: expected unqualified-id before 'if'
[ X Files @ 13.11.2006. 12:23 ] @
Uvek "nazubljuj" C++ kod i stavi ga između [ code ] ... [ /code ] tagova (bez razmaka).

Kod koji si dao uopšte ne liči na C/C++ jezike, već je totalni haos nastao:

1. nestručnim pretvaranjem Pascal koda na polu C polu C++ jezik
2. pogrešnim prepisivanjem/prekucavanjem

Citat:

sortiere (0, size of (werte/4);

Ovde treba (valjda):
sortiere (0, sizeof (werte) /4); // fali zagrada, sizeof je jedna reč, takođe umesto ono 4 bi valjda trebalo sizeof(int)...

Citat:

if (antw == "n")

if (antw == 'n')

Citat:

goto ende;

goto će te "zakopati" kod pojedinih profesora, ali to već ne mogu da tvrdim.

Citat:

ende;
return 0;
}

ende;
return 0;
}

Ovo je po mom mišljenju dvaput kucano, pri čemu TAČKA ZAREZ treba da bude DVOTAČKA...

Dalje, fali početak te rekurzivne funkcije sortiere() čiji je prototip dat u vrhu.

Opet fale zagrade jer nije dobro prekucano i sl.

Uh...
[ SuperC @ 13.11.2006. 12:43 ] @
goto nece biti problem, posto ovdje nemaju nista protiv iste, a sto se tice copy paste kopiram ovom sa sun microssytems terminala na kojem sam kucao program, moguce da saam dvaput isto, jer sam iz dva dijela stavljao, evo kad ispravim ovo sto si mi rekao dobijem sljedeci kod:

Code:

#include <iostream>
using namespace std;
void sortiere(int a, int e);
int werte[]={34, -45, 2, 3, -4, 5, 1, -8, 9, 1, 23, 21};
char antw;

int main ()
{
start:

sortiere (0, sizeof (werte)/4);
for (int r=0; r< sizeof(werte)/4; r++)
cout << werte [r]<< "  ";

cout << "nocheinmal?: ";
cin >> antw;

if (antw == 'n')
{
goto ende;
}
else
{
goto start;
}
ende:
return 0;
}

if (a<e)
{
int gr =werte[a];
int zw;
int index;
for (int i=a; i<e; i++)
{
if (werte [i]>gr)
gr=werte [i];
index = i;
{
{
if (index!=0)
{
zw=werte [index];
werte [index] = werte [a];
werte [a]=zw;
}
sortiere(a+1), e);
}
}



i sad je jedin greska sljedece;

Code:
h5b12.c:30: error: expected unqualified-id before 'if'
[ X Files @ 13.11.2006. 13:00 ] @
Obrati sad pažnju na deo koda:

Code:

if (a<e) [red]// <--- pre ovoga treba prototip te rekurzije: void sortiere(int a, int e) { [/red]
{
int gr =werte[a];
int zw;
int index;
for (int i=a; i<e; i++)
{
if (werte [i]>gr)
gr=werte [i];
index = i;
{ [red]// <-- ovo nema smisla ( dva { ), [red]
{
if (index!=0)
{
zw=werte [index];
werte [index] = werte [a];
werte [a]=zw;
}
sortiere(a+1), e); [red]opet fali zagrada[/red]
}
}

Bolje ponovo pronadji 'original', pre će se ceo program uraditi nego ovako ispravljati u startu pogrešan kod.

[ SuperC @ 13.11.2006. 13:06 ] @
Poenta je sto nije original, nego sto smo prije nekoliko dana radili funkcije i odmah smo presli, jer je intenzivno sve, nije kao kod nas, na zadatke.

ja sam na pocetku definisao void sortieere (int a, int e), da li to znaci da ih moram jos jednom postaviti ovdje gdje si rekao? ujedno sam popravio greske sa zagradama i kompajlirao i sada je greska sljedeca;

Code:
h5b12.c:31: error: expected unqualified-id before 'if'

[ SuperC @ 14.11.2006. 12:58 ] @
hajde sto ja ne mogu da pronadjem gresku, ipak manje od mjesec dana ucim i citam knjigu o C++, no zar stvarno niko ne zna, ne zeli, itd da mi pomogne da nadjem razlog zasto nece da se kompajlira bez greske??

Da znam, sigurno ne bih postavljao ovakvo laicko pitanje.
[ X Files @ 15.11.2006. 07:23 ] @
Citat:

hajde sto ja ne mogu da pronadjem gresku, ipak manje od mjesec dana ucim i citam
knjigu o C++, no zar stvarno niko ne zna, [...]

Netačno.
Citat:

[...] ne zeli, itd da mi pomogne da nadjem razlog zasto nece da se kompajlira bez greske??

Tačno.

Moraš da shvatiš da niko na ovom forumu nije ničija besplatna tehnička podrška. Da bi ti
neko pomogao da rešiš problem, moraš ti prvi da se potrudiš najviše i da pitaš šta ti nije
jasno.

Svako ko pogleda kod koji si dao, jako će brzo od njega odusati jer:

1. nisi ga "nazubio" u duhu C++ jezika (nije lak za čitanje i niko neće uopšte da gubi vreme)

2. nisi se potrudio barem da "upariš" zagrade, valjda ti je to jasno iz matematike,
npr: 1+2)*3)
(ovde fali zagrada ispred 1)

3. na osnovu koda koji si pokazao, očigledno je da se radi o nekom kršu za koji je pitanje
da li se uopšte može popraviti, što dalje vodi ka tome da svako od njega odustaje, i da
je lakše krenuti od nule nego "ispravljati krivu Drinu".

4. Nisi rekao šta ti je *konkretan* problem:
a) da li da napraviš rekurzivni algoritam za sortiranje brojeva
b) popraviš baš taj kod koji si pokazao

Ako se radi o onome pod (a), na netu imaš stotite gotovih primera za to, samo treba
da upakuješ. Pogledaj na primer ovde:
http://cis.stvincent.edu/html/tutorials/swd/recur/recur.html
... imaš dva algoritma za rekurzivno sortiranje.

Nemoj ovo da shvatiš kao kritiku, nego kao savet kako postaviti pitanje da zainteresuješ
druge da ti pomognu.
[ Toxter @ 16.11.2006. 12:31 ] @
Citat:
X Files:
... npr: 1+2)*3)
(ovde fali zagrada ispred 1)
...


U stvari fale dve zagrade

Slazem se da je kod uzas i da mi se neda ni da ga citam, a kamoli da analiziram.

[ X Files @ 16.11.2006. 13:00 ] @
Citat:

U stvari fale dve zagrade :D

Gle, vaistinu :)
[ Duke Nukem @ 16.11.2006. 15:50 ] @
XFiles

Molim te ti kao moderator vidi ima li mogucnosti da se ovaj forum podeli na dva dela:
1 .prvi posvecen pomoc za seminarske, diplomske, domace i sl. radove
2. drugi posvecen ostlalim cestitim ljubiteljima BCB, VC, GCC, (izvinte ako sam nekoga zaboravio)
[ DjoleReject @ 21.11.2006. 16:16 ] @
Cemu bi sluzio ovaj deo za seminarske??? Jedno od pravila je da ce se svakom pomoci, ali nikome odradjivati posao. Ponekad se cak i odradi posao ljudima ako su bili bar dovoljno pristojni da pisu po pravilima. Jos jedna stvar je u tome da oni koji se dugo bave ovim jezikom valjda ga i vole, pa ih malo nervira kad je neko u fazonu - meni C++ ide na k****, aj` vi da mi odradite, pa da ne moram ni da ga ucim. Ako ne zelis da ga ucis - bavi se necim drugim, a ako zelis, ovde ces naci mnogo prijatelja spremnih da pomognu.