Тема: Створення калькулятора у Delphi
Підкажіть будь ласка, як створюючи каркулятор у Delphi задати процедуру обчислення x! ,причому х дійсне число?
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Pascal/Delphi → Створення калькулятора у Delphi
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Підкажіть будь ласка, як створюючи каркулятор у Delphi задати процедуру обчислення x! ,причому х дійсне число?
Факторіал для дійсних чисел не визначено, тільки для натуральних і 0.
А у вас виникли проблеми з написанням процедури визначення факторіалу чи прикрутити це все до інтерфейсу?
tania.ionashku
Особисто я нічого не зрозумів. Поясніть докладніше, що вам потрібно.
Факторіал для дійсних чисел не визначено, тільки для натуральних і 0.
А якщо n! і n ціле число?
tania.ionashku
Особисто я нічого не зрозумів. Поясніть докладніше, що вам потрібно.
Я не знаю як створити у калькуляторі процедуру для обчилення n!
А у вас виникли проблеми з написанням процедури визначення факторіалу чи прикрутити це все до інтерфейсу?
З написанням процедури. В мене є така процедура, але я не дописала її
procedure TForm1.Button14Click(Sender: TObject);
begin
try
Edit1.SetFocus;
x:=StrToFloat(Edit1.Text);
except
ShowMessage('Помилка введення числа!');
Edit1.SelectAll;
Exit;
end ;
c:=;
Edit3.Text:=FloatToStr(c);
end;
де с -значення n!
1.http://uk.wikipedia.org/wiki/%D0%A4%D0% … 0%B0%D0%BB
2. факторіал для дійсних чисел - це здається гама функція Ейлера (вона іде як розширення факторіалу)
3. якщо мені не зраджу пам'ять, то ви можете створити нову функцію, але маєте її також оголосити(там зверху модуля має писати список функцій, там добавите свою)
4. власне як функцію факторіал писати - розповідати не буду
Дивіться. У вас є ваша чудова програма. Ви хочете її розвинути, я розумію. Але для того, щоб ми вам допомогли (ба навіть для того, щоб самостійно щось написати) вам треба абстрагуватися від вашої програми. Ви маєте написати функцію обчислення факторіала, яка працюватиме незалежно від того, в якій програмі її використовують. Більше того, я вам скажу - цими факторіалами інтернет просто забитий, і всім нам майже нічого не вартує написати таку функцію... але тоді ви нічого не вивчите, і знову прибіжите на цей форум, переконані, що всі вам щось повинні. А це не так, і це дуже нас дратує. Тому - або робіть самостійно, або викладайте, що ви зробили для того, щоб зробити самостійно - не прив'язку того, що ви не зробили, до вашого інтерфейсу, а саме з обчислення факторіалу. Хоча б результати гуглення з вашими коментарями - мовляв, "знайшла отаке-то, але там написане ось таке, що суперечить тому-то і тому-то, і тому я не можу з цим розібратися"...
Дивіться. У вас є ваша чудова програма. Ви хочете її розвинути, я розумію. Але для того, щоб ми вам допомогли (ба навіть для того, щоб самостійно щось написати) вам треба абстрагуватися від вашої програми. Ви маєте написати функцію обчислення факторіала, яка працюватиме незалежно від того, в якій програмі її використовують. Більше того, я вам скажу - цими факторіалами інтернет просто забитий, і всім нам майже нічого не вартує написати таку функцію... але тоді ви нічого не вивчите, і знову прибіжите на цей форум, переконані, що всі вам щось повинні. А це не так, і це дуже нас дратує. Тому - або робіть самостійно, або викладайте, що ви зробили для того, щоб зробити самостійно - не прив'язку того, що ви не зробили, до вашого інтерфейсу, а саме з обчислення факторіалу. Хоча б результати гуглення з вашими коментарями - мовляв, "знайшла отаке-то, але там написане ось таке, що суперечить тому-то і тому-то, і тому я не можу з цим розібратися"...
Дуже дякую за ваші саркастичні поради, це по-перше. По-друге, я нівідкого нічого не вимагаю. Якщо вам щось не подобається не відповідайте на мої "тупі" питання. Я розумію що Ви все знаєтє і Вас все датує,але не всі такі розумні як ВИ. Так інтернет "просто забитий факторіалами", але мені хотілося запитати професіоналів. Вибачте якщо чимось образила.
Проблема не в розумності чи знаннях, питання в бажанні вчитися, отримувати знання і розумнішати. Досі я не бачу з вашого боку особливих спроб хоч кудись просунутися.
7! = 6*5*4*3*2*1
3! = 3*2*1
0! = 0
function fact(n : integer) : longint;
begin
if n <= 1 then
fact := 1
else
fact := n * fact(n - 1);
end;
tania.ionashku
Те, що написав Singularity, в моєму випадку було першим посиланням у гуглі. Невже вам самій так важко було забити в гугл "факторіал паскаль", як вам порадив koala?
function factorial(n:word):Uint64;
var fact:Uint64;
i:integer;
begin
fact:=1;
for i:=1 to n do fact:=fact*i;
factorial:=fact;
end;
ну це щоб функція видавала правильний результат при трохи більших n, та при n> 20 ця функція теж не буде давати правильного результату, то ж давайте ускладнимо вам задачу і зробимо цю функцію більш корисною (а то для 20 чисел можна і таблицю скласти, по якій виводити результат).
Для дуже великих чисел у програмуванні є розділ "довгі числа", що б покраще з ним розібратись можу запропонувати легенду серед книжок по програмуванню "Мистецтво програмування" Д.Кнута.
vitia444 ти упоровся! який кнут ? людина про факторіал не знає
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися