Нужно: ввод с клавиатуры только чисел и десятичной запятой, все остальные клавиши просто игнорировать.
Помогите с процедурой.
procedure menu1;
var Key: Word;
var m:set of ord('0')..ord('9');
begin
m:=[ord('0'),ord('1'),ord('2'),ord('3'),ord('4'),ord('5'),ord('6'),ord('7'),ord('8'),ord('9')]+[ord(',')];
if (not(key in m)) and (key<>ord(','))
then
readln(Key);
Вот тут сделал, думаю то что тебе нужно:
var s:char;
...
writeln('Введите символы. Конец ввода "*":');
Repeat
read(s)
If (s='1') or (s='2') or (s='3') or (s='4') or (s='5') or (s='6') or (s='7') or( s='8') or (s='9') or (s='0') or (s=',') then
begin
...
end;
Until s='*';
Я бы сделал так:
uses crt;
var s:char;
begin
writeln('Вводите символы (Enter - конец ввода):');
Repeat
s := readkey;
If s in ['0'..'9', ','] then begin
write(s);
{
здесь - если надо еще что-то сделать с разрешенными символами,
например, можно записать их в строку...
}
end;
Until s = #13;
end.
volvo
Чёрт И точно, можно было и так сделать
Просто не задумывался над readkey.
Внимательнее задания надо читать, тогда будешь задумываться. Ясно было сказано:
Понял. Не догнал задание не много.