Wyniki.txt. Zmień w programie nazwę pliku fizycznego Wyniki.txt na Output lub CON (patrz tab. 1.7), uruchom program i odsłoń ekran z wynikami (Alt+F5). Co obserwujesz? ■
Podsumujmy: wprowadzanie danych do programu z klawiatury może być uciążliwe, jeśli ich liczba jest znaczna, np. w przypadku gdy chcielibyśmy wprowadzić 1000 liczb. Wyprowadzanie dużej liczby wyników na ekran też może nie być wygodne, gdy nie mieszczą się na ekranie. Najwygodniej byłoby czytać dane z pliku i wysyłać wyniki do innego pliku. Pliki te moglibyśmy dalej przetwarzać. Wszystko to jest możliwe, jeśli zastosujemy instrukcje czytania i wypisywania, w których pierwszym parametrem jest nazwa odpowiedniego pliku tekstowego, np. dane lub wyniki:
Read(dane,...) Write(wyniki,...)
Readln(dane,...) Writeln(wyniki,...)
Readln(dane) Writelnfwyniki)
Pliki te trzeba wcześniej zadeklarować jako zmienne plikowe
var dane,wyniki:Text;
Ponadto z plikami dane i wyniki należy związać pliki fizyczne (tj. znajdujące się na dysku) i wykonać na nich operacje otwarcia:
Assign (dane,' DaneSort. txt'); Reset (dane);
i Assign(wyniki,'WynSort.txt'); Rewrite(wyniki);
a na końcu programu zamknąć je: Close(dane); Close(wyniki);
▼ Ćwiczenie 1.48. Zmodyfikuj program sortujący przez wybór, utworzony w ćwicz. 1.33, według następujących wskazówek. Utwórz wcześniej plik DaneSort.txt. zawierający 250 losowych liczb rzeczywistych do posortowania (nie zapomnij o wpisaniu na początku tego pliku ile liczb w pliku należy po-sortować). Skopiuj liczby rzeczywiste z pliku do tablicy. Wykonaj sortowanie elementów tablicy. Zapisz elementy tablicy do pliku WynSort.txt i wyświetl na ekranie elementy z pliku. Użyj: procedury, która losuje n liczb typu real i umieszcza je w pliku p po jednej w wierszu o nagłówku
procedurę losujLiczbyReal(n:byte;var p:Text), procedury, która kopiuje elementy pliku p do tablicy a:
procedurę zPlikuDoTablicy(var p:Text;var a:tabRealln;var n:byte) oraz procedury, która wpisuje elementy tablicy a do pliku p:
procedurę zTablicyDoPliku(n:byte;a:tabRealln;var p:Text). ■
W języku Pascal nie można deklarować funkcji o wartości typu plikowego i dlatego w ćwicz. 1.48 występują procedury. W procedurze każdy parametr typu plikowego, przeznaczony zarówno na wyniki, jak i na dane, musi być przekazywany przez zmienną, czyli poprzedzony słowem var.