
- •1. Створення документа.
- •Лабораторна робота № 3
- •Програма з простою структурою. Обчислення
- •Арифметичного вираження з використанням стандартних
- •Функцій мови програмування fortran
- •Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Неявний опис даних реалізується за допомогою оператора
- •Read(*,*) список уведення
- •V. Вивід даних здійснюється за допомогою оператора write(*,*) список аргументів
- •Write(*,*) ‘Уведіть a b c’
- •Лабораторна робота № 4 алгоритми з розгалуженням. Логічні вираження Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •10 Write(*,*) 'Уведіть координати точки X, у'
- •Вказівки до виконання завдання
- •Вказівки до виконання завдання
- •Вказівки до виконання завдання
- •Підпрограма subroutine і загальні блоки Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Common [/ ім'я 1/], список аргументів, [/ ім'я 2/], список аргументів
- •Міністерство науки і освіти, молоді та спорту україни національний технічний університет «харківський політехнічний інститут»
- •Додаток 3 Завдання до лабораторної роботи № 2
- •Додаток 4 Завдання до лабораторної роботи № 3
- •Продовження додатку 4
- •Додаток 5 Завдання до лабораторної роботи № 4
- •Продовження додатку 5
- •Продовження додатку 5
- •Додаток 6
- •Додаток 7 Завдання до лабораторної роботи № 6
- •Додаток 8 Завдання до лабораторної роботи № 7
- •Додаток 9 Завдання до лабораторної роботи № 8
- •Продовження додатку 9
- •Додаток 10 Завдання до лабораторної роботи № 9
- •Продовження додатка 10
- •Додаток 11 Завдання до лабораторної роботи № 10
- •Продовження додатка 11
- •Додаток 12 Завдання до лабораторної роботи № 11
- •Додаток 13 Завдання до лабораторної роботи № 12
- •Список літератури
10 Write(*,*) 'Уведіть координати точки X, у'
READ(*,*) X, Y
IF((X**2+(Y1)**2.GT.4) THEN
WRITE(*,*) NO
ELSE
IF (Y.GT.(2-X**2)) THEN
WRITE(*,*) NO
ELSE
WRITE(*,*) YES
ENDIF
ENDIF
WRITE(*,*) 'Перевірити наступну точку? Якщо «Так», натисніть 1'
READ(*,*) K
IF(K.EQ.1) GOTO 10
END
Звіт про роботу повинний включати короткий опис роботи, блок-схема програми, текст програми і результати її роботи.
Лабораторна робота № 5
РОБОТА З ФАЙЛАМИ ДАНИХ.
ВИКОРИСТАННЯ ФОРМАТНОГО ВВЕДЕННЯ/ ВИВОДУ
Мета роботи
Метою лабораторної роботи є ознайомлення з правилами використання операторів опису файлів, способами роботи з файлами даних (запис в файл і зчитування з файлу), способами форматного введення/виводу, повторюваними форматами.
Завдання
1. Скласти алгоритм і написати програму обробки файлу даних згідно варіанту. Варіанти завдань наведені у Додатку 6. Номер варіанту визначається викладачем.
2. Провести налагодження програми та її тестування.
3. Скласти звіт про роботу.
Вказівки до виконання завдання
У всіх лабораторних роботах, які виконувались раніше, використовувалось введення даних з клавіатури. Цей спосіб не дуже зручний при введенні великої кількості даних: зростає ймовірність помилки і збільшуються витрати часу на введення даних. Тому уведення великої кількості значень краще організовувати з окремого файлу даних. Вивід інформації також зручно здійснювати в файл даних. Це дозволяє використовувати її для подальшої обробки.
Для роботи з файлом даних попередньо необхідно установити зв'язок з ним за допомогою оператора OPEN, що має вигляд:
OPEN(ON),
де ON – список параметрів, що визначає вид файлу і роботу з ним. У цьому списку обов'язковим є один параметр – ідентифікатор пристрою,
OPEN(UNIT=1)
Ідентифікатор пристрою задається цілим виразом, ключове слово UNIT може бути опущено. Далі в списку параметрів можуть бути:
IOSTAT = ціла перемінна у цьому виразі ціла перемінна має позитивне значення, якщо виявлена помилка при роботі з файлом; негативне значення у випадку досягнення кінця файлу і дорівнює нулю в тому випадку, якщо при роботі з файлом не допущені помилки і не досягнутий кінець файлу;
ERR = мітка – задає мітку оператора, на який передається керування при виникненні помилки;
FILE = символьний вираз – задає ім'я зовнішнього файлу;
ACCESS = символьний вираз – визначає спосіб доступу до файлу. Символьний вираз ’DIRECT’ позначає приєднання файлу для прямого доступу, ’SEQUENTIAL’ – послідовного доступу. За замовчуванням діє значення ’SEQUENTIAL’;
STATUS = символьний вираз – задає стан приєднаного файлу. Символьний вираз може приймати значення ‘OLD’ (файл вже існує), ’NEW’ (файл буде створений), ’SCRATCH’ (тимчасовий, буде вилучений після завершення програми) і ’UNKNOWN’ (якщо файл вже існує, те він буде відкритий, якщо ні, буде створений новий файл). За замовчуванням значення параметра STATUS для іменованих файлів буде ‘UNKNOWN’;
FORM = символьний вираз – задає тип записів файлу. Символьний вираз може приймати значення ’FORMATTED’ – у файлі використовуються форматні записи, і ’UNFORMATTED’ – у файлі використовуються неформатні записи. За замовчуванням для файлів послідовного доступу встановлюється ’FORMATTED’, для файлів прямого доступу ’UNFORMATTED’;
RECL = цілий вираз – задає довжину запису в байтах. Цей параметр обов'язковий для файлів прямого доступу;
BLANK = символьний вираз – задає спосіб інтерпретації пробілів при введенні числових даних. Символьний вираз може мати значення ’NULL’ (використовується за замовчуванням), у цьому випадку всі пробіли при введенні ігноруються, і ’ZERO’ – при цьому параметрі пробіли сприймаються як нулі.
Параметри файлу використовуються тільки в разі потреби. Найбільш розповсюджена форма запису оператора OPEN має вид:
OPEN(m, FILE = ’ім'я.DAT’, STATUS=’OLD’)
Для організації введення даних із наведеного файлу використовується оператор READ у такій формі
READ(m,*) a
Цей оператор зчитує окремий запис з файлу, що має ідентифікатор пристрою UNIT=m і привласнює значення запису змінній а.
Ідентично перетворюється оператор WRITE для запису у файл:
OPEN(n, FILE = ’ім'я.REZ’, STATUS=’NEW’)
WRITE(n,*) z
Для введення/виводу даних можуть використовуватися формати. У цьому випадку введення/вивід можна організувати наступним чином:
1. З використанням оператора FORMAT, що містить список форматів:
WRITE (*, m) список введення / виводу
m FORMAT (список форматів)
Оператор FORMAT може знаходитися в будь-якому місці програми, так як передача управління на нього не відбувається. Також на нього можна посилатися кілька разів. Список форматів повинен відповідати списку введення/виводу.
2.З використанням символьного виразу, значенням якого є список форматів, укладений в дужки:
WRITE (*, ‘(список форматів)’) список введення / виводу
Перший варіант організації форматного введення/виводу краще застосовувати при довгому списку введення/виводу, другий - при одиничних даних.
Для завдання способу перетворення даних використовуються повторювані формати:
Iw формат для перетворення цілих змінних;
Fw.d формат для перетворення речових змінних без експоненти;
Ew.d[Ee] формат для перетворення речових змінних в експоненціальній формі;
A[w] формат для перетворення символьних змінних.
У наведених форматах w розмір поля вводу/виводу для даного у зовнішньому поданні, d кількість знаків дробової частини числа, e кількість цифр у поле введення/виводу для експоненти.
Приклад. Зчитати дані з файлу з використанням форматного зчитування і записати їх у файл результатів, змінивши вид запису.
Файл даних Файл результатів
_14.57_1.0 _ _48.47 Вихідні дані
Вихідні дані _ _56_ _47_459
_ _ 56 _ _ 47 _ _ 459 Результати
Результати а=14.57 _ b=1 _ с=48.5
(Символ «_» вказує на наявність пробілів)
PROGRAM EXAMPLE
REAL A, B, C ! опис змінних
INTEGER K, L, M ! для роботи с даними
CHARACTER Z ! в файлах
С Опис вихідного файлу послідовного доступу
OPEN(1, FILE=’IN.DAT’, STATUS=’OLD’)
С Опис нового файлу прямого доступу
OPEN(2, FILE=’REZ.DAT’, STATUS=’NEW’, ACCESS=’DIRECT’,
* FORM=’FORMATTED’, RECL=30)
С Зчитування першої строки
READ(1,10) A, B, C
10 FORMAT(F6.2, F4.1, F7.2)
С Зміна типу даних
K=B
С Запис першої строки
WRITE(2, 20, REC=4) ‘A=’, A, ‘B=’, K, ‘C=’, C
20 FORMAT(A2, F5.2, A3, I1, A3, F4.1)
С Друга строчка
READ(1, ‘(A)’) Z
WRITE(2, ’(A)’, REC=1) Z
С Третя строчка
READ(1, 30) K, L, M
30 FORMAT(I4, I4, I5)
WRITE(2, 40, REC=1) K,L,M
40 FORMAT(3I4)
С Четверта строчка
READ(1, ‘(A)’) Z
WRITE(2, ’(A)’, REC=3) Z
END
Коментарі до програми: в програмі використовуються два типи файлів: послідовного і прямого доступу. Файл послідовного доступу, який використовується як вихідний, дозволяє зчитувати інформацію построчно. Файл прямого доступу, використовуваний як файл результатів, дозволяє вказати номер рядка, на який виводиться інформація (REC).
Звіт про лабораторну роботу повинен містити короткий опис роботи та текст програми.
Лабораторна робота № 6
ОБЧИСЛЕННЯ ВИЗНАЧЕНОГО ІНТЕГРАЛА
Мета роботи
Метою даної лабораторної роботи є ознайомлення з правилами побудови циклічного алгоритму з використанням оператора безумовного переходу. Також завданням лабораторної роботи є придбання навичок організації алгоритму для виконання розрахунків із заданою точністю.
Завдання
1. Розробити алгоритм і написати програму обчислення визначеного інтеграла із заданою точністю. Варіанти завдань наведені у Додатку 7.Номер варіанта визначається викладачем.
2. Виконати налагодження програми та її тестування.
3. Скласти звіт про роботу.
Вказівки до виконання завдання
Циклічний алгоритм - це кінцева послідовність операторів, яка виконується кілька разів при певній умові. При організації циклу обов'язково необхідно задавати початкові значення змінних, які в ньому обчислюються, і контролювати зміну змінної циклу. Найчастіше цією змінною є кількість повторень циклу (арифметичний цикл), але іноді й інші змінні, що входять в умову і обчислювані в циклі. Такий цикл називається ітераційним.
Оператор безумовного переходу GOTO передає управління на рядок із зазначеною міткою. У поєднанні з умовою його можна використовувати для організації циклу:
10 K=K+1
-
IF(K.LT.5) GOTO 10
Рисунок 5 – Графічна ілюстрація чисельного інтегрування методом трапецій |
Геометричним
змістом визначеного інтеграла
|
інтегрування. Воно полягає в інтерполяції f(x) на відрізку [a, b] поліномом (многочленом), найбільш підходящим для цієї функції. Зазвичай відрізок [a, b] розбивають на n рівних частин (х1, х2 на рис.5) і для кожної отриманої фігури використовується проста формула визначення її площі. Після сумування відповідних площ виходить площа фігури, тобто значення визначеного інтеграла. При збільшенні кількості розбивок збільшується точність інтерполяції та відповідно точність визначення інтеграла.
У
методі трапецій отримані фігури
замінюються трапеціями з висотою
.
Площа трапеції дорівнює добутку півсуми
основ на висоту. Тоді сумарна площа
фігури дорівнює
,
і з урахуванням підсумовування ординат в середині відрізка [a, b]
.
Для
організації обчислення суми
сформуємо цикл, у якому будемо обчислювати
значення змінної
(відправне значення
)
і значення функції в цій точці. Умовою
закінчення циклу буде досягнення змінної
х
останньої координати
.
Для розрахунку інтеграла з певною
точністю організуємо ще один цикл,
змінною якого буде кількість розбиття.
Умовою закінчення циклу буде зменшення
значення різниці інтегралів при n
і n-1
розбиття до величини
(точності розрахунку, також задається
викладачем).
Так
як умова виходу з циклу ґрунтується на
порівнянні з малою величиною і поведінка
підінтегральної функції нам заздалегідь
невідома, необхідно ввести в цикл
додаткову умову його закінчення. Це
може бути максимальна кількість розбиття.
Блок-схема даної програми приведена на
рисунку 6. В якості прикладу взято
інтеграл
.
Звіт про лабораторну роботу повинен містити короткий опис роботи, текст програми та результати її роботи.
Рисунок 6 - Алгоритм розрахунку визначеного інтеграла із заданою точністю
Лабораторна робота № 7
ЦИКЛІЧНІ АЛГОРИТМИ.
ОБЧИСЛЕННЯ СУМИ ПОСЛІДОВНОСТІ ЧИСЕЛ
Мета роботи
Метою даної лабораторної роботи є ознайомлення з правилами побудови циклічного алгоритму з використанням оператора циклу. Також завданням лабораторної роботи є придбання навичок обробки послідовності чисел.
Завдання
1. Розробити алгоритм і написати програму мовою програмування FORTRAN обчислення суми ряду. Алгоритм повинний містити наступні етапи: визначення збіжності ряду; обчислення суми певної кількості членів ряду у випадку, якщо ряд розходиться; обчислення суми ряду з певною точністю, якщо ряд сходиться; роздруківку вихідних даних, членів ряду з їх порядковими номерами, підсумкового значення суми ряду і кількість членів ряду. Варіанти завдань дані в Додатку 8. Номер варіанта призначається викладачем.
2. Здійснити налагодження програми і її тестування.
3. Скласти звіт про роботу.