М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Holochka
Holochka
20.09.2022 17:22 •  Информатика

Обработка двумерных массивов. алгоритм вычисления среднего значения массива, пример программы

👇
Ответ:
Gvgvv
Gvgvv
20.09.2022
Пример, ненужное уберешь

const
    handsfree = true;

var
    a: array[1..100, 1..100] of real;
    max, min: real;
    sum, product: real;
    i, j, m, n, k: integer;

begin
    {ввод матрицы}
    if handsfree then begin
        n := random(20) + 2;
        m := random(20) + 2;
    end
    else begin
        write('n, m =');
        readln(n, m);
    end;
    
    writeln('Данные матрицы:');
    for i := 1 to m do
    begin
        for j := 1 to n do
            if handsfree then begin
                a[i, j] := random(100) - 50;
                write(a[i, j]:4, ' ')
            end
            else
                read(a[i, j]);
        writeln;
    end;
    
    {минимумы и максимумы}
    max := a[1, 1];
    min := a[1, 1];
    for i := 1 to m do
        for j := 1 to n do
        begin
            if max < a[i, j] then max := a[i, j];
            if min > a[i, j] then min := a[i, j];
        end;
    writeln('max = ', max);
    writeln('min = ', min);
    
    {сумма, произведение, пр. агригаты}
    sum := 0;
    product := 1;
    for i := 1 to m do
        for j := 1 to n do
            if a[i, j] <> 0 then {если нужен фильтр}
            begin
                sum := sum + a[i, j];
                product := product * a[i, j];
                k := k + 1;
            end;
    writeln('sum = ', sum);
    writeln('product = ', product);
    writeln('average = ', sum / (n * m));
    writeln('average (selected) = ', sum / k);
end.
4,4(90 оценок)
Открыть все ответы
Ответ:
jora2003123
jora2003123
20.09.2022
//PascalABC.NET
//Версия 3.3, сборка 1634 (14.02.2018)

1)
begin
  var a:=ArrRandom(ReadInteger('n='),20,79); a.Println;
  var x:=a.Where(t->t.IsEven).Count; 
  If x>0 then Println('Количество четных:',x) else Println('Четных нету');
  var y:=a.Where(t->t mod 10=6).Count; 
  If y>0 then Println('Количество оканч. на 6:',y) else Println('Оканч. на 6 нету');
end.

Пример:
n= 5
79 29 27 74 27
Количество четных: 1 
Оканч. на 6 нету 

2)
begin
  var a:=ArrRandom(10,0,100); a.Println;
  Println('Кол-во пар:',Range(0,8,2).Where(t->a[t]=a[t+1]).Count)
end.

Пример:
56 93 72 72 71 24 37 55 91 91
Кол-во пар: 2 
4,5(97 оценок)
Ответ:
дуда1
дуда1
20.09.2022
1. Если число оканчивается на 6, то оно четное согласно признаку делимости на 2, поэтому проверка на четность не нужна.

// PascalABC.NET 3.3, сборка 1634 от 14.02.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),20,80); a.Println;
  var k:=a.Where(t->t mod 10=6).Count;
  if k>0 then Writeln(k)
  else Writeln('Нет')
end.

Пример
n= 15
47 53 73 26 75 64 70 32 27 80 29 53 20 62 66
2

2. Достаточно много раз нужно запускать задачу, чтобы суметь получить случайную последовательность с парой одинаковых соседних элементов...

// PascalABC.NET 3.3, сборка 1634 от 14.02.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(10,0,100); a.Println;
  var k:=a.Pairwise.Where(t->t[0]=t[1]).Count;
  if k>0 then Writeln(k)
  else Writeln('Нет')
end.

Пример
60 41 87 87 95 75 72 32 8 52
1
4,7(94 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ