Temat A
01.02.2008.
1. Dla ciągu: a0=1, a1=1,5, a2=2, an= an-1+an-2+an-3, wydrukować średnią arytmetyczną n kolejnych wyrazów ciągu
większych od x (wczytać n oraz x, wymuszając: n>10 i x> a2).
2. Wczytać dane do tablic X, Y [1..w,1..k] of Tauto, gdzie: w, k – stałe, Tauto – rekord o polach: marka, rocznik, cena.
Dla każdej tablicy utworzyć wektor o w elementach, gdzie kolejne elementy zawierają markę najtańszego auta z
kolejnych wierszy tablicy. Następnie umieścić markę najstarszego auta z tak utworzonego wektora w pierwszym
elemencie tego wektora, markę najmłodszego - w ostatnim.
3. Dany jest plik tekstowy ‘dane.pkt’ zawierający w każdym wierszu dwie liczby będące współrzędnymi (x, y) punktu.
Przepisać z niego do pliku ‘d10.pkt’ co najwyżej 10 punktów, których odległość od P(0,0) jest zawarta w przedziale
<10,25>, a do pliku ‘d20.pkt’ co najwyżej 20 punktów, których odległość od P(0,0) jest zawarta w przedziale
<20,35>. Wydrukować ponadto informację, który plik ma więcej punktów leżących w I ćwiartce układu
współrzędnych.
4. Dla elementów listy określonej przez typy: type Twsk=^Tel; Tel=record k:integer; inf:string; nast:Twsk end; napisać
funkcję wyznaczającą ilość elementów o polu k większym od sumy pól k dwóch ostatnich elementów listy lub o polu
inf o ilości znaków większej od wartości przekazywanej przez parametr funkcji.
Temat B
01.02.2008.
1. Wczytywać z klawiatury liczby całkowite, aż kolejna wczytana liczba będzie podzielna przez pierwszą wczytaną
liczbę (wymusić, aby pierwsza liczba nie była równa zero) lub będzie równa poprzednio wczytanej. Wydrukować
średnią arytmetyczną wszystkich wczytanych liczb dodatnich oraz pierwszą i ostatnią wczytaną liczbę podzielną
przez 3.
2. Wczytać dane do tablic A, B, C [1..n,1..n] of Punkt, gdzie: n – stała, Punkt – rekord o polach: x,y. Dla każdej tablicy
policzyć i wydrukować, ile jest w niej punktów o odległości od początku układu współrzędnych mniejszej od 10, a
ile mniejszej od 20. Jeżeli w danej tablicy te ilości są równe, to odwrócić kolejność elementów na głównej przekątnej,
w przeciwnym wypadku przesunąć cyklicznie jej elementy do dołu.
3. Dane są pliki tekstowe ‘a.txt’ i ‘b.txt’. Wydrukować informację, ile plik 'a.txt' ma wierszy zaczynających się trzema
literami z przedziału <‘a’, ’k’> i ile plik 'b.txt' ma wierszy zaczynających się pięcioma literami z przedziału <’p’,
’z’>. Następnie utworzyć plik ‘wyniki.txt” przepisując do niego zawartość pliku ‘a.txt’, a potem dopisując zawartość
pliku ‘b.txt’.
4. Dla elementów listy określonej przez typy: type Twsk=^Tel; Tel=record k:integer; nast:Twsk end; napisać procedurę
wstawiającą po elementach o polu k większym od pola k ostatniego elementu nowe elementy, dla których wartości
pól k należy wczytać.
Temat C
01.02.2008.
1. Wczytywać z klawiatury liczby x, aż do wczytania wartości równej zero lub nie należącej do przedziału <a, b> . Dla
każdej
wartości
x
drukować
sumę
początkowych
n
wyrazów
rozwinięcia
w
szereg
funkcji
2
4
6
8
x
x
x
x
cos( x) = 1 −
+
−
+
... Należy wczytać a, b oraz n (wymusić: a>b oraz n>1).
!
2
!
4
!
6
!
8
2. Wczytać dane do tablic X, Y [1..n,1..n] of Tauto, gdzie: n – stała, Tauto – rekord o polach: marka, rocznik, cena. W
każdej tablicy zamienić miejscami najstarsze auto z głównej przekątnej z najmłodszym autem umieszczonym w
ostatnim wierszu. Następnie z każdej kolumny każdej tablicy wydrukować markę najdroższego auta.
3. Dany jest plik tekstowy ‘dane.txt’. Utworzyć plik ‘wyniki.txt’ przepisując z pliku danego wiersze zawierające co
najmniej 3 znaki ‘$’ oraz utworzyć plik o wczytanej nazwie przepisując z pliku ‘dane.txt’ wiersze zawierające co
najmniej 5 znaków ‘/‘. Następnie do pliku ‘dane.txt’ dopisać zawartość utworzonych plików wynikowych..
4. Dla elementów listy określonej przez typy: type Twsk=^Tel; Tel=record k:integer; nast:Twsk end; napisać procedurę
przenoszącą na początek listy dwa ostatnie elementy, gdy lista posiada pola k wszystkich elementów dodatnie lub
większe od wartości przekazywanej przez parametr procedury.
Temat D
01.02.2008.
1. Wczytywać z klawiatury znaki, aż trzykrotnie wystąpią obok siebie dwie cyfry. Wydrukować, ile razy wystąpiły
obok siebie następujące kombinacje liter: mała i mała, mała i duża, duża i mała, duża i duża. Wydrukować też, ile
wczytano innych znaków niż litery i cyfry.
2. Wczytać dane do wektorów X, Y [1..n] of Towar ( gdzie: n – stała, Towar – rekord o polach: nazwa, ilosc, cena)
umieszczając: na początku wektora X towary o nazwie rozpoczynającej się literami z przedziału <’A’,‘G’> i na
końcu pozostałe, a na początku wektora Y towary o nazwie rozpoczynającej się literami z przedziału <’K’,‘P’> i na
końcu pozostałe. Wydrukować informację, w którym wektorze jest większa łączna wartość towarów (cena*ilosc).
3. Utworzyć pliki ‘a.txt’ i ‘b.txt’ wczytując do każdego z nich z klawiatury kolejne wiersze tak długo, dopóki zaczynają
się dużą literą i mają nie więcej niż 10 znaków. Wydrukować różnicę pomiędzy ilością wierszy nie zawierających
znaku ‘+’ w pliku ‘a.txt’ a ilością wierszy nie zawierających znaku ‘?’ w pliku ‘b.txt’ .
4. Dla elementów listy określonej przez typy: type Twsk=^Tel; Tel=record k:integer; nast:Twsk end; napisać procedurę
usuwającą dwa ostatnie elementy listy, jeśli lista ma więcej elementów o polu k dodatnim niż ujemnym.
Temat E
01.02.2008.
1. Wczytywać z klawiatury współrzędne punktów (x,y), aż do wczytania punktu o współrzędnych (0,0) lub punktu
leżącego na jednej z osi prostokątnego układu współrzędnych. Wydrukować współrzędne dowolnego punktu spośród
leżących najbliżej łuku okręgu o promieniu R (R wczytać, wymusić, by było >0) i środku o współrzędnych (0,0)
oraz współrzędne dowolnego punktu spośród leżących najbliżej punktu (0,0).
2. Wczytać dane do tablic A, B, C [1..w,1..k] of Towar , gdzie: w,k – stałe, Towar – rekord o polach: nazwa, ilosc, cena.
W każdej tablicy zamienić towary z pierwszej kolumny z towarami z kolumny o największej wartości (ilosc*cena)
umieszczonych w niej towarów, a następnie zamienić towary przedostatniej z towarami ostatniej kolumny.
3. Dane są pliki tekstowe ‘a.txt’ i ‘b.txt’. Wydrukować informację, który plik ma więcej liter z przedziału <’a’, ‘k’>, a
który więcej liter z przedziału <’H’, ‘P’>. Następnie utworzyć plik ‘wyniki.txt” przepisując do niego z pliku ‘a.txt’ co
najwyżej 10 wierszy (w pliku może być ich mniej niż 10), a potem jeszcze dopisać do niego z pliku ‘b.txt’ co
najwyżej 20 wierszy.
4. Dla elementów listy określonej przez typy: type Twsk=^Tel; Tel=record k:integer; nast:Twsk end; napisać procedurę
przenoszącą na koniec listy dwa początkowe jej elementy, jeżeli wartości pól k pierwszego i ostatniego elementu
zawarte są w przedziale <a,b> ( a i b są parametrami procedury).
Temat H
01.02.2008.
1. Wczytywać z klawiatury napisy mające więcej niż 5 znaków (inne pomijać), aż do wczytania napisu o ilości znaków
większej od ilości znaków pierwszego napisu. Wydrukować, ile wczytano napisów rozpoczynających się takimi
samymi dwoma dużymi literami oraz najkrótszy napis nie zawierający cyfr.
2. Wczytać dane do tablic A, B, C [1..n] of Towar , gdzie: n – stała, Towar – rekord o polach: nazwa, ilosc, cena. Z
każdej tablicy wydrukować najwyższą cenę spośród cen jej towarów, a następnie nazwy towarów o tej cenie. Ponadto
wydrukować wartość towarów (cena*ilosc) łącznie dla tablic: A i B, B i C, A i C oraz A, B i C.
3. Utworzyć plik ‘p1.pkt’ wczytując współrzędne (x,y) 30 punktów o odległości od P(0,0) mniejszej od 15 i plik
‘p2.pkt’ wczytując współrzędne (x,y) 30 punktów o odległości od P(0,0) mniejszej od 25 (przy wczytywaniu
pomijać punkty nie spełniające warunku odległości). Wydrukować zawartość obu plików. Następnie policzyć i
wydrukować, który plik ma więcej punktów nie leżących na osiach układu współrzędnych.
4. Dla elementów listy określonej przez typy: type Twsk=^Tel; Tel=record k:integer; inf: string; nast:Twsk end;
napisać procedurę przenoszącą element o największej wartości pola k za ostatni element listy, jeżeli ilość znaków
pola inf ostatniego elementu jest największa spośród wszystkich pól inf elementów listy.