View previous topic :: View next topic |
Author |
Message |
SkyD
Joined: 04 Oct 2006 Posts: 67
|
Posted: Sat Jun 09, 2007 10:46 pm Post subject: pascal's: kartoshana pec pilsetam |
|
Sveiki.
Ir man jauztaisa katalogs ar visadiem datiem. Proti, tiek izmantots record.
Visi dati tiek savadīti failā. Beigu beigās viņus ir jaizvada pēc izdošanas vietas. Sākot ar pilsētas nosaukumu, kas sākas ar A, beidzot ar Z.
Iesākumā ņemu un daru tā:
burts := katalogs[i].izd_vieta;
burts2 := katalogs[i+1].izd_vieta;
burts := copy(burts,1,1);
burts2 := copy(burts2,1,1);
viss tas ir for ciklaa.. bet... galu galaa netieku klaat pashai metodei, kaa vinjus viltiigi samainiit.
Teiksim, ja katalogs[1].izd_vieta = 'Riga', un otrs ir katalogs[2].izd_vieta = 'Aizkraukle', tad logjiski sanak, ka pirmais bus jaizvada, kur ir Aizkraukle.
if burts2 > burts then katalogs[i].izd_vieta := katalogs[i+1].izd_vieta;
Sanak, ka Riga tiek aizvietota ar aizkraukli, bet nu kaa lai tagad aizvietoju aizkraukli ar rigu, ja riga jau ir parklata ar aizkraukli? :p
Lūdzu palīdziet. Pirmo reizi saskaros ar šādu problēmu. |
|
Back to top |
|
|
programmer
Joined: 15 Sep 2006 Posts: 71 Location: Latvija, Limbaži
|
|
Back to top |
|
|
SkyD
Joined: 04 Oct 2006 Posts: 67
|
Posted: Sat Jun 09, 2007 10:58 pm Post subject: |
|
Lab, bet nu tur tas pseidokods ir dīvains, tapēc es īsti nevaru saprast kā to visu pierakstīt paskalā. |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sat Jun 09, 2007 11:06 pm Post subject: |
|
Ko tieši tu nesaproti?
Tur jau nekas ne-paskālisks nav izmantots.
Procedūrai padod masīvu ar item'iem (taviem pilsētu recordiem).
Tiek lietots i un j integeri.
Tiek lietoti divi for cikli, viens no 1 līdz garumam, otrs no garumam līdz i+1.
Tiek lietota stringu salīdzināšana (A[j]<A[j-1] - tavi pilsētu nosaukumi). |
|
Back to top |
|
|
coderpp
Joined: 20 Aug 2005 Posts: 167 Location: Rīga, Koknese, Gajiena
|
Posted: Sat Jun 09, 2007 11:27 pm Post subject: |
|
Quote: |
if burts2 > burts then katalogs[i].izd_vieta := katalogs[i+1].izd_vieta;
Sanak, ka Riga tiek aizvietota ar aizkraukli, bet nu kaa lai tagad aizvietoju aizkraukli ar rigu, ja riga jau ir parklata ar aizkraukli? :p
|
Lai aizvietotu visu ierakstu dari ta:
Izveido mainigo var aa:tavs_record;
Pec salidzinashanas
aa := katalogs[i];
katalogs[i] := katalogs[i + 1];
katalogs[i + 1] := aa; |
|
Back to top |
|
|
SkyD
Joined: 04 Oct 2006 Posts: 67
|
Posted: Sat Jun 09, 2007 11:44 pm Post subject: |
|
coderpp, nestrādā tavs variants! :p |
|
Back to top |
|
|
coderpp
Joined: 20 Aug 2005 Posts: 167 Location: Rīga, Koknese, Gajiena
|
Posted: Sat Jun 09, 2007 11:49 pm Post subject: |
|
Kas tieshi? |
|
Back to top |
|
|
SkyD
Joined: 04 Oct 2006 Posts: 67
|
Posted: Sun Jun 10, 2007 12:02 am Post subject: |
|
Apsties pats:
|
|
Back to top |
|
|
coderpp
Joined: 20 Aug 2005 Posts: 167 Location: Rīga, Koknese, Gajiena
|
Posted: Sun Jun 10, 2007 12:11 am Post subject: |
|
paradi ka tu karto. |
|
Back to top |
|
|
spicausis
Joined: 23 Jan 2006 Posts: 85 Location: Teika
|
Posted: Sun Jun 10, 2007 12:13 am Post subject: |
|
Wīīīī, turbopaskāls un notepads.
Spriežot pēc šī,
Code: | aa := katalogs[i];
katalogs[i] := katalogs[i + 1];
katalogs[i + 1] := aa; |
un pēc tā, ka tev pēdējais ieraksts tiek saplēsts, es minēšu, ka tev vienā brīdī i kļūst par lielu, un rāda uz pēdējo ierakstu, līdz ar ko ieraksts katalogs[i + 1] tiek paķerts no nekurienes.
Spriežot pēc tā, ka ieraksti nav sakārtoti, un pēdējā ir Aina/Rīga, kas ir aizļurināta uz saraksta beigām un saplēsta, šķiet, ka tev algoritma būtību nav izdevies saprast. |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sun Jun 10, 2007 12:17 am Post subject: |
|
Tak ja negrib var arī nesaprast to algoritma būtību. Vajag tikai gandrīz vai burts burtā pārrakstīt kodu no wikipēdijas pseidokoda un viss. |
|
Back to top |
|
|
SkyD
Joined: 04 Oct 2006 Posts: 67
|
Posted: Sun Jun 10, 2007 12:24 am Post subject: |
|
elfz vajadzēja atvērt un parādīt faila satura uz notepad++ vai uz kautkā krutāka par parasto notepad? Un turbo paskals kategoriski aizliegts? Katrs izmanto, kā grib un ko grib.
Code: | for i:=1 to 1 do begin
for m:=i to 4 do begin
if (katalogs[m] > katalogs[m+1]) then begin
tmp := katalogs[m];
katalogs[m] := katalogs[m+1];
katalogs[m+1] := tmp;
end;
end;
end; |
bet kliedz, ka "operand types do not match operator" |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sun Jun 10, 2007 12:31 am Post subject: |
|
SkyD wrote: | elfz vajadzēja atvērt un parādīt faila satura uz notepad++ vai uz kautkā krutāka par parasto notepad? Un turbo paskals kategoriski aizliegts? Katrs izmanto, kā grib un ko grib. |
Tas jau nebija ļauni teikts. Vienkārši vecas un labas lietas parādītas - zin kā - gandrīz vai bērnības atmiņas :)
Quote: | bet kliedz, ka "operand types do not match operator" |
Un mums jāzīlē kristāla bumbā kurā rindā to saka?
Nu labi, šoreiz pazīlēšu - padomā kam tu gribi pielietot operatoru > lai kautko salīdzinātu. Un padomā kam viņš ir definēts (tb kam tu vari un kam nevari pielietot. |
|
Back to top |
|
|
coderpp
Joined: 20 Aug 2005 Posts: 167 Location: Rīga, Koknese, Gajiena
|
Posted: Sun Jun 10, 2007 12:32 am Post subject: |
|
Quote: |
for i:=1 to 1 do begin
for m:=i to 4 do begin
if (katalogs[m] > katalogs[m+1]) then begin
tmp := katalogs[m];
katalogs[m] := katalogs[m+1];
katalogs[m+1] := tmp;
end;
end;
end;
|
Kamdelj tev tur divi cikli vajadzigi?
Code: |
if (katalogs[m] > katalogs[m+1]) then begin
|
Tev jau vajag salidzinat izdoshanas vietu
Code: |
if (katalogs[m].vieta > katalogs[m+1].vieta) then begin
|
Un vel tas ko teica elfz
Quote: | es minēšu, ka tev vienā brīdī i kļūst par lielu, un rāda uz pēdējo ierakstu, līdz ar ko ieraksts katalogs[i + 1] tiek paķerts no nekurienes. |
|
|
Back to top |
|
|
SkyD
Joined: 04 Oct 2006 Posts: 67
|
Posted: Sun Jun 10, 2007 9:33 pm Post subject: |
|
da es vnk skatijos to bubble metodi, kā arī bubu teica, ka tur japielieto divi cikli, utt.. |
|
Back to top |
|
|
|