Zadanie zaliczeniowe nr 5 (2. trymestr), 8 I 2003 Napisz program wczytujący z pliku o zadanej w wierszu komendy nazwie poprawny program w Pascalu i wypisujący do pliku o nazwie podanej jako drugi parametr w wierszu komendy tekst tego programu z usuniętymi komentarzami. Zdefiniuj dwie stałe: const KW = chr(13); {Koniec wiersza} KP = chr(12); {Koniec pliku} oraz dwie operacje: function CzytZn(var p:text): char; {Wczytuje z zadanego pliku kolejny znak. W stanie końca wiersza} {daje KW i przechodzi do następnego wiersza. W stanie końca pliku} {daje KP (i nic więcej nie robi).} procedure PiszZn(var p: text; z:char); {Wypisuje do pliku p znak z. Jeśli z=KW to nic nie wypisuje,} {tylko wykonuje operację writeln(p). Jeśli z=KP, to w ogóle nic nie robi.} Zdefiniuj też funkcję CzyJest(Nazwa:String):Boolean; sprawdzającą, czy istnieje plik o podanej nazwie. Uwagi: · przez usunięcie komentarzy rozumiemy ich „wygumkowanie”, tj zastąpienie ich treści (wraz z nawiasami) spacjami, · przejścia do nowego wiersza w obrębie komentarzy mają być zachowane, · program ma uwzględniać oba rodzaje komentarzy ({} i (* *)), · komentarz zaczynający się { musi się kończyć }, a nie *), · komentarz zaczynający się (* musi się kończyć *), a nie }, · komentarzy jednego rodzaju nie można w sobie zagnieżdżać, natomiast można zagnieździć komentarz jednego rodzaju w komentarzu drugiego rodzaju, ale tylko na jeden poziom, tzn. zapis {(* { *) { {} oznacza jeden komentarz zawierający tekst: (* { *) { {, zaś zapis {(*{}*)} oznacza komentarz o treści (*{, po którym występuje tekst *)} (nie jest to więc poprawny fragment programu w Pascalu), · ignorujemy wszelkie dyrektywy kompilatora w programie wejściowym, · wewnątrz stałych tekstowych oczywiście nie ma komentarzy, tzn. zapis ‘{ ‘ nie otwiera komentarza, · oczywiście należy wykorzystać definicję automatu z ćwiczeń z TP. Przykładowe wywołanie programu: c:\usun_kom dane.pas wynik.txt Należy sprawdzić czy istnieje plik z danymi (jeśli nie, to kończymy działanie po wypisaniu stosownego komunikatu) i czy nie istnieje plik wyjściowy (jeśli istnieje, to kończymy po wypisaniu stosownego komunikatu). Należy też sprawdzić, czy liczba parametrów wynosi 2 (jeśli nie, zakończyć działanie wypisując stosowny komunikat). Powodzenia!