Pacal ABC
Дан целочисленный массив из n элементов. Элементы массива могут принимать натуральные значения от 1 до 10000 включительно (это проверять не нужно). Все числа в массиве различные. Найти количество чисел, которые располагаются между числами 15 и 45 (не включая эти числа), а затем заменить все двузначные элементы на это количество. В качестве результата необходимо вывести изменённый массив в строку. Гарантируется, что элементы 15 и 45 в массиве есть.
Например, для исходного массива из шести элементов:
15 6 11 18 9 45
программа должна вывести следующий массив
4 6 4 4 9 4
Программа, возможно, не совершенна (т.е. по-любому, можно было сделать короче), однако работает. Написана на Pascal, тестировал в веб-среде PascalABC.
var mo,tu,we,th,fr,sa,su,a: ShortInt;
var b: Real;
Begin
Write('Температура воздуха в Понедельник: ');
Readln(mo);
Write('Температура воздуха во Вторник: ');
Readln(tu);
Write('Температура воздуха в Среду: ');
Read(we);
Write('Температура воздуха в Четверг: ');
Readln(th);
Write('Температура воздуха в Пятницу: ');
Readln(fr);
Write('Температура воздуха в Субботу: ');
Readln(sa);
Write('Температура воздуха в Воскресенье: ');
Readln(su);
a:=mo+tu+we+th+fr+sa+su;
b:=a/7;
Write('Средняя температура воздуха: ',b:0:2,' градусов.');
End.
begin
var a:=ArrRandomReal(ReadInteger('n='),10,30); a.Println;
Writeln('Наименьший элемент № ',a.IndexMin+1);
Writeln('Наибольший элемент № ',a.IndexMax+1);
var m:=a.Average;
var d:=a.Select((x,i)->(abs(x-m),i+1));
Writeln('Наименее отличается от среднего значения элемент № ',
(d.Min).Item2)
end.
Пример
n= 5
28.8975487271778 29.3922267944516 10.5457673969426 21.9476794693375 20.9330827234933
Наименьший элемент № 3
Наибольший элемент № 2
Наименее отличается от среднего значения элемент № 4