- •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(api)/sqr(sin(x)); 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:=(abx)+x; 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.