99 ! информатика, 8 класс. нарисуйте блок-схему к : даны 10 чисел значения которых находятся в интервале от а до б найти пару соседних чисел (заданных друг за другом) у которых значения отличаются на число меньшее чем eps=0,01. числа последовательно. если пары нет, то вывести слово «нет». и напишите программу в pascale, решающую эту

Olganot Olganot    3   11.07.2019 20:10    5

Ответы
dimanichaev799 dimanichaev799  19.08.2020 08:46
Const
  Eps = 0.01;
  A = -100;
  B = 100;
  N = 10;
Var
  i   : Byte;
  m   : array[1..N] of Real;
  Flag: Boolean;
Begin
  Flag:=True;
  For i:=1 to N do
  Begin
    Repeat
      Write('Введите число № ',i,' : '); Readln(m[i]);
    Until (m[i]>=A) and (m[i]<=B);
  end;
  Writeln;
  For i:=2 to N do
    If abs(m[i-1]-m[i])<Eps then
    Begin
      Writeln(m[i-1],' ',m[i]);
      Flag:=False;
    end;
  If Flag then Writeln('НЕТ');
end.

Результат:
Введите число № 1 : 2.3
Введите число № 2 : 2.4
Введите число № 3 : 2.45
Введите число № 4 : 2.46
Введите число № 5 : 2.465
Введите число № 6 : 3.0
Введите число № 7 : 4.0
Введите число № 8 : 4.01
Введите число № 9 : 4.005
Введите число № 10 : 4.007

2.45 2.46
2.46 2.465
4 4.01
4.01 4.005
4.005 4.007
ПОКАЗАТЬ ОТВЕТЫ
Cat1235679 Cat1235679  16.01.2024 17:09
Для начала нарисуем блок-схему для решения данной задачи:

1. Начало.
2. Вводим значения a, b и eps.
3. Инициализируем переменную flag = 0.
4. Инициализируем массив из 10 чисел.
5. Заполняем массив числами, значения которых находятся в интервале от а до b.
6. Перебираем каждое число в массиве с индексом от 0 до 8 (так как мы будем сравнивать пары соседних чисел).
7. Сравниваем разницу между текущим числом и следующим числом с eps.
8. Если разница меньше eps, то выводим пару чисел на экран и устанавливаем flag = 1.
9. Если после перебора всех пар разницы меньше eps не было найдено, то выводим "нет".
10. Конец.

Теперь напишем программу на Pascal, решающую данную задачу:

program FindNeighboringNumbers;
var
a, b, eps, diff: real;
numbers: array[0..9] of real;
flag, i: integer;
begin
flag := 0;

writeln('Введите значения a, b и eps:');
readln(a, b, eps);

writeln('Введите 10 чисел:');
for i := 0 to 9 do
readln(numbers[i]);

writeln('Пары чисел соседних чисел, отличающихся на ', eps, ':');
for i := 0 to 8 do begin
diff := abs(numbers[i] - numbers[i + 1]);
if diff < eps then begin
writeln(numbers[i]:0:2, ' и ', numbers[i + 1]:0:2);
flag := 1;
end;
end;

if flag = 0 then
writeln('Нет');

readln;
end.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика