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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2008, 21:07   #1
ЯншинаВера
 
Регистрация: 29.03.2008
Сообщений: 9
Стрелка SOS! Нужна срочная помощь Паскаль!

Написать функцию, обеспечивающую ввод с клавиатуры положительного двухзначного числа. При нажатии пользователем какой-либо клавиши соответствующий ей символ должен появляться на экране только в том случае, если этот символ является цифрой. Функция должна позволять пользователю редактировать введенное число при помощи клавиши <BackSpace>. Если пользователь ввел хотя бы одну цифру, то при нажатии клавиши <Enter> функция должна завершать работу и возвращать введенное пользователем число вызвавшей ее процедуре.



Program Esarevskii;
uses crt;
var n:integer;
function chislo(n:integer):integer;
var i, k:integer;
begin
k:=n;
for i:=1 to 2 do
k:=k div 10;
if k>0 then begin write('Nevernoe chislo'); exit; end;
if n>9 then writeln(n) else writeln ('nevernoe chislo');
end;
begin
write('VVEDITE n= ');
readln(n);
chislo(n);
readln;
end.
Препода не устраивает, говорит нужно, чтобы при вводе букв выдавало сообщение "Неверное число" и ввод чисел был до тех пор, пока не нажмешь ESC/

Помогите пожалуйста или подскажите
ЯншинаВера вне форума Ответить с цитированием
Старый 02.06.2008, 21:25   #2
ЯншинаВера
 
Регистрация: 29.03.2008
Сообщений: 9
По умолчанию

Нашла такую же задачу, все ок, только не выводит сообщение "Неверное число", если набираешь трехзначное или однозначное и не повторяет запуск программы
ЯншинаВера вне форума Ответить с цитированием
Старый 02.06.2008, 21:25   #3
ЯншинаВера
 
Регистрация: 29.03.2008
Сообщений: 9
По умолчанию

Uses crt;
Var c:char;
S:string;
X,e:integer;
Function far(l:byte):integer;
Label 1,2;
Begin
1:c:=readkey;
case c of
'0'..'9':begin
write(c);
s:=s+c;
goto 1;
end;
#8:if length(s)>0 then begin
write(#8,' ',#8);
delete(s,length(s),1);
goto 1;
end;
#13:begin
if length(s)>0 then begin
writeln;
val(s,x,e);
goto 2;
end;
goto 1;
end;
else goto 1
end;
2:far:=x;
end;
begin
far(1);
readln
end.
ЯншинаВера вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна срочная помощь немогу найти свои ошибки delphin100 Общие вопросы Delphi 3 03.06.2008 08:38
Нужна срочная помощь!!! Михей Фриланс 5 26.04.2008 17:19
TP7: Срочная помощь нужна по отладке прогарммы на Паскале! Anna_fors Помощь студентам 9 28.08.2007 10:18
Нужна срочная помощь Рената Помощь студентам 9 04.06.2007 22:42
Нужна срочная помощь с ListView Игнат Помощь студентам 2 04.06.2007 01:14