1. var x, i: integer; var c : array[1..31] of boolean; begin c := 0; for i:= 1 to 31 do c[i] := false; for i := 1 to 31 do begin readln(x); if (x = 0) then c[i] := true; end; writeln('В следующие дни не было осадков: '); for i:= 1 to 31 do if (c[i]) then writeln(c[i]); readln(i); end.
2. var x,i,n,c: integer; begin realn(n); for i:= 1 to n do begin readln(x); if (x < 0) then c := c + x; end; writeln('ответ: '); write(c); readln(x); end.
P.S. На паскале не писал давно. Код не компилировал (ибо его сюда копипастить без последствий нельзя.), так что могут быть незначительные ошибки. + сразу говорю (как программист с некоторым опытом и будучи уже не школьником) - код го*но. Так никто не делает, так никто не пишет, но для "школьного паскаля" достаточно
p := sign(y + 13 * a) * power(abs(y + 13 * a), 1/3);
Объяснение:
Единственная проблема тут - как записать кубический корень. В паскале есть функция power(a, p), которая возводит a в степень p, но если p не целое, оно работает только для положительных (для p > 0 неотрицательных) a. Кубический корень же определён для всех a.
Решение такое: посчитать кубический корень для модуля , а потом поставить такой же знак, что и под корнем.
Полностью программа может выглядеть, например, так:
var p, y, a: real;
begin
read(y, a);
p := sign(y + 13 * a) * power(abs(y + 13 * a), 1/3);
var x, i: integer;
var c : array[1..31] of boolean;
begin
c := 0;
for i:= 1 to 31 do c[i] := false;
for i := 1 to 31 do begin
readln(x); if (x = 0) then c[i] := true;
end;
writeln('В следующие дни не было осадков: ');
for i:= 1 to 31 do if (c[i]) then writeln(c[i]);
readln(i);
end.
2.
var x,i,n,c: integer;
begin
realn(n);
for i:= 1 to n do
begin
readln(x); if (x < 0) then c := c + x;
end;
writeln('ответ: '); write(c);
readln(x);
end.
P.S. На паскале не писал давно. Код не компилировал (ибо его сюда копипастить без последствий нельзя.), так что могут быть незначительные ошибки. + сразу говорю (как программист с некоторым опытом и будучи уже не школьником) - код го*но. Так никто не делает, так никто не пишет, но для "школьного паскаля" достаточно
p := sign(y + 13 * a) * power(abs(y + 13 * a), 1/3);
Объяснение:
Единственная проблема тут - как записать кубический корень. В паскале есть функция power(a, p), которая возводит a в степень p, но если p не целое, оно работает только для положительных (для p > 0 неотрицательных) a. Кубический корень же определён для всех a.
Решение такое: посчитать кубический корень для модуля , а потом поставить такой же знак, что и под корнем.
Полностью программа может выглядеть, например, так:
var p, y, a: real;
begin
read(y, a);
p := sign(y + 13 * a) * power(abs(y + 13 * a), 1/3);
write(p)
end.