Определить среди 3 введенных чисел сумму отрицательных и положительных чисел. если больше сумма положительных, то найти разность первого и второго числа, а иначе найти произведение трех чисел. блок схема программа и расчет
Var a,b,c,x,i,s1,s2:integer; Begin s1:=0; s2:=0; c:=0; b:=0; for i:=1 to 3 do begin write('x',i,'='); readln(x); if x>0 then s1:=s1+x; if x<0 then s2:=s2+x; c:=b; b:=a; a:=x; end; if s1>s2 then s1:=c-b else s1:=c*b*a; writeln('ответ: ',s1); End.
begin Write('Количество элементов массива: '); ReadLn(N); for I := 1 To N Do begin Write('Введите A[', I, '] ');ReadLn(A[i]); end;
i := 1; while (i <= n) do if (A[i] >= 100) and (A[i] <= 999) and (A[i] mod 2 = 0) and (A[i] mod i = 0) then begin for j := i + 1 to n do A[j - 1] := A[j]; n := n - 1 end else i := i + 1;
Var A: array [1..100] of Integer; N, i, j, k: Integer;
begin Write('Количество элементов массива: '); ReadLn(N); k := 0;
for i := 1 To N Do begin Write('A[', I, '] = '); ReadLn(A[i]); {A[i] := Random(100) - 50; write(A[i], ' ');} if A[i] < 0 then k := i; end; writeln;
{фильтр, если нет отрицательных} if k = 0 then begin write('Отрицательных элементов нет'); halt; end;
writeln('Удаление отрицательных элементов'); k := 1; while (n > 0) and (k <= n) do begin if A[k] < 0 then begin for i := k to n - 1 do A[i] := A[i + 1]; n := n - 1; end else k := k + 1; end;
for i := 1 To N Do write(A[i], ' '); end.
а вообще правильнее создать еще один массив и переписать туда нужные элементы - куда меньше операций, циклов и затрат памяти. Массив не предназначен для "удаления" элементов в нем
Var a,b,c,x,i,s1,s2:integer;
Begin
s1:=0; s2:=0;
c:=0; b:=0;
for i:=1 to 3 do
begin
write('x',i,'=');
readln(x);
if x>0 then s1:=s1+x;
if x<0 then s2:=s2+x;
c:=b; b:=a; a:=x;
end;
if s1>s2 then s1:=c-b
else s1:=c*b*a;
writeln('ответ: ',s1);
End.