- •Оглавление
- •Предисловие
- •Введение
- •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 Prim16;
Var
i, j, n : integer;
A : array [1..10,1..10] of real;
B, C : array [1..10] of real;
begin
writeln (' введите n');
readln (n);
writeln (' введите матрицу A');
for i:=1 to n do
for j:=1 to n do
read (a[i,j]);
for i:=1 to n do
if (i mod 2)=0 then b[i]:=1/(i*i+2)
else b[i]:=1/i;
for i:=1 to n do
begin c[i]:=0;
for j:=1 to n do
c[i]:=c[i]+b[j]*a[i,j];
end;
writeln (' вывод C');
for i:=1 to n do
writeln (c[i]:5:2);
end.
Исходные данные: Результат:
Размерность матрицы A:
n=3
Матрица A: Вектор C:
2.3.2. Обработка двумерных массивов (матриц)
2.3.2.1. Вычисление суммы и количества элементов массива
Пример 17. Найти количество отрицательных элементов матрицы А(m,n), удовлетворяющих условию aij>-4.5 (m=3, n=4).
Программа Схема алгоритма
Program Prim17;
var
a : array[1..10,1..10] of real;
i,j,m,n,k : integer;
begin
writeln('Введите m, n');
readln(m,n);
writeln('Введите матрицу');
for i:=1 to m do
for j:=1 to n do
read(a[i,j]);
k:=0;
for i:=1 to m do
for j:=1 to n do
if (a[i,j]<0) and (a[i,j]>-4.5) then k:=k+1;
writeln('k=', k)
end.
Исходные данные: Результат:
m = 3; n = 4 k=3
Матрица A
4 -5 6
-1 3 -2 7
9 -3 5 8
Пример 18. Найти сумму элементов главной и побочной диагоналeй матрицы С(m,m), (m=4).
Указание.
Нужно учитывать, что элементы главной диагонали матрицы C имеют вид cii; побочной – сi,(n+1)-i , следовательно, для обработки элементов главной и побочной диагоналей матрицы нужно использовать один цикл с параметром i.
Программа Схема алгоритма
Program Prim18;
var
c:array[1..10,1..10] of real;
i,j,m : integer;
s1, s2 : real;
begin
writeln('Введите m');
readln(m);
writeln('Введите матрицу');
for i:=1 to m do
for j:=1 to m do
read(c[i,j]);
s1:=0; s2:=0;
for i:=1 to m do
begin
s1:=s1+c[i,i];
s2:=s2+c[i,(n+1-i)];
end;
writeln('s1=', s1:6:2, 's2=', s2:6:2);
end.
Исходные данные: Результат:
m = 4 S1= 30.00
Матрица C S2= 35.00
8 6 11 7
5 4 9 8
25 3 -2 1
16 7 4 20
2.3.2.2. Поиск элементов массива по заданному критерию
Пример 19. Найти наибольший элемент по каждому столбцу матрицы В(m,n). (Пусть m<=10, n<=10)
Программа Схема алгоритма
Program Prim19;
var
b : array[1..10,1..10] of real;
i,j,m,n : integer;
max : real;
begin
writeln('Введите m, n');
readln(m,n);
writeln('Введите матрицу');
for i:=1 to m do
for j:=1 to n do
read(b[i,j]);
for j:=1 to n do
begin
max:=b[1,j];
for i:=2 to m do
if b[i,j]>max then max:=b[i,j];
writeln('j=', j:2,' max=', max:6:2);
end;
end.
Исходные данные: Результат:
m = 4; n = 4 j= 1 max= 12.00
Матрица B: j= 2 max= 6.00
2 -1 7 5 j= 3 max= 7.00
3 6 4 -9 j= 4 max= 6.00
8 5 -10 2
12 4 3 6