Laboratorium Informatyki Ćwiczenie 9.
Przekazywanie tablic do procedur i funkcji
Cel ćwiczenia: Deklarowanie typów określających tablice. Przekazywanie tablic do procedur i funkcji. Operacje na tablicach i łańcuchach.
1. Zadeklarować typ ttab1 określający tablicę liczb całkowitych typu byte o rozmiarze N oraz typ ttab2 określający tablicę liczb całkowitych typu byte o rozmiarze N+1, gdzie N – stała. W programie głównym zdefiniować zmienne A, B typu ttab1 oraz zmienną C typu ttab2. Wczytać do tablic A i B dwie liczby w taki sposób, aby każda cyfra liczby znajdowała się w osobnej komórce tablicy, przy czym, cyfra najmniej znacząca powinna być wpisana do pierwszego elementu tablicy (koniec liczby oznaczyć za pomocą –1).
Opracować procedurę, która realizuje operację dodawania pisemnego (cyfra do cyfry) liczb zapisanych w tablicach A i B. Wynik dodawania powinien być przekazany na zewnątrz procedury za pomocą tablicy C. Nagłówek procedury: procedure Dod(Var A, B: ttab1; Var C: ttab2). Przetestować opracowane procedury.
2. Zadeklarować typ ttab1 określający tablicę liczb całkowitych typu byte o rozmiarze N oraz typ ttab2 określający tablicę liczb całkowitych typu byte o rozmiarze 2N, gdzie N – stała. W programie głównym zdefiniować zmienne A, B typu ttab1 oraz zmienną C typu ttab2. Wczytać do tablic A i B dwie liczby w taki sposób, aby każda cyfra liczby znajdowała się w osobnej komórce tablicy, przy czym, cyfra najmniej znacząca powinna być wpisana do pierwszego elementu tablicy (koniec liczby oznaczyć za pomocą –1).
Opracować procedurę, która realizuje operację mnożenia pisemnego (cyfra razy cyfra) liczb zapisanych w tablicach A i B. Wynik mnożenia powinien być przekazany na zewnątrz procedury za pomocą tablicy C. Nagłówek procedury: procedure Mnoz(Var A, B: ttab1; Var C: ttab2). Przetestować opracowane procedury.
3. W programie głównym wczytać do łańcucha s typu string[20] datę w jednym z następujących formatów: D-M-RRRR (dzień-miesiąc-rok, np. 1-7-1999, 2-3-2100), DD- M-RRRR (np. 11-2-2000), D-MM-RRRR (np. 1-12-1999) lub DD-MM-RRRR (np. 25- 10-1999). Przyjmuje się, że daty postaci X-Y-RR lub X-Y-RRR nie są uwzględniane.
Opracować procedurę, która zamienia datę z postaci łańcucha na postać liczbową, reprezentowaną przez trzy liczby całkowite d, m, r określające, odpowiednio, dzień, miesiąc i rok. Przyjmuje się, że type trok = 1900..3000; tmies = 1..12; tdzien = 1..31; Var r: trok; m: tmies; d: tdzien. Wykorzystać procedury i funkcje obsługi łańcuchów. Pos, Delete, Length, Val. Nagłówek procedury: procedure DataL(s: string[20]; Var r: trok;
Var m: tmies; Var d: tdzien).
4. W programie głównym wczytać datę do trzech liczb całkowitych r, m, d, gdzie r jest typu trok, m jest typu tmies oraz d jest typu tdzien (zobacz zadanie 3). Opracować funkcję, która zwraca przez nazwę datę w postaci łańcucha DD-MM-RRRR (np. dla r=2000, m=7, d=3, otrzymujemy data=’03-07-2000’). Wykorzystać procedurę Str. Nagłówek funkcji:
function LiczbaD(r: trok; m: tmies; d: tdzien): string[20].