ТОП 10:

Алгоритм разветвляющейся структуры



 

Алгоритм, порядок выполнения действий в котором зависит от итогов проверки условия, называется алгоритмом разветвляющейся структуры. Его схема имеет такой вид:

 
 

 

На схеме алгоритма разветвление изображается блоком "решение", внутри которого записывается проверяемое условие.

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

Пример 1. Найти корни квадратного уравнения .

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

1) если d < 0, то действительных корней уравнение не имеет;

2) если d = 0, то корни действительные и равные ;

3) если d > 0, то корни действительные и разные:

 

.

 

Схема алгоритма решения квадратного уравнения имеет вид

 
 

 

 


Если алгоритм содержит несколько вложенных друг в друга разветвлений, то эффективно использовать разветвление с "пустой" веткой "нет":

 
 

 

 


Пример 2. Решение квадратного уравнения изобразим с использованием разветвлений с пустой веткой "нет".

 
 

 

 


Алгоритм циклической структуры с

Заданным числом повторений

 

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

 

 
 

 


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

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

1) i= iнач, если i£ iкон, то выполняется цикл;

2) i= iнач+1, если i£ iкон, то выполняется цикл;

3) i= iнач+2, если i£ iкон, то выполняется цикл;

...

n) i= iкон, цикл выполняется последний раз.

Затем выполняются действия после цикла.

 

Алгоритмизация задач с использованием

Массивов

 

Массив – упорядоченный набор фиксированного числа данных одного типа.

Например:

1) совокупность целых чисел 0 1 -2 3 7 8 – массив А из шести элементов целого типа;

2) набор чисел 2,5 -1,125 -3,5 -0,5 -2,5 – массив Х из пяти элементов вещественного типа.

Количество элементов массива, с которым выполняется вычислительный процесс, называется рабочей размерностью
массива.

Каждый элемент массива характеризуется:

1) именем массива, элементом которого он является;

2) номером (индексом), указывающим место нахождения элемента в массиве;

3) значением.

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

Пример 1. Для заданного массива Р рабочей размерности k £ 15 вычислить

 

 

Для решения задачи используем алгоритм суммы, реализуемый циклом с заданным числом повторений. В качестве параметра цикла используется переменная i, обозначающая номер текущего элемента массива. Значение i для перебора всех элементов изменяется от 1 до k.

       
   
 
 

 


Проверка алгоритма вычисления суммы:

...

3. S=0

4. i=1,…,k

4.1. i=1 S=S+P1=0+P1= P1

4.2. i=2 S=S+ P2= P1 +P2

4.3. i=3 S=S+ P3 =P1 +P2 +P3

...

4.k. i=k S=S+Pk =P1 +P2 +…+Pk-1 +Pk

5. Вывод S.

 

Пример 2. Вычислить среднее геометрическое положительных элементов массива X(n), n £ 10.

Среднее геометрическое – корень m-й степени из произведения m сомножителей.

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

 

 

 
 

 

 

 

 


Пример 3. Для заданного массива t рабочей размерности n построить массив по формуле:

Исходными данными для решения задачи будут:

n – рабочая размерность массивов t и ;

t – массив времен;

tр – переменная, значение которой определяет условие;

нач, a.

В решение задачи можно выделить три основных этапа:

1) ввод массива t;

2) построение массива ;

3) вывод массива .

Схема алгоритма решения:

 

 

 
 

 


Структура Паскаль-программы

 

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

 

PROGRAM <имя>;

USES <список используемых модулей>;

LABEL <раздел описания меток>;

CONST <раздел описания констант>;

TYPE <раздел описания типов>;

VAR <раздел описания переменных>;

PROCEDURE <раздел описания процедур>;

FUNCTION <раздел описания функций>;

BEGIN

<раздел операторов>;

END.

 

Заголовок

Общий вид описания:

PROGRAM <имя программы>;

где <имя программы> – идентификатор, состоящий из букв латинского алфавита, цифр, может также содержать знак разбивки ( _ ).

Пример: Program lr1_010;

 

Подсоединение модулей

Общий вид описания:

USES <список используемых модулей>;

Для работы с экраном используется модуль CRT.

Пример: Uses CRT;

 

Раздел описания констант

 

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

CONST <идентификатор 1> = <значение 1>;

<идентификатор 2> = <значение 2>;

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

Пример:

Const G=9.81;

В языке Паскаль имеется ряд заранее определенных констант, например PI (p=3,141592654), которые используются без описания.

 

Раздел описания типов

 

Используется для описания типов переменных, отличных от стандартных, и имеет вид

TYPE <имя типа 1> = <вид типа 1>;

<имя типа 2> = <вид типа 2>;

Пример: Type Vect = array[1..15] of real;

В данном примере описан тип Vect, определяющий массивы, состоящие из 15-ти элементов вещественного типа.

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

 

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

VAR <имя переменной 1, имя переменной 2,...>:<тип 1>;

<имя переменной 3, имя переменной 4,...>:<тип 2>;

В качестве <тип 1>, <тип 2> могут использоваться:

1) стандартный тип;

2) имя типа, описанное в разделе TYPE;

3) непосредственно указанный вид типа.

Пример:

1) Type Mas=array[1..20] of real;

Var a,b:real;

M,N:Mas;

2) Var M,N: array[1..20] of real;

a,b:real;

Раздел операторов

 

Раздел операторов, реализующий действия, начинается зарезервированным словом begin, за которым следуют операторы языка. Завершает раздел зарезервированное слово end, после которого должна стоять точка. Например:

Begin

<оператор 1>;

<оператор 2>;

<оператор 3>

End.

 

Рассмотрим наиболее часто используемые операторы.

 

ClrScr; - обращение к процедуре очистки экрана.

 

Операторы вывода. Используются для вывода текстовой информации и значений переменных. В языке Паскаль имеют вид:

Write(c1, c2, , cn); – осуществляет вывод данных и оставляет курсор на этой же строке;

Writeln(c1, c2, …, cn); – вывод данных и перевод курсора на следующую строку;

Writeln; – осуществляет перевод курсора на следующую строку или пропуск строки.

В операторах вывода c1, c2, …, cn – список вывода, который может состоять из :

1) имен переменных, значения которых будут выводиться;

2) числовых, символьных или строковых констант;

3) арифметических или логических выражений (значение выражения вычисляется и выводится).

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

При выводе целых, символьных и строковых данных формат задается в виде

Write(c1:p1, c2:p2, …);

Writeln(c1:p1, c2:p2, …);

где pi – количество позиций, отводимых пользователем.

Пример. Даны два целых числа i=5 и j= -32.

При записи

writeln(i,j);

writeln(i:3,j:5);

...

получим на экране 5-32

5 -32.

При выводе вещественных данных

Write(ci:pi:qi, , …);

Writeln(ci:pi:qi ,…);

где pi – количество позиций, отводимых под все число;

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

Пример. Даны два вещественных числа a=-12.23 и b=0.5.

При записи

Write(a:7:3,b:5:2);

на экране получим -12.230 0.50.

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

Пример.

Writeln('Значения a=',a:7:3,' и b=',b:5:2);

На экране получим:

Значения a=-12.230 и b= 0.50.

 

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

Read(c1, c2, …, cn);

Readln(c1, c2, …, cn);

где c1, c2, …, cn – список ввода, состоящий из имен переменных.

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

После набора всех констант для одного оператора ввода необходимо нажать клавишу ¿ ("Ввод", Enter).

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

Пример:

Write('введите а=');

Readln(a);

 

 

Оператор присваивания. Общий вид оператора:

<имя переменной>:=<выражение>;

Порядок работы оператора:

1) вычисляется значение выражения;

2) значение переменной становится равным результату вычисления.

Тип переменной должен быть тем же, что и тип выражения.

Исключениями являются:

тип переменной – вещественный,

тип выражения – вещественный или целый.

 

Составной оператор – это объединение нескольких операторов в одну группу. Общий вид оператора:

Begin

<оператор 1>;

<оператор 2>;

...

<оператор N>

End;

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

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

 

Оператор условного перехода. Общий вид оператора:

1) If <логическое выражение>

then <оператор 1>

else <оператор 2>;

2) If < логическое выражение > then < оператор 1>;

где < оператор 1>, <оператор 2> – простые или составные операторы. Если <оператор 1>, <оператор 2> реализуют несколько действий (более одного), то они должны быть обязательно составными.

Порядок работы оператора:

1) вычисляется значение логического выражения;

2) если значение логического выражения – true (ИСТИНА), то выполняется <оператор 1>, а затем оператор, следующий за IF;

3) если значение логического выражения – false (ЛОЖЬ), то выполняется <оператор 2> (если он присутствует). После отработки <оператора 2> и в случае его отсутствия выполняется оператор, следующий за оператором IF.

Замечание: знак ";" перед ELSE не ставится.

 







Последнее изменение этой страницы: 2016-08-15; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.235.172.213 (0.018 с.)