Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести минимальное значение среди трёхзначных элементов массива, делящихся на 7.(паскаль)
Const N = 13; Var A:array[1..N] of integer; i,Min:integer; Begin Randomize; Write('Исходый массив:'); For i:= 1 to N do Begin A[i]:=random(10000)-5000; Write(' ',A[i]) End; WriteLn; Min:=1000; For i:= 1 to N do if (99<Abs(A[i]))and(Abs(A[i])<1000)and(A[i] mod 7 = 0)and(A[i]<Min) then Min:=A[i]; if Min = 1000 then WriteLn('В массиве нет трёхзначных элементов, кратных семи') else WriteLn('Min = ',Min); End.
Var a, b, c: Integer; begin readln(a, b, c); if (a mod 7 = 0) and (b mod 7 = 0) and (c mod 7 = 0) then begin if (a < b) and (a < c) then writeln('Min = ', a) else if (b < c) then writeln('Min = ', b) else writeln('Min = ', c); end; end.
Треугольник существует, если a < (b+c), b < (a+c), c < (a + b) Он равносторонний, если a=b=c Он равнобедренный, если a=b!=c, a=c!=b, b=c!=a (!= всмысле не равно) Иначе произвольный Разве не очевидно?
Програмка на питоне: https://pastebin.com/raw/fKQqvfDb Там я сначала проверяю, что треугольник существует, потом проверяю, что две его любые стороны равны. Если при этом ещё и сумма всех сторон делённая на 3 равна одной из них, то они все равны => он равносторонний. Иначе он равнобедренный. Если условие про равенство двух сторон не выполняется, то он - произвольный. Как упростить - не знаю.
N = 13;
Var
A:array[1..N] of integer;
i,Min:integer;
Begin
Randomize;
Write('Исходый массив:');
For i:= 1 to N do
Begin
A[i]:=random(10000)-5000;
Write(' ',A[i])
End;
WriteLn;
Min:=1000;
For i:= 1 to N do
if (99<Abs(A[i]))and(Abs(A[i])<1000)and(A[i] mod 7 = 0)and(A[i]<Min) then
Min:=A[i];
if Min = 1000 then WriteLn('В массиве нет трёхзначных элементов, кратных семи')
else WriteLn('Min = ',Min);
End.
Пример:
Исходый массив: 2635 4814 -2784 1015 -462 -50 4069 -4566 578 168 707 660 -731
Min = -462