- •Оглавление
- •Предисловие
- •Введение
- •1. Разветвляющиеся вычислительные процессы
- •If логическое_выражение then оператор1 еlse оператор2;
- •If логическое_выражение then оператор1;
- •Пример 1. Вычислить значение функции y(X)
- •Программа
- •Программа
- •2. Циклические вычислительные процессы
- •2.1. Циклы с заданным числом повторений
- •2.1.1. Вычисление массива значений функции
- •2.1.2. Обработка одномерных массивов
- •2.1.2.1. Поиск наименьшего (наибольшего) элемента массива
- •2.1.2.2. Вычисление суммы и количества элементов массива
- •2.1.2.3. Вычисление произведения элементов массива
- •2.1.2.4. Поиск элементов массива по заданному критерию
- •2.2. Циклы с неизвестным числом повторений
- •2.2.1. Табулирование функции
- •2.2.2 Итерационные вычислительные процессы
- •2.2.3. Вычисление суммы членов бесконечного ряда
- •2.3. Сложные циклы
- •2.3.1. Пример алгоритма, содержащего вложенный цикл
- •Программа
- •2.3.2. Обработка двумерных массивов (матриц)
- •2.3.2.1. Вычисление суммы и количества элементов массива
- •2.3.2.2. Поиск элементов массива по заданному критерию
- •3. Работа с текстовыми файлами
- •Программа
- •4. Функции в языке Pascal
- •5. Процедуры в языке Pascal
- •Программа
- •Программа
- •Исходные данные
- •Результаты
- •6. Модули в языке Pascal
- •Unit имя-модуля;
- •Uses имя-модуля1, имя-модуля2, …, имя-модуляN;
- •Пример модуля (библиотеки) с именем Unitmatr
- •Пример рабочей программы (программы пользователя)
- •Литература Методические пособия кафедры
Программа
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 элементов.