IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Ввод с клавиатуры
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 25
Пол: Мужской

Репутация: -  0  +


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

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);

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Студент 3-к группы (ИГТК)
*

Группа: Пользователи
Сообщений: 32
Пол: Мужской
Реальное имя: Артём

Репутация: -  1  +


Вот тут сделал, думаю то что тебе нужно:
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='*';


Сообщение отредактировано: neic -


--------------------
Жизнь - это лестница. Когда одна ступень проваливается, 2-ая нога находиться на второй ступеньке, а значит есть и второй шанс... ©
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






blink.gif

Я бы сделал так:
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.

 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Студент 3-к группы (ИГТК)
*

Группа: Пользователи
Сообщений: 32
Пол: Мужской
Реальное имя: Артём

Репутация: -  1  +


volvo
Чёрт smile.gif И точно, можно было и так сделать smile.gif
Просто не задумывался над readkey.


--------------------
Жизнь - это лестница. Когда одна ступень проваливается, 2-ая нога находиться на второй ступеньке, а значит есть и второй шанс... ©
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Внимательнее задания надо читать, тогда будешь задумываться. Ясно было сказано:
Цитата
все остальные клавиши просто игнорировать.
У тебя вводится все подряд - не игнорируется вообще ничего, потому как проверка ПОСЛЕ ввода...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Студент 3-к группы (ИГТК)
*

Группа: Пользователи
Сообщений: 32
Пол: Мужской
Реальное имя: Артём

Репутация: -  1  +


Понял. Не догнал задание не много. blush.gif


--------------------
Жизнь - это лестница. Когда одна ступень проваливается, 2-ая нога находиться на второй ступеньке, а значит есть и второй шанс... ©
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.09.2020 3:02
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name