25 ! , ! в чем ошибка? const eps = 0.01; a = -100; b = 100; n=10; var kol: integer; ch_tek: array[1..n] of real; i : byte; fl: boolean; begin fl: =false; for i: =1 to n do begin repeat readln(ch_tek[i]); while (kol< 10) do if(ch_tek[i]> =a) and(ch_tek[i]< =b) then kol: =kol+1; while (kol> 1)do if (ch_tek[i-1]-ch_tek[i]) writeln(ch_tek[i-1],' ',ch_tek[i]); fl: =true; end; if (fl=false) then writeln ('нет'); end; : даны 10 чисел значения которых находятся в интервале от а до б найти пару соседних чисел (заданных друг за другом) у которых значения отличаются на число меньшее чем eps=0,01. числа последовательно. если пары нет, то вывести слово «нет». 1.задать начальные данные: kol: =0; fl: boollean, fl: =false. eps: 0.01 2.задать границы а и b. 3.организовать цикл с предусловием: while (kol< 10)and(fl=false) do 5. в цикле: 1) считываем текущее число ch_tek; 2)проверить является ли число, принадлежащим интервалу. если – да, то увеличить счет подходящих чисел: if (ch_tek> =a) and(ch_tek< =b) then kol: =kol+1. 3) если число не является первым (kol> 1), то проверить разность с предыдущим и если она меньше эпсилон (заданного числа), то вывести текущее и предыдущее, променять флаг на true (истина); иначе: pred_ch: =ch_tek; 6. после выхода из цикла проверить: если количество fl=false, то пара не найдена и нужно вывести «нет».

yaroslavtoporko yaroslavtoporko    3   11.07.2019 22:10    0

Ответы
NarGog NarGog  19.08.2020 08:47
Так как в задаче не требуется вводить числа с клавиатуры, то проще получать массив с датчика. В этом случае диапазон (А,Б) нужно сильно уменьшить. Программа и пример работы - в прилагаемом файле.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика