Zestaw 3.

Transkrypt

Zestaw 3.
Wstęp do programowania
Zestaw 1:
Napisać:
• procedurę Pobierz pobierającą zawartość niezawężonej tablicy liczb rzeczywistych podanej jako
parametr;
• procedurę Wypisz wypisująca zawartość niezawężonej tablicy liczb rzeczywistych podanej jako
parametr;
• funkcję Zlicz, której parametrem jest niezawężona tablica liczb rzeczywistych T. Funkcja ma zwrócić
liczbę różnych wartości znajdujących się w tablicy przekazanej w parametrze (przykład: dla tablicy
1,3,2,1,1,1,4,2 funkcja zwraca wartość 4);
Napisać program tworzący tablicę liczb rzeczywistych o podanej przez użytkownika długości, pobierający i
wypisujący jej zawartość oraz wypisujący liczbę różnych wartości znajdujących się w tablicy. W programie
wykorzystać wymienione wyżej procedury i funkcje.
Rozszerzyć program o:
• funkcję CzyZblizone przyjmującą jako parametry dwie tablice liczb rzeczywistych. Funkcja
korzystając z funkcji Zlicz liczy liczbę różnych wartości znajdujących się w każdej z tablic, tworzy
dwie tablice o wyliczonych długościach i wypełnia je różnymi wartościami z odpowiednio pierwszej i
drugiej tablicy przekazanej do funkcji z zachowaniem oryginalnego porządku. Funkcja zwraca
wartość true gdy krótsza z dwóch w ten sposób powstałych tablic jest podtablicą dłuższej (jeżeli są
one równej długości muszą być identyczne), w przeciwnym wypadku zwraca false (przykład: dla
tablic wejściowych 3,3,2,3,2,4,2,2,2 i 1,3,2,1,1,1,4,2 liczymy liczbę ich różnych wartości i
otrzymujemy odpowiednio 3 i 4; tworzymy tablice różnowartościowe z zachowaniem porządku: 3,2,4
i 1,3,2,4; krótsza z tych tablic jest podtablicą dłuższej, więc funkcja zwraca wartość true).
Dodaną funkcję wykorzystać w programie, tworząc dodatkową tablicę liczb rzeczywistych o podanej przez
użytkownika długości i sprawdzając czy jest on „zbliżona” do tablicy utworzonej wcześniej.
Zestaw 2:
Napisać funkcję SumaCyfr zwracającą sumę cyfr liczby naturalnej podanej jako parametr. Funkcja działa
w następujący sposób:
• jeżeli liczba jest różna od 0, to dodajemy to aktualnej sumy jej cyfrę jedności (resztę z dzielenia przez
10), w przeciwnym wypadku wynikiem jest aktualna suma;
• pozbywamy się uwzględnionej cyfry jedności zmniejszając liczbę o jeden rząd wielkości (dzieląc ją
przez 10) i przechodzimy ponownie do kroku 1.
Wykorzystać funkcję w programie pobierającym od użytkownika liczbę naturalną i wypisującym sumę jej
cyfr.
Rozszerzyć program o następujące elementy:
•
deklarację niezawężonego typu tablicowego Liczby indeksowanego typem całkowitym i
przechowującego liczby naturalne;
•
funkcję CyfraUrodzenia przyjmującą jako parametry trzy liczby naturalne D, M, R takie, że D<31 i
M<12, tj. odpowiednio dzień, miesiąc i rok urodzenia. Funkcja zwraca „cyfrę urodzenia”
odpowiadającą danej dacie, tj. sumuje poszczególne cyfry liczb D, M i R korzystając z funkcji
SymaCyfr, jeśli uzyskany wynik nie jest liczbą jednocyfrową, to sumuje cyfry tej liczby, jeśli
uzyskany wynik nie jest liczbą jednocyfrową, to znów sumuje cyfry tej liczby itd. – aż do uzyskania
liczby jednocyfrowej stanowiącą szukaną „cyfrę urodzenia”;
•
funkcję Uporzadkuj przyjmującą jako parametry trzy tablice typu Liczby tej samej długości
zawierające odpowiednio dni, miesiące i lata urodzenia pewnych osób, obliczającą dla każdej daty
(rozumianej jako trzy odpowiadające sobie pozycją w tablicach wejściowych wartości) „cyfrę
urodzenia” z wykorzystaniem funkcji CyfraUrodzenia. Funkcja zwraca tablicę typu Liczby
zawierającą pozycje dat podanych w tablicach wejściowych, w takiej kolejności jaką uzyska się po
posortowaniu tych dat niemalejąco wg ich „cyfry urodzenia”.
Wykorzystując powyższe konstrukcje rozszerzyć program tak, aby pobierał trzy tablice liczb naturalnych
o podanej przez użytkownika długości (dni, miesiące i lata urodzenia osób), a następnie korzystając z funkcji
Uporzadkuj wypisywał je w kolejności uporządkowanej niemalejąco wg „cyfry urodzenia”.