writeln('Введите идентификатор: ');
readln(id);
while length(id)<>3 do
begin
write('Введите идентификатор из 3 символов');
readln(id);
end;
Где ошибка?
program LR_2;
uses crt;
var s0:set of 'A'..'Z';
s1:set of 'a'..'z';
s2:set of '0'..'9';
n:integer;
id:string[3];
function length(s:string):integer;
begin
clrscr;
writeln('Введите идентификатор: ');
readln(id);
while length(id)<>3 do
begin
write('Введите идентификатор из 3 символов');
readln(id);
end;
repeat
s0:=['A'..'Z'];
s1:=['a'..'z'];
s2:=['0'..'9'];
n:=0;
if id[1] in s0 then n:=n+1
else writeln('Первый идентификатор не верен');
if id[2] in s1 then n:=n+1
else writeln('Второй идентификатор не верен');
if id[3] in s2 then n:=n+1
else writeln('Третий идентификатор не верен');
until n=3;
writeln('Идентификатор верный.');
readln;
end.
Что именно не работает? У меня, например, не компилится. Это потому, что Вы описываете функцию, а пытаетесь её закрыть как основной модуль программы. Иными словами нужно там, где у Вас end. надо поставить end; а также добавить модуль begin end. в котором вызвать вашу функцию.
Спасибо. Попробую без функции. Как проверить кол-во введёных символов?
Извините, не прочёл правила. Перенесите пожалуйста к студентам.
Цитата:
Как проверить кол-во введёных символов?
может я конечно не понял вашего вопроса, но...
Код:
Код:
repeat
write('Введите идентификатор из 3 символов: ');
readln(id);
until length(id) = 3;
write('Введите идентификатор из 3 символов: ');
readln(id);
until length(id) = 3;