- •Міністерство освіти і науки України
- •1. Основні поняття Object Pascal
- •Label { Розділ опису міток } Const { Розділ опису констант }
- •Дійсні дані представляються в експоненціальній формі
- •Введення і виведення даних. Для введення і виведення даних використовуються процедури
- •Лабораторна робота № 1 Лінійні програми з розгалуженнями
- •2. Оператори повторень
- •Оператор for з зарезервованим словом to виконується за схемою:
- •Завершення виконання оператора for.
- •Лабораторна робота № 2 Циклічні програми. Обчислення з заданою точністю
Лабораторна робота № 1 Лінійні програми з розгалуженнями
Мета роботи:
1. Засвоєння простішої структури програми та візуального проектування програм.
2. Засвоєння простих типів даних, операцій і виразів.
3. Засвоєння основних операторів мови програмування (присвоєння, складеного, умовної і безумовної передачі керування, вибору).
4. Отримання навиків в організації введення і виведення даних.
5. Отримання практичних навиків роботи в інтерактивному режимі.
Завдання:
На
площині задані обмежена лініями (1–14)
область
і точки![]()
.
Розробити програму, яка обчислює периметр
і площу трикутника
,
якщо точки
належать області
і не лежать на одній прямій, інакше
видати відповідне повідомлення.
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.

2. Оператори повторень
Оператори циклу. Оператор циклу WHILE має таку структуру
while <умова> do <оператор>;
де while, do (поки [виконується умова] виконувати])– зарезервовані слова; – вираз логічного типу; <оператор> –довільний оператор. При виконанні оператора while обчислюється вираз <умова> і якщо його значення true, то виконується <оператор> і обчислення виразу повторюється знову. Якщо значення виразу <умова> дорівнює false, то виконання оператора while завершується.
Оператор циклу REPEAT…UNTIL має таку структуру
repeat <тіло циклу> until <умова>;
де repeat, until – зарезервовані слова (повторювати [до тих пір] поки [не буде виконана умова]); <умова> – вираз логічного типу; <тіло циклу> – довільна послідовність операторів. При виконанні оператора repeat …until while виконується хоча б один раз <тіло циклу>, після цього обчислюється вираз <умова> і якщо його значення false, то знову виконується <тіло циклу>. Якщо значення виразу <умова> дорівнює true, то виконання оператора repeat …until завершується.
Оператор циклу FOR має таку структуру
for
<параметр циклу>:=<початкове значення>
<кінцеве
значення> do <оператор>;
де for, to, downto, do – зарезервовані слова (для, до, донизу, виконати); <параметр циклу> – змінна порядкового типу; <початкове значення>, <кінцеве значення> – вирази того ж типу; <оператор> – довільний оператор.
Оператор for з зарезервованим словом to виконується за схемою:
Обчислюється вираз <початкове значення> і його значення присвоюється змінній <параметр циклу>.
Перевіряється умова <параметр циклу>
<кінцеве
значення>, якщо умова виконана, то
перехід до п.3, інакше перехід до п.5.Виконання <оператора>.
Збільшення параметра циклу, <параметр циклу>:=<параметр циклу>+1. Перехід до п.2.
Завершення виконання оператора for.
При
виконанні оператора for з зарезервованим
словом downto параметр циклу зменшується
на одиницю, а керуюча умова має вигляд
<параметр циклу>
<кінцеве значення>.
Обчислення
нескінченних сум.
При розробці алгоритмів обчислення
нескінченних сум процес слід організувати
так щоб для обчислення чергового доданку
використовувалися результати обчислення
попереднього доданку. Наприклад, для
обчислення
-го
доданку суми
потрібно
-
ий доданок помножити на множник
,
тобто
.
Якщо такої закономірності немає, то
можна цей підхід використати для
обчислення окремих частин доданку.
Наприклад, для обчислення доданків суми
можна окремо обчислювати
,
,
,
а потім обчислити доданок
.
Обчислення суми з заданою точністю
означає, що процес накопичення доданків
суми завершується, якщо деякий
-ий
доданок буде
.
Програма для обчислення другої суми в консольному режимі має вигляд
Program LABR2_1;
{$APPTYPE CONSOLE}
uses Sysutils;
VAR a, x, e: double;
s, sn, st3, stax: double;
n, nf: longint;
BEGIN
{Введення початкових даних}
writeln('Введіть a, x, e');
readln(a,x,e);
sn:=sin(1)/2;
s:=sn;
n:=0; stax:=1; st3:=1; nf:=1;
while abs(sn) > e do
begin
n:=n+1;
stax:=stax*(a+x);
st3:=st3*3;
nf:=nf*n;
sn:=sin(stax)/(st3+nf);
s:=s+sn;
end;
{Виведення результатів}
writeln(‘Значення суми =’, s);
writeln(‘Враховано доданків =’, n);
readln;
END.
Обчислення елементів нескінченної послідовності. При розробці алгоритмів знаходження елементів у нескінченній послідовності, які задовольняють певні умови, потрібно обчислювальний процес організувати так, щоб на кожному кроці обчислений елемент ставав попереднім для обчислення наступного елемента.
Приклад.
Розробити проект програми, яка для
заданих
![]()
знаходить і друкує перший член
і його номер у послідовності![]()
![]()
,
для якого виконується умова
і розглядається перших
членів
послідовності.
Для розв’язку задачі командою File!New Application створимо новий проект. На екрані з’явиться чиста форма із заголовком Form1. Встановимо цій формі заголовок Caption = Елементи послідовності та присвоїмо їй програмне ім’я Name = FV. Тепер командою File!Save All запишемо програмний модуль під іменем ULABR2_2.pas, а проект – LABR2_2.dpr.

Рис. 2.1. Форма Елементи послідовності.
Розробимо форму для введення початкових даних і виведення результату. Розмістимо на формі два компоненти Edit для введення початкових даних x, e, і два для виведення результатів. Присвоїмо цим компонентам програмні імена Edit1, Edit2, Edit3, Edit4, встановлені за замовчуванням (властивість Name) і очистимо їм значення властивості Text. Пояснення до цих компонентів зробимо за допомогою компонента Label (властивість Caption).
Крім цього, розмістимо на формі дві керуючих кнопки (компонент Button) з написами Обчислити та Вихід (властивість Caption) і програмними іменами Button1, Button2 (властивість Name) (Рис. 2.1.).
Обробники кнопок Обчислити та Вихід містяться в програмному модулі ULABR2_2. і мають вигляд:
{Обробник кнопки Обчислити}
procedure TFP.Button1Click(Sender: TObject);
var x, e: double;
ap, an: double;
n: integer;
begin
{Початкові дані}
x:=StrToFloat(Edit1.Text);
e:=StrToFloat(Edit2.Text);
{Обчислення елемента}
an:=x; n:=0;
repeat
ap:=an;
n:=n+1;
an:=(ap+x/ap)/2;
until (abs(an-ap) < e) or (n >= 1000);
{Виведення результатів}
Edit3.Text:=FloatToStr(an);
Edit4.Text:=FloatToStr(n);
end;
{Обробник кнопки Вихід}
procedure TFP.Button2Click(Sender: TObject);
begin
Close;
end;
