Wstęp do programowania/Pliki/Ćwiczenia: Różnice pomiędzy wersjami
Nie podano opisu zmian |
|||
Linia 17: | Linia 17: | ||
Napisz funkcję sprawdzającą, czy dwa pliki tekstowe o podanych nazwach mają tę samą liczbę wierszy. | Napisz funkcję sprawdzającą, czy dwa pliki tekstowe o podanych nazwach mają tę samą liczbę wierszy. | ||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> | {{wskazowka| 1||<div class="mw-collapsible mw-made=collapsible mw-collapsed"><div class="mw-collapsible-content" style="display:none"> | ||
<div class="mw-collapsible-content" style="display:none"> | |||
Najprostsze rozwiązanie polega na policzeniu liczby linii w jednym pliku, w drugim pliku i potem porównanie tych liczb. | Najprostsze rozwiązanie polega na policzeniu liczby linii w jednym pliku, w drugim pliku i potem porównanie tych liczb. | ||
</div> | </div> | ||
</div> | </div>}} | ||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> | {{rozwiazanie| 1||<div class="mw-collapsible mw-made=collapsible mw-collapsed"><div class="mw-collapsible-content" style="display:none"> | ||
<div class="mw-collapsible-content" style="display:none"> | |||
'''function''' LiczLinie(f:Text):integer; | '''function''' LiczLinie(f:Text):integer; | ||
// f otwarty plik tekstowy | // f otwarty plik tekstowy | ||
Linia 56: | Linia 53: | ||
Zaletą tego rozwiązania jest możliwość powtórnego wykorzystania funkcji LiczLinie do innych celów, a wadą konieczność czytania obu plików, nawet gdy jeden jest bardzo mały, a drugi bardzo duży. | Zaletą tego rozwiązania jest możliwość powtórnego wykorzystania funkcji LiczLinie do innych celów, a wadą konieczność czytania obu plików, nawet gdy jeden jest bardzo mały, a drugi bardzo duży. | ||
</div> | </div> | ||
</div> | </div>}} | ||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> | {{wskazowka| 2||<div class="mw-collapsible mw-made=collapsible mw-collapsed"><div class="mw-collapsible-content" style="display:none"> | ||
<div class="mw-collapsible-content" style="display:none"> | |||
Można też wczytywać po jednej linii z każdego pliku, aż któryś z nich się nie skończy. | Można też wczytywać po jednej linii z każdego pliku, aż któryś z nich się nie skończy. | ||
</div> | </div> | ||
</div> | </div>}} | ||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> | {{rozwiazanie| 2||<div class="mw-collapsible mw-made=collapsible mw-collapsed"><div class="mw-collapsible-content" style="display:none"> | ||
<div class="mw-collapsible-content" style="display:none"> | |||
'''function''' RownoLinijne(s1,s2:string):boolean; | '''function''' RownoLinijne(s1,s2:string):boolean; | ||
'''var''' f1,f2:Text; | '''var''' f1,f2:Text; | ||
Linia 91: | Linia 86: | ||
Czytamy po jednej linii z każdego pliku, aż co najmniej jeden z nich się skończy. Jeśli okazało się, że skończyły się oba naraz - mają tę samą liczbę linii. Jeśli skończył się tylko jeden - ten drugi musi być dłuższy. | Czytamy po jednej linii z każdego pliku, aż co najmniej jeden z nich się skończy. Jeśli okazało się, że skończyły się oba naraz - mają tę samą liczbę linii. Jeśli skończył się tylko jeden - ten drugi musi być dłuższy. | ||
</div> | </div> | ||
</div> | </div>}} | ||
==Zadanie 2== | ==Zadanie 2== |
Wersja z 12:09, 1 sie 2006
<<< Powrót do głównej strony wykładu
To są zadania na pliki.
Pokaż rozwiązania __SHOWALL__
Ukryj rozwiązania __HIDEALL__
W poniższych zadaniach zakładamy, że eof(f) implikuje eoln(f).
Zadanie 1
Napisz funkcję sprawdzającą, czy dwa pliki tekstowe o podanych nazwach mają tę samą liczbę wierszy.
Wskazówka 1
Rozwiązanie 1
Wskazówka 2
Rozwiązanie 2
Zadanie 2
Napisz procedurę, która skopiuje plik tekstowy f na g, modyfikując go w następujący sposób: bezpośrednio po każdym słowie należy wstawić koniec wiersza, a nowy wiersz rozpocząć od nowego słowa (spacje i puste wiersze należy pomijać).
Słowem (w tym zadaniu) nazywamy dowolny maksymalny spójny ciąg znaków niezawierający spacji i znaków końca wiersza. Nie zakładamy niczego o długości słów.
Wskazówka 1
Rozwiązanie 1
Rozwiązanie 2
Zadanie 3 (Usuwanie komentarzy)
Napisz procedurę usuwającą komentarze z pliku tekstowego zawierającego program w Pascalu.
Komentarze oznaczone są przez { ... } lub (* ... *). Należy przy tym uważać by nie usuwać komentarzy znajdujących się wewnątrz napisów (oznaczonych przez ' ... ')
Wskazówka 1
Rozwiązanie 1