Program triples; const RAND_F = 1; RAND_T = 20; var b: array[1..15] of integer; t: array[1..3] of integer; i, j, max, max_i, tmp: integer; begin randomize; for i := 1 to 15 do b[i] := random(RAND_T) + RAND_F; i := 1; while i < 15 do begin t[1] := b[i]; t[2] := b[i+1]; t[3] := b[i+2]; max := t[1]; for j := 2 to 3 do if t[j] > max then begin max := t[j]; max_i := j; end; tmp := t[3]; t[3] := max; t[max_i] := tmp; if t[2] < t[1] then begin tmp := t[2]; t[2] := t[1]; t[1] := tmp; end; write('Числа ', i, '-', i + 2, ': '); writeln(t[1], ' ', t[2], ' ', t[3]); i := i + 3; end; end.
Обратим внимание, что задания 2 и 3 предполагают одинаковый результат: в самом деле, если число оканчивается на 2, то оно четное, т.е. кратно двум, что приводит задание 3 к заданию 2. Для задания 1 или заданий 2,3 оставляем в программе только нужную строку.в соответствии с комментарием.
// PascalABC.NET 3.2, сборка 1374 от 10.01.2017 // Внимание! Если программа не работает, обновите версию!
begin var a:=ArrRandom(ReadInteger('n='),1,99); a.Println; Writeln('k=',a.Where(k->k.IsEven).Count); // для задания 1 Writeln('s=',a.Where(k->k mod 10=2).Sum) // для заданий 2/3 end.
const
RAND_F = 1;
RAND_T = 20;
var
b: array[1..15] of integer;
t: array[1..3] of integer;
i, j, max, max_i, tmp: integer;
begin
randomize;
for i := 1 to 15 do
b[i] := random(RAND_T) + RAND_F;
i := 1;
while i < 15 do
begin
t[1] := b[i];
t[2] := b[i+1];
t[3] := b[i+2];
max := t[1];
for j := 2 to 3 do
if t[j] > max then
begin
max := t[j];
max_i := j;
end;
tmp := t[3];
t[3] := max;
t[max_i] := tmp;
if t[2] < t[1] then
begin
tmp := t[2];
t[2] := t[1];
t[1] := tmp;
end;
write('Числа ', i, '-', i + 2, ': ');
writeln(t[1], ' ', t[2], ' ', t[3]);
i := i + 3;
end;
end.
Для задания 1 или заданий 2,3 оставляем в программе только нужную строку.в соответствии с комментарием.
// PascalABC.NET 3.2, сборка 1374 от 10.01.2017
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),1,99); a.Println;
Writeln('k=',a.Where(k->k.IsEven).Count); // для задания 1
Writeln('s=',a.Where(k->k mod 10=2).Sum) // для заданий 2/3
end.
Пример
n= 17
61 32 83 78 47 80 85 64 52 85 30 77 96 81 14 65 67
k=8
s=84