//PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016) const n = 10;
var a: array[1..n] of integer; i, j, c, nc, max, imax: integer; p:BigInteger;
begin // Заполним массив сл. числами max := -MaxInt; for i := 1 to n do begin a[i] := random(-100, 100);write(a[i]:4); if abs(a[i]) > max then begin max := a[i];imax := i; end; end; writeln; //1. Количество элементов массива, больших С. writeln('Введите число "с"');readln(c); for i := 1 to n do if a[i] > c then nc := nc + 1; writeln('Элементов больше чем ', c, ' : ', nc);
//2. произведение элементов массива, //расположенных после мак симального //по модулю элемента p := 1; for i := imax + 1 to n do p := p * a[i]; writeln('Максимальный по модулю элемент находится на ', imax, ' месте'); writeln('Произведение элементов массива,расположенных после максимального по модулю элемента ', p);
//3. Преобразовать массив таким образом, чтобы сначала размещались все //отрицательные элементы, а потом все положительные for i := 1 to n - 1 do for j := 1 to n - i do if a[j] > a[j + 1] then begin swap(a[j], a[j + 1]); end; writeln('Преобразованный массив :'); for i := 1 to n do write(a[i]:4); end.
Тестовое решение: -6 91 52 62 -28 -64 86 86 -91 -61 Введите число "с" 15 Элементов больше чем 15 : 5 Максимальный по модулю элемент находится на 2 месте Произведение элементов массива,расположенных после максимального по модулю элемента -1246076928 Преобразованный массив : -91 -64 -61 -28 -6 52 62 86 86 91
Var f,h:text; i,maxi:integer; ar:array[1..n] of real; begin ar[6]:=real.MinValue; assign(f,'text.txt'); rewrite(f); for i:=1 to n-1 do begin readln(ar[i]); if ar[i]>ar[6] then begin ar[6]:=ar[i]; maxi:=i; end; end; ar[maxi]:=ar[maxi]/2; writeln('F:'); for i:=1 to n do begin write(f,ar[i],' '); write(ar[i],' '); end; close(f); writeln; i:=0; writeln('H:'); assign(h,'text1.txt'); rewrite(h); while i<n do begin i:=i+2; write(h,ar[i],' '); write(ar[i]:4); end; close(h); end.
Пример ввода: 1 2 3 4 5 Пример вывода: F: 1 2 3 4 2.5 5 H: 2 4 5
const
n = 10;
var
a: array[1..n] of integer;
i, j, c, nc, max, imax: integer;
p:BigInteger;
begin
// Заполним массив сл. числами
max := -MaxInt;
for i := 1 to n do
begin
a[i] := random(-100, 100);write(a[i]:4);
if abs(a[i]) > max then begin
max := a[i];imax := i;
end;
end;
writeln;
//1. Количество элементов массива, больших С.
writeln('Введите число "с"');readln(c);
for i := 1 to n do if a[i] > c then nc := nc + 1;
writeln('Элементов больше чем ', c, ' : ', nc);
//2. произведение элементов массива,
//расположенных после мак симального
//по модулю элемента
p := 1;
for i := imax + 1 to n do p := p * a[i];
writeln('Максимальный по модулю элемент находится на ', imax, ' месте');
writeln('Произведение элементов массива,расположенных после максимального по модулю элемента ', p);
//3. Преобразовать массив таким образом, чтобы сначала размещались все
//отрицательные элементы, а потом все положительные
for i := 1 to n - 1 do
for j := 1 to n - i do
if a[j] > a[j + 1] then begin
swap(a[j], a[j + 1]);
end;
writeln('Преобразованный массив :');
for i := 1 to n do write(a[i]:4);
end.
Тестовое решение:
-6 91 52 62 -28 -64 86 86 -91 -61
Введите число "с"
15
Элементов больше чем 15 : 5
Максимальный по модулю элемент находится на 2 месте
Произведение элементов массива,расположенных после максимального по модулю элемента -1246076928
Преобразованный массив :
-91 -64 -61 -28 -6 52 62 86 86 91
Const
n=6;
Var
f,h:text;
i,maxi:integer;
ar:array[1..n] of real;
begin
ar[6]:=real.MinValue;
assign(f,'text.txt');
rewrite(f);
for i:=1 to n-1 do
begin
readln(ar[i]);
if ar[i]>ar[6] then
begin
ar[6]:=ar[i];
maxi:=i;
end;
end;
ar[maxi]:=ar[maxi]/2;
writeln('F:');
for i:=1 to n do
begin
write(f,ar[i],' ');
write(ar[i],' ');
end;
close(f);
writeln;
i:=0;
writeln('H:');
assign(h,'text1.txt');
rewrite(h);
while i<n do
begin
i:=i+2;
write(h,ar[i],' ');
write(ar[i]:4);
end;
close(h);
end.
Пример ввода:
1
2
3
4
5
Пример вывода:
F:
1 2 3 4 2.5 5
H:
2 4 5