Линейные алгоритмы — схема, структура и вычисление

Где применяют алгоритмы

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

Например, даже при решении простой задачки (2 * 6) используются определенные методы и инструменты для получения правильного результата. Самое интересное заключается в том, что ее можно решить несколькими способами: использовав листок и ручку, посчитав на компьютере или выполнив умножение в уме. Наиболее эффективный способ решения этой задачи и будет лучшим алгоритмом в данном случае.

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

Задача продавца (коммивояжера)

Существуют более интересные примеры для понимания сложности функционирования алгоритмов. Например, .

Дано: одному продавцу необходимо посетить четыре города: например, Москву, Берлин, Лондон, и Сан-Франциско. Продать там товар, а затем вернуться обратно.

Линейные алгоритмы - схема, структура и вычисление

Решение задачи выглядит простым. Сначала из Москвы поехать в Берлин, затем посетить Лондон, а потом отправиться в Сан-Франциско и вернуться в Москву.

На самом деле это сложный для компьютера алгоритм. В этих 4-х вариантах скрыто 24 различных комбинаций путешествия для решения задачи. Компьютер высчитывает расстояние от одного города до другого, затем сравнивает варианты и выдает решение.

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

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

Машина Тьюринга — это основа для понимания алгоритмов

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

Линейные алгоритмы - схема, структура и вычисление

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

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

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

Последовательность действий:

  1. взять кусок хлеба;
  2. отрезать кусок сыра;
  3. положить его на хлеб.

Пример: Если идет сильный дождь, тогда возьми зонт, а иначе брать зонт не нужно.

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

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

Для этого совершаем следующие действия:

Пример: В одном ящике лежат груши, необходимо отобрать гнилые и хорошие. Для этого совершаем следующие действия:

  1. взять из ящика грушу;
  2. посмотреть, гнилая она или нет;
  3. если гнилая, то выбросить;
  4. если нет, положить в другой ящик;
  5. повторить операцию до перебора всех груш в ящике.

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

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

Все, что нас окружает построено именно на этих алгоритмах, они считаются простыми для понимания.

По каким алгоритмам работает поиск от Google и Яндекс

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

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

Линейные алгоритмы - схема, структура и вычисление

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

  • Индексация – сбор данных, опубликованных на всех сайтах в интернете.
  • Определение релевантности. Информация на веб-страницах сортируется по тематикам поисковых запросов.
  • Ранжирование. По каждой теме производится оценка качества и полезности ответов. Затем на странице результатов поиска ответы размещаются «по ранжиру», в порядке убывания качества и соответствия.

Многие пользователи полагают, что после запуска поиска по фразе Google со всех ног мечется по всему интернету и там ищет относящуюся к делу (релевантную) информацию.

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

Собранная информация хранится в Индексе поисковой машины – базе данных. Слово Index по-английски означает «каталог». Это примерно, как в обычной библиотеке все книги разделены по полкам, а в Каталоге лежат карточки с краткими описаниями. Индекс Яндекса – это и есть такой цифровой каталог всего интернет-контента.

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

Линейные алгоритмы - схема, структура и вычисление

Фразы в тексте, соответствующие поисковому запросу принято называть «ключевыми словами» или «ключевиками».

Чтобы поисковой машине было легче найти контент на сайте, веб-мастера специально добавляют в текстовый контент соответствующие ключевые слова. Это называется «поисковая оптимизация».

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

  • Оценка уникальности.
  • Проверка достоверности и актуальности сведений.
  • Объем и профессиональный уровень контента (информационная ценность).
  • Авторитетность автора, репутация публикатора.
  • Цитируемость – кто и как ссылается на данный контент на сторонних сайтах.
  • И еще проверка контента и сайта в целом по нескольким сотням разных алгоритмов.

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

  • Алгоритм Яндекса ИКС определяет качество контента на сайте.
  • Алгоритм Google «Колибри» предназначен для улучшенного поиска и ранжирования контента, написанного естественным разговорным языком.

Зная, что некоторые недобросовестные веб-мастера порой идут на манипуляции, чтобы получить преимущества в поисковой выдаче, программисты Google и Яндекс разработали фильтры. С помощью фильтров поисковый компьютер выявляет «серые», недобросовестные способы оптимизации сайтов и «пессимизирует», понижает такие ресурсы в результатах поиска по запросу.

  • Фильтр Яндекса «Минусинск» выявляет и понижает в выдаче сайты, использующие покупные SEO-ссылки.
  • Фильтр Гугл «Пингвин» предназначен для определения неестественных, искусственных ссылок.

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

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

Задача

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

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

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

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

Сразу возникает масса вопросов к этому определению:

  • Что такое правило?
  • Как, кому и для кого это правило можно задать?
  • Что есть объединение совокупностью?
  • Каким образом правила соотносятся с задачей?
  • Что формирует класс задачи?
  • Определяется ли способ формирования совокупности правилами и задачами?

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

  • Какова структура набора?
  • Какие есть варианты действий и исполнителей?
  • Существуют ли минимально возможное действие, минимальный набор необходимых действий?
  • Каким образом действия встроены в исполнителя?
  • Какие есть способы создания копии исполнителя (например, если исполнитель — человек)?
  • Как действия зависят друг от друга в упорядоченном выполнении?
  • Что есть задача кроме того, что она выполняется последовательностью действий?
  • Как задача соотносится с исполнителем и с действиями?
  • Возможно ли использовать решение задачи в качестве действия?
  • Какие возможны варианты указания порядка действий?
  • Если воспроизведение патефоном записи звуков леса является алгоритмом, то какова структура этой задачи?
  • Если репликация ДНК является алгоритмом, то каков её исполнитель?
  • Если исполнителем является Машина Тьюринга, то как с её использованием решить механическую задачу, например, воспроизведение звука?

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

Как приготовить салат морская звезда — 15 разновидностей

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

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

Подобная
структура называется также «ЕСЛИ – ТО
– ИНАЧЕ», или «развилка». Каждый из
путей (ТО или ИНАЧЕ) ведет к общей точке
слияния, так что выполнение программы
продолжается независимо от того, какой
путь был выбран.

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

Рис. 2
Разветвляющаяся структура алгоритма

Рис. 3 Структура
«неполное ветвление»

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

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

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

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

зображен на рис. 6.

Циклы
с условием
используются тогда, когда
число повторений заранее неизвестно,
но задано условие окончания цикла.
Причем, если условие окончания цикла
проверяется перед выполнением тела
цикла, то такие циклические структуры
называют цикламис предусловием(«Выполнять пока» рис. 4), а если проверка
условия происходит после выполнения
тела цикла – цикламис постусловием(«Выполнять до тех пор пока не» рис.5).

Линейные алгоритмы - схема, структура и вычисление

Рис. 4

Рис. 5

Рис. 6

Что называется алгоритмом

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

Исполнителем может быть как человек, так и механизм или цифровая вычислительная машина.

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

Линейные алгоритмы - схема, структура и вычисление

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

  • Проснулся, встал, умылся, побрился, выпил чашечку кофе, оделся, поехал на работу.
  • В офисе снял пальто, включил комп, запустил MS Word, продолжил работу над документами.

Думаю вам такой порядок действий хорошо знаком.

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

Виды

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

Линейные алгоритмы - схема, структура и вычисление

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

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

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

Линейные алгоритмы - схема, структура и вычисление

Говоря простыми словами, разветвляющийся «algorithm» еще можно описать словами из американского боевика: «Что-то пошло не так. Переходим к плану «Б». Планы А и Б – это и есть ветви решения поведения боевой группы на задании, в условиях непредсказуемо меняющейся обстановки.

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

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

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

Линейные алгоритмы - схема, структура и вычисление

Циклические действия мы видим в человеческом обществе. В некотором смысле, большинство людей повторяют один и тот же цикл жизни на протяжении столетий. Кажется, в буддизме это называется «карма».

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

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

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

Примеры программ на паскале — задания на линейные алгоритмы

Решение:

program zadanie1;    
var х,у,k,z,pinteger; { описание переменных }
begin	{ начало программы }
  writeln('Вычисление суммы и произведения трех чисел');  
  write('Введите три целых числа через пробел'); 
  readln(x,y,k);	{ ввод значений х,y,k с клавиатуры }
  z = x + y + k;	{ вычисление суммы }
  p = x * y * k;       { вычисление произведения }
  write('Сумма = ',z);	{вывод результата сложения на экран }
  write('Произведение = ',p);	{вывод результата произведения на экран }
end.	{ конец программы }

Решение:

program zadanie2;    
var a,v,sreal; { описание переменных }
begin	{ начало программы }
  writeln('Вычисление объема и площади поверхности куба');  
  write('Введите длину ребра куба'); 
  readln(a);	{ ввод значения a с клавиатуры }
  v = a * a * a;	{ вычисление объема }
  s = 6 * a * a;       { вычисление площади }
  write('Объем куба = ',v);	{вывод результата объем куба }
  write('Площадь поверхности = ',s);	{вывод результата площадь поверхности }
end.	{ конец программы }

Посмотрите еще примеры линейных алгоритмов.

Хотите подробнее узнать о системе PascalABC и начать писать в ней свои первые программы, тогда статья «Знакомство с PascalABC» для вас.

из 5 заданий окончено

Вопросы:

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

Информация

Проверь свои знания по теме «Линейный алгоритм»

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

Тест загружается…

Вы должны войти или зарегистрироваться для того, чтобы начать тест.

Вы должны закончить следующие тесты, чтобы начать этот:

Результаты

Правильных ответов: из 5

Ваше время:

Время вышло

Вы набрали из баллов ()

Средний результат  
Ваш результат  
максимум из 5 баллов
Место Имя Записано Баллы Результат
Таблица загружается
Нет данных

Ваш результат был записан в таблицу лидеров

Капча:

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  1. С ответом

  2. С отметкой о просмотре

  1. Задание 1 из 5

    1.

    Рубрика: Линейный алгоритм

    Что такое линейный алгоритм?

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

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

    • Линейным называется алгоритм, в котором команды записаны строго друг под другом. Левый край в линию.

    Правильно

    Неправильно

  2. Задание 2 из 5

    2.

    Рубрика: Линейный алгоритм

    Какая команда позволяет ввести текстовые или числовые данные с клавиатуры?

    • read

    • write

    • print

    Правильно

    Неправильно

  3. Задание 3 из 5

    3.

    Рубрика: Линейный алгоритм

    Укажите все правильные варианты записи оператора вывода

    • write(‘Сумма = ‘,z);

    • writeln(‘Вычисление суммы двух чисел’);

    • writeln(Вычисление суммы двух чисел);

    • write(Сумма = ,z);

    Правильно

    Неправильно

  4. Задание 4 из 5

    4.

    Рубрика: Линейный алгоритм

    Укажите правильную последовательность команд в программе для вычисления суммы двух чисел

    • writeln(‘Вычисление суммы двух чисел’);

    • write(‘Введите два целых числа через пробел’);

    • readln(x,y); { ввод значений х и y с клавиатуры }

    • z := х + у; { вычисление суммы }

    • write(‘Сумма = ‘,z); {вывод результата вычисления на экран }

    Правильно

    Неправильно

  5. Задание 5 из 5

    5.

    Рубрика: Линейный алгоритм

    Что содержит раздел программы, обозначенный служебным словом var

    • описание переменных с указанием их типов

    • описание переменных с указанием их значений

    • описание величин, которые нельзя использовать в программе

    Правильно

    Неправильно

Графическая форма решения

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

Команда присваивания значения имеет следующий формат:

Переменная:=выражение.

Знак «:=» читается как присвоить.

Присваивание – это команда, которая необходима для выполнения компьютером следующих действий:

  • вычисления выражения;
  • присвоения переменной полученного значения.

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

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

В приведенном примере алгоритма есть также команда ввода:

Ввод а, b, с, d.

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

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

Проблема

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

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

Почему конкретный прием был успешен в задаче-образце? Будет ли он успешен в твоём проекте? Какие признаки проекта дают понять, что использование приёма уместно?

В личном опыте существования в профессии не раз отмечено, что каждый Junior борется с одинаковыми ветряными мельницами и постигает методы создания программ основываясь только на своих ошибках. Но ведь такие ошибки совершили уже очень многие. Почему до сих пор не создана система правил программирования, которая поможет обойти новоиспеченному кораблю-программисту подводные прибрежные камни? Ну, например, объяснение вреда использования метода «Copy-Paste» для развития кода. Если такие правила получится объяснить малым набором причин, их сформировавшим, то это объяснение обеспечит их запоминание и последующее использование в практике, тем самым поможет уклониться от бесчисленных грабель, разложенных тут и там.

Для компактного и полезного набора объяснений нужно:

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

Если обобщить, то нужны алгоритмы для написания и развития алгоритмов.

Задуманная серия статей не претендует на полное решение указанной проблемы. Предпринимается небесспорная попытка сделать первый шаг на пути к этому решению. Этот шаг состоит в выделении структуры и свойств главного кирпичика программиста — Алгоритма.

Алгоритмы с разветвлением

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

Разветвляющиеся алгоритмы представляют собой алгоритм, последовательность выполнения команд которого находится в зависимости от соответствия заявленному условию. Команда «ветвления» относится к структурным командам. Выполнение такой команды всегда происходит в несколько шагов: проверка заданного условия и дальнейшее исполнение команд по одной из ветвей: «да» или «нет».

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

  1. Есть ли на улице дождь?
  2. Если дождь идет, то необходимо надеть плащ.
  3. Если дождя нет, холодно на улице?
  4. Если холодно, надеть джемпер;
  5. Если не холодно, надеть футболку.

Замечание 2

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

Пример записи разветвляющегося алгоритма представлен на рисунке 2.

Рисунок 2. Автор24 — интернет-биржа студенческих работ

Алгоритм с разветвлением

Для составления разветвляющегося алгоритма необходимо:

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

Стоит отметить, разветвляющиеся алгоритмы могут быть как полными, так и неполными. Пример таких алгоритмов представлен на рисунках 3-4.

Линейные алгоритмы - схема, структура и вычислениеРисунок 3. Алгоритм с полным разветвлением. Автор24 — интернет-биржа студенческих работ

Рисунок 4. Алгоритм с неполным разветвлением. Автор24 — интернет-биржа студенческих работ

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

Операторы ввода, вывода в языке программирования Паскаль

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

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

Read (А, В, С), где А, В, С – переменные, которые нужно ввести в оперативную память для запоминания.

Readlnn (х1, у, х2) – закончив ввод, курсор переходит на начало новой строки.

Readlnn; — свидетельствует об ожидании нажатия «Enter». Как правило этот оператор вставляют в текст перед последним «End», чтобы сохранить результаты выполнения программы на экране содержимого.

Вывод на экран монитора данных осуществляется с помощью таких операторов:

Write (А, В, С) – указав значения А, В, С в одной строке, курсор не покидает текущей строки.

Writeln (z, у, z2) – закончив вывод значений, курсор в данной позиции перейдет на новую строку.

Writeln; — свидетельствует о пропуске одной строки и переходе на начало новой.

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

Команды ввода и вывода

Команда Read

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

Модифицируем код программы из примера выше.

program primer1;    
var х,у,zinteger; { описание переменных }
begin	{ начало программы }
  read(x,y);	{ ввод значений х и y с клавиатуры }
  z = х + у;	{ вычисление суммы }
  write(z);	{вывод результата вычисления на экран }
end.	{ конец программы }

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

Линейные алгоритмы - схема, структура и вычисление

При работающей программе в системе программирования PascalABC появится строка ввода данных. Там и пишутся значения переменных.

Команда Write

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

program primer1;    
var х,у,zinteger; { описание переменных }
begin	{ начало программы }
  writeln('Вычисление суммы двух чисел');  
  write('Введите два целых числа через пробел'); 
  readln(x,y);	{ ввод значений х и y с клавиатуры }
  z = х + у;	{ вычисление суммы }
  write('Сумма = ',z);	{вывод результата вычисления на экран }
end.	{ конец программы }

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

Линейные алгоритмы - схема, структура и вычисление
У нас появились подсказки. Посмотрите на команду write. В качестве ее аргумента был использован текст, заключенный в апострофы. И еще, появилось окончание ln у оператора write. Именно оно заставляет последующий вывод информации делать с новой строки. Это же окончание можно использовать совместно с оператором read.

Линейные алгоритмы - схема, структура и вычисление

Также поменялся вывод результата. Здесь тоже появилась подсказка.