Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

АтаП_лаб

.pdf
Скачиваний:
19
Добавлен:
23.02.2016
Размер:
557.11 Кб
Скачать

першому місці масиву буде знаходитися найбільший або найменший елемент (у залежності від умови впорядкування). На наступних етапах аналогічному алгоритму обробки будуть піддані другий, третій і т.д. до останнього елементи масиву. При цьому відсортована частина масиву із обробки виключається.

Сортування обміном. Зліва направо почергово порівнюємо два сусідніх елементи, і якщо їх взаєморозташування не відповідає заданій умові упорядкованості, то вони міняються місцями. Після одного такого обходу на останній n-тій позиції масиву буде знаходитись найбільший або найменший елемент (у залежності від умови впорядкування), тобто “зпливає” перша “бульбашка”. Кожний наступний обхід обмінів виконується тільки до вже упорядкованої частини масиву.

Завдання до лабораторної роботи

Завдання 1. Сформувати масив К за правилом:

1.

K (i) =

sin i i

,

 

де і=1,2...,10.

 

 

 

 

 

 

i +1

 

 

 

 

 

 

 

 

2.

 

 

 

 

 

 

+

3

 

 

2

, де і=0,...,16.

K (i) =

3

i

 

 

 

 

 

(i

1)

 

3 + i

 

 

i + 1

 

 

 

 

 

 

 

 

 

 

 

3.

K(i) =

 

 

 

,де і=1,...,25.

 

i2 + 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.

K (i ) =

 

 

(i − 1) 3 − 3i

, де і=1,...,21.

 

 

 

 

 

 

 

i + 1

 

 

 

 

 

5.

K (i) =

 

i3 −7

, де і=1,...,25.

 

2i+5

 

 

 

 

 

 

 

 

 

 

 

 

 

6.

K(i) = 3 + i3 − (−1)i

,де і=1,...,23.

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

7.

K(i) =

 

(−1)i

+ 3i

, де і=0,...,17.

 

 

 

 

 

 

 

 

 

 

 

 

i +1

 

 

 

 

 

 

 

8.

K(i)=

(−1)i

+(1−i)2

,де і=1,...,9.

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9.K(i) = і2 +1+3i , де і=1,...,20.

i+1

10.K(i) = (і2 + 3i − 7) , де і=0,...,21.

i+1

11. K(i) =

(і3 + 3i −1)

, де і=0,...,15.

 

 

 

 

 

 

 

 

i +1

 

 

12. K(i) =

(−1)i +i2

,де і=1,...,9.

 

 

 

 

 

 

i

 

 

13. K (i) = cos i +1 ,

де і=1,2...,15.

 

 

 

 

i +1

 

 

14. K(i) =

(−1)i +(1+i)3

,де і=1,...,10.

 

 

i+1

 

 

 

 

 

 

15. K(i) =

 

і2 +2i −1

,де і=1,...,20.

 

 

 

 

 

 

i +5

 

 

31

Завдання 2. Cкласти програму, що виконує задану операцію над одновимірним масивом з 10 елементів. Тип даних, що використовується для задання елементів масиву визначається самостійно.

1.Обчислити суму парних елементів.

2.Обчислити суму непарних елементів.

3.Підрахувати кількість додатних елементів.

4.Підрахувати кількість від’ємних елементів.

5.Обчислити суму додатних елементів.

6.Обчислити суму від’ємних елементів.

7.Обчислити добуток від’ємних елементів.

8.Обчислити суму перших п’яти додатних елементів.

9.Обчислити суму останніх п’яти додатних елементів.

10.Обчислити добуток перших п’яти додатних елементів.

11.Обчислити добуток останніх п’яти додатних елементів.

12.Обчислити суму елементів, що перевищують задане число А.

13.Обчислити добуток елементів, що не перевищують задане число А.

14.Обчислити суму елементів, що не перевищують задане число А.

15.Обчислити добуток елементів, що перевищують задане число А.

Завдання 3.

1.Дано масив М(15) невід’ємних дійсних чисел. Виконати сортування за спаданням.

2.Дано масив М(15) невід’ємних дійсних чисел. Виконати сортування за зростанням.

3.Дано масив М(15) дійсних чисел. Виконати сортування невід’ємних елементів за зростанням.

4.Дано масив М(15) дійсних чисел. Виконати сортування додатних елементів за зростанням

5.Дано масив М(15) дійсних чисел. Впорядкувати за зростанням: спочатку від’ємні, а потім додатні числа.

6.Дано масив М(15) дійсних чисел. Елементи на непарних місцях розташувати у порядку зростання, а на непарних в порядку спадання.

7.Дано масив М(15) дійсних чисел. Впорядкувати за спаданням: спочатку парні, а потім непарні числа.

8.Дано масив М(15) дійсних чисел. Впорядкувати за спаданням: спочатку нульові, потім від’ємні, додатні числа.

9.Дано масив М(15) дійсних чисел. Впорядкувати за спаданням: спочатку додатні, потім нульові, від’ємні числа.

10.Дано масив М(15) дійсних чисел. Впорядкувати масив їх абсолютних величин за зростанням.

11.Дано масив М(15) дійсних чисел. Впорядкувати за спаданням: спочатку непарні, а потім парні числа.

12.Дано масив М(15) дійсних чисел. Впорядкувати за зростанням: спочатку від’ємні, потім нульові, додатні числа.

13.Дано масив М(15) дійсних чисел. Виконати сортування додатних елементів за зростанням.

32

14.Дано масив М(15) дійсних чисел. Впорядкувати масив їх абсолютних величин за спаданням.

15.Дано масив М(15) дійсних чисел. Впорядкувати за спаданням: спочатку парні, а потім непарні числа.

Контрольні питання

1.Що таке розмір та розмірність масиву?

2.Правила опису масивів.

3.Як відбувається звернення до масивів?

4.Алгоритм пошуку максимального або мінімального елементів масиву.

5.Яку функцію виконують індекси в масивах?

ЛАБОРАТОРНА РОБОТА № 6

ОБРОБКА ДВОВИМІРНИХ МАСИВІВ

Мета: отримання практичних навичок по роботі з двовимірними масивами та оволодіння навичками алгоритмізації і програмування структур із вкладеними циклами, способами введення та виведення матриць.

Короткі теоретичні відомості

Масив називається двовимірним, якщо для задання місцезнаходження елемента в масиві необхідно вказати значення двох індексів. Перший індекс завжди вказує на номер рядка, а другий – на номер стовпчика.

Місцезнаходження елемента двовимірного масиву (матриці) визначається двома номерами-індексами: номером рядка (i) і номером стовпчика (j).

Наприклад,

 

A [i, j] или A [i][j], n×m

Головна діагональ

A11

A12

A13

A14

 

A21

A22

A23

A24

Рядки i

A31

A32

A33

A34

 

A41

A32

A43

A44

Побічна діагональ

Стовпчики j

Елементи, обидва індекси яких рівні, утворюю головну діагональ матриці: i = j;

Якщо i <j, то елементи матриці розташовані над головною діагоналлю матриці;

Якщо j <i, то елементи розташовані під головною діагоналлю матриці; Елементи, сума індексів яких на одиницю більше кількості рядків,

утворюють побічну діагональ матриці: (i+j) = n +1;

33

Матриця називається симетричною, якщо елементи, які розташовані симетрично відносно головної діагоналі, є рівними: A[i,j] = A[j,i], де A[i,j] - елементи матриці A.

Загальний вигляд повної форми опису масивів:

TYPE

<ім’я типу>=ARRAY[N1..K1,N2..K2] OF <тип ел.масиву>;

VAR <ідентифікатор масиву> : <імя типу>;

Приклад:

TYPE

MAS =array[1..5,0..3] of integer;

DIM =array [‘A’..’D’, ,‘F’..’K’] of word; VAR A: MAS;

B: DIM;

Загальний вигляд скороченої форми опису масивів:

VAR

<ім'я_масиву>: ARRAY [N1..K1,N2..K2] OF <тип_даних>;

Приклад:

Massive

: arrary

[1

.. 5,1..2]

of

real;

VAR

 

Index

: arrary

[2

.. 7,1..3]

of

integer;

Приклад опису масиву в розділі констант:

CONST

A: ARRAY [1..3,1..4] OF REAL = ((1.5, 1.2, 2.1, -4.42) (2.5, 3.2, -1, 44.4) (-1.1, 7, 21, -10));

Приклад введення елементів двовимірного массиву:

FOR I := 1 TO 10 DO FOR j := 1 TO 5 DO

READ (A[I,J]);

Приклад виведення елементів двовимірного массиву:

FOR I := 1 TO 10 DO FOR j := 1 TO 5 DO

WRITE (A[I]);

Фрагменти програм з обробки двовимірних масивів:

Приклад 6.1. Визначення найменшого елементу кожного рядка матриці:

FOR I := 1 TO 5 DO BEGIN

MIN := A[I,1];

FOR J := 2 TO 5 DO

IF A[I,J] < MIN THEN MIN := A[I,J]; C[I] := MIN;

END;

FOR I := 1 TO 5 DO

34

WRITELN (‘В ’,I,‘ рядку найменший елемент дорівнює

’,C[I]:2);

Приклад 6.2. Визначення найбільшого елементу кожного стовпчика матриці:

FOR J := 1 TO 5 DO BEGIN

MAX := A[1,J];

FOR I := 2 TO 5 DO

IF A[I,J] > MAX THEN MAX := A[I,J]; Z[I] := MAX;

END;

FOR J := 1 TO 5 DO

WRITELN (‘В ’,J,‘ стовчику наименший елемент дорівнює

’,Z[J]:2);

Приклад 6.3. Визначення суми елементів побічної діагоналі:

S := 0;

J := 5;

FOR I := 1 TO 5 DO BEGIN

S := S + A[I,J]; J := J–1;

END;

Приклад 6.3. Визначення добутку двох матриць:

...

for i:=1 to N do for j:=1 to M do

begin res[i,j]:=0;

for k:=1 to N do

res[i,j] := res[i,j]+m1[i,k]*m2[k,j];

end;

...

Завдання до лабораторної роботи

Завдання 1. Cкласти програму, що виконує задану операцію над двовимірним масивом розміром 10х10. Тип даних, що використовується для завдання елементів масиву, визначається самостійно.

1.Знайти та вивести максимальні за значенням елементи у кожному рядку матриці. Визначити та вивести кількість додатних елементів у кожній колонці матриці.

35

2.Визначити та вивести кількість ненульових елементів в кожному стовпчику заданої матриці. Знайти та вивести мінімальні за значенням елементи в кожному рядку заданої матриці.

3.Визначити та вивести суму від’ємних елементів у кожному стовпчику заданої матриці. Визначити та вивести максимальний елемент заданої матриці.

4.Визначити та вивести мінімальний елемент заданої матриці. Для кожного стовпчику заданої матриці визначити та вивести суму елементів, що належать рядкам з непарними номерами.

5.Для кожного стовпчика заданої матриці знайти суму елементів, що розташовані нижче головної діагоналі. Підрахувати кількість рядків, що містять від’ємні елементи.

6.Для кожного рядка заданої матриці підрахувати кількість ненульових елементів. Для кожного стовпчика заданої матриці визначити середнє значення, а серед отриманих середніх значень знайти мінімальне.

7.Поділити елементи кожного стовпчика заданої матриці на останній її елемент. Отриману матрицю вивести. Для кожного рядка заданої матриці визначити мінімальне значення, а серед отриманих мінімальних значень знайти середнє.

8.Визначити та вивести суму усіх елементів матриці. Поділити елементи кожного рядка заданої матриці на перший елемент рядка. Отриману матрицю вивести.

9.Визначити та вивести кількість ненульових елементів в кожному стовпчику заданої матриці. Для кожного рядка заданої матриці визначити та вивести суму елементів, що належать рядкам з парними номерами.

10.Знайти та вивести максимальні за значенням елементи в кожному рядку заданої матриці. Поділити елементи кожного стовпчика заданої матриці на останній її елемент. Отриману матрицю вивести.

11.Визначити та вивести кількість ненульових елементів в кожному стовпчику заданої матриці. Скласти та вивести матрицю, кожний елемент якої обчислюється як різниця значень відповідного елемента заданої матриці та мінімального елемента рядка.

12.Визначити та вивести кількість ненульових елементів в кожному рядку заданої матриці. Скласти та вивести матрицю, кожний елемент якої обчислюється як різниця значень відповідного елемента заданої матриці та мінімального елемента стовпчика.

13.Для кожного стовпчика заданої матриці знайти суму елементів, що розташовані нижче головної діагоналі. Скласти та надрукувати матрицю, кожний додатний елемент якої є цілою частиною відповідного елемента заданої матриці.

14.Для кожного рядка заданої матриці вивести кількість ненульових елементів. Визначити та вивести суму від’ємних елементів для кожного стовпчика заданої матриці.

36

15.Для кожного рядка заданої матриці визначити та вивести суму елементів стовпчика з парними номерами. Визначити та вивести значення мінімального елемента заданої матриці.

 

 

 

 

 

 

 

 

æ1 0 0

ö

 

 

Завдання 1. Дано матриці A, B,

ç

0 1 0

÷

. Обчислити С.

 

E = ç

÷

 

 

 

 

 

 

 

 

ç

 

÷

 

 

 

 

 

 

 

 

 

è

0 0 1ø

 

 

æ1 7 1

ö

æ1 0 -1ö

 

 

 

 

 

 

1.

ç

÷

ç

0 2 1

÷

. C = A2

- B .

 

 

 

A = ç0 4 0

÷

, B

÷

 

 

 

 

ç

÷

ç

5 0 6

÷

 

 

 

 

 

 

 

è1- 3 1ø

è

ø

 

 

 

 

 

 

 

æ2 2 3

ö

æ

3 0 - 2ö

2.

ç

4 0

÷

ç

-1 2 -1

÷

A = ç1

÷, B = ç

÷. C = A(A + B) .

 

ç

-1 2

÷

ç

0 1 2

÷

 

è1

ø

è

ø

 

 

æ

0 7 3ö

æ 4 0 -1ö

 

3.

 

ç

3 4 1

÷

ç

 

 

 

 

÷

 

A = ç

÷, B = ç

5 2 -1÷. C = B(A - B) .

 

 

ç

 

 

÷

ç

3 0 5

 

÷

 

 

 

è1- 3 1

ø

è

 

ø

 

 

 

æ1 2 3 ö

æ 1 4 - 3ö

 

4.

 

ç

4 4 0

÷

ç

2 0 5

÷

 

A = ç

÷, B = ç

÷. C = A2 + B .

 

 

ç

7 - 3 8

÷

ç

3 6 1

÷

 

 

 

è

ø

è

ø

 

 

 

æ

2 7 3ö

æ 2 0 - 3ö

 

5.

 

ç

5 4 1

÷

ç

5 0 -1

÷

 

A = ç

÷, B = ç

÷. C = (A - E)B .

 

 

ç

 

 

 

÷

ç

3 4 5

 

÷

 

 

 

è1-1 2

ø

è

 

ø

 

 

 

æ

3 5 3 ö

æ 3 2 -1ö

 

6.

 

ç

3 0 1

÷

ç

 

 

 

÷

 

A = ç

÷, B = ç1 3 -1÷. C = E + A2 + B .

 

 

ç

 

 

÷

ç

7 0 2

÷

 

 

 

è1- 3 0

ø

è

ø

 

 

 

æ1 2 1 ö

æ 0 6 -1ö

 

7.

 

ç

4 1 0

 

÷

ç

 

2 1 5

÷

 

A = ç

 

÷, B = ç

 

÷. C = A(E + B2 ) .

 

 

ç

 

 

 

÷

ç

 

4 3 1

÷

 

 

 

è

2- 2 1ø

è

 

ø

 

 

 

æ

2 2 1ö

æ 1 4 - 3ö

 

8.

 

ç

 

 

 

÷

ç

2 0 1

 

÷

+ B .

A = ç

-11 0÷, B = ç

 

÷. C = A × B

 

 

ç

4- 3 5

÷

ç

3 2 1

 

÷

 

 

 

è

ø

è

 

ø

 

 

 

æ1 2 1 ö

æ 7 0 2

 

ö

 

9.

 

ç

4 1 0

 

÷

ç

2 1 5

 

÷

- A) .

A = ç

 

÷, B = ç

 

÷. C = A(B2

 

 

ç

 

 

 

÷

ç

 

 

 

÷

 

 

 

è

2- 2 6ø

è1 4 - 3ø

 

 

 

 

æ1 2 3ö

 

 

æ 2 1 -1ö

 

10.

A =

ç

 

 

÷

B =

 

ç

2 1 5

÷

 

ç

4 1 2 ÷,

 

ç

÷. C = A(E - B2 ) .

 

 

 

ç

 

 

÷

 

 

ç

3 5 3

÷

 

 

 

 

è

7 - 3 1ø

 

 

è

ø

 

 

 

 

æ1 2

1 ö

 

 

æ 2 1 5

ö

 

11.

A =

ç

3 4

 

÷

B =

 

ç

 

÷

 

ç

5 ÷,

 

ç

3 5 3÷. C = (E - A2 )B .

 

 

 

ç

 

 

÷

 

 

ç

4 3 1

÷

 

 

 

 

è

2- 4 1ø

 

 

è

ø

 

37

 

æ3 1 2

ö

æ

 

1 4 3 ö

 

 

12.

ç

 

÷

ç

2 3 2

÷

 

 

A = ç1 4 1

÷,

B = ç

÷. C = (E - B2 )A .

 

ç

2 3 4

÷

ç

3 5 1

÷

 

 

 

è

ø

è

ø

 

 

 

æ1 2 3

ö

æ

1 4 - 3ö

 

13.

ç

4 3 0

÷

ç

2 0 5

÷

+ B .

A = ç

÷,

B = ç

÷. C = A2

 

ç

 

÷

ç

3 6 1

÷

 

 

è

7 - 3 8ø

è

ø

 

 

æ1 2 1

ö

æ

 

0 6 - 5ö

 

14.

ç

 

÷

ç

2 1 5

÷

 

A = ç1 3 1

÷,

B = ç

÷. C = A(E + B2 ) .

 

ç

2-1 5

÷

ç

4 3 1

÷

 

 

è

ø

è

ø

 

 

æ1 2 1

ö

æ

0 5 - 3ö

 

15.

ç

 

÷

ç

2 1 4

÷

 

A = ç1 3 1

÷,

B = ç

÷. C = B(E + A2 ) .

 

ç

 

÷

ç

 

 

÷

 

 

è

2- 3 4ø

è1 3 1

ø

 

Контрольні питання

1.Характеристики двовимірного масиву.

2.Скорочена форма опису масивів.

3.Повна форма опису масивів.

4.Опис масиву в розділі констант.

5.Умова належності елемента головній діагоналі.

6.Умова належності елемента побічній діагоналі.

ЛАБОРАТОРНА РОБОТА № 7

ОБРОБКА ТЕКСТОВИХ ДАНИХ

Мета: навчитися застосовувати команди обробки рядків та символів.

Короткі теоретичні відомості

В мові Turbo Pascal є два види текстових даних: символьні (char) та рядкові (string).

Тип даних String спеціально призначений для обробки рядків (ланцюжків символів). Він не відноситься до простих типів даних і займає проміжне місце між простими і структурованими типами даних.

Тип String багато в чому схожий на одновимірний масив:

Array [0..n] of char, де n <= 255.

Використовуючи короткий і повний формат, змінну типу String можна описати таким чином:

Var

S : string;

S1 : string[10];

S2 : string[255].

38

Процедури та функції для роботи з символьними величинами: chr (n) – символ з порядковим номером n. Результат типу char. ord (ch) – порядковий номер символу ch. Результат типу byte. pred (m) – попередній символ для m.

succ (m) – наступний символ для m.

Length(st) – визначає довжину літерної величини st.

Copy(st, m, n) – виділяє з літерної величини st n символів, починаючи з символу під номером m. Дана функція використовується для копіювання. Concat(st1, st2) – об’єднує дві рядкові величини. Дана функція виконує ту ж саму дію, що й операція ‘+’.

Pos(sf,s) – визначення місцеположення підрядка sf в рядку s.

Val(st, m, k) – перетворює рядкову величину st в число

m. Якщо k<>0,

то введена рядкова величина не є числом.

 

довжиною n,

Delete(st,

m, n) – видалення деякої групи

символів

починаючи з позиції m в рядковій величині st.

 

st1 рядкову

Insert(st2,

st1, n) – вставити в рядкову

величину

величину st2, починаючи з позиції n.

 

 

Завдання до лабораторної роботи

Завдання 1. Відповідно до варіанту скласти програму.

Завдання 1

 

 

 

 

Завдання 2

 

1

 

 

2

 

 

 

 

3

 

 

Підрахувати

кількість

слів

у

Знайти

у

введеному

реченні

1

реченні, які складаються з заданої

найкоротше слово і підрахувати,

 

кількості літер.

 

 

 

скільки у ньому різних літер.

2

Підрахувати кількість різних цифр

Ввести речення і перевірити, чи є в

у введеному рядку.

 

 

ньому задане слово.

 

 

 

 

 

 

Знайти, в якому місці введеного

З даного тексту видалити всі

3

речення вперше

зустрілась літера

фрагменти, що знаходяться у

 

“я”.

 

 

 

 

фігурних дужках.

 

 

У заданому рядку замінити всі

Підрахувати, скільки у введеному

4

коми на крапки, а крапки на знаки

реченні слів–паліндромів.

 

 

оклику.

 

 

 

 

 

 

 

 

 

У введеному рядку видалити всі

Підрахувати, який відсоток слів у

5

розділові знаки (крапки, коми,

реченні

починається на

задану

 

знаки оклику і знаки питання).

 

літеру.

 

 

 

6

Підрахувати

кількість

слів

у

Ввести речення і перевірити, чи є в

реченні.

 

 

 

 

ньому задане словосполучення.

 

 

 

 

 

7

У введеному

тексті

знайти

Дано рядок, що складається зі слів і

 

довжину

найкоротшого

та

пропусків.

Перевернути

кожне

 

найдовшого слова.

 

 

слово, зберігши незмінним їх

 

 

 

 

 

 

порядок в рядку.

 

39

1

2

 

 

3

 

 

8

У введеному тексті знайти

Підрахуйте,

яка

з голосних літер

найдовше слово–паліндром.

зустрічається

у

тексті

найбільшу

 

 

 

кількість разів.

 

 

 

 

У введеному тексті замінити всі

З даного тексту видалити всі

9

маленькі літери на великі.

фрагменти, що знаходяться у

 

 

круглих дужках.

 

 

 

 

Замініть у введеному тексті всі

Знайти у

введеному

реченні

10

групи літер абвна абвг.

найдовше слово і підрахуйте,

 

 

скільки у ньому різних літер.

 

 

Підрахувати кількість символів в

Підрахувати

кількість

слів

у

11

усіх словах речення.

реченні, які мають більш двох букв

 

 

“а”.

 

 

 

 

 

Видалити з речення слова, які

Відсортувати слова в реченні за

12

складаються більше ніж з шести

алфавітом.

 

 

 

 

 

букв.

 

 

 

 

 

13

Перевірити задане речення: чи є в

Додати перед кожним словом його

 

ньому числа.

порядковий номер у реченні.

 

14

Видалити з речення слова, які

Вивести на екран однакові слова в

 

містять великі літери.

двох заданих реченнях.

 

 

15

Вивести на екран слова речення,

Підрахувати

кількість

слів

у

які написані великими буквами.

реченні, які мають більш двох букв

 

 

“а”.

 

 

 

 

Контрольні питання

1.Дайте визначення символьних змінних?

2.Які операції застосовують над символьними змінними?

3.Які можна здійснити операції з елементами рядка?

4.Пояснить призначення і застосування функцій і процедур, які використовуються при роботі із символьними змінними.

40