Var a,b,c:integer;
begin
c:=1;
for a:=5 downto 2 do begin
for b:=5 downto c do begin
write(a);
end;
writeln('');
c:=c+1;
end;
end.
Рассмотрим фрагмент поблочно.
<span>FOR i=1 TO 10
A(i)=5+i
NEXT i
Здесь в цикле для i, меняющегося от 1 до 10, в массив А помещаются значения i+5, т.е. 6, 7, 8, .. 15.
</span><span>FOR i=1 TO 10
IF (A(i)+i >12) THEN
A(i)=A(i)+ i
ENDIF
NEXT i
В этом цикле i также меняется от 1 до 10. Для всех значений </span>элементов массива, которые в сумме со своим порядковым номером в массиве (индексом) превысят 12, значение элемента будет увеличено на этот номер.
a[1]+1=6+1=7. Это число меньше 12 и a[1] остается прежним. Так же, a[2]+2=9, a[3]+3=11 и они тоже не изменятся. Начиная с a]4]+4=13 значения будут изменяться на новые и в результате мы получим семь новых значений: 13, 15, 17,... 25. Все они будут нечетными. И еще одно нечетное значение (7) имеет a[2]. Итого, <em><u>нечетные значения будут иметь 8 элементов.</u></em>
<em>// PascalABC.NET 3.3, сборка 1547 от 07.10.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var (a,b,xn,xk,dx):=(2.89,14.34,-50.0,50.0,2.5);
var n:=Trunc((xk-xn)/dx);
var (Max,k,s):=(0.0,0,0.0);
var f:real->real:=x->(a*a+b*Sign(x)*Power(Abs(x),1.0/3))/(3.56+Sin(a+b)+Exp(x));
for var i:=0 to n do begin
var x:=xn+dx*i;
var y:=f(x);
if (i+1) mod 3=0 then Writeln(x:5:1,' ',y);
if y>0 then begin
if y>Max then Max:=y;
s+=y; k+=1
end
end;
Writeln('Max(x,y)=',Max:5:1,' ',f(Max));
Writeln('Среднее значение y равно ',s/k:0:9)
end.
<u>Пример</u>
-45.0 -16.6538893021468
-37.5 -15.4796268651575
-30.0 -14.1362550800162
-22.5 -12.5454529373774
-15.0 -10.5472040721327
-7.5 -7.69691252360641
0.0 2.34531251806799
7.5 0.0201157784771028
15.0 1.33732990416318E-05
22.5 8.26246301436193E-09
30.0 4.95110092030162E-12
37.5 2.91644814868151E-15
45.0 1.69913234739356E-18
Max(x,y)= 2.3 2.10840685577529
Среднее значение y равно 0.212935940
Program Temperatura;
Var d, k, T: integer; f: byte; a: array [1..7] of integer;
Begin f := 0;k := 0;
Writeln('Введите температуру');
for d := 1 to 7 do Begin
Write(d, ' день: ');
Readln(a[d]);
end;
for d := 1 to 7 do if a[d] > 0 then
Begin
k := k + 1;
f := 1;
end;
if f = 0 then Writeln('Всю неделю температура была ниже нуля.')
else
Writeln('Дни с температурой выше нуля - ', k);
T := a[1] + a[2] + a[3] + a[4] + a[5] + a[6] + a[7];
WriteLn('Средняя температура за неделю:', T / 7:0:2);
end.