Смекни!
smekni.com

Организация и методика производственного обучения (стр. 27 из 40)

Условием обеспечения заданной точности является достижение очередным членом ряда величины, по модулю меньшей . Для определения членов ряда используется рекуррентная формула

h

Алгоритм является представителем класса итерационных алгоритмов, в которых каждое новое значение некоторой величины вычисляется на основе уже имеющегося предыдущего.

КОНТРОЛЬНЫЕ ВОПРОСЫ?

1. Что такое циклические алгоритмы? Приведите общий вид написания таких алгоритмов?

2. Составьте алгоритм и программу для вычисления суммы квадратов чисел 1, 3, 5, ..., 15

Тема 4.12Подпрограмма. Примеры программирования вычислительных алгоритмов с использованием подпрограмм

Если при составлении алгоритма возникает необходимость многократного использования одного и того же набора действий, этот набор действий выделяют в отдельный алгоритм и дают ему имя. С этого момента он становится вспомогательным алгоритмом, то есть появляется возможность его использования в других алгоритмах.

Для реализации вспомогательных алгоритмов на языке Бейсик служат подпрограммы. Они позволяют при создании больших и сложных программ упростить их чтение, понимание, внесение изменений, более рационально использовать память ЭВМ. Формы реализации вспомогательного алгоритма

БЛОК-СХЕМА АЛГОРИТМИЧЕСКИЙ ЯЗЫК Q BASIC

Команда вызова вспомогательного алгоритма: имя ( список аргументов и результатов)

COSUB N

Оператор вызова подпрограммы (вызывает подпрограмму, которая начинается со строки N)

RETURN

Оператор возврата из подпрограммы

(осуществляет

переход из

подпрограммы в строку, следующую за оператором GOSUB)

Пример 1 Нарисовать на экране монитора улицу из нескольких домиков Решение:

Используем в качестве подпрограммы, алгоритм рисования домика

(рис. 15)

REM домик

SCREEN 9

LINE(20,180)-(80,80) 5, BF

LINE(80,80) – (50,20), 5

LINE(50,20)-(20,80), 5

0 20 50 80

Для рисования улицы из нескольких одинаковых домиков достаточно, обращаясь к подпрограмме «домик», задавать в качестве аргумента смещение домика А, которое фактически будет передвигать его на расстояние А относительно первого домика.

Блок-схема:

Основной алгоритм Вспомогательный алгоритм

А=0 домик

Программа:

Rem улица

Screen 9

A=0 : Gosub 200

A=80 : Gosub 200 Основная программа

A= 160: Gosub 200

End

200 Rem

Line(20+A,180) – (80+A,80),5,BF Подпрограмма

Line(80+A,80) – (50+A,20),5,

Line(50+A,20) – (20+A,80),5,

Return

Основная программа должна отделяться от подпрограммы оператором END.

В противном случае вновь начнет исполняться подпрограмма, а поскольку к ней не было обращения с помощью оператора GOSUB, ЭВМ выдаст соответствующее сообщение об ошибке и прекратит работу с программой.

Пример 2. Составить алгоритм для определения значения Y:

X3X5X9

Y= X- + + 99

3! 5! 9!

Решение:

При составлении основного алгоритма обращает на себя внимание необходимость 4 раза вычислять факториал. Дадим алгоритму, вычисляющему факториал, имя «Факториал» и будем использовать его в качестве вспомогательного.

алгфакториал (арг цел N, рез цел F) начцел I F:=1 для I от 1 до N нц

F:= F Ч I

Кц кон

Основной алгоритм:

алг вычисление Y ( арг вещ X, резвещ Y) нач цел Р1, Р2, Р3, Р4

ввод Х факториал ( 3, Р1) факториал ( 5, Р2) факториал ( 7, Р3) факториал ( 9, Р4)

X3X5X7X9

Y:= X- + + +

P1 P2 P3 P4

вывод Y

кон

Аргументы и результаты вспомогательного алгоритма называются формальными параметрами, а основного алгоритма- фактическими. Команда вызова вспомогательного алгоритма выполняется в три этапа :

1. Передача значений аргументов фактических параметров формальным.

2. Выполнение вспомогательного алгоритма.

3. Передача значений результатов формальных параметров фактическим.

ЭВМ, работающая на алгоритмическом языке, выполнила бы этот алгоритм так: при первом обращении к вспомогательному алгоритму «факториал» в ячейку памяти с именем N передается значение 3; алгоритм исполняется с этим аргументом; результат

(3!= 1· 2 ·3 = 6) заносится в ячейку F, а затем передается ( переписывается) в ячейку Р1.

Программа:

REM вычисление Y

DIM N Р1,Р2,Р3,Р4, F AS INTEGER

INPUT X

N=3 передать аргумент переменной N

GOSUB 200 подпрограмма факториал

P1=F забрать ответ из F вР1

N=5 передать новый аргумент переменной N

GOSUB 200 подпрограмма факториал

P2=F забрать ответ из F в Р2

N=7 передать новый аргумент переменной N

GOSUB 200 подпрограмма факториал

P3=F забрать ответ из F

N=9 передать новый аргумент переменной N

GOSUB 200 подпрограмма факториал

P4=F забрать ответ из F в Р4

Y=X-X^3/P1+X^5/P2-X^7/P3+X^9/P4

PRINT ―Y=‖; Y END

200 REM факториал

F=1

FOR I=1 TO N

F=F*I

NEXT I

RETURN

КОНТРОЛЬНЫЕ ВОПРОСЫ:

1. Что такое подпрограмма? В каких случаях удобно использовать подпрограммы?

2. Формы реализации вспомогательного алгоритма ?

3. Назначение и использование операторов GOSUB, RETURN?

4. Каков порядок исполнения алгоритма с использованием вспомогательного? Программы с подпрограммой?

5. Используя подпрограмму «факториал», напишите программу вычисления суммы факториалов нечетных чисел от 1 до 7

Тема 4.13 Описание массивов данных.

Программирование вычислительных алгоритмов обработки массивов

Многие задачи, которые решаются с помощью ЭВМ, связаны обработкой больших объемов информации. Для удобства обработки информация часто сводится в таблицу, линейную или прямоугольную.

Каждому значению таблиц и соответствует его порядковый номер и, следовательно, при задании порядкового номера становится ясно, о каком элементе таблицы идет речь. Таблица 1

1 2 3 4 5
2,5 1,5 -6 12 8

Данная таблица имеет 5 элементов . Пятый элемент таблицы имеет значение 8, а третий имеет значение -6 . Значение 1,5 принадлежит второму элементу, значение 12- четвертому элементу таблицы.

Очевидно, что при хранении таблицы порядковые номера хранить нет необходимости: зная начало нумерации, можно путем отсчета найти любой элемент. Кроме того, полезно знать и самый большой порядковый номер, так как это позволяет определить заранее размер таблицы.

Таким образом, если некая величина является линейной таблицей, нужно задать тип элементов таблицы, ее имя, начальный и конечный порядковые номера.

В алгоритмах табличные величины описываются следующим образом: служебное слово, указывающее тип (цел, вещ, лит), затем служебное слово таб (таблица), имя таблицы, за которым стоят в квадратных скобках начальный и конечный порядковый номера ее элементов, разделенных двоеточием. Например:

Вещ таб А [1:5]

Цел таб D [2:20]

Лит таб К[20:30]

Работа с табличной величиной сводится к работе с ее элементами. Для того, чтобы указать какой элемент в данный момент используется, достаточно указать его порядковый номер- индекс. Индекс заключается в квадратные скобки и помещается после имени таблицы.

Для таблицы 1 (пусть ее имя А):

А[5]=8

A[2]=1,5

Пятый элемент имеет значение 8 , второй – 1,5

Пример 1. Сформировать табличную величину Y (таблица 1)

Каждый элемент которой равен:

Yii2

Решение:

алг таблица квадратов (арг вещ таб А[5], рез вещ таб Y[5]) начцел I ввод А для I от 1 до 5 нц Y[I]: A[I]2кц

вывод Y кон

Использование переменной I в качестве индекса позволяет заполнить таблицу Y новыми элементами.

Для работы на компьютере с табличными величинами используются массивы.

Массив - это упорядоченная по номерам совокупность значений, объединенных общим именем и типом.

При формировании массива компьютер отводит последовательность расположенных друг за другом ячеек, имеющих одинаковые имена

Элементы массива нумеруются. Номер элемента (индекс)- характеризует положение элемента относительно начала массива.