Помощь - Поиск - Пользователи - Календарь
Полная версия: Табулирование+Метка
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Mambakremen
Нужна помощь по задаче.

Вывести на экран таблицу функций

F1(x), если x<=a

F2(x), если x>a

Для значений аргумента x в интервале от xn до xk с шагом hk.(Данные водятся с клавиатуры).
Нужно предусмотреть проверку правильности верхней границы xk в диапазоне xn<=xk.
a=3.8.
Сделать два варианта программы с использованием циклов while, repeat.

Не получается сделать цикл или метку на проверку границы, чтобы верхняя была больше нижней, если человек вводит неправильно, его заставляет программа опять ввести нижнюю границу и так пока не будет верхняя больше нижней.

program Z_2;
uses crt;
const
a=3.8;
var y,x,xn,xk,hk,F2,F1:real;
begin
clrscr;
writeln('Tabulirovanie');
write('Verhn granica= ');
read(xn);
write('Nignaya= ');
read(xk);
write('Vvedite shag');
read(hk);
x:=xk;
writeln(' x | y ');
repeat
begin
if x<=a then
y:=ln(x*x+2.5)
else
y:=sqrt(x*x+8);
end;
writeln(x:5:2,'|',y:5:2);
x:=x+hk;
until x>xn;
readkey;
end.


мисс_граффити
 repeat
write('Verhn granica= ');
read(xn);
write('Nignaya= ');
read(xk);
until xk<=xn;


сорри, проверить не на чем, но должно быть так smile.gif
только запрашивать будет обе границы заново. если хочешь, чтобы только нижнюю - вынеси верхнюю за пределы этого цикла.

и еще... ты разберись, какая из границ верхняя, а какая нижняя. в условии вроде наоборот.

а к чему относится begin/end в твоем repeat?
volvo
Цитата
если человек вводит неправильно, его заставляет программа опять ввести нижнюю границу и так пока не будет верхняя больше нижней.

writeln('Tabulirovanie');
write('Verhn granica= '); read(xn);
repeat
write('Nignaya= '); read(xk);
until (xk < xn); { Как только условие выполнится - цикл закончится }
Mambakremen
Спасибо!

begin/end в repeat) не знаю smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.