дана табличная величина, значения всех элементов которой разные. определить наибольшее и наименьшее значения среди элементов этой табличной величины и поменять их местами.
поскольку необходимо поменять местами наибольшее и наименьшее значения среди значений элементов табличной величины, то следует определить не только сами эти значения, а еще и номер элемента, значение которого наибольшее, и номер элемента, значение которого наименьшее. определим все это, просматривая значения элементов табличной величины только один раз.
сначала будем считать, что значение первого элемента и наибольшее, и наименьшее, а номер наибольшего и наименьшего элементов — 1. после этого последовательно будем просматривать все другие элементы массива. если значение очередного элемента табличной величины больше, чем наибольшее в этот момент, то заменяем наибольшее значение среди уже просмотренных и номер наибольшего элемента. если нет, то может это значение меньше, чем то, которое пока что считаем наименьшим. и если это так, то заменяем наименьшее значение среди уже просмотренных и номер наименьшего элемента.
var
c:char;
begin
Write('Введите римскую цифру (I,V,X,L,C,D,M): '); Readln(c);
case c of
'I':Writeln('1');
'V':Writeln('5');
'X':Writeln('10');
'L':Writeln('50');
'C':Writeln('100');
'D':Writeln('500');
'M':Writeln('1000');
else Writeln('Вы ошиблись')
end
end.
// PascalABC.NET 3.0, сборка 1073
var
n:byte;
x,y:real;
begin
Write('Введите номер варианта (1-5): '); Readln(n);
case n of
1:begin
Write('Выражение x^2+y^2, введите x,y: '); Read(x,y);
Writeln('Результат: ',sqr(x)+sqr(y))
end;
2:begin
Write('Выражение (a+b)^2, введите a,b: '); Read(x,y);
Writeln('Результат: ',sqr(x+y))
end;
3:begin
Write('Выражение (c-d)^2, введите c,d: '); Read(x,y);
Writeln('Результат: ',sqr(x-y))
end;
4:begin
Write('Выражение |sin(x)|, введите x: '); Read(x);
Writeln('Результат: ',abs(sin(x)))
end;
5:begin
Write('Выражение sqrt(a^2+b^2), введите a,b: '); Read(x,y);
Writeln('Результат: ',sqrt(sqr(x)+sqr(y)))
end;
else Writeln('Вы ошиблись')
end
end.