![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Регистрация: 02.05.2007
Сообщений: 3
|
![]() ![]() 1- Считает факториал отрицательног числа 2- Считает факториал положительного числа И написать к этим прогам коментарии: что, где и зачем!!!!! Ребята выручайте, очень надо как можно скорее!!!! ![]() Последний раз редактировалось RSLoader; 03.05.2007 в 01:10. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 16.04.2007
Сообщений: 298
|
![]()
function Factorial(n: integer): integer;
begin if N > 1 then Factorial := N*Factorial(N-1) else Factorial := 1; end;
Не надо ничего усложнять. Все достаточно тривиально.
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 02.05.2007
Сообщений: 3
|
![]()
Спасибо огромное за помощ, но там пишется как-то по - другому, там сначала, по-моему в блокноте, а потом через командную строку запускаешь этот текстовый файл, но с расширением (блин чисто на память, что-то в универе говорили) asm, или что-то в этом роде. Если в курсе "о чем я", то помоги плиз!!!
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 27.04.2007
Сообщений: 13
|
![]()
;==== NASM syntax вроде бы
; ; file: factorial.asm ; This program demonstrates local variables and recursion ; %include "asm_io.inc" segment .data prompt db "Enter a number: ", 0 ans_msg db "! is ", 0 segment .bss input1 resd 1 input2 resd 1 segment .text factorial: ; ; This procedure expects one unsigned integer (n>0) on the stack. ; It returns n! in eax ; push ebp mov ebp,esp sub esp,4 ;make space for a local variable (at ebp-4) mov eax,[ebp+8] ;put parameter in eax cmp eax,0 je done ;if we were finding 0! mov [ebp-4],eax ;else store eax in our local variable dec eax ;compute n-1 push eax ;put it on the stack call factorial ;and find (n-1)! ;oops! forgetting to remove param from stack. see * mul dword [ebp-4] ;then multiply it by our saved value jmp epilog ;and return it done: mov eax,1 epilog: mov esp,ebp ;restore esp (skip over local variables) ; Note *: saved, because we fix esp no matter what ; DON'T DO THIS. I left it in for educational purposes only pop ebp ret global _asm_main _asm_main: enter 0,0 ; setup routine pusha mov eax, prompt call print_string call read_int call print_int push eax mov eax,ans_msg call print_string call factorial add esp,4 ;remove parameter from stack call print_int call print_nl popa mov eax, 0 ; return back to C leave ret |
![]() |
![]() |
![]() |
#5 |
Регистрация: 02.05.2007
Сообщений: 3
|
![]()
Спасибо огромное, выручил! (если конечно это в том виде который мне нужен). А ты мне можешь объяснить "по-русски": что в этой программе происходит последовательно (построчно)? И она сразу считает и "+" и "-" числа?
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Факториал числа в Delphi | Prisian | Общие вопросы Delphi | 16 | 24.01.2008 13:23 |
Факториал числа (циклы) | Sargon | Общие вопросы C/C++ | 2 | 14.01.2008 02:25 |
Факториал от дробного числа | RIO | Помощь студентам | 11 | 26.12.2007 18:36 |
ADO. коментарии в Memo | Чайка | БД в Delphi | 2 | 19.04.2007 20:07 |