Zacząłem pisać program na informatykę ale nie czuje się pewnie w tym temacie dlatego mam parę pytań. Program kompilowany był w free pascalu.
Przepraszam ze bez wciec ale na razie łatwo się w tym połapać.
1.Podczas kompilacji wywala syntax error że potrzebne jest begin zamiast end na końcu. Nie mam pojęcia co z tym zrobić.
- Mam problem z napisaniem procedury wyświetlającej osoby z najwyższymi wynikami
program politechnika;
uses crt;
Const
haslo='poli';
Type uczen=record
lp:integer;
imie:string[20];
nazw:string[20];
mat:byte;
fiz:byte;
end;
var
tab: array[1..5] of uczen;
plik: file of uczen;
wprowadz:string;
petla:integer;
znak:string;
procedure wpis; {procedura wpisująca dane uczniów}
var
z,x:byte;
begin
begin
clrscr;
write('Prosze podac ilosc uczniow aplikujacych sie na uczelnie: ');
readln(x);
assign(plik, 'aplikanci.txt');
rewrite(plik);
for z:=1 to x do
begin
clrscr;
write('Lp; ');
readln(tab[z].lp);
write('Imie; ');
readln(tab[z].imie);
write('Nazwisko; ');
readln(tab[z].nazw);
write('Ilosc punktow z matematyki; ');
readln(tab[z].mat);
write('Ilosc punktow z fizyki; ');
readln(tab[z].fiz);
write(plik,tab[z]);
clrscr;
end;
close(plik);
end;
end;
procedure wypi; {procedura wypisująca wprowadzone dane}
var z:byte;
begin
assign(plik,'aplikanci.txt');
reset(plik);
while not eof(plik) do
begin
read(plik,tab[z]);
with tab[z] do
begin
writeln;
write('Lp: ');
writeln(tab[z].lp);
write('Imie: ');
writeln(tab[z].imie);
write('Nazwisko: ');
writeln(tab[z].nazw);
write('Ilosc punktow z matematyki: ');
writeln(tab[z].mat);
write('Ilosc punktow z fizyki: ');
writeln(tab[z].fiz);
end;
end;
end;
procedure menu; {menu}
var
w :byte;
begin
writeln('||||||||||||||||POLITECHNIKA WARSZAWSKA||||||||||||||||');
writeln('1. Wpisz osoby aplikujace na uczelnie.');
writeln('2. Wypisz osoby wpisane.');
writeln('3. Najwyzszy wynik z matematyki');
writeln('4. Najwyzszy wynik z fizyki');
writeln('5. Najwyzsza srednia');
writeln('6. Zamknac program.');
writeln('||||||||||||||||||||||||||||||||||||||||||||||||||||||||');
readln(w);
begin
if w=1 then begin wpis;
menu;
end else
if w=2 then begin wypi;
menu;
end else
end;
end;
begin {hasło do programu, tak żeby był fajniejszy :D}
petla:=1;
repeat
wprowadz:='';
if petla=10 then
begin
ClrScr;
GotoXY(31,12);
TextColor(Red+Blink);
Write('Brak dostępu!');
Delay(1500);
Exit;
end;
ClrScr;
GotoXY(31,12);
TextColor(White);
Write('Podaj haslo: ');
repeat
znak:=readkey;
if znak<>#13 then
begin
write('*');
wprowadz:=wprowadz+znak;
end;
until znak=#13;
petla:=petla+1;
until wprowadz=haslo;
clrscr;
delay(3000);
gotoxy(10,12);
textcolor(green);
writeln('Dostęp przyznany' );
delay(3000);
textcolor(white);
gotoxy(16,18);
write('Witam w programie');
delay(3000);
clrscr;
begin
menu; {wywołanie menu po wpisaniu hasła, niestety program żąda wpisania na końcu begin zamiast end i nie mam pojęcia co z tym zrobić}
end;
end;
end.