Лекция: ВОПРОС 47. Способы описания алгоритмов. Типовые алгоритмические конструкции. Примеры.

Алгоритм — точное предписание исполнителю совеpшить определенную последовательность действий для достижения поставленной цели за конечное число шагов.

Алгоритмы можно записывать не только при помощи слов. В настоящее время различают несколько способов описания алгоритмов:


1. Словесный, т.е. записи на естественном языке, описание словами последовательности выполнения алгоритма.

Например: Записать алгоритм нахождения наибольшего общего делителя (НОД) двух натуральных чисел. Алгоритм может быть следующим: задать два числа; если числа равны, то взять любое из них в качестве ответа и остановиться, в противном случае продолжить выполнение алгоритма; определить большее из чисел; заменить большее из чисел разностью большего и меньшего из чисел; повторить алгоритм с шага


2. Формульно-словесный, аналогично пункту 1, плюс параллельная демонстрация используемых формул.

В качестве примера можно привести ведение лекций преподавателем (словесный способ) с одновременной записью формул на доске (формульный).


3. Графический, т.е. с помощью блок-схем.

Графический способ представления алгоритмов является более компактным и наглядным по сравнению со словесным. При графическом исполнении алгоритм изображается в виде последовательности связанных между собой блочных символов, каждый из которых соответствует выполнению одного из действий. Такое графическое представление называется схемой алгоритма или блок-схемой. В блок-схеме каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий, управлению повторением действий, окончанию обработки и т.п.) соответствует геометрическая фигура, представленная в виде блочного символа. Блочные символы соединяются линиями переходов, определяющими очередность выполнения действий. Символы, наиболее часто употребляемые в блок-схемах.


4. Программный, т.е. тексты на языках программирования.

cls  
input a, b
c = a + b
print c  

Рассмотрим примеры разработки программ.

Задача 1

Дан кирпич прямоугольной формы со сторонами A, B, C и прямоугольное отверстие в стене со сторонами X и Y. Определить, пройдет ли кирпич в отверстие, если допускается располагать его грани только параллельно сторонам отверстия.

Решение

Основная идея решения заключается в упорядочивании сторон кирпича и отверстия по возрастанию. Если меньшая сторона кирпича меньше меньшей стороны отверстия, а вторая по размеру сторона кирпича меньше большей стороны отверстия, то кирпич пройдет, иначе — нет. Таким образом, требуется решить подзадачи упорядочивания сторон кирпича и сторон отверстия. Поскольку цель задачи — дать ответ «пройдет» или «не пройдет», будем выполнять упорядочивание, не вводя новых переменных. Для сторон отверстия задача решается просто: если X>Y, то обменять значения X и Y. Упорядочить стороны кирпича можно за три обмена: A и B, B и C и вновь A и B. Блок-схема алгоритма решения задачи показана на рис. 1.

Код программы:

Option Explicit
Private Sub Main()
 Dim A As Single, B As Single
 Dim C As Single, X As Single
 Dim Y As Single, R As Single
 A = CSng(InputBox(«Введите A»))
 B = CSng(InputBox(«Введите B»))
 C = CSng(InputBox(«Введите C»))
 X = CSng(InputBox(«Введите X»))
 Y = CSng(InputBox(«Введите Y»))
 If A>B Then R=A: A=B: B=R
 If B>C Then R=B: B=C: C=R
 If A>B Then R=A: A=B: B=R
 If X>Y Then R=X: X=Y: Y=R
 If A<X AND B<Y then
 MsgBox(«Пройдет»)
 Else
 MsgBox(«Не пройдет»)
 End If
End Sub

В коде программы следует обратить внимание на форму записи команд ветвления, используемых для обмена величин: каждая из них занимает одну строку. При этом команды присваивания после служебного слова Then разделены двоеточием. Для такой синтаксической формы не следует использовать команду End If.

Под алгоритмом понимают постоянное и точное предписание (указание) исполнителю совершить определенную последовательность действий, направленных на достижение указанной цели или решение поставленной задачи.

Блок – схемы. Условные обозначения

Начало — конец Процесс Ввод-вывод Типовой
процесс Решение (условие)

 

Базовые алгоритмические структуры
Следование Ветвление Повторение (цикл)

еще рефераты
Еще работы по информатике