Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Завдання. Метою даної лабораторної роботи є ознайомлення з правилами побудови циклічного алгоритму з використанням оператора циклу




Мета роботи

Метою даної лабораторної роботи є ознайомлення з правилами побудови циклічного алгоритму з використанням оператора циклу. Також завданням лабораторної роботи є придбання навичок обробки послідовності чисел.

1. Розробити алгоритм і написати програму мовою програмування FORTRAN обчислення суми ряду. Алгоритм повинний містити наступні етапи: визначення збіжності ряду; обчислення суми певної кількості членів ряду у випадку, якщо ряд розходиться; обчислення суми ряду з певною точністю, якщо ряд сходиться; роздруківку вихідних даних, членів ряду з їх порядковими номерами, підсумкового значення суми ряду і кількість членів ряду. Варіанти завдань дані в Додатку 8. Номер варіанта призначається викладачем.

2. Здійснити налагодження програми і її тестування.

3. Скласти звіт про роботу.

Вказівки до виконання завдання

У процесі рішення деяких задач потрібно частину операторів, що входять у програму, виконати кілька разів. Для виключення повторного програмування використовують один з керуючих операторів – оператор циклу, що має вид:

[n] DO m V=m1, m2, [m3]

{тіло циклу}

m CONTINUE

Тут n, m – мітки; V – змінна циклу; m 1, m 2, m 3 – арифметичні вирази цілого типу, що обумовлюють відповідно початок і кінець циклу і крок (циклічне доповнення до змінної циклу). Квадратні скобки в записі означають, що даного елементу може не бути. За умовчанням, якщо крок m 3 не указаний, то він дорівнює одиниці. Оператор CONTINUE з міткою m обмежує тіло циклу.

Принцип дії оператора циклу: спочатку змінній V привласнюється значення m 1. Далі виконуються оператори тіла циклу. При досягненні оператора CONTINUE значення змінної V збільшується на величину кроку m 3 і керування передається на оператор DO. Тут має відбуватися перевірка критерію роботи циклу: значення змінної циклу V повинне бути менше або дорівнювати m 2. Якщо умова виконується, то знову виконуються оператори циклу, якщо ні, то керування передається на оператор, що йде за оператором 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

РОБОТА З ОДНОМІРНИМИ МАСИВАМИ. ОБЧИСЛЕННЯ МАКСИМУМУ,

МІНІМУМУ, РОБОТА З ЕЛЕМЕНТАМИ МАСИВУ




Поделиться с друзьями:


Дата добавления: 2014-12-07; Просмотров: 405; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.016 сек.