محاسبه فاکتوریل اعداد با استفاده از جاوا اسکرپت
انجام عملیات ریاضی با استفاده از HTML امکان ندارد چون در حقیقت HTML را نمیتوان یک زبان برنامه نویسی محسوب کرد. HTML یک زبان علامت گذاری ابر متن است. برای انجام عملیات ریاضی باید از زبانهای برنامه نویسی نظیر PHP, ASP و JavaScript استفاده کرد. در این مورد استفاده از جاوا اسکرپت به دلیل اینکه برای اجرا شدن به امکانات اضافی در سرور احتیاج ندارد مناسب تر است.
فاکتوریل یک عدد برابر با حاصلضرب همه اعداد صحیح مثبت کوچکتر از عدد مورد نظر است. برای مثال فاکتوریل 5 به صورت زیر محاسبه می شود:
5! = 120
استثنایی که در فاکتوریل وجود دارد عدد صفر است. فاکتوریل عدد صفر برابر با 1 است.
با استفاده از تابع زیر میتوانیم فاکتوریل یک عدد را به دست آوریم:
function factorial (aNumber) { // این قسمت در صورتی که عدد وارد شده به صورت اعشاری باشد آنرا به اولین عدد صحیح بزرگتر از آن گرد میکند aNumber = Math.floor(aNumber); // این قسمت در صورتی که مقدار وارد شده منفی باشد یا عدد نباشد تابع را متوقف میکند if(!isFinite(aNumber) || aNumber < 0) return false; // این قسمت در صورتی که عدد وارد شده صفر باشد مقدار 1 را باز میگرداند if(aNumber == 0) return 1; var output = 1; for (i = 1; i <= aNumber; i++) { output *= i; } return output; }
حالا نوبت به طراحی قسمت مربوط به وارد کردن عدد و نمایش نتیجه در صفحه می رسد. برای این کار میتوانیم از کد زیر استفاده کنیم:
عدد مورد نظر را وارد کنید: <input type="text" name="number" id="number" size="10"> <input type="button" value="محاسبه" onclick="CountResult()"> <input type="text" name="result" id="result">
ما برای راحتی کار از تابع زیر برای خواندن عدد مورد نظر و نمایش نتیجه آن استفاده میکنیم:
function CountResult() { // خواندن عدد ورودی var inputNumber = document.getElementById("number").value; // اجرای تابع محاسبه فاکتوریل var result = factorial(inputNumber); if(!result) { alert("مقدار وارد شده معتبر نیست"); } else { document.getElementById("result").value = result; } }
در اینجا میتوانید کد صفحه ای را که برای برای پیدا کردن فاکتوریل اعداد طراحی کردیم مشاهده کنید:
<html> <head> <script type="text/javascript"> function factorial(aNumber) { aNumber = Math.floor(aNumber); if(!isFinite(aNumber) || aNumber < 0) return false; if(aNumber == 0) return 1; var output = 1; for (i = 1; i <= aNumber; i++) { output *= i; } return output; } function CountResult() { var inputNumber = document.getElementById("number").value; var result = factorial(inputNumber); if(!result) { alert("مقدار وارد شده معتبر نیست"); } else { document.getElementById("result").value = result; } } </script> </head> <body dir="rtl"> <p> عدد مورد نظر را وارد کنید: <input type="text" name="number" id="number" size="10"> <input type="button" value="محاسبه" onclick="CountResult()"> <input type="text" name="result" id="result" size="10"> </p> </body> </html>
یک نمونه از فرم ایجاد شده با روش بالا را می توانید در اینجا مشاهده کنید: