Задача 1
Записать на место отрицательных элементов матрицы нули, а на место положительных элементов матрицы — единицы.
Работа программы
Задается двумерный массив(a[i,j])путем рандомизации, после чего программа переписывает данный массив следующим образом вместо всех положительных чисел пишет единицы, а вместо всех отрицательных нули.
Назначение переменных
Назначение переменных, используемых в задаче, приведено в таблице 1
Таблица 1 – Назначение переменных
Переменная | Тип | Назначение |
а | Array of Integer | Двумерный массив |
I,N,J,M | Integer | N,M,I,Jцелочисленные переменные |
Блок – схема алгоритма программы
Начало |
N:=5 m:=5 |
i:=1 to n do |
A[I,j]:=random(10)-5 |
j:=1 to n do |
Вывод массива |
I:=1 to n do |
J:=1 to m do |
A[I,j]<=0 |
Да |
Нет |
a[I,j]:=0 |
a[I,j]:=1 |
Вывод массива |
Конец |
Рис. 1 Блок схема алгоритма программы
Текстпрограммы
program nuli;
uses crt;
var a:array [1..100,1..100] of integer;
i,j,n,m:integer;
begin
randomize;
n:=5;
m:=5;
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random(10)-5;
write(a[i,j]:2,' ');
end;
writeln;
end;
for i:=1 to n do
begin
for j:=1 to m do
begin
if a[i,j]<=0 then
a[i,j]:=0 else
a[i,j]:=1;
write(a[i,j],' ');
end;
writeln;
end;
readln;
end.
Тестирование
Задается двумерный массив(a[i,j])путем рандомизации, после чего программа переписывает данный массив следующим образом вместо всех положительных чисел пишет единицы, а вместо всех отрицательных нули.
1:
Массив 2 3 -3-4-5
2-2 1-5 0
-2-5 4-5 4
-4 3-5 0-2
-5-2-3 4-4
Новый массив 1 1 0 0 0
1 0 1 0 0
0 0 1 0 1
0 1 0 0 0
0 0 0 1 0
Задача 2
В двумерном массиве целых чисел поменять местами строки и столбцы с одинаковыми номерами.
Работа программы
Задаются 2 двухмерных массива(a,b[i,j]) путем рандомизации, после чего программа меняет местами их строки и столбцы.
Назначение переменных
Назначение переменных, используемых в задаче, приведено в таблице 1
Таблица 1 – Назначение переменных
Переменная | Тип | Назначение переменных |
А,B | Array of integer | Исходные массивы |
I,N,J,M | Integer | Целочисленные переменные, n, m=const |
Блок – схема алгоритма программы
Начало |
N:=3 m:=3 |
i:=1 to n do |
j:=1 to m do |
Заполняем массив |
Вывод массива |
j:=1 to m do |
i:=1 to n do |
b[I,j]:=a[I,j] |
Вывод массива |
Конец |
Текстпрограммы
program obmenmestami;
uses crt;
var a,b:array [1..100,1..100] of integer;
i,j,n,m,t:integer;
begin
n:=3;
m:=3;
randomize;
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random(10);
write(a[i,j],' ');
end;
writeln;
end;
writeln;
for i:=1 to n do
begin
for j:=1 to m do
begin
b[i,j]:=a[j,i];
write(b[i,j],' ');
end;
writeln;
end;
readln;
end.
Тестирование
Введите 7 целых чисел, после чего программа выдаст вам новый массив в зависимости от введенных вами чисел.
1:
Первый массив
Второй массив
Задача 3
Дана вещественная матрица размерности n * m. Сформировать вектор b, в котором элементы вычисляются как:
- произведение элементов соответствующих строк;
- среднее арифметическое соответствующих столбцов;
- разность наибольших и наименьших элементов соответствующих строк;
- значения первых отрицательных элементов в столбце.
Работа программы
Вводится исходный двухмерный массив(a[i,j]), после чего программа начинает выполнять следующие действия, находит произведение элементов соответствующих строк, среднее арифметическое соответствующих столбцов, разность наибольших и наименьших элементов соответствующих строк, значения первых отрицательных элементов в столбцах.
Назначение переменных
Назначение переменных, используемых в задаче, приведено в таблице 1
Таблица 1 – Назначение переменных
Переменная | Тип | Назначение переменной |
a | Array of integer | Исходный двухмерный массив |
i,j,t,b,mi,ma | integer | Целочисленные переменные необходимые в теле программы. |
Блок – схема алгоритма программы
Начало |
Вывод массива |
Заполнение массива |
i:=1 to n do |
j:=1 to m do |
i:=1 to n do |
b:=1 |
j:=1 to m do |
b:=b*a[I,j] |
j:=1 to m do |
t:=0 |
i:=1 to n do |
t:=t+a[I,j] |
Вывод результата |
Вывод результата |
i:=1 to n do |
mi:=0 ma:=0 |
j:=1 to m do |
mi>a[I,j] |
Да |
Нет |
mi:=a[I,j] |
ma<a[I,j] |
Да |
Нет |
ma:=a[I,j] |
Вывод результата |
I AQAADwAAAAAAAAAAAAAAAABHBQAAZHJzL2Rvd25yZXYueG1sUEsFBgAAAAAEAAQA8wAAAFEGAAAA AA== " adj="-11796480,,5400" path="m86573,l1921297,r86573,86573l2007870,519430r,l,519430r,l,86573,86573,xe" fillcolor="#f9f9f9" strokecolor="black [3213]" strokeweight=".25pt">
j:=1 to m do |
b:=0 |
i:=1 to n do |
A[I,j]<0 and b=0 |
b:=4 |
Да |
Нет |
Вывод результата |
Конец |
Текстпрограммы
program matrix;
uses crt;
const N=4; M=5;
var A: array[1..N,1..M] of integer;
i,j,b,mi,ma,t: integer;
begin
for i:=1 to N do
begin
for j:=1 to M do
begin
A[i,j]:=random(20)-10;
write(A[i,j]:5);
end;
writeln;
end;
writeln;
for i:=1 to N do
begin b:=1;
for j:=1 to M do
begin
b:=b*a[i,j];
end;
writeln(b);
end;
writeln;
for j:=1 to M do
begin t:=0;
for i:=1 to N do
begin
t:=t+A[i,j];
end;
write(t/N:6:2);
end;
writeln;
writeln;
for i:=1 to N do
begin
mi:=0;
ma:=0;
for j:=1 to M do
begin
if mi>A[i,j] then mi:=A[i,j];
if ma<A[i,j] then ma:=A[i,j];
end;
writeln(ma-mi);
end;
writeln;
for j:=1 to M do
begin
b:=0;
for i:=1 to N do
begin
if (A[i,j]<0) and (b=0) then
begin b:=4;
write(A[i,j]:6);
end;
end;
end;
end.
Тестирование
Вводится исходный двухмерный массив(a[i,j]), после чего программа начинает выполнять следующие действия, находит произведение элементов соответствующих строк, среднее арифметическое соответствующих столбцов, разность наибольших и наименьших элементов соответствующих строк, значения первых отрицательных элементов в столбцах.
1:
9 -9 -4 -9 1
-9 7 8 -3 -5
-4 3 3 7 -7
-2 9 -10 0 4
-2916
-7560
-1.5 2.5 -0.75 -1.25 -1.75
-9 -9 -4 -9 -5
Задача 4
Даны натуральное число n, действительная квадратная матрица порядка n, действительные числа a 1,..., a n+5. Элементы последовательности a 1,..., a n+5 домножить на 10, если наибольший элемент матрицы (в предположении, что такой элемент единственный) находится на главной диагонали, и на 0.5 в противном случае.
Работа программы
Путем рандомизации задается квадратная матрица(двух мерный массив), также задается ряд последовательности чисел (одномерный массив), если наибольший элемент квадратной матрицы лежит на главной диагонали, то каждый элемент последовательности(одномерный массив) домножается на 10, во всех остальных случаях на 0.5
Назначение переменных
Назначение переменных, используемых в задаче, приведено в таблице 1
Таблица 1 – Назначение переменных
Переменная | Тип | Назначение переменной |
M,A,B | Array of integer | Исходный двумерный массив(m). a,bодномерные массивы |
I,n,j,max,imax,jmax | Integer | Различные целочисленные константы используемые в теле программы. |
Блок – схема алгоритма программы
Начало |
I:=1 to n do |
N:=3 |
j:=1 to n do |
A[I,j]:=random(200) |
Вывод массива |
I:=1 to n+5 do |
A[I,j]:=random(10) |
Вывод массива |
Max:=m[1,1] imax:=1 jmax:=1 |
I:=1 to n do |
j:=1 to n do |
M[I,j]>max |
Max:=m[I,j] imax:=i jmax:=j |
Вывод элементамассива |
imax=jmax |
Да |
Нет |
Да |
Нет |
I:=1 to n+5 |
B[i]:=a[i]*10 |
Выводмассива |
I:=1 to n+5 |
B[i]:=a[i]*0.5 |
Выводмассива |
Конец |
Текстпрограммы
program umnogenie;
uses crt;
var m:array [1..100,1..100] of integer;
a:array [1..100] of integer;
b:array [1..100] of real;
i,j,n,max,imax,jmax:integer;
begin
randomize;
n:=3;
for i:=1 to n do
begin
for j:=1 to n do
begin
m[i,j]:=random(200);
write(m[i,j],' ');
end;
writeln;
end;
for i:=1 to n+5 do
begin
a[i]:=random(10);
write(a[i]:3,' ');
end;
max:=m[1,1];
imax:=1;
jmax:=1;
for i:=1 to n do
for j:=1 to n do
if m[i,j]>max then
begin
max:=m[i,j];
imax:=i;
jmax:=j;
end;
writeln('Ìàêñèìàëüíûé ýëåìåíò ìàññèâà m','[',imax,',',jmax,']=',max);
if imax=jmax then
for i:=1 to n+5 do
begin
b[i]:=a[i]*10;
write(b[i],' ');
end
else
for i:=1 to n+5 do
begin
b[i]:=a[i]*0.5;
write(b[i],' ');
end;
readln;
end.
Тестирование
Путем рандомизации задается квадратная матрица(двух мерный массив), также задается ряд последовательности чисел (одномерный массив), если наибольший элемент квадратной матрицы лежит на главной диагонали, то каждый элемент последовательности(одномерный массив) домножается на 10, во всех остальных случаях на 0.5
1:
74 93 197
76 198 72
65 124 9
1 8 2 1 0 3 7 2 Максимальный элемент массива m[2,2]=198
10 80 20 10 0 30 70 20