Var d:array[1..10] of integer;
s,i:integer;
Begin
s:=1;
For i:=1 to 10 do
begin
readln(d[i]);
If d[i]<>0
Then S:=S*d[i];
end;
Writeln(S);
end.
Вот, например программа поиска корня уравнения методом ДИХОТОМИИ:
program dichotom;
uses Crt;
var a, b, eps, xn, y, psy: real;
n: integer;
function f(x:real):real;
begin
f:=sin(x)-1/x;
end;
begin
ClrScr;
a:=2;
b:=3;
eps:=0.01;
n:=0;
y:=f(a);
while y>=eps do
begin
n:=n+1;
xn:=(a+b)/2;
y:=f(xn);
if y>=eps then
if f(a)*y<0 then b:=xn else a:=xn;
end;
psy:=xn;
WriteLn(' X = ',psy:5:2);
ReadLn;
end.
<h3>PascalABC.NET 3.4.2, сборка 1814 от 02.10.2018</h3>
function ReadWhileSum(cond: integer->boolean): sequence of integer;
begin
var s := 0;
while True do
begin
var x := ReadInteger();
s += x;
if not cond(s) then break;
yield x;
end;
end;
begin
Println('Сред. арифм. =',ReadWhileSum(sum -> sum < 150)
.Where(t->t.IsEven).Average);
end.