СУМИ АБО ДОБУТКУ
7.1. Обчислити значення функції
Аргумент х змінюється від початкового значення 1.3 до кінцевого значення -14.3. Кількість значень аргумента n=9; a=1.32.
7.2. Обчислити значення функції
Аргумент z змінюється від початкового значення 1.2 з кроком 0.25 до кінцевого 4.2; х=8.35; а=3.214.
7.3. Дано одновимірний масив з 25 чисел. Знайти суму перших непарних 11 чисел.
7.4. Дано одновимірний масив Y, який складається з 15 елементів. Обчислити функцію
7.5. Дано одновимірний масив С, який складається з 15 елементів. Обчислити і надрукувати добуток додатних і суму від’ємних елементів.
7.6. Дано одновимірний масив С, який складається з 12 елементів. Обчислити вС значення функції, а також суму значень функцій для від’ємних елементів масиву:
7.7. Дано одновимірний масив А, який складається з 18 елементів. Обчислити і надрукувати суму від’ємних парних елементів.
7.8. Дано одновимірний масив Т, який складається з 18 елементів. Обчислити і надрукувати добуток перших 7 елементів і суми наступних елементів, які знаходяться на парних позиціях.
|
|
7.9. Дано одновимірний масив С, який складається з 15 елементів. Обчислити і надрукувати добуток непарних елементів і їх кількість.
7.10. Дано одновимірний масив Y, який складається з 14 елементів. Обчислити і надрукувати суму перших 8 елементів і добуток наступних елементів, які діляться на 3 з остачею 2.
7.11. Дано два одновимірні масиви чисел Х і Т, кожний з яких складається з 12 елементів. Обчислити:
7.12. Знайти середнє арифметичне з модулів обчислених значень функції
7.13. Дано два одновимірні вектори Х і Т, кожний з яких скла-дається з 10 елементів. Обчислити їх скалярний добуток.
7.14. Обчислити значення
де аі, bі визначаються за формулами
7.15. Дано одновимірний масив М, який складається з 18 еле-ментів. Обчислити кількість від’ємних елементів і їх суму.
7.16. Обчислити
7.17. Дано одновимірний масив С, який складається з 16 еле-ментів. Обчислити середнє арифметичне значення парних еле-ментів масиву, які діляться на 3 з остачею 1.
7.18. Дано одновимірний масив Р, який складається з 12 еле-ментів. Обчислити суму модулів вСх від’ємних елементів більших від числа А(А=1.25). Число А ввести з клавіатури.
7.19. Дано одновимірний масив В, який складається з 12 еле-ментів. Обчислити добуток елементів масиву, які не дорівнюють нулю, значення яких знаходяться в межах А<B(I)<C, і їх кількість. Значення А і С ввести з клавіатури.
7.20. Дано цілочисловий одновимірний масив А, який складається з 14 елементів. Обчислити і надрукувати суму парних елементів, які знаходяться на непарних позиціях, і їх кількість.
7.21. Обчислити значення функції , причому b змін-юється від 0.9 до 1.7 з кроком 0.2. Знайти середнє значення різ-ниці між елементами обчисленого вектора А і заданого вектора С, який складається з 5 елементів, за формулою
|
|
7.22. Обчислити скалярний добуток векторів X, Y. Вектор за-даний, а значення елементів вектора Х обчислити за формулою
7.23. Дано координати 12 свердловин (хі, уі, і=1,2,...,12) і ко-ординати групового пункту збору нафти хп, уп. Визначити віддаль від кожної свердловини до групового пункту і суму цих віддалей.
7.24. На складі є 12 одиниць обладнання, відома вартість кожної одиниці. Визначити сумарну вартість обладнання і середнє значення вартості одиниці обладнання і відхилення вартості кожної одиниці від середньої.
7.25. В цеху встановлено 15 одиниць обладнання, кожне з яких відпрацювало строк (від 5 до 15 років), відома вартість кожної одиниці обладнання. Визначити сумарну вартість, кількість одиниць обладнання, що працювало більше 10 років, і його вартість.
7.26. Відомі дані про зарплату кожного працівника бригади, в бригаді 25 чоловік. Визначити сумарну заробітну плату бригади та кількість працівників, які отримали зарплату, вищу від середньої.
7.27. Обчислити суму за формулою:
Результат обчислень вивести на друк.
Приклад. Дано вектор, який складається з 7 елементів. Обчис-лити суму вСх елементів і добуток ненульових елементів, а також підрахувати кількість нульових елементів. A={8.9; -3.4; 2.6; 0; 4.2; 3.1; 0}.
1. Графічний алгоритм показаний на рис.7.1
2 Ідентифікація змінних
Змінна | А | S | D | n |
Ідентифікатор | A(i) | S | D | N |
Де S – сума елементів,
D – добуток ненульових елементів,
n – кількість нульових елементів.
4. Програма мовою GW Basic
10 REM НАКОПИЧЕННЯ СУМИ, ДОБУТКУ
20 DIM A(7)
30 FOR I=1 TO 7
40 INPUT A(I)
50 NEXT I
60 S=0: D=0: N=0
70 FOR I=1 TO 7
80 S=S+A(I)
90 IF A(I)=0 THEN 120
100 D=D*A(I)
110 GOTO 130
120 N=N+1
130 NEXT I
140 PRINT “СУМА=”;S
150 PRINT “ДОБУТОК НЕНУЛ. ЕЛЕМ.=”;D
160 PRINT “КІЛЬКІСТЬ НУЛ. ЕЛЕМ.=”;N
170 END
СУМА=15.4
ДОБУТОК НЕНУЛ. ЕЛЕМ.= -1024.36
КІЛЬКІСТЬ НУЛ. ЕЛЕМ.=2
4. Програма мовою С
#include <stdio.h>
main()
{
float a[7]={8.9, -3.4, 2.6, 0, 4.2, 3.1, 0},
s=0,d=1,m2;
int i,n=0;
printf(“DATA:\n”);
for(i=0;i<7;i++)
{
printf(“a[%i]=%f\n”,i,a[i]);
s+=a[i];
if (a[i]= =0)
n++;
else
d*=a[i];
}
printf(“СУМА= %f\n”ДОБУТОК НЕНУЛ. ЕЛЕМ.=%f\n”,s,d);
printf(“КІЛЬКІСТЬ НУЛ. ЕЛЕМ.=%i\n”,n);
}
СУМА=15.400000
ДОБУТОК НЕНУЛ. ЕЛЕМ.= -1024.362450
КІЛЬКІСТЬ НУЛ. ЕЛЕМ.= 2
4. Програма мовою Pascal
program lab7(input,output);
var s,d: real;
n,i: integer;
a: array [1..7] of real;
begin
for i:=1 to 7 do
begin
write(‘a(‘,i,’)=‘);
read(a[i])
end;
s:=0;d:=1;n:=0;
for i:=1 to 7 do
begin
s:=s+a[i];
if a[i]=0 then n:=n+1
else d:=d*a[i]
end;
writeln(‘СУМА=’,s:11);
writeln(‘ДОБУТОК НЕНУЛ. ЕЛЕМ.=’,d:12);
writeln(‘КІЛЬКІСТЬ НУЛ. ЕЛЕМ.=’,n)
end.
СУМА=1.5400E+01
ДОБУТОК НЕНУЛ. ЕЛЕМ.= -1.02436E+03
КІЛЬКІСТЬ НУЛ. ЕЛЕМ.= 2
Завдання:
Дано вектор, який складається з 7 елементів. Обчислити суму вСх елементів і добуток ненульових елементів, а також підрахувати кількість нульових елементів. А = {8.9; -3.4; 2.6; 0; 4.2; 3.1; 0}.
Опис форми.
Відкриваємо нову форму і на цій формі створюємо такі елементи (таблиця 7.1):
Табллиця 7.1 - Елементи керування і їх властивості
Елемент (Name) | Властивість | Значення |
Label1 | Caption | Сума |
Alignment | 2-Center | |
Label2 | Caption | поле Caption порожнє |
BackColor | &H80000009& | |
BorderStyle | 1-FixedSingle | |
Label3 | Caption | Добуток ненульових елементів |
Alignment | 2-Center | |
Label4 | Caption | поле Caption порожнє |
BackColor | &H80000009& | |
BorderStyle | 1-FixedSingle) | |
Label5 | Caption | Кількість нульових елементів |
Alignment | 2-Center | |
Label6 | Caption | поле Caption порожнє |
BackColor | &H80000009& | |
BorderStyle | 1-FixedSingle | |
CommandButton1 | Caption | Розрахунок |
Рисунок 7.2 – Інтерфейс програми.
Коли ми двічі клацнемо на кнопці „Розрахунок” з’явиться вікно, в якому набираємо таку програму:
Private Sub Command1_Click()
Dim A(7), S, D, N As Single
For I = 1 To 7
A(I) = Val(InputBox(“Будьласка введіть “ & I & “ Елемент”, “Введення”, “”))
Next I
S = 0: D = 1: N = 0
For I = 1 To 7
S = S + A(I)
If A(I) = 0 Then N = N + 1 Else D = D * A(I)
|
|
Next I
Label2.Caption = S
Label4.Caption = D
Label6.Caption = N
End Sub
Тепер програмуємо кнопку „Вихід”:
Private Sub Command2_Click()
End
End Sub
Рисунок 7.3 – Результат виконання програми
Програма мовою Delphi
Опис форми.
Відкриваємо нову форму і на цій формі створюємо такі елементи:
Таблиця 7.2 - Елементи керування і їх властивості
Елемент (Name) | Властивість | Значення |
Label1 | Caption | Результати |
Label2 | Caption | Сума S |
Label3 | Caption | Добуток не нул. Елем. |
Label4 | Caption | Кількість нул. Елем. |
Memo1 | Line | Вхідні дані |
Button1 | Caption | Обчислити |
Button2 | Caption | Вихід |
В результаті наша форма буде мати
вигляд:
Рисунок 7.4 – Інтерфейс програми
Код програми матиме вигляд:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
Tform1 = class(Tform)
Memo1: Tmemo;
Button1: Tbutton;
Button2: Tbutton;
Label1: Tlabel;
Label2: Tlabel;
Label3: Tlabel;
Label4: Tlabel;
procedure FormCreate(Sender: Tobject);
procedure Button1Click(Sender: Tobject);
procedure Button2Click(Sender: Tobject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: Tform1;
s,d: real;
n,i: integer;
a: array [1..7] of real;
implementation
{$R *.DFM}
procedure Tform1.FormCreate(Sender: Tobject);
begin
for i:=1 to 7 do
begin
a[i]:=StrToFloat(InputBox(‘Масив’,’A[‘+IntToStr(i)+’]’,’1’));
Memo1.Lines.Add(‘A[‘+IntToStr(i)+’]=’+FloatToStr(a[i]));
end;
end;
procedure Tform1.Button1Click(Sender: Tobject);
begin
s:=0;
d:=1;
n:=0;
for i:=1 to 7 do
begin
s:=s+a[i];
if a[i]=0 then n:=n+1
else d:=d*a[i];
end;
Label2.Caption:=’Сума S=’+Format(‘%5.6s’,[FloatToSTr(s)]);
Label3.Caption:= ‘Добуток не нул. Елем.=’+Format(‘%5.8s’,[FloatToSTr(d)]);
Label4.Caption:=’Кількість нул. Елем.= ‘+Format(‘%5s’,[FloatToSTr(n)]);
end;
procedure Tform1.Button2Click(Sender: Tobject);
begin
close;
end;
end.
Рисунок 7.5 – Результат виконання програми
Пояснення до програм
Особливість програм з накопиченням суми або добутку полягає в тому, що формування суми чи добутку проводиться в циклі. Перед заголовком циклу, символ 3, рис.7.1, змінній, в якій накопичується сума, присвоюється нуль (S=0), а змінній для добутку – одиниця (D=1). Обчислення добутку проводиться при хибності умови A(I)=0, символ 6. Структура програми являє собою цикл з параметром, який є індексом масиву, і містить розгалуження. Очевидно, що цикл можна організувати за допомогою оператора циклу чи оператора умовного переходу. Також можуть бути використані циклічні структури з передумовою чи післяумовою.
|
|
Питання для самоперевірки.
1.Яка структура алгоритму накопичення суми?
2.Яка структура алгоритму накопичення добутку?
3.Чому змінній, в якій накопичується добуток, перед його обчисленням присвоюють одиницю?
4.Яка структура алгоритму знаходження парних чисел; чисел кратних трьом, п’яти?
5.Побудуйте розгалуження за допомогою логічного умовного оператора.
6.Як побудувати програму накопичення суми і добутку, користуючись циклічними структурами з передумовою, з післяумовою?
ВКЛАДЕНІ ЦИКЛИ
Для завдань, наведених в таблиці 5, необхідно:
- скласти графічний алгоритм з використанням операторів циклу або умовних операторів;
- скласти не менше двох програм: одна пограма з використанням тільки операторів циклу, друга програма – один з циклів (зовнішній або внутрішній) реалізований за допомогою умовного оператора;
- Вивести на друк значення функції і відповідних їм значень аргументів. Виведення аргументів виконати так, щоб один з них друкувався перед початком внутрішнього циклу;
- розв’язати задачу на ЕОМ в діалоговому режимі;
- проаналізувати одержані результати.
Задачі на вкладені цикли (таблиця 8.1) поділяються на три типи:
Перший тип задач. Варіанти: 2, 5, 8, 11, 14, 17, 21, 24. Необхідно обчислити значення y=f(x,z), де обидва параметри циклу х та у змінюються від початкового до кінцевого значення з постійним кроком.
Другий тип задач. Варіанти: 1, 4, 7, 10, 13, 16, 20, 23, 25. Необхідно обчислити значення yi=f(z,xi), де параметр циклу z змінюється від початкового до кінцевого значення з постійним кроком z, а змінна xi(і=1,2,…,n) є елементом одновимірного масиву (дійсні числа).
Третій тип задач. Варіанти: 3, 6, 9, 12, 15, 18, 19, 22. Необхідно обчислити yij=f(xi,zj). В цих задачах х(і=1,2,…,n) і z(j=1,2,…,m) являють собою елементи одновимірних масивів дійсних чисел, які містять відповідно n i m елементів.
Перед складанням алгоритму слід визначити кількість зна-чень функції, які будуть одержані в результаті розв’язання задачі, т.б. кількість значень функції від кожного аргумента. Загальна кількість значень функції дорівнюватиме добутку кількостей значень вСх аргументів.
Таблиця 8.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 | ||||||||
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 | 1 2 3 1 2 3 4 | 1.86 2.45 3.7 0.96 4.21 2.87 1.78 | ||||||||
| a | 1.7 | 2.4 | 0.35 | i | 1 2 3 4 | 0.236 2.851 3.270 7.882 | |||
83 -4.3 | 105 –3.8 | 11 0.15 | ||||||||
k | 1 2 3 1 2 3 4 | 1.3 –1.6 –2.3 4.51 –4.16 2.61 7.28 | ||||||||
x | 12.4 | 19.4 | 3.5 | i | 1 2 3 4 | -3.46 1.852 3.03 –2.57 | ||||
10.6 0.85 | 6.6 1.60 | -2 0.25 | ||||||||
i j | 1 2 3 1 2 3 4 | 62.6 –34.8 41.71 2.75 8.34 6.95 11.7 | ||||||||
h | 81.6 | n | 1 2 3 4 | 0.18 –1.86 0.65 –2.46 | ||||||
| 2.45 6.82 | 3.16 10.3 | 0.35 1.15 | |||||||
j m | 1 2 3 1 2 3 4 | 2.46 –7.38 11.6 1.6 0.35 6.71 9.35 | ||||||||
i j | 1 2 3 4 1 2 3 4 | 21.87 32.45 13.01 48.43 842.3 326.8 485.0 206.3 | ||||||||
x | -3.1 | -1.4 | k | 1 2 3 4 | 4.285 2.06 5.781 1.984 | |||||
0.8 –3.4 | 1.32 –4.2 | 0.26 –0.4 | ||||||||
i k | 1 2 3 1 2 3 | -2.4 1.36 –3.35 128.6 85.9 324.3 | ||||||||
q | 2.8 | 5.4 | 1.3 | m | 1 2 3 | -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 3 | 4.41 1.85 16.35 |
Приклад. Обчислити значення функції
Аргумент змінюється від початкового значення b=21.5 до кінце-вого b=43.5 з кроком b=5.5. Змінна t являє собою одновимірний масив (t1=1.32; t2=2.73; t3=0.86).
Розв’язок задачі.
1. Графічний алгоритм розв’язання задачі наведений на рис.8.
2. Ідентифікація змінних
Змінна | q | b | ti | ci |
Ідентифікатор | G | B | T(I) | C(I) |
3. Програма мовою GW-Basic
10 REM ВКЛАДЕНІ ЦИКЛИ
20 DIM T(3),C(3)
30 LET G=8.63
40 REM ВВЕДЕННЯ МАСИВУ
50 FOR I=1 TO 3
60 INPUT T(I)
70 NEXT I
80 PRINT “РЕЗУЛЬТАТИ РОЗРАХУНКУ”
90 FOR B=21.5 TO 43.5 STEP 5.5
100 PRINT ”B=“;B
110 FOR I=1 TO 3
120 LET C(I)=G*SQR(B+1)*EXP(T(I))/T(I)
130 PRINT “C(“;I;”)=“;C(I),”T(“;I;”)=“;T(I)
140 NEXT I
150 NEXT B
160 END
РЕЗУЛЬТАТИ РОЗРАХУНКУ
B=21.5
C(1)=116.09 T(1)=1.32
C(2)=229.912 T(2)=2.73
C(3)=112.485 T(3)=8.6E -1
B=27
C(1)=129.504 T(1)=1.32
C(2)=256.478 T(2)=2.73
C(3)=125.483 T(3)=8.6E -1
B=32.5
C(1)=141.654 T(1)=1.32
C(2)=280.539 T(2)=2.73
C(3)=137.255 T(3)=8.6E -1
B=38
C(1)=152.84 T(1)=1.32
C(2)=302.694 T(2)=2.73
C(3)=148.094 T(3)=8.6E -1
B=43.5
C(1)=163.262 T(1)=1.32
C(2)=323.334 T(2)=2.73
C(3)=158.192 T(3)=8.6E -1
4. Програма мовою С
#include <stdio.h>
#include <math.h>
#define G 8.63
main()
{
float t[3]={1.32, 2.73, 0.86},
b,c;
int i;
for(b=21.5;b<=43.5;b+=5.5)
{
printf(“b=%f\n”,b);
for(i=0;i<3;i++)
{
c=G*sqrt(b+1)*exp(t[i])/t[i];
printf(“C=%f T(%i)=%f\n”,c,i,t[i]);
}
}
}
B=21.500000
C=116.090546 T(0)=1.320000
C=229.912903 T(1)=2.730000
C=112.485580 T(2)=0.860000
B=27.000000
C=129.504425 T(0)=1.320000
C=256.478577 T(1)=2.730000
C=125.482918 T(2)= 0.860000
B=32.500000
C=141.653717 T(0)=1.320000
C=280.539795 T(1)=2.730000
C=137.254944 T(2)=0.860000
B=38.000000
C=152.840302 T(0)=1.320000
C=302.694397 T(1)=2.730000
C=148.094147 T(2)=0.860000
B=43.500000
C=163.262177 T(0)=1.320000
C=323.334534 T(1)=2.730000
C=158.192398 T(2)=0.860000
5. Програма мовою Pascal
program lab8(input,output);
var g,b: real;
i: integer;
c,t: array [1..3] of real;
begin
g:=8.63;
for i:=1 to 3 do
begin
write(‘t(‘,i,’)=‘); read(t[i])
end;
b:=21.5;
writeln(‘РЕЗУЛЬТАТИ РОЗРАХУНКУ’);
repeat
writeln(‘b=‘,b:13);
for i:=1 to 3 do
begin
c[i]:=q*sqrt(b+1)*exp(t[i])/t[i];
writeln(‘C=‘,c[i]:11,’ T(‘,i,’)=‘,t[i]:11)
end;
b:=b+5.5;
until b>43.5
end.
РЕЗУЛЬТАТИ РОЗРАХУНКУ
B=2.150000E+01
C=1.1609E+02 T(1)=1.3200E+00
C=2.2991E+02 T(2)=2.7300E+00
C=1.1249E+02 T(3)=0.8600E+00
B=2.700000E+01
C=1.2950E+02 T(1)=1.3200E+00
C=2.5648E+02 T(2)=2.7300E+00
C=1.2548E+02 T(3)=0.8600E+00
B=3.250000E+01
C=1.4165E+02 T(1)=1.3200E+00
C=2.8054E+02 T(2)=2.7300E+00
C=1.3725E+02 T(3)=0.8600E+00
B=3.800000E+01
C=1.5284E+02 T(1)=1.3200E+00
C=3.0269E+02 T(2)=2.7300E+00
C=1.4809E+02 T(3)=0.8600E+00
B=4.350000E+01
C=1.6326E+02 T(1)=1.3200E+00
C=3.2333E+02 T(2)=2.7300E+00
C=1.5819E+02 T(3)=0.8600E+00
Завдання:
Обчислити значення функції
Аргумент змінюється від початкового значення b=21.5 до кінцевого b=43.5 з кроком b=5.5. Змінна t є індексованою (t1=1.32; t2=2.73; t3=0.86).
Опис форми.
Відкриваємо нову форму і на цій формі створюємо такі елементи (таблиця 8.2):
Таблиця 8.2 - Елементи керування і їх властивості
Елемент | Властивість | Значення |
CommandButton1 | Caption | озрахунок |
Alignment | 2-Center | |
CommandButton2 | Caption | Вихід |
Alignment | 2-Center |
Коли ми двічі клацнемо на кнопці „Розрахунок” з’явиться вікно, в якому набираємо таку програму:
Private Sub Command1_Click()
Dim T(3), C(3) As Double
G = 8.63
For I = 1 To 3
T(I) = Val(InputBox("ВВЕДІТЬ T" & I & " ", "ЗМІННА T", ""))
Next I
Print "РЕЗУЛЬТАТИ РОЗРАХУНКУ"
For B = 21.5 To 43.5 Step 5.5
Print "B="; B
For I = 1 To 3
C(I) = G * Sqr(B + 1) * Exp(T(I)) / T(I)
Print "C("; I; ")="; Format(C(I), "###.####"), "T("; I; ")="; T(I)
Next I
Next B
End Sub
Тепер програмуємо кнопку „Вихід”:
Private Sub Command2_Click()
End
End Sub
Рисунок 8.2 – Результат виконання програми.
Програма мовою Delphi
Опис форми.
Відкриваємо нову форму і на цій формі створюємо такі елементи (таблиця 8.3):
Таблиця 8.3 - Елементи керування і їх властивості
Елемент (Name) | Властивість | Значення |
Label1 | Caption | Результат |
Memo1 | Lines | Витерти Memo 1 |
Button1 | Caption | Обчислити |
Button2 | Caption | Вихід |
Рисунок 8.3 – Інтерфейс програми.
Рисунок 8.4 – Від елементів масиву.
Код програми матиме вигляд
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
q,b: real;
i: integer;
c,t: array [1..3] of real;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
q:=8.63;
for i:=1 to 3 do
begin
t[i]:=StrToFloat(InputBox('Змінна t','A['+IntToStr(i)+']','1'));
end;
b:=21.5;
repeat
Memo1.Lines.Add('b='+FloatToStr(b));
for i:=1 to 3 do
begin
c[i]:=q*sqrt(b+1)*exp(t[i])/t[i];
Memo1.Lines.Add('C='+Format('%5.8s',[FloatToStr(c[i])])+' T('+IntToStr(i)+')='+FloatToStr(t[i]));
end;
b:=b+5.5;
until b>43.5
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
end.
Рисунок 8.5 – Результат виконання програми.
Результати обчислення
b=21,5
C=116,0905 T(1)=1,32
C=229,9129 T(2)=2,73
C=112,4855 T(3)=0,86
b=27
C=129,5044 T(1)=1,32
C=256,4785 T(2)=2,73
C=125,4829 T(3)=0,86
b=32,5
C=141,6537 T(1)=1,32
C=280,5398 T(2)=2,73
C=137,2549 T(3)=0,86
b=38
C=152,8403 T(1)=1,32
C=302,6944 T(2)=2,73
C=148,0941 T(3)=0,86
b=43,5
C=163,2621 T(1)=1,32
C=323,3345 T(2)=2,73
C=158,1923 T(3)=0,86
Пояснення до програм
Алгоритм програми складається з двох циклів, рис.8.1 Зовнішній цикл з параметром b, символ 4, і внутрішній - з параметром І, символ 6. Тіло внутрішнього циклу містить обчислення значень функції с, символ 7, і друкування значень функції с і t, символ 8.1 Аргумент b друкується після заголовка зовнішнього циклу, символ 5.
Питання для самоперевірки
1. Чому в програмі мовою GW Basic і С зовнішній цикл - цикл з передумовою, а мовою Pascal - постумовою?
2. Чому не допускається перетин вкладених циклів?
3. Як визначити кількість значень функції при зміні двох аргументів?
4. В наведених програмах побудуйте зовнішній або внутрішній цикли за допомогою оператора умовного переходу.
5. Побудуйте графічний алгоритм для обчислення значень функції трьох змінних y=f(a,b,c); i=1,2,...,N; j=1,2,...,M; k=1,2,...,L.