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

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Linia 206: Linia 206:
 
             '''': '''begin''' stan:=napis; write(g,c) '''end''';
 
             '''': '''begin''' stan:=napis; write(g,c) '''end''';
 
             '''else''' write(g,c);
 
             '''else''' write(g,c);
           '''end'''
+
           '''end;'''
 
         naw_otw:   
 
         naw_otw:   
 
           '''case''' c '''of'''
 
           '''case''' c '''of'''
 
             '*': stan:=kom2;
 
             '*': stan:=kom2;
 
             '''': '''begin''' stan:=napis; write(g,'('''); '''end''';
 
             '''': '''begin''' stan:=napis; write(g,'('''); '''end''';
             '{': '''begin''' stan:=kom1; write(g,'({'); '''end'''
+
             '{': '''begin''' stan:=kom1; write(g,'('); '''end'''
 
             '''else''' '''begin''' stan:=nic; write(g,'(',c); '''end'''
 
             '''else''' '''begin''' stan:=nic; write(g,'(',c); '''end'''
           '''end'''
+
           '''end;'''
 
         kom2:
 
         kom2:
 
           '''case''' c '''of'''
 
           '''case''' c '''of'''
 
             '*': stan:=kom2_gw;
 
             '*': stan:=kom2_gw;
           '''end'''     
+
           '''end;'''     
 
         kom2_gw:
 
         kom2_gw:
 
           '''case''' c '''of'''
 
           '''case''' c '''of'''
Linia 223: Linia 223:
 
             '*': stan:=kom2_gw;
 
             '*': stan:=kom2_gw;
 
             '''else''' stan:=kom2
 
             '''else''' stan:=kom2
           '''end'''     
+
           '''end;'''     
 
         kom1:
 
         kom1:
 
           '''case''' c '''of'''
 
           '''case''' c '''of'''
 
             '}': stan:=nic
 
             '}': stan:=nic
           '''end'''     
+
           '''end;'''     
 
         napis:
 
         napis:
 
           '''case''' c '''of'''
 
           '''case''' c '''of'''
Linia 240: Linia 240:
 
         nic: writeln(g);
 
         nic: writeln(g);
 
         naw_otw: '''begin''' stan:=nic; writeln(g,'('); '''end''';
 
         naw_otw: '''begin''' stan:=nic; writeln(g,'('); '''end''';
         kom2: // nic
+
         kom1,kom2: // nic
 
         kom2_gw: stan:=kom2;
 
         kom2_gw: stan:=kom2;
        kom1: // nic
 
 
         napis: writeln(g)
 
         napis: writeln(g)
 
       '''end'''  
 
       '''end'''  
 
     '''end'''
 
     '''end'''
   '''end'''
+
   '''end;'''
 
   close(f);
 
   close(f);
 
   close(g);
 
   close(g);

Wersja z 22:27, 8 sty 2012

To są zadania na pliki.

Oglądaj wskazówki i rozwiązania __SHOWALL__
Ukryj wskazówki i 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

{{{3}}}

Rozwiązanie 1

{{{3}}}

Rozwiązanie 2

{{{3}}}

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

{{{3}}}

Rozwiązanie 1

{{{3}}}