Помогите пожалуйста Дано N целое число и N x N размер матрицы. Составить блок-схему и **...

0 голосов

Помогите пожалуйста
Дано N целое число и N x N размер матрицы.
Составить блок-схему и на языке Turbo Pascal написать программу,которые подсчитают и напечатают среднее арифметическое для печати матричных элементов главной диагонали вниз, значение которых относятся данному [a;b] диапазону .


image

спросил от Одаренный (2.0k баллов) в категории Информатика
оставил комментарий от Супер Доцент (55.0k баллов)

Random можно использовать?

оставил комментарий от Супер Доцент (55.0k баллов)

или как именно заполняется матрица? только не говори что с клавиатуры

оставил комментарий от Одаренный (2.0k баллов)

сейчас пример отправлю

оставил комментарий от Супер Доцент (55.0k баллов)

гониво, все равно с рандомом сделаю. с клавиатуры матрицу - это издевательство

1 Ответ
0 голосов
ответил от Супер Доцент (55.0k баллов)
 
Лучший ответ

Const
    handsfree = false;

var
    matrix: array[1..100, 1..100] of real;
    sum, a, b: real;
    i, j, n, k: integer;

begin
    {ввод матрицы}
    if handsfree then begin
        n := random(20) + 2;
    end
    else begin
        write('n =');
        readln(n);
    end;
    
    writeln('Matrix data:');
    for i := 1 to n do
    begin
        for j := 1 to n do
            if handsfree then begin
                matrix[i, j] := random(100) - 50;
                write(matrix[i, j]:4, ' ')
            end
            else
                read(matrix[i, j]);
        writeln;
    end;
    
    {сумма, произведение, пр. агригаты}
    write('Enter a, b =');
    readln(a, b);
    sum := 0;
    k := 0;
    for i := 1 to n do
        if (matrix[i, i] >= a) and (matrix[i, i] <= b) then {если нужен фильтр}<br>        begin
            sum := sum + matrix[i, i];
            k := k + 1;
        end;
    
    if k > 0 then
        writeln('Average (selected) = ', sum / k)
    else writeln('Such elements not found');
end.

оставил комментарий от Супер Доцент (55.0k баллов)

если сделать handsfree = true? то будет автоматическое заполнение

оставил комментарий от Одаренный (2.0k баллов)

if (matrix[i, i] >= a) and (matrix[i, i] <= b) then {если нужен фильтр}<br> begin
sum := sum + matrix[i, i];

оставил комментарий от Одаренный (2.0k баллов)

zdes [i,i] ili [i,j]?

оставил комментарий от Одаренный (2.0k баллов)

i chto znachit handsfree i random?

оставил комментарий от Супер Доцент (55.0k баллов)

random - это функция, которая возвращает случайное число, генератор случайных чисел в неком деапазоне

оставил комментарий от Супер Доцент (55.0k баллов)

handsfree - это переменная такая

оставил комментарий от Супер Доцент (55.0k баллов)

хотя в данной программе это константа)

оставил комментарий от Супер Доцент (55.0k баллов)

в зависимости от ее значения действие программы меняется.

оставил комментарий от Супер Доцент (55.0k баллов)

zdes [i,i] потому что мы идем по центральной диагонали

оставил комментарий от Супер Доцент (55.0k баллов)

j = i

...