Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CHAPTER2.DOC
Скачиваний:
22
Добавлен:
20.03.2015
Размер:
574.98 Кб
Скачать

Оператори введення (data),читання (read),повторного читання (restore),умовних та безумовних переходів

У даному випадку програма матиме такий вигляд:

10 PRINT “Розрахунок значень функції F”

15 B = 1E–5: C = 3E2

20 PRINT: PRINT

25 PRINT “Значення змінних X і A”: PRINT “Значення функції F”

30 READ X, A

40 DATA 0, 0, 0.1, 0.2, 0.2, 0.4, 0.3, 0.6, 0.4, 0.8, 0.5, 1, 0.6, 1.2

42 DATA 0.7, 1.4, 0.8, 1.6, 0.9, 1.8, 1, 2

45 PRINT “X = ”; X: PRINT “A =”; A

50 F = (X*X + 1) / C + B / (A*A + 2)

60 PRINT “F = ”; F

70 GOTO 30

Програма працює таким чином.

На екрані монітора друкується заголовок (рядок 10). Опе­ратори рядка 20 дозволяють пропустити два рядки на екрані монітора.

Оператор READ читає першу пару вхідних даних XiA, які записані в операторі DATA. Вони дорівнюватимуть нулю. Після цього в лівій частині екрана монітора друкуються слова “Значення зміннихX iA”. Рядки 45, 60 дозволяють виводити на екран значення вхідних даних (XiA) і функціїF.

У рядку 50 розраховується значення функції F.

Рядок 70 безумовним оператором переадресовує трансля­тор до нового читання вхідних даних. Тепер вже значення Xбуде дорівню­вати 0.1, аA= 0.2 і повторюється весь процес обчислення.

Як тільки закінчиться розрахунок функції Fз параметрамиX= 1 iA= 2, то рядок 70 знову переадресує ЕОМ до рядка 30, з вимогою читання наступної пари вхідних даних. Так як їх в операторі DATA більше немає, то ЕОМ сповіщає про помилку, яка свідчить про те, що відсутні вхідні дані.

Щоб уникнути появи помилки, в рядку 70 замість опера­тора безумовного переходу необхідно користуватися опера­тором умовного переходу

70 IF X < 1 GOTO 30

72 PRINT “Якщо Ви бажаєте повторити дослідження функції, то подайте команду GOTO 10”

74 STOP

76 RESTORE: GOTO 10

80 END

Поки умова рядка 70 виконується, оператор READ послідовно читає вхідні дані, записані в операторі DATA. Якщо умова рядка 70 не виконується, то передається керуван­ня наступному рядку 72. ЕОМ надрукує інформацію опе­ра­тору і розрахунки закінчаться оператором STOP.

Якщо необхідно повторити обчислення, то оператор RESTORE дозволить оператору READ повторно читати вхід­ні дані, записані в операторі DATA.

Оператори обчислювальних переходів

Зовсім неважко програму 2.2 переробити для дослід­жен­ня декількох функцій, вибір яких здійснює ЕОМ в процесі виконання програми. Для цього існує оператор ON K GOTO N, L, C (де K– число, що вираховується в процесі роботи,N,L,C– номeри рядків програми). У цьому випадку про­грама буде мати такий вигляд:

8 K = 1

10 PRINT “Розрахунок значень функції F”

15 B = 1E–5: C = 3E2

20 PRINT: PRINT

25 PRINT “Значення змінних X i A”: PRINT “Значення функції F”

30 READ X, A

40 DATA 0, 0, 0.1, 0.2, 0.2, 0.4, 0.3, 0.6, 0.4, 0.8, 0.5, 1

42 DATA 0.6, 1.2, 0.7, 1.4, 0.8, 1.6, 0.9, 1.8, 1, 2

45 PRINT “X =”;X: PRINT “A =”; A

47 ON K GOTO 50, 52, 54

50 F = (X*X + 1) / C + B / (A*A + 2): GOTO 60

52 F = B * (X + 1) * (X + 1) + A * (A + 1) + 2: GOTO 60

54 F = X / B + (A / 3) * (A / C) + 1

60 PRINT “F = ”; F

70 IF X < 1 GOTO 30

72 K = K + 1

75 IF K > 3 GOTO 80

77 RESTORE: GOTO 20

80 END

Пояснимо дану програму. Оскільки на початку програми змінна Kнабуває значення 1, то оператор ON (рядок 47) адресує виконання функції, записаної в рядку 50. Рядок 70, як і раніше, керує читанням вхідних даних, записаних в операторі DATA.

Так як K< 3, то керування передається рядку 77, який дозволяє повторне читання вхідних даних з оператора DATA.

Оскільки змінна Kтепер буде мати значення 2 (рядок 72), то оператор ON переадресує програму на виконання рядка 52, тобто на дослідження наступної функції.

Як тільки змінна Kнабуде значення 4, то робота програ­ми закінчується.

Ця програма єзразком програми циклічної структури.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]