Дан двумерный массив размерностью 8x7, заполненный случайным образом. Сначала вывести
Дан двумерный массив размерностью 8x7, заполненный случайным образом. Поначалу вывести начальный массив, дальше:
- заменить все элементы первых 3-х столбцов на их квадраты.
- вставить меж средними строчками первую строку.
- удалить все столбцы, в которых 1-ый элемент больше заключительного.
- поменять местами первую и заключительную строчку.
Язык:Pascal
Помогите пожалуйста,завтра надо сдать.
1 ответ
Каршова Виктория
// PascalABC.NET 3.3, сборка 1555 от 21.10.2017
// Внимание! Если программа не работает, обновите версию!
begin
Writeln('*** Начальный массив 8x7 ***');
var a:=MatrRandom(8,7,-99,99);
a.Println(5); Writeln(5*a.ColCount*'-'); // исходный массив
// поменять все элементы первых 3-х столбцов на их квадраты
for var i:=0 to 2 do
a.SetCol(i,a.Col(i).Select(x-gt;x*x).ToArray);
Writeln('*** После подмены в 3х первых столбцах ***');
a.Println(5); Writeln(5*a.ColCount*'-');
// воткнуть меж средними строчками первую строчку
SetLength(a,9,7);
for var i:=7 downto 4 do
a.SetRow(i+1,a.Row(i));
a.SetRow(4,a.Row(0));
Writeln('*** После вставки первой строки в середину ***');
a.Println(5); Writeln(5*a.ColCount*'-');
// удалить все столбцы, в которых 1-й элемент больше заключительного
var d:=0;
for var i:=0 to 6 do
if a[0,i]gt;a[8,i] then d+=1
else
if dgt;0 then a.SetCol(i-d,a.Col(i));
SetLength(a,9,7-d);
Writeln('*** После удаления столбцов ***');
a.Println(5); Writeln(5*a.ColCount*'-');
// поменять местами первую и заключительную строчку
a.SwapRows(0,a.RowCount-1);
Writeln('*** Результирующий массив ***');
a.Println(5)
end.
Пример
*** Исходный массив 8x7 ***
-42 10 -92 -23 51 -50 31
62 -75 25 -37 87 -9 63
-99 67 61 -19 -27 17 -96
-45 -7 83 -34 33 35 -95
29 86 -85 -94 43 -89 63
-38 64 -93 55 -53 -56 98
-34 -20 34 -2 -89 92 85
-11 48 -75 -81 -38 73 -97
-----------------------------------
*** После подмены в 3х первых столбцах ***
1764 100 8464 -23 51 -50 31
3844 5625 625 -37 87 -9 63
9801 4489 3721 -19 -27 17 -96
2025 49 6889 -34 33 35 -95
841 7396 7225 -94 43 -89 63
1444 4096 8649 55 -53 -56 98
1156 400 1156 -2 -89 92 85
121 2304 5625 -81 -38 73 -97
-----------------------------------
*** После вставки первой строки в середину ***
1764 100 8464 -23 51 -50 31
3844 5625 625 -37 87 -9 63
9801 4489 3721 -19 -27 17 -96
2025 49 6889 -34 33 35 -95
1764 100 8464 -23 51 -50 31
841 7396 7225 -94 43 -89 63
1444 4096 8649 55 -53 -56 98
1156 400 1156 -2 -89 92 85
121 2304 5625 -81 -38 73 -97
-----------------------------------
*** После удаления столбцов ***
100 -50
5625 -9
4489 17
49 35
100 -50
7396 -89
4096 -56
400 92
2304 73
----------
*** Результирующий массив ***
2304 73
5625 -9
4489 17
49 35
100 -50
7396 -89
4096 -56
400 92
100 -50
// Внимание! Если программа не работает, обновите версию!
begin
Writeln('*** Начальный массив 8x7 ***');
var a:=MatrRandom(8,7,-99,99);
a.Println(5); Writeln(5*a.ColCount*'-'); // исходный массив
// поменять все элементы первых 3-х столбцов на их квадраты
for var i:=0 to 2 do
a.SetCol(i,a.Col(i).Select(x-gt;x*x).ToArray);
Writeln('*** После подмены в 3х первых столбцах ***');
a.Println(5); Writeln(5*a.ColCount*'-');
// воткнуть меж средними строчками первую строчку
SetLength(a,9,7);
for var i:=7 downto 4 do
a.SetRow(i+1,a.Row(i));
a.SetRow(4,a.Row(0));
Writeln('*** После вставки первой строки в середину ***');
a.Println(5); Writeln(5*a.ColCount*'-');
// удалить все столбцы, в которых 1-й элемент больше заключительного
var d:=0;
for var i:=0 to 6 do
if a[0,i]gt;a[8,i] then d+=1
else
if dgt;0 then a.SetCol(i-d,a.Col(i));
SetLength(a,9,7-d);
Writeln('*** После удаления столбцов ***');
a.Println(5); Writeln(5*a.ColCount*'-');
// поменять местами первую и заключительную строчку
a.SwapRows(0,a.RowCount-1);
Writeln('*** Результирующий массив ***');
a.Println(5)
end.
Пример
*** Исходный массив 8x7 ***
-42 10 -92 -23 51 -50 31
62 -75 25 -37 87 -9 63
-99 67 61 -19 -27 17 -96
-45 -7 83 -34 33 35 -95
29 86 -85 -94 43 -89 63
-38 64 -93 55 -53 -56 98
-34 -20 34 -2 -89 92 85
-11 48 -75 -81 -38 73 -97
-----------------------------------
*** После подмены в 3х первых столбцах ***
1764 100 8464 -23 51 -50 31
3844 5625 625 -37 87 -9 63
9801 4489 3721 -19 -27 17 -96
2025 49 6889 -34 33 35 -95
841 7396 7225 -94 43 -89 63
1444 4096 8649 55 -53 -56 98
1156 400 1156 -2 -89 92 85
121 2304 5625 -81 -38 73 -97
-----------------------------------
*** После вставки первой строки в середину ***
1764 100 8464 -23 51 -50 31
3844 5625 625 -37 87 -9 63
9801 4489 3721 -19 -27 17 -96
2025 49 6889 -34 33 35 -95
1764 100 8464 -23 51 -50 31
841 7396 7225 -94 43 -89 63
1444 4096 8649 55 -53 -56 98
1156 400 1156 -2 -89 92 85
121 2304 5625 -81 -38 73 -97
-----------------------------------
*** После удаления столбцов ***
100 -50
5625 -9
4489 17
49 35
100 -50
7396 -89
4096 -56
400 92
2304 73
----------
*** Результирующий массив ***
2304 73
5625 -9
4489 17
49 35
100 -50
7396 -89
4096 -56
400 92
100 -50
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
выпиши в свою тетрадь те правила этикета которые тебе не были
Разные вопросы.
Анна хорошо учится у неё много подруг свободное от учёбы время
Обществознание.
10) Килограмм конфет дороже килограмма печенья на 52 р. За 8
Математика.
Во сколько раз число атомов кислорода в земной коре больше числа
Химия.
Составить монолог от имени дневника двоечника 7-10 предложений
Русский язык.
Рассматривая литературный язык как сложное взаимодействие книжного языка и разговорного,В.И.Чернышёв горячо
Разные вопросы.
Облако тегов