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

Простейший алгоритм — это алгоритм линейной структуры. Его команды выполняются одна за другой по порядку, т.е. линейно, и этот порядок ничем и никогда не нарушается. Линейной структурой обладает, к примеру, программа передач телевидения. Передачи показывают одна за другой, и очередная начинается после того как закончилась предыдущая.
Алгоритм линейной структуры напоминает план, список указаний исполнителю в порядке очередности их исполнения. Рассмотрим например, план вычисления выражения (a+b)/(a-b) для исполнителя, который за один шаг может выполнить только одно арифметическое действие:

1. Прочитать a и b.
2. Сложить a и b.
3. Вычесть b из a.
4. Результат пункта 2 разделить на результат пункта 3.
5. Показать результат пункта 4.

Особенность этих указаний в том, что исполнитель не может уклониться от выполнения пунктов одного за другим, даже если из предыдущих пунктов известно, что очередное действие бессмысленно. Например, если a = 5 и b = 5, то после выполнения 3 пункта мы получим 0, и деление станет невозможным. Однако исполнитель все равно попытается его выполнить (и получит ошибку!), потому что не умеет различать такие ситуации.

Лекция «Алгоритмы и программы линейной структуры»

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

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

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

Запишем эти пункты:

1. Ввести два числа.
2. Сложить введенные числа и запомнить результат.
3. Вывести результат.

Заметьте, для описания шагов алгоритма мы пользуемся выражениями типа «два числа», «результат», «введенные числа» для того, чтобы рассказать, с чем должна работать программа. Это не самый рациональный путь. Лучше дать таким объектам ИМЕНА, и ссылаться на них по имени. Например, назовем вводимые нами числа a и b, а результат — r. Тогда наш алгоритм примет вид:

Читайте также:
Как удалить все adobe файлы после удаления программы

1. Ввести a и b.

C++ | Линейный алгоритм в С++ (А + В)


2. a+b занести в r.
3. Вывести r.

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

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

В нашем случае это a и b, поэтому пишем:
readln (a, b)
2. Второй шаг задается с помощью оператора присваивания: r:= a + b. Эта запись означает «сложить a и b и занести результат в r».
3. Операция вывода записывается как writeln (а в скобках указывается, что выводить):
writeln(r)

Алгоритм переведен на Паскаль. Но это еще не программа. Программа в Паскале имеет вид:

Паскаль требует, чтобы мы указали ему, что означает каждое имя, используемое в программе. Это называется описанием. Мы указываем объект, его свойства, и как мы его будем называть в программе. Без этого Паскаль программу не поймет.
У нас 3 объекта: a, b, r. Они характеризуются тем, что могут хранить любое число (ведь мы можем ввести любое!). Такие объекты в программировании называются ПЕРЕМЕННЫМИ. Допустим, мы можем вводить только целые числа. Тогда a, b, r будут ЦЕЛЫМИ ПЕРЕМЕННЫМИ. Описания таких объектов в Паскале выглядит так:

var a, b, r: integer;
VAR означает, что описываются переменные, INTEGER — целого типа, а a, b и r — их имена.
После того, как мы соберем все вышеописанное, мы получим программу на Паскале:

program prim1;
var a, b, r: integer;
begin
readln(a, b);
r:= a + b;
writeln(r);
end.

Oписания и операторы (шаги) отделяются друг от друга ‘;’ (точкой с запятой). Это необходимо, чтобы определить, где кончается один и начинается другой.
Эта программа будет работать (можете проверить), но. она неудобна в обращении. Ни ввод, ни вывод не сопровождаются пояснениями. В данной программе это не так страшно, но представьте себе более сложную. Не лучше ли добавить комментарии? Например:

program prim2;
var a, b, r: integer;
begin
writeln(‘Введите a и b:’);
readln(a, b);
r:= a + b;
writeln(‘a + b = ‘, r);
readln;
end.

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

А последний оператор (readln;) позволяет задержать на экране результат до тех пор, пока не будет нажат ВВОД. Без него результат вряд ли успеете увидеть. разве только по ALT-F5 (кроме ABC Pascal).

Читайте также:
Прекращена работа программы осст

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

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

Виды условных инструкций

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

Источник: studopedia.org

1.27 1. Программы линейной структуры

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

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

Рассмотрение вопросов алгоритмизации задач и приёмов программирования удобнее всего проводить на примерах обработки числовых данных. Рассмотрим в первую очередь стандартныетипы(имеющиеся вDelphiи не требующие объявления в программе) числовых данных.

Целые типы данных

К числу стандартных целых типов относятся:

Int64 – тип, представляющий целые со знаком от –2 63 до +2 63 -1, занимает 8 байт; Integer – тип, представляющий целые со знаком от –2147483648 до +2147483647, занимает 4 байта; LongInt – тип, эквивалентный типу Integer;

SmallInt – тип, представляющий целые со знаком от –32768 до +32767, занимает 2 байта;

ShortInt – тип, представляющий целые со знаком от –128 до +127, занимает 1 байт; Byte – тип, представляющий целые без знака от 0 до 255, занимает 1 байт; Word – тип, представляющий целые без знака от 0 до 65535 занимает 2 байта;

LongWord – тип, представляющий целые без знака от 0 до 4294967295, занимает 4 байта;

Cardinal – тип, эквивалентный типу LongWord .

Например, чтобы объявить переменные с именами I и K как переменные типа Integer и N – как Byte, в программе следует записать

  1. var
  2. I, K:Integer; //Объявление целых переменных I и K типа Integer
  3. N:Byte //Объявление целой переменной Nтипа Byte
  1. const
  2. Nmax=10; //Объявление именованной константы Nmax

Источник: studfile.net

Цель работы: научиться писать программы линейной структуры.

Каждая программа на С++ начинается с одного или нескольких операторов #include. Эти операторы указывают компилятору включить содержимое данного заголовочного файла в текст программы. Заголовочные файлы (файлы с расширением. h ― head files) содержат определенные операторы С++ или программные определения. В таблице 1.1 перечислены некоторые заголовочные файлы стандартной библиотеки.

Читайте также:
Программа scandoc с какими адаптерами работает
Стандартные входные и выходные потоки
Файловые входные и выходные потоки
Манипуляторы
Математические функции
Функции для работы со строками
Функции стандартной библиотеки
Стандартный ввод/вывод (в стиле С)
Функции управления выводом
Графические функции

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

Некоторые стандартные функцииперечислены в таблице 1.2.

Функция Назначение Заголовочный файл
abs(x) Возвращает модуль числа x, если x – целое число
acos(x) Возвращает арккосинус х
asin(x) Возвращает арксинус х
atan(x) Возвращает арктангенс х
ceil(x) Округляет число х вверх
cos(x) Вычисляет косинус х
exp(x) Возвращает степень числе е
fabs(x) Возвращает модуль числа х, если x – вещественное число
floor(x) Округляет число х вниз
log(x) Вычисляет натуральный логарифм х
log10(x) Вычисляет логарифм х по основанию 10
pow(x,y) Возводит число х в степень у
sin(x) Вычисляет синус х
sqrt(x) Вычисляет квадратный корень х
tan(x) Возвращает тангенс х
getchar Читает символ из стандартного ввода (с клавиатуры)
gets Читает символы с клавиатуры до появления символа новой строки
atof(s) Преобразует строку s в вещественное число
atoi(s) Преобразует строку s в целое число
itoa(v,s,n) Преобразует целое число v в строку s в системе счисления по основанию n
random(n) Генерирует случайные числа в диапазоне от 0 до n
strcat(s1, s2) Присоединяет строку s2 к строке s1
strcmp(s1, s2) Сравнивает строки s1 и s2. Результат: -1, если s1 < s2 0, если s1 = s2 1, если s1 > s2
strchr(s,c) Ищет первое вхождение символа c в строке s. Возвращает указатель на найденный символ или NULL
strcpy(s1, s2) Копирует строку s2 в строку s1
strlen(s) Возвращает длину строки s
strncat(s1, s2,n) Присоединяет n символов строки s2 к строке s1
strncmp(s1, s2,n) Сравнивает n символов строки s2 и строки s1. Результат аналогичен strcmp
strstr(s1, s2) Ищет подстроку s2 в строке s1. Возвращает указатель на начало найденного фрагмента в s1 или NULL
strupr(s) Выводит строку s в верхнем регистре
strlwr(s) Выводит строку s в нижнем регистре

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

Источник: megalektsii.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru