Основные алгоритмические конструкции доклад

Обновлено: 04.05.2024

Для создания любых программ необходимы основные алгоритмические конструкции. Следование является наиболее простым вариантом решения задач. Его можно использовать, например, для работы с однотипными примерами. Существуют и другие типы: ветвление и цикл. О них будет рассказано в данной статье. Но сперва нужно понять, что же собой представляет алгоритм в целом.

Алгоритм

Алгоритм – процесс, который означает изменение исходных данных, происходящее в виде дискретных шагов. С этим понятием каждый человек сталкивается в жизни, кем бы он ни был. Алгоритмами вполне можно назвать приготовление чая или пищи, умножение или сложение, решение уравнений и т. д. Вся бытовая техника, чей процесс работы автоматизирован, функционирует за счет четких шагов, прописанных в памяти процессора. Такие алгоритмы называются бытовыми. Есть и другие типы. Рассмотрим их.

Виды алгоритмов

Основные алгоритмические конструкции разбиваются на несколько типов, о которых и будет идти речь в данном подпункте. Какие они бывают?

  1. Информационные. Такие алгоритмы работают с большим количеством данных, но сам объем процесса их обработки маленький по длине и несложный.
  2. Управляющие. Работа таких алгоритмов связана с информацией, которая предоставляется от того или иного источника. После ее получения отправляются специальные сигналы, гарантирующие работу устройств.
  3. Вычислительные. В отличие от информационных алгоритмов, описываемые работают с маленькими объемами данных, но производят большой процесс работы.

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

Свойства алгоритмов

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

Какие же свойства должны иметь основные алгоритмические конструкции для максимально точной работы?

  1. Понятность. Каждая команда должна быть максимально понятна выполняемому объекту. Вроде бы ничего легче, чем, например, нарисовать точку в центре, нет, но пока не будет прописана команда, которая позволит выполнить действие, сделать это не удастся.
  2. Результативность. Что подразумевает данное свойство? Обязательное получение результата. Алгоритм не может не привести к какому-то ответу. Из-за ошибки можно получить не тот результат, который был желаемым, но все же он будет. Более того, ответ должен быть получен через определенное число шагов.
  3. Массовость. Любой алгоритм должен быть применимым к какому-то классу задач. Между собой они могут различаться исходными данными.
  4. Определенность. Каждое действие должно иметь лишь одно значение и не давать возможности для производной расшифровки. В идеале, сколько бы программа ни запускалась, результат должен быть одним и тем же всегда.
  5. Дискретность. Алгоритм – последовательное выполнение шагов. Каждый шаг является командой, пропускать или добавлять новые нельзя.
  6. Корректность. Любой алгоритм, применимый к какому-нибудь роду задач, должен быть правильным для всех. В программировании часто появляются проблемы не в написании шагов, которое зачастую не требует много времени, а в выполнении их для различного рода вопросов. Поэтому важным этапом будет отладка алгоритма. Могут в этом помочь и основные алгоритмические конструкции, повторение которых позволит добиться лучших результатов.

Описание алгоритмов

Если говорить о способах записи алгоритмов, то следует выделить следующие:

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

Следует пояснить последний пункт. Что собой представляет блок-схема? Это линейный или нелинейный алгоритм, шаги которого записаны с помощью специальных блоков. Они имеют свою конфигурацию, назначение и функцию. В случае такого описания, алгоритм записывается блок-схемами, которые связаны между собой линиями. В них необходимо дополнительно записать то или иное действие (шаг).

основные алгоритмические конструкции

Алгоритмические конструкции

Некоторые утверждают, что алгоритмы имеют не 3 вида, а 4. Основные алгоритмические конструкции: линейные, разветвляющиеся, циклические. С чем связано такое заблуждение, непонятно. Однако для простого решения сложных проблем ЭВМ использует алгоритмы этих трех достаточно больших групп. Рассмотрим их.

    Линейный. Такой вычислительный процесс получил данное название за счет того, что все действия выполняются в линейной последовательности, при этом каждый шаг выполняется не более одного раза. Если рассматривать схему задачи, то блоки в ней размещаются один под другим в зависимости от порядкового номера выполнения. Линейные алгоритмы работают таким образом, что от исходных данных не меняется направление и смысл действий. Такой способ решения подойдет для вычисления суммы или разности, площади фигуры или ее периметра и т. п. Основным типом алгоритмической конструкции является именно он.

алгоритм основные алгоритмические конструкции

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

Создание циклов и их виды

Что же необходимо для создания цикла?

Циклы могут быть детерминированными и итерационными. Первые представляют собой повтор действий с уже известным количеством повторений. Итерационный цикл – тот, который повторяется неопределенное количество раз, пока условие не станет правдой или ложью.

основным типом алгоритмической конструкции является

Базовый алгоритм

Линейные алгоритмы

Как уже понятно из вышенаписанного, алгоритмы бывают линейные и нелинейные. Рассмотрим первый вариант. Почему он так называется? Все предельно просто. Дело в том, что все действия, которые воспроизводятся в алгоритме, имеют четко последовательное выполнение, все шаги выполняются строго друг за другом. Как правило, такие задачи небольшие и имеют низкий уровень сложности.

Примером линейного алгоритма может быть процесс приготовления чая:

  1. Налить воды в чайник.
  2. Поставить чайник на плиту закипать.
  3. Взять чашку.
  4. Насыпать в чашку чай.
  5. Добавить сахар.
  6. После кипения налить в чашку кипяток.
  7. Взять ложку.
  8. Перемешать сахар.

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

к основным алгоритмическим конструкциям не относится

Разветвляющиеся алгоритмы

Как понять, что алгоритм является разветвляющимся? Достаточно убедиться в наличии выбора из двух или более вариантов действия, в зависимости от выполнения или невыполнения условия. Каждый путь называется ветвью.

Основным признаком разветвляющегося алгоритма является существование условного перехода. Он происходит во время проверки выражения на истину или ложь.

Как правило, логические выражения представлены знаками "меньше", "больше", "меньше или равно", "больше или равно", "равно", "не равно". Иногда встречаются варианты, где условие связано между собой с помощью команд and (и) и or (или).

Примером такого алгоритма может быть решение следующей задачи: если выражение ((х+3)/1) равняется положительному числу, то вывести результат на экран, если отрицательному – сообщить пользователю об ошибке.

Достаточно просто на практике использовать основные алгоритмические конструкции. Ветвление является одним из самых распространенных методов решения.

Детерминированный цикл или цикл со счетчиком

Цикл со счетчиком – цикл, который включает в себя переменную, изменяющую значение с определенным шагом. Шаг задается пользователем или прописывается программистом во время написания обеспечения. Большая часть языков для такого цикла использует оператор for.

Чтобы программа выводила на экран две строки 4 раза:

1. For i:=1 to 2 do:

- i является счетчиком цикла, именно он определяет количество повторений в цикле.

2. Begin (открываются операторные скобки для того, чтобы обе фразы являлись телом цикла и повторялись вместе.)

3. Writeln (‘Как дела?’):

- слово writeln означает вывод фразы, находящейся в одинарных кавычках.

4. Writeln (‘Хорошо, спасибо').

Как видно, достаточно легко и даже интересно использовать основные алгоритмические конструкции. Базовые алгоритмы действительно широко известны, без них невозможно писать программы.

основные алгоритмические конструкции линейные разветвляющиеся циклические

Цикл с постусловием

Цикл с постусловием может повторять неопределенное количество действий без вставки в них операторных скобок или составных слов. Он обязательно выполнится хотя бы один раз. Работает цикл, пока условие является ложным. Прекращается он при становлении показателей правильными. На этом построен алгоритм. Основные алгоритмические конструкции такого типа работают именно в данном темпе.

основные алгоритмические конструкции базовые алгоритмы

Цикл с предусловием

Все основные алгоритмические конструкции работают лишь в определенных случаях. Какие же они в цикле с предусловием? Если необходимо, чтобы повторялось не одно действие, а сразу несколько, то стоит использовать или составные операторы, или специальные скобки. Цикл вполне может не выполниться, если при вхождении в него условие не является верным. Соответственно, повторяться действия будут, если оно правильное.

основные алгоритмические конструкции повторение

Вспомогательный алгоритм

Вспомогательный алгоритм используется в других процессах при помощи указания лишь его имени. Он к основным алгоритмическим конструкциям не относится. В языках программирования такой процесс действий называется подпрограммой. Для облегчения работы с кодом и впоследствии более простого решения задач каждое действие объединяется в один блок, который и является вспомогательным алгоритмом. Каждому из них можно задать свое имя, что позволяет впоследствии неоднократно обращаться к нему.

Характеристика циклической и линейной структуры программного алгоритма. Описание полного и неполного ветвления разветвляющегося алгоритма. Исследование алгоритма и разработка программного приложения в среде Delphi, показывающего информацию об учениках.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 28.06.2012
Размер файла 360,1 K

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Министерство сельского хозяйства российской федерации

КАФЕДРА ИНФОРМАЦИОННОГО ОБЕСПЕЧЕНИЯ И МОДЕЛИРОВАНИЯ АГРОЭКОНОМИЧЕСКИХ СИСТЕМ

Выполнила: студентка Г-3-1а

Проверила: ст. преподаватель

Содержание

1. Основные алгоритмические конструкции

1.1 Циклический алгоритм

1.2 Линейный алгоритм

1.3 Разветвляющийся алгоритм

2. Разработка программы в среде Delphi, показывающая информацию об учениках

2.1 Постановка задачи

2.3 Программный код

2.4 Результаты работы

Выводы и предложения

Список используемой литературы

Введение

Алгоритм - это точная последовательность предписаний, исполнение которых позволяет посредством конечного числа шагов получить решение задачи, однозначно определяемое исходными данными.

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

Цель данного курсового проекта заключается в изучении основных алгоритмических конструкций и описании разработки программы в среде Delphi.

Для осуществления данной цели, необходимо было решить следующие задачи:

1. Рассмотреть, что такое циклическая структура, цикл с постусловием и предусловием;

2. Изучить линейную структуру;

3. Описать разветвляющийся алгоритм, его полное и неполное ветвление.

Основной метод исследования, применяемый в написании данной курсового проекта, является:

1. Метод индукции и дедукции;

2. Метод анализа и синтеза;

3. Метод восхождения от простого к сложному;

4. Метод научной абстракции;

5. Метод качественного и количественного анализа.

линейная структура программа алгоритм приложение

1. Основные алгоритмические конструкции

1.1 Циклическая структура

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

Любой цикл состоит из трех частей: начала, проверки и тела цикла.

Начало - всегда первая часть цикла. Главная его функция - подготовить цикл.

Проверка определяет момент выхода из цикла.

Базовая структура "цикл". Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла. Основные разновидности циклов представлены в таблице:

|Язык QBasic |Язык блок-схем |

|Do Until условие |[pic] |

|тело цикла (последовательность действий) | |

|Do While условие |[pic] |

|тело цикла (последовательность действий) | |

|For i=i1 to i2 |[pic] |

|тело цикла (последовательность действий) | |

Пример алгоритма цикл на алгоритмическом языке QBasic:

FOR I=7 TO -6 STEP -3

Пример: ввести элементы массива:

а)одномерного, размерности 10; б)двумерного, 5x5

Условные конструкции.

1) неполная форма с одним оператором

2) полная форма с одним оператором

3) неполная форма с несколькими операторами

4) полная форма с несколькими операторами

1) IF условие THEN оператор;

2) IF условие THEN оператор1 ELSE оператор2;

3) IF условие THEN BEGIN

4) IF условие THEN BEGIN

Пример: ввести оценку студента в баллах и сообщить ее название.

If b=5 then Write('отлично') else

If b=4 then Write('хорошо') else

If b=3 then Write('удовл.') else

If b=2 then Write('неудовл.') else

Write('это не оценка');

Конструкция выбор.

Ситуации, реализующие систему вложенных ветвлений могут быть разрешены с использованием конструкции выбор.

Оператор выбора является структурированным и использует в своей записи операторы case, of, else, end и операторные скобки по необходимости.

В самом общем виде оператор выбора можно записать так:

Case порядковая переменная of

значение1: begin оператор1; оператор2; …; операторN; end;

значение2: begin оператор1; оператор2; …; операторN; end;

значениеM: begin оператор1; оператор2; …; операторN; end;

else begin оператор1; оператор2; …; операторN; end;

Пример: ввести оценку студента в баллах и сообщить ее название.

else Write('это не оценка');

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

Пример: напечатать количество дней во введенном месяце:

янв, мар, май, июл, авг, окт, дек: Write('31');

апр, июн, сен, ноя: Write('30');

else Write ('это не месяц');

Циклические конструкции.

1. Цикл с предусловием.

Для реализации циклов с предусловием используется составной оператор, включающий оператор while, do, операторные скобки.

В общем виде цикл реализуется записью:

Если тело цикла содержит более одного действия, то необходимо использовать операторные скобки:

2. Цикл с постусловием.

Для реализации цикла используется составной оператор, состоящий из операторов repeat и until.

В общем виде цикл записывается так:

Пример: задано целое число. Вывести на печать все цифры введенного числа.

writeln(b); a:=a div 10;

2. Цикл с параметром.

Для реализации в языке Pascal используется составной оператор, состоящий из операторов for, to, downto, do и при необходимости из операторных скобок. Переменная параметр обязательно объявляется в декларационной части программы и может принадлежать одному из порядковых типов. Если при изменении переменной параметра необходимо использовать переход к следующему значению, то используется оператор to; если переход необходимо осуществить к предыдущему значению, то используется оператор downto. Тогда в общем виде цикл записывается так:

1.2 Линейный алгоритм

В алгоритмическом языке линейным является алгоритм, состоящий из команд, выполняющихся одна за другой. Они в записи алгоритма располагаются в том порядке, в каком должны быть выполнены предписываемые ими действия.

Рис.2 Блок-схема линейной структуры.

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

1.3 Разветвляющийся алгоритм

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

Алгоритмы, имеющие несколько ветвей, называются нелинейными. К таким относятся разветвляющиеся и циклические алгоритмы. Для их записи применяются составные команды.

Базовая структура "ветвление" определяет выполнение действий в зависимости от выполнения условия. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран.

|IF Условие THEN действия

|IF Условие THEN действия 1

|ELSE действия 2

Пример алгоритма ветвления на алгоритмическом языке QBasic:

PRINT “Вне диапазона”

Разветвляющаяся блок-схема приведена на рисунке 3.

Рис. 3 Разветвляющаяся блок-схема

Полная форма ветвления.

Неполная форма ветвления

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

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

2. Разработка программы в среде Delphi, показывающая информацию об учениках

Разработать программу для сохранения и обработки информации об учениках (ФИО, класс, адрес и т.д.). В программе сделать несколько отчётов:

· Все ученики одного класса

· Проживают в одном доме

2.2 Блок-схема

2.3 Программный код

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Data.Win.ADODB, Vcl.StdCtrls,

procedure Button1Click(Sender: TObject);

procedure TForm1.Button1Click(Sender: TObject);

case ComboBox1.ItemIndex of

1:ADODataSet1.CommandText:='select имя, фамилия, очество, адрес, класс FROM клиенты WHERE [класс] Like "4"';

2:ADODataSet1.CommandText:='select имя, фамилия, очество, адрес, класс FROM клиенты WHERE [адрес] Like "Чапаева, дом 110"';

2.4 Результаты работы

Ученики, проживающие в одном доме

Учащиеся одного класса

Результат формирования всех учеников

Выводы и предложения

В данной работе мы узнали, что такое алгоритм, и какое значение он имеет в повседневных задачах, и так алгоритм - это точная последовательность предписаний, исполнение которых позволяет посредством конечного числа шагов получить решение задачи, однозначно определяемое исходными данными. Значение его в решении повседневных задачах играет важную роль, так например информатика, как и арифметика, тоже дает явно необходимые знания для выживания человека в современном мире. Например, умение программировать домашнюю бытовую технику: видеомагнитофон (составление списка записываемых телепередач), магнитофон (составление списка записываемых дорожек аудио-CD), сотовый телефон (запоминание номеров, установка параметров, управление роумингом, управление голосовой почтой), часы и таймеры в любом бытовом приборе (выставление и корректировка времени), микроволновые печи, кофеварки, хлебопечки, телевизоры, наконец, компьютеры. Здесь необходимо составление алгоритма, запись которого осуществляется на языке прибора (кодирование в соответствии с прилагаемой инструкцией) с последующей загрузкой составленной программы в компьютер (домашнего) прибора.

Далее мы выяснили, что существуют 3 вида алгоритмов: линейный, разветвляющийся с полным и неполным ветвлением и циклический, который в свою очередь делится на цикл с постусловием и предусловием.

Впоследствии написания данной работы, было необходимо решить задачу на языке Delphi и описать этапы её разработки. В результате чего получилась программа, в которой представлена информация об учениках: все ученики одного класса; проживают в одном доме.

Список используемой литературы

3. Введение в информатику. Лабораторные работы. / Авт.-сост. А.П. Шестаков;

4. Вычислительная техника и программирование. Под ред. А.В. Ретрова. Перм. ун-т. -- Пермь, 1999

5. Кузнецов А.А. и др. Основы информатики. - М.: Дрофа, 1998

6. Кушниренко А.Г. и др. Информатика. - М.: Дрофа, 1998

7. Л.З. Шауцукова, "Основы информатики в вопросах и ответах", Издательский центр "Эль-Фа", Нальчик, 1994

8. Лебедев Г.В., Кушниренко А.Г. 12 лекций по преподаванию курса информатики. - М.: Дрофа, 1998

9. Теоретический материал из лекций по информатике в МГАПИ.

10. Шауцукова Л.З. Информатика 10 - 11. М.: Просвещение, 2000

Подобные документы

Понятие алгоритма, его свойства. Дискретность, определенность, результативность, формальность как свойства алгоритма. Программа как описание структуры алгоритма на языке алгоритмического программирования. Основные структурные алгоритмические конструкции.

реферат [1,3 M], добавлен 18.11.2010

Рассмотрение системы трехмерного твердотельного моделирования. Анализ средств программирования, информационное обеспечение и описание объектной модели Компас-3d. Описание алгоритма программы в среде Borland Delphi 7 и составление инструкции пользователя.

дипломная работа [1,7 M], добавлен 03.07.2012

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

курсовая работа [1,1 M], добавлен 11.01.2015

Разработка приложения для шифрования данных с помощью алгоритма DES5: процесс шифрования, расшифрования, получение ключей. Спецификация программы, процедуры и функции; описание интерфейса пользователя. Реализация задачи в среде программирования DELPHI.

курсовая работа [812,6 K], добавлен 27.03.2012

Создание блок-схемы алгоритма и реализующей его программы, снабженных пояснениями, для решения задач. Реализация программы в среде Delphi как проекта консольного приложения. Основные алгоритмические структуры, соответствующие операторы для их реализации.

контрольная работа [447,4 K], добавлен 08.10.2012

курсовая работа [314,2 K], добавлен 27.01.2015

Применение языка Delphi в качестве языка программирования для реализации игры "Разноцветные кубики". Методы заполнения квадратной матрицы. Разработка алгоритма решения задачи, структурная организация данных. Характеристика программного средства.

Алгоритм.

Алгоритм — это точная последовательность предписаний, исполнение которых позволяет посредством конечного числа шагов получить решение задачи, однозначно определяемое исходными данными

Свойства алгоритма.

При составлении и записи алгоритма необходимо обеспечить, чтобы он обладал рядом свойств.

Однозначность алгоритма, под которой понимается единственность толкования исполнителем правила построения действий и порядок их выполнения. Чтобы алгоритм обладал этим свойством, он должен быть записан командами из системы команд исполнителя.

Конечность алгоритма – обязательность завершения каждого из действий, составляющих алгоритм, и завершимость выполнения алгоритма в целом.

Результативность алгоритма, предполагающая, что выполнение алгоритма должно завершиться получением определённых результатов.

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

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

Эффективность – для решения задачи должны использоваться ограниченные ресурсы компьютера (процессорное время, объём оперативной памяти и т. д.).

Способы записи алгоритмов:

На практике наиболее распространены следующие способы представления алгоритмов:

· Словесно-формульный способ (запись на естественном языке);

Словесно-формульный способ записи алгоритмов представляет собой описание последовательных этапов обработки данных. Алгоритм задается в произвольном изложении на естественном языке.

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

Алгоритм может быть следующим:

1. задать два числа;

2. если числа равны, то взять любое из них в качестве ответа и остановиться, в противном случае продолжить выполнение алгоритма;

3. определить большее из чисел;

4. заменить большее из чисел разностью большего и меньшего из чисел;

5. повторить алгоритм с шага 2.

Словесный способ не имеет широкого распространения, так как такие описания:

— строго не формализуемы;

— страдают многословностью записей;

— допускают неоднозначность толкования отдельных предписаний.

· Графический способ (с использованием графических примитивов, блок-схем);

Для разработки структуры программы удобнее пользоваться записью алгоритма в виде блок-схемы (в англоязычной литературе используется термин flow-chart). Для изображения основных алгоритмических структур и блоков на блок-схемах используют специальные графические символы. Они приведены на рисунке:

Начало (заголовок) цикла

· псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.);

Псевдокод представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов.

Псевдокод занимает промежуточное место между естественным и формальным языками. С одной стороны, он близок к обычному естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой строны, в псевдокоде используются некоторые формальные конструкции и математическая символика, что приближает запись алгоритма к общепринятой математической записи.

В псевдокоде не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя.

Однако в псевдокоде обычно имеются некоторые конструкции, присущие формальным языкам, что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке. В частности, в псевдокоде, так же, как и в формальных языках, есть служебные слова, смысл которых определен раз и навсегда. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются.

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

Пример записи алгоритма на школьном АЯ:

алг Сумма квадратов (арг цел n, рез цел S)

дано | n > 0

надо | S = 1*1 + 2*2 + 3*3 +… + n*n

нц для i от 1 до n

· Формальные языки ( QBasic, Pascal и тд.).

Основные алгоритмические конструкции:

Линейный алгоритм.

Рис.1 Блок-схема линейного алгоритма.

В математике к линейным алгоритмам относятся алгоритмы, представленные формулами. Они наиболее просты для программирования. Заметим, что естественный способ кодировки формул делает программу легкочитаемой, но нередко приводит к лишним вычислениям, поэтому, чтобы избежать повторных вычислений и сократить общее количество операций выполняйте тождественные преобразования выражений. С другой стороны, надо знать, что не всегда следует осуществлять оптимизацию, поскольку она является не правилом, а исключением. Этому есть три причины, главная из которых состоит в том, что оптимизация ухудшает наглядность программ, вторая — выгоды от оптимизации должны быть существенными и третья — современные системы, как правило, имеют удовлетворительные оптимизирующие компиляторы.

Основные алгоритмические конструкции:

Ветвящийся алгоритм.

При исполнении алгоритмов приходится не только находить значения величин, но и анализировать их свойства, сравнивать их друг с другом и в зависимости от результата сравнения выбирать ту или иную ветвь алгоритма. Алгоритмы, имеющие несколько ветвей, называются нелинейными. К таким относятся разветвляющиеся и циклические алгоритмы. Для их записи применяются составные команды.


Конспект по информатике "Алгоритмические конструкции" для самостоятельного изучения и подготовки к контрольным работам, экзаменам и ГИА.

Алгоритмические конструкции

Код ОГЭ: 1.3.2. Алгоритмические конструкции

Различают три основных вида алгоритмов (базовые алгоритмические конструкции, или структуры): линейные, с разветвлениями и с циклами.

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

Алгоритм, предписывающий одноразовое выполнение одной и той же последовательности действий при любых допустимых входных данных, называется линейным (линейной структурой). Использование этой структуры возможно только для простых задач.

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

Алгоритм, предписывающий выполнение тех или других действий в зависимости от результата проверки условия, называется разветвленным (структурой ветвления).

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

Третий вид алгоритмов (с циклами) обеспечивает многократное выполнение некоторой совокупности действий. Например, для вычисления разности двух чисел в столбик необходимо сначала вычесть последние цифры исходных чисел и записать последнюю цифру результата (если требуется, перенести единицу из предыдущего разряда). Затем аналогично следует вычислить разность предпоследних цифр чисел и так далее. Процедура повторяется, пока все цифры исходных чисел не будут исчерпаны. Количество повторений зависит от количества цифр в заданных числах.

Алгоритм, предписывающий повторное выполнение действий, называется циклическим алгоритмом (алгоритмом с повторением, или структурой цикла).

Повторяемое действие или группа действий называется телом цикла. Количество повторений тела цикла определяется поставленным условием, которое называется условием цикла. По результату проверки условия осуществляется выбор: еще раз повторить тело цикла или перейти к другим действиям.

Наличие возврата к ранее произведенным действиям является характерным отличием алгоритмов с циклами от линейных и разветвленных.

Линейные алгоритмические конструкции

В блок–схемах линейные алгоритмы представляют с помощью последовательности функциональных блоков:


В алгоритмическом языке линейным структурам соответствует последовательность команд языка:

Команда 1
Команда 2
Команда 3

У линейной структуры только один вход и только один выход, попасть извне в середину выполняемой последовательности команд невозможно.

Пример 1. Определить значение целой переменной n после выполнения следующего алгоритма:
m := 3
n := 4
m := 6 + m*n
n := n + m/3

Решение. Первые две команды присваивания определяют начальные значения переменных. Для выполнения третьей команды сначала надо вычислить правую часть выражения: 6 + 3 х 4 = 18. Это значение будет присвоено переменной m. Для выполнения последней команды также сначала вычисляется правая часть выражения: 4 + 18/3 = 10. Результат будет присвоен переменной п.

Даже для решения простых задач, ход которого не изменяется в зависимости от исходных данных, могут существовать разные варианты алгоритмов простой линейной структуры.

Пример 2. Вычислить значение выражения x 2 – 3 × х – 10, используя только операции сложения и умножения.

Для решения задачи в той последовательности, что определяет само выражение, потребуется 2 операции умножения, 2 вычитания и 3 переменных (х, y, z). Однако можно вычислить то же выражение как (х — 2) × х – 10. Такой алгоритм расчета потребует 1 умножение, 2 вычитания и 2 переменных (х, у).


Решение.

Алгоритмические конструкции ветвления

Для отображения базовой алгоритмической конструкции ветвления в блок–схемах используется альтернативный (условный) блок (фигура ромб), а в алгоритмических языках — команда если.

Существует две реализации структуры ветвления: полная и неполная (краткая). Обе формы ветвления являются замкнутыми: каждая из них имеет один вход и один выход.


Таким образом, полная форма команды если определяет две ветви команд: первая выполняется, если условие истинно, вторая — если условие ложно. Каждая ветвь в итоге ведет к общему выходу, так что работа алгоритма будет продолжаться при выборе любого пути.

Краткая форма ветвления предполагает, что в случае истинности условия будет выполнена команда 1, а иначе — никакие действия не выполняются.

если 2/х ≠ 0
то y := 2/x
всё


Пример 5. Для приведенного фрагмента блок–схемы алгоритма выбрать соответствующий ему фрагмент на алгоритмическом языке.

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

Структура ветвления выбор предполагает поочередную проверку нескольких условий (одно за одним). Если проверяемое условие 1 истинно, выполняется команда 1, если нет — переходят к проверке следующего условия. Если второе условие истинно — выполняется команда 2, если нет — проверяют следующее условие и т. д.



and (логическое И),
or (логическое ИЛИ),
xor (исключающее ИЛИ),
not (отрицание).

Например, чтобы задать условие принадлежности числовой величины Z промежутку (10;20), следует записать составное условие Z > 10 and Z Циклические конструкции

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

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


Пример 6. Записать на алгоритмическом языке алгоритм получения остатка от деления целого числа а на целое число b с помощью вычитания.


Решение. Если число а меньше b, то остатком от деления служит само число а. В ином случае необходимо вычитать b из числа а до тех пор, пока результат не станет меньше b — он и будет остатком от деления.



Решение.

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


Имя параметра цикла (счетчика) указывают в заголовке после служебного слова для. Затем с помощью служебных слов от и до задают начальное и конечное значение этого параметра.

Цикл со счетчиком всегда выполняется i1 – i2 + 1 раз.

Пример 8. Записать алгоритм вычисления факториала числа N.


Решение. Факториал числа вычисляется по формуле N! = 1 × 2 × … × N. Следовательно, для расчета факториала надо организовать цикл со счетчиком, в котором перемножить последовательные целые числа от 2 до N. Значение 1!, равное 1, можно присвоить результирующей переменной до цикла.

Таблицы и массивы

■ Массив — конечный набор пронумерованных однотипных данных, имеющий имя.

Величины, которые входят в массив, называются его элементами. Количество элементов массива называется его размерностью.

На практике чаще всего используют массивы, содержащие числовые или литерные (символьные, текстовые) данные. Важным является требование однотипности данных.

Имя массива (таблицы) относится ко всему набору данных. Элементы массива различают по порядковому номеру, который называется индексом. Для обращения к элементу его индекс указывают в квадратных скобках сразу вслед за именем массива. Например, если массив имеет имя D, то третий его элемент обозначается D[3]. Такие имена называются индексированными именами. Индексы могут быть не только константами, но и переменными или целочисленными выражениями: D[j], D[k+1].

Различают одномерные и многомерные массивы.

Одномерный, или линейный массив представляет собой последовательность нумерованных по порядку элементов. Одномерные таблицы называют иногда векторами. В них всегда только одна строка или один столбец.

В одномерных таблицах или массивах могут быть записаны данные, относящиеся только к какому–либо одному факту. Например, результаты соревнований спортсменов по одному виду спорта, или регулярные показания температуры в одной местности, или оценки учащихся по одному предмету, или названия альбомов одного исполнителя.


Одномерная таблица, содержащая расстояния от Солнца до планет Солнечной системы (в астрономических единицах), может выглядеть как табличная строка:

Названия планет в этой таблице отсутствуют (иначе они бы образовали вторую строку). Чтобы узнать расстояние от Солнца до Марса, надо обратиться к четвертому элементу этой таблицы. Если, например, в программе такой массив расстояний от Солнца был поименован как Dist, то для обращения к 4–му элементу массива надо указать Dist[4].


Многомерные таблицы и массивы могут содержать данные о нескольких фактах — например, результаты соревнований спортсменов в нескольких видах спорта; измерения температуры, давления и влажности в разные месяцы в разных городах; оценки разных учащихся по разным предметам в разные дни; названия альбомов исполнителей, выпущенных в разные годы.

В отличие от индексированных элементов массива обычные переменные иногда называют скалярными.

Для описания таблицы в алгоритмическом языке используется служебное слово таб. Необходимо указать по порядку: тип элементов таблицы, служебное слово таб, имя таблицы, а затем в квадратных скобках через двоеточие начальный и конечный номера элементов таблицы.

Общий вид описания таблицы:
тип элементов таб имя таблицы [наименьший индекс : наибольший индекс]

Например, для описания таблицы расстояний от Солнца необходимо учесть, что в ней содержатся нецелые числа, следовательно, тип данных таблицы — вещественный, и количество элементов равно 9:
вещ таб Dist[1:9]

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


Например, присвоение значений элементам таблицы Dist можно описать на алгоритмическом языке следующим образом:

Зачастую ввод данных в массив или задачи их обработки связаны с перебором элементов массива. Для этих целей обычно используют циклы с параметром (со счетчиком). В теле цикла индекс массива обозначают переменной, и эта же переменная выступает в роли параметра (счетчика) цикла. Для параметра в заголовке цикла указывают перечень значений индекса массива. Например, если необходимо обработать все 20 значений массива Т, то следует записать цикл нц для i от 1 до 20 … кц и в теле цикла задать обработку для элемента T[i].

Пример 10. По данным о территории некоторых стран Европы (см. первую строку примера многомерной таблицы) рассчитать суммарную площадь этих стран.

Решение. В алгоритме необходимо предусмотреть ввод вещественных данных в таблицу (например, Terr) из 9 элементов. Для будущего суммарного результата необходимо отвести переменную (например, S), первоначально присвоить этой переменной нулевое значение. Затем организовать цикл с параметром, изменяющимся от 1 до 9 (количество элементов в таблице) и поочередно сложить предыдущее значение S с очередным элементом таблицы Terr[i]. Завершить алгоритм выводом результата.

Читайте также: