Показать сообщение отдельно
Старый 20.07.2008, 22:37     # 2
Borland
СуперМод
IMHO Консультант 2005-2009
 
Аватар для Borland
 
Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отс
Пол: Male
Сообщения: 14 515

Borland - Гад и сволочь
1. введённое число необходимо проверить (как минимум на неотрицательность).
2. перед входом в цикл присвоить nfak значение "1"
3. в цикле while (условие: n>0) всего 2 команды:
а) nfak:=nfak*n
б) n:=n-1
4. условие IF (n-1) = 0 при этом излишне: при входе в цикл с n=1 он выполнится 1 раз и выдаст правильное значение (1*1=1). При входе с n=0 цикл выполняться не будет и результатом будет 1 (тоже правильно, 0!=1)
5. Если по каким-либо специальным соображениям n менять не хочется (например, нужно его использовать при выводе результатов) - используйте в цикле l вместо n (соответственно, перед входом в цикл присвоить l:=n).

Паскалем не владею, а то и готовую программку нарисовать мог бы...
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила!
Распространенье наше по планете
Особенно заметно вдалеке:
В общественном парижском туалете
Есть надписи на русском языке

В. Высоцкий

Borland вне форума