Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы Алгоритм и Програм.doc
Скачиваний:
5
Добавлен:
14.09.2019
Размер:
407.04 Кб
Скачать

Программа

Program Prim4;

label 10;

var

c,d,x,y : real;

begin

writeln('Введите c, d, x');

readln(c,d,x);

if x<=c then if c*x+d>0 then y:=ln(c*x+d)

else

begin

writeln('Нет решения');

goto 10;

end

else if x>=d then y:=cos(x-c)

else

if d*x-3>=0 then y:=sqrt(d*x-3)

else begin

writeln('Нет решения');

goto 10;

end;

writeln('y=', y:8:3);

10 : end.

Исходные данные: Результат:

I вариант c = 3.26; d = 5.5; x = 8.12 y = 0.147

II вариант c = 12; d = -14; x = 1 Нет решения

III вариант c = 2.36; d = 10; x = 1.5 y = 2.606

IV вариант c = 2; d = 8; x = 5 y = 6.083

V вариант c = -4; d = 1; x = -2 Нет решения

Примечание.

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

Введем переменную k и присвоим ей начальное значение, равное нулю (k:=0). В случае возникновения исключительной ситуации (например, если выражение c*x+d принимает отрицательное значение) присвоим переменной k значение, равное единице (k:=1).

Т.о. значение переменной k определяет наличие или отсутствие исключительной ситуации.

Схема алгоритма

Программа

Program Prim4-1;

var c,d,x,y : real;

k : integer;

begin

writeln('Введите c, d, x');

readln(c,d,x);

k:=0;

if x<=c then if c*x+d>0 then y:=ln(c*x+d) else k:=1

else if x>=d then y:=cos(x-c)

else if d*x-3>=0 then y:=sqrt(d*x-3) else k:=1;

if k=0 then writeln('y=', y:8:3) else writeln('Нет решения');

end.

2. Циклические вычислительные процессы

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

Для описания циклических процессов в языке Pascal имеются операторы цикла for-to-do, repeat-until, while-do [Л1, стр. 54-58].

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

Массив – это упорядоченная последовательность данных одного типа.

Различают одномерные, двумерные и n-мерные массивы.

Пример одномерного массива (вектора), состоящего из n элементов:

А={a1, a2,…, ai, …, an}

где ai – текущий элемент массива A; i – порядковый номер (индекс) этого элемента; n – количество элементов (размерность) массива; a[i] – i-ый элемент массива A в языке Pascal.

Пример двумерного массива (матрицы), состоящего из n * n элементов:

B={b11, b12, …, b1n, b21, b22, … , b2n, …, bij, … , bn1, bn2, … , bnn}

где bij - текущий элемент массива B; i,jиндексы этого элемента, n*n - количество элементов (размерность) массива; b[i,j] –элемент массива B в языке Pascal.

В примерах, рассмотренных далее, используются следующие обозначения:

A(n) – массив, состоящий из n элементов;

B(n,n) – массив, состоящий из n*n элементов.