Как вывести число, ближайшее к X? - Pascal
Формулировка задачи:
const n=10; var a:array [1..n] of integer; j,i,k,x,c,m,L,R,d:integer; begin writeln('Массив: '); begin for i:=1 to n do begin A[i]:=random(30)+1; write(A[i],' '); end; writeln; for i:= 1 to N-1 do for j:= 1 to n-1 do if a[j]>a[j+1] then begin m:=a[j]; a[j]:=a[j+1]; a[j+1]:=m; end; writeln; writeln('Отсортированный массив: '); for i:=1 to n do write(A[i],' '); writeln; end; writeln('Введите число Х:'); readln(x); L:= 1; R:= N + 1; { начальный диапазон } while L < R-1 do begin c:= (L+R) div 2; { нашли середину } if X < A[c] then R:= c { изменить диапазон } else L:= c; end; if A[L] = X then writeln('Число ',X,' найдено') else writeln('Число ',X,' не найдено'); end.
Решение задачи: «Как вывести число, ближайшее к X?»
textual
Листинг программы
const n = 10; var a: array[1..n] of integer; j, i, x, c, m, L, R: integer; begin writeln('Массив: '); begin for i := 1 to n do begin A[i] := random(30) + 1; write(A[i], ' '); end; writeln; for i := 1 to N - 1 do for j := 1 to n - 1 do if a[j] > a[j + 1] then begin m := a[j]; a[j] := a[j + 1]; a[j + 1] := m; end; writeln; writeln('Отсортированный массив: '); for i := 1 to n do write(A[i], ' '); writeln; end; writeln('Введите число Х:'); readln(x); L := 1; R := N + 1; { начальный диапазон } while L < R - 1 do begin c := (L + R) div 2; { нашли середину } if X < A[c] then R := c { изменить диапазон } else L := c; end; if A[L] = X then writeln('Число ', X, ' найдено') else if (L < N) and (X - A[L] > A[L + 1] - X) then writeln('Число, ближайшее к ', X, ' - ', A[L + 1]) else writeln('Число, ближайшее к ', X, ' - ', A[L]) end.
Объяснение кода листинга программы
- Создаются две переменные n и a, которые имеют одинаковое название, но разные значения. Переменная n инициализируется значением 10, а переменная a инициализируется случайным числом от 1 до 30.
- Выводится массив чисел, созданный в предыдущем шаге.
- Затем выполняется цикл, который сортирует массив чисел в порядке возрастания.
- После этого пользователю предлагается ввести число X.
- Задаются начальные значения переменных L и R, которые представляют собой границы диапазона поиска числа X.
- Затем выполняется цикл, который последовательно сужает диапазон поиска числа X.
- Если число X найдено в массиве, то выводится сообщение об этом.
- Если число X не найдено в массиве, то проверяется, находится ли число X между двумя числами в массиве.
- Если это так, то выводится сообщение о ближайшем числе.
- Если это не так, то выводится сообщение о том, что число X не найдено в массиве.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д