Задание 1 Вариант 2 Самостоятельная работа 5 ГДЗ Рабочая тетрадь Босова 11 класс (Информатика)
1. Напишите программу. На числовой прямой отмечены точки A1, А2, АЗ, …, Аn. Выясните, какому из отрезков [Ai; Ai+1] принадлежит заданная точка X.
Запишите текст программы.
program s5_v2_1;
const
n = 5;
var
a: array[1..n] of integer;
i, x, c, j: integer;
begin
writeln(‘Ввод координат точек’);
for i := 1 to n do
readln(a[i]);
//сортировка «пузырьком» по возрастанию
for i := 1 to n — 1 do
for j := 1 to n — i do
if a[j] > a[j + 1] then
begin
c := a[j];
a[j] := a[j + 1];
a[j + 1] := c
end;
//for i := 1 to n do//вывод отсортированного массива
//write(a[i], ‘ ‘);
writeln;
write(‘x=’);
readln(x);
if (x > = a[1]) and (x < = a[n]) then
begin
for i := 1 to n - 1 do
if (x > = a[i]) and (x < = a[i + 1])
then write('х принадлежит отрезку ', a[i], ':', a[i + 1])
end
else writeln('х не принадлежит ни одному отрезку')
end.
Сначала введём координаты точек $$A_1, A_2, \dots, A_n$$ и отсортируем их по возрастанию, чтобы точки на числовой прямой шли слева направо. Затем введём координату точки $$x$$ и проверим, между какими соседними точками она находится.
Если $$x$$ лежит между $$a[i]$$ и $$a[i+1]$$, то точка принадлежит отрезку $$[A_i; A_{i+1}]$$. Если $$x$$ меньше первой точки или больше последней, то она не принадлежит ни одному из отрезков.
program s5_v2_1;
const
n = 5;
var
a: array[1..n] of integer;
i, x, c, j: integer;
begin
writeln(‘Ввод координат точек’);
for i := 1 to n do
readln(a[i]);
// сортировка «пузырьком» по возрастанию
for i := 1 to n — 1 do
for j := 1 to n — i do
if a[j] > a[j + 1] then
begin
c := a[j];
a[j] := a[j + 1];
a[j + 1] := c;
end;
writeln;
write(‘x=’);
readln(x);
if (x >= a[1]) and (x <= a[n]) then
begin
for i := 1 to n — 1 do
if (x >= a[i]) and (x <= a[i + 1]) then
write(‘x принадлежит отрезку ‘, a[i], ‘:’, a[i + 1]);
end
else
writeln(‘x не принадлежит ни одному отрезку’);
end.
Ответ: программа на Pascal, приведённая выше.