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

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

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

 
 Ответить  Открыть новую тему 
> задача на типы данных
сообщение
Сообщение #1


Пионер
**

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

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


мне необоходимо написать такую прогу:в диалоговом режиме вводится число ,если оно относится к целому типу данных то в результате тоже должно быть целое число ,точно также с вещественным,сивольным и логическим типом данных (все в одной проге)реализовать надо на паскале .
P.S.
сам толком задание не понял и как делать не представляю,памажите кто чем может
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

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

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


Так как таких вещей как шаблоны в Паскале нету, то вводи строку и анализируй ее.

Если только числа [и знак числа в первом сисмволе] - то целое
Если то что и выше + 1 десятичный разделитель - то вещественное

ну и так далее ....





ps Вот тут Volvo лучше вариант предложил smile.gif


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Читаешь строку, и пробуешь преобразовать ее к целому числу (через Val)... Если ошибка, то введено не целое - пробуй преобразовать к вешественному. Если и здесь ошибка - то анализируй длину введенной строки... При длине = 1 был введен символ.

Если длина отлична от 1, то переводить введенную строку в верхний регистр и проверять на 'TRUE' или 'FALSE'... Есть совпадение - введена логическая переменная, нет - была введена строка, не являющаяся ничем из выше перечисленного...

Цитата
Так как таких вещей как шаблоны в Паскале нету
rolleyes.gif 100% ?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






а на примере можно а то я не совсем понял
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






function UpStr(s: string): string;
var i: integer;
begin
for i := 1 to length(s) do
s[i] := UpCase(s[i]);
UpStr := s;
end;

var
s: string;
code: integer;
i: longint;
r: real;
b: boolean;

begin
write('> '); readln(s);
val(s, i, code);
if code > 0 then begin
val(s, r, code);
if code > 0 then begin

if length(s) > 1 then begin

if (UpStr(s) = 'TRUE') or (UpStr(s) = 'FALSE') then begin
b := UpStr(s) = 'TRUE';
writeln('Boolean type. B = ', b);
end
else writeln('None of these types... Just a string: ', s);

end
else writeln('Char type. Ch = ', s);

end
else writeln('Real type. R = ', r:10:5);
end
else writeln('Integer type. I = ', i:10);

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


Гость






спаибо огромное теперь я все вроде бы понял!!!!!!!!
 К началу страницы 
+ Ответить 

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

 




- Текстовая версия 20.09.2017 7:25
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"