вот я написал решение задачи
program zadacha_pro_lodky;
VAR V, U, T1, T2: word;
S : real;
Begin
write ('введите скорость лодки в стоячей воде V= '); readln(v);
write ('введите скорость течения U= '); readln (U);
if U>V then writeln ('неверный ввод данных');
write ('введите время движения по озеру T1 = '); readln (T1);
write ('введите время движения по реке T2 = '); readln (T2);
S:= (T1*V)+(T2*(V-U));
writeln ('Путь лодки за всё время=',S);
readln;
end.
Если я ввожу правильные данные, то всё работает. А когда ввожу неправильные данные, то од доходит до условия, пишет что ввод данных неверный и продолжает запрашивать дальше данные по задача.
И так мой вопрос: Как сделать так чтобы при вводе неправильных условий программа просила повторить ввод данных заново???
Другие языки программирования и технологии
ПОмощь с паскалем
var
V, U, T1, T2: word;
S: real;
begin
write('введите скорость лодки в стоячей воде V= '); readln(v);
write('введите скорость течения U= '); readln(U);
if U > V then
begin
writeln('неверный ввод данных')
end
else begin
write('введите время движения по озеру T1 = '); readln(T1);
write('введите время движения по реке T2 = '); readln(T2);
S := (T1 * V) + (T2 * (V - U));
writeln('Путь лодки за всё время=', S);
readln;
end;
end.
V, U, T1, T2: word;
S: real;
begin
write('введите скорость лодки в стоячей воде V= '); readln(v);
write('введите скорость течения U= '); readln(U);
if U > V then
begin
writeln('неверный ввод данных')
end
else begin
write('введите время движения по озеру T1 = '); readln(T1);
write('введите время движения по реке T2 = '); readln(T2);
S := (T1 * V) + (T2 * (V - U));
writeln('Путь лодки за всё время=', S);
readln;
end;
end.
repeat
write ('введите скорость лодки в стоячей воде V= '); readln(v);
write ('введите скорость течения U= '); readln (U);
if U<=V then break;
writeln ('неверный ввод данных');
until false;
write ('введите скорость лодки в стоячей воде V= '); readln(v);
write ('введите скорость течения U= '); readln (U);
if U<=V then break;
writeln ('неверный ввод данных');
until false;
можно и цикл, но проще goto в начало
program zadacha_pro_lodky;
var
V, U, T1, T2: word;
S: real;
label beg;
begin
beg:
write('введите скорость лодки в стоячей воде V= '); readln(v);
write('введите скорость течения U= '); readln(U);
if U > V then begin writeln('!!! неверный ввод данных U > V'); writeln(''); goto beg; end;
write('введите время движения по озеру T1 = '); readln(T1);
write('введите время движения по реке T2 = '); readln(T2);
S := (T1 * V) + (T2 * (V - U));
writeln('Путь лодки за всё время=', S);
readln;
end.
Но преподам это не нравится :) хотя на уровне ассемблера теже goto и происходят.
program zadacha_pro_lodky;
var
V, U, T1, T2: word;
S: real;
label beg;
begin
beg:
write('введите скорость лодки в стоячей воде V= '); readln(v);
write('введите скорость течения U= '); readln(U);
if U > V then begin writeln('!!! неверный ввод данных U > V'); writeln(''); goto beg; end;
write('введите время движения по озеру T1 = '); readln(T1);
write('введите время движения по реке T2 = '); readln(T2);
S := (T1 * V) + (T2 * (V - U));
writeln('Путь лодки за всё время=', S);
readln;
end.
Но преподам это не нравится :) хотя на уровне ассемблера теже goto и происходят.
поставь метку на ввод и опять вводи
не уверен, но попробуй еще один цикл сделать: если данные введены неверно пусть выбрасывает на начало.
Похожие вопросы
- Нужна помощь с паскалем!
- Нужна скорая помощь по паскалю)))
- помогите решить задачу с помощью турбо паскаля: Вывести все шестизначные «счастливые номера». Сколько их всего?
- очень срочно нужна помощь по паскалю сижу на экзамене. дома буду обязательно отблагодарю и скину деньги если что
- нужна помощь с Паскалем
- Нужна помощь в ПАСКАЛЕ.
- Помощь по информатике. 9 класс. Программирование .Язык Паскаль. Ветвление
- Паскаль ABC (нач. курс) прошу помощи, прога внутри и вопрос
- Народ, оч рассчитываю на вашу помощь .../паскаль/
- Аналог ассоциативного массива в Паскале.