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ć?
[Pascal] znak najczęściej występujący w pliku
-
- 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
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..
-
- 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
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...
-
- 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
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ń:
-- 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..
Kod: Zaznacz cały
read(f,ost);
while not eof(f) do begin
read(f,akt);
if akt = ost then ...
...
ost:=akt;
end;