Тема урока: Виды алгоритмов и их реализация
Образовательные задачи: 1. Ввести понятия: полная форма ветвления и условный оператор ветвления. 2. Научить разрабатывать и создавать простейшие полные формы условного оператора.
Алгоритм Свойства алгоритма дискретность: состоит из отдельных шагов (команд) понятность: должен включать только команды, известные исполнителю (входящие в СКИ) определенность: при одинаковых исходных данных всегда выдает один и тот же результат конечность: заканчивается за конечное число шагов массовость: может применяться многократно при различных исходных данных корректность: дает верное решение при любых допустимых исходных данных Алгоритм – это четко определенный план действий для исполнителя.
Программа Программа – это алгоритм, записанный на каком-либо языке программирования набор команд для компьютера
начало конец c := a + b; ввод a, b вывод c блок "начало" блок "ввод" блок "процесс" блок "вывод" блок "конец" Блок-схема линейного алгоритма
Из чего состоит программа? program ; const …;{константы} var …; {переменные} begin … {основная программа} end. { процедуры и функции } комментарии в фигурных скобках не обрабатываются
Разветвляющиеся алгоритмы Задача. Ввести два целых числа и вывести на экран наибольшее из них. Идея решения: надо вывести на экран первое число, если оно больше второго, или второе, если оно больше первого. Особенность: действия исполнителя зависят от некоторых условий (если … иначе …). Алгоритмы, в которых последовательность шагов зависит от выполнения некоторых условий, называются разветвляющимися.
Вариант 1. Блок-схема начало max:= a; ввод a,b вывод max a > b? max:= b; конец да нет полная форма ветвления блок "решение" Если a = b? ?
Условный оператор if then begin {что делать, если условие верно} end else begin {что делать, если условие неверно} end; Особенности: перед else НЕ ставится точка с запятой если в блоке один оператор, можно убрать слова begin и end
Вариант 1. Программа program primer2; var a, b, max: integer; begin writeln('Введите два целых числа'); read ( a, b ); if a > b then begin end else begin end; writeln ('Наибольшее число ', max); end. max := a ; max := b ; полная форма условного оператора
Что неправильно? if a > b then begin a := b end else b := a end; if a > b then begin a := b else begin b := a end; if a > b then begin a := b end; else begin b := a end; begin end
Самостоятельная работа Задача. Ввести с клавиатуры целое число и вывести на экран «1», если число больше 10 и «0», если число меньше Составить блок-схему 2.Составить программу
program primer2; var : integer; begin writeln('Введите целое число'); read ( a ); if a >10 then writeln(1) else writeln(0) end.