pas cwiczenia podstawowe cz2


Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 1
__________________________________________
Ćwiczenie 1
1. Napisz program wydruku napisów PASCAL:
a. poziomo
b. pionowo.
2. Napisz program wyświetlający Twoją wizytówkę.
Do narysowania ramki wykorzystaj kody ASCII:
Procedury standardowe Write, Writeln
Do wyprowadzania wyników na standardowe urządzenia wyjścia słu\ą procedury
standardowe Write, Writeln, których wywołania mają odpowiednio postać:
Write (lista_argumentów_wyjściowych)
Writeln (lista_argumentów_wyjściowych)
Ró\nica między tymi procedurami polega na tym, \e procedura Writeln, po wykonaniu tych
samych czynności co Write, powoduje dodatkowo przejście do następnego wiersza.
Poszczególne elementy listy argumentów wyjściowych oddzielane są przecinkami. Ka\dy z
tych elementów powinien mieć jedną z następujących postaci:
wyra\enie
wyra\enie : długość
wyra\enie : długość : miejsca dziesiętne
Kody ASCII
Znaki z rozszerzonej klawiatury uzyskujemy wpisując kod znaku z klawiatury numerycznej
przy wciśniętym ALT.
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 2
__________________________________________
Ćwiczenie 2
1. Napisz program wyświetlający na ekranie planszę znakową przedstawiającą konkretny
program oraz jego autora i instytucję.
2. Napisz program wyświetlający na ekranie planszę zakończenia programu, np. napis na
wyczyszczonym ekranie:
(C) IMI NAZWISKO 2002
Procedury Read, Readln
Do wprowadzania danych ze standardowego urządzenia wejścia systemu
mikrokomputerowego słu\ą standardowe procedury Read i Readln, których wywołania mają
postać:
Read (lista_zmiennych)
Readln (lista_zmiennych)
Poszczególne elementy z listy oddziela się przecinkami. Elementy listy zmiennych mogą być
dowolnymi zmiennymi typu całkowitego, rzeczywistego, znakowego lub łańcuchowego.
Ćwiczenie 3
Napisać program, który wczytuje dane o osobie:
nazwisko, imię, płeć, data urodzenia (dzień, miesiąc, rok), adres (kod, miasto, ulica, numer
domu, mieszkanie) a następnie drukuje wczytane dane (na wyczyszczonym ekranie) w
postaci:
Imię Nazwisko
ul. ulica numer / mieszkanie
kod miasto
ur. dzień/miesiąc/rok
Deklaracja zmiennych
Deklaracja zmiennych ma postać:
lista_zmiennych : opis_typu;
Instrukcja przypisania
Instrukcja przypisania ma postać:
zmienna := wyra\enie
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 3
__________________________________________
Ćwiczenie 4
1. Napisz program, który wydrukuje tekst: S = 1 + 2 + 3 + 4 + 5 oraz (w następnym
wierszu) wartość sumy S.
2. Napisz program, który wydrukuje tekst: S = a + b oraz (w następnym wierszu) wartość
sumy S, gdzie zmienne a, b: Integer; S: Real. Przypisz zmiennym a, b wartości 5 i 7.
3. Napisz program, który przypisuje zmiennym I1, I2 typu Integer wartości 7 i 128, a
następnie zamienia miejscami zawartość I1 z zawartością I2 i drukuje je.
Operatory arytmetyczne
+ dodawanie
- odejmowanie
* mno\enie
/ dzielenie
Funkcje arytmetyczne
sinx - Sin (x),
kwadrat x - Sqr (x),
pierwiastek kwadratowy z x - Sqrt (x),
liczba - Pi,
ex - Exp (x),
logex - Ln (x)
Ćwiczenie 5
Napisać program obliczania i wyświetlania na ekranie monitora wartości następujących
wyra\eń:
a.
= 3.74135066182217E-0006
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 4
__________________________________________
b.
= 7.70309024759882E+0000
UWAGA. Argument funkcji sin musi być podany w radianach:
Wartość daje funkcja bezargumentowa Pi.
c.
= 1.29735380625554E+0000
d.
= -2,88991457859972E-0001
UWAGA
Ćwiczenie 6
Napisać program obliczania pola S oraz obwodu L:
a. trójkąta równobocznego o danym boku a
b. trójkąta o danych bokach a, b, c
c. trójkąta prostokątnego o danych przyprostokątnych a, b
d. trójkąta prostokątnego, gdy dane są: przyprostokątna a oraz kąt do niej przyległy b
e. prostokąta o bokach a, b
f. kwadratu o danym boku a
g. koła o danym promieniu r
h. sześciokąta foremnego o danym boku a
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 5
__________________________________________
Dla ka\dej figury zaprojektuj osobny ekran, np.
I ekran
OBLICZANIE POLA S ORAZ OBWODU L FIGUR PAASKICH
OPRACOWAA JAN KOWALSKI
SEMESTR Iac

II ekran
OBLICZANIE POLA S ORAZ OBWODU L TRÓJKTA RÓWNOBOCZNEGO O BOKU
A
a =
Pole S =
Obwód L =

Instrukcja warunkowa IF ... THEN ... ELSE
Instrukcje warunkowe uzale\niają wykonanie innych instrukcji od spełnienia określonego
warunku.
Ogólna postać instrukcji "je\eli" jest następująca:
IF wyra\enie THEN instrukcja
albo
IF wyra\enie THEN instrukcja1 ELSE instrukcja2
przy czym wartością wyra\enia powinna być wartość logiczna TRUE lub FALSE. Instrukcja
występująca po słowie THEN lub ELSE mo\e być dowolną instrukcją prostą lub
strukturalną. Je\eli wartością wyspecyfikowanego wyra\enia jest TRUE, to zostanie
wykonana instrukcja po słowie THEN. W przeciwnym przypadku będzie wykonana następna
instrukcja po instrukcji "je\eli" (gdy brak ELSE) lub instrukcja2 podana po słowie ELSE.
Ćwiczenie 7
Obliczyć i wyświetlić na ekranie monitora wartość funkcji f(x) dla danej liczby rzeczywistej x
(czytanej z klawiatury):
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 6
__________________________________________
Algorytm:
1. wczytaj x
2. je\eli |x|>=1 , to oblicz f(x) według pierwszego wzoru, w przeciwnym razie oblicz f(x)
według drugiego wzoru
3. wydrukuj f(x)
Ćwiczenie 8
Napisz program, który dla zadanych wartości a, b, c rzeczywistych, oblicza pierwiastki
rzeczywiste równania kwadratowego
ax2 + bx + c=0, a <> 0
i drukuje ich wartości z odpowiednimi objaśnieniami.
WE: a, b, c - rzeczywiste
WY:
a = 0 - informacja, \e nie jest to równanie kwadratowe
a <> 0 - rozwiązania równania.
Dane do testowania
a. a=0 b=1 c=2
To nie jest równanie kwadratowe.
b. a=2 b=4 c=2
Rozwiązanie: x0 = -1.
c. a=1 b=-5 c=6
Rozwiązanie: x1 = 2, x2 = 3.
d. a=1 b=1 c=1
Brak rozwiązań rzeczywistych.
ALGORYTM
Wczytaj a, b, c.
Je\eli a = 0, to wydrukuj komunikat, \e nie jest to równanie kwadratowe,
w przeciwnym razie:
{
Oblicz D
Je\eli D < 0, to wydrukuj komunikat o braku rozwiązań rzeczywistych
w przeciwnym razie
je\eli D = 0 to oblicz i wydrukuj x0
w przeciwnym razie oblicz i wydrukuj x1, x2.
}
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 7
__________________________________________
Ćwiczenie 9
Dla wczytanych z klawiatury:
a1 - pierwszy wyraz ciągu
r - ró\nica ciągu
n - numer wyrazu ciągu do obliczenia
obliczyć n-ty wyraz ciągu arytmetycznego oraz n-tą sumę częściową:
an = a1 + (n-1) r
sn = (a1 + an) n / 2
Wydrukuj otrzymane wartości poprzedzone odpowiednimi komunikatami. Program bada
poprawność n (n > 0). Dla n < 1 - wydruk komunikatu o błędzie.
ALGORYTM:
1. wczytaj a1, r, n
2. je\eli n<1 to wydrukuj komunikat o błędzie, w przeciwnym razie oblicz i wydrukuj an
i sn.
Instrukcja wyboru CASE
Instrukcja CASE jest instrukcją wyboru (selekcji) sterującą wyborem jednej z instrukcji do
wykonania. Składnia instrukcji CASE jest następująca:
CASE selektor OF
sekwencja_instrukcji_wyboru
END
lub
CASE selektor OF
sekwencja_instrukcji_wyboru
ELSE instrukcja
END
Wartość selektora musi być typu porządkowego. Sekwencja instrukcji wyboru składa się z
instrukcji, przy czym ka\da instrukcja poprzedzona jest jedną lub kilkoma stałymi (zwanymi
stałymi wyboru), które od instrukcji oddzielone są dwukropkiem.
Stałe wyboru oddzielane są przecinkami i mogą mieć postać:
stała
albo
stała..stała
Ka\da z instrukcji sekwencji instrukcji wyboru oraz instrukcja po słowie ELSE mogą być
dowolnymi instrukcjami prostymi lub strukturalnymi.
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 8
__________________________________________
Ćwiczenie 10
Napisać program, który dla podanych wielkości: rok i miesiąc podaje liczbę dni miesiąca.
Uwzględnić lata przestępne. Rok i miesiąc wczytać z kontrolą poprawności (rok > 1, 0 <
miesiąc < 13).
WE:
rok = 2005
miesiąc = 10
WY:
2005 PAyDZIERNIK: 31 DNI.
Ćwiczenie 11
Napisać program obliczający sumę liczb naturalnych od 1 do n, sumę ich kwadratów oraz
sumę ich sześcianów. Program ma umo\liwiać wybór jednego z trzech wariantów obliczeń.
Wykorzystać w programie następujące wzory:
Ćwiczenie 11
Napisać program przeliczający podaną wartość w jednej z trzech walut (dolary amerykańskie,
euro i złote) na jedną z dwóch pozostałych.
Instrukcja iteracyjna FOR
Instrukcja "dla" - wykorzystywana zwykle w celu wykonania pewnej grupy instrukcji w
przypadku, gdy liczba powtórzeń jest znana w danym miejscu programu. Instrukcja "dla"
mo\e mieć jedną z dwóch postaci:
FOR zs := wp TO wk DO Instrukcja
FOR zs := wp DOWNTO wk DO Instrukcja
Zmienna zs (nazywana zmienną sterującą), musi być identyfikatorem zmiennej typu
porządkowego i powinna być lokalna w bloku zawierającym daną instrukcję "dla", tzn. w
czasie wykonywania Instrukcji wartość zmiennej sterującej nie mo\e być zmieniana. Wartość
wp (wartość początkowa) i wk (wartość końcowa) musi być zgodna w sensie przypisania z
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 9
__________________________________________
typem zmiennej sterującej. Instrukcja po słowie DO mo\e być instrukcją prostą lub
strukturalną. Instrukcja podana po DO nie zostanie wykonana ani razu, gdy
- wartość wp jest większa od wartości wk (w TO)
- wartość wp jest mniejsza od wartości wk (w DownTo).
W przypadku próby zmiany wartości zmiennej sterującej w instrukcji wchodzącej w skład
instrukcji "dla" wystąpi błąd.
Realizacja pętli FOR:
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 10
__________________________________________
Ćwiczenie 12
1. Wyprowadz znaki ze zbioru znaków o numerach z zakresu 32-255 (zastosuj pętlę ze
zmienną sterującą i: Integer i funkcję Chr(i)).
2. Wprowadz n liczb rzeczywistych, oblicz dla ka\dej z nich kwadrat i sześcian oraz
wyprowadz numer liczby, liczbę oraz jej kwadrat i sześcian. Program powinien
zapraszać u\ytkownika do podania kolejnej liczby i wyprowadzać dane oraz wyniki
związane z jedną liczbą w jednym wierszu.
Ćwiczenie 13
Napisz program wydruku tabliczki mno\enia.
Instrukcja iteracyjna REPEAT
Instrukcja "powtarzaj" - słu\y do opisywania iteracji ze sprawdzeniem warunku na końcu i
ma postać:
REPEAT
I1;
I2;
{...}
In
UNTIL warunek
Warunek jest wyra\eniem logicznym a ka\da instrukcja mo\e być dowolną instrukcją prostą
lub strukturalną. Nie jest konieczne stosowanie instrukcji zło\onej, zakres instrukcji
"powtarzaj" jest ograniczony słowami kluczowymi "REPEAT" i "UNTIL". Ostatnia
instrukcja przed UNTIL nie musi być zakończona średnikiem.
Realizacja pętli REPEAT:
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 11
__________________________________________
Ćwiczenie 14
Wprowadz ciąg znaków zakończony '*'. Policz i wyprowadz ilość znaków w ciągu. Policz i
wyprowadz ilość cyfr, ilość du\ych liter, ilość małych liter i ilość innych znaków.
Ćwiczenie 15
Na wejściu dany jest ciąg współrzędnych punktów na płaszczyznie (x,y). Napisz program
sprawdzania, które z tych punktów le\ą wewnątrz kwadratu o wierzchołkach w punktach (-1,-
1), (1,-1), (1,1), (-1,1). Zakończ sprawdzanie, gdy znajdziesz 10 takich punktów.
Instrukcja iteracyjna WHILE
Instrukcja "dopóki" słu\y do opisywania iteracji ze sprawdzeniem warunku (wyra\enie
logiczne) na początku. Składnia:
WHILE warunek DO Instrukcja
Warunek jest wyra\eniem logicznym a ka\da instrukcja mo\e być dowolną instrukcją rostą
lub strukturalną.
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 12
__________________________________________
UWAGA. Je\eli przed wykonaniem pętli WHILE wartością wyra\enia jest False - pętla nie
wykona się ani razu. Je\eli przed wykonaniem pętli WHILE wartością wyra\enia jest True i
wewnątrz pętli nie zmienimy wartości tego wyra\enia, to otrzymana instrukcja nie zostanie
nigdy zakończona.
Realizacja pętli WHILE:
Algorytm zamiany liczby dziesiętnej na binarną
PRZYKAAD
13 = 8 + 4 + 1 = 1*23 + 1*22 + 0*21 + 1*20 = (1101)2
ALGORYTM
13 MOD 2 = 1 13 DIV 2 = 6
6 MOD 2 = 0 6 DIV 2 = 3
3 MOD 2 = 1 3 DIV 2 = 1
1 MOD 2 = 1 1 DIV 2 = 0 KONIEC
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 13
__________________________________________
Ćwiczenie 16
Napisać program zamiany wczytanej liczby całkowitej zapisanej w systemie dziesiętnym na
liczbę zapisaną w systemie binarnym.
Ćwiczenie 17
Napisz program drukowania tabelki wartościowań funkcji y(x) = ax3 + bx2 + cx + d dla
dowolnych wartości parametrów a, b, c, d oraz argumentu x zmieniającego się od 0 do 10 ze
stałym krokiem równym 0.1.
Co 20 wartości x - zatrzymanie ekranu, po ENTER - wyczyszczenie i wydruk następnych
wartości.
Definicja procedury
PROCEDURE NazwaProcedury (ListaParametrówFormalnych);
BEGIN
ciąg instrukcji
END; {NazwaProcedury}
Równanie prostej
Równanie prostej przechodzącej przez dwa punkty A i B płaszczyzny:
y- yA = (yB - yA)/(xB - x A) (x - xA), gdy xB `" xA
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 14
__________________________________________
x = a, gdy xB = xA = a
Zadanie 1
Napisz program znajdowania równań dwu prostych (na płaszczyznie XY), z których jedna
przechodzi przez dwa punkty P1 i P2, zaś druga przechodzi przez dany punkt P 3 i przez punkt
P4 , będący środkiem odcinka P 1 P2 .
Definicja funkcji rzeczywistej
FUNCTION NazwaFunkcji (ListaParametrówFormalnych) : Real;
BEGIN
ciąg instrukcji
{w treści funkcji musi wystąpić instrukacja podstawienia pod nazwę funkcji:
NazwaFunkcji := wyra\enie; }
END; {NazwaFunkcji}
Algorytm wyznaczania potęgi liczby
Potęgę liczby a b mo\emy wyznaczyć ze wzoru:
a b = e b ln a
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 15
__________________________________________
Zadanie 2
Napisz funkcję obliczającą a b. Napisz program wyznaczania potęg dla dowolnej ilości par
liczb rzeczywistych a i b. Program powinien pytać u\ytkownika, czy chce obliczać potęgę
kolejnej liczby.
Definicja funkcji logicznych
FUNCTION NazwaFunkcji (ListaParametrówFormalnych) : Boolean;
BEGIN
ciąg instrukcji
{w treści funkcji musi wystąpić instrukacja podstawienia pod nazwę funkcji:
NazwaFunkcji := wyra\enie; }
END; {NazwaFunkcji}
Zadanie 3
Napisz podprogram funkcji logicznej badającej przynale\ność punktu do koła. Napisz
program, który wczytuje parametry koła: współrzędne środka i promień (z badaniem
poprawności) oraz ciąg współrzędnych punktów a drukuje informację, czy punkt nale\y do
koła czy nie, i liczbę punktów nale\ących do koła. Do wczytania współrzędnych punktów
u\yj dodatkowej procedury.
Definicja funkcji znakowej
FUNCTION NazwaFunkcji (ListaParametrówFormalnych) : Char;
BEGIN
ciąg instrukcji
{w treści funkcji musi wystąpić instrukacja podstawienia pod nazwę funkcji:
NazwaFunkcji := wyra\enie; }
END; {NazwaFunkcji}
Algorytm zamiany du\ej litery na małą
Zauwa\my, \e w tabeli kodów ASCII odległość między du\ą literą a odpowiadającą jej małą
literą jest stała i wynosi
odleglosc = ord('a') - ord('A')
Znalezienie dla danej du\ej litery odpowiadającej jej małej litery mo\emy uzyskać według
wzoru:
mala_litera := chr(ord(du\a_litera) + odleglosc)
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 16
__________________________________________
Zadanie 4
Napisać funkcję DownCase, która zamienia du\ą literę na małą.
Nagłówek:
FUNCTION DownCase (Zn: Char): Char;
Funkcja zwraca zamienioną literę. Je\eli Zn nie jest du\ą literą, to zwracany jest bez zmian.
Napisać program, który
wczytuje ciąg znaków zakończony Enterem,
oddrukowuje ten ciąg z zamienionymi małymi literami na du\e,
oddrukowuje ten ciąg z zamienionymi du\ymi literami na małe,
oddrukowuje ten ciąg z usuniętymi spacjami.
Do wczytania ciągu i zmian zastosować oddzielne procedury. Ponadto zdefiniować procedurę
kończącą program (wyczyszczenie ekranu, podpis programisty).
UWAGA
Dostęp do kolejnych znaków napisu s typu String uzyskujemy w następujący sposób:
s[i], gdzie i = 1, 2, ... length(s)
PRZYKAAD
Instrukcja:
FOR i := 1 TO length(s) DO Write(s[i],' ')
słu\y do wydruku napisu s "rozstrzelonymi" literami.
Definicja funkcji całkowitoliczbowej
FUNCTION NazwaFunkcji (ListaParametrówFormalnych) : Numeryczny;
BEGIN
ciąg instrukcji
{w treści funkcji musi wystąpić instrukacja podstawienia pod nazwę funkcji:
NazwaFunkcji := wyra\enie; }
END; {NazwaFunkcji}
gdzie Numeryczny jest dowolnym typem całkowitoliczbowym
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 17
__________________________________________
Algorytm wyznaczania liczb doskonałych
Liczbą doskonałą jest ka\da liczba, której suma dzielników równa się jej samej:
6 = 1 + 2 + 3 (liczba doskonała)
8 <> 1 + 2 + 4 (liczba nie jest doskonała)
28 = 1 + 2 + 4 + 7 + 14 (liczba doskonała)
Zauwa\ny, \e największy dzielnik liczby jest mniejszy bądz równy połowie tej liczby.
Aby sprawdzić, czy liczba jest doskonała, nale\y wyznaczyć i zsumować wszystkie jej
dzielniki:
s := 0;
FOR i := 1 TO n DIV 2 DO
IF n MOD i = 0 THEN s := s + i;
IF n = s
THEN Writeln('Liczba jest doskonała')
ELSE Writeln('Liczba nie jest doskonała')
Zadanie 5
Napisz funkcję obliczającą sumę wszystkich podzielników dowolnej liczby naturalnej. Napisz
program wyznaczania liczb doskonałych z zakresu 1..10000
Definicja funkcji całkowitoliczbowej
FUNCTION NazwaFunkcji (ListaParametrówFormalnych) : Numeryczny;
BEGIN
ciąg instrukcji
{w treści funkcji musi wystąpić instrukacja podstawienia pod nazwę funkcji:
NazwaFunkcji := wyra\enie; }
END; {NazwaFunkcji}
gdzie Numeryczny jest dowolnym typem całkowitoliczbowym
Ćwiczenie 6
1. Napisz funkcję wyznaczania n-tego wyrazu ciągu Fibonacciego.
Ciąg Fibbonacciego określamy w następujący sposób:
f0 = 0,
f1 = 1,
fn = fn-1 + fn-2, dla n > 1
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 18
__________________________________________
Napisz program wyznaczający wszystkie liczby Fibonacciego z przedziału 1..n, gdzie
n - liczba dodatnia (wczytana z kontrola poprawności).
2. Napisz funkcję wyznaczającą minimum z n wczytanych liczb.
Napisz funkcję wyznaczającą maksimum z n wczytanych liczb.
Napisz program, który w zale\ności od wyboru u\ytkownika wyznacza minimum albo
maksimum z n wczytanych liczb, gdzie n - liczba dodatnia (wczytana z kontrolą
poprawności).
Definicja funkcji całkowitoliczbowej
FUNCTION NazwaFunkcji (ListaParametrówFormalnych) : Numeryczny;
BEGIN
ciąg instrukcji
{w treści funkcji musi wystąpić instrukacja podstawienia pod nazwę funkcji:
NazwaFunkcji := wyra\enie; }
END; {NazwaFunkcji}
gdzie Numeryczny jest dowolnym typem całkowitoliczbowym
Algorytm Euklidesa
Algorytm wyznaczania największego wspólnego podzielnika liczb opiera się on na fakcie, \e
jeśli od większej liczby odejmiemy mniejszą, to ta mniejsza liczba i otrzymana ró\nica będą
miały taki sam największy wspólny dzielnik jak pierwotne liczby. Gdy przy kolejnym
odejmowaniu otrzymamy parę takich samych liczb, to znalezliśmy NWD.
Poni\ej przedstawiam dwa algorytmy: pierwszy - oparty na odejmowaniu liczb, drugi -
wykorzystujący dzielenie.
Algorytm wykorzystujący odejmowanie liczb
1. dane są dwie liczby a i b
2. dopóki liczby a i b nie są sobie równe, powtarzaj krok trzeci w przeciwnym wypadku
przejdz do kroku czwartego
3. od większej liczby odejmij mniejszą i tę większą zastąp otrzymaną ró\nicą
4. wyprowadz wynik NWD (NWD = a)
Algorytm Euklidesa wykorzystujący dzielenie
1. dane są dwie liczby naturalne dodatnie a i b
2. oblicz c jako resztę z dzielenia a przez b
3. zastąp a przez b, zaś b przez c
4. je\eli b = 0, to szukane NWD = a, w przeciwnym wypadku przejdz do kroku drugiego
5. wyprowadz wynik NWD
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 19
__________________________________________
Zadanie 7
Napisz funkcję obliczającą największy wspólny podzielnik liczb według pierwszego
algorytmu a drugą - według drugiego.
Napisz program wyznaczania największego wspólnego podzielnika dla dowolnej ilości par
liczb naturalnych a i b. Program powinien pytać u\ytkownika, czy chce obliczać największy
wspólny podzielnik kolejnych liczb.
Funkcje rekurencyjne
W części operacyjnej funkcji rekurencyjnej następuje wywołanie tej samej funkcji. Jest to
analogia do znanego w matematyce rekurencyjnego definiowania pewnych wzorów.
Algorytm wyznaczania największego wspólnego
podzielnika liczb
Rekurencyjna wersja algorytmu wyznaczania największego wspólnego podzielnika liczb
oparta jest na następującej definicji rekurencyjnej
Algorytm wyznaczania liczb Fibonacciego
Rekurencyjna wersja algorytmu wyznaczania liczb Fibonacciego oparta jest na następującej
definicji rekurencyjnej
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 20
__________________________________________
Zadanie 8
1. Napisz funkcję obliczającą największy wspólny podzielnik liczb. Napisz program
wyznaczania największego wspólnego podzielnika dla dowolnej ilości par liczb
naturalnych a i b. Program powinien pytać u\ytkownika, czy chce obliczać największy
wspólny podzielnik kolejnych liczb.
2. Napisz funkcję wyznaczania n-tego wyrazu ciągu Fibonacciego. Napisz program
wyznaczający wszystkie liczby Fibonacciego z przedziału 1..n, gdzie n - liczba
dodatnia (wczytana z kontrolą poprawności).
Ekran w trybie znakowym
Znak w lewym górnym rogu ekranu ma współrzędne (1, 1).
Znak w prawym dolnym rogu ekranu ma współrzędne (xmax , y max).
Wartości (xmax, ymax) zale\ą od trybu ekranu. W trybie 80-kolumnowym te współrzędne mają
wartość (80, 25)
Procedury
GoToXY (x, y)
- ustawia kursor w bie\ącym oknie w punkcie o współrzędnych (x, y)
Delay (czas)
- zatrzymuje wykonanie programu na określoną liczbę milisekund
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 21
__________________________________________
Zadanie 9
Napisz program symulujący w trybie znakowym ruch piłeczki odbijącej się pionowo od
podłogi. Piłeczka w kolejnym odbiciu osiąga wysokość ni\szą o 1/4 od poprzedniej
wysokosci. Początkowa wysokość jest równa wysokości ekranu.
Zadanie 10
Napisz program drukowania choinki zło\onej z trapezów o wspólnej osi. Ka\dy trapez jest
zdefiniowany przez swoją wysokość i długość krótszej (górnej) podstawy. Wszystkie trapezy
są symetryczne i mają w podstawach nieparzystą liczbę gwiazdek.
Trapez (4, 3):
***
*****
*******
*********
Choinka jest opisana kompletem danych zawierającym liczbę trapezów i dane o kolejnych
trapezach. Zdefiniuj podprogram drukowania trapezu we wskazanym miejscu. Zakładamy, ze
w wierszu mieści się 80 znaków i \e jest 25 wierszy.
Procedura
GoToXY (x, y)
- ustawia kursor w bie\ącym oknie w punkcie o współrzędnych (x, y)
Window (x1, y1, x2, y2)
- definiuje okno znakowe, x1, y1, x2, y2: Byte
(x1, y1) - lewy górny naro\nik,
(x2, y2) - prawy dolny naro\nik),
Zadanie 11
Napisz procedurę rysowania okienka znakowego w współrzędnych wskazanych parametrami,
otoczonego pojedynczą ramką, na górnej krawędzi której umieszczony zostanie napis,
przekazywany jako kolejny parametr procedury. Kursor nale\y ustawić w pierwszym wierszu
i pierwszej kolumnie utworzonego okienka. Procedura powinna reagować na błędne dane
wejściowe (np. przybierać minimalne wymiary lub nic nie wykonywać). Napisz program
testujący działanie napisanej procedury.
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 22
__________________________________________
Moduł Crt
Moduł Crt zawiera funkcje i procedury umo\liwiające posługiwanie się kodami znaków z
rozszerzonej klawiatury, kolorami, oknami i dzwiękami, sterowanie trybami ekranu.
Deklaracja modułu Crt
USES Crt;
Stałe kolorów w module Crt
Stałe te mo\na znalezć w Helpie < Shift F1 > i np. Black
Kolory tła i znaków:
Kolory tła i znaków 0..7
Stała wartość
Blue 1
Green 2
Cyan 3
Red 4
Magenta 5
Brown 6
LightGray 7
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 23
__________________________________________
Kolory znaków 8..15
Stała wartość
DarkGray 8
LightBlue 9
LightGreen 10
LightCyan 11
LightRed 12
LightMagenta 13
Yellow 14
White 15
Procedury modułu Crt
TextColor (kolor) - ustala kolor znaków pojawiających się na ekranie, kolor jest stałą
koloru (typu Byte); migotający kolor uzyskujemy przez dodanie do koloru stałej Blink
(np. Red+Blink)
TextBackground (kolor) - ustala kolor tła znaków pojawiających się na ekranie, kolor
jest stałą koloru (typu Byte) z zakresu [0..7]
Window (x1,y1,x2,y2) - definiuje okno na ekranie; (x1,y1) - współrzędne lewego
górnego rogu okna; (x2,y2) - współrzędne prawego dolnego rogu okna; x1 <= x2, y1
<= y2; Standardowe okno w trybie 80 kolumnowym jest (1,1,80,25)
ClrScr - wymazanie zawartości bie\ącego okna
Delay (milisekundy) - zatrzymuje wykonanie programu na określoną liczbę
milisekund
Sound (częstotliwość) - włącza wewnętrzny głośnik i generuje dzwięk o podanej
częstotliwości
NoSound - wyłącza wewnętrzny głośnik
Generowanie dzwięków w Turbo Pascalu
PRZYKAAD
Wywołanie kolejno procedur: Sound, Delay, NoSound powoduje wygenerowanie dzwięku o
podanej częstotliwości i długości.
PROCEDURE Dzwiek (nuta, czas : Integer);
BEGIN
Sound (nuta);
Delay (czas);
NoSound
END; {Dzwiek}
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 24
__________________________________________
Zadanie 12
Napisz program wydruku nazw i wartości stałych kolorów znaków i tła w module Crt.
Zadanie 13
Zaimplementuj podprogram czytania napisów niepustych (bez mo\liwości przechodzenia
Enterem do następnej linii ekranu). Napisz program wykorzystujący zdefiniowany
podprogram do wczytania danych o osobie: imię, nazwisko, klasa.
Tablice jednowymiarowe
Tablica (zmienna typu tablicowego) jest ciągiem ustalonej długości elementów tego samego
typu a dostęp do poszczególnych jej elementów następuje za pomocą tak zwanego indeksu,
który w ogólności mo\e być wyra\eniem. Wartości składowe mogą być zarówno typów
prostych, łańcuchowych jak i typów strukturalnych. Dostęp do poszczególnych elementów
tablicy uzyskuje się za pomocą indeksowania. Dopuszczalny zakres indeksów jest podany w
definicji typu tablicowego.
Definicja typu tablicowego
TYPE
identyfikator_typu = ARRAY [typy_indeksowe] OF typ_składowy;
gdzie
typy_indeksowe - opisy typu porządkowego (z wyjątkiem typu LongInt i okrojeń tego typu),
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 25
__________________________________________
przy czym poszczególne opisy oddziela się przecinkami.
typ_składowy - dowolny typ.
Przykład
Tablica jednowymiarowa do przechowywania maksymalnie 42 napisów:
TYPE
Napisy = ARRAY [1..42] OF String[20];
VAR
imiona, nazwiska: Napisy;
Odwołanie do i-tego imienia w tablicy imiona i i-tego nazwiska w tablicy nazwiska
uzyskujemy w następujący sposób:
imiona[i] := 'Janek';
nazwiska[i] := 'Kowalski';
Tablica dwuwymiarowa do przechowywania maksymalnie 84 napisów:
TYPE
indeks = (imie,nazwisko);
Napisy = ARRAY [1..42, imie..nazwisko] OF String[20];
VAR
dane: Napisy;
Odwołanie do i-tego imienia i nazwiska w tablicy dane uzyskujemy w nastepujący sposób:
dane [i, imie] := 'Janek';
dane [i, nazwisko] := 'Kowalski';
Ćwiczenie 14
Napisz program, który czyta imiona i nazwiska osób z Twojego semestru, umieszcza je w
tablicy (tablicach) a następnie drukuje imię i nazwisko osoby o podanej liczbie porządkowej.
Definicja typu tablicowego
TYPE
identyfikator_typu = ARRAY [typy_indeksowe] OF typ_składowy;
gdzie
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 26
__________________________________________
typy_indeksowe - opisy typu porządkowego (z wyjątkiem typu LongInt i okrojeń tego typu),
przy czym poszczególne opisy oddziela się przecinkami.
typ_składowy - dowolny typ.
Ćwiczenie 15
1. Napisz program, który czyta nazwiska osób z Twojego semestru, umieszcza je w
tablicy a następnie drukuje informację czy osoba o podanym nazwisku jest zapisana w
tablicy i pod którą wartością indeksu.
2. Napisz program, który czyta nazwiska osób z Twojego semestru, umieszcza je w
tablicy a następnie drukuje informację, jakie nazwisko jest najwcześniejsze wg kodów
ASCII a które najpózniejsze i pod jakimi wartościami indeksów występują.
Tablice jednowymiarowe
Tablica (zmienna typu tablicowego) jest ciągiem ustalonej długości elementów tego samego
typu a dostęp do poszczególnych jej elementów następuje za pomocą tak zwanego indeksu,
który w ogólności mo\e być wyra\eniem. Wartości składowe mogą być zarówno typów
prostych, łańcuchowych jak i typów strukturalnych. Dostęp do poszczególnych elementów
tablicy uzyskuje się za pomocą indeksowania. Dopuszczalny zakres indeksów jest podany w
definicji typu tablicowego.
Definicja typu tablicowego
TYPE
identyfikator_typu = ARRAY [typy_indeksowe] OF typ_składowy;
gdzie
typy_indeksowe - opisy typu porządkowego (z wyjątkiem typu LongInt i okrojeń tego typu),
przy czym poszczególne opisy oddziela się przecinkami.
typ_składowy - dowolny typ.
Przykład 1
Tablica dwuwymiarowa do przechowywania miesięcznych opadów z 30 lat:
CONST
maxRok = 30;
TYPE
miesiace = 1..12;
zakresLat = 1..maxRok;
opady = Real;
opadyMiesieczne = ARRAY [miesiace] OF opady;
tabliceOpadow = ARRAY [zakresLat] OF opadyMiesieczne;
VAR
tablicaOpadow: tabliceOpadow;
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 27
__________________________________________
Odwołanie do j-tego miesiąca w i-tym roku:
tabliceOpadow [i, j] := 121;
Przykład 2
Tablica dwuwymiarowa do przechowywania trzech kolumn liczb:
TYPE
indeks = (uspr, nieuspr, spoz);
Tablica = ARRAY [1..42, uspr..spoz] OF Byte;
VAR
dane: Tablica;
Odwołanie do liczby, określającej ilość godzin usprawiedliwionych, nieusprawiedliwionych i
spóznień i-tej osoby w tablicy dane uzyskujemy w następujący sposób:
dane [i, uspr] := 121;
dane [i, nieuspr] := 7;
dane [i, spoz] := 2;
Ćwiczenie 16
1. Instytut Meteorologii Turbolandii przez 20 lat rejestrował miesięczne opady deszczu.
Teraz meteorolodzy chcą obliczyć:
o średnią opadów w ka\dym miesiącu,
o odchylenie standardowe w ka\dym miesiącu.
2. Napisz program, który czyta ilości opuszczonych godzin usprawiedliwionych i
nieusprawiedliwionych oraz spóznień dla wczytanej ilości osób z Twojego semestru i
umieszcza je w tablicy. Po wczytaniu danych program drukuje zebrane informacje w
postaci:
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 28
__________________________________________
lp. usprawiedliwione nieusprawiedliwione spóznienia
1. 1 4 7
2. 67 2 1
3. 3 123 2
3. itd.
Dane drukować dziesiątkami. Po oddrukowaniu kolejnej dziesiątki, zatrzymać
program, wyczyścić ekran i wydrukować następną dziesiątkę. Wyznaczyć średnią
ilość opuszczonych godzin w semestrze w poszczególnych kategoriach. Wydrukować
listę numerów osób, których ilość godzin nieusprawiedliwionych jest większa od
wczytanej liczby godzin (ilość >0).
Ćwiczenie 17
1. Napisz program, który czyta nazwiska osób z Twojego semestru, umieszcza je w
tablicy a następnie drukuje informację czy osoba o podanym nazwisku jest zapisana w
tablicy i pod którą wartością indeksu.
2. Napisz program, który czyta nazwiska osób z Twojego semestru, umieszcza je w
tablicy a następnie drukuje informację, jakie nazwisko jest najwcześniejsze wg kodów
ASCII a które najpózniejsze i pod jakimi wartościami indeksów występują.
Typy rekordowe
Definicja typu rekordowego
TYPE
nazwa_typu = RECORD
pierwsza_lista_pól : typ_pól;
druga_lista_pól : typ_pól;
...
n_ta_lista_pól : typ_pól;
END;
Zmienne rekordowe
Słu\ą do przechowywania zmiennych strukturalnych niejednorodnych - typu rekordowego.
Odwołanie do pól zmiennych typu rekordowego następuje za pomocą desygnatora pola:
zmienna_rekordowa.nazwa_pola albo przy pomocy instrukcji wią\ącej. Rekordów nie mo\na
u\ywać w instrukcjach wejścia-wyjścia.
PRZYKAAD
TYPE
TData = RECORD
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 29
__________________________________________
dzien : 1..31;
miesiac : 1..12;
rok : 1900..3000
END;
VAR
data: TData;
BEGIN
WITH data DO
BEGIN
dzien := 24;
miesiac := 12;
rok := 2001
END
END.
Tablice rekordów
Aby przechować kilka (np. 10) dat mo\na zdefiniować tablicę rekordów:
TYPE
Tablica = ARRAY [1..10] OF TData;
Zadanie 18
1. Napisz program, w którym do zmiennej typu rekordowego wpiszesz dane osobowe,
zamieszczane w dowodzie osobistym. Do wczytywania danych zdefiniuj procedurę.
2. Rozbuduj program z poprzedniego zadania o procedurę wydruku danych osobowych
zapisanych w rekordzie.
3. Zdefiniuj tablicę potrzebną do przechowywania danych o słuchaczach z Twojego
semestru. Napisz program, który wpisuje do tablicy dane wszystkich osób a następnie
drukuje dane wybranej osoby.
Rekordowa reprezentacja ułamków zwykłych
Do reprezentacji ułamków zwykłych u\ywamy rekordów:
TYPE
Naturalna = 1..MaxInt;
Wymierna = RECORD
licznik : Integer;
mianownik : Naturalna
END;
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 30
__________________________________________
Zadanie 19
Napisz program wykonujący cztery działania na wczytanych ułamkach zwykłych: dodawanie,
odejmowanie, mno\enie, dzielenie. Do wczytania i wydruku ułamków oraz działań zdefiniuj
osobne procedury.
Typy plikowe
W Pascalu wyró\niamy trzy typy plików:
zdefiniowane
tekstowe
niezdefiniowane
Definicja typu plikowego:
a. zdefiniowanego
TYPE
identyfikator_typu = FILE OF opis_typu_elementów_pliku;
PRZYKAADY
TYPE
TLiczby = FILE OF Integer;
TYPE
TWiersz = ARRAY [1..80] OF Char;
TPlikWierszy = FILE OF TWiersz;
TYPE
TKsiazka = RECORD
nazwisko : String [20];
imię : String [12];
tytul : String [50];
nr_ksiazki: 1..1000;
wydawca : String[30];
wydanie : 1..100
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 31
__________________________________________
END;
TKatalog = FILE OF TKsiazka;
b. tekstowego
Plik tekstowy jest określany za pomocą predefiniowanego identyfikatora Text.
PRZYKAAD
VAR
plik: Text;
c. niezdefiniowanego
TYPE
identyfikator_typu = FILE;
Typy plikowe
W Pascalu wyró\niamy trzy typy plików:
zdefiniowane
tekstowe
niezdefiniowane
Definicja typu plikowego:
a. zdefiniowanego
TYPE
identyfikator_typu = FILE OF opis_typu_elementów_pliku;
PRZYKAADY
TYPE
TLiczby = FILE OF Integer;
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 32
__________________________________________
TYPE
TWiersz = ARRAY [1..80] OF Char;
TPlikWierszy = FILE OF TWiersz;
TYPE
TKsiazka = RECORD
nazwisko : String [20];
imię : String [12];
tytul : String [50];
nr_ksiazki: 1..1000;
wydawca : String[30];
wydanie : 1..100
END;
TKatalog = FILE OF TKsiazka;
b. tekstowego
Plik tekstowy jest określany za pomocą predefiniowanego identyfikatora Text.
PRZYKAAD
VAR
plik: Text;
c. niezdefiniowanego
TYPE
identyfikator_typu = FILE;
Zmienne plikowe
Wszystkie zmienne typu plikowego, z wyjątkiem Output i Input muszą być zadeklarowane w
sekcji deklaracji programu, który z nich korzysta.
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 33
__________________________________________
PRZYKAAD
VAR
l: TLiczby;
tekst: TPlikWierszy;
moje_ksiazki: TKatalog;
plik: Text;
dane: File;
Schemat przetwarzania plików
1. opis zminnej plikowej (w części opisowej)
2. skojarzenie pliku z fizycznym zbiorem danych
3. otwarcie pliku
4. wykonanie operacji na pliku
5. zamknięcie pliku
Procedury obsługi plików
1. Kojarzenie zmiennej plikowej
Do skojarzenia zmiennej plikowej z fizycznym zbiorem danych słu\y procedura
standardowa Assign, której wywołanie ma postać:
Assign (identyfikator_pliku, wyra\enie łańcuchowe)
gdzie identyfikator_pliku - dowolna zmienna plikowa; wyra\enie łańcuchowe -
fizyczny zbiór danych.
Plik o podanym identyfikatorze nie mo\e być otwarty.
PRZYKAAD
Assign (moje_ksiazki, 'a:\pliki\kat.dan');
Assign (plik1, 'LPT1'); {skojarzenie pliku logicznego plik1 z drukarką }
Assign (plik2, ''); {skojarzenie pliku logicznego plik2 ze standardowym WE/WY, w
zale\ności od tego, czy plik będzie otwarty do odczytu czy do zapisu (równowa\ne z
Assign (plik2, 'CON'))}
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 34
__________________________________________
2. Otwieranie pliku
W zale\ności od kierunku przesyłania elementów do lub z pliku stosowane są trzy
standardowe procedury jego otwarcia.
Je\eli tworzymy nowy fizyczny (zewnętrzny) zbiór danych, to nale\y zastosować
procedurę
Rewrite (zmienna_plikowa)
lub
Rewrite (zmienna_plikowa, rozmiar_zapisu)
- dla pliku niezdefinowanego.
Wywołanie procedury Rewrite powoduje utworzenie nowego fizycznego zbioru
danych o nazwie skojarzonej z podaną zmienną plikową. Je\eli zewnętrzny zbiór
danych o takiej nazwie istnieje, to zostanie on usunięty i w jego miejsce będzie
utworzony nowy zbiór.
PRZYKAAD
Assign (moje_ksiazki, 'a:\ksiazki.txt'); {skojarzeniu zbioru ksiazki.txt ze zmienną
plikową moje_ksiazki}
Rewrite (moje_ksiazki); {otwarcie pliku}
Do otwarcia pliku skojarzonego ze zbiorem ju\ istniejącym słu\ą procedury Reset i
Append.
Reset (zmienna_plikowa)
lub
Reset (zmienna_plikowa, rozmiar_zapisu)
- powoduje ustawienie wskaznika pliku przed jego pierwszym elementem.
Append (zmienna_plikowa)
- stosujemy tylko dla plików tekstowych (Text), po otwarciu pliku ustawienie
wskaznika pliku na jego końcu.
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 35
__________________________________________
PRZYKAADY
Assign (plik, 'c:\zbiory\ksiazki.txt'); {gdzie plik: TKartoteka}
Reset (plik);
Assign (plik, 'c:\zbiory\teksty.txt'); {gdzie plik: TKartoteka}
Append (plik);
3. Zamykanie plików
Po wykonaniu wszystkich operacji na pliku, nale\y go zamknąć. Do zamykania pliku
słu\y procedura
Close (zmienna_plikowa)
Po zamknięciu pliku mo\na zmienną plikową skojarzyć z innym fizycznym zbiorem
danych.
4. Wprowadzanie elementów do pliku
a. pliki tekstowe
Write (zmienna_plikowa, lista_argumentów_wy)
lub
Writeln (zmienna_plikowa, lista_argumentów_wy)
gdzie zmienna_plikowa jest identyfikatorem pliku tekstowego, a
lista_argumentów_wy jak dla Output. Powy\sze wywołania stosuje się
najczęściej przy wyprowadzaniu wyników programu na drukarkę lub do pliku
dyskowego, w celu pózniejszego ich odczytu.
b. pliki zdefiniowane
Write (zmienna_plikowa, lista_argumentów_wy)
gdzie zmienna_plikowa - plik logiczny skojarzony z zewnętrznym zbiorem
danych (otwarty) lista_zmiennych_wy - zmienne tego samego typu, jak typ
elementów pliku, oddzielone przecinkami.
c. pliki niezdefiniowane
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 36
__________________________________________
BlockWrite (zmienna_plikowa, bufor, licznik);
lub
BlockWrite (zmienna_plikowa, bufor, licznik, wynik);
gdzie bufor - dowolna zmienna; licznik - wyra\enie typu Word, określające
ilość wyprowadzanych zapisów; wynik - zmienna typu Word, określająca ilość
faktycznie wyprowadzonych na dysk zapisów.
Podczas otwarcia pliku (Rewrite) nale\y podawać rozmiar zapisu (np. 1);
domyślna wartość 128.
5. Wyprowadzanie elementów z pliku
a. pliki tekstowe
Read (zmienna_plikowa, lista_argumentów_we)
lub
Readln (zmienna_plikowa, lista_argumentów_we)
gdzie zmienna_plikowa jest identyfikatorem pliku tekstowego, a
lista_argumentów_we jak dla Input.
b. pliki zdefiniowane
Read (zmienna_plikowa, lista_argumentów_we)
gdzie zmienna_plikowa - plik logiczny skojarzony z zewnętrznym zbiorem
danych (otwarty) lista_zmiennych_we - zmienne tego samego typu, jak typ
elementów pliku, oddzielone przecinkami.
c. pliki niezdefiniowane
BlockRead (zmienna_plikowa, bufor, licznik);
lub
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 37
__________________________________________
BlockRead (zmienna_plikowa, bufor, licznik, wynik);
gdzie bufor - dowolna zmienna; licznik - wyra\enie typu Word, okreclające
ilość wprowadzanych zapisów; wynik - zmienna typu Word, określająca ilość
faktycznie wprowadzonych zapisów.
Podczas otwarcia pliku (Reset) nale\y podawać rozmiar zapisu (np. 1);
domyślna wartość 128.
Zadanie 20
1. Napisz program zapisywania w pliku danych o Twoich znajomych (imię, nazwisko,
dzień imienin i urodzin).
2. Rozbuduj poprzedni program o procedury odczytu z pliku i wydruku danych (na
ekran, na drukarce lub do pliku tekstowego).
3. Rozbuduj poprzedni program o procedurę zapisu danych o Twoich znajomych w pliku
elementowym o podanej nazwie. W przypadku, gdy plik o podanej nazwie istnieje,
u\ytkownik powinien mieć wybór:
a. podania nowej nazwy pliku,
b. skasowania zawartości pliku i zapisu w nim nowych informacji,
c. dopisania danych na końcu istniejącego pliku.
4. Popraw procedurę zapisu danych z pliku elementowego do pliku tekstowego, tak aby
u\ytkownik mógł podać nazwę pliku tekstowego, w którym chce przechowywać
informacje.
W przypadku, gdy plik o podanej nazwie istnieje, u\ytkownik powinien mieć
mo\liwość podania nowej nazwy pliku lub dodania danych na końcu pliku ju\
istniejącego.
Deklaracja zmiennej zbiorowej:
VAR
identyfikator_zmiennej: identyfikator_typu_zbiorowego;
PRZYKAAD
VAR
z1: SET OF Char;
z2: SET OF 'A'..'Z';
Zadanie 21
Napisz program odgadywania wpisanego słowa.
Pascal  ćwiczenia podstawowe  CZŚĆ2 - strona 38
__________________________________________


Wyszukiwarka

Podobne podstrony:
Ćwiczenia z podstaw prawa cywilnego z umowami w administracji I
Ćwiczenie 2 3 Podstawy użytkowania wiersza poleceń systemu Windows 2000;XP;2003
CWICZENIA Z PODSTAW RECEPTURY KOSMETYCZNEJ
systemy operacyjne cw podstawy?ministracji cz2
Ćwiczenia Podstawy Fiz Fazy Skondensowanej
program cwiczen z podstaw informatyki 2
Ćwiczenie nr 1 cz2
cpp cwiczenia podstawowe 1 Kluczewski
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 6
podstawy automatyki ćwiczenia lista nr+
Ćwiczenie 2 4 Użytkowanie wiersza poleceń cz2

więcej podobnych podstron