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

Содержание

  1. Линейный алгоритм
  2. Структура программы на языке Паскаль
  3. Заголовок программы
  4. Раздел описания переменных
  5. Тело программы
  6. Команды в Паскаль для ввода и вывода данных
  7. Команда Read
  8. Команда Write
  9. Примеры программ на паскале — задания на линейные алгоритмы

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

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

Структура программы на языке Паскаль

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

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

как составить программу паскаль структура программы Паскаль

Заголовок программы

Текст программы начинается со слова program. После него записывается имя программы. Данная строка носит информативный характер и ее можно не писать.

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

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

Раздел описания переменных

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

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

В нашем примере переменные с именами X и Y используются для хранения исходных данных. Переменная с именем Z используется для хранения результата вычислений.

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

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

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

Тело программы

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

Оператор присваивания значений переменным имеет следующую структуру: переменная := выражение

Значок : = (двоеточие, равно) читается как «присвоить».
Умножение обозначается символом * (звездочка),  деление — символом / (слеш).

Вывод результата выполняет команда write или print.

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

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

Команды в Паскаль для ввода и вывода данных

Команда Read

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

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

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

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

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

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

Команда Write

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

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

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

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

Readln и Writeln в паскале — это модифицированные команды Read и Write. В командах добавлено окончание ln (line new — новая строка). Такая форма операторов делает последующий вывод информации, при работе программы, с новой строки.

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

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

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

Задание 1. Модифицировать программу так, чтобы она вычисляла и выводила на экран сумму и произведение трех целых чисел.

Решение:

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

Задание 2. Дана длина ребра куба а. Найти объем куба V=a3  и площадь его поверхности S=6a2.

Решение:

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

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

Дополнительные задания:

Lin1 Введите значения для двух переменных. Обменяйте их значения, используя третью (буферную) переменную.

кнопка Код программы

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

Следующая тема для изучения Условный оператор

Тест “Линейный алгоритм”

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

Время выполнения

6 часов

Цель работы

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

Задачи лабораторной работы

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

  • знать назначение алгоритма и его определение;
  • знать формы представления алгоритма;
  • уметь работать с основными алгоритмическими конструкциями;
  • уметь представлять алгоритм в виде блок-схемы;
  • уметь приводить примеры алгоритмов и применять их для построения блок-схем;
  • уметь составлять и записывать алгоритм одним из способов.

Перечень обеспечивающих средств

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

Общие теоретические сведения

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

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

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

Алгоритм может быть описан одним из трех способов:

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

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

  1. Линейный алгоритм – это такой алгоритм, в котором все операции выполняются последовательно одна за другой.
  2. Алгоритмы разветвленной структуры применяются, когда в зависимости от некоторого условия необходимо выполнить либо одно, либо другое действие.
  3. Алгоритмы циклической структуры.

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

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

Задание 1. Определить площадь трапеции по введенным значениям оснований (a и b) и высоты (h).

Запись решения задачи на алгоритмическом языке:

нач

                s:=((a+b)/2)*h

кон 

Запись алгоритма в виде блок-схемы (рис. 1):

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

Задание 2. Определить среднее арифметическое двух чисел, если a положительное и частное (a/b) в противном случае.

Запись решения задачи на алгоритмическом языке:

нач

кон

Запись алгоритма в виде блок-схемы (рис. 2):

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

Задание 3. Составить алгоритм нахождения суммы целых чисел в диапазоне от 1 до 10.

Запись решения задачи на алгоритмическом языке:

нач

    S:=0;

    A:=1;

        S:=S+a;

        A:=a+1;

кон

Запись алгоритма в виде блок-схемы (рис. 3):

 Рисунок 3. Циклический алгоритм с предусловием

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

нач

    S:=0;

    A:=1;

        S:=S+a;

        A:=a+1;

кон

Запись алгоритма в виде блок-схемы (рис. 4):

 Рисунок 4. Циклический алгоритм с постусловием

Варианты задания

Технология выполнения работы

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

Содержание отчета

  1. Цель работы и задание.
  2. Условие задачи.
  3. Алгоритм, написанный с помощью псевдокода и блок- схемы.

Вопросы для защиты работы

  1. Что такое алгоритм?
  2. Свойства алгоритма.
  3. Способы записи алгоритма.
  4. Основные элементы блок-схемы.
  5. Виды алгоритмов.
  6. Отличительные особенности алгоритмов с предусловием и постусловием.

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

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

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

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

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

Блок-схема
состоит из следующих базовых структур:
две составные команды (команда следования
и команда повторения с предусловием),
далее простая команда. Все команды
соединены последовательно. Конструкции
оформлены стандартным образом, поэтому
их легко распознать и перевести на язык
программирования. Каждая конструкция
имеет один вход и один выход.
     Пунктирные
стрелки в таблице отражают последовательность
выполнения технологической цепочки.
После записи алгоритма в виде блок-схемы
каждая команда переводится на школьный
алгоритмический язык, а уже затем на
язык программирования.
     Запишем
алгоритм вычисления суммы первых n
натуральных чисел. Для этого воспользуемся
циклом с параметром, поскольку заранее
известно сколько раз будет выполняться
команда нахождения суммы. Во всех звеньях
цепочки поменяем цикл “пока” на
цикл “для” и приведем пример перевода
алгоритма с языка блок-схем на школьный
алгоритмический язык и на язык
программирования Pascal.

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

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

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

Программа
– это последовательность команд, понятных
компьютеру.

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

Требования,
предъявляемые к программе

1.
Минимальные требования к компьютеру,
на котором работает программа.

2.
Ясность входных и выходных данных и
простота программы.

3.
Минимальное время создания программы
и простота ее изменения.

4.
Минимальное время работы программы,
минимум занимаемой памяти и минимум
использованных в программе операторов.

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

Свойства
программ – выполнимость, мобильность,
правильность, эффективность.

Выполнимость
– возможность выполнения программы на
данном типе компьютеров.

Мобильность
– возможность переноса программы на
другой тип компьютеров.

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

Эффективность
– минимум времени выполнения, минимум
машинной памяти и других ресурсов
компьютера.

Языки
программирования – языки для записи
программ для компьютеров. Это совокупность
средств и правил представления алгоритма
в виде, приемлемом для компьютера.

Оператор
– выражение обозначающее и описывающее
какую-либо операцию.

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

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

Системы
программирования – это набор средств
ввода, редактирования, трансляции и
выполнения программ на ЭВМ.

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

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

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

Все
системы (языки) программирования имеют
свой транслятор, компилятор и интерпретатор.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

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

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

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

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

Константа – это величина, представляющая фиксированное числовое, строковое или символьное значение.

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


Оператор присваивания

переменная := выражение;

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

При выполнении этого оператора сначала вычисляется значение выражения, а затем это значение присваивается переменной.

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

Пример 1:

a:=1;

b:=a+2;

c:=’пример’

Отметим три основных свойства команды присваивания:

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

Операторы ввода данных

Read (список_переменныx);

где список_переменныx – перечень вводимых переменных, разделенных запятыми (объявленных заранее в разделе описания переменных).

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

Пример 2:

Read(a);

Read(a,b);

Readln (список_переменныx);

где список_переменныx – список вводимых переменных, разделенных запятыми (объявленных заранее в разделе описания переменных).

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


Операторы вывода данных

Write (‘комментарий’,список_переменныx);

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

Пример 3:

Write(‘a=’,a);

Write(‘сумма чисел ‘,a, ‘ и ‘,b, ‘ равна’, c);

Writeln (‘комментарий’,список_переменныx);

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

Пример 4:

Writeln(8/10*sqrt(4));


Форматный вывод

При выводе вещественных переменных в Паскале используется запись числа с плавающей точкой (экспоненциальная форма) . К примеру, число 10.5 будет выведено как 1.0500000000Е+0001.
Экспоненциальная фоpма пpедполагает запись числа в виде мантиссы и поpядка. Любое число можно пpедставить в виде:

X=m*10p, где m-мантисса числа, p-поpядок числа.

Например:

-238,5=-2,385 x 10^2

0,00035=35 x 10^(-5)

В экспоненциальной фоpме записываются: знак мантиссы, мантисса, символ Е, знак поpядка, поpядок в виде целого числа. Пpимеpы записи в экспоненциальной фоpме:

-2.385 Е+2

35 E-5

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

Write (A:N:M) – указывается формат значения переменной. Первое число после знака “:” обозначает количество позиций, выделяемых под всю переменную, а второе – под дробную часть числа. Десятичная точка тоже считается отдельным символом. Если дробная часть числа превышает указанный формат, то число округляется, при нехватке – дополняется нулями до указанного формата. Если целая часть превышает указанное число позиций, то она все равно выводится полностью

Пример 5:

Writeln(x:5:3);

Число Результат выполнения оператора

5,3578 5.358

5,35 5.350

252, 357 252. 357


Арифметические операции и выражения

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

  • + – сложение
  • – вычитание
  • *’ – умножение,
  • / – обычное деление
  • div – деление нацело
  • mod – нахождение остатка от деления

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

При вычислении их значений раньше выполняются операции *, /, div, mod, а затем + и -.

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

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

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

ФункцияОписаниеАргументРезультат

Sqr(X) – х в квадрате – цел/вещ – цел/вещ

Abs(X) – модуль х – цел/вещ – цел/вещ

Sin(X) – синус х (х в радианах) – вещ – вещ

Cos(X) косинус х (х в радианах) – вещ – вещ

Exp(X) – е в степени х – вещ – вещ

Ln(X) – натуральный логарифм х – вещ – вещ

Log(X) – десятичный логарифм х – вещ – вещ

Sqrt(X) – корень квадратный из х – вещ – вещ

ArcTan(X) – арктангенс х – вещ – вещ

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

а := 3 + х

Здесь: а – вещественного типа; х – целого типа.

Противоположное преобразование выполняется при помощи стандартных функций Pascal:

Trunc(X) – находит целую часть аргумента: Trunc(45.8) = 45

Round(X) – округляет аргумент до ближайшего целого: Round(3.14) = 3; Round(3.7) = 4.

Стандартные функции
https://sites.google.com/site/elektronnyjucebnikmitrofanova/tema-2-azyk-programmirovania-paskal/tema-2-4-standartnye-funkcii


Пример 6: Написать программу для складывания двух чисел.

Program summa;

Var a,b,s:real;

Begin

Writeln(‘введите первое число’); Readln(a);

Writeln(‘введите второе число’); Readln(b);

s:=a+b;

Writeln(‘сумма чисел равна’,s:5:2);

End.

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

Program ostatok;

Var a,b,x:integer;

Begin

Write(‘введите два числа ‘);

Readln(a,b);

X:=a mod b;

Writeln(‘остаток от деления-‘,x);

End.


Линейные алгоритмы в ОГЭ (ГИА)

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

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

Рассмотрим решение задачи номер 8 ГИА 2013 по информатике:

Символ «:=» обозначает оператор присваивания, знаки «+», «–», «*» и «/» – соответственно операции сложения, вычитания, умножения и деления. Правила выполнения операций и порядок действий соответствуют правилам арифметики. Определите значение переменной b после выполнения данного алгоритма:

a := 4;

b := 10;

a := b-a*2;

b := 24/a*4;

В ответе укажите одно целое число – значение переменной b.

Мы видим линейный алгоритм. Выполним его последовательно, шаг за шагом.

1) a: = 4 — на первом шаге переменной a присвоили значение 4;

2) b := 10 на втором шаге переменной b присвоили значение 10;

3) a := b-a*2 — выполняем вычисления, подставив значения переменных.

b — a*2 = 10 — 4*2 = 2; a := 2;

4) b := 24/a*4 — аналогично, выполняем вычисления. 24/2*4 = 12*4 = 48. b := 48.

Ответ: 48.


Назад Мастер-класс Линейные вычислительные алгоритмы Паскаль»


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

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.

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