I етап. Аналіз умови задачі, визначення вхідних даних і кінцевих результатів
Вхідні дані: додатнє число.
Кінцеві результати: факторiал числа.
II етап. Побудова інформаційної моделі
Очевидно, інформаційною моделлю розв’язування цієї задачі є математична модель, яка складається з формул, за якими знайдемо факторiал числа.
Ці формули
s = n!
Крім того, одержані дані бажано округлити до сотих.
III етап. Вибір програмних засобів для розв’язування задачі виглядатимуть так:
Прикладним програмним засобом, який можна використати для розв’язування задачі, може бути, наприклад, програма-калькулятор або табличний процесор. Або можна скласти спеціальну програму для розв’язування саме цієї задачі, використовуючи одну з мов програмування.
IV етап. Складання алгоритму розв'язування задачі.
V етап. Отримання комп'ютерної моделі.
program f;
Uses CRT;
var i,n,s: integer;
begin
writeln ('Факторiал');
TextColor (06);
write( 'Введiть максимальне число, потiм натиснiть Enter - ');
readln(n);
S := 1;
FOR i := 1 TO n do
S := S * I;
TextColor (03);
writeln ('Факторiал числа - ', s);
readln;
end.
PRINT "” Єв®аi «"
'Факторіал
INPUT "—Ёб«® = ", n
'Число
S = 1
FOR I = 1 TO n
S = S * I
NEXT
PRINT "” Єв®аi « ="; S
'Факторіал
INPUT z
TextWindow.WriteLine("Факторiал")
TextWindow.Write( "Число = ")
n=TextWindow.ReadNumber()
S = 1
FOR I = 1 TO n
S = S * I
endfor
TextWindow.Write("Факторiал = ")
TextWindow.Write(S)
<title>Факторіал</title>
<body><div align="center">
<b>Факторіал</b>
<form name="faktorial" action="javascript:faktorial()" id="1419313176">
Число = <input name="faktorial_n" type="text" value=" " size="4">
<input type="submit" value="Порахувати">
<input type="reset" value="Reset">
</form>
Опрацювання: <span id="faktorial_sol">Введіть число і нажміть "Порахувати"</span>
</div>
<script language="javascript">
function faktorial() {
var n = document.faktorial.faktorial_n.value;
var S = 1;
var sol = document.getElementById("faktorial_sol");
for (i = 1; i <= n; i++) {
S = S * i;
}
string = S;
sol.innerHTML = string;
}
</script>
</body>
#include <stdio.h>
int main(void)
{
float S,n,i;
printf ("” Єв®аi «\n");
printf ( "—Ёб«® = ");
scanf("%f", &n);
S = 1;
for ( i = 1; i <= n; i++) {
S = S * i; }
printf ("\n” Єв®аi « = %f",S);
scanf("\n");
return 0;
}
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Факторiал");
Console.Write("Число = ");
double n = Convert.ToDouble(Console.ReadLine());
double S = 1;
for (int i = 1; i <= n; i++) {
S = S * i; }
Console.WriteLine(" ");
Console.WriteLine("Факторiал = "+S);
Console.ReadKey();
}
}
#include <conio.h>
#include <iostream>
int main(void)
{
double n,S;
int i;
setlocale(LC_ALL, "");
std::cout << "Факторiал\n \n";
std::cout << "Число = ";
std::cin >> n;
S = 1;
for (int i = 1; i <= n; i++) {
S = S * i; }
std::cout << "\nФакторiал = "<< S << std::endl;
getch();
return 0;
}
Class Program
Shared Sub Main()
Console.WriteLine("Факторiал")
Console.Write("Число = ")
Dim n As Double = Convert.ToDouble(Console.ReadLine())
Dim S As Double = 1
For i As Integer = 1 To n
S = S * i
Next
Console.WriteLine (" ")
Console.Write ("Факторiал = {0}",S)
Console.ReadKey()
End Sub
End Class
print('Факторiал')
n=int(input('Число = '))
print('')
fac = 1
for i in range(2, n+1):
fac *= i
print ('Факторiал = ',fac)
input()
Розв’язування задачі в VB-6
VERSION 5.00
Begin VB.Form Form1
BorderStyle = 1 'Fixed Single
Caption = "Факторіал"
ClientHeight = 3915
ClientLeft = 45
ClientTop = 390
ClientWidth = 3105
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 3915
ScaleWidth = 3105
StartUpPosition = 2 'CenterScreen
Begin VB.TextBox Text1
Height = 300
Index = 1
Left = 1320
TabIndex = 4
Top = 1440
Width = 1215
End
Begin VB.TextBox Text1
Height = 300
Index = 0
Left = 1320
TabIndex = 3
Top = 960
Width = 1215
End
Begin VB.CommandButton Command3
Caption = "ВИХІД"
Height = 375
Left = 240
TabIndex = 2
Top = 3240
Width = 2415
End
Begin VB.CommandButton Command2
Caption = "Очистка"
Height = 375
Left = 240
TabIndex = 1
Top = 2640
Width = 2415
End
Begin VB.CommandButton Command1
Caption = "СТАРТ"
Height = 375
Left = 240
TabIndex = 0
Top = 2040
Width = 2415
End
Begin VB.Label Label2
Caption = "Факторіал числа"
Height = 375
Left = 480
TabIndex = 7
Top = 240
Width = 1455
End
Begin VB.Label Label1
Caption = "Факторіал ="
Height = 255
Index = 1
Left = 120
TabIndex = 6
Top = 1440
Width = 1095
End
Begin VB.Label Label1
Caption = "Число ="
Height = 255
Index = 0
Left = 120
TabIndex = 5
Top = 960
Width = 735
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click()
n = Text1(0).Text
S = 1
For i = 1 To n
S = S * i
Next i
Text1(1).Text = S
End Sub
Private Sub Command2_Click()
Text1(0).Text = ""
Text1(1).Text = ""
End Sub
Private Sub Command3_Click()
End
End Sub
Розв’язування задачі в Pascal ABC.NET
procedure Form1.button3_Click(sender: Object; e: EventArgs);
begin
Close;
end;
procedure Form1.button2_Click(sender: Object; e: EventArgs);
begin
TextBox1.Text:='';
TextBox2.Text:='';
end;
procedure Form1.button1_Click(sender: Object; e: EventArgs);
var i,n,s: integer;
begin
n:=StrToInt(TextBox1.Text);
S := 1;
FOR i := 1 TO n do
S := S * I;
TextBox2.Text:=IntToStr(s);
end;
Розв’язування задачі в VB.NET
Public Class Form1
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
End
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim n As Double = Convert.ToDouble(TextBox1.Text)
Dim S As Double = 1
Dim i As Double
For i = 1 To n
S = S * i
Next i
TextBox2.Text = Convert.ToString(S)
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
TextBox1.Text = ""
TextBox2.Text = ""
End Sub
End Class
Розв’язування задачі в C#
private void button3_Click(object sender, EventArgs e)
{
System.Environment.Exit(0);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Text = "";
textBox2.Text = "";
}
private void button1_Click(object sender, EventArgs e)
{
double n = Convert.ToDouble(textBox1.Text);
double S = 0;
for (int i = 1; i <= n; i++)
{
S = S + i;
}
textBox2.Text = Convert.ToString(S);
Розв’язування задачі в Python
from tkinter import *
def click ():
n = int (entry1.get())
fac = 1
for i in range(2, n+1):
fac *= i
entry2.insert (0,fac)
def click1 ():
entry1.delete(0, END)
entry2.delete(0, END)
root=Tk()
root.title('Факторiал')
root.geometry('250x250')
label = Label (text = 'Факторiал')
label.pack(pady = 10)
labe2 = Label (text = 'Число')
labe2.pack(pady = 1)
entry1 = Entry ()
entry1.pack (pady = 1)
button = Button (text='Старт', command=click)
button.pack (pady = 10)
button = Button (text='Очистка', command=click1)
button.pack (pady = 10)
labe3 = Label (text = 'Факторіал')
labe3.pack(pady = 1)
entry2 = Entry ()
entry2.pack (pady = 1)
VI етап. Дослідження отриманих результатів на реальність і на відповідність умові
Після одержання підсумкової програми маємо проаналізувати її реальність.
Якщо таке дослідження виявляє помилки, потрібно шукати їхні причини, виправляти їх і знову проходити етапи, наступні за тим, на якому виявилися помилки.