- •1. Основні поняття Object Pascal
- •Label { Розділ опису міток } Const { Розділ опису констант }
- •Дійсні дані зображуються в експоненціальній формі
- •Введення і виведення даних. Для введення і виведення даних використовуються процедури
- •Лабораторна робота № 1 Лінійні програми з розгалуженнями
- •2. Оператори повторень
- •Оператор for з зарезервованим словом to виконується за алгоритмом:
- •Завершення виконання оператора for.
- •Лабораторна робота № 2 Циклічні програми. Обчислення з заданою точністю
- •3. Структуровані типи даних. Масиви
- •Лабораторна робота № 3 Алгоритми обробки масивів
- •4. Алгоритми обробки багатовимірних масивів
- •Лабораторна робота № 4 Алгоритми обробки багатовимірних масивів
- •5. Упорядкування і пошук даних
- •Лабораторна робота № 5 Упорядкування і пошук даних
- •6. Структуровані типи даних. Множини
- •Лабораторна робота № 6 Множини
- •7. Символьні рядки
- •Лабораторна робота № 7 Символьні рядки
- •8. Процедури і функції
- •Лабораторна робота № 8 Процедури і функції
- •9. Процедури і функції. Процедурні типи
- •Лабораторна робота № 9 Процедурні типи
- •Теоретичні відомості для виконання лабораторної роботи
- •1. Формула середніх прямокутників
- •2. Формула трапецій
- •3. Формула Сімпсона (формула парабол)
- •Розв’язування рівнянь. Розв’язування рівнянь виду
- •10. Рекурсивні процедури і функції Рекурсія – це такий спосіб організації обчислювального процесу, при якому підпрограма під час виконання звертається сама до себе.
- •Лабораторна робота № 10 Рекурсивні процедури і функції
- •11. Динамічні структури даних
- •Дані, які використовуються у програмі, поділяються на статичні й динамічні.
- •Вказівник може бути у трьох станах:
- •Вказівники
- •Лабораторна робота № 11 Динамічні структури даних
- •12. Файли
- •Лабораторна робота № 12 Текстові файли
- •Додаток Процедури і функції Object Pascal
- •Література
- •Практикум
- •58012, Чернівці, вул. Коцюбинського, 2
Обчислюється вираз <початкове значення> і його значення присвоюється змінній <параметр циклу>.
Перевіряється умова <параметр циклу> <кінцеве значення>. Якщо умова виконана, то перехід до п.3, інакше перехід до п.5.
Виконання <оператора>.
Збільшення параметра циклу: <параметр циклу>:=<параметр циклу>+1. Перехід до п.2.
Завершення виконання оператора for.
При виконанні оператора for з зарезервованим словом downto параметр циклу зменшується на одиницю, а керуюча умова має вигляд <параметр циклу> <кінцеве значення>.
Обчислення нескінченних сум. При розробці алгоритмів обчислення нескінченних сум процес потрібно організувати так, щоб для обчислення чергового доданку використовувалися результати обчислення попереднього доданку. Наприклад, для обчислення -го доданку суми потрібно - ий доданок помножити на множник , тобто . Якщо такої закономірності немає, то можна цей підхід використати для обчислення окремих частин доданку. Наприклад, для обчислення доданків суми можна окремо обчислювати , , , а потім обчислити доданок . Обчислення суми з заданою точністю означає, що процес накопичення доданків суми завершується, якщо для -го доданку справдиться умова .
Для обчислення другої суми, аналогічно, як у попередньому прикладі, командою File|New Application створимо новий проект. Присвоїмо формі заголовок Caption = Обчислення суми. Командою File|Save All запишемо програмний модуль у файл з іменем ULAB2_2.pas, а проект – LAB2_2.dpr.
Розмістимо на формі три компоненти Edit для введення початкових даних x, a, e та два для виведення значення суми і кількості доданків.
Крім цього, розмістимо на формі дві керуючі кнопки (компонент Button) з написами Обчислити та Вихід (властивість Caption) і програмними іменами Button1, Button2 (властивість Name) Рис. 2.1.
Рис.1.3. Форма Обчислення функції
Обробники кнопок Обчислити та Вихід містяться у програмному модулі ULAB2_2 і мають вигляд:
{Обробник кнопки Обчислити}
procedure TForm1.Button1Click(Sender: TObject);
VAR a, x, eps: real;
s, sn, st3, stax: real;
n, nf: longint;
BEGIN
{Введення початкових даних}
x:=StrToFloat(Edit1.Text);
a:=StrToFloat(Edit2.Text);
eps:=StrToFloat(Edit3.Text);
n:=0; stax:=1; st3:=1; nf:=1;s:=0;
Repeat
n:=n+1;
stax:=stax*(a+x);
st3:=st3*3;
nf:=nf*n;
sn:=sin(stax)/(st3+nf);
s:=s+sn;
Until abs(sn) < eps;
{Виведення результатів}
Edit4.Text:=FloatToStr(s);
Edit5.Text:=IntToStr(n);
end;
{Обробник кнопки Вихід}
procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;
Обчислення елементів нескінченної послідовності. При розробці алгоритмів знаходження елементів у нескінченній послідовності, які задовольняють певні умови, потрібно обчислювальний процес організувати так, щоб на кожному кроці обчислений елемент ставав попереднім для обчислення наступного елемента.
Приклад. Розробити програму, яка для заданих знаходить і друкує перший член і його номер у послідовності , для якого виконується умова і розглядається перших членів послідовності.
Для розв’язання задачі командою File|New Application створимо новий проект. На екрані з’явиться форма із заголовком Form1. Установимо цій формі заголовок Caption = Елементи послідовності. Тепер командою File|Save All запишемо програмний модуль у файл з іменем ULAB2_2.pas, а проект – PAB2_2.dpr.
Розмістимо на формі два компоненти Edit для введення початкових даних x і e, два – для виведення результатів. Пояснення до цих компонентів зробимо за допомогою компонента Label (властивість Caption).
Рис. 2.2. Форма Елементи послідовності
Крім цього, розмістимо на формі дві керуючих кнопки (компонент Button) з написами Обчислити та Вихід (властивість Caption) Рис. 2.1.
Обробник кнопки обчислити міститься в програмному модулі ULAB2_2. і має вигляд:
{Обробник кнопки Обчислити}
procedure TForm1.Button1Click(Sender: TObject);
var x, e: real;
ap, an: real;
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;