lista - czestotliwosc wystepowanie znakow w pliku......

0

Bardzobym prosila o pomoc w znalezieniu bledu, bo niedlugo mam kolosa i musze to zrozumiec.

Dzialanie programu: wypisuje wszystkie znaki jakie wystapily w pliku wraz z czestotliwoscia wystapienia, program jeszcze powienien napisac jaki znak wystepuje najczesciej i usunac liste (mile widziane wskazowki)

program czestotliwosc;
uses crt;
type   Plitera=^Tlitera;
       Tlitera=record
       c:char;
       k:integer;
       nast:Plitera;
       end;
var  poc:Plitera;
     plik:text;

procedure wczytaj;
var  plik:text;
     s:char;
begin
 poc:=nil;
 assign(plik,'dyskurs.txt');
 reset(plik);
 while not eof(plik) do
 begin
   read(plik,s);
   if not(s in [#32,#10,#13]) then
   wstaw(upcase(s));        <--------- w tym miesjcu pokazuje mi ze nie moze
                                       znalezc wstaw    
 end;
close(plik);
end;

procedure wstaw(c:char);
var p,q,r:Plitera;
begin
 r:=nil;
 q:=poc;
 while (q<>nil) and (q^.c<c) do
 begin
   r:=q;
   q:=q^.nast;
 end;
 if (q<>nil) and (c=q^.c) then q^.k:=q^.k+1
 else
 begin
   new(p);
   p^.c:=c;
   p^.k:=1;
   p^.nast:=q;
   if r=nil then poc:=p
   else r^.nast:=p;
 end;
end;

procedure wypisz;
var p:Plitera;
begin
 p:=poc;
 while p<>nil do
 begin
   writeln(p^.c,' ',p^.k:3);
   p:=p^.nast;
 end;
end;

begin
 wczytaj;
 wypisz;
 readkey;
end.


Z gory Dzieki za pomoc!!!!!

0

Program juz poprawilam tylko ze jak napisac procedure ktora by wypisala znak ktory wystapil najczesciej

zrobilam cos takiego i przy uruchamianiu wyskakuje mi blad exitcode 216. Co zrobilam zel???????

procedure wypiszMax;
var p,max:Plitera;
begin
  p:=poc;
  max:=poc;
  while p<>nil do
  begin
     p:=p^.nast;
     if max^.k<p^.k then max:=p;
  end;
write(max^.c);
end;
0

nie jestem pewien, ale chyba

p:=poc;
max:=poc;

poc to jest nazwa zmiennej, a nie typ, ponieważ wcześniej zdefiniowałaś go w var (na początku kodu)

0

To w takim razie jak to zmienic??

1 użytkowników online, w tym zalogowanych: 0, gości: 1