|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.02.2015, 12:56 | #1 |
Регистрация: 13.02.2015
Сообщений: 6
|
Задача
Дано число а. Проверить, является ли оно натуральным числом.
Знаю, что натуральные числа, это те числа, которые положительные и целые, предела не имеют. Как в Паскале написать, что данное число не может быть дробным? Никак не доходит... |
13.02.2015, 13:41 | #2 |
Участник клуба
Регистрация: 05.11.2013
Сообщений: 1,601
|
Код:
|
13.02.2015, 13:48 | #3 |
Регистрация: 13.02.2015
Сообщений: 6
|
А как будет выглядить программа с mod или div?
|
13.02.2015, 13:56 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Гы, полагаю, что задача стоит так - является ли натуральное число простым. Не? Вот там mod и div. А здесь оно не нужно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
13.02.2015, 13:56 | #5 |
Участник клуба
Регистрация: 05.11.2013
Сообщений: 1,601
|
Никак. Тип числа вы указываете в разделе var. И в дальнейшем вы не можете изменить его тип.
То если дробное, то real, если целое, то integer. |
13.02.2015, 14:03 | #6 |
Регистрация: 13.02.2015
Сообщений: 6
|
Нет, является ли данное число натуральным. Просто ход решения сложноват...Или мне так кажется.
В любом случае, спасибо всем за помощь) Последний раз редактировалось Stilet; 14.02.2015 в 11:59. |
14.02.2015, 11:51 | #7 |
Участник клуба
Регистрация: 05.11.2013
Сообщений: 1,601
|
Ничего сложного в программе нет. Сначала вы вводите "число" как строку, затем процедура val пытается преобразовать введенный вами набор символов в целое число. Если все в порядке, то в переменную code будет записан 0, и можно проверять число на "натуральность".
Если же "число" было дробным (либо вовсе не число), то в переменную code будет записан номер символа, в котором встретилась ошибка. |
14.02.2015, 14:39 | #8 |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
А что, если такой вариант.
если число положительно и функция frac от этого числа отличается от нуля не более чем на некоторый порог (грубо говоря, дробная часть равна нулю), то число натуральное. Кстати, насколько я помню, нуль - не натуральное число. |
14.02.2015, 17:50 | #9 |
Участник клуба
Регистрация: 05.11.2013
Сообщений: 1,601
|
Да, такой вариант тоже рассматривался. И успешно сдавался.
Единственное, что препод подправил вариант с frac на вариант c round, заявив, что сравнение с машинным нулем - небезопасная операция. Код:
|
14.02.2015, 17:59 | #10 |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
Я предлагал проверять не на равенство машинному нулю, а определить соотношение (больше/меньше).
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
задача на зачёт. проблема Задача на нобелевскую премию! | Sabotage5 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 18.03.2013 15:18 |
Задача по подсчёту статистики использования букв. Другая задача - по длинной арифметике Pascal ABC | kimberly | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 24.12.2012 17:03 |
Задача на оптимальный расчет маршрута (задача в презентации) в табличном процессоре Excel | Toofed | Помощь студентам | 0 | 30.11.2011 01:12 |
Задача минимизации дисбаланса на линии сборки (задача минимакса) | LenZab | Microsoft Office Excel | 13 | 13.03.2011 22:51 |