[Pascal] znak najczęściej występujący w pliku

RSM
Użytkownik
Użytkownik
Posty: 197
Rejestracja: 1 lip 2011, o 21:41
Płeć: Mężczyzna
Lokalizacja: Internet
Podziękował: 9 razy
Pomógł: 13 razy

[Pascal] znak najczęściej występujący w pliku

Post autor: RSM »

Napisać funkcje, która zwraca znak występujący w pliku tekstowym największą liczbę razy pod rząd.

Mam problem z porównywaniem dwóch sąsiednich znaków, jak to można zrobić?
adambak
Użytkownik
Użytkownik
Posty: 1272
Rejestracja: 8 sty 2011, o 18:18
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 295 razy
Pomógł: 115 razy

[Pascal] znak najczęściej występujący w pliku

Post autor: adambak »

wczytujesz z pliku? no to znak po znaku.. w jednej zmiennech typu char trzymasz ostatni znak, a do drugiej przypisujesz aktualnie wczytywany.. jak już sprawdzisz wszystko co chcesz to ten aktualnie wczytany dajesz do zmiennej trzymającej ostatni wczytany znak.. i się zapętla..
RSM
Użytkownik
Użytkownik
Posty: 197
Rejestracja: 1 lip 2011, o 21:41
Płeć: Mężczyzna
Lokalizacja: Internet
Podziękował: 9 razy
Pomógł: 13 razy

[Pascal] znak najczęściej występujący w pliku

Post autor: RSM »

Mówisz o czymś takim:

Kod: Zaznacz cały

while not eof(f) do begin
         read(f,c);
         read(f,d);
         if c=d then...
?
adambak
Użytkownik
Użytkownik
Posty: 1272
Rejestracja: 8 sty 2011, o 18:18
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 295 razy
Pomógł: 115 razy

[Pascal] znak najczęściej występujący w pliku

Post autor: adambak »

nie do końca.. wczytywanie dwóch znaków naraz jest o tyle ryzykowne, że co jeśli już po pierwszym będzie eof? nie sprawdzasz tego, ale to chyba najmniej istotne, dwa znaki naraz to po prostu za dużo i tyle.. zrób tak, że pierwszy wczytasz ręcznie, a potem w pętli resztę tzn coś w ten deseń:

Kod: Zaznacz cały

read(f,ost);
while not eof(f) do begin
  read(f,akt);
  if akt = ost then ...
  ...
  ost:=akt;
end;
-- 28 sty 2012, o 20:02 --wtedy Twoim niezmiennikiem w pętli jest to że ost to ostatnio wczytany znak(ostatnio znaczy w poprzednim obiegu pętli), a akt to aktualnie wczytywany i przerabiany.. w ten sposób jest porządek i się nie pogubisz..
RSM
Użytkownik
Użytkownik
Posty: 197
Rejestracja: 1 lip 2011, o 21:41
Płeć: Mężczyzna
Lokalizacja: Internet
Podziękował: 9 razy
Pomógł: 13 razy

[Pascal] znak najczęściej występujący w pliku

Post autor: RSM »

Dziękuje za pomoc
ODPOWIEDZ