Допустимые отклонения размеров деталей будут накапливаться
Очень часто встречается задача нахождения минимального или максимального элемента в массиве. Существует много неправильных способов ее решения. А вот как выглядит правильный:
CONST Nmax=10; { число элементов в массиве }
TYPE TA=ARRAY[1..Nmax] OF REAL;
VAR a:TA; i:BYTE; max: REAL;
BEGIN
// заполнение массива
FOR i:=1 TO Nmax DO
a[i]:=RANDOM;
max:= a[1];
FOR i:=2 TO Nmax DO
IF a[i]>max THEN
max:=a[i];
Label1.Caption:=
'Максимальный элемент равен '+FloatToStrF(max,ffFixed,10,4);
Суть этого способа в том, что сначала мы принимаем первый элемент массива за максимальный, а потом сравниваем с ним все остальные элементы, начиная со второго. Если очередной элемент окажется больше, мы запоминаем его значение в переменной max.