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

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
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