Witam
Programuje w pascalu i mam problem z zad. a dokładniej z kasowaniem elementu i filtrowaniem tablicy. Prosiłbym o rady i sprawdzenie kodu.
Kod:
program tablica22;
uses crt;
type tablica=array[1..30] of integer;
function menu:char; {funkcja}
begin
clrscr;
writeln('D Dodawanie elementu');
writeln('S Sortowanie tablicy');
writeln('K Kaswoanie elementu');
writeln('F Filtrowanie tablicy'); {jezeli napiszemy 3 to ma nam wyswietlic ile jest 3 w komorkach}
writeln('W Wyswietlanie tablicy');
writeln('E Koniec programu');
menu:=upcase(readkey);
end;
{-------------------------------}
procedure dodaj(var ile:integer; var t:tablica); {procedura przez zmienna}
begin
ile:=ile+1;
write('Podaj ',ile,' element :');
readln(t[ile]);
end;
{-------------------------------}
procedure wyswietl(ile:integer; var t:tablica);
var i:integer;
begin
for i:=1 to ile do
writeln(t[i]);
writeln('macisnij enter');
readln;
end;
{-------------------------------}
{procedure kasuj(var ile:integer; var t:tablica);
var i:integer;
begin
for i:=1 to ile do
ile:=ile-1;
write('Podaj ktory element ma usunac: ');
readln(t[ile]);
end; }
procedure sortuj(var os:integer; var t:tablica);
var i,j,ile:integer;
begin
for i:=1 to 4 do
for j:=i to 4 do
if t[j]>t[j+1] then
begin
os:=t[j];
t[j]:=t[j+1];
t[j+1]:=os;
end;
for i:=1 to 5 do
write(t[i]:4);
readln;
end;
var tb:tablica;
j:integer;
koniec:boolean;
begin
koniec:=false;
j:=0;
repeat {zaczynamy petle}
case menu of
'D':dodaj(j,tb);
'W':wyswietl(j,tb);
{'K':kasuj(j,tb); }
'S':sortuj(j,tb);
'E':koniec:=true;
end;
until koniec;
end.