1. в массиве из 70 целых чисел найти количество элементов, кратных 3 2. проверить, что в массиве ровно 3 одинаковых максимальных числа 3. в массиве удалить все элементы, имеющие нечетные значения
// PascalABC.NET 3.0, сборка 1128 begin var a:=ArrRandom(70,1,100).PrintLn; Writeln('Количество элементов, кратных трем: ', a.Where(x->x mod 3=0).Count); var p:=a.OrderByDescending(x->x).Take(4).ToArray; if (p[0]=p[1]) and (p[0]=p[2]) and (p[0]<>p[3]) then Writeln('В массиве ровно три одинаковых максимальных элемента') else Writeln('В массиве не три одинаковых максимальных элемента'); Writeln('Массив, из которого удалены элементы с нечетными значениями'); a.Where(x-> not Odd(x)).PrintLn end.
Треугольник существует, если сумма длин двух любых его сторон больше длины третьей стороны. Длина стороны может быть определена как расстояние между соответствующими сторонами треугольника:
// PascalABC.NET 3.0, сборка 1160 от 05.02.2016 type Point=record x,y:real end;
procedure GetPoint(c:char;var M:Point); begin Write('Введите координаты точки ',c,': '); Read(M.x,M.y) end;
function Dist(a,b:Point):=sqrt(sqr(b.x-a.x)+sqr(b.y-a.y));
begin var A,B,C:Point; GetPoint('A',A); GetPoint('B',B); GetPoint('C',C); var ab:=Dist(A,B); var bc:=Dist(B,C); var ac:=Dist(A,C); if (ab<bc+ac) and (bc<ab+ac) and (ac<ab+bc) then Writeln('Треугольник существует') else Writeln('Треугольник не существует') end.
Тестовое решение: Введите координаты точки A: -6.9 -5.3 Введите координаты точки B: 0 11.4 Введите координаты точки C: 9 3 Треугольник существует
Замечание. Так как количество вводимых чисел заранее не известно, то откроем бесконечный цикл со всегда верным условием True, но как только будет введено число 0, остановим цикл командой break.
Программа:
program z; var k,s,x:integer; begin k:=0; {начальное значение количества двузначных чисел} s:=0; {начальное значение суммы двузначных чисел} while True do {открываем бесконечный цикл} begin readln(x); {вводим число х} if x=0 then break; {если введенное число равно 0, то остановить цикл} if (x>9)and(x<100) then {если число двузначное, т.е. от 10 до 99} begin k:=k+1; {количество увеличиваем на 1} s:=s+x; {увеличиваем предыдущее значение суммы на число х} end; end; if k=0 then writeln('NO') {если двузначных чисел не было, то вывод NO} else writeln(s/k); {иначе вывод ср.арифметического} end.
begin
var a:=ArrRandom(70,1,100).PrintLn;
Writeln('Количество элементов, кратных трем: ',
a.Where(x->x mod 3=0).Count);
var p:=a.OrderByDescending(x->x).Take(4).ToArray;
if (p[0]=p[1]) and (p[0]=p[2]) and (p[0]<>p[3]) then
Writeln('В массиве ровно три одинаковых максимальных элемента')
else Writeln('В массиве не три одинаковых максимальных элемента');
Writeln('Массив, из которого удалены элементы с нечетными значениями');
a.Where(x-> not Odd(x)).PrintLn
end.
Тестовое решение:
38 85 87 89 78 50 26 92 6 41 14 57 14 41 81 5 30 21 27 71 92 55 76 53 84 18 62 28 85 58 14 58 42 92 1 93 68 67 53 65 15 45 47 57 76 60 6 88 44 4 27 21 39 67 96 84 10 35 6 60 88 98 7 48 28 56 16 23 40 88
Количество элементов, кратных трем: 25
В массиве не три одинаковых максимальных элемента
Массив, из которого удалены элементы с нечетными значениями
38 78 50 26 92 6 14 14 30 92 76 84 18 62 28 58 14 58 42 92 68 76 60 6 88 44 4 96 84 10 6 60 88 98 48 28 56 16 40 88
3 76 40 20 39 100 15 85 75 58 43 48 2 57 45 90 12 50 92 70 64 33 94 38 18 59 74 10 31 13 61 34 100 77 42 61 76 95 38 100 27 44 7 75 23 22 24 52 70 39 91 68 79 74 83 70 82 2 2 80 26 6 55 62 97 10 48 25 16 84
Количество элементов, кратных трем: 19
В массиве ровно три одинаковых максимальных элемента
Массив, из которого удалены элементы с нечетными значениями
76 40 20 100 58 48 2 90 12 50 92 70 64 94 38 18 74 10 34 100 42 76 38 100 44 22 24 52 70 68 74 70 82 2 2 80 26 6 62 10 48 16 84