Примеры выполнения заданий
Задание 1
Исходные данные.
Даны векторы
A = (–10, 4, 8, –2, 11, 3, –90, –6, 0, 1), B = (–4, 2, 5, –16, 1, –1, 0, –9, 45, 50).
1. Найти максимальный элемент каждого из векторов.
2. Найти среднее арифметическое элементов обоих векторов.
3. Найти сумму четных элементов вектора А.
4. Произвести перестановку элементов векторов в порядке возрастания и убывания соответственно
Код программы.
Program primer1; {название программы}
uses crt; {подключение стандартного пакета}
const
n=10; {задание количества элементов векторов}
A:array [1..n] of integer= (–10,4,8,–2,11,3,–90,–6,0,1); {задание матриц}
B:array [1..n] of integer= (–4,2,5,–16,1,–1,0,–9,45,50);
var
i, j: integer; {задание переменных счетчиков}
max,min,p,k, sum:integer; {переменные для хранения минимального и
максимального элементов, суммы, количества элементов}
begin;
clrscr; {очистка экрана}
{-----------------------------------------------------------------------------------------}
{нахождение максимального компонента вектора А}
{присвоение начальных значений}
max:=A[1];
for i:=2 to n do
begin;
{сравнение и переопределение}
if a[i]>=max then max:=a[i];
end;
{вывод найденных значений}
writeln('Максимальный элемент А: ',max:4);
{-----------------------------------------------------------------------------------------}
{нахождение максимального компонента вектора B}
{присвоение начальных значений}
max:=B[1];
for i:=2 to n do
begin;
{сравнение и переопределение}
if B[i]>=max then max:=B[i];
end;
{вывод найденных значений}
writeln('Максимальный элемент B: ',max:4);
{------------------------------------------------------------------------------------------}
{среднее арифметическое элементов векторов}
sum:=0;
for i:=1 to n do
sum:=sum+A[i]+B[i];
writeln('Ср. арифметическое элементов обоих векторов: ',sum/(2*n):6:3);
{------------------------------------------------------------------------------------------}
{Сумма четных элементов вектора А}
sum:=0;
for i:=1 to n do
if A[i] mod 2=0 then sum:=sum+A[i];
writeln('Сумма четных элементов вектора А: ', sum:5);
{------------------------------------------------------------------------------------------}
{перестановка по возрастанию компонент вектора А}
min:=1;
for i:=1 to n do
begin;
for j:=i+1 to n do
if A[j]<=A[min] then min:=j;
p:=A[i];
A[i]:=A[min];
A[min]:=p;
min:=i+1;
end;
{Вывод вектора А после преобразования}
write('Компоненты А по возрастанию: (');
For i:=1 to n do
write(A[i]:4);
writeln(')');
{------------------------------------------------------------------------------------------}
{перестановка по убыванию компонент вектора В}
max:=1;
for i:=1 to n do
begin;
for j:=i+1 to n do
if B[j]>=B[max] then max:=j;
p:=B[i];
B[i]:=B[max];
B[max]:=p;
max:=i+1;
end;
{Вывод вектора В после преобразования}
write('Компоненты В по убыванию: (');
For i:=1 to n do
write(B[i]:4);
writeln(')');
readln;{ожидание нажатия клавиши Ввод}
end.
Задание 2
Исходные данные.
Дана
матрица А
размерности 4 × 4:
.
1. Найти сумму элементов заданного столбца.
2. Определить сумму элементов заданной строки .
3. Найти сумму элементов на главной диагонали.
4. Определить минимальный и минимальный элементы матрицы. Вывести положение минимального и максимального элементов в матрице.
5. Поменять эти элементы местами.
6. Найти количество положительных элементов.
Код программы.
Program primer2; {название программы}
uses crt; {подключение стандартного пакета}
const
{задание матрицы}
A:array [1..4,1..4] of integer= ((0,–3,2,1),(8,–11,–1,4),(2,10,7,–45),(9,0,67,1));
var
i,j,i1,j1: integer; {задание переменных счетчиков}
maxi,mini,maxj,minj,p,k,sum:integer; {переменные для хранения
минимального и максимального элементов, суммы, количества
элементов}
begin;
clrscr;{очистка экрана}
sum:=0;
{------------------------------------------------------------------------------------------}
{нахождение суммы элементов заданного столбца}
write('Введите номер столбца для нахождения суммы его эл-тов j1=');
readln(j1);
for i:=1 to 4 do
sum:=sum+a[i,j1];
writeln('Сумма по заданному столбцу: ',sum:5);
{------------------------------------------------------------------------------------------}
{нахождение суммы элементов заданной строки}
write('Введите номер строки для нахождения суммы ее эл-тов i1=');
readln(i1);
for j:=1 to 4 do
sum:=sum+a[i1,j];
writeln('Сумма по заданной строке: ',sum:5);
sum:=0;
{------------------------------------------------------------------------------------------}
{сумма элементов на главной диагонали}
sum:=0;
for i:=1 to 4 do
sum:=sum+a[i,i];
writeln('Сумма элементов на главной диагонали: ', sum:5);
{------------------------------------------------------------------------------------------}
{нахождение и вывод максимального и минимального элементов}
mini:=1;
minj:=1;
maxi:=1;
maxj:=1;
for i:=1 to 4 do
begin;
for j:=1 to 4 do
begin;
if A[i,j]>=A[maxi,maxj] then
begin;
maxi:=i; {запоминаем позицию нового максимального}
maxj:=j;
end;
if A[i,j]<=A[mini,minj] then
begin;
mini:=i; {запоминаем позицию нового минимального}
minj:=j;
end;
end;
end;
writeln('Минимальный элемент: A[',mini,',',minj,']=',A[mini,minj]);
writeln('Максимальный элемент: A[',maxi,',',maxj,']=',A[maxi,maxj]);
{------------------------------------------------------------------------------------------}
{замена местами минимального и максимального элементов}
p:=A[mini,minj];
A[mini,minj]:=A[maxi,maxj];
A[maxi,maxj]:=p;
{Вывод преобразованной матрицы А}
writeln('Матрица после замены местами максимального и минимального
элементов:');
for i:=1 to 4 do
begin;
for j:=1 to 4 do
write(A[i,j]:5);
writeln;
end;
{------------------------------------------------------------------------------------------}
{нахождение кол-ва неотрицательных элементов}
k:=0;
for i:=1 to 4 do
begin;
for j:=1 to 4 do
if A[i,j]>0 then k:=k+1;
end;
writeln('количество положительных элементов: ',k:4);
readln;{ожидание нажатия клавиши ввода}
end.
Задание 3
Исходные данные.
Дана
матрица А
размерности 4 × 4:
.
1. Найти сумму элементов, не превышающих по модулю заданного L.
2. Произвести в заданной строке перестановку элементов в обратном порядке.
3. Провести транспонирование данной матрицы.
Код программы.
Program primer3; {название программы}
uses crt; {подключение стандартного пакета}
const
{задание матрицы}
A:array [1..4,1..4] of integer=((0,–3,2,1),(8,89,66,4),(–2,10,7,–45),(9,–4,77,1));
var
i,j,i1: integer; {задание переменных счетчиков}
p,k,sum,L:integer;{переменные для хранения суммы, количества
элементов, параметра}
begin;
clrscr;{очистка экрана}
{------------------------------------------------------------------------------------------}
{Нахождение суммы эл-тов, не превышающих по модулю заданного L}
write('Введите параметр: L=');
readln(L);{ввод параметра L}
sum:=0;
for i:=1 to 4 do
for j:=1 to 4 do
if abs(A[i,j])<=L then sum:=sum+A[i,j];
writeln('Сумма элементов, не превышающих по модулю заданного L: ',
sum:5);
{------------------------------------------------------------------------------------------}
{Проведение перестановки в обратном порядке в заданной строке}
write('Строка, в которой будет проведена перестановка: i1=');
readln(i1);{задание номера строки для перестановки}
for j:=1 to 2 do
begin;
p:=a[i1,j];
a[i1,j]:=a[i1,4+1–j];
a[i1,4+1–j]:=p;
end;
{Вывод преобразованной матрицы}
writeln('Матрица после перестановки элементов в заданной строке');
for i:=1 to 4 do
begin;
for j:=1 to 4 do
write(A[i,j]:5);
writeln;
end;
{------------------------------------------------------------------------------------------}
{транспонирование матрицы А с произведенной в заданной строке
перестановкой}
for i:=1 to 3 do
for j:=i+1 to 4 do
begin;
p:=a[i,j];
a[i,j]:=a[j,i];
a[j,i]:=p;
end;
writeln('Матрица после перестановки элементов в заданной строке c
выполненным транспонированием');
for i:=1 to 4 do
begin;
for j:=1 to 4 do
write(A[i,j]:5);
writeln;
end;
readln;
end.
