Псевдокоды
ПСЕВДОКОДЫ
Один из методов представления алгоритмов является представление в псевдокодах. Данное представление – это частичный возврат к сценарию. Также как и в представлении в виде сценария запись алгоритма в псевдокодах разбивается на предложения, при этом каждое предложение описывает некоторый шаг алгоритма.
Для записи предложений используются:
- русский язык,
- формальные языки предметных областей, в которых решается исходная задача;
- ключевые слова псевдокодов.
Для реализации псевдокодов, в них резервируются следующие ключевые слова:
НАЧАЛО_цикла с предусловием ,
КОНЕЦ_цикла с предусловием,
НАЧАЛО_цикла с постусловием,
КОНЕЦ_цикла с постусловием ,
НАЧАЛО_цикла с параметром ,
КОНЕЦ_цикла с параметром .
Основное внимание при представлении алгоритма в псевдокодах уделяется структуре алгоритма. Особенность псевдокодов заключается в том, что каждое предложение начинается со звездочки или нескольких звездочек. В псевдокодах звездочка используется как индикатор начала строки. В псевдокодах вместо звездочек, в принципе, можно использовать любые другие символы (например: пробел, – как это делается в школьном алгоритмическом языке, но это менее наглядно). Число звездочек определяет уровень вложенности (о вложенности структур алгоритма читай далее) данного предложения в алгоритме, то есть одна звездочка – первый уровень вложенности, две звездочки – второй уровень вложенности и т.д. Исключением является только нулевой уровень, в котором звездочки отсутствуют. Звездочки используются по той простой причине, что данный символ, используемый в языках программирования как символ умножения, никогда не стоит в начале предложения, но в данном случае позволяют структурировать алгоритм, то есть подчеркнуть, выделить структуры алгоритма, уровень их вложенности.
Звездочки в псевдокодах позволяют решить (попутно) еще одну задачу. При кодировании алгоритма в конкретном языке программирования звездочки кодируются пробелами, тем самым структура алгоритма будет определять структуру блока операторов.
ПРАВИЛО ЗВЕЗДОЧЕК.
1)число звездочек в первом и последнем предложениях должно быть одинаково;
2)количество звездочек от одного предложения к другому не изменяется, если только в них не встречаются ключевые слова НАЧАЛО…, КОНЕЦ….
3)число звездочек в предложениях, следующих после предложения, словом НАЧАЛО … увеличивается на одну;
4)число звездочек в предложениях, имеющих слово КОНЕЦ…, уменьшается на одну по сравнению с предыдущим.
В качестве примера представим в псевдокодах алгоритмы решения задач, представленных в графическом виде.
ЗАДАЧА №1. Алгоритм задачи представлен в графическом виде:
Представить его в псевдокодах.
В псевдокодах данный алгоритм будет иметь вид:
* ВЫВОД(‘ВВЕДИТЕ ДЛИНЫ ТРЕХ СТОРОН ТРЕУГОЛЬНИКА’)
* ВЫВОД(‘ПЛОЩАДЬ ТРЕУГОЛЬНИКА =>’, S:5:2)
В <…>даны комментарии к шагам алгоритма.
ЗАДАЧА N2. Алгоритм решения задачи представлен в графическом виде:
Представить его в псевдокодах.
В псевдокодах данный алгоритм будет иметь вид:
* ВЫВОД(‘ВВЕДИТЕ ЗНАЧЕНИЕ ПЕРЕМЕННОЙ Х’)
Представить заданный алгоритм в псевдокодах.
В псевдокодах данный алгоритм может быть реализован в виде:
* НАЧАЛО цикла с предусловием, если I 10.05.2011
Источник
Описание алгоритмов с помощью псевдокода
Псевдокод (алгоритмический язык) — система обозначений и правил, предназначенная для единообразной и точной записи алгоритмов и исполнения их. Особенность псевдокода заключается в том, что описания на нем выполняются на родном языке — русском, английском, украинском, немецком и т.п.
Псевдокод занимает промежуточное место между естественным и формальным языками. С одной стороны, он близок к обычному естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой стороны, в псевдокоде используются некоторые формальные конструкции и математическая символика, что приближает запись алгоритма к общепринятой математической записи.
Отметим, что между понятиями «алгоритмический язык» (псевдокод) и «языки программирования» есть различие; прежде всего, под исполнителем в алгоритмическом языке может подразумеваться не только компьютер, но и устройство для работы «в обстановке». Программа, записанная на алгоритмическом языке, не обязательно предназначена компьютеру. Практическая же реализация алгоритмического языка — отдельный вопрос в каждом конкретном случае.
Достоинство записи алгоритмов и программ на алгоритмическом языке заключается в простоте их чтения и ввода с экрана ЭВМ, а также в простоте внесения изменений и исправлений с использованием даже самых простейших редакторов тестов. По этим причинам зарубежом схемы алгоритмов уже давно не используются ни для документирования, ни для обучения, а все современные языки построены на принципах структурного программирования.
В псевдокоде не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его разработки и дает возможность использовать широкий набор команд, рассчитанный на абстрактного исполнителя. В нем имеются некоторые конструкции, присущие формальным языкам, что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке.
Как и каждый язык, алгоритмический язык имеет свой словарь. Основу этого словаря составляют слова, употребляемые для записи команд, входящих в систему команд исполнителя того или иного алгоритма. Такие команды называют простыми командами. В алгоритмическом языке используют слова, смысл и способ употребления которых задан раз и навсегда. Эти слова называют служебными. Использование служебных слов делает запись алгоритма более наглядной, а форму представления различных алгоритмов — единообразной.
Следует отметить, что единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором служебных слов и основных (базовых) конструкций. Однако, существуют определенные правила, которых следует придерживаться при записи алгоритма на псевдокоде.
Алгоритм, записанный на алгоритмическом языке (псевдокоде), должен иметь название. Название желательно выбирать так, чтобы было ясно, решение какой задачи описывает данный алгоритм. Для выделения названия алгоритма перед ним записывают служебное слово алг (АЛГоритм). За названием алгоритма (обычно с новой строки) записывают его команды. Для указания начала и конца алгоритма его команды заключают в пару служебных слов нач (НАЧало) и кон (КОНец). Команды (операторы) записывают последовательно.
Последовательность записи алгоритма:
Алг название алгоритма
Нач
Серия команд алгоритма
Кон
При построении новых алгоритмов могут использоваться алгоритмы, составленные ранее. Алгоритмы, целиком используемые в составе других алгоритмов, называют вспомогательными алгоритмами. Вспомогательным может оказаться любой алгоритм из числа ранее составленных. Не исключается также, что вспомогательным в определенной ситуации может оказаться алгоритм, сам содержащий ссылку на вспомогательные алгоритмы.
Очень часто при составлении алгоритмов возникает необходимость использования в качестве вспомогательного одного и того же алгоритма, который к тому же может быть весьма сложным и громоздким. Было бы нерационально, начиная работу, каждый раз заново составлять и запоминать такой алгоритм для его последующего использования. Поэтому в практике широко используют, так называемые, встроенные (или стандартные) вспомогательные алгоритмы, т.е. такие алгоритмы, которые постоянно имеются в распоряжении исполнителя. Обращение к таким алгоритмам осуществляется так же, как и к «обычным» вспомогательным алгоритмам. У исполнителя-робота встроенным вспомогательным алгоритмом может быть перемещение в хранилище из любой точки помещения склада; у исполнителя-язык программирования Паскаль это, например, встроенный алгоритм «SIN» и т.д.
Простейшим видом машинного оператора является оператор присваивания, служит для вычисления выражений и присваивания их значений переменным. Общий вид: a := b, где знак «:=» означает команду заменить прежнее значение переменной, стоящей в левой части, на вычисленное значение выражения, стоящего в правой части. Здесь а и b — программные переменные — область машинной памяти, в которой хранятся их значения а и b. В отличии от обычных математических переменных программные переменные могут получать новые значения. В частности, присваивание b := b + 5 записывает в программную переменную b новое значение b’, равное величине b + 5, где b — прежнее значение переменной b.
Рассмотрим примеры присваивания и описания результатов его выполнения.
Запись присваиваний читается:
а := 0 — «переменной а присвоить значение 0»;
b := b + 10 — «переменной b присвоить значение b + 10».
Записи в колонке результатов читаются так:
а = 0 — «значение а равно 0»;
b‘ = b + 1 — «значение b’ равно b + 1».
Для ввода и вывода данных используют команды:
ввод или считать (имена переменных);
вывод или написать (имена переменных, выражения, “тексты”).
Алгоритм 2
Алг Сравнение x и y
Нач
Вывод(“Введите x”)
Ввод (x)
Вывод(“Введите y”)
Ввод (y)
вывод (“X= ”, x=y, “ Y= ”,x, y+x)
Кон
Рассмотрим работу данного алгоритма, в качестве исполнителя выберем компьютер. После выполнения первой команды вывод(“Введите x”) на экране появится сообщение:
Пусть пользователь введет значение равное 10. Тогда следующая команда ввод (x) присвоит введенное значение переменной x, т.е. x=10. Далее на экране появится сообщение:
Пусть пользователь введет значение равное 7. Аналогично команда ввод (y) присвоит введенное значение переменной y, т.е. y=7. В результате работы алгоритма на экране появится следующее сообщение:
Т.е. в команде вывод() все, что размещено в кавычках рассматривается как текст и выводится на экран без изменений, вместо переменных на экран выводятся их значения и, если в команде присутствуют арифметические или логические операции, то сначала они выполняются, и полученный результат тоже выводится на экран.
Рассмотрим, как будет выглядеть алгоритм 1 нахождения значения функции z(x), в точке x=10 записанный на псевдокоде.
Алгоритм 3
алг Расчет значения функции z(x) в точке x=10
нач
вывод (“Введите значение переменной x=10”)
ввод (x)
z:=x*x-2*x+4
z:=z/(x-5)
a:=x*x*x
z:=z+a
вывод (“Значение функцииz(”,x,”)= ”,z)
кон
Результатом работы алгоритма, если пользователь действительно введет значение x=10, будет следующее сообщение на экране:
Значение функции z(10)= 1016,8
Вопросы и задания для самоподготовки
1. Дайте определение алгоритма.
2. Охарактеризуйте основные свойства алгоритма.
3. Какие виды алгоритмов вам известны? Приведите примеры.
4. Какие существуют способы описания алгоритмов? Приведите примеры.
5. Перечислите и охарактеризуйте основные функциональные символы, используемые при составлении схем алгоритмов.
6. Правила составления схем алгоритмов.
7. Дайте определение псевдокода.
8. Для чего служит оператор присваивания?
9. Какие команды используют в псевдокоде для ввода/вывода данных? Приведите примеры.
10. В результате работы фрагмента алгоритма
переменная Y приняла значение равное 5. Укажите число — начальное значение переменной X данного алгоритма.
11. Какое значение примет переменная A по окончании работы алгоритма, если начальным значением A ввести: 10; -7; 0. Напишите сообщение, которое будет выведено на экране в конце работы алгоритма.
агоритм Вычисление значения А
вывод (“Введите значение А”)
12. Чему будет равно значение переменной b после выполнения заданного фрагмента алгоритма? Чему будет равно значение переменной b, если условие выполнения цикла изменить на b>a?
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим.
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ — конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой.
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).
Источник
Псевдокоды это способ описания алгоритма с помощью
Различают следующие виды алгоритмов :
линейный – список команд (указаний), выполняемых последовательно друг за другом;
разветвляющийся – алгоритм, содержащий хотя бы одну проверку условия, в результате которой обеспечивается переход на один из возможных вариантов решения;
циклический – алгоритм, предусматривающий многократное повторение одной и той же последовательности действий. Количество повторений обусловливается исходными данными или условием задачи.
Любая алгоритмическая конструкция может содержать в себе другую конструкцию того же или иного вида, т. е. алгоритмические конструкции могут быть вложенными. Рассмотрим следующие способы описания алгоритма: словесное описание, псевдокод, блок-схема, программа.
Словесное описание представляет структуру алгоритма на естественном языке. Например, любой прибор бытовой техники (утюг,электропила, дрель и т.п.) имеет инструкцию по эксплуатации, т.е.словесное описания алгоритма, в соответствии которому данный прибор должен использоваться. Никаких правил составления словесного описания не существует. Запись алгоритма осуществляется в произвольной форме на естественном, например, русском языке. Этот способ описания не имеет широкого распространения, так как строго не формализуем (под «формальным» понимается то, что описание абсолютно полное и учитывает все возможные ситуации, которые могут возникнуть в ходе решения); допускает неоднозначность толкования при описании некоторых действий; страдает многословностью.
1. определить температуру воздуха
2. если температура ниже 0, то надеть шубу, иначе надеть куртку
Псевдокод — описание структуры алгоритма на естественном, частично формализованном языке, позволяющее выявить основныеэтапы решения задачи, перед точной его записью на языке программирования. В псевдокоде используются некоторые формальные конструкции и общепринятая математическая символика. Строгих синтаксических правил для записи псевдокода не существует. Это облегчает запись алгоритма при проектировании и позволяет описать алгоритм, используя любой набор команд. Однако в псевдокоде обычно используются некоторые конструкции, присущие формальным языкам, что облегчает переход от псевдокода к записи алгоритма на языке программирования. Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором используемых слов и конструкций.
Блок-схема — описание структуры алгоритма с помощью геометрических фигур с линиями-связями, показывающими порядок выполнения отдельных инструкций. Этот способ имеет ряд преимуществ. Благодаря наглядности, он обеспечивает «читаемость»алгоритма и явно отображает порядок выполнения отдельных команд. В блок-схеме каждой формальной конструкции соответствует определенная геометрическая фигура или связанная линиями совокупность фигур.
Описания алгоритма в словесной форме, на псевдокоде или в виде блок-схемы допускают некоторый произвол при изображении команд. Вместе с тем они настолько достаточны, что позволяет человеку понять суть дела и исполнить алгоритм. На практике исполнителями алгоритмов выступают компьютеры. Поэтому алгоритм, предназначенный для исполнения на компьютере, должен быть записан на «понятном» ему языке, такой формализованный язык называют языком программирования .
Источник