Программирование разветвляющихся процессов 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Программирование разветвляющихся процессов



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

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

1. if логическое выражение then оператор1 else оператор 2;

2. if логическое выражение then

begin группа операторов 1 end
else

begin группа операторов 2 end;

3. if логическое выражение then оператор;

4. if логическое выражение then

begin группа операторов end.

Если логическое выражение истинно, тогда выполняется опе­ратор 1 или группа операторов 1, иначе выполняется оператор 2, или группа операторов 2, или оператор if пропускается и выполняется следующий за ним оператор.

Пример. Составить программу вычисления следующей функции

Программа

var

A, X, Y: real; Описание вещественных переменных

begin Начало программы

writeln ('Введите А, Х'); Вывод на экран фразы “Введите А,Х”

readl (А, X); Ввод значений переменных

if X>=A then

Y:= А + SQRT (X - А) Вычисление Y по первой формуле

else

Y:= LN (ABS (X+A)) +SIN(X)* SIN(X); Вычисление Y по второй формуле

writeln ('Y= ‘Y:1Q:2, ' X= ', X:5:2); ВыводY,X

end. Конец программы

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

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

Виды операторов цикла.

1. Оператор цикла с предварительным условием.

2. Оператор цикла с последующим условием.

3. Оператор цикла с параметром.

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

Форма записи оператора цикла с предусловием:

while логическое выражение do

begin операторы циклической части программы (тело цикла) end;

Если в циклической части оператора стоит всего один оператор, то опе­раторные скобки begin и end можно не указывать.

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

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

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

Пример. Вычислить значения функции Y при изменении X от С до D с шагом Н.

Программа

var

X, A. Y, C, D, H: real;

begin

writeln (‘Введите С, D, H, A’);

readln (C, D, H, A);

x:= C;

while x <= D do

begin

if x > A then y:= x*cos(A*x)

else y:=sin(x) + A*a;

writeln (‘y= ‘,y:10:2, ‘ x= ‘,x:10:2);

x:= x + H

end;

end.

Оператор цикла с последующим условием имеет следующую форму записи:

repeat

тело цикла (выполняемые операторы)

until логическое выражение.

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

Пример. Вычислить значения функции Y при изменении X от С до D с шагом Н.

Программа

var

X, A. Y, C, D, H: real;

begin

writeln (‘Введите С, D, H, A’);

readln (C,D,H,A);

x:= C;

repeat

if x > A then y:= x*cos(A*x)

else y:= sin(x) + A*a;

writeln (‘y= ‘,y:10:2, ‘ x= ‘,x:10:2);

x:=x + H

until x<=D

end.

Оператор цикла с параметром организует выполнение одного оператора заранее известное число раз.

Существует два варианта оператора цикла с параметром.

1. for i:= a1 to a2 do

begin

тело цикла

end;

2. fo r i:= a1 downto a2 do

begin

тело цикла

end,

где: i - параметр цикла, являющийся переменной порядкового типа; а1 - выражение, определяющее начальное значение параметра цикла; а2 - выражение, определяющее конечное значение параметра цикла.

Цикл действует следующим образом. Вначале вычисляются и запоминаются начальное и конечное значения параметра цикла. Далее параметру i цикла присваивается начальное значение. Затем значение параметра i цикла сравнивается со значением а2. Пока параметр цикла остается меньше или равен конечному значению а2 (в первом варианте) и больше или равен конечному значению а2 (во втором варианте) выполняется в очередной раз операторы из тела цикла. В противном случае происходит выход из цикла.

После выхода из цикла параметр цикла становится неопределенным.

Пример. Вычислить значения функции Y при изменении X от С до D с шагом 1.

Программа.

var

X, A. Y, C, D: real;

begin

writeln (‘Введите С, D, H, A’);

readln (C,D,H,A);

for i:=C to D do begin if x > A then y:= x*cos(A*x)

else y:=sin(x) + A*a;

writeln (‘y= ‘,y:10:2, ‘ x= ‘,x:10:2);

x:=x + H;

end;

readln

end.

Лабораторная работа 10 (2 часа)

Borland Pasсal.

Одномерные массивы

Массив - это множество однотипных элементов.

При описа­нии массива необходимо указать общее число входящих в массив элементов и тип этих элементов. Например:

var

А: array [1..10] of real;

В: array [1..5] of integer;

Из описания массивов следует, что одномерный массив А состоит из 10 вещественных чисел, а одномерный массив В состоит из 5 элементов целого типа.

При работе с массивами выполняются циклические дейст­вия.

Пример. В массиве Р(20) найти количество положительных элементов и сформировать новый массив Р1, каждый элемент которого полу­чается делением соответствующего элемента массива Р на найден­ное количество.

Программа.

var

Р, Р1: array [1..20] оf real;
К, I: integer;

begin

writeln (‘Введите Р(20)’);

for i:=1 to 20 do

read P[i];

readln;

K:= 0;

for i:=1 to 20 do

if P[i] > 0 then

k:=k+1;

for i:=1 to 20 do

P1[i]:= P[i]/k;

writeln (‘Исходный массив Р’);

for i:=1 to 20 do

write (P[i]:6:2);

writeln;

writeln (‘Количество положительных элементов = ’,k);

writeln (‘Новый массив Р1’);

for i:=1 to 20 do

write (p1[i]:6:2);

writeln;

readln

end.

Двумерные массивы

При описании двумерных массивов (матриц) необходимо указать границы изменения двух индексов и тип элементов матри­цы. Например:

var

А: array [1..3, 1..5] of real;

В: array [1..2,1..2] of integer;

В данном примере матрица А состоит из трех строк и пяти столбцов. Все элементы матрицы А являются вещественными числами. Матрица В состоит из двух строк и двух столбцов. Все элементы матрицы В являются целыми числами.

Пример. Составить программу, которая в матрице А(4,5) определит сумму элементов каждой строки, выберет среди этих сумм наи­большую и выведет на экран дисплея матрицу А, суммы строк, наибольшую сумму и номер строки с наибольшей суммой.

 

Программа.

var

А: array [1..4,1..5] of real; C, N, I, J: integer; max: real;

begin

writeln (‘Введите матрицу А(4,5)’);

for i:=1 to 4 do

for j:=1 to 5 do

begin

writeln (‘A(‘,i,’,’,j,’)=’); readln (a[i,j])

end;

for i:=1 to 4 do

begin

C:= 0;

for j:=1 to 5 do

C:= C + A[i,j];

writeln ('Строка № ',i:10, 'сумма элементов = ', C:10:2);

if i=1 then begin max:= C; n:= i end;

if c > max then begin max:= C; n:= I end

end;

writeln (‘Матрица А’);

for i:=1 to 4 do

begin

for j:=1 to 5 do

write (A[i,j]:8:3); writeln

end;

writeln (‘Максимальная сумма: ’,S:8:3);

writeln (‘Номер строки: ‘,N:3)

end.

Литература

1. Глушаков С. В. Персональный компьютер: Учеб. курс / С. В. Глушаков, И. В. Мельников. – Харьков; Ростов-на-Дону: Фолио: Феникс, 2000. – 520 с.

2. Информатика: Базовый курс, 2-е издание / Под ред. С. В. Симоновича.: Питер, 2007. – 640 с.

3. Кукарникова Т. Э. Информатика: Учеб. пособие. – Воронеж: Изд-во Воронеж. гос. ун-та, 2000. – 317 с.

4. Степаненко О. С. Персональный компьютер: Учеб. курс – 2-е изд. пересмотр. и доп. – М. и др.: Диалектика, 2001. – 383 с.

5. Левин А. Самоучитель Левина. Windows XP и Vista. – Спб.: Питер, 2008. – 624 с.

 

Учебное пособие

 

Груздев Владислав Николаевич

 

 

Информатика

Часть 2. Приложения Word, CorelDraw, MathCad, Pascal

 

Практикум для вузов

 

 

Редактор

 



Поделиться:


Последнее изменение этой страницы: 2016-12-16; просмотров: 1133; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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