Volkanovaa19
?>

(pascal) дан двухмерный массив целых чисел. найти столбец с максимальной суммой элементов

Информатика

Ответы

Николаевич1033
Var  a: array[0..1000, 0..1000] of integer;  n, l, s, maxs, max: longint;
begin  for var i := 1 to 1000 do    for var j := 1 to 1000 do       a[i, j] := 0;  maxs := 0;  read(n);  read(l);  for var i := 1 to n do    for var j := 1 to l do     begin      read(a[i, j])    end;  s := 0;  for var i := 1 to n do  begin    for var j := 1 to l do      s := s + a[i, j];        if (s > maxs) then begin maxs := s; max := i; end;    s := 0;  end;    writeln(max);end.
oooviktoria17

ответ: 110.

Объяснение:

Максимально подробно.

В начале программы переменная s равна 0, n - 10.

Далее идет цикл "for" от 0 до n, то есть от 0 до 10.

Цикл "for" - последовательность команд, которые программа будет выполнять какое-то количество раз (в данном случае 11 раз:

для "i" равного 0,1,2,3,4,5,6,7,8,9 и 10).

Последовательность команд описывается между словами begin и end:

if і = n-i then s:=s+A[i]+A[i+1];

Рассмотрим подробнее эту строчку. В ней проверяется равенство:

i = n-i

Если это равенство верно, то программа переходит к инструкции, описанной после слова then: s:=s+A[i]+A[i+1];

Если же неверно - программа переходит к следующему значению i.

n - число постоянное и нигде не меняется, оно равно 10, то есть условие выглядит так:

i = 10-i

Когда такое возможно? "i" у нас меняется от 0 до 10 включительно. Посмотрим. Для этого мысленно продумаем весь ход работы программы. В начале i равно 0. Смотрим условие:

0 = 10 - 0

Неверно. 0 не равно 10. Далее программа переходит к следующему i, то есть единице.

i=1: 1 = 10 - 1

Тоже неверно. 1 не равно 9.

i=2: 2 = 10 - 2 Неверно. 2 не равно 8.

i=3: 3 = 10 - 3 Неверно. 3 не равно 7.

i=4: 4 = 10 - 4 Неверно. 4 не равно 6.

i=5: 5 = 10 - 5

Верно. Если это равенство верно, то программа переходит к инструкции, описанной после слова then: s:=s+A[i]+A[i+1];

Здесь к переменной "s", которая изначально равна нулю, прибавляется сама s, то есть 0, и значение элементов массива "A" под индексами i и i+1.

i у нас равно 5.

Следовательно: s=0+A[5]+A[5+1]

Или s=0+A[5]+A[6].

Посмотрим на массив:

(0,10,20,30,40,50,60,70,80,90,100)

A[0]=0, A[1]=10.

Значит пятый элемент равен 50, а шестой - 60.

Следовательно наше выражение:

s=0+A[5]+A[6] = 0 + 50 + 60 = 110.

Но на этом работа программы не закончена.

Цикл будет выполняться до тех пор, пока "i" не станет равно 10.

Идем дальше.

i=6: 6 = 10 - 6 Неверно. 6 не равно 4.

i=7: 7 = 10 - 7 Неверно. 7 не равно 3.

i=8: 8 = 10 - 8 Неверно. 8 не равно 2.

i=9: 9 = 10 - 9 Неверно. 9 не равно 1.

i=10: 10 = 10 - 10 Неверно. 10 не равно 0.

Теперь "i" равно 10, цикл больше выполняться не будет.

ответ: 110.

maxchemaxim14

const N = 100;

var i: integer;

var A: array [1..N] of integer;

var s,acp: double;

var f: file of integer; // создаем типизированный файл

begin

assign(f,'C:\1\text.txt');

// Открытие файла в режиме записи

rewrite(f);

randomize;

For i:= 1 to N do

begin

a[i]:=random(201)-100;

write(f,a[i]);

end;

// Открытие файла в режиме чтения

reset(f);

// Здесь будем считать сумму всех элементов массива

s:= 0;

For i:= 1 to N do

begin

read(f,a[i]);

write(a[i],' ');

s:= s + a[i];

end;

close(f);

//  Среднее арифметическое

acp := s/N;

// Теперь здесь будем считать сумму в числителе под корнем

s:=0;

For i:= 1 to N do

begin

s:=s+(a[i]-aсp)*(a[i]-aсp);

end;

s:=sqrt(s)/(N-1);

writeln(сhr(10),'Среднеквадратичное отклонение: ',s);

end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

(pascal) дан двухмерный массив целых чисел. найти столбец с максимальной суммой элементов
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Lenok33lenok89
Карапетян
kristina
sigidinv
NIKOLAI
NurlanAleksandrovich
vainshakov
barg562
anyakru94
Kushchenko-Monashev
Svetlana1335
sav4ukoxana7149
vardartem876
Yelena_Yuliya1847
lihacheva