Most tanulók free pascalban programozni de még nem megy annyira. Angolon meg most vesszük a rendhagyó multideju igék három alakját. Szóval szeretnék erre egy programot írni de még nem tuDok fajlt kezelni dnatok írni nekem egy egszerubbet?
Itt az első része, bár eljárásokkal stb sokkal elegánsabb lett volna és valószínűleg kapok is a többiektől ezért. Ez az első rész, a "csak feltöltés".
Sajnos még nem tudtam a gyakorlatban tesztelni :S
program haromalak;
Uses CRT;
Type
szavak=record
jelen:string;
mult:string;
harmadik:string;
End;
Var
sz:szavak;
f : Text;
ch : Char;
begin
clrscr;
writeln;
write('1: feltöltés, 2: tanulás, "Q": kilépés: ');
ch:=readkey;
case ch of
'1' : begin
assign(f,'szavak.txt');
{$i-}
append(f);
{$i+}
if ioresult<>0 then rewrite(f);
repeat
writeln('szavak bevitele');
writeln;
write('jelen idő: ');
readln(sz.jelen);
writeln(f,sz.jelen);
writeln;
write('múlt idő: ');
readln(sz.mult);
writeln(f,sz.mult);
writeln;
write('Harmadik alak: ');
readln(sz.harmadik);
writeln(f,sz.harmadik);
writeln;
write('Kíván még megadni szavakat? (i/n) ');
ch:=(upcase(readkey));
until (ch='N');
end;
end;
close(f);
end.
Itt a második része is, csak hogy miért nem fordul le, arra nem jövök rá, mert rég foglalkoztam rekordokkal, elvileg a típusmegadás is stimmel, nem tudom mi lehet a baja :S
program haromalak;
Uses CRT;
Type
szavak=record
jelen:string;
mult:string;
harmadik:string;
End;
Var
sz:szavak;
f : file of szavak;
ch : Char;
szo:string;
jo,nem:word;
begin
jo:=0;
nem:=0;
repeat
clrscr;
writeln;
write('1: feltöltés, 2: tanulás, "Q": kilépés: ');
ch:=readkey;
case ch of
'1' : begin
assign(f,'szavak.txt');
{$i-}
reset(f);
{$i+}
if ioresult<>0 then rewrite(f);
repeat
writeln('szavak bevitele');
writeln;
write('jelen idő: ');
readln(sz.jelen);
write(f,sz.jelen);
writeln;
write('múlt idő: ');
readln(sz.mult);
write(f,sz.mult);
writeln;
write('Harmadik alak: ');
readln(sz.harmadik);
write(f,sz.harmadik);
writeln;
write('Kíván még megadni szavakat? (i/n) ');
ch:=(upcase(readkey));
until (ch='N');
close(f);
end;
'2': begin
assign(f,'szavak.txt');
{$i-}
reset(f);
{$i+}
if ioresult<>0 then
begin
writeln('Nincs még tanulófájl!');
halt(1);
end;
writeln;
writeln('tanulás');
read(f,sz.jelen);
writeln;
write(sz.jelen,' szó múlt időben: ');
readln(f,sz.mult);
readln(szo);
if szo<>sz.mult then
begin
inc(nem);
writeln('Nem jó, a helyes válasz ',sz.mult,' lett volna.');
end else
begin
inc(jo);
writeln('Helyes válasz!');
end;
writeln;
write('harmadik alak:');
read(f,sz.harmadik);
readln(szo);
if szo<>sz.harmadik then
begin
inc(nem);
writeln('A helyes válasz ',sz.harmadik,' lett volna.');
end
else
begin
writeln('Helyes válasz!');
inc(jo);
end;
end;
end;
writeln;
writeln('jó válaszaid száma: ',jo,' rossz válaszaid: ',nem);
writeln;
write('szeretnéd még használnia programot? ');
ch:=(upcase(readkey));
until(ch='Q');
close(f);
end.
Mondom a sorrendet mit tanulj:
1. magyart
2. angolt
3. pascal-t
A programban mi a hiba amit írtam neki?
Első programnál rájöttem hogy text fájl hááát az nem túl szerencsés :D kijavítottam hogy rekord típusú legyen és nem tetszikneki valami
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!