Слайд 1Алгоритмизация и программирование
Этапы решения задачи на ПК
Подготовка и решение инженерных
задач на компьютере включает последовательность этапов, составляющих жизненный цикл программного
продукта.
Постановка задачи. На этом этапе формулируется цель решения задачи, подробно описывается содержание задачи, анализируются условия и требования, при которых решается задача, а также выявляется область определения входных параметров, которые называются исходными данными.
Слайд 2Формальное описание задачи. На этом этапе выявляются существенные элементы и
взаимосвязи между ними, составляется формальная модель задачи в виде схемы,
диаграммы или сжатого лаконичного описания.
Математическое моделирование. Выполняется математическая формализация задачи. Описательная модель записывается с использованием наиболее адекватного математического языка, осуществляется выбор метода решения задачи. Как правило, математическая модель строится приближенно, то есть с определенной точностью, допущениями и ограничениями.
Слайд 3Алгоритмизация. Составляется алгоритм решения задачи в соответствии с выбранной математической
моделью. При разработке алгоритма вычислительный процесс разбивается на отдельные самостоятельные
блоки и определяется последовательность выполнения этих блоков.
Программирование. Выполняется запись разработанного алгоритма на конкретном языке программирования.
Тестирование и отладка программы. Проводится устранение синтаксических и логических ошибок, которые возникают в процессе трансляции и тестирования программы.
Слайд 4Анализ и интерпретация результатов. Первоначально выполняется многократное решение задачи для
разных наборов данных.
Из анализа полученных результатов проводится формулировка выводов
и выработка мер по реализации выбранного решения.
Внедрение и сопровождение. Если заказчик удовлетворен качеством программного продукта, то наступает период его внедрения в эксплуатацию. Как правило, сотрудничество исполнителя с заказчиком продолжается. Такое взаимодействие исполнителя и заказчика называется сопровождением программы.
Слайд 5Алгоритм и его свойства
Алгоритмизация – это совокупность приемов и способов
составления алгоритмов для решения алгоритмических задач.
Алгоритм – точное предписание, задающее
процесс, обеспечивающий получение результатов, соответствующих определенным входным данным.
Основными свойствами алгоритмов являются:
Массовость (универсальность) – применимость алгоритма для решения класса задач, различающихся исходными данными.
Дискретность – процесс решения задачи разбит на отдельные действия (шаги).
Слайд 6Определенность (детерминированность) –правила и порядок выполнения действий алгоритма имеют единственное
толкование.
Результативность – результат алгоритма достигается за конечное число шагов.
Способы записи
алгоритма
Словесное описание – запись алгоритма на естественном языке или в виде структурированной записи на псевдокоде (частично формализованном языке).
Графическая форма – представление алгоритма в виде блок–схемы.
Слайд 7 Блок-схема – описание структуры алгоритма с помощью геометрических фигур (блоков)
с линиями–связями, показывающими порядок выполнения отдельных операций. Внутри блоков указывается
информация об операциях, подлежащих выполнению.
Графическая форма записи является удобным средством изображения алгоритмов и получила широкое распространение в научной и учебной литературе.
Программа – запись алгоритма на алгоритмическом языке. Среди программистов, пишущих программы для ПК, наибольшей популярностью пользуются языки Си, Паскаль и Бейсик.
Слайд 8Базовые структуры алгоритмов
В зависимости от последовательности выполнения действий выделяют алгоритмы
линейной, разветвляющейся и циклической структуры.
Линейный алгоритм – это алгоритм, в
котором действия выполняются последовательно одно за другим от начала до конца.
Как правило, основу линейного алгоритма составляют три операции: операция ввода исходных данных, операция определения значения переменной и операция вывода результата.
Слайд 9Пример линейного алгоритма
Для заданного алгоритма при исходном значении n=5874 значение
переменной S будет равно…
Ответ:
Ответ:
Начало
Ввод n
a
:= n div 1000
b := (n div 100) mod 10
c := (n div 10) mod 10
d := n mod 10
S := a+b+c+d
Вывод S
Конец
Program LVP;
Var
a,b,c,d,S: integer;
Begin
writeln (‘Введите n’);
read(n);
a := n div 1000;
b := (n div 100) mod 10;
c := (n div 10) mod 10;
d := n mod 10;
S := a+b+c+d;
writeln(‘S=‘, S);
End.
Блок-схема
Псевдокод
Турбо-Паскаль
?
S=24
Слайд 10Разветвляющийся алгоритм в зависимости от проверяемого условия позволяет реализовать вычисление
по одному из нескольких направлений (ветвей). При разработке алгоритма необходимо
учитывать все возможные ветви вычислений.
Различают неполную (ЕСЛИ-ТО) и полную
(ЕСЛИ-ТО-ИНАЧЕ) структуру ветвления.
Условие
Условие
Оператор2
Оператор1
Оператор
Д(Истина)
Н(Ложь)
Д(Истина)
Н(Ложь)
ЕСЛИ-ТО
ЕСЛИ-ТО-ИНАЧЕ
Слайд 11Пример разветвляющегося алгоритма
Алгоритм задан блок-схемой:
В результате выполнения алгоритма при исходных
данных x=-25, y=1 значение переменной
Z будет равно …
Ответ:
Z=2
?
Слайд 12Задание 1
Записать алгоритм в псевдокодах .
Блок-схема
Псевдокод
Начало
Ввод x, y
если x ≥
0 то
если y ≥ 0
то z:=1
иначе Z:=4
все
иначе
если y ≥ 0
то z:=2
иначе Z:=3
все
все
Вывод z
Конец
Слайд 13Задание 2 (самостоятельно)
Записать алгоритм на языке Турбо Паскаль.
Блок-схема
Турбо Паскаль
Program RVP;
Var
x, y, z:real;
Begin
writeln (‘Введите числа x, y’);
read (x, y);
if x>=0 then
if y>=0 then z:=1 else z:=4
else
if y>=0 then z:=2 tlse z:=3;
writeln (‘z=’, z:6:2);
End.
Слайд 14Циклический алгоритм – это алгоритм, который характеризуется многократным выполнением одних
и тех же действий. Группа действий, повторяющихся в цикле, называется
телом цикла. Числом повторений тела цикла управляет специальная переменная, называемая либо управляющей переменной, либо параметром цикла.
Широкое применение получили три типа циклов:
цикл с предусловием;
цикл с постусловием;
цикл с параметром.
Слайд 15В блок-схемах каждому типу цикла соответствует определенная структура:
В цикле
с параметром обозначено:
i – параметр цикла;
n1 – начальное
значение параметра;
n2 – конечное значение параметра;
h – шаг изменения параметра.
Условие
Условие
Тело цикла
Тело цикла
Д
Н
Д
Н
Цикл
с предусловием
Цикл
с постусловием
Выход
из цикла
Выход
из цикла
i=n1,n2,h
Тело цикла
Выход
из цикла
Цикл
с параметром
В чем главное отличие цикла с предусловием от цикла с постусловием?
Ответ
В цикле с предусловием условие проверяется перед выполнением тела цикла. Это означает, что тело цикла может не выполниться ни разу, если условие не выполняется сразу на первом шаге.
В цикле с постусловием условие записывается после выполнения тела цикла. Это означает, что тело цикла обязательно выполнится хотя бы один раз на первом шаге.
Слайд 16Пример циклического алгоритма с предусловием
Задан алгоритм:
В результате выполнения алгоритма при
входном значении n=4123 значение переменной p будет равно …
Ответ:
Начало
Ввод n
p :=
1
нц пока n<>0
k := n mod 10
p := p*k
n := n div 10
кц
Вывод p
Конец
Program CVP_Pred;
Var
n, k, p: integer;
Begin
writeln (‘Введите n’);
read(n);
p:=1;
while n<>0 do
begin
k := n mod 10;
p := p*k;
n := n div 10;
end;
writeln(‘p=‘, p);
End.
Блок-схема
Псевдокод
Турбо-Паскаль
?
p=24
Какой циклический алгоритм для переменной P реализуется в данной задаче ?
Ответ: алгоритм накопления произведения
Слайд 17Пример циклического алгоритма с постусловием
Задан алгоритм:
При входном значении n=6 значение
переменной S будет равно …
Ответ:
Начало
Ввод n
S1 := 0
S2 := 0
i := 1
нц
S1 := S1 + i*i*i
i := i + 1
S2 := S2 + i*i
i := i + 1
кц до i≥n
S := S1 + S2
Вывод S
Конец
Program CVP_Post;
Var
n, i, S1, S2: integer;
Begin
writeln (‘Введите n’);
read(n);
S1 := 0;
S2 := 0;
i := 1;
repeat
S1 := S1 + i*i*i;
i := i +1;
S2 := S2 + i*i;
i := i +1;
until i>=n;
S := S1 + S2;
writeln(‘S=‘, S);
End.
Блок-схема
Псевдокод
Турбо-Паскаль
?
S=209
Какой циклический алгоритм для переменных S1 и S1 реализуется в данной задаче ?
Ответ: алгоритм накопления суммы
Слайд 18Что вычисляет данный алгоритм ?
Чему равно значение P при
k=3?
Начало
Ввод k
P := 1
T := 0
нц для I=1, k,
1
T := T + 3
P := P * T
кц
Вывод P
Конец
Блок-схема
Псевдокод
Турбо-Паскаль
Произведение чисел, кратных 3
P = 162
Пример циклического алгоритма с параметром
Задан алгоритм:
Ответ:
Program CVP_Parametr;
Var
I, k, P: integer;
Begin
writeln (‘Введите k’);
read(k);
P := 1;
T := 0;
for I:=1 to k do
begin
T := T+ 3;
P := P * T;
end;
writeln(‘P=‘, P);
End.
Какие циклические алгоритмы для переменных T и P реализуются в данной задаче ?
Ответ
Для переменной T - алгоритм накопления суммы.
Для переменной Р - алгоритм накопления произведения.