Дана последовательность из n действительных чисел.найти порядковый номер и само число,которое наиболее близко к заданному числу. (можно написать программку на паскале)
Замечание. Так как количество вводимых чисел заранее не известно, то откроем бесконечный цикл со всегда верным условием 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.
===== PascalABC.NET =====
begin
var n := ReadInteger('n =');
var a := ArrRandomReal(n, -10, 10);
a.Println;
var x := ReadReal('Что ищем?');
var m := a.Select((v, i) -> (Abs(v - x), i)).MinBy(p -> p[0])[1];
Println(a[m]);
end.