1. Заголовок или название темы должно быть информативным ! 2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК ! 4.НЕ используйте форум для личного общения! 5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
Какие ограничения нужно установить для числа n в программе, вычисляющей факториал этого числа n? Имею в виду, что нужно написать после readln(n), чтобы факториал с точки зрения алгебры вычислялся правильно? Как указать, что число должно быть неотрицательное, натуральное и. т. д.? Подскажите, пожалуйста как это должно выглядеть?
Зачем надо присваивать String, необходимо же вычисолять факториал числа а тип STRING используется для текста, насколько я знаю?
Цитата
val(ns,n,kod); {..........}
Что это значит? Я не спец, объясни пожалуйста.
Цитата
(frac(n)=0)
Этот оператор что делает?
Цитата
Для чистоты я бы описал n как целое и убрал его проверку на наличие дробной части (достаточно проверки на kod=0). Еще хочу обратить внимание Вячеслава на сравнение с stmax, величина которого зависит от типа возвращаемого функцией факториала аргумента, и должно быть таким, чтобы в процессе вычисления функции не происходило переполнения.
Напиши пожалуйста как это будет выглядеть в паскале. Я тебя понял, но могу ошибиться.
Зачем надо присваивать String, необходимо же вычисолять факториал числа а тип STRING используется для текста, насколько я знаю?
Так то оно так, но при вычислении факториала больше 12, число в результате выйдет за пределы типа Integer, тоесть больше 35000, а при N>16 ты уже не сможеш использовать даже Longint, поэтому при вычислении большых значений факториала используют тип стринг, в котором можжно хранить число длинной до 255 символов в виде текста. Но алгоритм там посложнее...
Цитата
Что это значит? Я не спец, объясни пожалуйста.
val(s,n,kod); - это функция которая преобразовывает строчное значение в его числовое представление - смотри справку паскаля. S - переменная строчного типа(состоит только из цифр), N - переменная типа Real, или целого типа, Kod - переменная типа Integer - показывает код ошибки, если неудалось преобразовать строку в число
Цитата
Этот оператор что делает?
(frac(n)=0) - возвращает дробную часть аргумента, проверяет число целое или нет вобщем.
Сообщение отредактировано: RathaR -
--------------------
Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих... Пусть умолкнет всякий критик! Я - системный аналитик!