Как лучше реализовать? =)
Если пользователь ввёл y, то условие тру, если n то фалс..
Задача: сделать защиту от "дурака".
Тип переменной ans, в которую передаётся нажатие пользователем клавишь, char.
Пробывал сделать через вайл, но почему-то не обнуляется потом переменная ans
while (ans='y') or (ans='n') do
begin
if .... then ... else...
end;
ты это имел ввиду?
uses crt;
function q: boolean;
var ch : char;
begin
repeat ch:= readkey; until ch in ['y', 'n'];
if ch = 'y'
then begin writeln('yes'); q:=true; end
else begin writeln('no'); q:=false; end;
end;
Нет, а если пользователь введёт u, промахнётся, то что? =)
Нужно жёстко зациклить этот вопрос, пока не будет верного ответа.
будет ноу, а у меня при всех введёных буквах, кроме у, идёт выполнение операции.
Если я хотел выполнить её, но промахнулся..нажал ентер, всё =)
Это проверка стоит, на кнопке выход и некоторых других.
Теперь понятная суть?
Для считывания имён файлов, я сделал конструкцию вида
function q2: boolean;
var str : string;
begin
readln(str);
if str='yes' then q2:=true else q2:=false;
end; { q2 }
=)
не увидел антил..спасибо за алгоритм :]
Спасибо.
Проблема была в обнуление, присвоил ans пробел, и всё окей =)как в первом варианте.
uses crt;
function q: boolean;
var ch : char;
begin
repeat ch:= readkey; until ch in ['y', 'n'];
if ch = 'y'
then begin writeln('yes'); q:=true; end
else begin writeln('no'); q:=false; end;
end;
repeat ch:= readkey; until ch in ['y', 'Y', 'д', 'Д', 'n', 'N', 'н', 'Н'];
if ch in ['y', 'Y', 'д', 'Д'] then ...
else if ch in ['n', 'N', 'н', 'Н'] then ...