// PascalABC.NET 3.1, сборка 1184 от 02.03.2016 begin var n:=10; var a:=ArrRandom(n,1,99); Print('A:'); a.Println; var b:=ArrRandom(n,1,99); Print('B:'); b.Println; var x:=a.Zip(b,(p,q)->p*q); Print('X:'); x.Println; Writeln('min(X)=',x.Min) end.
2. "Школьный вариант" (так учат в школе, чтобы жизнь медом не казалась, но может быть, что учителя сами не понимают современные технологии программирования):
// PascalABC.NET 3.1, сборка 1184 от 02.03.2016 const n=10; var a,b,x:array[1..n] of integer; i,min:integer; begin Randomize; Write('A: '); for i:=1 to n do begin a[i]:=Random(99)+1; Write(a[i],' ') end; Writeln; Write('B: '); for i:=1 to n do begin b[i]:=Random(99)+1; Write(b[i],' ') end; Writeln; Write('X: '); min:=100*100; // больше максимального for i:=1 to n do begin x[i]:=a[i]*b[i]; Write(x[i],' '); if min>x[i] then min:=x[i] end; Writeln; Writeln('min(X)=',min) end.
program fofgogjoj; const nmax=100; var m:array[1..nmax] of integer; n,i,j,k:byte; a,b,x:integer; begin randomize; repeat Write('Размер массива до ',nmax div 3,' n='); readln(n); until n in [1..nmax div 3]; Writeln('Исходный массив:'); for i:=1 to n do begin m[i]:=random(50); Write(m[i],' '); end; Writeln; Writeln; Write('Введите число для вставки перед a='); Readln(a); i:=1; k:=0; while i<=n do begin if m[i]>a then begin n:=n+1; k:=1; for j:=n downto i+1 do m[j]:=m[j-1]; m[i]:=a; i:=i+2; end else i:=i+1; end; if k=0 then Writeln('Элементов больше ',a,' нет') else begin Writeln('Массив после вставки числа ',a,' перед большими ',a); for i:=1 to n do Write(m[i],' '); Writeln; Writeln; Write('Введите число для вставки после b='); Readln(b); i:=1;k:=0; while i<=n do if m[i]<b then begin n:=n+1; k:=1; for j:=n downto i+2 do m[j]:=m[j-1]; m[i+1]:=b; i:=i+2; end else i:=i+1; if k=0 then Writeln('Элементов меньше ',b,' нет') else begin Writeln('Массив после вставки числа ',b,' после меньших ',b); for i:=1 to n do Write(m[i],' '); end; end; readln end.
А так,все работает без сбоев,результаты выдает верные.