Предмет: Информатика,
автор: Liza14062002
ДАМ МНОГО БАЛЛОВ
Дана матрица, содержащая как положительные, так и отрицательные элементы размером n на m. Сформируйте из заданой матрицы новую удалить все строки, содержащие только положительные элементы.
Ответы
Автор ответа:
0
// PascalABC.NET 3.3, сборка 1625 от 17.01.2018
// Внимание! Если программа не работает, обновите версию!
begin
var (n,m):=ReadInteger2('Количество строк и столбцов в матрице:');
Writeln('*** Исходная матрица ***');
var a:=MatrRandom(n,m,-10,99);
a.Println(4); Writeln(4*a.ColCount*'-');
var L:=new List<integer>; // для номеров подходящих строк
for var i:=0 to n-1 do
if a.Row(i).Any(t->t<=0) then L.Add(i);
n:=L.Count;
if n=0 then begin
Writeln('Все строки содержат только положительные элементы');
exit
end;
var b:=new integer[n,m];
for var i:=0 to n-1 do
b.SetRow(i,a.Row(L[i]));
Writeln('*** Результирующая матрица ***');
b.Println(4)
end.
Пример
Количество строк и столбцов в матрице: 5 4
*** Исходная матрица ***
12 -9 64 34
53 64 49 74
33 27 -6 72
91 14 23 16
15 64 9 77
----------------
*** Результирующая матрица ***
12 -9 64 34
33 27 -6 72
// Внимание! Если программа не работает, обновите версию!
begin
var (n,m):=ReadInteger2('Количество строк и столбцов в матрице:');
Writeln('*** Исходная матрица ***');
var a:=MatrRandom(n,m,-10,99);
a.Println(4); Writeln(4*a.ColCount*'-');
var L:=new List<integer>; // для номеров подходящих строк
for var i:=0 to n-1 do
if a.Row(i).Any(t->t<=0) then L.Add(i);
n:=L.Count;
if n=0 then begin
Writeln('Все строки содержат только положительные элементы');
exit
end;
var b:=new integer[n,m];
for var i:=0 to n-1 do
b.SetRow(i,a.Row(L[i]));
Writeln('*** Результирующая матрица ***');
b.Println(4)
end.
Пример
Количество строк и столбцов в матрице: 5 4
*** Исходная матрица ***
12 -9 64 34
53 64 49 74
33 27 -6 72
91 14 23 16
15 64 9 77
----------------
*** Результирующая матрица ***
12 -9 64 34
33 27 -6 72
Приложения:
Автор ответа:
0
О... я наоборот сделал, не удалил, а сохранил строки. Сейчас поправлю.
Автор ответа:
0
Поправил.
Автор ответа:
0
а можете написать на обычном паскале(в делфи)?мне такое решение не совсем подходит
Автор ответа:
0
У Вас вообще не указан язык программирования в вопросе, какой Дельфи? Почему я должен писать программу дважды из-за Вашей, простите, назову вещи своими именами, безалаберности? Писать программу - это труд. И достаточно большой.
Похожие вопросы
Предмет: Русский язык,
автор: topnet8080876
Предмет: Химия,
автор: maxkozelsuka
Предмет: Математика,
автор: masuko1
Предмет: Математика,
автор: Rabia1120y