Как составить любой алгоритм


Download Article


Download Article

An algorithm is a set of steps designed to solve a problem or accomplish a task. Algorithms are usually written in pseudocode, or a combination of your speaking language and one or more programming languages, in advance of writing a program. This wikiHow teaches you how to piece together an algorithm that gets you started on your application.

Steps

  1. Image titled Write an Algorithm in Programming Language Step 1

    1

    Determine the outcome of your code. What is the specific problem you want to solve or the task you want it to accomplish? Once you have a solid idea of what you’re aiming to accomplish, you can determine the steps it will take to get there.

  2. Image titled Write an Algorithm in Programming Language Step 2

    2

    Decide on a starting point. Finding your starting and ending point are crucial to listing the steps of the process. To determine a starting point, determine the answers to these questions:[1]

    • What data/inputs are available?
    • Where is that data located?
    • What formulas are applicable to the issue at hand?
    • What are the rules to working with the available data?
    • How do the data values relate to each other?

    Advertisement

  3. Image titled Write an Algorithm in Programming Language Step 3

    3

    Find the ending point of the algorithm. As with the starting point, you can find the end point of your algorithm by focusing on these questions:

    • What facts will we learn from the process?
    • What changes from the start to the end?
    • What will be added or no longer exist?
  4. Image titled Write an Algorithm in Programming Language Step 4

    4

    List the steps from start to finish. Start with broad steps. To use a real-world example, let’s say your goal is to have lasagna for dinner. You’ve determined that the starting point is to find a recipe, and that the end result is that you’ll have a lasagna fully cooked and ready to eat by 7 PM. Your steps may look something like this:

    • Search for a recipe online.
    • Look for the ingredients you already have in the kitchen.
    • Make a list of ingredients you’ll need from the store.
    • Buy the missing ingredients.
    • Return home.
    • Prepare the lasagna.
    • Remove the lasagna from the oven.
  5. Image titled Write an Algorithm in Programming Language Step 5

    5

    Determine how you will accomplish each step. Now that you have a step-by-step outline, it’s time to think about how you might code each step. Which language will you use? What resources are available? What’s the most efficient way to accomplish each step in that language? Incorporate some of that code into your algorithm. Expand each step until you’ve detailed the entire process.

    • For example, the first step in our lasagna algorithm is Search for a recipe online. But what is involved in this search? Be specific. For example:
      • Turn on your computer.
        • Check to make sure you’re connected to the internet. Connect to the internet if you aren’t already.
      • Open a web browser.
      • Enter your search terms.
      • Click a recipe link.
      • Determine whether the recipe meets your needs.
        • Filter out recipes that aren’t vegetarian.
        • Make sure the recipe makes at least 5 servings.
      • Repeat some of these steps until you find the right recipe.
    • Consider the resources at your disposal, such as the capabilities of the system you’re developing a program for. In the case of lasagna, we assume the person making the lasagna knows how to search the internet, operate an oven, etc.
  6. Image titled Write an Algorithm in Programming Language Step 6

    6

    Review the algorithm. Now that you’ve written your algorithm, it’s time to evaluate the process. Your algorithm is designed to accomplish something specific, and you’ll need it to start writing your program. Ask yourself the following questions, and address each as necessary:[2]

    • Does the algorithm solve the problem/accomplish the task?
    • Does it have clearly defined inputs and outputs?
    • Should the end goal be redefined to be more general? More specific?
    • Can any of the steps be simplified?
    • Is the algorithm guaranteed to end with the correct result?
  7. Advertisement

Add New Question

  • Question

    How do I write an algorithm that 7 is greater than 5?

    nicholasz2510 Gaming, Travel, and Music

    nicholasz2510 Gaming, Travel, and Music

    Community Answer

    The syntax can vary over different languages, but to write the conditional 7 is greater than 5 would most likely by simply be this: 7 > 5.

  • Question

    How do I make an algorithm of the sum of two numbers?

    Adam Blalock

    Adam Blalock

    Community Answer

    To add two numbers in a programming language, you just use a “+” between them. In Python (a programming language), it would look like: x = 10, y = 13; print x + y.

  • Question

    Is there any way to understand this easier? I’m 15 and still trying to understand the concepts.

    Community Answer

    I just started programming and my college professors are very vague and make understanding the concepts pretty hard. Your best bet is to keep looking up the terms on Google, that’s what I’ve been doing, and it works to a degree.

See more answers

Ask a Question

200 characters left

Include your email address to get a message when this question is answered.

Submit

Advertisement

  • Check out existing algorithms for ideas on writing your own.

  • Use fast calculating iterations.

  • Focus on efficiency when coding.

Show More Tips

Thanks for submitting a tip for review!

Advertisement

About This Article

Article SummaryX

1. Determine the problem or task to accomplish.
2. Decide the starting point.
3. Figure out the endpoint.
4. List the steps that occur between the start and finish.
5. Break down the steps as necessary.
6. Review the algorithm and change where necessary.

Did this summary help you?

Thanks to all authors for creating a page that has been read 439,029 times.

Is this article up to date?

Конспект

Составление линейных алгоритмов

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

Сегодня мы попрактикуемся в составлении алгоритмов. Это очень важные навыки. Мы уже неоднократно отмечали, что составить алгоритм, то есть объяснить другому, как выполнять те или иные задачи так, чтобы это было понятно каждому, – очень тяжело. Наша задача – научиться составлять алгоритмы для различных примеров, чтобы впоследствии, когда вы столкнётесь с необходимостью составлять алгоритмы для написания различных программ, это не составляло для вас особого труда.

 Начнём мы с самых простых алгоритмов – линейных. Их составление, обычно, не вызывает особого труда. Однако, навыки составления таких алгоритмов чрезвычайно важны.

Пример 1. Составить алгоритм запуска программы Paint в ОС Windows 7.

Решение:

Вспомним из курса информатики 5 класса порядок действий для запуска программы Paint.

  1. Войти в меню «Пуск».
  2. Войти в пункт «Все программы».
  3. Войти в пункт «Стандартные».
  4. Выбрать программу «Paint».

Данный алгоритм в виде блок-схемы имеет следующий вид:

 

Рис. 1. Блок-схема к примеру 1.

Составление алгоритмов с ветвлениями

Рассмотрим пример на составление алгоритмов с ветвлениями.

 Пример 2. Составьте алгоритм для перехода дороги на светофоре.

Рис. 2. Светофор (Источник).

Решение:

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

Таким образом, алгоритм имеет следующий вид:

  1. Подойти к светофору.
  2. Посмотреть на его свет.
  3. Если горит зелёный, то перейти дорогу.
  4. Если горит красный, то подождать, пока загорится зелёный, и уже тогда перейти дорогу.

Блок-схема данного алгоритма имеет вид:

Рис. 3. Блок-схема к примеру 2.

Составление циклических алгоритмов

Рассмотрим пример на составление циклического алгоритма. Мы уже несколько раз обсуждали перевод чисел из десятичной системы в двоичную. Теперь пришло время чётко сформулировать этот алгоритм.

Напомним, что его принцип состоит в делении числа на 2 и записей остатков, получающихся при делении.

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

Решение:

То есть, алгоритм будет выглядеть так:

  1. Если число равно 0 или 1, то это и будет его двоичное представление.
  2. Если число больше 1, то мы делим его на 2.
  3. Полученный остаток от деления записываем в последний разряд двоичного представления числа.
  4. Если полученное частное равно 1, то его дописываем в первый разряд двоичного представления числа и прекращаем вычисления.
  5. Если же полученное частное больше 1, то мы заменяем исходное число на него и возвращаемся в пункт 2).

Блок-схема этого алгоритма выглядит следующим образом:

Рис. 4. Блок-схема к примеру 3.

Примечание: подумайте, можно ли как-то упростить приведенную блок-схему.

«Чтение» алгоритмов

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

Рис. 5. Блок-схема к примеру 4.

Решение:

  1. a=23
  2. 23+5=28
  3. 28<35
  4. 28+5=33
  5. 33<35
  6. 33+5=38
  7. 38>35
  8. 76 – двузначное число
  9. 76-50=26.

Ответ: 26.

На этом уроке мы разобрали примеры составления алгоритмов, а также пример «чтения алгоритма» по готовой блок-схеме.

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

Как убить Кощея?

Наверное, все помнят из детства сказку, в которой рассказывается о местонахождении смерти Кощея Бессмертного: «Смерть моя – на конце иглы, которая в яйце, яйцо – в утке, утка – в зайце, заяц в сундуке сидит, сундук на крепкий замок закрыт и закопан под самым большим дубом на острове Буяне, посреди моря-океяна …»

Рис. 6. Кощей Бессмертный и Василиса Премудрая (Источник).

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

  1. Конечно же, сначала необходимо разыскать остров Буян (на такие вещи, будем считать, Иван-дурак способен).
  2. Поскольку сундук закопан под самым большим дубом, то сначала необходимо найти самый большой дуб на острове.
  3. Затем нужно выкопать сам сундук.
  4. Прежде чем доставать зайца, необходимо сломать крепкий замок.
  5. Теперь уже можно достать зайца.
  6. Из зайца нужно достать утку.
  7. Из утки достать яйцо.
  8. Разбить яйцо и достать иголку.
  9. Иголку поломать.

Это тоже линейный алгоритм, хотя и более длинный, чем алгоритм запуска программы Paint.

Его блок-схема выглядит так:

Рис. 7. Блок-схема.

На распутье…

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

Рис. 8. Богатырь на распутье (Источник).

На камне написано:

«Направо пойдёшь – коня потеряешь, себя спасёшь; налево пойдёшь – себя потеряешь, коня спасёшь; прямо пойдёшь – и себя и коня потеряешь».

Попробуем составить алгоритм действий, который составил автор надписи на камне для путников?

  1. Если мы пойдём направо, то потеряем коня. Если же мы не пойдём направо, то у нас остаётся два варианта (мы считаем, что назад возвращаться путник не будет): пойти прямо и налево.
  2. В случае, если мы пойдём налево, то потеряем себя, а коня спасём.
  3. Если же мы пойдём прямо, то потеряем и себя, и коня.

Блок-схема этого алгоритма выглядит так:

Рис. 9. Блок-схема.

Репка

Русские народные сказки не оставили нас и без циклического алгоритма. И, как ни странно, спрятался он в одной из самых незамысловатых сказок – «Репке».

Рис. 10. Репка.

Вспомним сюжет сказки: дед тянет-потянет – вытянуть не может. Затем на помощь к деду по очереди подходят новые персонажи – и так до тех пор, пока не приходит мышка.

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

  1. Изначально к Репке подошёл дед и попытался вытянуть.
  2. Поскольку вытянуть Репку не получилось, то понадобилась помощь следующего персонажа.
  3. И так происходит до тех пор, пока не появилась мышка (или, другими словами, до тех пор, пока Репку не вытащили).

В виде блок-схемы этот алгоритм выглядит следующим образом:

Рис. 11. Блок-схема.

Список рекомендованной литературы

  1. Босова Л.Л. Информатика и ИКТ: Учебник для 6 класса. – М.: БИНОМ. Лаборатория знаний, 2012
  2. Босова Л.Л. Информатика: Рабочая тетрадь для 6 класса. – М.: БИНОМ. Лаборатория знаний, 2010.
  3. Босова Л.Л., Босова А.Ю. Уроки информатики в 5-6 классах: Методическое пособие. – М.: БИНОМ. Лаборатория знаний, 2010.

 Рекомендованные ссылки на ресурсы интернет

  1. Интернет портал «Сообщество взаимопомощи учителей» (Источник).
  2. Интернет портал «Nsportal.ru» (Источник).
  3. Интернет портал «Фестиваль педагогических идей» (Источник).

 Рекомендованное домашнее задание

  1. §3.3, 3.4 (Босова Л.Л. Информатика и ИКТ: Учебник для 6 класса);
  2. Постарайся самостоятельно составить линейный алгоритм из 5-6 фигур;
  3. Составь блок-схему циклического алгоритма выполнения домашнего задания;

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

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

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

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

  • Этап 1 . Математическое описание решения задачи.
  • Этап 2 . Определение входных и выходных данных.
  • Этап 3 . Разработка алгоритма решения задачи.

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

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

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

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

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

alt

Пример

ЗАДАЧА. Разработать алгоритм вычисления гипотенузы прямоугольного треугольника по известным значениям длин его катетов a и b.

На примере данной задачи рассмотрим все три этапа разработки алгоритма решения задачи:

Этап 1. Математическое описание решения задачи.

Математическим решением задачи является известная формула:

Формула,

где с-длина гипотенузы, a, b – длины катетов.

Этап 2. Определение входных и выходных данных.

Входными данными являются значения катетов a и b. Выходными данными является длина гипотенузы – c.

Этап 3. Разработка алгоритма решения задачи.

Словесное описание алгоритма Запись алгоритма на языке блок-схем
  1. Начало алгоритма.
  2. Ввод значений длин катетов a и b.
  3. Вычисление длины гипотенузы с по формуле Формула
  4. Вывод значения длины гипотенузы.
  5. Конец алгоритма

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

Блок-схема

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

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

Алгоритм ветвления

Пример

ЗАДАЧА. Разработать алгоритм вычисления наибольшего числа из двух чисел x и y.

Этап 1. Математическое описание решения задачи.

Из курса математики известно, если x > y, то наибольшее число x, если x < y, то наибольшее число y, если x = y, то число x равно числу y.

Этап 2. Определение входных и выходных данных.

Входными данными являются значения чисел x и y. Выходным данными являются:

  • наибольшее число
  • любое из чисел, если числа равны

Для решения задачи нам необходимо знать значения x и y.

Этап 3. Разработка алгоритма решения задачи.

Словесное описание алгоритма Запись алгоритма на языке блок-схем
  1. Начало алгоритма.
  2. Ввод значений x и y.
  3. Сравниваем x и y. Если x = y, то переход к шагу 4, иначе к шагу 5.
  4. Вывод информации: числа x и y равны. Переход к шагу 8.
  5. Сравниваем x и y. Если x > y, то переход к шагу 6, иначе к шагу 7.
  6. Вывод информации: число x больше y. Переход к шагу 8.
  7. Вывод информации: число y больше x. Переход к шагу 8.
  8. Конец алгоритма.

блок-схема

В схеме алгоритма решения задачи цифрами указаны номера элементов алгоритма, которые соответствуют номерам шагов словесного описания алгоритма

В рассматриваемом алгоритме (рис.3) имеются три ветви решения задачи:

  • первая: это элементы 1, 2, 3, 4, 8.
  • вторая: это элементы 1, 2, 3, 5, 6, 8
  • третья: это элементы 1, 2, 3, 5, 7, 8.

Выбор ветви определяется значениями x и y в элементах 3 и 5, которые являются условиями, определяющими порядок выполнения элементов алгоритма. Если условие (равенство), записанное внутри символа «решение», выполняется при введенных значениях x и y, то следующими выполняется элементы 4 и 8. Это следует из того, что они соединены линией с надписью «да» и направление (последовательность) вычислений обозначена стрелочкой.

Если условие в элементе 3 не выполняется, то следующим выполняется элемент 5. Он соединен с элементом 3 линией с надписью «нет». Если условие, записанное в элементе 5, выполняется, то выполняется элементы 6 и 8, в противном случае выполняются элементы 7 и 8.

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

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

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

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

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

  • параметр цикла – величина, с изменением значения которой связано многократное выполнение цикла;
  • начальное и конечное значения параметров цикла;
  • шаг цикла – значение, на которое изменяется параметр цикла при каждом повторении.

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

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

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

  • начальные значения цикла;
  • конечные значения цикла;
  • шаг цикла.

В тело цикла входят:

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

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

 Пример

ЗАДАЧА. Разработать алгоритм вычисления суммы натуральных чисел от 1 до 100.

Этап 1. Математическое описание решения задачи.

Обозначим сумму натуральных чисел через S. Тогда формула вычисления суммы натуральных чисел от 1 до 100 может быть записана так:

сумма натуральных чисел

где Xi – натуральное число X c номером i, который изменяется от 1 до n, n=100 – количество натуральных чисел.

Этап 2. Определение входных и выходных данных.

Входными данными являются натуральные числа: 1, 2, 3, 4, 5, …, 98, 99, 100.

Выходные данные – значение суммы членов последовательности натуральных чисел.

Параметр циклавеличина, определяющая количество повторений цикла. В нашем случае i – номер натурального числа.

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

  • начальное значение параметра цикла равно 1,
  • конечное значение параметра цикла равно n,
  • шаг цикла равен 1.

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

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

S=S+i;              I=I+1;

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

Этап 3. Разработка алгоритма решения задачи.

Введем обозначения: S – сумма последовательности, i – значение натурального числа.

Начальное значение цикла i=1, конечное значение цикла i =100, шаг цикла 1.

Словесное описание алгоритма Запись алгоритма на языке блок-схем
  1. Начало алгоритма.
  2. Подготовка цикла: S:=0; i=1; n= 100;
  3. Проверка условия. Если i <=n , то перейти к шагу 4, иначе к шагу 6.
  4. Накопление суммы: S:=S+i;
  5. Вычисление следующего значения параметра цикла: i:=i+1;
  6. Вывод информации: сумма натуральных чисел – S.
  7. Конец алгоритма.

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

Блок-схема


Загрузить PDF


Загрузить PDF

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

Шаги

  1. Изображение с названием Write an Algorithm in Programming Language Step 1

    1

    Помните, что создание алгоритма — это поэтапный процесс.

  2. Изображение с названием Write an Algorithm in Programming Language Step 2

    2

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

  3. Изображение с названием Write an Algorithm in Programming Language Step 3

    3

    Приступите к процессу.

  4. Изображение с названием Write an Algorithm in Programming Language Step 4

    4

    Вводите в алгоритм переменные и операции с ними.

  5. Изображение с названием Write an Algorithm in Programming Language Step 5

    5

    Если в алгоритме есть какие-то циклы, постарайтесь составлять списки подчисел.

  6. Изображение с названием Write an Algorithm in Programming Language Step 6

    6

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

  7. Изображение с названием Write an Algorithm in Programming Language Step 7

    7

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

  8. Изображение с названием Write an Algorithm in Programming Language Step 8

    8

    Постарайтесь не включать излишние первоначальные данные в алгоритм.

  9. Изображение с названием Write an Algorithm in Programming Language Step 9

    9

    Опишите выражения.

  10. Изображение с названием Write an Algorithm in Programming Language Step 10

    10

    Используйте выражения, прерывающие и завершающие процесс.

    Реклама

  1. Изображение с названием Write an Algorithm in Programming Language Step 11

    1

    Получите входные данные пользователя.

  2. Изображение с названием Write an Algorithm in Programming Language Step 12

    2

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

  3. Изображение с названием Write an Algorithm in Programming Language Step 13

    3

    Если соответствуют, запустите сессию и перенаправьте пользователя в личный кабинет.

  4. Изображение с названием Write an Algorithm in Programming Language Step 14

    4

    Если не соответствуют, выведите на экран сообщение об ошибке, перенаправьте его на ту же страницу с формой логин-пароль и попросите ввести данные снова.

  5. Изображение с названием Write an Algorithm in Programming Language Step 15

    5

    Завершение алгоритма.

    Реклама

Советы

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

Реклама

Предупреждения

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

Реклама

Об этой статье

Эту страницу просматривали 8460 раз.

Была ли эта статья полезной?

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

Algo_970x90-20219-0c5b45.png

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

Алгоритмический язык

Представьте, что человеку, работающему за компьютером, поставлена некая вычислительная задача. В языке программирования решение этой задачи выполняется с помощью алгоритмизации. Решение предполагает:
— разбиение на этапы;
— разработку алгоритма;
— составление программы решения на алгоритмическом языке;
— ввод данных;
— отладку программы (возможны ошибки — их надо исправить);
— выполнение на ПК;
— анализ результатов.

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

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

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

Линейная структура

Любой алгоритм составляется из ряда базовых структур. Простейшей базовой структурой является следование — структура с линейными характеристиками. Из этого можно сформулировать определение.

Линейный алгоритм — это алгоритм, образуемый командами, которые выполняются однократно и именно в той последовательности, в которой записаны. Линейная структура, по сути, проста. Записать её можно как в текстовой, так и в графической форме.

Представим, что у нас стоит задача пропылесосить ковёр в комнате. В текстовой форме алгоритм будет следующим:
— принести пылесос к месту уборки;
— включить;
— пропылесосить;
— выключить;
— унести пылесос.

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

Теперь поговорим про графическую форму представления.

Algo_970x90-20219-0c5b45.png

Блок-схема

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

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

Блок начала-конца:

Screenshot_1-1801-a35d16.png

Блок ввода-вывода данных (отображает список вводимых и выводимых переменных):

Screenshot_2-1801-52cab0.png

Арифметический блок (отображает арифметическую операцию/группу операций):

Screenshot_3-1801-df500e.png

Условный блок (позволяет описать условие). Алгоритмы с таким блоком используются при графической визуализации алгоритмов с ветвлением:

Screenshot_4-1801-3103cc.png

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

Screenshot_5-1801-f1511b.png

А вот, как решается задача по нахождению площади треугольника по формуле Герона. Здесь a, b, c – это длины сторон, S – площадь треугольника, P – периметр.

Screenshot_6-1801-c010e2.png

Следует обратить внимание, что запись «=» — это не математическое равенство, а операция присваивания. В результате этой операции переменная, стоящая слева от оператора, получает значение, которое указано справа. Значение не обязательно должно быть сразу определено (a = 3) — оно может вычисляться посредством выражения (a = b + z), где b = 1, a z = 2.

Примеры линейных алгоритмов

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

Screenshot_7-1801-f9ba66.png

И, соответственно, блок-схема программы линейной структуры будет выглядеть следующим образом:

Screenshot_8-1801-8a0c1b.png

Как составить программу линейной структуры?

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

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

Algo_970x550-20219-265dfd.png

Источники:
• https://inep.sfedu.ru/wp-content/uploads/2018/05/25/lection_27.pdf;
• https://www.sites.google.com/site/415ict/textbooks/prog-9/02-linejnyj-algoritm.

Добавить комментарий