Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2009, 15:55   #1
Almost456
Пользователь
 
Регистрация: 30.11.2008
Сообщений: 17
По умолчанию Про программирование клавиатуры.Паскаль 7.0

Всем здорово.
Как ограничить нажатие клавиш при вводе цифр?Например до 4.
Ввести n=1234.
Вот как то написать надо чтобы 4 раза была нажата клавиша.Кто знает помогите написать...
П. С. Снизу не рабочая прога.
Код:
uses crt;
var n,k,p,m,i:integer;
ch:char;
begin
ClrScr;
repeat
gotoxy(5,5);
write('n=');
readln(n);
until keypressed;
end.
Almost456 вне форума Ответить с цитированием
Старый 16.12.2009, 16:12   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

После ввода 4 цифр послать клавиатуре сигнал самоуничтожения
А если серьёзно, то надо просто считывать посимвольно, т.е. что-то вроде
Код:
var i, n: integer; c: char;
...
n := 0;
for i := 1 to 4 do
  begin
  read(c);
  n := n * 10 + (c - "0");
  end;
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 16.12.2009, 16:26   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Вы уверены, что задача перед Вами стоит именно так, как Вы её пытаетесь решить?!
Просто я вижу два подхода:
1) перехватывать нажатия клавиш, анализировать, какую нажали, корректно обрабатывать забой (а в принципе, если уж идти по этому пути, обрабатывать стрелочки, клавиши Delete, Home, End - т.е. писать простенький однострочный редактор строки). в этом случае Вы легко сможете недопустить нажатие нецифровых клавиш, обеспечить ввод по маске ограничить длину вводимой строки и т.д. и т.п.
но это не очень просто.

2) давать вносить ЧТО УГОДНО. Хоть буквы, хоть цифры, хоть закорючки с палочками..
По нажатию Enter - анализировать введённую строку, если условия проверки не выполнены (ну, например, это ввели не число, или длина больше допустимой), ругаться на экран гневными сообщениями и заставлять вводить так, как требуется.
Это подход очень прост, реализуется буквально одной/двумя строчками простейшего кода.

я Вам рекомендую как раз вторым способом воспользоваться! пример смотрите мой пост вот здесь - "Pascal. Можно ли исправить ошибку?"
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.12.2009, 18:42   #4
Almost456
Пользователь
 
Регистрация: 30.11.2008
Сообщений: 17
По умолчанию

Лучше конечно вторым способом
Значит мне надо подсчитать кол-во цифр в строке и когда я введу>4,то вывести сообщение "Слишком большое число".
А как это примерно сделать. может так...

Код:
uses crt;
var n,k,p,m,i:integer;
begin
ClrScr;
gotoxy(5,5);
write('n=');
readln(n);
m:=n; k:=0;
while m<>0 do begin
p:=n mod 10;
inc(k);
m:=m div 10;
end;
gotoxy(5,6);
write('k=',k);
if k>4 then begin
gotoxy(7,5);
write('Большое число');
end;
readln;
end.

Последний раз редактировалось Almost456; 16.12.2009 в 18:52.
Almost456 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль.Программирование задач нахождение суммы и произведения Яська Помощь студентам 1 07.12.2009 18:16
Объектно-ориентированное программирование (Паскаль) Ake Помощь студентам 1 22.02.2009 20:14
принадлежит ли число, введённое с клавиатуры отрезку (а;в). Границы отрезка вводятся с клавиатуры Maria, Russia Помощь студентам 3 17.02.2009 22:01
где найти инфу про программирование документов ms office в Delphi? нужно срочно! Алёна БД в Delphi 7 05.04.2007 12:57