Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на языке Pascal

Выпуск № 273
от 17.04.2004, 21:50

Администратор:
Имя: Sensey
URL: Информационный ресурс
ICQ: 105679124
Украина, Харьков
О рассылке:
Задано вопросов: 464
Отправлено ответов: 1708
Активность: 368.1 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Pawel
Статус: Профессиональный
Общий рейтинг: 159.12
[Подробней >>]
sir henry
Статус: Профессиональный
Общий рейтинг: 159.2
[Подробней >>]
Boriss
Статус: Профессиональный
Общий рейтинг: 157.83
URL: Программирование на Паскале
[Подробней >>]
 
Vitally
Статус: Доверительный
Общий рейтинг: 133.98
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 459. Помогите мне пожалуйсто сделать модуль для обработок ошибок ввода чисел типа Real, реализованный на ... (ответов: 4)

Вопросов: 1, ответов: 4


 Вопрос № 459

Помогите мне пожалуйсто сделать модуль для обработок ошибок ввода чисел типа Real, реализованный на Pascal.
Заранее большое спасибо!



Вопрос отправлен: 14.04.2004, 21:40
Отправитель: NeOLiG

[Следующий вопрос >>] [Список вопросов]

Отвечает Pawel

Добрый день, NeOLiG!
читай через readkey клавиши, и если это цифра выводи её на икран и пиши в память.

Ответ отправлен: 17.04.2004, 18:04
Отправитель: Pawel


Отвечает sir henry

Добрый день, NeOLiG!
Для этого Вам надо вводить числа в строковой форме и отслеживать нажатие каждой клавиши на предмет относится ли данный символ к цифрам ("0"..."9", "." или ","), либо уже введенную строку проверять на похожесть. Для этого есть процедура преобразования строки в число:
Val(S; var V; var Code: Integer);
где S - строка, V - число, Code - код ошибки (если в строке есть недопустимые символы, то здесь будет номер позиции в строке).

Ответ отправлен: 15.04.2004, 04:20
Отправитель: sir henry


Отвечает Boriss

Доброе время суток, NeOLiG!
Тут много приемов может быть использовано. Два самых простых смотрите в приложении. Но у Read/ReadLn Паскаля есть огрехи. Так что надо использовать одну из них :))
Если нужны более сложные сопосбы реализации, но напишите - где-то валялось

Приложение:

Ответ отправлен: 15.04.2004, 11:29
Отправитель: Boriss


Отвечает Vitally

Добрый день, NeOLiG!
Например так:
в цикле: if keypressed then ch:=readkey; где сh типа char. Далее проверяешь что было нажато. Если нажали цифру, точку или запитую - все нормально; если Enter - ввод закончен; если что-то еще - просто игнорируем. Если ввод был коррекным, пишем введенный символ (write(ch)), в противном случае ничего не выводим (можно пискнуть или вывести сообщение о некоррекном воде). Далее примерно так (в переменной типа integer): Если ввели вторую цифру, то первая умножается на 10 и к ней прибавляется вторая. При вводе третьей, имеющееся число умножается на 10... etc. Если нажали запятую, берем вторую переменную и проделываем с ней то же что с первой, только хранить она будет цифры после запятой и переменная должна быть типа real. После Enter'а вторую переменную циклично делим на 10 до тех пор, пока число не будет <= 0. Потом ко второму числу прибавляем число из первой переменной. Вот вроде и все.
Удачи!
P.S. На оригинальность и наивысшую производительность не претендую. :)

Ответ отправлен: 16.04.2004, 11:28
Отправитель: Vitally



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (22)
C / C++ (13)
Perl (1)
Builder / Delphi (18)
Pascal (18)
Basic / VBA (2)
Java / JavaScript (3)
PHP (10)
Криптография (6)
WinAPI (11)
Радиоэлектроника (6)
Пользователю
Windows 95/98/Me (34)
Windows NT/2000/XP (48)
"Железо" (25)
Поиск информации (16)
Администратору
Windows NT/2000/XP (24)
Linux / Unix (7)
Юристу
Гражданское право (10)
Семейное право (8)
Трудовое право (8)
КоАП (6)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу


В избранное