// PascalABC.NET 3.2, сборка 1383 от 09.02.2017 // Внимание! Если программа не работает, обновите версию!
begin var n:=ReadInteger('Количество строк в массиве:'); var m:=ReadInteger('Количество столбцов в массиве:'); Writeln('*** Исходный массив [',n,',',m,'] ***'); var a:=MatrRandom(n,m,-99,99); a.Println(5); Writeln(5*a.ColCount*'-'); Writeln('Сумма элементов массива: ', a.Rows.SelectMany(x->x).Sum) end.
For i:=1 to n do if a[i] > 0 then begin k:=k+1; sum:=sum+a[i] end; average:=sum/k;
(a - данный массив, sum - сумма всех положительных чисел, k - количество положительных чисел - n - индекс последнего элемента массива, i - переменная для цикла, average - переменная, сохраняющая численное значение) Запускаем цикл от 1 до n и перебираем все числа массива. Если i-тое число положительно, мы прибавляем его к sum, и увеличиваем k на 1, который сохраняет в себе количество положительных чисел массива. После завершения цикла, мы получаем k - количество положительных чисел, sum - сумма всех положительных чисел. Чтобы найти среднее арифметическое, делим сумму всех чисел на их количество. (Учитывайте, что переменная, сохраняющая среднее арифметическое должна иметь вещественный тип (real, double...)) Вот и всё. Если у вас возникают какие-то проблемы или ошибки в коде - оставьте комментарий. Если у вас проблемы с созданием массива (чтение массива с клавиатуры или создание массива со случайными числами) - опять же таки пишите:)
var d:integer;
x1,x2:real;
begin
d:=2*2-4*1*(-6);
x1:=(-2+sqrt(d))/2;
x2:=(-2-sqrt(d))/2;
writeln(x1);
writeln(x2);
end.