Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод указания ИНФОРМ Общ курс Стационар рус.doc
Скачиваний:
8
Добавлен:
10.02.2016
Размер:
2.87 Mб
Скачать

Результат выполнения программы:

H, X0? 1.2, 0.4 _

S= -4.155788

3.10. Пример выполнения задачи 4

Задание: В соответствии с условием разработать алгоритм комбинированной структуры и составить программу

Условие: Вычислить значение функции

, 0,5 < с < 2,5

y = , с ≤ 0,5 или с ≥ 2,5,

для с = -1,5 ; -0,5 ; -0,1 ; 0 ; 0,5 ; 1,75 ; 1,8 ; 2,5 ; 3,4 ; 5,7.

Тут . Пренебречьчленами ряда, меньшими ε = 10 - 4

Решение: обозначим z → Z, zn → ZN, i →I, n → N, ε → EPS как простые переменные, c → C(I), y → Y(I) как одномерные массивы, длина каждого из которых составляет 10 элементов (по количеству заданных значений с).

Комбинированный алгоритм данной задачи состоит из фрагментов разветвляющегося алгоритма и двух циклических: простого (с заранее известным числом повторений) и итерационного (для вычисления суммы Z), прекращение которого происходит при достижении заданной точности вычислений zn < ε = 10-4.

Реализация итерационного цикла возможна только с помощью циклических алгоритмов типа ''Пока'' или ''До''. Для простого цикла можно использовать цикл ''Со счетчиком''.

Первая часть алгоритма осуществляет вычисление переменной Z (итерационный цикл) значение которой используется во второй части (простой цикл вычисления функции Y(I) с разветвлением – выбором соответствующей формулы, в зависимости от введенного значения переменной C(I)).

1-й вариант

Блок – схема

+

+ -

Программа

REM алгоритм комбинированной структуры ‘оператор- комментарий

DIM EPS, N, Z, ZN, I, C(1 TO 10), Y(1 TO 10) ‘ описание переменных

INPUT “ EPS ”; EPS ‘ввод данных

DATA –1.5,-.5,-.1,0,.5,1.75,1.8,2.5,3.4,5.7 ‘строка данных

N = 1: Z = 0 ‘оператор присваивания

DO ‘оператор начала цикла

ZN = 0.1*N / (N+0.6)^3: Z=Z+ZN ‘операторы присваивания N= N + 1

LOOP WHILE ABS(ZN) > EPS ‘завершение цикла

PRINT “Z=”; Z ‘вывод

FOR I = 1 TO 10 ‘оператор начала цикла

READ C(I) ‘ввод данных

IF C(I)> .5 AND C(I)< 2.5 THEN ‘оператор условного перехода

Y(I) = (C(I) * Z - 3) ^ 2 ‘оператор присваивания

ELSE Y(I) = .5 * Z ^ 3 - 5 * C(I) ‘оператор присваивания

END IF ‘завершение оператора условного перехода

PRINT “Y”; I; “=”;Y(I) ‘вывод

NEXT I ‘завершение цикла

END ‘конец программы

2-й вариант (с использованием подпрограммы пользователя)

Замечания

Фрагмент вычисления Z выделен в отдельный программный модуль – подпрограмму пользователя (SUB) с именем SUMZ.

Место подпрограммы SUB - после текста основного модуля.

Ввод программы, в тексте которой находится обращение к подпрограмме пользователя, выполняется в 2 этапа:

1. После ввода последней строки основной программы необходимо ввести часть заголовка процедуры, а именно SUB <имя> и нажать ENTER.

На экране появятся 3 строки

SUB имя

-

END SUB

2. Ввод текста процедуры.

После ввода последнего оператора подпрограммы необходимо нажать клавишу F2.

На экране в поле диалога появляются имена головного модуля (например, UNTITLED) и функции.

С помощью курсорных клавиш и ENTER можно перейти в поле редактирования головного модуля или подпрограммы.

Запуск процедуры SUB осуществляется из головной программы оператором CALL

CALL имя подпрограммы (факт. параметр[,ф.п....])

Обмен данными между головным модулем и подпрограммой, осуществляется 2 способами:

1. Использование глобального объявления типов данных с помощью оператора DIM SHARED (данные, которые объявлены глобальными, доступны как в основной программе, так и в процедуре)

2. Использование механизма формально-фактических параметров (здесь подпрограмма использует формальные параметры, значения которых определяются с помощью фактических параметров при обращении к подпрограмме).

Между фактическими и формальными параметрами существует соответствие по типу, количеству и порядку следования.

Оба способа обмена могут быть использованы в одной процедуре.

После выполнения подпрограммы SUB управление передается оператору, следующему за оператором – вызовом подпрограммы CALL