Нормальные люди понимают, что после формализации информация должна быть представлена на формальном языке, таких языком может быть как математический, так и язык программирования.
Var i, j, n, kolPol, kolOtr, sum, p, ch, k :integer; a :array of integer;
begin
readln(n); SetLength(a,n+1); randomize; for i:= 1 to n do a[i]:= random(100)-50;
sum:= 0; p:= 1; for i:= 1 to n do begin if a[i] > 0 then begin inc(kolPol); sum:= sum + a[i]; end; if a[i] > 0 then begin inc(kolOtr); p:= p * a[i]; end; end;
i:= 1; p:= 1; ch:= 0; while (a[i] >= 0) and (i <> n+1) do begin p:= p * a[i]; inc(ch); inc(i); end;
if ch <> 0 then writeln('Произведение до первого отрицательного элемента: ',p) else writeln('Первый элемент массива отрицательный!');
for i:= 1 to n-1 do for j:= 1 to n-i do if a[j] > a[j+1] then begin k:= a[j]; a[j]:= a[j+1]; a[j+1]:= k; end; writeln('Массив отсортирован по возрастанию:'); for i:= 1 to n do write(a[i],' ');
Математическая модель (а также программа; зависит от того, что понимать под этапом формализации).
В учебнике выделяют такие этапы решения задачи на компьютере:
Исходные данные (результат - словесная информационная модель)Формализация (математическая модель)Алгоритмизация (алгоритм)Программирование (программа)Отладка, тестирование (уточнение модели)Выполнение расчетов (получение результатов)Нормальные люди понимают, что после формализации информация должна быть представлена на формальном языке, таких языком может быть как математический, так и язык программирования.
i, j, n, kolPol, kolOtr, sum, p, ch, k :integer;
a :array of integer;
begin
readln(n);
SetLength(a,n+1);
randomize;
for i:= 1 to n do
a[i]:= random(100)-50;
sum:= 0; p:= 1;
for i:= 1 to n do
begin
if a[i] > 0 then
begin
inc(kolPol);
sum:= sum + a[i];
end;
if a[i] > 0 then
begin
inc(kolOtr);
p:= p * a[i];
end;
end;
writeln('Количество положительных элементов: ',kolPol);
writeln('Сумма положительных элементов: ',sum);
writeln('Количество отрицательных элементов: ',kolOtr);
writeln('Произведение отрицательных элементов: ',p);
i:= 1; p:= 1; ch:= 0;
while (a[i] >= 0) and (i <> n+1) do
begin
p:= p * a[i];
inc(ch);
inc(i);
end;
if ch <> 0 then
writeln('Произведение до первого отрицательного элемента: ',p)
else
writeln('Первый элемент массива отрицательный!');
for i:= 1 to n-1 do
for j:= 1 to n-i do
if a[j] > a[j+1] then
begin
k:= a[j];
a[j]:= a[j+1];
a[j+1]:= k;
end;
writeln('Массив отсортирован по возрастанию:');
for i:= 1 to n do
write(a[i],' ');
end.