Предмет: Информатика, автор: Аноним

Помогите решить 22 задачу в обычном паскале

Приложения:

iolandavalerypad353: могу в PascalABC.NET, в обычном не хочу
iolandavalerypad353: если под обычным вы подразумеваете турбо-паскаль или даже фрипаскаль
Аноним: именно тот что вы указали выше
iolandavalerypad353: так что, давать вам решение в PascalABC.NET?
Аноним: если не трудно
Аноним: Занятно... а какой же паскаль "необычный"?
iolandavalerypad353: да, если PascalABC.NET это уже обычный, то значит все остальные уже необычные =)
Аноним: ну если его в школе изучают то значит обычный или нет ?
Аноним: Интересно, а при нахождении произведения сам минимальный элемент 1) не учитывать 2) учитывать один раз 2) учитывать два раза

Ответы

Автор ответа: iolandavalerypad353
1

Если будете вводить матрицу поэлементно, придется изменить ввод, тут вводятся натуральные числа от 1 до m*m c шагом 1, для примера. Чтобы вводить по одному элементу, замените код в 3 строке на:

var a := ReadMatrInteger(m, m);

Ну и Если нужны вещественные то, соответсвенно на такую

//  var a := ReadMatrReal(m, m);

Ах да, тут еще число С введено заранее, тоже если захотите вводить его вручную, нужно заменить на это:

var c := ReadInteger; //(или var c := ReadReal)

Приложения:

iolandavalerypad353: еще и размерность матрицы m тоже, =)
Автор ответа: Аноним
0

PascalABC.NET 3.4.2, сборка 1864 от 11.11.2018

Внимание! Если программа не работает, обновите версию!

begin

 var m := ReadInteger('Количество строк/столбцов в матрице:');

 Writeln('*** Исходная матрица ***');

 var a := MatrRandom(m, m, -99, 99);

 a.Println(4); Writeln(4 * a.ColCount * '-');

 var c := ReadInteger('Введите число С:');

 var s := a.ElementsWithIndexes; // в памяти не хранится !

 s.Where(t -> t[0] < c).Count.Println;

 var p := s.MinBy(t -> t[0]);

 var r := a.Row(p[1]).Aggregate(BigInteger(1), (x, y)-> x * y);

 r *= a.Col(p[2]).Aggregate(BigInteger(1), (x, y)-> x * y);

 r.Println

end.

Приложения:
Похожие вопросы
Предмет: Математика, автор: garaninanana2111