
- •1. Задание на контрольную работу
- •Задание 1
- •Варианты задач № 1
- •Задание 2
- •2. Методические указания к решению задач
- •2.1. Этапы подготовки задач к решению на эвм
- •2.2. Типовые алгоритмы вычислительных процессов
- •2.2.1. Линейный вычислительный процесс
- •2.2.2. Разветвляющийся вычислительный процесс
- •2.2.3. Циклический вычислительный процесс
- •Цикл с заданным числом шагов
- •Итерационный цикл
- •2.2.4. Циклический разветвляющийся (смешанный) вычислительный процесс
- •2.2.5. Накопление суммы и произведения
- •2.2.6. Поиск наибольшего числа в массиве
- •2.2.7. Сложные циклы
- •Методические указания к выполнению задания 2
- •Библиографический список
- •Приложение 1
- •Приложение 2
2.2. Типовые алгоритмы вычислительных процессов
Все приводимые ниже алгоритмы сопровождаются блок-схемой и программой на алгоязыке Pascal.
2.2.1. Линейный вычислительный процесс
В этом процессе операции выполняются последовательно, одна за другой, как это представлено в блок-схеме. Рис.1.
Пример. Вычислить и напечатать значение
Алгоритм и программа имеют вид:
|
PROGRAM ROM; const pi = 3.14; var y, a, x: real; begin writeln (‘ввести a, x’); readln (a, x);
y:=exp(cos(x))–sqrt(a writeln (‘y =’, y:2:1,‘ ’, ‘x =’, x:2:1, ‘ ’, ‘a =’, a:2:1); end. |
Рис.1. Линейный алгоритм
2.2.2. Разветвляющийся вычислительный процесс
В разветвляющемся вычислительном процессе происходит выбор направления решения задачи, в зависимости от выполнения (или невыполнения) некоторого условия, Рис. 2.
Пример. Вычислить
и напечатать значение y
при x2,7
и x<2,7;
a=2,1;
b=0,5.
|
если
|
если
|
Блок-схема алгоритма
|
PROGRAM ZOG; var x, a, b,: real; begin writeln (‘ввести x, a, b’); readln (x, a, b); if x>=2.7 then y:=sqr(ln(x))+b
else
y:=(a writeln (‘y=’, y:3:2, ‘ ’, ‘x=’, x:2:1, ‘ ’, ‘a=’, a:1:1, ‘ ’, ‘b=’, b:1:1); end. |
Рис.2. Разветвляющийся алгоритм
Действия, которые должны быть выполнены машиной при реализации алгоритма, состоят в следующем:
Блок 2 – ввод исходных данных.
Блок 3 – проверка условия.
Блок 4, 5 – вычисление «у» при выполнении (да) или невыполнении условия (нет).
Блок 6 – вывод результата на дисплей.
Блок 7 – конец расчета.
2.2.3. Циклический вычислительный процесс
Циклический вычислительный процесс – это процесс многократного повторения одинаковых операций (расчета), с изменяющимися параметрами (одним параметром), входящими в формулу и завершаемый по достижении цели процесса.
Среди существующих разновидностей циклов следует выделить:
– цикл с заданным числом шагов;
– циклический разветвляющийся процесс (смешанный);
– итерационный цикл.
Цикл с заданным числом шагов
Пример. Вычислить и напечатать значения
,
шаг изменения
,
.
Решение задачи
состоит в вычислении и печати
для каждого значения
на отрезке от 1 до 2.
Вычисление значения
и печать
и
,
многократно выполняемые действия,
происходящие циклически,Рис.
3.
Исходными данными
будут: начальное значение
(
),
конечное значение
(
)
и шаг измененияh.
Блок-схема алгоритма
Подготовка цикла
Задание начального значения
Проверка условия окончания цикла
Выполнение
многократно
повторяющихся операций:
вычисление по формуле;
вывод результата на дисплей;
изменения значения х на величину
шага, h (подготовка к следующему
шагу цикла)
Рис. 3. Циклический алгоритм
Циклический расчет по формуле будет продолжаться до тех пор, пока выполняется условие в блоке 4.
Блок 2 – ввод исходных данных;
Блок 3 – задание
начального значения
;
Блок 4 – проверка условия окончания цикла.
Блок 5 – вычисление
значений
,
при изменяющемся аргументе
.
Блок 6 – печать
значений
и
.
Блок 7 – изменение
значения аргумента
на величину шага –h
и проверка условия окончания цикла.
Блок 8 – окончание расчета.
При составлении программы можно перейти к символам, принятым в Pascal.
Программа на языке Pascal.
PROGRAM ALPA;
var
x,
x
,
h, y: real;
begin
writeln
(‘ввести
x,
x
,
h’);
readln (x,
x
,
h);
x:= x;
while x<=
xdo
begin
y:=sin(1/(cos(x)-(sin(x)/cos(x))));
writeln (‘y=’, y:3:1, ‘ ’, ‘x=’, x:2:1);
x:=x+h;
end
end.
В программе
использованы операторы цикла «с
предусловием»: while
(x<=
x)
do
и end.