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