dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

pascal's: kartoshana pec pilsetam
Goto page 1, 2  Next
 
dev.gamez.lv Forum Index -> Programmēšana
View previous topic :: View next topic  
Author Message
SkyD



Joined: 04 Oct 2006
Posts: 67

PostPosted: 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
View user's profile
programmer



Joined: 15 Sep 2006
Posts: 71
Location: Latvija, Limbaži

PostPosted: Sat Jun 09, 2007 10:54 pm    Post subject:

Izmanto bubble sort algoritmu - http://en.wikipedia.org/wiki/Bubble_sort
Back to top
View user's profile Visit poster's website
SkyD



Joined: 04 Oct 2006
Posts: 67

PostPosted: 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
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: 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
View user's profile Send e-mail
coderpp



Joined: 20 Aug 2005
Posts: 167
Location: Rīga, Koknese, Gajiena

PostPosted: 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
View user's profile Send e-mail
SkyD



Joined: 04 Oct 2006
Posts: 67

PostPosted: Sat Jun 09, 2007 11:44 pm    Post subject:

coderpp, nestrādā tavs variants! :p
Back to top
View user's profile
coderpp



Joined: 20 Aug 2005
Posts: 167
Location: Rīga, Koknese, Gajiena

PostPosted: Sat Jun 09, 2007 11:49 pm    Post subject:

Kas tieshi?
Back to top
View user's profile Send e-mail
SkyD



Joined: 04 Oct 2006
Posts: 67

PostPosted: Sun Jun 10, 2007 12:02 am    Post subject:

Apsties pats:
Back to top
View user's profile
coderpp



Joined: 20 Aug 2005
Posts: 167
Location: Rīga, Koknese, Gajiena

PostPosted: Sun Jun 10, 2007 12:11 am    Post subject:

paradi ka tu karto.
Back to top
View user's profile Send e-mail
spicausis



Joined: 23 Jan 2006
Posts: 85
Location: Teika

PostPosted: 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
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: 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
View user's profile Send e-mail
SkyD



Joined: 04 Oct 2006
Posts: 67

PostPosted: 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
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: 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
View user's profile Send e-mail
coderpp



Joined: 20 Aug 2005
Posts: 167
Location: Rīga, Koknese, Gajiena

PostPosted: 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
View user's profile Send e-mail
SkyD



Joined: 04 Oct 2006
Posts: 67

PostPosted: 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
View user's profile
Display posts from previous:   
dev.gamez.lv Forum Index -> Programmēšana All times are GMT + 2 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group