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

АтаП_пр

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

Завдання до практичного заняття

Завдання 1. Визначити чому дорівнюватиме значення змінної M у

результаті виконання послідовності операторів:

 

1) M=128; i:=-2;

2) M:=2; i:=0;

3) M:=1; i:=1;

while

i<=5

while i<5 do

while i<3 do

do

 

begin

begin

begin

 

i:=i+2;

i:=i+2;

M:=M/2;

 

M:=M+sqr(i);

M:=M+1/i;

i:=i+2

 

end;

end;

 

end;

 

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

For i:=1 to 5 do begin

read(x);

if x>=0 then l:=2*i end;

де змінна x послідовно набуватиме значень:1, 4, -2, 5, 0.

Завдання 3. Записати покрокове виконання вказівки повторення та кінцевий результат s та i:

1) i:=1; s:=0;

2) i:=1; s:=0;

Repeat

While

i<= 5do

s:=s+i; i:=i+2;

begin

Until i>=7;

s:=s+i; i:=i+2;

 

end;

 

Завдання 4. Проаналізувати фрагменти алгоритмів і визначити, які значення буде надруковано в результаті виконання таких дій:

1) s:=1;

for i:=1 to 10 do s:=s+1;

writeln (s); 2) s:=1;

For i:=1 to 10 do begin

s:=s+1;

writeln(s)

end;

Завдання 5. Скільки разів буде надруковано числа 2 та 3 в результаті

виконання таких дій:

2) for i:=1 to 3 do

1) for i:=1 to 3 do

writeln (2);

begin

for j:=1 to 2 do

writeln (2);

writeln (3);

for j:=1 to 2 do

 

writeln (3);

 

end;

11

Завдання 6. Скласти фрагмент програми в результаті виконання якої:

1)змінній с буде надано значення найбільшого спільного дільника натуральних чисел a та b;

2)змінній h буде надано значення першого від’ємного елемента послідовності cos(ctg(n)), n=1,2,3,…;

Пояснити обраний варіант оператора циклу.

Завдання 7. Скласти програму яка за даним натуральним значенням змінної n обчислюватиме:

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

1)

 

 

 

 

 

 

 

;

2)

 

 

 

 

 

 

 

2 +

2 + ...+

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

1 4

44 2

4 4 43

 

 

 

1+

 

 

 

 

 

 

 

 

n разів

 

 

 

 

 

 

 

 

 

 

 

+

1

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5 +

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

101+

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

103

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Завдання 8. Скласти програму при виконанні якої буде знайдено найбільше натуральне n, для якого виконується умова:

1)3n2 −730n<5 ;

2)4n < m (m >1) .

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

1.Види циклів.

2.Формат оператора While .. do. Як здійснюється вихід з тіла циклу?

3.Формат оператора Repeat .. until? Як здійснюється вихід з тіла циклу?

4.Формат оператора for .. to .. do? Як здійснюється вихід з тіла циклу?

5.Який цикл виконається принаймні один раз?

6.Який цикл може не виконатися жодного разу

12

ПРАКТИЧНЕ ЗАНЯТТЯ № 4

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

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

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

Масивом називається скінченна послідовність змінних одного типу, які мають однаке ім’я та розрізняються порядковим номером.

Порядковим номер елемента масиву називається індексом.

Вектор або одновимірний масив це масив, в якому елементи нумеруються одним індексом.

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

VAR

<ім'я_масиву>: ARRAY [п_індекс...к_індекс] OF <тип_даних>;

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

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

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

Елементи масиву можуть вводитись з клавіатури або формуватися випадковим чином.

Для випадкового формування використовується функція – генератор випадкових чисел Random. Ця функція згідно з певним алгоритмом при кожному зверненні до неї повертає випадкове число - або дійсне, з інтервалу [0..1], якщо аргумент відсутній, або ціле, якщо задано цілочисельний аргумент. Для коректної роботи функцію спочатку треба ініціалізувати, викликавши процедуру Randomize без параметрів.

Завдання до практичного заняття

Завдання 1. Відповісти на наступні питання:

1.Чи може масив містити один елемент? А жодного?

2.Чи можна під час виконання програми змінювати розмір масиву?

3.Чи можуть елементами деякого масиву бути числа 1, 1.41, 1.73 та 2?

4.Чи вірно, що тип елементів масиву може бути будь-яким?

5.Чи може типом індексу масиву бути тип integer або real?

13

 

Завдання 2. Записати наведені послідовності змінних з індексами у

вигляді послідовностей елементів масивів:

 

 

1)

(mi ),де(i =1,2,...,10);

6)

(Mn),де(n = −3);

2)

(xi ),де(i = 0,1,...,5);

7)

(An),де(n = 0,1,...,7);

3)

(bi ),де(i = −8,−7,...,−1);

8)

(Qi ),де(i = n +1,n + 2,...,n +5);

4)

(c j ),де ( j = −3,−2,...,3);

9)

(Pk ),де(k = i − 2,i −1,...,i +1);

5)

(di),де(i = 4,5,...,10);

10) (Bi),де(i = k,k +1,...,k + 6).

Завдання 3. Нехай нижня та верхня межі індексів одновимірного масиву В відповідно дорівнюють -5 та 10. Обчислити порядкові номери наступних елементів масиву:

1)

B[−5];

4)

B[3];

7)

B[7];

10)

B[5];

2)

B[10];

5)

B[8];

8)

B[−1];

11)

B[−0] ;

3)

B[0];

6)

B[−4] ;

9)

B[6];

12)

B[+0] .

Завдання 4. Нехай нижня та верхня межі індексів одновимірного масиву S відповідно дорівнюють -10 та 32. Визначити значення індексів елементів

масиву S, порядковими номерами яких є:

 

 

 

1)

1;

5)

32;

9) 42;

13) 39;

17) 21;

2)

3;

6)

17;

10)

37;

14) 16;

18) 19;

3)

5;

7)

9;

11)

8;

15) 14;

19) 40;

4)

12;

8)

10;

12)

25;

16) 27;

20) 11.

Завдання 5. Нехай елементи одновимірного масиву A[1..10] набувають відповідно значень -5, -3, -1, 1, 3, 5, 7, 9, 11, 13. Які значення буде надруковано в результаті виконання таких операторів:

1)for i:=1 to 10 do writeln (A[i]);

2)for i:=1 to 5 do writeln (A[i+5]);

3)for i:=10 downto 1 do writeln (A[i]);

4)for i:=5 to 10 do writeln (A[2*i]);

5)i:=1;

 

Repeat

 

i:=i+1;

 

writeln (A[i]);

 

Until A[i]>=0;

6)

i:=1;

 

While A[i]<0 do

 

begin

 

i:=i+1;

 

writeln (A[i]);

 

end;

7)

i:=1;

Repeat

writeln (A[i]); i:=i+1;

Until A[i]<0; 8) i:=10;

While A[i]>0 do i:=i-1;

writeln (A[i]);

9)i:=1; Repeat

writeln (A[2*i-1]); i:=i+1;

Until i>=10;

10)i:=10;

While A[i-9]<0 do begin

writeln (A[i]); i:=i+1;

end;

14

Завдання 6. Для розв’язання яких з наступних задач потрібні масиви, а в яких задачах можна обійтися без них?

1)Дано 50 чисел. Знайти їх середнє арифметичне.

2)Дано 50 чисел. Визначити, скільки серед них відмінних від останнього числа.

3)Дано 100 чисел. Надрукувати спочатку всі від’ємні, а потім всі інші.

4)Дано число а. Визначити перший від’ємний член послідовності x1, x2 ,...,

де x1 = a, xn = tg(xn−1) .

Завдання 7.

var x, y: array [1..70] of real; k: 1..69;

Перетворити масив x за наступним правилом (скориставшись масивом y як допоміжним):

1)всі від’ємні елементи масиву x перенести на початок, а всі інші – в кінець, зберігаючи початкове положення елементів;

2)елементи масиву х циклічно зсунути на k позицій вліво.

Завдання 8. const n=40;

var x: array [1..n] of integer; y, k: integer; t: boolean;

Написати фрагмент програми для розв’язання наступних задач:

1)змінній t присвоїти значення true, якщо в масиві немає від’ємних елементів і при цьому додатні елементи чергуються з від’ємними, а інакше значення false;

2)змінній k присвоїти номер першого входження y в масив x, або число n+1, якщо y не входить в x.

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

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

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

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

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

15

ПРАКТИЧНЕ ЗАНЯТТЯ № 5

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

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

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

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

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

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

 

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

 

 

A11

A12

A13

A14

Рядки i

A21

A22

A23

A24

 

A31

A32

A33

A34

 

A41

A32

A43

A44

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

Стовпці j

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

i = j;

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

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

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

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

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

TYPE

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

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

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

VAR

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

16

Завдання до практичного заняття

Завдання 1. Які групи наведених змінних з індексами визначають один і той самий елемент одного і того самого масиву, при умові, що змінні i та j набувають цілих додатних значень:

1)

x[i, j+0.2−5];

8)

a[10 − 3.7];

15)

b[0.1, j*(−2),1.3];

2)

a[6];

9)

x[0, j,−5] ;

16)

b[0,2,1];

3)

x[i,1.2 − 5];

10)

x[i + 0.2, j + 0.1];

17)

ax[0.3,6.2];

4)

x[i, j − 5.1];

11)

a[0,6*1.1− 0.6] ;

18)

x[0. j + 0.3,−5];

5)

a[0,6] ;

12)

b[0,−2* j,1];

19)

x[i + 0.1,1,−5];

6)

a[6 + 0.2];

13)

ax[0,6];

20)

ax[0.01,6.01] .

7)

x[i + 0.1, j,−5];

14)

x[i, j,−5];

 

 

Завдання 2. Записати наведені матриці як послідовності елементів двовимірних масивів:

1)(mij),де(i =1,2,3; j =1,2,3);

2)(xij),де(i =1,2; j =1,2,3,4);

3)(bik ),де(i = −8,−7; k = 8,9,10);

4)(ckj),де (k = 3,4,5; j = −1,0,1);

5)(dim),де(i =1;m =1,2,3,4,5);

6)(Mnk ),де(n =1,2,3,4,5;k = −3);

7)(Akl ),де(k = 0;l = 0);

8)(Qi j),де(i = n +1,n + 2; j = −7,−6,−5);

9)(Pij),де (i = n − 7,n − 6; j = −n +1,−n + 2,−n + 3);

Завдання 3. Нехай нижня та верхня межі індексів двовимірного масиву Z відповідно дорівнюють 1 та 8 – по першому виміру (номер рядка), 1 та 4 – по другому виміру (номер стовпчика). Обчислити порядкові номери наступних елементів масиву:

1)

Z[2,1] ;

4)

Z[5,2];

7)

Z[3,2];

10)

Z[1,4];

2)

Z[7,4];

5)

Z[1,1];

8)

Z[7,2];

11)

Z[7,3];

3)

Z[4,2];

6)

Z[8,3] ;

9)

Z[1,2];

12)

Z[5,4];.

17

Завдання 4. Нехай нижня та верхня межі індексів одновимірного масиву S відповідно дорівнюють 1 та 7 – по першому виміру і – 1 та 12 – по другому виміру. Визначити значення індексів елементів масиву S, порядковими номерами яких є:

1)

2;

5)

13;

9) 61;

13) 43;

17)

5;

2)

54;

6)

57;

10) 27;

14) 39;

18)

69;

3)

11;

7)

84;

11) 19;

15) 21;

19)

40;

4)

37;

8)

8;

12) 70;

16) 41;

20)

30.

Завдання 5. Чи буде правильно записана вказівка А[і]:=В, якщо змінні А і В описані наступним чином:

1)var A: array [1..5,1..3] of real;

B:array [1..3] of real;

2)var A: array [1..5] of real;

B:array [1..3] of real;

3)var A: array [1..5,1..3] of real;

B:real;

Завдання 6. const n=8; m=12;

var C: array [1..n,1..m] of integer; k: integer;

Визначити k – кількість «особливих» елементів масиву С, вважаючи «особливим», якщо:

1)він більше суми інших елементів свого стовпчика;

2)в його рядку зліва від нього знаходяться елементи, які менші за нього, а справа – більші.

Завдання 7.

var A: array [1..15,1..20] of integer; B: array [1..15] of boolean;

По масиву А отримати масив В, надаючи його k–му елементу значення true, якщо виконується вказана нижче умова, а інакше – false:

1)всі елементи k-го стовпчика масиву А нульові;

2)всі елементи k-го рядка масиву А впорядковані за спаданням.

Завдання 8.

var A: array [1..6,1..9] of real; B: array [1..9] of real;

Заповнити масив А за слідуючим правилом: Aij = xij .

Завдання 9.

var A: array [1..9,1..9] of real; s: real;

18

Знайти s – суму елементів із зафарбованої області масиву A.

1)

 

 

 

2)

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

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

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

ПРАКТИЧНЕ ЗАНЯТТЯ № 6

ОПРАЦЮВАННЯ СИМВОЛЬНИХ ВЕЛИЧИН

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

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

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

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

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

Процедури та функції для роботи з символьними величинами: 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.

 

 

19

 

Завдання до практичного заняття

1)

Завдання 1. Які з рядкових величин описані правильно:

var A: string ;

4)

var A: string [285];

2)

var A: string (16);

5)

var A: string [1..15];

3)

var A: string [17,5];

6)

var A: string [17];

1)

Завдання 2. Обчислити значення виразу:

ord(‘q’)<ord(‘z’);

pred(‘7’);

5)

2)

succ(‘0’)=pred(‘2’);

6)

chr(25)>=chr(16);

3)

ord(‘5’)-ord(‘0’);

7)

ord(pred(chr(24)));

4)

‘d’>’a’;

8)

chr(ord(‘5’)+1).

Завдання 3. Вказати яким вказівкам присвоювання відповідають

значення k

1)

k=18

а) LENGTH (‘ПИТАННЯ’);

б) LENGTH (‘ЗМІННА’);

2)

k=7

в) LENGTH (‘ПОДАТКОВА ІНСПЕКЦІЯ’);

3)

k=15

г) LENGTH (‘ФРАГМЕНТ ТЕКСТУ’);

4)

k=8

д) LENGTH (‘17+12=29’);

5)

k=6

Завдання 4. Дано: A=’ПРОСПЛЮСЬ’;

B=’РОСТОК’;

S=’СПЛЮ’;

 

K=’РОС’; M=’ПЛЮС’.

 

 

 

 

Вказати значення :

в)POS(K,A);

г) POS(K,B)

а) POS(S,A);

б) POS(M,A);

Завдання 5. Дано:

CONST S=’ОДНАКОВІСІНЬКО’;

VAR A: STRING[15];

Знайти значення змінної А:

1)A:=COPY(S,1,5); 4)DELETE(S,7,8); 2)A:=COPY(S,7,2)+COPY(S,5,1); 5)A:=COPY(S,5,1)+COPY(S,10,3; 3)A:=COPY(S,1,3)+COPY(S,1,1); 6)DELETE(DELETE(S,1,8),4,2).

 

Завдання 6. Обчислити значення виразу

 

1)

pred(‘7’);

4)

ord(pred(chr924)));

2)ord(‘5’) – ord(‘0’);

5)

chr(25)>=chr(16);

3)

succ(‘0’)=pred(‘2’);

6)

chr(ord(‘5’)+1).

Завдання 7. Дано:

CONST S=’У НЕДІЛЮ ВРАНЦІ-РАНО ПОЛЕ КРИЛОСЯ ТУМАНОМ’

VAR A: STRING [20];

 

За допомогою яких вказівок можно отримати значення А:

1)

‘У

НЕДІЛЮ

ТУМАН’;

4) ‘ТУМАНОМ ВКРИЛОСЯ

2)

‘ВРАНЦІ У

НЕДІЛЮ’;

ПОЛЕ’.

3)

‘У

НЕДІЛЮ

В ПОЛЕ’;

 

20