Type
tE = record
v: integer;
p: integer;
end;
procedure Swap2E(var a: tE; var b: tE);
// Обмен содержимым пары записей
var
Buff: integer;
begin
Buff := a.v; a.v := b.v; b.v := Buff;
Buff := a.p; a.p := b.p; b.p := Buff
end;
procedure Swap3E(var a: tE; var b: tE; var c: tE);
// Обмен содержимым трех записей
// Предполагается, что до вызова процедуры a.v>=b.v,
// после вызова значение с.v помещается в a.v или b.v так,
// чтобы большее из трех значений попало в a.v, а следующее
// по величине попало в b.v. Младшее значение теряется.
begin
if c.v >= a.v then begin
Swap2E(a, b); Swap2E(a, c)
end
else
if c.v > b.v then Swap2E(b, c);
end;
const
n = 50;
var
a: array[1..n] of integer;
R1, R2, T: tE;
i, e, m: integer;
begin
i := 1;
writeln('Вводите числа, 0 - конец ввода');
repeat
read(e);
a[i] := e;
i:=i+1;
until e = 0;
m := i;
if a[1] > a[2] then begin
R1.v := a[1]; R1.p := 1;
R2.v := a[2]; R2.p := 2
end
else begin
R1.v := a[2]; R1.p := 2;
R2.v := a[1]; R2.p := 1
end;
for i := 3 to m do
begin
T.v := a[i];
T.p := i;
Swap3E(R1, R2, T)
end;
writeln('Максимальные значения имеют элементы с номерами ', R1.p, ' и ', R2.p);
writeln('Сумма этих элементов равна ', R1.v + R2.v)
end.
Контрольный пример:
Вводите числа, 0 - конец ввода
18
6
13
40
14
52
0
Максимальные значения имеют элементы с номерами 6 и 4
Сумма этих элементов равна 92
//PascalABC.Net 3.2
procedure swap (var a1, a2: integer);
begin
var promt:=a1;
a1:=a2;
a2:=promt;
end;
begin
var a:=ReadArrInteger ('Вводите массив: ', readinteger ('Размерность : '));
var i:=-1;
while (i+2)<length (a) do
begin
i+=2;
swap (a[i], a[i-1]);
end;
a.Print;
end.
var a,b,c,m,n:integer;
BEGIN
write('Длина шкафа = ');
readln(c);
write('Ширина шкафа = ');
readln(a);
write('Высота шкафа = ');
readln(b);
write('Длина двери = ');
readln(m);
write('Ширина двери = ');
readln(n);
if ((a*b<=m*n) and (((a<=m) and (b<=n)) or ((a<=n) and (b<=m)))) or
((a*c<=m*n) and (((a<=m) and (c<=n)) or ((a<=n) and (c<=m)))) or
((c*b<=m*n) and (((c<=m) and (b<=n)) or ((c<=n) and (b<=m)))) then
writeln('ДА') else
writeln('НЕТ');
end.
<em>// PascalABC.NET 3.2, сборка 1363 от 17.12.2016</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
function gcd(a,b:int64):int64; // НОД
begin
while b<>0 do begin a:=a mod b; Swap(a,b) end;
Result:=a
end;
begin
Writeln(gcd(gcd(36,54),gcd(18,15)))
end.
<u>Результат</u>
3