var n,i,s,k:integer;
Begin
for i:=1 to 7 do Begin
read(n);
if n>0 then k:=k+1;
if n<0 then s:=s+n;
end;
writeln(k,s);
End.
Пояснение:
1 - исправно, 0 - неисправно
1) Если правы хозяин и сын, а мастер не прав, то противоречий нет.
2) Если правы хозяин и мастер, а сын не прав, противоречие по памяти.
3) Если правы сын и мастер, а хозяин не прав, противоречие по процессору.
Ответ:
<em>Память и винчестер исправны, процессор вышел из строя.</em>
<h2>№1</h2>
Факториал нуля равен единице. Если N по условию может быть отрицательным, сразу после ввода следует это проверить.
Будем хранить ответ в переменной <em>fc </em>с начальным значением 1. Будем перебирать все числа от <em>2 </em>до <em>N </em>и домножать <em>fc </em>на каждое из них.
<h3>Код</h3>
var
n, i, fc: longint;
begin
read(n);
fc := 1;
for i := 2 to n do
fc := fc * i;
writeln(fc);
end.
<h2>№2</h2>
Используем цикл for, но вместо to будем писать downto.
<h3>Код</h3>
var
i: integer;
begin
for i := 28 downto 17 do
writeln(i);
end.