Нарисовать блок схему. дан массив x(n), состоящий из n вещественных чисел. найти последний отрицательный элемент и его порядковый номер k. если отрийательных элементов нет, то k присвоить 0. (блок схема).
uses Crt; const nn=1000; var i,n,mn:integer; a:array[1..nn] of integer; begin Randomize; ClrScr; Write('n='); Read(n); mn:=1000; for i:=1 to n do begin a[i]:=Random(199)-99; Write(a[i],' '); if a[i]<mn then mn:=a[i] end; Writeln; Writeln('Наим. элемент ',mn); ReadKey end.
uses Crt; var i,n,mn:integer; a:array of integer; begin Randomize; ClrScr; Write('n='); Read(n); SetLength(a,n); mn:=1000; for i:=0 to n-1 do begin a[i]:=Random(199)-99; Write(a[i],' '); if a[i]<mn then mn:=a[i] end; Writeln; Writeln('Наим. элемент ',mn); ReadKey end.
Выполнение приведено во вложении 2
// 3. PascalABC.NET 3.2, 2016г., современное решение
begin var a:=ArrRandom(ReadInteger('n='),-99,99); a.Println; Writeln('Наим. элемент ',a.Min) end.
Выполнение приведено во вложении 3.
Сделать выводы каждый может сам...
Примечание: все решения сделаны в среде PascalABC.NET 3.2, который для уровня школьных задач можно считать совместимым на уровне исходного текста с вышеприведенными версиями паскалей.
//прога на Pascal`e const n = 10; var a: array of shortint; i, min, sumcount: shortint; sum: integer; begin randomize; setLength (a, n); writeln ('Исходный массив:'); for i:=0 to n-1 do begin a[i]:=random (101)-50; write (a[i], '; '); if a[i] in [10..15] then begin inc (sum, a[i]); inc (sumcount); end; if a[i]<a[min] then min:=i; end;
if min<>(n-1) then begin a[min]:=a[min]+a[n-1]; a[n-1]:=a[min]-a[n-1]; a[min]:=a[min]-a[n-1]; end; writeln (); if sumcount>0 then writeln ('CA чисел в промежутке [10..15]: ', sum/sumcount) else writeln ('Нет чисел в промежутке [10..15]'); writeln ('Удален элемент a[', min+1, '] = ', a[n-1], '; измененный массив:'); setlength (a, n-1); for i:=0 to n-2 do write (a[i], '; '); end.