Нач линия (150,50)-(100,100) линия (150,50)-(200,100) линия (100,100)-(200,100)

ЭВМ

Программа

Алгоритмы

Основы структурного программирования

Els

Кон

Нач

День рождения

Новый год

3. День знаний выбор=? <п> <результат >


<результат >:

1 января
1 декабря
1 сентября

Алгоритм и программа выбора по меню, соответствующие этому сценарию:


Алгоритм

алг «выбор по меню»

вывод («Меню») вывод («I. Новый год») вывод («2. День рождения») вывод («З. День знаний») print запрос («выбор=», п) если п = 1 то

вывод («1 января») если п = 2 то

вывод («1 декабря») если п = 3 то

вывод («1 сентября»)


Программа

' выбор по меню

print «Меню:»

print («1. Новый год»)

print («1. День рождения»)

(«3. День знаний»)

input «выбор=», п

if n = I then print «1 января»

if n = 2 then print «1 декабря»

if n = 3 then print «1 сентября» end


Правильность диалоговых алгоритмов и программ можно оценить сопоставлением их со сценарием диалога. Любое отклонение результатов выполнения алгоритмов и программ от сцена­рия диалога - это ошибка. Диалоговый алгоритм - правильный, если результаты их выполнения строго соответствуют сценарию.

Сравнение текста программы с описанием алгоритма, а затем алгоритма со сценарием диалога подтверждает полное соответствие программы заданному сценарию «выбор по меню». Таким образом, правильность программ может проверяться через правильность реализованных в них алгоритмов.

Алгоритмизация - это составление алгоритмов для последующей реализации в виде про­грамм для ЭВМ. Знание и использование систематических методов превращают алгоритмизацию -в строгую дисциплину, позволяющую составлять программы на ЭВМ без ошибок.


Порядок составления программ: задача —i

"U


"U




На практике широко используются два подхода к алгоритмизации:

1) традиционный подход (с использованием блок-схем);

2) структурный подход (с использованием структурной записи);



Традиционный подход к составлению алгоритмов с применением блок-схем грешит большим числом ошибок в программах из-за их громоздкости и запутанности. Из-за этого тради-ционный подход к составлению программ чреват большим числом ошибок в создаваемых про-граммах.

Структурный подход к программированию заключается в обязательном предварительном составлении структурированных алгоритмов с записью их на псевдокоде. Простота чтения, пони-мания и исправления структурированных описаний позволяет существенно уменьшить количество ошибок в алгоритмах и программах и сократить время их отладки на ЭВМ.

При структурном подходе к составлению алгоритмов и программ используются три основ-ных правила композиции:

1) альтернативный выбор;

2) циклический повтор;

3) вспомогательные алгоритмы (подпрограммы). Структурированными считаются алгоритмы и программы составленными только с ис-

пользованием указанных трех правил структурной композиции. Неструктурированными считают-ся алгоритмы и программы, в которых используются операторы goto... или отсутствует ступенча-тая запись циклов и альтернатив.

Основные правила структурной композиции алгоритмов с примерами записи их на языке структурированного Бейсика:

1. Альтернативный выбор:

Алгоритм Запись
если х > 0 то if х > 0 then
у:= х у = х
иначе else
у:= -х у = -х
кесли end if

2. Циклический повтор:

АлгоритмЗапись

пока х > 1 цикл do while х > 1

х: = х/2 х = х/2

кцикл loop

3. Вспомогательные алгоритмы (подпрограммы).

Алгоритм Подпрограмма
алг «у = \х\» mod: 'у = |х|
нач '
если х > 0 то if х > 0 then
у:= х у = х
иначе else
у:= -х у = -х
все end if
кон return
Обращение к алгоритму Обращение к подпрограмме

«у = \х\» gosub mod

В качестве иллюстрации приведем пример структурированного алгоритма «Галерея карти-нок» и соответствующей структурированной программы:


Сценарий «Галерея картинок»

Список картинок:

1. треугольник

2. прямоугольник

3. кольцо номер =? «N»




В соответствии с этими четырьмя картинками построим три вспомогательных алгоритма рисования отдельных картинок из «Галереи» и общий алгоритм выбора картинок в соответствии с приведенным выше сценарием:


алг «Галерея картинок» нач

вывод («Список картинок:») вывод («1. треугольник») вывод («2. прямоугольник») вывод («3. кольцо») запрос(«номер =», n) графический_экран если n = 1 то

рисунок_треугольника инес n = 2 то

рисунок_прямоугольника инес n = 3 то

рисунок_кольца иначе

вывод («нет такого рисунка») все кон


алг «рисунок_треугольника»


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: