Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб 5-7.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
222 Кб
Скачать
☆

Примеры выполнения заданий

Задание 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.