2
Линейная алгоритмическая конструкция
Линейный алгоритм – это описание последовательности действий, которые выполняются однократно в заданном порядке (рис. 1).
Рис. 1 Размещение блоков в линейном алгоритме
Начало
Конец
3
ПРИМЕР 1. Разработайте алгоритм решения линейного уравнения: составьте блок-схему, листинг программы на языке Паскаль. Выполните тестирование программы.
Начало
Конец
Вывод x
Ввод k, b
k
b
Х
4
2. Листинг программы
program uravnenie ;
uses crt; var x, k, b: real ;
begin
writeln (‘Введите коэффициент k’) ; readln (k) ; writeln (‘Введите b’) ; readln (b) ;
clrscr; x:=-b/k ; writeln (‘Корнем линейного уравнения ‘,k:3:2,’*x+’,b:3:2, ‘=0 является x =’, x:3:2) ;
end.
3. Тестирование
№ п/п
Значение k
Значение b
Результат выполнения программы
Ожидаемый результат
Самый подробный урок про Блок-схемы, Понимание, Чтение и Создание блок-схем
1 2
5
-2.5
-2.5 2
10
-20 2
2 3
5
-5 1
1
4. Результат выполнения программы
5
Разветвляющаяся алгоритмическая конструкция
Разветвляющийся алгоритм – такой алгоритм, в котором выполняется либо одна, либо другая последовательность действий, в зависимости от условия.
Различают две формы разветвляющейся алгоритмической структуры: полное ветвление (ЕСЛИ – ТО – ИНАЧЕ) и неполное ветвление (ЕСЛИ – ТО).
Полное ветвление (рис. 2) позволяет организовать в алгоритме две ветви
(ТО или ИНАЧЕ). Неполное (рис. 3) предполагает наличие действий только на одной ветви (ТО), вторая ветвь отсутствует.
Рис. 2 Полное ветвление
Рис. 3 Неполное ветвление
Условие
Действия
Да
Нет
Условие
Действия 2
Действия 1
Да
Нет
6
ПРИМЕР 2.Разработайте алгоритм вычисления значения функции
0
,
5 2
0
,
1
)
(
x
x
x
a
X
Y
, где а – произвольное целое число, введенное с клавиатуры.
Составьте псевдокод, напишите программу на языке Паскаль. Проверьте программу на наличие ошибок.
2. Листинг программы
program functia;
uses crt ; var a: integer ; x, Y: real;
begin
clrscr; writeln (‘Вычисление значения функции’); writeln (‘Введите X и а’); readln (x, a) ;
if x > 0
then Y:=a – 1
else Y:= sqr(x)+5; writeln (‘При а =’ , а, ‘Y =’,Y:5:2); readln;
end.
1. Блок-схема
3. Тестирование
№ п/п
Значение a
Значение x
Результат выполнения программы
Ожидаемый результат
1 2
1 1
1 2
10
-4 21 21 3
1
-5 30 30
Конец
Вывод Y
X>0
Y(X)=а–1
Y(X)=X
2
+5
Да
Нет
Начало
Основы программирования / Урок #6 – Блок схемы и алгоритмы действий
Ввод x, a
7
4. Результат выполнения программы
8
Команда «Выбор»
Для выбора из нескольких альтернативных действий используется команда «выбор». Перед выполнением команды «выбор» вычисляется значение некоторого выражения Х, а затем, исходя из значения Х, выполняется определенное действие (Рис. 4).
Рис. 4 Команда «Выбор»
Структура оператора выбора имеет вид:
case of
: ;
………
: ;
else
end.
В качестве управляющей переменной можно использовать переменную целого или символьного типа.
Хn
Х2
Х1
…
Х
Действие1
Действие2
Действие n
9
Циклическая алгоритмическая конструкция
Циклической называют алгоритмическую конструкцию, в которой действие выполняется указанное число раз, или, пока не выполнится условие.
Группа повторяющихся действий цикла называется телом цикла.
Существует три типа циклов: цикл с параметром (арифметический), цикл
с предусловием и цикл с постусловием.
Цикл с параметром
В цикле с параметром число повторений цикла однозначно определено и задается с помощью начального, конечного значений параметра и шагом его изменения.
Рис. 5 Цикл с параметром
Тело цикла i= 1, N, 1
10
ПРИМЕР 3. Разработать алгоритм программы, которая выводит таблицу квадратов первых десяти целых положительных чисел.
2. Листинг программы
program kvadrat;
uses crt ; var Y, i: integer ;
begin
clrscr; writeln (‘Таблица квадратов’);
for i:=1 to 10 do
begin
Y:=i*i; writeln (i, ‘ ‘,Y)
end; readln;
end.
1. Блок-схема
3. Тестирование
Результат выполнения программы
Ожидаемый результат
1 1 2 4 3 9 4 16 5 25 6 36 7 49 8 64 9 81 10 100 1 1 2 4 3 9 4 16 5 25 6 36 7 49 8 64 9 81 10 100
Y=i*i
Начало
Конец
Вывод K i= 1, 10
Вывод i,
Y
11
4. Результат выполнения программы
Цикл с предусловием
Действия внутри этого цикла повторяются, пока выполняется условие в блоке ветвления, причем сначала проверяется условие, а затем выполняется действие.
Рис. 6 Цикл с предусловием
Условие
Тело цикла
Нет
Да
12
ПРИМЕР 4.
Найти значение всех Y = X
3
— 5 при Х, изменяющемся от 1 до 10 с шагом 2.
2. Листинг программы
program d;
uses crt ;
var
x, y: integer;
begin
clrscr; x:=1;
while x 10
Y = X
3
– 5
Да
Нет
Х = Х + 2
13
4. Результат выполнения программы
Цикл с постусловием
Тело цикла с постусловием всегда будет выполнено хотя бы один раз.
Оно будет выполняться до тех пор, пока значение условного выражения
ЛОЖНО. Как только условное выражение принимает значение ИСТИНА, цикл завершается.
Рис. 7 Цикл с постусловием
Условие
Тело цикла
Нет
Да
14
ПРИМЕР
5.
Написать программу, определяющую максимум в последовательности вводимых с клавиатуры положительных чисел. Как только введено отрицательное число или 0, программа завершается.
2. Листинг программы
program maximum;
uses crt ; var a, max: integer ;
begin
clrscr; writeln (‘Определение максимального числа’); writeln (‘Вводите последовательность чисел’); writeln (‘Программа завершается после ввода отрицательного числа или 0’); max:=0;
repeat readln (a);
if a>max thenmax:=a;
until a max
Нет
Да
15
4. Результат выполнения программы
16
Структурированные типы данных
Одномерный массив
Одномерный массив – это массив, элементы которого имеют только один индекс.
Ввод элементов массива осуществляется поэлементно, обычно в порядке возрастания индексов. Алгоритм ввода элементов одномерного массива представлен на блок-схеме (рис. 2.1).
Рис. 8 Ввод элементов одномерного массива
При обработке элементов массива доступ к ним осуществляется также в цикле, как и ввод.
Ввод а
i i= 1, N, 1
17
ПРИМЕР 6. Вычислить произведение элементов одномерного массива А(10).
1. Блок-схема
2. Листинг программы
program proizvedenie;
uses crt ; var a: array[1..20] of real; p: real; i: integer;
begin
clrscr; writeln(‘Введите элементы массива’);
for i:=1 to 10 do
begin
write (‘a[‘, i, ‘]=’); readln (a[i]);
end;
P:=1;
for i:=1 to 10 do
P:=P*a[i]; writeln (‘Произведение элементов массива = ‘, P:6:2); readln;
end.
Ввод а
i i= 1, 10, 1
Начало
P = 1 i= 1, 10, 1
Вывод Р
Р = Р
а i
Конец
18
3. Тестирование
Введенные числа
Результат выполнения программы
Ожидаемый результат
2 3 1 1 1 2 1 1 1 2
Произведение элементов массива 24 24
4. Результат выполнения программы
ПРИЛОЖЕНИЕ
Основные элементы блок-схем
Вид графического объекта
Название блока
Начало алгоритма
Конец алгоритма
Процесс. Внутри блока записывается действие, вычислительная операция или группа
Ввод/вывод данных с неопределенного носителя. Надпись внутри блока: ввод
(вывод) и список вводимых (выводимых) переменных
Ввод с клавиатуры
Вывод на монитор
Вывод на печатающее устройство
Условный блок. Условие записывается внутри блока. В результате проверки условия осуществляется выбор одного из возможных путей вычислительного процесса
Цикл с параметром
Нет
Условие
Нет
Да
Условие
Ввод /
Вывод
Конец
Начало
Тело цикла
20
Вид графического объекта
Название блока
Границы цикла. Описывает циклические процессы: «цикл с предусловием» и «цикл с постусловием»
Соединительный блок
Тело цикла
Источник: topuch.com
Линейные алгоритмы — схема, структура и вычисление
Повседневная жизнь каждого человека состоит из решения огромного количества задач разной сложности на работе или во время учебы. Некоторые задачи настолько просты, что, выполняя их, мы выполняем определенные действия автоматически, даже не задумываясь об этом. Решение любой задачи, даже самой простой, обычно осуществляется последовательно в несколько этапов. Этот тип последовательности при поиске и устранении неисправностей называется алгоритмом. Сегодня мы увидим, что такое линейные алгоритмы, как представлена их структура, как они решаются и программируются.
Алгоритмический язык
Это понятие является точным предписанием исполнителю выполнить определенную последовательность действий, которая направлена на решение проблемы.
Этот язык является средством описания алгоритмов, которые обычно ориентированы на пользователя.
Если говорить на компьютерном языке, это точный рецепт, определяющий вычислительный процесс. Это, в свою очередь, ведет от исходных данных, которые меняются, к исходному результату.
Разработка алгоритма — довольно сложный и трудоемкий процесс. Это методика составления (разработки) последовательности действий, предназначенных для решения проблем с помощью компьютера.
Свойства алгоритма
- определенность (однозначность) — представляет собой уникальность трактовки правил выполнения действий, а также порядка их выполнения;
- массовость — алгоритмы должны уметь решать целый класс конкретных задач с общей постановкой задачи.
- конечность — заключается в выполнении работы всего алгоритма за определенное конечное число фаз (шагов);
- понятность — инструкции должны быть понятны исполнителю;
- оперативность: получение требуемого результата за конечное количество шагов;
Линейные алгоритмы. Информатика 9 класса
Правила составления блок схем
Блок-схемы — совокупность действий или операций, изображенное в виде геометрических фигур. Переход от одного действия к другому обозначается направленной линией.
При составлении блок-схемы необходимо добавлять элементы сверху вниз последовательно друг за другом. При возникновении условий соблюдать древовидную иерархию. Блок-схема обязательно должна начинаться с элемента «Начало» и заканчиваться элементом «Конец», причем каждый из них должен быть употреблен только по одному разу.
Основными элементами блок-схемы являются:
Терминатор Обозначает начало или конец программы. Выделяет границы взаимодействия с внешней средой. Используется обычно с надписями «Начало»,»Конец» либо «Пуск»,»Остановка» строго по одному разу. | |
Процесс Выполнение некоторой операции (арифметической, логической либо инойдругой), в результате которой каким-либо образом изменяются данные. Возможно объединение нескольких операций в один блок. | |
Решение Выбор одного из двух возможных решений алгоритма. Внутри элемента расположено условие. Из углов ромба выходят возможные пути, обозначающиеся как «да»,»нет» либо «истина»,»ложь». В целях удобства чтения блок-схемы направление, отвечающее условию («да»/»истина»)выходит из нижнего угла ромба, противоположное из бокового. Возможно использования элемента для обозначения цикла epeat..until и while..do. | |
Модификация Выполнение циклических команд for. Операции и действия цикла располагаются ниже элемента. При каждом шаге цикла программа возвращается к заголовку по левой стрелке. Выход из цикла производится по правой боковой стрелке. | |
Предопределенный процесс Обозначение процедуры, функции, модуля (части программы вне текущего последовательного кода). | |
Данные Осуществление обмена данными (ввод-вывод). Обобщенное представление обмена информацией без определенного типа носителя. | |
Документ Вывод данных на бумажный носитель (печать на принтере). | |
Ручной ввод Неавтономный ввод данных с помощью клавиатуры. | |
Перфокарта Ввод-вывод данных с перфокарты. | |
Перфолента Ввод-вывод данных с перфоленты. | |
Запоминающее устройство с последовательным доступом Обмен данными с магнитной лентой. | |
Запоминающее устройство с прямым доступом Обмен данными с магнитным барабаном. | |
Магнитный диск Ввод-вывод данных, носителем которых является магнитный диск. | |
Оперативная память Обмен данными с оперативно-запоминающим устройством (ОЗУ). | |
Ручное управление Отображение процесса, выполняемого человеком. | |
Сохраненные данные Обмен данными при использовании запоминающего устройства, управляемого непосредственно процессором. | |
Дисплей Отображение данных на мониторе, визуальных индикаторах. | |
Извлечение Выделение одного или несколько множеств из другого множества. | |
Слияние Объединение одного или несколько множеств в общее множество. | |
Группировка Объединение множеств с выделением некоторых других. | |
Сортировка Упорядочивание множеств по заданному признаку. | |
Соединитель Используется для обрыва линия связи в одном месте и продолжения в другом. Внутри элемента блок-схемы вводится уникальный идентификатор. | |
Межстраничный соединитель Аналогичен предыдущему элементу блок-схемы, переносит линии связи с конца одной страницы в начало другой. | |
Комментарии Пометка неактивной части программы. | |
Линия потока Отображает пото данных, с возможным указанием направления их передачи. Объединяет между собой элементы блок-схемы. | |
Пунктирная линия Альтернативная связь между объектами. Используется также для обведения комментариев. | |
Параллельные действия Синхронизация нескольких операций в программе единовременно. | |
Канал связи Передача по каналам связи. | |
Пропуск Пропуск элементов блок-схемы. Используется когда можно оставить часть программы без внимания. |
Алгоритм базовые структуры
Название базовой структуры | Вид базовой структуры | Примечание |
Базовая структура следование | Базовая структура следование.Образуется из последовательности действий, следующих одно за другим: | |
Базовая структура развилка (неполная альтернатива) | Базовая структура развилка.Обеспечивает в зависимости от результата проверки условия (да или нет) выбор одного из альтернативных путей работы алгоритма. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран. | |
Базовая структура развилка (полная альтернатива) | ||
Базовая структура цикл («пока») | Базовая структура цикл. Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла. | |
Базовая структура цикл («до») | ||
Базовая структура цикл («для») |
Базовые структуры алгоритмов — это определенный набор блоков и стандартных способов их соединения для выполнения типичных последовательностей действий.
К основным структурам относятся:
Линейными — алгоритмы, в которых действия осуществляются последовательно друг за другом. Стандартная блок-схема линейного алгоритма приводится ниже:
Разветвляющимся — алгоритм, в котором действие выполняется по одной из возможных ветвей решения задачи, в зависимости от выполнения условий. В отличие от линейных алгоритмов, в которых команды выполняются последовательно одна за другой, в разветвляющиеся алгоритмы входит условие, в зависимости от выполнения или невыполнения которого выполняется та или иная последовательность команд (действий).
В качестве условия в разветвляющемся алгоритме может быть использовано любое понятное исполнителю утверждение, которое может соблюдаться (быть истинно) или не соблюдаться (быть ложно). Такое утверждение может быть выражено как словами, так и формулой. Таким образом, алгоритм ветвления состоит из условия и двух последовательностей команд.
В зависимости от того, в обеих ветвях решения задачи находится последовательность команд или только в одной разветвляющиеся алгоритмы делятся на полные и не полные (сокращенные).
Стандартные блок-схемы разветвляющегося алгоритма приведены ниже:
Циклическим — алгоритм, в котором некоторая часть операций (тело цикла — последовательность команд) выполняется многократно. Организация циклов, никогда не приводящая к остановке в выполнении алгоритма, является нарушением требования его результативности — получения результата за конечное число шагов.
Перед операцией цикла осуществляются операции присвоения начальных значений тем объектам, которые используются в теле цикла. В цикл входят в качестве базовых структур:
o блок проверки условия
o блок, называемый телом цикла
Существуют три типа циклов:
· Цикл с предусловием
· Цикл с постусловием
· Цикл с параметром (разновидность цикла с предусловием)
Если тело цикла расположено после проверки условий, то может случиться, что при определенных условиях тело цикла не выполнится ни разу. Такой вариант организации цикла, управляемый предусловием, называется циклом c предусловием.
Когда тело цикла выполняется по крайней мере один раз и будет повторяться до тех пор, пока не станет ложным условие. Такая организация цикла, когда его тело расположено перед проверкой условия, носит название цикла с постусловием.
Цикл с параметром является разновидностью цикла с предусловием. Особенностью данного типа цикла является то, что в нем имеется параметр, начальное значение которого задается в заголовке цикла, там же задается условие продолжения цикла и закон изменения параметра цикла. Механизм работы полностью соответствует циклу с предусловием, за исключением того, что после выполнения тела цикла происходит изменение параметра по указанному закону и только потом переход на проверку условия.
Стандартные блок-схемы циклических алгоритмов приведены ниже:
Данные. Понятие типа Данных
С точки зрения программиста, данные — это часть программы, совокупность значений определённых ячеек памяти, преобразование которых осуществляет код. С точки зрения компилятора, процессора, операционной системы, это совокупность ячеек памяти, обладающих определёнными свойствами (возможность чтения и записи (необяз.), невозможность исполнения).
Контроль за доступом к данным в современных компьютерах осуществляется аппаратно.
Понятие типа данных
Тип данных- множество данных, т.е. допустимых значений, где некоторый объект может принимать в программе, совместно с множеством операций по обработке этих данных. Данные задаются с помощью описания их свойств (атрибутов). Совокупность операций, т.е. действий, производимых над данными, определяется с помощью процедур и функций, реализующих эти действия. Фундаментальные типы данных подразделяются на простые или встроенные в язык программирования, и конструируемые пользователем, т.е. абстрактные. В программе объектом некоторого типа является константа или переменная. Значения, которые может принимать объект данного типа, называются константами типа. Во время выполнения программы для каждого объекта выделяется область оперативной памяти, называемая элементом хранения, в которой размещаются константы типа. Максимальное количество элементов в множестве, включающем все константы типа, называется мощностью типа. Мощность типа определяет размер элемента хранения объекта данного типа так, чтобы этот размер был достаточен для размещения любой константы типа. Формат внутреннего представления данных в элементе хранения определяется типом объекта. |
Для обработки ЭВМ данные представляются в виде величин и их совокупностей. С понятием величины связаны такая важная характеристика, как ее тип.
Тип определяет:
· возможные значения переменных, констант, функций, выражений, принадлежащих к данному типу;
· внутреннюю форму представления данных в ЭВМ;
· операции и функции, которые могут выполняться над величинами, принадлежащими к данному типу.
В языке Паскаль тип величины задают заранее. Все переменные, используемые в программе, должны быть объявлены в разделе описания с указанием их типа. Обязательное описание типа приводит к избыточности в тексте программ, но такая избыточность является важным вспомогательным средством разработки программ и рассматривается как необходимое свойство современных алгоритмических языков высокого уровня.
Иерархия типов в языке Паскаль:
Источник: cyberpedia.su