Даю 99 баллов! Информатика, 8 класс. Нарисуйте блок-схему к задаче : Даны 10 чисел значения которых находятся в интервале от А до Б найти пару соседних чисел (заданных друг за другом) у которых значения отличаются на число меньшее чем EPS=0,01. Числа задаются последовательно. Если пары нет, то вывести слово «НЕТ». И напишите программу в Pascale, решающую эту задачу
Ответы
Ответ дал:
0
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
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
Ответ дал:
0
а можете так: 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), то проверить разность с предыдущим и если она меньше Эпсилон (заданного чи
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), то проверить разность с предыдущим и если она меньше Эпсилон (заданного чи
Ответ дал:
0
(заданного числа), то вывести текущее и предыдущее, променять флаг на TRUE (истина); ИНАЧЕ: Pred_ch:=Ch_tek;
6. После выхода из цикла проверить: если количество FL=False, то пара не найдена и нужно вывести «НЕТ».
6. После выхода из цикла проверить: если количество FL=False, то пара не найдена и нужно вывести «НЕТ».
Ответ дал:
0
Это уже другой вопрос - создайте его в обычном порядке.
Вас заинтересует
2 года назад
2 года назад
7 лет назад
9 лет назад
10 лет назад