Дана последовательность не более N ненулевых целых чисел, последним числом в
Дана последовательность
не более N
ненулевых целых чисел, заключительным числом в последовательности является
0. Ввести эту последовательность в одномерный массив и
вычислить хаpактеристики
.Отыскать порядковые номера и сумму двух наибольших элементов. ( в Паскаль )
1 ответ
Инна Ставорожинская
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);
// Обмен содержимым 3-х записей
// Подразумевается, что до вызова процедуры a.vgt;=b.v,
// после вызова значение с.v помещается в a.v или b.v так,
// чтоб большее из трех значений попало в a.v, а последующее
// по величине попало в b.v. Младшее значение теряется.
begin
if c.v gt;= a.v then begin
Swap2E(a, b); Swap2E(a, c)
end
else
if c.v gt; 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] gt; 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
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);
// Обмен содержимым 3-х записей
// Подразумевается, что до вызова процедуры a.vgt;=b.v,
// после вызова значение с.v помещается в a.v или b.v так,
// чтоб большее из трех значений попало в a.v, а последующее
// по величине попало в b.v. Младшее значение теряется.
begin
if c.v gt;= a.v then begin
Swap2E(a, b); Swap2E(a, c)
end
else
if c.v gt; 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] gt; 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
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Игорь 14 лет назад был на 8 лет моложе, чем его
Математика.
Два тела массами m1 и m2 находящие на расстоянии R друг
Физика.
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
Облако тегов