• Nie Znaleziono Wyników

Lista 2 — Pliki

N/A
N/A
Protected

Academic year: 2021

Share "Lista 2 — Pliki"

Copied!
4
0
0

Pełen tekst

(1)

Uniwersytet Zielonogórski

Instytut Sterowania i Systemów Informatycznych Metody i języki programowania

Lista 2 — Pliki

1 Wstęp

1. Napisać i uruchomić program, który wpisuje N liczb typu integer do pliku:

program Z a p i s 1 ; c o n s t N=10;

t y p e TPlik = f i l e o f i n t e g e r ; v a r p l i k : TPlik ;

x , y : i n t e g e r ; b e g i n

a s s i g n ( p l i k , ’ p l i k . dat ’ ) ; { $I −}

r e w r i t e ( p l i k ) ; { $ I+}

i f i o r e s u l t <>0 t h e n b e g i n

w r i t e l n ( ’ Problem z otw arc iem p l i k u ! ’ ) ; h a l t ( 1 ) ;

end ;

f o r x :=1 t o N do b e g i n

w r i t e ( ’ Podaj l i c z b e nr ’ , x , ’ : ’ ) ; r e a d l n ( y ) ;

w r i t e ( p l i k , y ) ; end ;

c l o s e ( p l i k ) ; end .

2. Napisać i uruchomić program, który odczytuje N liczb typu integer z pliku, zapisanych przy pomocy programu 1.

program Odczyt1 ; c o n s t N=10;

t y p e TPlik = f i l e o f i n t e g e r ; v a r p l i k : TPlik ;

x , y : i n t e g e r ; b e g i n

a s s i g n ( p l i k , ’ p l i k . dat ’ ) ; { $I −}

r e s e t ( p l i k ) ; { $ I+}

i f i o r e s u l t <>0 t h e n b e g i n

w r i t e l n ( ’ Problem z otw arc iem p l i k u ! ’ ) ;

1

(2)

h a l t ( 1 ) ; end ;

f o r x :=1 t o N do b e g i n r e a d ( p l i k , y ) ;

w r i t e l n ( ’ L i c z b a nr ’ , x , ’ = ’ , y ) ; end ;

c l o s e ( p l i k ) ; end .

3. Poprawić program 2. tak, aby wyświetlone zostały wszystkie liczby zapisane w pliku, nieza- leżnie od ich ilości

program Odczyt2 ;

t y p e TPlik = f i l e o f i n t e g e r ; v a r p l i k : TPlik ;

x , y : i n t e g e r ; b e g i n

a s s i g n ( p l i k , ’ p l i k . dat ’ ) ; { $I −}

r e s e t ( p l i k ) ; { $ I+}

i f i o r e s u l t <>0 t h e n b e g i n

w r i t e l n ( ’ Problem z otw arc iem p l i k u ! ’ ) ; h a l t ( 1 ) ;

end ; x : = 1 ;

w h i l e not e o f ( p l i k ) do b e g i n r e a d ( p l i k , y ) ;

w r i t e l n ( ’ L i c z b a nr ’ , x , ’ = ’ , y ) ; x:=x +1;

end ;

c l o s e ( p l i k ) ; end .

4. Napisać i uruchomić program, którego zadaniem jest wczytanie z klawiatury tablicy N liczb typu integer a następnie wpisanie tej tablicy do pliku. Ponadto program powinien umożliwić odczyt tak utworzonego pliku i wypisanie zawartości tablicy na ekran.

program O d c z y t Z a p i s 1 ; c o n s t N=10;

t y p e T p l i k = f i l e o f i n t e g e r ;

TTab = a r r a y [ 1 . . N] o f i n t e g e r ; v a r p l i k : TPlik ;

x , y : i n t e g e r ; tab : TTab ; b e g i n

a s s i g n ( p l i k , ’ p l i k . dat ’ ) ; { $I −}

r e w r i t e ( p l i k ) ; { $ I+}

i f i o r e s u l t <>0 t h e n b e g i n

w r i t e l n ( ’ Problem z otw arc iem p l i k u ! ’ ) ; 2

(3)

h a l t ( 1 ) ; end ;

f o r x :=1 t o N do b e g i n

w r i t e ( ’ Podaj l i c z b e nr ’ , x , ’ : ’ ) ; r e a d l n ( tab [ x ] ) ;

end ;

f o r x :=1 t o N do b e g i n w r i t e ( p l i k , tab [ x ] ) ; end ;

c l o s e ( p l i k ) ;

{ ========================== ODCZYT =================}

a s s i g n ( p l i k , ’ p l i k . dat ’ ) ; { $I −}

r e s e t ( p l i k ) ; { $ I+}

i f i o r e s u l t <>0 t h e n b e g i n

w r i t e l n ( ’ Problem z otw arc iem p l i k u ! ’ ) ; h a l t ( 1 ) ;

end ;

f o r x :=1 t o N do b e g i n r e a d ( p l i k , tab [ x ] ) ; end ;

c l o s e ( p l i k ) ;

f o r x :=1 t o N do b e g i n

w r i t e l n ( ’ L i c z b a ’ , x , ’ = ’ , tab [ x ] ) ; end ;

end .

2 Zadania

1. Na podstawie programów 1..4 zawartych we Wstępie, opracować procedury do otwierania i zamykania plików wraz z kontrolą błędów.

2. Przerobić program 4. ze Wstępu tak, aby korzystał z procedur do otwierania, zamykania, wpisywania i odczytywania tablicy z pliku.

3. Dany jest plik zawierający znaki ASCII. Napisać procedurę zwracającą liczbę wystąpień każdego znaku z tabeli ASCII w postaci tablicy. Założyć, że długość pliku jest mniejsza od maksymalnej wartości liczb typu longint.

4. Wygenerować w sposób losowy plik zawierający 13542 liczby typu LongInt (proszę zwrócić uwagę na zakres, jaki może przyjmować funkcja random). Napisać procedurę, która po utworzeniu nowego pliku umieści w nim wartości sum każdych dwóch kolejnych liczb z pliku źródłowego.

5. Napisać program służący do kopiowania plików o nazwach podanych z klawiatury. Pro- gram ma posiadać zabezpieczenie przed skopiowaniem nieistniejącego pliku. Zastosować funkcję blockread i blockwrite. Odczytywać pliki znak po znaku.

6. Przerobić program z punktu (5) tak, aby odczyt pliku odbywał się blokowo, po 10 kB.

3

(4)

7. Dany jest plik tekstowy, gdzie w każdej linii znajduje się słowo o dowolnej długości. Ob- liczyć średnią długość słów oraz wyświetlić słowo najkrótsze i najdłuższe. Zastosować funkcję blockread. Wskazówka: odczytywać znak po znaku. Koniec linii oznacza się zna- kami o kodach ASCII 13 i 10 (znaki CR i LF ).

8. Podać definicję rekordu opisującego jeden wpis do ksiażki teleadresowej (oprócz telefonu, adresu można dodawać także inne dane np.: wzrost, kolor oczu). Podać definicję typu plikowego dla tego typu rekordowego.

9. Przygotować zestaw procedur do obsługi prostej bazy teleadresowej:

• procedura do usuwania pliku z bazą

• procedura do zakładania pustej bazy

• procedura do dopisania nowego rekordu do bazy

• procedura do usunięcia rekordu do bazy

• procedura do przeszukiwania bazy według nazwiska.

Wskazówka: Do usuwania rekordu z bazy można zastosować znacznik (pole rekordu) wska- zujący, czy określony rekord został usunięty.

4

Cytaty

Powiązane dokumenty

Wykorzystując bibliotekę Qt proszę napisać program rysujący figurę, jak w zadaniu 11, ale tak, aby wartość n była wprowadzana do programu z pomocą pola edycyjnego klasy QLineEdit

Uruchom program, sprawdź efekt podania wartości, która nie występuje w tablicy, wartości występującej w tablicy oraz efekt niepoprawnego podania liczby.. catch z

Porównaj testy Fishera i M-H dla sondażu, w którym pytano 24 kobiety i 24 mężczyzn, pracujących w bankach, czy mają szansę rozwoju zawodowego.. Odpowiedź TAK uzyskano od 14 kobiet

Wczytaj do dwuwymiarowej tablicy macierz A rozmiaru 3x3, natomiast do jednowymiarowej 3-elementowej tablicy wektor x. Oblicz wynik mnożenia macierzy A przez wektor x,

(4p.) Napisać skrypt, który wszystkie pliki z przyrostkiem ~ (np. plik.txt~ ), skopiuje (jeżeli takie są) do katalogu BACKUP w bieżącym katalogu.. Jeżeli katalog BACKUP

[r]

// utworzono tablicę 10 referencji typu String, naleŜy dla kaŜdego elementu tablicy przydzielić pamięć. • Przydział pamięci na elementy

nabycie umiejętności efektywnego poszukiwania pracy, pisania CV i listu motywacyjnego oraz prowadzenia rozmowy kwalifikacyjnej w języku angielskim z wykorzystaniem zasobów Internetu