ЭТАПЫ РЕШЕНИЯ ЗАДАЧ НА ЭВМ. ЯЗЫК ПРОГРАММИРОВАНИЯ PASCAL.
ТЕМА Алгоритм и его свойства. Исполнитель алгоритмов. Вспомогательные алгоритмы. Циклические алгоритмы. Ветвление и последовательная детализация.
ПЛАН:1. Организационный момент
2. Лекция по теме
3. Решение задач. Составление алгоритмов и блок – схем
.
Д.З. -Реферат на тему «История развития ЯП».
Понятие алгоритма так же фундаментально для информатики, как и понятие информация. Поэтому в нём очень важно разобраться. Само слово алгоритм происходит от имени выдающегося математика средневековья Мухаммеда аль – Хорезми. Им были предложены приёмы выполнения арифметических вычислений. Помимо алгоритмов арифметических вычислений вы знаете множество других алгоритмов.
? Самостоятельно приводят примеры.
ПР. Например, кулинарный рецепт - алгоритм работы повара с целью приготовления пищи.
Инструкция по использованию кухонного комбайна. Алгоритм заваривания чайника. Алгоритм открывания двери.
Жизненный опыт человека растёт с увеличением числа освоенных им алгоритмов.
ПР. алг Заварить чай
нач
налить в чайник воды
поставить на газ кипятится
насыпать в заварник заварки
залить кипятком
накрыть полотенцем
кон
В этом примере используется символика учебного Алгоритмического языка (АЯ).
? Как вы думаете кто в этом примере является исполнителем алгоритма. (человек).
Из примера видно, что в начале находится заголовок алгоритма. Начинается алгоритм со служебного слова алг (заголовок алгоритма)
нач (начало алгоритма)
(тело алгоритма)
кон (конец алгоритма).
Тело алгоритма представляет собой последовательность команд для исполнителя.
Опр. Исполнитель – это объект, управляющий работой какого – либо другого объекта.
Опр. Алгоритм - это последовательность команд по управлению объектом, приводящая к заранее поставленной цели.
Опр. У каждого исполнителя имеется свой перечень команд, которые он может исполнить. Такой перечень команд называется системой команд исполнителя алгоритма (СКИ).
Свойства алгоритма.
Точность. (Каждая команда алгоритма должна определять однозначное действие исполнителя).
Понятность. (Алгоритм, составленный для конкретного исполнителя, должен включать только те команды, которые входят в его систему команд).
Конечность. ( Исполнение алгоритма должно завершаться за конечное число шагов).
ПР. Решить задачу. Найти гипотенузу С прямоугольного треугольника, если катеты равны А=3, В=4.
Алгоритм решения этой задачи:
алг Гипотенуза
нач
Возвести А в квадрат.
Возвести В в квадрат.
Сложить результаты действий 1 и 2.
Вычислить квадратный корень из результата 3-го действия и принять его за значение С.
кон.
Опр. Алгоритм – это понятное и точное предписание исполнителю выполнить конечную последовательность команд, приводящую от исходных данных к искомому результату.
Задача: Составьте алгоритм следующей задачи: перемножте две дроби ½ и ¾ .
алг Дробь
нач
привести дробь к одному знаменателю
перемножить числители
знаменатель оставить без изменений.
кон.
Существует множество задач в которых одни и теже действия повторяется несколько раз. Эти действия можно записать отдельным алгоритмом. Такой алгоритм называют вспомогательным.
Опр. Алгоритм, по которому решается некоторая подзадача из основной задачи и который, как правило, выполняется многократно, называется вспомогательным алгоритмом.
ПР. Алгоритм написания числа 555. Составляем алгоритм написания числа 5 и повторяем его 3 раза.
Задача: Составьте алгоритм возведения числа 2 в 6 степень.
алг Степень
нач
Сделай умножение
кон
Процедура умножение
нач
2+1
результат полученный в 1-ом действии умножить на себя
кон
Также встречаются задачи, в которых для того, чтобы прийти к нужному результату необходимо проверить какое-то условие и выполнить ряд команд.
ПР. Алгоритм вычисления факториала.
алг Факториал
цел F, N, R
нач
ввод N
F:=1
R:=1
пока RN, повторять
нц
F:=F*R
R:=R+1
кц
вывод F
кон
Такой алгоритм называется циклическим.
ОПР. Алгоритм, в котором исполнитель многократно выполняет указанную последовательность команд называется циклическим.
Таким образом, при составлении алгоритмов используются три базовые алгоритмические структуры: следование, ветвление, цикл.
Начиная с 50-х годов, т. е. ещё с эпохи ЭВМ первого поколения, программисты стали использовать графические схемы, изображающие алгоритмы, которые получили название блок-схем.
Блок схема состоит из фигур (блоков), обозначающих отдельные действия исполнителя, и стрелок, соединяющих эти блоки и указывающих на последовательность их выполнения. Внутри каждого блока записывается выполняемое действие. Сама форма блока подсказывает характер операции, которую он обозначает. Для придания наглядности все элементы блок-схем стандартизированы.




Начало или конец алгоритма
Простая команда
Вспомогательный алгоритм

Проверка условия
Ввод и вывод
СЛЕДОВАНИЕ
ОПР. Следование - однозначная линейная последовательность действ


ПР. Нахождение суммы трёх чисел

ВЕТВЛЕНИЕ
ОПР. Ветвление – разделение алгоритма на два пути (две ветви) по некоторому условию с дальнейшим выходом на общее продолжение.
Полное ветвление Неполное иветвление

да нет да нет
Если условие Если Условие
То То
Действие 1 Действие
Иначе
Действие2
П
Р. Нахождение наибольшего из трёх.







Max:=c










Max:=a
Max:=b






ОПР. Цикл – повторение некоторой группы действий (серии) по условию.
Цикл «Пока» (с предусловием)
нц
пока условие
нет Тело цикла
кн
да
Цикл «До» (с постусловием)
нц
делать
Тело цикла
до условие
кц
нет да
П
I:=1; S:=0

Р. Нахождение суммы 100 чисел.

нет
да

нет

да


Цикл «Для»
нц
для i от i1 до i2
Тело цикла
нет кц
да
ПР. Сумма первых N натуральных чисел.




н
S:=0

ет


д
а
S:=S+I







Выбор (неполная форма)
да выбор
при усл.1 : действие 1
при усл.2 : действие 2
нет ---------------------------
при усл.N : действие N
да кон
нет
да
нет
В
Действие 1
Действие 2

ыбор (полная форма)
выбор
да при усл.1 : действие 1
при усл.2 : действие 2
---------------------------
нет при усл.N : действие N
иначе
да действие N+1
кон
нет

да
нет
ЗАДАНИЯ: 1. Алгоритм деления дроби.
Алгоритм сложения двух простых дробей.
Алгоритм вычисления у по формуле: у = ( 1 – х2 + 5х4 )2.
Д.З. 1. Алгоритм вычисления х по формуле: х = ( у4 – 12 + 4у5 )3.
Самостоятельно придумать три алгоритма и построить для них блок – схемы.
ТЕМА 3.2. СТРУКТУРНОЕ ПРОГРАММИРОВНИЕ. ЯЗЫК ПРОГРАММИРОВАНИЯ TURBO RASCAL.
Середина 50-х годов характеризуется стремительным прогрессом в области программирования . Быстро расло количество языков программирования. В начале 70 – х годов швейцарский учёный Вирт Никлаус разработал язык программирования Паскаль. Первоначально он разрабатывался как учебный и сейчас он является одним из основных языков программирования во многих учебных заведениях: школах, училищах и т. д. Французский учёный Филип Кан разработал систему Турбо Паскаль. Суть его идеи состоялап в объединении последовательных этапов обработки программы, отладки и обработки и диагностики ошибок – в едином интерфейсе.
ОПР. Языки программирования – это формальные языки специально созданные для общения человека с компьютером. Каждый язык программирования, ровно как естественный язык(русский, английский), имеет алфавит, словарный запас, свои грамматику и синтаксис, а также семантику.
ОПР. Алфавит – фиксированный для данного языка набор основных символов, допускаемых для составления текста программы на этом языке.
ОПР. Синтаксис – система правил, определяющих допустимые конструкции языка программирования из букв алфавита.
ОПР. Семантика – система правил однозначного толкования отдельных языковых конструкций, позволяющих воспроизвести процесс обработки данных.
Назначение программирования – разработка программ управления компьютером с целью решения различных информационных задач.
Таким образом для составления программ существует много разных языков программирования, но мы с вами будем изучать язык программирования Турбо Паскаль.
ОПР. Язык программирования – это фиксированная система обозначений для описания алгоритмов и структур данных.
Популярными языками программирования являются: Бейсик, СИ, Фортран. Для создания и исполнения на компьютере программ, написанной на языке программирования, используются системы программирования.
ОПР. Система программирования – это программное обеспечение компьютера, предназначенное для разработки, отладки и использования программ, записанных на определённом языке программирования.
Существуют системы программирования на языке Паскаль, Бейсик и др.
ОПР. Язык программирования высокого уровня – это язык программирования, имитирующий естественные языки, обладающий укрупнёнными командами, ориентированные на решение прикладных содержательных задач.
Языки программирования высокого уровня обладают следующими достоинствами:
алфавит языка значительно шире машинного
команды языка не зависят от набора машинных команд
конструкции команд (операторов) отражают содержательные виды обработки данных и задаются в удобном для человека виде
используется аппарат переменных и действия с ними
поддерживается широкий набор типов данных.
Таким образом языки программирования высокого уровня являются машинно - независимыми.
Вам уже известно, что всякий алгоритм составляется для конкретного исполнителя. Теперь в качестве исполнителя мы будем рассматривать компьютер, оснащённый системой программирования на определённом языке.
Компьютер - исполнитель работает с определёнными данными по определённой системе команд. Компьютер работает с информацией, хранящейся в его памяти. Отдельный информационный объект (число, символ, строка, таблица и пр.) называется величиной.
Существует три основных типа величин, с которыми работает компьютер: числовой, символьный, логический. Все числовые величины также как и в математике делятся на переменные и константы.
Константы записываются числами. Значение константы хранится в памяти и остаётся неизменной в течение всей работы программы.
Переменные в программировании обозначаются символическими именами. Эти имена называются идентификаторами.
ПР. Формула a2+2ab-b2, a, b – переменные, 2 – константа.
Система команд для исполнителя - алгоритма может быть следующей:
Команда присваивания записывается так:
:= . Значок “:=” читается как “присвоить”.
ПР. Z := X + Y
Команда ввода:
Ввод
Команда вывода:
Вывод
Описание переменных имеет вид:
После того как построен алгоритм решения задачи составляется программа на определённом языке программирования.
ОПР. Паскаль – это универсалдный язык программирования позволяющий решать самые разнообразные задачи обработки информации.
ОПР. Команду алгоритма, записанную на языке программирования, принято называть оператором.
Программа на Паскале близка по своему виду к описанию алгоритма на АЯ, т. е. состоит из заголовка, описаний и операторов.
Заголовок программы начинается со слова Program, за которым следует произвольное имя.
Program имя программы
Раздел описания переменных начинается со слова Var, за которым идёт список имён переменных через запятую. Тип указываеся после двоеточия.
Var : ;
Раздел операторов – самая главная часть программы. Начало этого раздела начинается со слова Begin, а конец со слова End. В самом конце программы ставится точка.
Begin
End.
Ввод исходных данных с клавиатуры происходит по оператору read (читать) и readln (читать строку).
Read ()
Readln ()
Вывод результатов происходит по оператору write (писать ) и writeln ( писать строку )
Write ()
Writeln ()
Результаты выводятся на экран в порядке их перечисления. Разница в выполнении операторов Write (Read) и Writeln (Readln) состоит в том, что после выполнения оператора Writeln (Readln) курсор перемещается в начало новой строки, а по оператору Write (Read)этого не происходит.
Оператор присваивания на Паскале имеет след. вид:
:=
Точка с запятой ставится в конце заголовка программы, в конце раздела описания переменных, является разделителем операторов. Перед словом END запятая не ставится.
В программу на Паскале можно вставить коментарии – это пояснения к программе, которое записывается в фигурных скобках.
Структура программы в общем виде.
Program имя программы;
Var : ;
Begin
End.
Основные типы данных
INTEGER – целые числа
REAL – действительные числа
CHAR – символы
STRING - строки
BOOLEAN – логический
Математические функции.
+ - сложение
- - вычитание
* - умножение
/ - деление
ABS – абсолютное значение аргумента (модуль)
SQR – возведение в квадрат
SQRT – квадратный корень из аргумента
SIN - синус
COS - косинус
ARCTAN – арктангенс
EXP – экспонента аргумента
LN – натуральный логарифм
INT – целая часть аргумента
ROUND – округление до ближайшего целого.
ПР. Переведём пример алгоритма деления дроби на язык программирования Паскаль.
Program деление
Var a, b, c, d, m, n: integer;
Begin
Readln (a, b, c, d, ); {Ввод}
m:=a*d; {Числитель}
n:= b*c; {Знаменатель}
write (m, n) {Вывод}
End.
Задание и Д.З.: Записать математические выражения на ЯП Паскаль.