Avatar billede jajan Nybegynder
19. maj 2002 - 10:42 Der er 5 kommentarer og
1 løsning

oversaette en algorithm

Hej,
Jeg er meget ny i C++ og er gaaet igang med at laere algoritmer. Jeg har lidt svaert ved at oversaette en algoritme til C++ og ville hoere om der er en der kan hjaelpe mig med denne.

Input : file, list, len
Output: list, len
Local vars: buffer, position

1.    Initialize len to zero
2.    Read a number from the file and place it in buffer
3.    As long as the file is not empty and len < MAX_LEN do the following steps
3.1.    Position= find the correct position for the value stored in buffer in the list
3.2.    Move the elements in the list from position to the end of list [position .. len-1] to left to make room for the new element stored in buffer
3.3.    Place the value stored in buffer in list [position]
3.4.    Increment the len
3.5.    Read a new number from the file and place it in buffer

4.    If file is still not empty print a warning that only the first MAX_LEN elements will be processed

Paa forhaand tak!
Avatar billede chries Nybegynder
19. maj 2002 - 12:05 #1
Position= find the correct position for the value stored in buffer in the list

hvad er den korekte position ? soteret efter størrelse ?
Avatar billede jajan Nybegynder
20. maj 2002 - 08:47 #2
ja, jeg glemte at fortaelle at jeg har en function der hedder getfunction (const int list[],int len, int val)

saa 3.1 vill jeg oversaette med:
position= getfunction(list, len, buffer);

Jeg har i grove traek oversat algoritmen, men det er meget loest og jeg foeler at jeg har mange huller.

len=0;
infile >> buffer;
while(infile &&len < MAX_LEN)
{
  position= getfunction(list, len, buffer);
  list[position]=buffer;
  len++;
  infile>>buffer;
}
shift_right (list, len, position) //function der rykker til hoejre og goer plads til goer plads til nye vaerdier

jeg ved ikke om det er rigtigt taenkt, maaske du kan hjaelpe med det?
Paa forhaand tak!
Avatar billede chries Nybegynder
20. maj 2002 - 12:03 #3
du mangler at gøre plads:
position= getfunction(list, len, buffer);
3.2
list[position]=buffer;

og test og filen er nået enden er vist
!infile.eof() && (muligvis virker infile && også, men har jeg aldig set før)
Avatar billede chries Nybegynder
20. maj 2002 - 12:04 #4
..test af..
Avatar billede jajan Nybegynder
24. maj 2002 - 11:20 #5
Mange tak for dine svar. Undskyld at det tog mig saa lang tid at vende tilbage, men har vaeret bortrejst.
Hvis du laver et svar kan du faa dine points som fortjent.
Endnu engang tak!
Avatar billede chries Nybegynder
24. maj 2002 - 12:27 #6
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester