Chapter 8

   [1]Page HistoryLast edited by PBworks 8 years, 7 months ago

                          DISPLAY OF CYCLES

    The success of a  decision depends on  the person's ability  to
    "visualize the  problem situation",  visualize it  and  operate
    visual images.

                                      Natalia Zavalova Boris Lomov,

    Vladimir Ponomarenko

                             NORMAL CYCLE

   In the language of DRAGON has the following range of cycles:

     * ordinary cycle;
     * switching cycle;
     * FOR loop;
     * twig cycle;
     * loop wait.

   The first four-cycle  considered in this  chapter, the cycle  of
   wait - in Ch. Eleven.

   The composite visual operator "normal cycle" (Fig. 2, makroikona
   4) contains icons  of "question"  and "loop the  loop" (Fig.  1,
   icons I4,  I24).  It covers  the  three types  of  cycles  (Fig.
   34-36):

     * cycle to (do-while),
     * WHILE loop (while-do),
     * Hybrid cycle (do-while-do).

   Examples cycles to repent  and are shown in  Fig. 37, 38.  Early
   exit from  the cycle  shown in  Fig. 39-42.  Construction  "loop
   cycle" shown in Fig. 43-45.

   Analyzing the figures, you will notice the following features.

     * Operator "normal cycle" has one input and one or more
       outlets.
     * Cycle single output represents skewer block (input and
       output are in the same vertical).
     * If the cycle has more than one exit, the main exit is
       located on the main vertical extra - the right of it.
     * Loop the loop is to the right of the main vertical and
       twisted counterclockwise.
     * Icon "issue" sets the loop condition, which is divided into
       two parts: the conditions of continuation and termination
       condition (Fig. 37).
     * Condition corresponds to the continuation of the right
       output icon "question", the termination condition - lower.
     * The condition can be marked as the end of the word "no" and
       the word "yes." The same applies to extension condition.

                       SWITCH and switch CYCLE

   Suppose the algorithm  need to organize  branching into  several
   directions. The problem  can be  solved in two  ways: using  the
   icons "issue" (Fig. 46a) and a switch (Fig. 46b).

   Switch - a visual component operator (Fig. 2, the macro icon  3)
   having one input and one output, having one icon of "choice" and
   a few (two  or more)  icons "option" (Fig.  1, icons  I5, u6)  .
   Inside  icon  "choice"  is  the  inscription,  usually  in   the
   affirmative, which  represents  an  issue  of  strictly  defined
   number of  responses (two  or more).  Answers written  in  icons
   "option." Thus, the  number of  options equal to  the number  of
   responses. Formally speaking, the  icon in the "choice"  written
   variable in the icons "option"  - its values. Fig. 46b  variable
   "Traffic Light" takes three values: green, yellow, red.

   The switch  allows you  to  create a  special  type of  cycle  -
   switching cycle (Fig.  2, makroikona  5). To do  this, pull  the
   right arm of the output switch, bend it up and connect the arrow
   to the right place (Fig. 47).

   Fig. 48 shows a cycle with a switch, but it is not the switching
   cycle, and the usual. How to tell them apart? In the first case,
   the switch has  two outputs,  the second  - only  one. There  is
   another difference. If output is  curled upward Icons "issue"  -
   it is  a regular  cycle (DO  WHILE, or  hybrid). If  the  output
   switch is up - we are switching cycle.

                              CYCLE FOR

   Fig. 49  and 50  show  two options  to  solve a  simple  problem
   matemati*cheskoy. In the first case, a cycle before, the  second
   - cycle for. Cycles for - visual component operator (Fig. 2, the
   macro icon 6) containing the icon "start cycle for" and "end  of
   cycle for" (Fig. 1, the icons and 12, and 13), between which one
   or more other icons. Inside icon "start cycle for" indicates the
   loop variable, its  initial and  final value and  the step.  The
   procedure  for  recording  these  values  ??determined  by   the
   selected text option syntax. Fig. 50 illustrates an  embodiment,
   the default is that the pitch is equal to 1.

                              Twig CYCLE

   Rings described  above can  be  used in  both primitive  and  in
   silhouette. In this section we  will focus on twig cycle,  which
   occurs only in silhouette.

   Twig cycle is  generated when the  label is in  the icon of  the
   "address" indicates either a  branch, or a  branch, which is  to
   the left. For example, the icon of the address "Buying buns"  in
   Fig. 51 points  to his branch.  Within the cycle  of browse  may
   appear cycles of other types. Fig. 52 shows the construction  of
   the "cycle in the loop", which is located inside of browse cycle
   to cycle.

   When replacing the primitive to the equivalent silhouette hybrid
   cycle often turns  into a  twig cycle.  This is  easily seen  by
   comparing the equivalent algorithms in Fig. 41 and 53.

                      The main route SILHOUETTE

   In this section we continue the study of cycles twig and try  to
   answer the question: how to find the main route of browse cycle?
   To do this, you need to  analyze the concept of "the main  route
   silhouette" (Fig. 54).

   Linear (straight) has a silhouette  of a single route, which  is
   the main thing. He passes on  a skewer all branches and all  the
   icons silhouette (Fig. 54a).

   The formula for the route silhouette has a singularity: the icon
   of the same name "address" and "branch name" refers to a  single
   letter, which is repeated twice  in the formula. For example,  a
   silhouette in Fig. 54a has the formula

                         ABEFGC - CHID - DJKM

   where the paired letters denote the transition from the first to
   the second branch (C - C) and the second to the third (D - D).

   The branch is called unicast, if  it has one icon "address".  If
   all branches unicast silhouette considered unicast.

   Line silhouette always unicast. However, unicast silhouette  can
   be branched.  In the  latter case,  its main  route follows  the
   skewer all the branches, but it does not go all the icons  (Fig.
   54b).

   If at least one branch  has more than one  address, it may be  a
   situation where some branches do not fall on the main route.Fig.
   54B icon address  D is for  side route. This  leads to the  fact
   that the branch D is also  provided on the secondary route.As  a
   result, the  main  route  passes  through  the  skewer  all  the
   branches, except branch D (Fig. 54B).

   Twig loops are formed only in multicast silhouettes, one-address
   them, in principle, can not be. They come in several types:

     * odnovetochnye (if the loop is placed in one branch);
     * dvuhvetochnye (if the cycle takes two branches);
     * trehvetochnye (cycle in three branches), and so on. d.

   How does odnovetochny cycle? Assume before the loop in Fig.  54g
   that the conditions

   Assume also that the twig cycle performed twice, after which the
   condition E is set  to "no." This means  that the third pass  of
   the branch in the loop  will exit the path "E  No C". In such  a
   situation, the formula of the  main route for the silhouette  in
   Fig. 54g takes the form:

   What is the main  route to the dragon  scheme? Response shows  a
   thick line  in  Fig. 54g.  We  see that  the  main route  as  it
   branches out  in the  icon  E and  passes  through both  of  its
   release.  Of   course,   this  convention,   which   means   the
   following.At first (when E = yes) the main route is on a skewer,
   and then (when the condition E =  end of the cycle is not)  main
   route passes through the right output icon E.

   To build odnovetochny  cycle, you need  the left icon  "address"
   record X, where X  - the name  of the branch.  To exit the  loop
   should add a  second icon of  the "address" and  write in it  Y,
   where Y - the  name of the following  (in order of  performance)
   branches.

   If the twig cycle too many icons, it may not fit in one  branch.
   Fortunately, it can be divided  into parts. For example, a  twig
   cycle in Fig. 54d has  five icons: E, F,  G, H, R (icon  "branch
   name" and "address" does not count). Put icons E and F in branch
   B, and the  icon G, H,  R - in  the branch C.  As a result,  the
   cycle  will  dvuhvetochnym.  The  main  route  silhouette   with
   dvuhvetochnym cycle has a  branch in the icon  condition R. R  =
   yes lets go back to the top of  the cycle. R = If not, the  main
   route leads us to the end of the algorithm (Fig. 54d).

   Thus dvuhvetochny cycle - a  cycle comprising two threads X  and
   Y, wherein X is  a branch icon  address Y, and  branch Y -  icon
   address X.

   Fig. 54e shows the situation "cycle in the loop": the cycle C is
   a twig of browse inside the loop B. It can be seen that in  this
   case the main route "branches" twice in the icons and R J.

   If the condition  R = yes,  there is a  repetition of the  inner
   loop C. When combined conditions

      R = No                                             J = Yes

   made out of the loop and repeat With the outer loop B.  Finally,
   a combination of conditions

      R = No                                             J = No

   It means that the loop B and the whole algorithm ends.

                             CONCLUSIONS

    1. In various text languages ??in the description of cycles
       used different sets of keywords relevant to the different
       semantics. Confusion exacerbate differences in logic end of
       the cycle. For example, in C language for while loops, and
       do-while loop termination condition corresponds to false or
       0, the continuation condition - true or 1. Pascal picture is
       different: in a loop while-do out of the cycle corresponds
       to the value false, and the cycle repeat-until, for some
       mysterious reasons applied diametrically opposite principle:
       a way out of the cycle is when the logical expression
       evaluates to true. All these confusing the programmer must
       know the rules and to abide scrupulously.
    2. The lack of unification of keywords and inconsistency in the
       definition of the conditions out of the loop is a serious
       drawback: the programmers have to cram keywords and value
       terms, and development of each of the following new language
       requires cramming.
    3. In terms of visual programming, these difficulties are
       far-fetched and easily eliminated. We only need to abandon
       existing habits and outmoded stereotypes of thinking
       associated with textual programming. Visualization of a
       qualitative change in the situation, since the text is no
       longer the only carrier of information.
    4. Visual images reduce the burden on the programmer's memory,
       eliminate errors caused by misunderstanding of the semantics
       of the keywords cancel unnecessary restrictions, provide the
       user with a rich palette of expressive means and ultimately
       provide greater comprehensibility of algorithms and
       programs.
    5. Visualization of the cycle - a very useful tool as
       complicated nested loops with many outlets are often the
       source of errors difficult. Many of them arise from the
       confusion associated with outdated habit to describe the
       cycles of the words. Today, no one is trying to replace the
       design and construction drawings, verbal descriptions.
       According to the author, the text form of the cycles in many
       cases is as anachronistic as a verbal description of a
       mechanical drawing, or circuitry.

References

   Visible links
   1. https://translate.googleusercontent.com/translate_c?depth=1&hl=en&rurl=translate.google.com&sl=ru&tl=en&u=http://drakon.pbworks.com/w/page-revisions/18205513/%25D0%2593%25D0%25BB%25D0%25B0%25D0%25B2%25D0%25B0%25208&usg=ALkJrhhrKN6mfL8W-FVtBKZ5GIeIS5DTLg