ВІКІСТОРІНКА
Навигация:
Інформатика
Історія
Автоматизація
Адміністрування
Антропологія
Архітектура
Біологія
Будівництво
Бухгалтерія
Військова наука
Виробництво
Географія
Геологія
Господарство
Демографія
Екологія
Економіка
Електроніка
Енергетика
Журналістика
Кінематографія
Комп'ютеризація
Креслення
Кулінарія
Культура
Культура
Лінгвістика
Література
Лексикологія
Логіка
Маркетинг
Математика
Медицина
Менеджмент
Металургія
Метрологія
Мистецтво
Музика
Наукознавство
Освіта
Охорона Праці
Підприємництво
Педагогіка
Поліграфія
Право
Приладобудування
Програмування
Психологія
Радіозв'язок
Релігія
Риторика
Соціологія
Спорт
Стандартизація
Статистика
Технології
Торгівля
Транспорт
Фізіологія
Фізика
Філософія
Фінанси
Фармакологія


ЦИКЛІЧНІ ПРОГРАМИ З НАКОПИЧЕННЯМ

Загрузка...

СУМИ АБО ДОБУТКУ

 

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
Продовження таблиці 8.1
10

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
Продовження таблиці 8.1
17

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
Продовження таблиці 8.1
24

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.

 

 

Загрузка...

© 2013 wikipage.com.ua - Дякуємо за посилання на wikipage.com.ua | Контакти