Ответ тут на фото там под колоной нужной ответ
var a:array[1..10] of integer;
i,k:integer; s:real;
begin
randomize;
writeln('Массив: ');
for i:=1 to 10 do
begin
a[i]:=random(11);
write(a[i],' ');
if a[i] = i then begin s:=s+a[i]; inc(k) end
end;
writeln;
write('S = ',s/k)
end.
<span><span>program M;
var i: integer = 2;
s: double = 0;
x: integer = 2;
begin
while (i<=15) do
begin
</span>s := s + i*cos(i*x); <span>
i := i + 1;
end;
writeln('S= ', s:0:2);
end.</span><span>а вот с repeat until
program M;
var i: integer = 2;
s: double = 0;
x: integer = 2;
begin
repeat
</span>s := s + i*cos(i*x); <span>
i := i + 1;
until i>15;
writeln('S= ', s:0:2);</span></span>
Смотрите. Тут правда есть немного лишнего. Противоположные стороны всё таки проверять не надо. Хватит 4х углов. Но текст комментирован, лишнее можно убрать. поясняющих картинок нет. но вопрос и так слишком долго живёт без ответа. Мне казалось срок жизни 2-3 дня максимум, а тут 5 дней минуло.
Если что, отправляйте на исправление. дома дорисую.
Главное программа работает. Правда есть подозрения, что не во всех Паскалях (как они относятся к объявлению массива массивов?)
Это был Free Pascal Compiler version 2.6.4 [2014/04/20] for i386
В версии 3.0.0. думаю, тоже сработает
P.S.Добавил возможные варианты (не все, ясное дело) расположения точек.
<u>PascalABC.NET 3.3.5, сборка 1660 от 20.04.2018</u>
<u>Внимание! Если программа не работает, обновите версию!</u>
begin
var (m,n):=ReadInteger2('Количество строк и столбцов в массиве:');
Writeln('*** Исходный массив ***');
var a:=MatrRandom(m,n,-30,30);
a.Println(4); Writeln(4*a.ColCount*'-');
Writeln('*** Полученный массив ***');
for var i:=0 to m-1 do
for var j:=0 to n-1 do
if (i+j).IsEven then a[i,j]*=3
else a[i,j]:=a[i,j] div 2;
a.Println(4)
end.