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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2010, 08:41   #1
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию Символ или число

Добрый день, есть задание реализовать гетерогенный списков в котором могут храниться целые,вещественные числа и символы. С тем как их хранить я разобралась, но появился другой вопрос, как определить значение какого типа ввводится, как быть с целыми вещественными понятно, читаем всегда вещественные, а затем при помощи frac(введеное число) определеяем если дробная часть 0 то целое. А вот как определить символ или число я не знаю, подскажите пожалуйста
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 31.03.2010, 08:58   #2
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от Sparky Посмотреть сообщение
Добрый день, есть задание реализовать гетерогенный списков в котором могут храниться целые,вещественные числа и символы. С тем как их хранить я разобралась, но появился другой вопрос, как определить значение какого типа ввводится, как быть с целыми вещественными понятно, читаем всегда вещественные, а затем при помощи frac(введеное число) определеяем если дробная часть 0 то целое. А вот как определить символ или число я не знаю, подскажите пожалуйста
Целые числа являются подмножеством вещественных...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 31.03.2010, 09:02   #3
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

так ладно более конкретно: мне нужно при вводе с клавиатуры определить что введено буква или вещественное число, как такое реализовать?
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 31.03.2010, 09:03   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну если эта строка - число то приведение его к типу числа не даст ошибки.
Ты о каком языке то говоришь? ато frac в нескольких есть.
Цитата:
мне нужно при вводе с клавиатуры определить что введено буква или вещественное число
Буква или Цифра? Или именно число?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.03.2010, 09:22   #5
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от Sparky Посмотреть сообщение
так ладно более конкретно: мне нужно при вводе с клавиатуры определить что введено буква или вещественное число, как такое реализовать?
Вообще-то при вводе с клавиатуры из буфера клавиатуры считываются скэн-коды клавиш, поэтому скэн-код для цифр 0..9 и символов '0'..'9' будут одинаковы...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 31.03.2010, 09:28   #6
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Если надо использовать ограничение ввода только цифровых символов, разделительной запятой и знака минус, применяйте следующую конструкцию
Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
   { Ввод только цифр и знаков ',' (зпт) и '-' (минус)}
   if not (Key in ['0'..'9',',','-']) then Key:= #0;
end;
Введенное в Edit1 число в виде строковой переменной затем преобразуется в вещественное число функцией
StrToFloat(Form1.Edit1.Text);
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 31.03.2010, 09:34   #7
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

Цитата:
А вот как определить символ или число я не знаю, подскажите пожалуйста
Код:
var S:string; //или char
     X:real;
     C:integer;
begin
readln(S);
Val(S,X,C);
if C=0 then //введенное S является числом, и тут уже определяешь какой вид числа, целый или дробный
         else //введенное S является символом
end;
Жми на весы!!!
Chudo4258 вне форума Ответить с цитированием
Старый 31.03.2010, 09:37   #8
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Sparky писал
Цитата:
А вот как определить символ или число я не знаю
и еще
Цитата:
мне нужно при вводе с клавиатуры определить что введено буква или вещественное число
Так ты бы уж определился конкретно что нужно определять символ или букву
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 31.03.2010, 09:37   #9
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

программу нужно писать на паскале и консольную. Мне нужно считать с файла, возможные варианты: 0.2 1 s
Перобразовывать все в строки нельзя, дак вот как понять что было введено значение типа char.
Допустим чтобы определиться целое или вещетсвенное делаю так:
Код:
if frac(x)=0 then
        begin
//обработка целого
        end
       else
        begin
//обработка вещественного
        end;
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 31.03.2010, 09:43   #10
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от Sparky Посмотреть сообщение
программу нужно писать на паскале и консольную. Мне нужно считать с файла, возможные варианты: 0.2 1 s
Перобразовывать все в строки нельзя, дак вот как понять что было введено значение типа char.
Допустим чтобы определиться целое или вещетсвенное делаю так:
Код:
if frac(x)=0 then
        begin
//обработка целого
        end
       else
        begin
//обработка вещественного
        end;
Да проще простого...
Читаешь очередной элемент списка и определяешь входит ли он в множество символов
if S in ['a'..'Z'] then // это символ латиницы...
тоже самое нужно сделать и для кириллицы.
Если не входит, то определяй какое это число - целое или вещественное...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TEdit, как проверить что введено(число или текст). kReid Общие вопросы Delphi 4 26.02.2010 11:46
число простое или составное isus Помощь студентам 9 18.12.2009 00:35
Написать программу, которая за меньшее число ходов отгадывает загаданное число gomz007 Помощь студентам 16 08.11.2009 12:57
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51
Оператор амперсанд "&" или число внутри текста dotvz Microsoft Office Excel 2 02.04.2008 14:33