
- •Текстовий редактор microsoft word Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Електронні таблиці Excel Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Лабораторна робота № 3
- •Program name
- •Неявний опис даних реалізується за допомогою оператора
- •Implicit тип q, (r t),
- •Read(*,*) список уведення
- •V. Вивід даних здійснюється за допомогою оператора write(*,*) список аргументів
- •Write(*,*) ‘Уведіть a b c’
- •10 Write(*,*) 'Уведіть координати точки X, у'
- •Read(m,*) a
- •Обчислення визначеного інтеграла Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Циклічні алгоритми. Обчислення суми послідовності чисел Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Робота з одномірними масивами. Обчислення максимуму,
- •Робота з одномірними масивами.
- •Робота з двовимірними масивами.
- •Робота з двовимірними масивами.
- •Підпрограма subroutine і загальні блоки Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Тут ex – символьне ім'я функції, (x1, x2, …, xn) – список формальних параметрів функції.
- •Common [/ ім'я 1/], список аргументів, [/ ім'я 2/], список аргументів
- •Додаток 3
- •Продовження додатку 5
- •Продовження додатку 5
- •Додаток 6
- •Продовження додатку 6
- •Додаток 7
- •Продовження додатку 9
- •Додаток 10 Завдання до лабораторної роботи № 9
- •Продовження додатка 10
- •Додаток 11 Завдання до лабораторної роботи № 10
- •Продовження додатка 11
- •Додаток 12 Завдання до лабораторної роботи № 11
- •Додаток 13 Завдання до лабораторної роботи № 12
- •Список літератури
Циклічні алгоритми. Обчислення суми послідовності чисел Мета роботи
Метою даної лабораторної роботи є ознайомлення з правилами побудови циклічного алгоритму з використанням оператора циклу. Також завданням лабораторної роботи є придбання навичок обробки послідовності чисел.
Завдання
1. Розробити алгоритм і написати програму мовою програмування FORTRAN обчислення суми ряду. Алгоритм повинний містити наступні етапи: визначення збіжності ряду; обчислення суми певної кількості членів ряду у випадку, якщо ряд розходиться; обчислення суми ряду з певною точністю, якщо ряд сходиться; роздруківку вихідних даних, членів ряду з їх порядковими номерами, підсумкового значення суми ряду і кількість членів ряду. Варіанти завдань дані в Додатку 8. Номер варіанта призначається викладачем.
2. Здійснити налагодження програми і її тестування.
3. Скласти звіт про роботу.
Вказівки до виконання завдання
У процесі рішення деяких задач потрібно частину операторів, що входять у програму, виконати кілька разів. Для виключення повторного програмування використовують один з керуючих операторів – оператор циклу, що має вид:
[n] DO m V=m1, m2, [m3]
{тіло циклу}
m CONTINUE
Тут n, m – мітки; V – змінна циклу; m1, m2, m3 – арифметичні вирази цілого типу, що обумовлюють відповідно початок і кінець циклу і крок (циклічне доповнення до змінної циклу). Квадратні скобки в записі означають, що даного елементу може не бути. За умовчанням, якщо крок m3 не указаний, то він дорівнює одиниці. Оператор CONTINUE з міткою m обмежує тіло циклу.
Принцип дії оператора циклу: спочатку змінній V привласнюється значення m1. Далі виконуються оператори тіла циклу. При досягненні оператора CONTINUE значення змінної V збільшується на величину кроку m3 і керування передається на оператор DO. Тут має відбуватися перевірка критерію роботи циклу: значення змінної циклу V повинне бути менше або дорівнювати m2. Якщо умова виконується, то знову виконуються оператори циклу, якщо ні, то керування передається на оператор, що йде за оператором CONTINUE.
Тіло циклу може містити будь-яку кількість різних операторів, у тому числі вкладені оператори циклу або умовні блочні оператори. Будь-які вкладені оператори повинні закінчуватися усередині циклу. При необхідності можливо дострокове закінчення виконання циклу і передача керування на інші оператори програми (наприклад, за допомогою оператора GOTO), але не можна передавати керування в тіло циклу, минаючи його заголовок (мітка [n] у загальній формі запису).
Обчислення суми ряду – класичний приклад циклічного алгоритму – важлива складова частина багатьох прикладних задач. Алгоритм цієї процедури в загальному випадку складається з таких кроків:
1. Введення і визначення значень додаткових змінних. У нашому випадку ними будуть: сума послідовності чисел, члени ряду, лічильник циклів і критерій зупинки циклу. Критерієм зупинки процесу розрахунку суми може бути кількість членів ряду, умова збіжності й ін.
2. Обчислення нового значення лічильника циклів.
3. Обчислення поточного члена ряду.
4. Розрахунок нового значення суми ряду шляхом додавання отриманого значення поточного члена ряду із сумою усіх раніше отриманих.
5. Перевірка критерію зупинки циклу. У залежності від результатів перевірки або повторюються кроки 2...5, або припиняється виконання циклу. Для повернення використовується оператор безумовного переходу. У програмі це може виглядати так:
IF(A.GE.EPS) GOTO 10
Мітка 10 установлюється на рядку з першим повторюваним оператором.
Приклад:
обчислити суму ряду
.
Перш ніж приступити до написання програми, відзначимо кілька моментів. Початкове значення суми для даного ряду дорівнює нулю. Вихідними даними для розрахунку є Х и EPS (точність). Тип ряду (ряд, який збігається або розбіжний) будемо визначати по абсолютній величині першого і другого члена ряду. Розрахунок суми ряду у випадку розбіжного ряду виконаємо з застосуванням оператора циклу, а обчислення суми ряду, що сходиться, організуємо простим циклічним алгоритмом. Вибір варіанта розрахунку буде організовано за допомогою умовного блокового оператора.
Текст програми:
PROGRAM EXAMPLE
С Обчислення суми ряду
С Блок опису
REAL X, S, SN, SN1, SN2
INTEGER N, I, J, K
С Уведення вихідних даних
WRITE(*,*) 'Уведіть X, EPS'
READ (*,*) X, EPS
С Визначення виду ряду
SN1=-1.*X**2/2 !
SN2=X**4/24 !
С Обчислення суми ряду
IF(ABS(SN1).GT.ABS(SN2)) THEN
WRITE(*,*) 'Ряд що сходиться'
WRITE(*,*) 'Визначимо суму ряду з точністю EPS=', EPS
S=1
N=0
20 N=N+1 ! Лічильник циклів
С Обчислення факторіала
F=1
DO 10 J=1, 2*N
F=F*J
10 CONTINUE
SN=(-1)**N*X**(2*N)/F
С Роздруківка поточного члена ряду
WRITE(*,*) 'N=', N,'SN=',SN
S=S+SN
С Перевірка критерію зупинки циклу
IF(N.GE.1000) GOTO 25 ! Додаткова умова закінчення циклу
IF(ABS(SN).GT.EPS) GOTO 20
ELSE
WRITE(*,*) 'Ряд розходиться'
WRITE(*,*) 'Визначимо суму перших десяти членів ряду'
DO 30 I=1,10
F=1
DO 40 K=1, 2*I
F=F*K
40 CONTINUE
SN=(-1)**I*X**(2*I)/F
WRITE(*,*) ‘N=’, I,’SN=’,SN
S=S+SN
30 CONTINUE
N=I-1
ENDIF
С Роздруківка результатів
25 WRITE(*,*) 'Підсумкове значення'
WRITE(*,*) ‘N=’, N ‘S=’, S
END
Коментарі до програми: якщо умовою закінчення роботи циклу служить порівняння з точністю розрахунку, то в цикл бажано ввести додаткову умову закінчення циклу – максимальну кількість повторень. Ця умова необхідна для запобігання нескінченного виконання циклу у випадку, коли не може бути досягнута точність розрахунку.
Звіт про роботу повинний містити короткий опис роботи, блок-схему і текст програми, а також результати її виконання.
Лабораторна робота № 8