Заданы одномерные массивы a и b. найти сумму положительных элементов массива b и заменить на это значение все элементы массива а расположение перед максимальным элементом массива
PascalABC.NET 3.3.5, сборка 1660 от 20.04.2018 Внимание! Если программа не работает, обновите версию!
begin var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println; var b:=ArrRandom(ReadInteger('n='),-50,50); b.Println; var sp:=b.Where(t->t>0).Sum; var im:=a.IndexMax; if im>0 then begin a:=ArrFill(im,sp)+a[im:]; a.Println end else Writeln('Максимальный элемент стоит первым') end.
// PascalABC.NET 3.0, сборка 1157 от 02.02.2016 begin var n:=ReadInteger('n='); if n<0 then Writeln(n,'! не определено: n<0') else if n=0 then Writeln('0!=1') else begin var p:BigInteger:=1; for var i:=2 to n do p*=i; Writeln(n,'!=',p) end end.
в кинозале всего 16×32=512 мест. Сообщение о купленном билете однозначно определяет выбор одного из этих мест. Из уравнения 2 i = 512=29получаем: i=9 бит. Но эту же задачу можно решать иначе. Сообщение о номере ряда несет 4 бита информации, т.к. 24=16. Сообщение о номере места несет 5 бит информации, т.к. 25=32. В целом сообщение про ряд и место несет: 4+5=9 бит информации. Данный пример иллюстрирует выполнение закона активности информации (правило сложения): количество информации в сообщении одновременно о нескольких результатах независимых друг от друга событий равно сумме количеств информации о каждом событии отдельно.
Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
var b:=ArrRandom(ReadInteger('n='),-50,50); b.Println;
var sp:=b.Where(t->t>0).Sum;
var im:=a.IndexMax;
if im>0 then begin a:=ArrFill(im,sp)+a[im:]; a.Println end
else Writeln('Максимальный элемент стоит первым')
end.
Пример
n= 15
-34 -10 30 16 -36 35 10 39 21 50 29 -41 4 25 -28
n= 13
-36 -6 -3 5 -34 -19 -35 -23 2 49 -8 24 -3
80 80 80 80 80 80 80 80 80 50 29 -41 4 25 -28