Тут такое дело, мы проходим по инфе по таблицам истинности, я понимала эту тему до тех пор пока к нам не пришла другая училка. короче, решите , 31 и 32.
Program z1; Var i,n,a,b,c:integer; m: array [1..1000] of integer; Begin write('Введите кол-во чисел - '); readln(n); randomize; a:=0; b:=0; c:=0; for i:=1 to n do begin m[i]:=random(100)-50; write (m[i],' '); end; for i:=1 to n do if (m[i]=0) then a:=a+1; for i:=1 to n do if (m[i]>0) then b:=b+1; for i:=1 to n do if (m[i]<0) then c:=c+1; writeln; writeln ('Кол-во нулей - ',a); writeln ('Кол-во положительных чисел - ',b); writeln ('Кол-во отрицательных чисел - ',c);End.
var
n,s:integer;
begin
s:=0;
repeat
Read(n);
if n<>0 then
if (n mod 6=0) and (n mod 10=2) then s:=s+n
until n=0;
Writeln(s)
end.
Пример
16
42
18
132
94
18
0
174
Кроме этого, зачем-то требуют блок-схему - приведена во вложении, выполнена по ГОСТ 19.701-90 (ISO 5807-85).
2. А вот так эту задачу можно решить в современном Паскале
PascalABC.NET 3.3.5, сборка 1660 от 20.04.2018
Внимание! Если программа не работает, обновите версию!
begin
ReadSeqIntegerWhile(t->t<>0)
.Where(t->(t mod 6=0) and (t mod 10=2)).Sum.Println
end.
И блок-схема тут вообще не нужна: она ничего не даст.
Сравнение явно не в пользу школьного "образования" - учить, как выполнять работу двадцать минут вместо двух.
Var i,n,a,b,c:integer;
m: array [1..1000] of integer;
Begin
write('Введите кол-во чисел - ');
readln(n);
randomize;
a:=0; b:=0; c:=0;
for i:=1 to n do
begin
m[i]:=random(100)-50;
write (m[i],' '); end; for i:=1 to n do if (m[i]=0) then a:=a+1; for i:=1 to n do if (m[i]>0) then b:=b+1; for i:=1 to n do if (m[i]<0) then c:=c+1; writeln; writeln ('Кол-во нулей - ',a); writeln ('Кол-во положительных чисел - ',b); writeln ('Кол-во отрицательных чисел - ',c);End.