// PascalABC.NET 3.2, сборка 1417 от 28.03.2017 // Внимание! Если программа не работает, обновите версию!
begin var n:=ReadInteger('n='); Writeln('*** Исходная матрица ***'); var a:=MatrRandom(n,n,-99,99); a.Println(4); Writeln(4*a.ColCount*'-'); Writeln('Четных элементов: ',a.ElementsByRow.Where(x->x.IsEven).Count) end.
Ты понимаешь, что для начала стоит сказать , что в паскале несколько видов повторения бывает. В звисимости от видов и разные механизмы. Например цикл пока или цикл с предусловием он называется: while <условие> do begin <тело цикла> end; до тех пора выполныется условие выполняем цикл.
Цикл с постусловием: repeat <тело цикла> until <условие выхода> повторять какие то действия до тех пор пока не это число указанно например не попадет в условие выхода
Если считать что у племени мульти в алфавите не 17, а 16 символов, то задача решается так: На 1 символ у племени мульти требуется log₂16 = 4 бита На сообщение из 100 символов - 100*4 = 400 бит Для племени пульти получится соответственно log₂32=5 бит, на все сообщение 50*5=250 бит Сравниваем: 400 бит > 250 бит Если в задаче 17, а не 16, то значение логарифма получится не целым (4.08746284125), можно это значение дальше и подставлять. Если считать, что каждый символ кодируется целым числом бит, то на 1 символ у племени мульти потребуется также 5 бит (округление выполняют всегда в большую сторону). Остальные расчеты делаются аналогично
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('n=');
Writeln('*** Исходная матрица ***');
var a:=MatrRandom(n,n,-99,99);
a.Println(4); Writeln(4*a.ColCount*'-');
Writeln('Четных элементов: ',a.ElementsByRow.Where(x->x.IsEven).Count)
end.
Пример
n= 7
*** Исходная матрица ***
-87 22 -72 -48 55 -92 4
-96 44 -77 61 30 -72 -34
-60 -60 7 79 98 -68 -68
36 52 18 73 83 33 28
-32 -36 16 41 36 -22 26
-43 15 -34 -4 13 62 -10
-37 -86 -81 81 -87 -64 -60
Четных элементов: 32