Wstęp do programowania/Pliki/Ćwiczenia: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Aneczka (dyskusja | edycje)
Nie podano opisu zmian
Aneczka (dyskusja | edycje)
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">
'''Wskazówka 1'''
<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">
'''Rozwiązanie 1'''
<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">
'''Wskazówka 2'''
<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">
'''Rozwiązanie 2'''
<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

<<< Powrót do modułu 7

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

{{{3}}}


Rozwiązanie 1

{{{3}}}


Wskazówka 2

{{{3}}}


Rozwiązanie 2

{{{3}}}

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