Тема: Turbo Pascal. Програмування вкладених циклів.
Мета: Формування умінь створення програм, які містять вкладені цикли алгоритмічною мовою високого рівня Pascal.
Теоретичні відомості
Необхідно обчислити значення yi=f(z,xi), де параметр циклу z змінюється від початкового до кінцевого значення з постійним кроком z, а змінна xi(і=1,2,…,n) є елементом одновимірного масиву (дійсні числа).
Для заданої функції необхідно:
- скласти графічний алгоритм з використанням операторів циклу;
- скласти програму з використанням операторів циклу;
- вивести на друк значення функції і відповідних їм значень аргументів. Виведення аргументів виконати так, щоб один з них друкувався перед початком внутрішнього циклу;
- розв’язати задачу на ЕОМ в діалоговому режимі;
- проаналізувати одержані результати.
Перед складанням алгоритму слід визначити кількість значень функції, які будуть одержані в результаті розв’язання задачі, т. б. кількість значень функції від кожного аргумента. Загальна кількість значень функції дорівнюватиме добутку кількостей значень всіх аргументів.
|
|
Хід роботи
2.1 Постановка задачі
Обчислити значення функції
, = 0,65.
Аргумент q змінюється від початкового значення 2,8 до кінцевого 5,4 з кроком 1.3. Змінна с являє собою одновимірний масив (с1=-1,85; с2=2,39; с3=3,65).
2.2 Графічний алгоритм показаний на рис. 11.1
ні
так
Рисунок 11.1 – Графічний алгоритм
2.3 Таблиця ідентифікації змінних
Змінна | a | q | zm | cm |
Ідентифікатор | a | q | z[m] | c[m] |
2.4 Програма мовою Pascal та результати обчислень
Program VC {Bкладені_цикли};
const
a=0.65;
Var
m:integer;
q:real;
c,z: array [1..3] of real;
Вegin
for m:=1 to 3 do
begin
write('c(',m,')=');
read(c[m])
end;
q:=2.8;
writeln('РЕЗУЛЬТАТИ РОЗРАХУНКУ:');
repeat
writeln('q=',q:6:3);
for m:=1 to 3 do
begin
z[m]:=c[m]+(exp(m)-q)/abs(1-a);
writeln('z(',m,')=',z[m]:6:3,' c(',m,')=',c[m]:6:3)
end;
q:=q+1.3;
until q>5.4
end.
РЕЗУЛЬТАТИ РОЗРАХУНКУ:
q= 2.800
z(1)=-2.083 c(1)=-1.850
z(2)=15.502 c(2)= 2.390
z(3)=53.037 c(3)= 3.650
q= 4.100
z(1)=-5.798 c(1)=-1.850
z(2)=11.787 c(2)= 2.390
z(3)=45.608 c(3)= 3.650
q= 5.400
z(1)=-9.512 c(1)=-1.850
z(2)= 8.073 c(2)= 2.390
z(3)=45.609 c(3)= 3.650
3 Контрольні запитання
1. Чому не допускається перетин вкладених циклів?
2. Як визначити кількість значень функції при зміні двох аргументів?
3. Побудуйте графічний алгоритм для обчислення значень функції трьох змінних y=f(a,b,c); i=1,2,...,N; j=1,2,...,M; k=1,2,...,L.
4. Який оператор керує виходом з циклу?
5. Побудуйте програму, використавши структуру циклу з передумовою.
6. Які дані необхідні для організації циклу?
7. Що таке цикл?
Варіанти завдань наведені в таблиці 11.1
Таблиця 11.1 –Варіанти завдань
№ варіанту | Параметр циклу з регулярною зміною аргумента | Параметр циклу з індексною змінною | ||||||
Функція | Параметр циклу | Початкове значення | Кінцеве значення | Крок | Позначення індексу | Номер індексу | Значення індексної змінної | |
|
|
с | 0,26 | 1,26 | 0,2 | і | 1 2 3 | 1,95 0,87 1,29 | ||
6,35 10,4 | 7,40 17,9 | 0,15 2,5 |
Продовження таблиці 11.1
i j | 1 2 3 4 1 2 3 | 1,35 2,6 1,86 0,95 0,60 1,28 3,15 | ||||||
f | -6 | -2,4 | 1,2 | j | 1 2 3 | 28,3 41,7 13,4 | ||
8,63 0,75 | 9,83 1,45 | 0,4 0,35 | ||||||
i k | 1 2 3 4 1 2 3 | 0,68 2,05 1,81 3,86 1,12 2,03 1,56 | ||||||
x | 6,2 | 0,3 | i | 1 2 3 4 | 3,28 0,56 2,91 3,26 | |||
8,35 –0,9 | 12,8 –0,4 | 1,6 0,25 | ||||||
k j | 1 2 3 1 2 3 4 | 1,86 2,45 3,7 0,96 4,21 2,87 1,78 |
Продовження таблиці 11.1
a | 1,7 | 2,4 | 0,35 | i | 0,236 2,851 3,270 7,882 | |||
-4,3 | –3,8 | 0,15 | ||||||
k l | 1,3 –1,6 –2,3 4,51 –4,16 2,61 7,28 | |||||||
x | 12,4 | 19,4 | 3,5 | i | -3,46 1,852 3,03 –2,57 | |||
10,6 0,85 | 6,6 1,60 | -2 0,25 | ||||||
i j | 3 1 2 3 | 62,6 –34,8 41,71 2,75 8,34 6,95 11,7 | ||||||
h | 81,6 | n | 0,18 –1,86 0,65 –2,46 | |||||
2,45 6,82 | 3,16 10,3 | 0,35 1,15 |
Продовження таблиці 11.1
j m | 2,46 –7,38 11,6 1,6 0,35 6,71 9,35 | |||||||
i j | 21,87 32,45 13,01 48,43 842,3 326,8 485,0 206,3 | |||||||
x | -3,1 | -1,4 | k | 4,285 2,06 5,781 1,984 | ||||
0,8 –3,4 | 1,32 –4,2 | 0,26 –0,4 | ||||||
i k | -2,4 1,36 –3,35 128,6 85,9 324,3 | |||||||
q | 2,8 | 5,4 | 1,3 | m | -1,85 2,39 3,65 | |||
1,6 7,35 | 2,5 9,75 | 0,3 1,2 | ||||||
b | -18 | -22 | -2 | j | 1 2 | 4,41 1,85 16,35 |