03/03/1998

 

Zad.1: Dany jest plik tekstowy we.txt zawierający liczby całkowite oddzielone ciągiem spacji. Napisać program w pascalu, który skopiuje zawartość tego pliku na plik tekstowy wy.txt z zachowaniem jego struktury liniowej, ale dokonując takiego rozmieszczenia liczby w linii, aby tworzyły one kolumny o szerokości 10 znaków z liczbą wyrównaną do prawej strony. Uwaga: write(f, x:s), gdzie s jest liczba całkowitą wypisuje na plik f wartość zmiennej x w polu o szerokości s znaków.

 

Zad.2: Dane są dwie tablice A, B: array [1..n] of integer; n > 0, zawierające różnowartościowe ciągi liczb całkowitych. Napisać funkcję logiczną PERM, której wartością będzie true jeśli ciąg A jest permutacją ciągu B, a false w przeciwnym przypadku.

 

Zad.3: Dana jest tablica A: array [1..2*n] of integer; n > 0, zawierającą liczby całkowite dodatnie i ujemne. Wiadomo, że liczb dodatnich jest dokładnie n. Napisać program w pascalu, który tak przestawia liczby w tablicy A, aby ujemne znalazły się na pozycjach parzystych, a dodatnie na nieparzystych. (Uwaga: nie można korzystać z tablic pomocniczych.)

 

04/02/1999

 

Zad.1: Napisać procedurę sprawdzającą czy w zapisie w układzie trójkowym danej liczby całkowitej występują tylko cyfry parzyste.

 

Zad.2: Dana jest tablica kwadratowa REL zadeklarowana jako: array [1..n, 1..n] of 0..1, reprezentująca relację dwuargumentową na zbiorze {1..n}: REL[i,j] = 1 jeśli i jest w relacji z j, a REL[i,j] = 0 wpp. Napisać program badający czy relacja jest przechodnia.

 

Zad.3: Ciąg liczb całkowitych zapisany jest w tablicy A: array [1..n] of integer. Napisać program, który pozostawi w tablicy A po jednym wystąpieniu znajdujących się tam liczb, a zastąpi zerami wszystkie powtórzenia.

 

25/01/2000

 

Zad.1: Napisać funkcję function ile(var we: text): integer liczącą ile razy w pliku tekstowym we występuje słowo egzamin.

 

Zad.2: Relacja liniowego porządku na zbiorze {1..n} jest reprezentowana w tablicy A: array [1..n, 1..n] of boolean tak, że iRj wttw gdy A[i,j] = true. Napisać procedurę, która wypisuje zbiór {1..n} w porządku R.

 

Zad.3: Ciąg liczb całkowitych zapisany jest w tablicy A: array [1..n] of integer. Ciąg ten jest sklejeniem ciągu niemalejącego i nierosnącego (jeden za drugim), tzn. jest spełniony jeden z trzech warunków:

(1)   ciąg jest niemalejący

(2)   ciąg jest nierosnący

(3)   istnieje k takie, że 1 < k< n i A[i] £ A[i+1] dla 1 £ i < k, a A[i] ³ A[i+1] dla k £ i < n.

Napisać program, który wypisuje wszystkie elementy tego ciągu w porządku niemalejącym i działa w czasie liniowym względem n.

 

29/01/2002

 

Zad.1: Dany jest plik tekstowy we.txt. Napisać program w pascalu, który skopiuje zawartość tego pliku na plik tekstowy wy,txt z zachowaniem jego struktury, ale dokonując kompresji zbędnych spacji. Tzn. ciągi spacji zostaną zastąpione jedną spacją.

 

Zad.2: Dana jest tablica A: array [1..n, 1..n] of integer posortowana rosnąco wierszami i kolumnami oraz liczba x. Napisać program sprawdzający czy x występuje A. Należy zwrócić uwagę na efektywność programu. Preferowane są rozwiązania działające w czasie O(n+m). Rozwiązania rzędu O(n*m) będą punktowane w skali 0-4 pkt.

 

Zad.3: Napisać procedurę lub funkcję zwracającą wartość true jeśli w zapisie w układzie trójkowym danej liczby całkowitej występują tylko cyfry parzyste, a false w przeciwnym przypadku.

 

21/1/2003

 

Zad.1: Dany jest plik tekstowy we.txt oraz tablica kodu zadeklarowana jako:

kod: array [‘a’..’z’] of char;

zawierająca pewien kod dla małych liter alfabetu. Napisać w pascalu procedurę koduj, która wyprodukuje plik tekstowy wy.txt zawierający tekst wejściowy, w którym małe litery zostaną zakodowane, zgodnie z kodem podanym w tablicy kod, a reszta tekstu pozostanie bez zmian.

 

Zad.2: Dana jest tablica A[1..m, 1..n] of integer. Napisać program w pascalu, który znajduje drugi co do wielkości element tej tablicy w porządku niemalejącym.

 

Zad.3: Napisać w pascalu funkcję:

function D(n: integer): integer;

która dla danej liczby n ³ 0 zwraca pierwszą od lewej cyfrę w zapisie dziesiętnym tej liczby. Np. D(10) = 1,  D(15) = 1,  D(278) = 2.

 

27/2/2004

 

Zad.1: Napisz procedurę, która dla danego ciągu a1,a2,...,an liczb rzeczywistych znajduje permutację s zbioru {1,...,n} taką, że as(i) £ as(i+1) dla i = 1,...,n. Akceptowalne są rozwiązania o złożoności nie większej niż rzędu n2.

 

Zad.2: W pliku tekstowym dane2.txt są zapisane liczby w systemie dwójkowym, a w pliku dane3.txt zapisane są liczby w systemie trójkowym. Liczby w obu plikach są rozdzielone spacjami (jedną lub więcej) i/lub końcem linii. Napisz procedurę, która sprawdza czy ciągi liczb zapisane w tych plikach są równe.

 

25/1/2005

 

Zad.1: Dany jest plik tekstowy we.txt. Napisz procedurę, która przekopiuje całą zawartość pliku we.txt na plik tekstowy wy.txt w taki sposób, aby wszystkie linie (ewentualnie z wyjątkiem ostatniej, która może być krótsza) miały 80 znaków.

 

Zad.2: Dane są trzy uporządkowane rosnąco ciągi liczb całkowitych reprezentowane w postaci tablic zadeklarowanych jako: (poniżej n1, n2, n3 są zadeklarowane jako const)

var

A: array [1..n1] of integer;

B: array [1..n2] of integer;

C: array [1..n3] of integer;

Napisać procedurę, która policzy, ile jest takich wartości w tablicach A, B, C, które występują we wszystkich trzech tablicach jednocześnie.