This repository has been archived by the owner on Sep 4, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathfactorial.qdoc
91 lines (70 loc) · 2.9 KB
/
factorial.qdoc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/****************************************************************************
**
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** GNU Free Documentation License
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file.
**
** Other Usage
** Alternatively, this file may be used in accordance with the terms
** and conditions contained in a signed written agreement between you
** and Nokia.
**
**
**
**
** $QT_END_LICENSE$
**
****************************************************************************/
/*!
\page factorial
\example factorial
\title Factorial States Example
\section1 Description
The Factorial States example shows how to use \l{The State Machine
Framework} to calculate the factorial of an integer.
\image factorial-example.png
The statechart for calculating the factorial looks as follows:
\image factorial-statechart-example.png
\omit
\caption This is a caption
\endomit
In other words, the state machine calculates the factorial of 6 and prints
the result.
\snippet factorial/src/factorial.hpp 0
The Factorial class is used to hold the data of the computation, \c x and
\c fac. It also provides a signal that's emitted whenever the value of \c
x changes.
\snippet factorial/src/transitions.hpp 1
The FactorialLoopTransition class implements the guard (\c x > 1) and
calculations (\c fac = \c x * \c fac; \c x = \c x - 1) of the factorial
loop.
\snippet factorial/src/transitions.hpp 2
The FactorialDoneTransition class implements the guard (\c x <= 1) that
terminates the factorial computation. It also prints the final result to
standard output.
\snippet factorial/src/main.cpp 3
The application's main() function first creates the application object, a
Factorial object and a state machine.
\snippet factorial/src/main.cpp 4
The \c compute state is created, and the initial values of \c x and \c fac
are defined. A FactorialLoopTransition object is created and added to the
state.
\snippet factorial/src/main.cpp 5
A final state, \c done, is created, and a FactorialDoneTransition object
is created with \c done as its target state. The transition is then added
to the \c compute state.
\snippet factorial/src/main.cpp 6
The machine's initial state is set to be the \c compute state. We export both
the factorial and the state machine objects to QML, so that we are able to start
the state machine from the UI and display the factorial values. Finally, the application's
event loop is entered.
*/