- •Організація обчислень з використанням умовних операторів циклу
- •1 Мета роботи
- •2 Основні теоретичні відомості
- •2.1 Оператор циклу з передумовами While
- •2.2 Оператор циклу з післяумовою Repeat
- •2.3 Особливості використання операторів циклу з умовами
- •3 Приклад циклічної програми з використанням умовних операторів циклу While і Repeat
- •3.1 Завдання
- •3.2 Виведення рекурентної формули
- •3.3 Схеми алгоритму
- •3.3 Розробка проекту для розвязання задачі у середовищі Delphi
- •3.5 Текст програми
- •4 Контрольні запитання
- •Лабораторне завдання
3.5 Текст програми
Unit Unit1;
…
implementation
Const eps=0.0001;
Var x,s:real; k:integer; sx,sk:string;
//Процедура обчислення ряду
procedure Summa(x:real; Var ds:real; Var k:integer);
Var U,R:real;
begin
s:=0;
k:=1;
U:=-sqr(x)*x/6;
While abs(U)<eps do
begin
s:=s+U;
k:=k+1;
R:=sqr(x)/(2*k*(2*k+1));
U:=U*R;
if odd(k) then U:=-U;
end;
end;
//Процедура для кнопки "Решение"
procedure TForm1.Button1Click(Sender: TObject);
var sum:string; ier:integer;
begin
sx:=InputBox('Введіть значення х','Вводьте число з комою','');
Val(sx,x,ier);
if ier<>0 then
begin
ShowMessage('Введіть правильно значення х'); Exit;
end;
// Виклик підпрограми обчислення суми
summa(x,s,k);
str(s:8:4,sum);
sk:=IntToStr(K);
Memo1.Lines.Add('Вычисление сумы ряда');
Memo1.Lines.Add('x='+sx);
Memo1.Lines.Add('Сумма s='+sum);
Memo1.Lines.Add('Количество слагаемых k='+sk);
end;
//Процедура для кнопки "Табулирование"
procedure TForm1.Button2Click(Sender: TObject);
var a,b,h:real;
sa,sb,sh,sy:string;
begin
sa:=InputBox('Введіть значення а','ліву межу проміжку','');
sb:=InputBox('Введіть значення b','праву межу проміжку','');
sh:=InputBox('Введіть значення h','крок табулювання','');
a:=StrToFloat(sa);
b:=StrToFloat(sb);
h:=StrToFloat(sh);
Memo1.Lines.Add('Табулирование функции');
Memo1.Lines.Add('a='+sa+' b='+sb+' h='+sh);
Memo1.Lines.Add(' x s k');
x:=a;
Repeat
Summa(x,s,k);
str(x:4:1,sx);
str(s:7:4,sy);
sk:=IntToStr(k);
Memo1.Lines.Add(' '+sx+' '+sy+' '+sk);
x:=x+h;
Until x>b;
end;
4 Контрольні запитання
1 Структура оператора циклу While.
2 Порядок виконання оператора While.
3 Якого значення набуде оператор n після виконання операторів?
к:=0; n:=17;
While к<7 do
Begin к:=к+1; n:=n-1; end;
4 Структура оператора циклу Repeat-Until.
5 Порядок виконання операторів Repeat-Until.
6 Чим відрізняються оператори циклу While і Repeat-Until?
7 Якого значення набуде змінна Р після виконання операторів?
i:=1; p:=1;
Repeat p:=p*i; i:=i+1; Until p>7;
Лабораторне завдання
1 Скласти схеми алгоритмів та підпрограми рішення таких задач (згідно з варіантом, наведеному у таблиці 4.1):
а)
Обчислення добутку нескінченного ряду
з
точністю до члена ряду, котрий не
перевищує за модулем величину 10-4.
Визначити кількість наявних доданків.
Обчислення виконати для х
=
0,5. Використати
оператор циклу while
для непарних варіантів і Repeat-Until
для парних.
б)
Табулювання функції
при зміненні х
від
0,4 до
2,8 з
кроком 0,2. В якості функції застосувати
добуток ряду, обчислювального у пункті
а. Використати оператор Repeat
для
непарних варіантів і while
– для парних.
У проекті передбачити введення значень змінної х з клавіатури одним із можливих способів (за вибором) та виведення здобутих результатів на форму у компоненти Memo, ListBox, Edit або Label (за вказівкою викладача).
2 Оформити протокол виконання лабораторної роботи згідно вимогам.
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 |
|
