Pereiti prie turinio

Rekomenduojami pranešimai

Var vardas : String;

skaicius, i : integer;

VARD[100] : string, SKAIC[100] : integer;

 

for i:=0 to MasyvoDydis do

for j:=0 to MasyvoDydis do begin

if(VARD[j] > VARD[j+1]) then begin //tada reikia sukeist juos vietom

vardas:=VARD[j];

VARD[j]:=VARD[j+1];

VARD[j+1]:=vardas;

//pakeitei vietom vardus, bet ir skaicius reikia pakeist, taigi:

skaicius:=SKAIC[j];

SKAIC[j]:=SKAIC[j+1];

SKAIC[j+1]:=skaicius;

//gavosi surikiuoti pagal abecele abu masyvai

end; //jeigu vienas string mazesnis uz kita, juos apkeiti vietom

//ir taip praeini per visus.

//Tas pats ir su didziausio radimu, tik lygini ne string,

//o integerius. Vsio.

end;

 

Nemoku pascal kalbos, per metus jau pamiršau, su c++ būčiau parašęs su nuskaitymais ir t.t., bet principas tas pats.

Redagavo geras1448
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Parašiau kažką panašaus, bet gaunu klaidą peržengti rėžiai Nr. 201 <_<

program Bevarde0;
var n:integer;
V:array[1..100] of string[10];
S:array[1..100] of integer;

procedure skaitymas ();
var Df:text;
i:integer;

begin
Assign(Df,'Duom.txt'); Reset(Df);
Readln(Df,n);
for i:=1 to n do
readln(Df,V[i],S[i]);
Close(Df);
end;

procedure rikiavimas();
var i:integer;
pradv:string[10];
prads:integer;
begin
   pradv := V[1];
   prads := S[1];
       for i:=1 to 5 do
       begin
           if V[i] > V[i+1] then
           begin
           pradv := V[i];
           V[i] := V[i+1];
           V[i+1] := pradv;
           prads:= S[i];
           S[i] := S[i+1];
           S[i+1] := prads;
           end;

       end;

end;

procedure rasymas();
var Rf:text;
i:integer;
begin
Assign(Rf, 'Rez.txt');Rewrite(Rf);
for i:=1 to n do
Writeln(Rf, V[i],' ',S[i]);
Close(Rf);

end;


begin
skaitymas;
rikiavimas;
rasymas;
 WriteLn('Labas');
 Readln;
end.

 

Duomenų failas:

5
Petras		150
Juozas		560
Kartis		900
Juozas		8799	
Grazvidas	59000

Redagavo lukas653
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nelabai supratau kaip tu per vieną ciklą gali surikiuot :D kai pavyzdį padariau aiškiai su 2 ciklais. Peržengti rėžiai, tai kreipiesi į masyvo elementą, kurio nėra. Tarkim MASYVAS[100]. Ten skaičiai kažkokie. Tačiau tu sugalvoji MASYVAI[100]:=5; bet tokios reikšmės nėra, nes MASYVAS turi 100 elementų nuo 0 iki 99. Konkrečiai tavo kode tai turbūt V[i+1], nes statiniam masyve skirta vietos, bet tu kreipiesi į neužpildytą atmintį, t.y. tau išmetą klaidą, nes nėra grąžinamos reikšmės. Todėl aš statinių masyvų nelabai naudoju, patariu dinaminius. Klaida turbūt cikle, nes turėtų būt for i:=1 to n-1, o ne to n. Pradžioj prieš viską pabandyk gal for i:=0 to 99 V ir S priskirt pradines reikšmes kokias. Turėtų veikt tada. Ir antrą ciklą dadėk, per vieną neina surikiuot.

Redagavo geras1448
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...