
- •Псевдокод
- •Один из примеров псевдокода - школьный алгоритмический язык.
- •Блок-схема
- •Запись на псевдокоде
- •Вопросы для самоконтроля
- •Формулы бэкуса-наура
- •Перминов о.Н. Программирование на языке Паскаль
- •Синтаксические диаграммы
- •Алгоритмы сортировки
- •Сортировка с помощью прямого включения
- •Сортировка с помощью прямого выбора (линейная)
- •Сортировка с помощью прямого обмена (пузырьковая)
- •Быстрая сортировка (ч. Хоара, сортировка с помощью разделения)
- •Рекурсия
- •Параметры-процедуры и параметры-функции
- •Символьные типы
- •Строковые типы
- •Строковые типы в Borland Pascal
- •Строковые типы в Delphi
- •Множества
- •Тип "запись" (record)
- •Вариантная часть записи
- •Процедуры и функции для работы с файлами
- •Работа с текстовыми файлами*
- •Работа с типизированными и нетипизированными файлами
- •Типизированные файлы
- •Последовательный и прямой доступ к файлам
- •Нетипизированные (бестиповые) файлы
- •Класс tfilestream (факультатив, для зачета 1 семестра не требуется)
- •Работа с данными файла
- •Закрытие файла
ТЕМА. СПОСОБЫ ОПИСАНИЯ АЛГОРИТМОВ
Псевдокод
Псевдокод - язык описания алгоритмов, включающий в себя как элементы языка программирования (набор служебных слов), так и фразы естественного языка, математические обозначения и др.
Один из примеров псевдокода - школьный алгоритмический язык.
См. также
http://book.kbsu.ru/
А.Г. Кушниренко и др. "Основы информатики и вычислительной техники" – М: "Просвещение", 1991
СЛУЖЕБНЫЕ СЛОВА ШКОЛЬНОГО АЛГОРИТМИЧЕСКОГО ЯЗЫКА
алг (алгоритм) |
сим (символьный) |
дано |
для |
да |
арг (аргумент) |
лит (литерный) |
надо |
от |
нет |
рез (результат) |
лог (логический) |
если |
до |
при |
нач (начало) |
таб (таблица) |
то |
знач |
выбор |
кон (конец) |
нц (начало цикла) |
иначе |
и |
ввод |
цел (целый) |
кц (конец цикла) |
все |
или |
вывод |
вещ (вещественный) |
длин (длина) |
пока |
не |
утв |
Знак "|" используется для выделения комментариев.
ОБЩИЙ ВИД АЛГОРИТМА:
алг название алгоритма (аргументы и результаты)
дано условия применимости алгоритма
надо цель выполнения алгоритма
нач описание промежуточных величин
| последовательность команд (тело алгоритма)
кон
ПРИМЕР. Вычисление Y=XN
алг Функция XN (арг вещ x, арг цел n, рез вещ у)
дано | n >= 0
надо | у = x*x*...*x
нач цел i
ввод x, n
y:=1
нц для i от 1 до n
y:=y*x
кц
вывод "y = ", y
кон
ПРИМЕРЫ ОПИСАНИЯ АЛГОРИТМИЧЕСКИХ СТРУКТУР
ПСЕВДОКОД |
БЛОК-СХЕМА |
|
ПСЕВДОКОД |
БЛОК-СХЕМА |
Действие1 Действие2 … Действиеn |
|
|
выбор при условие1: действия1 при условие2: действия2 ... при условиеN: действияN иначе действияN+1 все |
|
если условие то действия1 иначе действия2 все |
|
|
нц пока условие действия кц |
|
eсли условие то действия все |
|
|
нц для i от i1 до i2 действия кц |
|
Действияi – последовательность действий (шагов алгоритма, операторов, для циклов – тело цикла).
ПРИМЕР. ПОИСК КОРНЕЙ КВАДРАТНОГО УРАВНЕНИЯ
Блок-схема
Запись на псевдокоде
алг Корни квадратного уравнения (арг вещ a, b, c, рез вещ x1, x2)
дано | a, b, c – любые вещественные числа
надо | найти и вывести корни либо соответствующие сообщения
нач вещ d, ds
ввод a, b, c
если a=0
то
если b=0
то
если c=0
то
вывод «Множество решений»
иначе
вывод «Нет решений»
все
иначе
x1:= -с/b
вывод x1
все
иначе
d:=b2-4ac
если d<0
то
вывод «Действительных корней нет»
иначе
если d=0
то
x1:= -b/(2a)
вывод x1
иначе
ds:=d
x1:=(-b+ds)/(2a)
x2:=(-b-ds)/(2a)
вывод x1, x2
все
все
кон