- Учителю
- Разработка урока Общие вопросы алгоритмизации и программирования
Разработка урока Общие вопросы алгоритмизации и программирования
Модуль 1-2 Общие вопросы алгоритмизации и программирования
Цель: Ознакомление с основными понятиями языка программирования и конструкциями алгоритмов в виде блок-схем. Формирование профессиональных компетенций
Структура:
-
Организационный момент
-
Итоги тестирования
-
Объяснение новых понятий
-
Подведение итогов
Схематизация понятий Модуля 1-2
УЭ-3
Понятие алгоритмизации
В основе работы ЭВМ лежит принцип программированного управления, т.е. ЭВМ автоматически решает задачу в полном соответствии с программой.
Технология создания программных средств предполагает последовательную реализацию следующих этапов называемых Этапы решения задач на ЭВМ:
-
Постановка задачи
-
Формализация (или математическое описание ) и выбор (или разработка) метода решения
-
Разработка алгоритма
-
Составление программы
-
Отладка программы
-
Вычисление и обработка результатов (опытная эксплуатация)
-
При постановке задачи выясняется конечная цель и вырабатывается общий подход к решению задачи. Выясняется сколько решений имеет задача и имеет ли их вообще. Изучаются общие свойства рассматриваемого физического явления или объекта, анализируются возможности данной системы программирования.
-
На этом этапе все объекты задачи описываются на языке математики, выбирается форма хранения данных, составляются все необходимые формулы. Выбор существующего или разработка нового метода решения (очень важен и, в то же время личностный этап).
-
На этом этапе метод решения записывается применительно к данной задаче на одном из алгоритмических языков (чаще на графическом).
-
Переводим решение задачи на язык, понятный машине.
Поиск разработка и описание алгоритма решения задачи называется алгоритмизацией
Ошибки допущенные при разработке алгоритма приводят к неправильному результату.
Алгоритм. Свойства алгоритмов
Алгоритм - это определенным образом организованная последовательность действий, за конечное число шагов приводящая к решению задачи.
По ГОСТ 19.004-80 «Алгоритм - точное предписание, определяющее вычислительный процесс, ведущий от начальных данных к искомому результату»
Свойства алгоритмов:
-
Определенность
-
Дискретность
-
Целенаправленность
-
Конечность
-
Массовость
Порядок выполнения алгоритма:
-
Действия в алгоритме выполняются в порядке их записи
-
Нельзя менять местами никакие два действия алгоритма
-
Нельзя не закончив одного действия переходить к следующему
Для записи алгоритмов используются специальные языки:
-
Естественный язык (словесная запись)
-
Формулы
-
Псевдокод
-
Структурограммы
-
Синтаксические диаграммы
-
Графический (язык блок-схем)
-
Естественный язык:
если условие то действие1 иначе действие2
-
Структурограмма:
-
Синтаксическая диаграмма:
-
Графический язык:
Составление алгоритмов графическим способом подчиняется двум ГОСТам:
-
ГОСТ 19.002-80, соответствует международному стандарту ИСО 2636-73. Регламентирует правила составления блок-схем.
-
ГОСТ 19.003-80, соответствует международному стандарту ИСО 1028-73. Регламентирует использование графических примитивов.
Правила построения блок-схем:
-
Блок-схема выстраивается в одном направлении либо сверху вниз, либо слева направо
-
Все повороты соединительных линий выполняются под углом 90 градусов
Любой сложный алгоритм строится из комбинации линейной, разветвляющейся и циклической структур.
Линейный алгоритм - набор команд, выполняемых последовательно друг за другом. Такой порядок действий называют естественным.
При составлении линейных алгоритмов и программ используются следующие блоки и синтаксические конструкции языка Паскаль.
Таблица 3Блок
Наименование
Программа
Начало
Конец
Begin
End(;).
Ввод данных
Read (…)(Readln(…))
Вывод результата на дисплей
Write (…) (Writeln(…))
Вывод результата на печать
Write (Lst,…) (Writeln(…))
Присваивание
…:= …
Пример решения задачи
Линейный алгоритм
Задание. Найти сумму и разность двух чисел a=12,7 и b= -4,9.
-
Постановка задачи
Даны два числа a=12,7 и b= -4,9. Найти их сумму и разность.
-
Математическая модель
формулы
sum=a+b
razn=a-b
исходные данные
a, b - вещественные числа (real)
промежуточный и конечный результат
промежуточного результата нет
конечный результат: sum - вещественное число (real), сумма чисел a, b; razn - вещественное число (real), разность чисел a, b3. Построение алгоритма
4. Разработка программы
{Программа нахождения суммы и
разности двух вещественных чисел}
program sum_razn; {название программы}
uses crt;{подключение текстового модуля}
var a,b:real;{исходные данные}
sum,razn:real;{результата}
begin{начало программы}
clrscr;{очистка окна вывода}
write('Введите значение: a='); {вывод диалога с пользователем}
readln(a); {ввод исходных данных}
write('Введите значение: b='); {вывод диалога с пользователем}
readln(b); {ввод исходных данных}
sum:=a+b;{подсчет суммы}
razn:=a-b;{подсчет разности}
writeln;
writeln('Сумма -> ',sum:3:1,' Разность-> ',razn:3:1);{вывод результата}
readln
end.{конец программы}
-
Тестирование и отладка программы
-
Эксплуатация программы
Алгоритмическая конструкция ветвления
Разветвляющийся алгоритм - алгоритм, содержащий хотя бы одно условие, в результате проверки которого выполняется та или иная последовательность действий. Такой порядок действий называют ветвлением или условным переходом.
При составлении разветвляющихся алгоритмов и программ используются следующие блоки и синтаксические конструкции языка Паскаль, приведенные в таблице 3 и таблице 4.
Таблица 4Блок
Наименование
Программа
Условие (полная развилка)
If… then … else…;
Условие (неполная развилка)
If… then … ;
Выбор
Case … of
…;
…;
…;
else …;
end;
Пример решения задачи
Разветвляющийся алгоритм
Задание. Найти значение функции:
-
Постановка задачи
Определить значение функции при определенных значениях аргумента :
-
Математическая модель
формулы
если иначе
исходные данные
- вещественное число (real), значение аргумента.
промежуточный и конечный результат
промежуточного результата нет
конечный результат: y - вещественное число (real), значение функции.3. Построение алгоритма
4. Разработка программы
{Программа нахождения значения функции}
program znach_func; {название программы}
uses crt;{подключение текстового модуля}
var x:real;{исходные данные}
y:real;{результат}
begin{начало программы}
clrscr;{очистка окна вывода}
write('Введите значение: x='); {вывод диалога с пользователем}
readln(x); {ввод значения аргумента}
if x-1<0 then y:=x+4 {нахождение значения функции при х<1}
else y:=x-3;{нахождение значения функции при х>=1}
writeln;
writeln('Значение функции y = ',y:3:1,', при x = ',x:3:1);{вывод результата}
readln
end.{конец программы}
-
Тестирование, отладка программы и эксплуатация программы
Пример: найти наименьшее из трех чисел.
1 вариант решения:
2 вариант решения:
Алгоритмическая конструкция цикла
Циклический алгоритм - алгоритм, предусматривающий многократное
повторение одного и того же действия над новыми данными.
Цикл называется арифметическим, если число повторений цикла известно заранее или может быть вычислено.
Цикл, для которого нельзя указать число повторений, и проверка которого происходит по достижению нужного условия, называется итерационным.
Цикл называется сложным, если внутри его содержится один или несколько других циклов.
Цикл - управляющая структура, организующая многократное выполнение указанного действия.
Цикл "пока": С предусловием
Выполнение цикла "пока" начинается с проверки условия, поэтому
такую разновидность циклов называют циклы с предусловием. Переход к
выполнению действия осуществляется только в том случае, если
условие выполняется, в противном случае происходит выход из цикла.
Можно сказать что условие цикла "пока" - это условие входа в цикл.
В частном случае может оказаться что действие не выполнялось ни
разу. Условие цикла необходимо подобрать так, чтобы действия
выполняемые в цикле привели к нарушению его истинности, иначе
произойдет зацикливание.
Зацикливание - бесконечное повторение выполняемых действий.
Цикл "до": С постусловием
Исполнение цикла начинается с выполнения действия. Таким образом
тело цикла будет реализовано хотя бы один раз. После этого
происходит проверка условия. Поэтому цикл "до" называют циклом с
постусловием. Если условие не выполняется, то происходит возврат к
выполнению действий. Если условие истинно, то осуществляется выход
из цикла. Таким образом условие цикла "до" - это условие выхода.
Для предотвращения зацикливания необходимо предусмотреть действия,
приводящие к истинности условия.
Цикл с параметром, или цикл со счетчиком, или арифметический цикл - это цикл с заранее известным числом повторов.
В блоке модификации указывается закон изменения переменной параметра.
Xo - начальное значение параметра
h - шаг
n - последнее значение параметра
Для создания циклов с параметром необходимо использовать правила:
-
Параметр цикла, его начальное и конечное значения и шаг должны быть одного типа
-
Запрещено изменять в теле цикла значения начальное, текущее и конечное для параметра
-
Запрещено входить в цикл минуя блок модификации
-
Если начальное значение больше конечного, то шаг - число отрицательное
-
После выхода из цикла значение переменной параметра неопределенно и не может использоваться в дальнейших вычислениях
-
Из цикла можно выйти не закончив его, тогда переменная параметр сохраняет свое последнее значение
При составлении циклических алгоритмов и программ используются следующие блоки и синтаксические конструкции языка Паскаль, приведенные в таблице 3 и таблице 5.
Таблица 5Блок
Наименование
Программа
Цикл с параметром
For i=…to(downto) …do …
Цикл с предусловием
While … do …
Цикл с постусловием
Repeat …until …
Пример решения задачи
Циклический алгоритм
Задание. Найти сумму всех вводимых с клавиатуры чисел
1. Постановка задачи
Найти сумму (Sum) (K) чисел (Х) введенных с клавиатуры.
2. Математическая модель
формулы
для n чисел от 1 до K найти сумму Sum, числа X вводятся с клавиатуры.
исходные данные
- вещественное число (real)
k - количество вводимых чисел (integer)
промежуточные данные
n - параметр цикла (integer)
конечный результат
Sum - вещественное число (real), сумма чисел.3. Построение алгоритма
4. Разработка программы
{Программа нахождения суммы чисел вводимых с клавиатуры}
program summa; {название программы}
uses crt;{подключение текстового модуля}
var n,k:integer;x:real;{исходные данные}
sum:real;{результата}
begin{начало программы}
clrscr;{очистка окна вывода}
write('Введите количество чисел: k=');
readln(k);
for n:=1 to k do
begin
write('Введите ',n,' число: '); {вывод диалога с пользователем}
readln(x); {ввод исходных данных}
sum:=sum+x;{подсчет суммы}
end;
writeln;
writeln('Сумма ',k,' чисел равна ',sum:6:2);{вывод результата}
readln
end.{конец программы}
5. Тестирование, отладка программы и эксплуатация программы
История создания языка.
Первая версия языка Паскаль была разработана в
1968 году. Ее разработчиком является швейцарский ученый Никлаус
Вирт. Свое название язык получил в честь создателя первой
механической вычислительной машины француза Блеза Паскаля. На
основе языка Паскаль в 1985 г. фирма Borland выпустила версию Turbo
Pascal версии 3.0. С этого времени язык Паскаль используется во
всем мире в учебных заведениях в качестве первого изучаемого языка
программирования.
В пакете Turbo Pascal 4.0 были устранены ошибки и ограничения
компилятора предыдущей версии. Наиболее важным нововведением была
unit-концепция, позаимствованная из языка МОДУЛА-2. Это позволило
разрабатывать крупные программные продукты. В версии 5.0 появился
интегрированный отладчик. Был реализован аппарат перекрытий
overlays. В этой версии были исправлены и улучшены библиотеки
графических процедур, которым была обеспечена совместимость с
графическими адаптерами класса VGA. Появились новые возможности
справочной системы Help.
В версии 6.0 была реализована концепция объектно-ориентированного
программирования с полным набором прикладных задач для
пользователя. В оболочку был встроен интегрированный текстовый
редактор. В этой версии впервые использовалась мышь для управления
работой.
В 1992 г. появилась последняя на сегодняшний день версия языка
Turbo Pascal - 7.0. В ней сохранились все достоинства предыдущих
версий:
-
многооконный режим работы
-
возможность использования мыши
-
возможность использования Ассемблера
-
возможность создавать объектно-ориентированные программы
К улучшениям этой версии относятся:
-
возможность выделять определенным цветом различные элементы исходного текста
-
расширен язык программирования. Появился типизированный адресный оператор, открытые массивы и строки
-
улучшен компилятор
-
изменен интерфейс пользователя
</
12