
- •Методичні вказівки до виконання лабораторних робіт із дисципліни “Інформатика”
- •Полтава 2014
- •Середовище програмування turbo pascal 7.0
- •1.1. Виклик інтегрованої інструментальної оболонки
- •1.2. Рядок меню
- •1.3. Створення та збереження програми на дискові
- •1.4. Виконання програми
- •1.5. Пошук помилок у програмі за допомогою налагоджувача
- •1.5.1. Покрокове налагодження програми та трасування
- •1.5.2. Виконання програми до вказаної точки
- •1.5.3. Перезапуск програми
- •1.5.4. Перегляд та модифікація змінних програми
- •1.5.5. Використання вікна output
- •1.6. Завершення роботи з по тр 7.0
- •Мова turbo pascal 7.0
- •2.1. Загальна структура програм у turbo pascal 7.0
- •Розділ оголошень та узгоджень
- •Розділ текстів процедур та функцій
- •Основний блок програми
- •2.2. Типи даних мови тр
- •2.3. Поняття алгоритму
- •Виконання лабораторних робіт
- •3.1 Лабораторна робота №1 Складання алгоритму та написання програми мовою тр 7.0 для розрахунку функції розгалуженням
- •Послідовність виконання роботи
- •3.1.1. Умовні оператори (умовні конструкції) мови тр
- •3.1.2. Оператори циклу (циклічність конструкції) мови тр
- •3.1.3. Дані типу array (масив)
- •3.1.4. Зразок виконання індивідуального завдання
- •Контрольні питання
- •3.2. Лабораторна робота №2 Написання програм для роботи з простими типами даних мови тр 7.0
- •3.2.1. Прості (скалярні) типи даних мови тр 7.0
- •3.2.2. Оператор присвоювання
- •3.2.3. Зразок виконання індивідуального завдання
- •Контрольні вправи та питання
- •3.3. Лабораторна робота №3 Написання програм для введення та обробки серій із нулів та одиниць
- •3.3.1. Поняття послідовності серій із чисел
- •3.3.2. Зразок виконання індивідуального завдання
- •Контрольні вправи та питання
- •3.4. Лабораторна робота №4 Написання програми введення та обробки двомірних масивів
- •3.4.1. Поняття двомірного масиву. Правила опису та роботи з ним
- •3.4.2. Зразок виконання індивідуального завдання
- •Контрольні вправи та питання
- •3.5.Лабораторна робота №5 Написання програм із використанням процедур та функцій
- •3.5.1.Поняття процедур та функцій
- •3.5.2. Механізм параметрів у процедурі та функції
- •3.5.3.Зразок виконання індивідуального завдання
- •Контрольні вправи та питання
- •3.6. Лабораторна робота №6 Написання програми з використанням складених типів даних: string (рядковий), record (запис), file (файловий)
- •Послідовність виконання роботи:
- •3.6.1. Файлові типи даних (file) і робота з ними
- •3.6.2. Записи (record). Робота з ними
- •3.6.3. Рядковий тип даних (string). Стандартні процедури та функції для обробки рядків
- •Зразок виконання індивідуального завдання
- •Контрольні запитання та вправи
- •3.7.2. Зразок виконання індивідуального завдання
- •2)Ввести, налагодити та виконати наведену програму за комп’ютером. Контрольні вправи та запитання
- •Рекомендована література
3.1.3. Дані типу array (масив)
Масив – це впорядкований набір змінних одного типу, які називаються елементами масиву. Всі елементи масиву пронумеровані; номер елемента масиву називається його індексом. Перед використанням масиву його необхідно описати. Оголошення (опис) змінних типу ARRAY виконується в розділі оголошень та узгоджень ТР-програми таким чином (для одномірного масиву):
VAR <iм`я масиву>:ARRAY [<поч.індекс>…<кінц. індекс>] OF <тип даних>
Наприклад:
VAR MASSIV:ARRAY[1…100] OF INTEGER;
Цей запис означає, що масив з іменем MASSIV може містити 100 елементів цілого (INTEGER) типу, які пронумеровані (мають індекси) цілими числами від 1 до 100. Індексами елементів масиву можуть бути константи будь-якого простого типу, крім дійсного. Доступ до елементів масиву виконується за іменами цих елементів. Ім`я елемента масиву утворюється з імені самого масиву, за яким у квадратних дужках слідує індекс (номер) цього елемента, наприклад MASSIV [8].
Над елементами масиву можна виконувати ті самі дії, що й над змінними того ж типу.
Перед тим, як використовувати масив у якості набору вхідних даних програми, необхідно його елементам надати конкретних значень.
В умові ТР 7.0 немає можливості ввести в пам`ять комп`ютера відразу значення всіх елементів масиву. Тому введення масиву виконується по-елементно за допомогою циклу. Наприклад:
FOR i:=1 TO 100 DO
BEGIN
WRITE (‘Введіть’,і,’-ий елемент масиву’);
READLN (MASSIV[i]);
END;
3.1.4. Зразок виконання індивідуального завдання
Завдання. Скласти програму обчислення функції.
а) аргумент хі задається умовами
а<= хі<=b, хі +1= хі +h, де а, b, с — константи, h – крок.
б) аргумент хі визначається значенням елементів одномірного масиву, тобто хі =[ х1,х2,…,хn-1,хn], n=20.
Виконання завдання. Складемо алгоритм обчислень для варіанта а), побудувавши графічну блок-схему (рис.3.1.1.).
Рис.3.1.1. Блок-схема обчислення функції з розгалуженням
Перш ніж перейти до написання програми мовою ТР 7.0, яка реалізує цей алгоритм, зробимо декілька зауважень.
У мові ТР 7.0 немає функцій для обчислення математичних операцій logy(x) та yx (піднесення до степеня), але можна скористатися рівностями:
logy(x) =ln(x)/ln(y); yx=e(x·ln(y))
Оскільки в побудованій блок-схемі умова (х>b) стоїть після тіла циклу, то при написанні програми зручно використати циклічну конструкцію REPEAT…UNTIL (цикл із післяумовою).
Конкретні значення констант а, b, с і h слід задавати коректно, тобто так, щоб виконувались умови: a<b, a<c<b, h<<(b-a), a>-1.
Оскільки в тілі циклу після перевірки умови (х<с), слід використовувати умовну конструкцію IF…THEN…ELSE.
Тоді ТР-програма, яка реалізує алгоритм (рис.3.1.1.), запишеться:
PROHRAM TABULATION1; {табуляція функції}
USES Crt; {під`єднання модуля}
CONST a=0.0; b=10.5; C=5.4; h=0.1;
VAR x,F:REAL; {оголошення констант та змінних}
BEGIN {початок основного блоку програми}
ClrScr; {очищення екрана монітора}
X:=a;
REPEAT {цикл}
IF x<c {умовна конструкція}
THEN
F:=ln(x+1)/ln(5)
ELSE
F:=exp(x*ln(2));
WRITELN(x,F); {виведення результатів}
X:=x+h; {перепозначення змінної циклу}
UNTIL x>b; {перевірка умови виходу з циклу}
END. {кінець основного блоку програми}
Змінимо початковий варіант графічної блок-схеми, як показано на рисунку 3.1.2.
Оскільки тепер умова (x<=b) стоїть перед тілом циклу, то при написанні програми зручно використовувати циклічну конструкцію WHILE…DO (цикл із передумовою):
PROGRAM TABULATION2;
uses crt;
CONST a=0.0; b=10.5; C=5.4; h=0.1;
VAR x,F:REAL;
BEGIN
X:=a;
WHILE x<=b DO
BEGIN
IF x<=c
THEN
F:=ln(x+1)/ln(5)
ELSE
F:=exp(x*ln(2));
WRITELN(x,F);
X:=x+h;
END;
END.
Рис.3.1.2. Модифікована блок-схема обчислення функції з розгалуженням
Складемо алгоритм обчислень у вигляді блок-схеми для варіанта б) (рис.3.1.3.) використанням у середині циклу лічильника (змінна циклу і). Очевидно, що в даному випадку при написанні програми зручно використовувати циклічну конструкцію FOR…TO…DO (змінна циклу збільшується)
Рис.3.1.3. Блок-схема обчислення функції F(x[i]) з використанням одинарного масиву
PROGRAM TABULATION3;
uses crt;
CONST C=7.8;N=20;
VAR i:INTEGER; F:REAL;
X:ARRAY [1..N] OF REAL; {опис масиву х}
BEGIN
ClrScr;
For I:=1 to n do
Begin
Writeln ('Уведіть i-ий елемент масивy');
Readln (x[i]);
End; {уведення масиву в пам’ять}
For i:=1 to N do
Begin
IF x[i]<C
THEN
F:=ln(x[i]+1)/ln(5)
ELSE
F:=exp(x[i]*ln(2));
WRITELN(x[i],F);
END;
END.
2) Введемо, налагодимо та виконаємо програми за комп`ютером. При виконанні програми TABULATION3 треба слідкувати, щоб значення елементів масиву х не виходили за межі допустимих (необхідно виконати умови x[i]>-1).