|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
21.12.2010, 21:42 | #11 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Задача решается так. Прежде всего, необходимо ввести некоторые, как бы, договоренности. Будем считать, что вещественные числа a, b и c определены с точность, допустим, до третьего знака после запятой, то есть числа типа 5.000007, 11.999996 и т.п. будем считать целыми. Кроме того, договоримся, что числа не слишком большие и не превышают 2000000. Тогда Код:
VAR a,b,c:Real; n:Byte; Begin WriteLn('Enter a, b and c:'); ReadLn(a,b,c); n:=0; If Round(a*1000)=Round(a)*1000 then n:=n+1; If Round(b*1000)=Round(b)*1000 then n:=n+1; If Round(c*1000)=Round(c)*1000 then n:=n+1; WriteLn('n= ',n); ReadLn; END. Функция Round(x) округляет вещественное число до ближайшего целого, при жтом результат получается в формате LongInt. Таким образом, если введено число 12.000007, то сравниваются Round(12.000007*1000)=Round(12000.007)=12000 и Round(12.000007)*1000=12*1000=12000, т.е. число - целое. А вот если исходное число, например, 12.015, то имеем: Round(12.015*1000)=Round(12015.0)=12015 и Round(12.015)*1000=12*1000=12000, не совпали, т.е число - дробное. |
21.12.2010, 21:42 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Имеет смысл прочитать данное ниже Помогите написать 2 программы по программированию на языке С++ Срочно нужно написать программу на языке Bash Помогите написать программу на языке Делфи Помогите написать программу Помогите написать программу |
21.12.2010, 21:51 | #12 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Ну вот, совсем другое дело. Единственная ошибка - в Паскале при выводе сообщений используются не двойные кавычки, а апострофы. Т. е. правильно writeln('Целых чисел: ', ... P.S. Тимурка, а где это Вы, простите за любопытство, раскопали как правило недокументированнные (во всяком случае, малоизвестные) возможности Паскаля? Я имею в виду функцию byte(b:boolean)? |
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|