Pereiti prie turinio

Rekomenduojami pranešimai

Susitvarkiau !!! klaida buvo tame, kad dariau:

while not Eof(d) do
 begin
    while not Eoln(d) do   <- sito nereikejo. Be sito viskas veikia. Tik nezinau kame problema buvo.
    begin
       readln(d,eil[i]);
       eil[i]:=eil[i]+' ';  
       i:=i+1;
       writeln(eil[i]);
       TrimRight(eil[i])
    end;
 end;

cia jau veikiantis programos kodas. Programa perraso zodzius atvirkscia tvarka:

 

program project1;
  type masyvas_eil  = array [1..20] of  string;
       masyvas_tarp = array [0..100] of integer;
   var d,r:text;
       R_vardas,be_tarpu,zodis,apverstas:string;
       eil:masyvas_eil;
       tarpas:masyvas_tarp;
       i,j,eil_sk,sk,k,l,pradzia,kiek_simboliu, ilgis:integer;
begin
 Assign(d,'duomenys.txt');
 reset(d);
 Write('Iveskite rezultatu failo pavadinima: ');
 Readln(R_vardas);
 Assign(r,R_vardas+'.txt');
 rewrite(r);
 i:=1;

 while not Eof(d) do
 begin
       readln(d,eil[i]);
       eil[i]:=eil[i]+' ';  //eiltutes nuskaitomos i masyva
       i:=i+1;
       writeln(eil[i]);
 end;

 eil_sk:=i-1;               //eiluciu skaicius

 for i:=1 to eil_sk do
 begin
    sk:=1; tarpas[0]:=0; be_tarpu:='';
    for j:=1 to length(eil[i]) do
    begin
       if (eil[i][j] =' ') then begin
                                 tarpas[sk]:=j;                       // i-tosios eilutes tarpai sumuojami ir ju pozicijos irasomos i masyva
                                 sk:=sk+1;
                                 end else
                                 be_tarpu:=be_tarpu+eil[i][j];        // i-toji eilute irasoma i masyva be tarpu
    end;

    pradzia:=1;

    for k:=1 to sk-1 do
    begin
         kiek_simboliu:=tarpas[k]-tarpas[k-1]-1;
         if kiek_simboliu=0 then write(r,' ')
                            else begin
                                 apverstas:='';
                                 zodis:=copy(be_tarpu,pradzia,kiek_simboliu);
                                     for l:=1 to kiek_simboliu do
                                     apverstas:=zodis[l]+apverstas;
                                 write(r,apverstas,' ');
                                 pradzia:=pradzia+kiek_simboliu;
                                 end;
    end;
 writeln(r);
 end;
 close(d);
 close(r);
end.

Redagavo Mano slapyvardis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Susitvarkiau !!! klaida buvo tame, kad dariau:

while not Eof(d) do
 begin
    while not Eoln(d) do   <- sito nereikejo. Be sito viskas veikia. Tik nezinau kame problema buvo.
    begin
       readln(d,eil[i]);
       eil[i]:=eil[i]+' ';  
       i:=i+1;
       writeln(eil[i]);
       TrimRight(eil[i])
    end;
 end;

 

O kam to while not Eoln(d)? Juk readln nuskaito visa eilute, o ne po viena simboli.

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ą...