home *** CD-ROM | disk | FTP | other *** search
/ For Beginners & Professional Hackers / cd.iso / docum / k-r.doc / c_3.doc < prev    next >
Encoding:
Text File  |  1988-11-18  |  24.5 KB  |  708 lines

  1.  
  2.                            - 59 -
  3.      
  4.       3. Å«Γ«¬ π»αáó½Ñ¡¿∩
  5.           
  6.       ô»αáó½∩εΘ¿Ñ «»ÑαáΓ«αδ ∩ºδ¬á «»αÑñѽ∩εΓ »«α∩ñ«¬ óδτ¿ß½Ñ-
  7.  ¡¿⌐. é »α¿óÑñÑ¡¡δσ αá¡ÑÑ »α¿¼Ñαáσ ¼δ πªÑ óßΓαÑτ὿ß∞ ß ¡á¿-
  8.  í«½ÑÑ π»«ΓαÑí¿Γѽ∞¡δ¼¿ π»αáó½∩εΘ¿¼¿ ¬«¡ßΓαπ¬µ¿∩¼¿ ∩ºδ¬á "C";
  9.  ºñÑß∞ ¼δ «»¿ΦѼ «ßΓá½∞¡δÑ «»ÑαáΓ«αδ π»αáó½Ñ¡¿∩ ¿ πΓ«τ¡¿¼
  10.  ñÑ⌐ßΓó¿∩ «»ÑαáΓ«α«ó, «íßπªñáóΦ¿σß∩ αá¡ÑÑ.
  11.  
  12.       3.1. Ä»ÑαáΓ«αδ ¿ í½«¬¿
  13.       
  14.       Æá¬¿Ñ óδαáªÑ¡¿∩, ¬á¬ X=0, ¿½¿ I++, ¿½¿ PRINTF(...),
  15.  ßΓá¡«ó∩Γß∩ «»ÑαáΓ«αἿ, Ñß½¿ ºá ¡¿¼¿ ß½ÑñπÑΓ Γ«τ¬á ß ºá»∩-
  16.  Γ«⌐, ¬á¬, ¡á»α¿¼Ñα,
  17.  
  18.      X = 0;
  19.      I++;
  20.      PRINTF(...);
  21.  
  22.  é ∩ºδ¬Ñ "C" Γ«τ¬á ß ºá»∩Γ«⌐ ∩ó½∩ÑΓß∩ »α¿º¡á¬«¼ ¬«¡µá «»Ñαá-
  23.  Γ«αá, á ¡Ñ αáºñѽ¿ΓѽѼ «»ÑαáΓ«α«ó, ¬á¬ ó ∩ºδ¬áσ Γ¿»á á½ú«-
  24.  ½á.
  25.      ö¿úπα¡δѠ߬«í¬¿ /( ¿ /) ¿ß»«½∞ºπεΓß∩ ñ½∩ «íΩÑñ¿¡Ñ¡¿∩
  26.  «»¿ßá¡¿⌐ ¿ «»ÑαáΓ«α«ó ó ß«ßΓáó¡«⌐ «»ÑαáΓ«α ¿½¿ í½«¬, ΓᬠτΓ«
  27.  «¡¿ «¬áºδóáεΓß∩ ß¿¡Γá¬ß¿τÑ߬¿ φ¬ó¿óá½Ñ¡Γ¡δ «ñ¡«¼π «»ÑαáΓ«απ.
  28.  Äñ¿¡ ∩ó¡δ⌐ »α¿¼Ñα Γᬫú« Γ¿»á ñáεΓ Σ¿úπα¡δѠ߬«í¬¿, ó ¬«Γ«-
  29.  αδÑ ºá¬½ετáεΓß∩ «»ÑαáΓ«αδ, ß«ßΓáó½∩εΘ¿Ñ Σπ¡¬µ¿ε, ñαπú«⌐ -
  30.  Σ¿úπα¡δѠ߬«í¬¿ ó«¬απú úαπ»»δ «»ÑαáΓ«α«ó ó ¬«¡ßΓαπ¬µ¿∩σ IF,
  31.  ELSE, WHILE ¿ FOR.(¡á ßἫ¼ ñѽѠ»ÑαѼѡ¡δÑ ¼«úπΓ íδΓ∞ «»¿-
  32.  ßá¡δ ó¡πΓα¿ ½εí«ú« í½«¬á; ¼δ »«ú«ó«α¿¼ «í φΓ«¼ ó ú½áóÑ 4).
  33.  Æ«τ¬á ß ºá»∩Γ«⌐ ¡¿¬«úñá ¡Ñ ßΓáó¿Γß∩ »«ß½Ñ »Ñαó«⌐ Σ¿úπα¡«⌐
  34.  ß¬«í¬¿, ¬«Γ«αá∩ ºáóÑαΦáÑΓ í½«¬.
  35.  
  36.       3.2. IF - ELSE
  37.  
  38.      Ä»ÑαáΓ«α IF - ELSE ¿ß»«½∞ºπÑΓß∩ »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ßñÑ-
  39.  ½áΓ∞ óδí«α. ö«α¼á½∞¡« ß¿¡Γá¬ß¿ß ¿¼ÑÑΓ ó¿ñ
  40.  
  41.      IF  (óδαáªÑ¡¿Ñ)
  42.              «»ÑαáΓ«α-1
  43.      ELSE
  44.              «»ÑαáΓ«α-2,
  45.  
  46.      âñÑ τáßΓ∞ ELSE ∩ó½∩ÑΓß∩ ¡Ñ«í∩ºáΓѽ∞¡«⌐. æ¡áτá½á óδτ¿ß½∩-
  47.  ÑΓß∩ óδαáªÑ¡¿Ñ; Ñß½¿ «¡« "¿ßΓ¿¡¡«" /Γ.Ñ. º¡áτÑ¡¿Ñ óδαáªÑ¡¿∩
  48.  «Γ½¿τ¡« «Γ ¡π½∩/, Γ« óδ»«½¡∩ÑΓß∩ «»ÑαáΓ«α-1. àß½¿ «¡« ½«ª¡«
  49.  /º¡áτÑ¡¿Ñ óδαáªÑ¡¿∩ αáó¡« ¡π½ε/, ¿ Ñß½¿ ÑßΓ∞ τáßΓ∞ ß ELSE,
  50.  Γ« ó¼ÑßΓ« «»ÑαáΓ«αá-1 óδ»«½¡∩ÑΓß∩ «»ÑαáΓ«α-2.
  51.      
  52.                            - 60 -
  53.      
  54.      Æá¬ ¬á¬ IF »α«ßΓ« »α«óÑα∩ÑΓ τ¿ß½Ñ¡¡«Ñ º¡áτÑ¡¿Ñ óδαáªÑ-
  55.  ¡¿∩, Γ« ó«º¼«ª¡« ¡Ñ¬«Γ«α«Ñ ß«¬αáΘÑ¡¿Ñ ºá»¿ß¿. æá¼«⌐ «τÑó¿ñ-
  56.  ¡«⌐ ó«º¼«ª¡«ßΓ∞ε ∩ó½∩ÑΓß∩ ºá»¿ß∞
  57.  
  58.     IF  (óδαáªÑ¡¿Ñ)
  59.  ó¼ÑßΓ«
  60.     IF  (óδαáªÑ¡¿Ñ !=0)
  61.  
  62.  ¿¡«úñá Γá¬á∩ ºá»¿ß∞ ∩ó½∩ÑΓß∩ ∩ß¡«⌐ ¿ ÑßΓÑßΓóÑ¡¡«⌐, ¡« óαѼÑ-
  63.  ¡á¼¿ «¡á ßΓá¡«ó¿Γß∩ ºáúáñ«τ¡«⌐.
  64.      Æ«, τΓ« τáßΓ∞ ELSE ó ¬«¡ßΓαπ¬µ¿¿ IF - ELSE ∩ó½∩ÑΓß∩ ¡Ñ«-
  65.  í∩ºáΓѽ∞¡«⌐, »α¿ó«ñ¿Γ ¬ ñóπß¼δ߽ѡ¡«ßΓ¿ ó ß½πτáÑ, ¬«úñá ELSE
  66.  «»π߬áÑΓß∩ ó« ó½«ªÑ¡¡«⌐ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ «»ÑαáΓ«α«ó IF.
  67.  ¥Γá ¡Ñ«ñ¡«º¡áτ¡«ßΓ∞ αáºαÑΦáÑΓß∩ «íδτ¡δ¼ «íαẫ¼ - ELSE ßó∩-
  68.  ºδóáÑΓß∩ ß í½¿ªá⌐Φ¿¼ »αÑñδñπΘ¿¼ IF, ¡Ñ ß«ñÑαªáΘ¿¼ ELSE.
  69.  ìá»α¿¼Ñα, ó
  70.  
  71.  IF ( N > 0 )
  72.     IF( A > B )
  73.             Z = A;
  74.     ELSE
  75.             Z = B;
  76.  
  77.  ¬«¡ßΓαπ¬µ¿∩ ELSE «Γ¡«ß¿Γß∩ ¬ ó¡πΓαÑ¡¡Ñ¼π IF, ¬á¬ ¼δ ¿ »«¬á-
  78.  ºá½¿, ßñó¿¡πó ELSE »«ñ ß««ΓóÑΓßΓóπεΘ¿⌐ IF. àß½¿ φΓ« ¡Ñ Γ«,
  79.  τΓ« óδ σ«Γ¿ΓÑ, Γ« ñ½∩ »«½πτÑ¡¿∩ ¡πª¡«ú« ß««ΓóÑΓßΓó¿∩ ¡Ñ«íσ«-
  80.  ñ¿¼« ¿ß»«½∞º«óáΓ∞ Σ¿úπα¡δѠ߬«í¬¿:
  81.  
  82.  IF (N > 0)      {
  83.     IF (A > B)
  84.             Z = A;
  85.  }
  86.  ELSE
  87.     Z = B;
  88.  
  89.  
  90.      Tá¬á∩ ñóπß¼δ߽ѡ¡«ßΓ∞ «ß«íÑ¡¡« »áúπí¡á ó ß¿Γπᵿ∩σ Γ¿»á
  91.  
  92.  IF (N > 0)
  93.     FOR (I = 0; I < N; I++)
  94.             IF (S[I] > 0) {
  95.      PRINTF("...");
  96.      RETURN(I);
  97.             }
  98.  ELSE   /* WRONG */
  99.     PRINTF("ERROR - N IS ZERO\N");
  100.            
  101.                            - 61 -
  102.      
  103.  çỿß∞ ELSE »«ñ IF ∩ß¡« »«¬áºδóáÑΓ, τÑú« óδ σ«Γ¿ΓÑ, ¡« ¬«¼-
  104.  »¿½∩Γ«α ¡Ñ »«½πτ¿Γ ß««ΓóÑΓßΓóπεΘÑú« π¬áºá¡¿∩ ¿ ßó∩ªÑΓ ELSE ß
  105.  ó¡πΓαÑ¡¡¿¼ IF. ÄΦ¿í¬¿ Γᬫú« α«ñá «τÑ¡∞ Γαπñ¡« «í¡áαπª¿óáεΓ-
  106.  ß∩.
  107.       îѪñπ »α«τ¿¼, «íαáΓ¿ΓѠ󡿼᡿Ñ, τΓ« ó
  108.  
  109.   IF (A > B)
  110.      Z = A;
  111.   ELSE
  112.      Z = B;
  113.  
  114.  »«ß½Ñ Z=A ßΓ«¿Γ Γ«τ¬á ß ºá»∩Γ«⌐. äѽ« ó Γ«¼, τΓ« ß«ú½áß¡«
  115.  úαá¼¼áΓ¿τÑ߬¿¼ »αáó¿½á¼ ºá IF ñ«½ªÑ¡ ß½Ññ«óáΓ∞ «»ÑαáΓ«α, á
  116.  óδαáªÑ¡¿Ñ Γ¿»á Z=A, ∩ó½∩εΘÑÑß∩ «»ÑαáΓ«α«¼, óßÑúñá ºá¬á¡τ¿óá-
  117.  ÑΓß∩ Γ«τ¬«⌐ ß ºá»∩Γ«⌐.
  118.  
  119.       3.3. ELSE - IF
  120.       
  121.       è«¡ßΓαπ¬µ¿∩
  122.  
  123.   IF (óδαáªÑ¡¿Ñ)
  124.      «»ÑαáΓ«α
  125.   ELSE    IF (óδαáªÑ¡¿Ñ)
  126.              «»ÑαáΓ«α
  127.   ELSE    IF (óδαáªÑ¡¿Ñ)
  128.              «»ÑαáΓ«α
  129.   ELSE
  130.      «»ÑαáΓ«α
  131.  
  132.  óßΓαÑτáÑΓß∩ ¡áßΓ«½∞¬« τáßΓ«, τΓ« ºáß½πª¿óáÑΓ «Γñѽ∞¡«ú«
  133.  ¬αáΓ¬«ú« αáßß¼«ΓαÑ¡¿∩. Æá¬á∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ «»ÑαáΓ«α«ó
  134.  IF ∩ó½∩ÑΓß∩ ¡á¿í«½ÑÑ αáß»α«ßΓαá¡Ñ¡¡δ¼ ß»«ß«í«¼ »α«úαá¼¼¿α«-
  135.  óá¡¿∩ óδí«αá ¿º ¡Ñ߬«½∞¬¿σ ó«º¼«ª¡δσ óáα¿á¡Γ«ó. óδαáªÑ¡¿∩
  136.  »α«ß¼áΓα¿óáεΓß∩ »«ß½Ññ«óáΓѽ∞¡«; Ñß½¿ ¬á¬«Ñ-Γ« óδαáªÑ¡¿Ñ
  137.  «¬áºδóáÑΓß∩ ¿ßΓ¿¡¡δ¼,Γ« óδ»«½¡∩ÑΓß∩ «Γ¡«ß∩Θ¿⌐ß∩ ¬ ¡Ñ¼π «»Ñ-
  138.  αáΓ«α, ¿ φΓ¿¼ óß∩ µÑ»«τ¬á ºá¬á¡τ¿óáÑΓß∩. èáªñδ⌐ «»ÑαáΓ«α ¼«-
  139.  ªÑΓ íδΓ∞ ½¿í« «Γñѽ∞¡δ¼ «»ÑαáΓ«α«¼, ½¿í« úαπ»»«⌐ «»ÑαáΓ«α«ó
  140.  ó Σ¿úπα¡δσ ß¬«í¬áσ.
  141.      Å«ß½Ññ¡∩∩ τáßΓ∞ ß ELSE ¿¼ÑÑΓ ñѽ« ß« ß½πτáѼ, ¬«úñá ¡¿
  142.  «ñ¡« ¿º »α«óÑα∩Ѽδσ πß½«ó¿⌐ ¡Ñ óδ»«½¡∩ÑΓß∩. ê¡«úñá »α¿ φΓ«¼
  143.  ¡Ñ ¡áñ« »αÑñ»α¿¡¿¼áΓ∞ ¡¿¬á¬¿σ ∩ó¡δσ ñÑ⌐ßΓó¿⌐; ó φΓ«¼ ß½πτáÑ
  144.  σó«ßΓ
  145.  
  146.   ELSE
  147.      «»ÑαáΓ«α
  148.  
  149.  ¼«ªÑΓ íδΓ∞ «»πΘÑ¡, ¿½¿ Ñú« ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ ¬«¡Γα«½∩,
  150.  τΓ«íδ ºáßÑτ∞ "¡Ñ󫺼«ª¡«Ñ" πß½«ó¿Ñ.
  151.      
  152.                            - 62 -
  153.      
  154.      ä½∩ ¿½½εßΓαᵿ¿ óδí«αá ¿º ΓαÑσ ó«º¼«ª¡δσ óáα¿á¡Γ«ó »α¿-
  155.  óÑñѼ »α«úαá¼¼π Σπ¡¬µ¿¿, ¬«Γ«αá∩ ¼ÑΓ«ñ«¼ »«½«ó¿¡¡«ú« ñѽѡ¿∩
  156.  «»αÑñѽ∩ÑΓ, ¡áσ«ñ¿Γß∩ ½¿ ñá¡¡«Ñ º¡áτÑ¡¿Ñ σ ó «Γß«αΓ¿α«óá¡¡«¼
  157.  ¼áßß¿óÑ V. ¥½Ñ¼Ñ¡Γδ ¼áßß¿óá V ñ«½ª¡δ íδΓ∞ αáß»«½«ªÑ¡δ ó »«-
  158.  α∩ñ¬Ñ ó«ºαáßΓá¡¿∩. öπ¡¬µ¿∩ ó«ºóαáΘáÑΓ ¡«¼Ñα »«º¿µ¿¿ (τ¿ß½«
  159.  ¼Ñªñπ 0 ¿ N-1), ó ¬«Γ«α«⌐ º¡áτÑ¡¿Ñ σ ¡áσ«ñ¿Γß∩ ó V, ¿ -1,
  160.  Ñß½¿ σ ¡Ñ ß«ñÑনΓß∩ ó V.
  161.  
  162.  BINARY(X, V, N) /* FIND X IN V[0]...V[N-1] */
  163.  INT X, V[], N;
  164.  {
  165.     INT LOW, HIGH, MID;
  166.  
  167.     LOW = 0;
  168.     HIGH = N - 1;
  169.     WHILE (LOW <= HIGH) {
  170.             MID = (LOW + HIGH) / 2;
  171.             IF (X < V[MID])
  172.      HIGH = MID - 1;
  173.             ELSE IF (X > V[MID])
  174.      LOW = MID + 1;
  175.             ELSE   /* FOUND MATCH */
  176.      RETURN(MID);
  177.     }
  178.     RETURN(-1);
  179.  }
  180.  
  181.      Äß¡«ó¡«⌐ τáßΓ∞ε ¬áªñ«ú« Φáúá á½ú«α¿Γ¼á ∩ó½∩ÑΓß∩ »α«óÑα-
  182.  ¬á, íπñÑΓ ½¿ σ ¼Ñ¡∞ΦÑ, í«½∞ΦÑ ¿½¿ αáóÑ¡ ßαÑñ¡Ñ¼π φ½Ñ¼Ñ¡Γπ
  183.  V[MID]; ¿ß»«½∞º«óá¡¿Ñ ¬«¡ßΓαπ¬µ¿¿ ELSE - IF ºñÑß∞ ó»«½¡Ñ Ñß-
  184.  ΓÑßΓóÑ¡¡«.
  185.      
  186.       3.4. ÅÑαѬ½ετáΓѽ∞
  187.  
  188.      Ä»ÑαáΓ«α SWITCH ñáÑΓ ß»Ñµ¿á½∞¡δ⌐ ß»«ß«í óδí«αá «ñ¡«ú« ¿º
  189.  ¼¡«ú¿σ óáα¿á¡Γ«ó, ¬«Γ«αδ⌐ ºá¬½ετáÑΓß∩ ó »α«óÑα¬Ñ ß«ó»áñÑ¡¿∩
  190.  º¡áτÑ¡¿∩ ñá¡¡«ú« óδαáªÑ¡¿∩ ß «ñ¡«⌐ ¿º ºáñá¡¡δ󠬫¡ßΓá¡Γ ¿
  191.  ß««ΓóÑΓßΓóπεΘѼ óÑΓó½Ñ¡¿¿. é ú½áóÑ 1 ¼δ »α¿óѽ¿ »α«úαá¼¼π
  192.  »«ñßτÑΓá τ¿ß½á óσ«ªñÑ¡¿⌐ ¬áªñ«⌐ µ¿Σαδ, ß¿¼ó«½«ó »πßΓδσ »α«-
  193.  ¼ÑªπΓ¬«ó ¿ óßÑσ «ßΓá½∞¡δσ ß¿¼ó«½«ó, ¿ß»«½∞ºπεΘπε »«ß½Ññ«óá-
  194.  Γѽ∞¡«ßΓ∞ IF...ELSE IF...ELSE. é«Γ ΓᠪѠßá¼á∩ »α«úαá¼¼á ß
  195.  »ÑαѬ½ετáΓѽѼ.
  196.            
  197.                            - 63 -
  198.      
  199.  MAIN() /* COUNT DIGITS,WHITE SPACE, OTHERS */
  200.  {
  201.     INT C, I, NWHITE, NOTHER, NDIGIT[10];
  202.  
  203.     NWHITE = NOTHER = 0;
  204.     FOR (I = 0; I < 10; I++)
  205.             NDIGIT[I] = 0;
  206.  
  207.     WHILE ((C = GETCHAR()) != EOF)
  208.              SWITCH (C) {
  209.              CASE '0':
  210.              CASE '1':
  211.              CASE '2':
  212.              CASE '3':
  213.              CASE '4':
  214.              CASE '5':
  215.              CASE '6':
  216.              CASE '7':
  217.              CASE '8':
  218.              CASE '9':
  219.       NDIGIT[C-'0']++;
  220.       BREAK;
  221.              CASE ' ':
  222.              CASE '\N':
  223.              CASE '\T':
  224.       NWHITE++;
  225.       BREAK;
  226.              DEFAULT :
  227.       NOTHER++;
  228.       BREAK;
  229.              }
  230.      PRINTF("DIGITS =");
  231.      FOR (I = 0; I < 10; I++)
  232.              PRINTF(" %D", NDIGIT[I]);
  233.      PRINTF("\NWHITE SPACE = %D, OTHER = %D\N",
  234.              NWHITE, NOTHER);
  235.  
  236.  
  237.      ÅÑαѬ½ετáΓѽ∞ óδτ¿ß½∩ÑΓ µÑ½«Ñ óδαáªÑ¡¿Ñ ó ¬απú½δσ ß¬«í-
  238.  ¬áσ (ó ñá¡¡«⌐ »α«úαἼѠ- º¡áτÑ¡¿Ñ ß¿¼ó«½á ß) ¿ ßαáó¡¿óáÑΓ
  239.  Ñú« º¡áτÑ¡¿Ñ ß« óßѼ¿ ß½πτá∩¼¿ (CASE). èáªñδ⌐ ß½πτá⌐ ñ«½ªÑ¡
  240.  íδΓ∞ »«¼ÑτÑ¡ ½¿í« µÑ½δ¼, ½¿í« ß¿¼ó«½∞¡«⌐ ¬«¡ßΓá¡Γ«⌐, ½¿í«
  241.  ¬«¡ßΓá¡Γ¡δ¼ óδαáªÑ¡¿Ñ¼. àß½¿ º¡áτÑ¡¿Ñ ¬«¡ßΓá¡Γ¡«ú« óδαáªÑ-
  242.  ¡¿∩, ßΓ«∩ΘÑú« »«ß½Ñ óáα¿á¡Γ¡«ú« »αÑΣ¿¬ßá CASE, ß«ó»áñáÑΓ ß«
  243.  º¡áτÑ¡¿Ñ¼ µÑ½«ú« óδαáªÑ¡¿∩, Γ« óδ»«½¡Ñ¡¿Ñ ¡áτ¿¡áÑΓß∩ ß φΓ«ú«
  244.  ß½πτá∩. àß½¿ ¡¿ «ñ¿¡ ¿º ß½πτáÑó ¡Ñ »«ñσ«ñ¿Γ, Γ« óδ»«½¡∩ÑΓß∩
  245.  «»ÑαáΓ«α »«ß½Ñ »αÑΣ¿¬ßá DEFAULT. ÅαÑΣ¿¬ß DEFAULT ∩ó½∩ÑΓß∩
  246.  ¡Ñ«í∩ºáΓѽ∞¡δ¼ ,Ñß½¿ Ñú« ¡ÑΓ, ¿ ¡¿ «ñ¿¡ ¿º ß½πτáÑó ¡Ñ »«ñσ«-
  247.  ñ¿Γ, Γ« ó««íΘÑ ¡¿¬á¬¿Ñ ñÑ⌐ßΓó¿∩ ¡Ñ óδ»«½¡∩εΓß∩. æ½πτá¿ ¿ óδ-
  248.  í«α »« π¼«½τá¡¿ε ¼«úπΓ αáß»«½áúáΓ∞ß∩ ó ½εí«¼ »«α∩ñ¬Ñ. éßÑ
  249.  ß½πτá¿ ñ«½ª¡δ íδΓ∞ αẽ¿τ¡δ¼¿.
  250.      
  251.                            - 64 -
  252.      
  253.      Ä»ÑαáΓ«α BREAK »α¿ó«ñ¿Γ ¬ ¡Ñ¼Ññ½Ñ¡¡«¼π óδσ«ñπ ¿º »ÑαѬ-
  254.  ½ετáΓѽ∩. Å«ß¬«½∞¬π ß½πτá¿ ß½πªáΓ Γ«½∞¬« ó ¬áτÑßΓóÑ ¼ÑΓ«¬,
  255.  Γ« Ñß½¿ óδ ¡Ñ »αÑñ»α¿¼¿ΓÑ ∩ó¡δσ ñÑ⌐ßΓó¿⌐ »«ß½Ñ óδ»«½¡Ñ¡¿∩
  256.  «»ÑαáΓ«α«ó, ß««ΓóÑΓßΓóπεΘ¿σ «ñ¡«¼π ß½πτáε, óδ »α«ó὿ΓÑß∞ ¡á
  257.  ß½ÑñπεΘ¿⌐ ß½πτá⌐. Ä»ÑαáΓ«αδ BREAK ¿ RETURN ∩ó½∩εΓß∩ ßá¼δ¼
  258.  «íδτ¡δ¼ ß»«ß«í«¼ óδσ«ñá ¿º »ÑαѬ½ετáΓѽ∩. èᬠ¼δ «íßπñ¿¼
  259.  »«ºªÑ ó φΓ«⌐ ú½áóÑ, «»ÑαáΓ«α BREA¬ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ¿ ñ½∩
  260.  ¡Ñ¼Ññ½Ñ¡¡«ú« óδσ«ñá ¿º «»ÑαáΓ«α«ó µ¿¬½á WHILE, FOR ¿ DO.
  261.      Åα«ó὿ó᡿Ѡ߬ó«º∞ ß½πτá¿ ¿¼ÑÑΓ ¬á¬ ßó«¿ ñ«ßΓ«¿¡ßΓóá,
  262.  Γᬠ¿ ¡Ññ«ßΓáΓ¬¿. è »«½«ª¿Γѽ∞¡δ¼ ¬áτÑßΓóá¼ ¼«ª¡« «Γ¡ÑßΓ¿
  263.  Γ«, τΓ« «¡« »«ºó«½∩ÑΓ ßó∩ºáΓ∞ ¡Ñ߬«½∞¬« ß½πτáÑó ß «ñ¡¿¼ ñÑ⌐-
  264.  ßΓó¿Ñ¼, ¬á¬ í佫 ß »α«íѽ«¼, Γáíπ½∩µ¿Ñ⌐ ¿ ¡«ó«⌐ ßΓ᫬«⌐ ó
  265.  ¡áΦѼ »α¿¼ÑαÑ. ì« ó Γ« ªÑ óαѼ∩ «¡« «íδτ¡« »α¿ó«ñ¿Γ ¬ ¡Ñ«í-
  266.  σ«ñ¿¼«ßΓ¿ ºá¬á¡τ¿óáΓ∞ ¬áªñδ⌐ ß½πτá⌐ «»ÑαáΓ«α«¼ BREAK, τΓ«íδ
  267.  ¿ºíѪáΓ∞ »ÑαÑσ«ñá ¬ ß½ÑñπεΘѼπ ß½πτáε. Åα«ó὿óá¡¿Ñ ß «ñ¡«ú«
  268.  ß½πτá∩ ¡á ñαπú«⌐ «íδτ¡« íδóáÑΓ ¡ÑπßΓ«⌐τ¿óδ¼, Γᬠ¬á¬ «¡«
  269.  ß¬½«¡¡« ¬ αáßΘÑ»½Ñ¡¿ε »α¿ ¼«ñ¿Σ¿¬áµ¿¿ »α«úαá¼¼δ. çᠿ߬½ετÑ-
  270.  ¡¿Ñ¼, ¬«úñá «ñ¡«¼π óδτ¿ß½Ñ¡¿ε ß««ΓóÑΓßΓóπεΓ ¡Ñ߬«½∞¬« ¼ÑΓ«¬,
  271.  »α«ó὿óá¡¿Ñ ß½ÑñπÑΓ ¿ß»«½∞º«óáΓ∞ π¼ÑαÑ¡¡«.
  272.      çáóÑñ¿ΓÑ »α¿óδτ¬π ßΓáó¿Γ∞ «»ÑαáΓ«α BREAK »«ß½Ñ »«ß½Ññ¡Ñ-
  273.  ú« ß½πτá∩ (ó ñá¡¡«¼ »α¿¼ÑαÑ »«ß½Ñ DEFAULT), ñáªÑ Ñß½¿ φΓ« ¡Ñ
  274.  ∩ó½∩ÑΓß∩ ½«ú¿τÑ߬¿ ¡Ñ«íσ«ñ¿¼δ¼. é «ñ¿¡ »αѬαáß¡δ⌐ ñÑ¡∞, ¬«ú-
  275.  ñá óδ ñ«íáó¿ΓѠ󠬫¡Ñµ ÑΘÑ «ñ¿¡ ß½πτá⌐, φΓá ¼á½Ñ¡∞¬á∩ ¼Ñαá
  276.  »αÑñ«ßë᫪¡«ßΓ¿ ¿ºíáó¿Γ óáß «Γ ¡Ñ»α¿∩Γ¡«ßΓÑ⌐.
  277.      ô»α᪡ѡ¿Ñ 3-1.
  278.      --------------
  279.      ìá»¿Φ¿ΓÑ »α«úαá¼¼π ñ½∩ Σπ¡¬µ¿¿ EXPAND(S, T), ¬«Γ«αá∩ ¬«-
  280.  »¿απÑΓ ßΓ᫬π S ó Γ, ºá¼Ñ¡∩∩ »α¿ φΓ«¼ ß¿¼ó«½δ Γáíπ½∩µ¿¿ ¿
  281.  ¡«ó«⌐ ßΓ᫬¿ ¡á ó¿ñ¿¼δÑ πß½«ó¡δÑ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿, ¬á¬ \N
  282.  ¿ \Γ. ¿ß»«½∞ºπ⌐ΓÑ »ÑαѬ½ετáΓѽ∞.
  283.  
  284.       3.5. û¿¬½δ - WHILE ¿ FOR
  285.  
  286.      îδ πªÑ ßΓὬ¿ó὿ß∞ ß «»ÑαáΓ«αἿ µ¿¬½á WHILE ¿ FOR. é
  287.  ¬«¡ßΓαπ¬µ¿¿
  288.  
  289.  WHILE (óδαáªÑ¡¿Ñ)
  290.     «»ÑαáΓ«α
  291.  
  292.  óδτ¿ß½∩ÑΓß∩ óδαáªÑ¡¿Ñ. àß½¿ Ñú« º¡áτÑ¡¿Ñ «Γ½¿τ¡« «Γ ¡π½∩, Γ«
  293.  óδ»«½¡∩ÑΓß∩ «»ÑαáΓ«α ¿ óδαáªÑ¡¿Ñ óδτ¿ß½∩ÑΓß∩ ß¡«óá. ¥Γ«Γ
  294.  µ¿¬½ »α«ñ«½ªáÑΓß∩ ñ« ΓÑσ »«α, »«¬á º¡áτÑ¡¿Ñ óδαáªÑ¡¿∩ ¡Ñ
  295.  ßΓá¡ÑΓ ¡π½Ñ¼, »«ß½Ñ τÑú« óδ»«½¡Ñ¡¿Ñ »α«úαá¼¼δ »α«ñ«½ªáÑΓß∩ ß
  296.  ¼ÑßΓá »«ß½Ñ «»ÑαáΓ«αá.
  297.  
  298.     Ä»ÑαáΓ«α
  299.  
  300.  FOR (óδαáªÑ¡¿Ñ 1; óδαáªÑ¡¿Ñ 2; óδαáªÑ¡¿Ñ 3)
  301.     «»ÑαáΓ«α
  302.            
  303.                            - 65 -
  304.      
  305.  φ¬ó¿óá½Ñ¡ΓÑ¡ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿
  306.  
  307.  óδαáªÑ¡¿Ñ 1;
  308.  WHILE (óδαáªÑ¡¿Ñ 2) {
  309.     «»ÑαáΓ«α
  310.     óδαáªÑ¡¿Ñ 3;
  311.  }
  312.  
  313.  âαá¼¼áΓ¿τÑ߬¿ óßÑ Γα¿ ¬«¼»«¡Ñ¡Γá ó FOR ∩ó½∩εΓß∩ óδαáªÑ¡¿∩¼¿.
  314.  ¡á¿í«½ÑÑ αáß»α«ßΓαá¡Ñ¡¡δ¼ ∩ó½∩ÑΓß∩ ß½πτá⌐, ¬«úñá óδαáªÑ¡¿Ñ 1
  315.  ¿ óδαáªÑ¡¿Ñ 3 ∩ó½∩εΓß∩ »α¿ßóá¿óá¡¿∩¼¿ ¿½¿ «íαáΘÑ¡¿∩¼¿ ¬ Σπ¡-
  316.  ¬µ¿∩¼, á óδαáªÑ¡¿Ñ 2 - πß½«ó¡δ¼ óδαáªÑ¡¿Ñ¼. ½εíá∩ ¿º ΓαÑσ
  317.  τáßΓÑ⌐ ¼«ªÑΓ íδΓ∞ «»πΘÑ¡á, σ«Γ∩ Γ«τ¬¿ ß ºá»∩Γ«⌐ »α¿ φΓ«¼
  318.  ñ«½ª¡δ «ßΓáóáΓ∞ß∩. àß½¿ «ΓßπΓßΓóπÑΓ óδαáªÑ¡¿Ñ 1 ¿½¿ óδαáªÑ-
  319.  ¡¿Ñ 3, Γ« «¡« »α«ßΓ« óδ»áñáÑΓ ¿º αáßΦ¿αÑ¡¿∩. àß½¿ ªÑ «ΓßπΓß-
  320.  ΓóπÑΓ »α«óÑα¬á, óδαáªÑ¡¿Ñ 2, Γ« ßτ¿ΓáÑΓß∩, ¬á¬ íπñΓ« «¡«
  321.  óßÑúñá ¿ßΓ¿¡¡«, ΓᬠτΓ«
  322.  
  323.   FOR (;;)        {
  324.      ...
  325.   }
  326.  
  327.  ∩ó½∩ÑΓß∩ íÑ߬«¡Ñτ¡δ¼ µ¿¬½«¼, « ¬«Γ«α«¼ »αÑñ»«½áúáÑΓß∩, τΓ«
  328.  «¡ íπñÑΓ »αÑαóá¡ ñαπú¿¼¿ ßαÑñßΓóἿ (Γᬿ¼¿ ¬á¬ BREAK ¿½¿
  329.  RETURN).
  330.       êß»«½∞º«óáΓ∞ ½¿ WHILE ¿½¿ FOR - φΓ«, ó «ß¡«ó¡«¼ ñѽ«
  331.  ó¬πßá. ìá»α¿¼Ñα ó
  332.  
  333.  WHILE ((C = GETCHAR())
  334.     == ' ' \!\! C == '\N' \!\! C == '\T')
  335.   ;    /* SKIP WHITE SPACE CHARACTERS */
  336.  
  337.  ¡ÑΓ ¡¿ ¿¡¿µ¿á½¿ºáµ¿¿, ¡¿ αÑ¿¡¿µ¿á½¿ºáµ¿¿, ΓᬠτΓ« µ¿¬½ WHILÑ
  338.  óδú½∩ñ¿Γ ßá¼δ¼ ÑßΓÑßΓóÑ¡¡δ¼.
  339.      û¿¬½ FOR, «τÑó¿ñ¡«, »αÑñ»«τΓ¿Γѽ∞¡ÑÑ Γá¼, úñÑ ¿¼ÑÑΓß∩
  340.  »α«ßΓá∩ ¿¡¿µ¿á½¿ºáµ¿∩ ¿ αÑ¿¡¿µ¿á½¿ºáµ¿∩, »«ß¬«½∞¬π »α¿ φΓ«¼
  341.  π»αáó½∩εΘ¿Ñ µ¿¬½«¼ «»ÑαáΓ«αδ ¡áú½∩ñ¡δ¼ «íαẫ¼ «¬áºδóáεΓß∩
  342.  ó¼ÑßΓÑ ó ¡áτá½Ñ µ¿¬½á. ¥Γ« ¡á¿í«½ÑÑ «τÑó¿ñ¡« ó ¬«¡ßΓαπ¬µ¿¿
  343.  
  344.   FOR (I = 0; I < N; I++)
  345.  
  346.  ¬«Γ«αá∩ ∩ó½∩ÑΓß∩ ¿ñ¿«¼«⌐ ∩ºδ¬á "C" ñ½∩ «íαáí«Γ¬¿ »Ñαóδσ N
  347.  φ½Ñ¼Ñ¡Γ«ó ¼áßß¿óá, á¡á½«ú¿τ¡«⌐ «»ÑαáΓ«απ µ¿¬½á DO ó Σ«αΓαá¡Ñ
  348.  ¿ PL/1. Ç¡á½«ú¿∩, «ñ¡á¬«, ¡Ñ »«½¡á∩, Γᬠ¬á¬ úαá¡¿µδ µ¿¬½á
  349.  ¼«úπΓ íδΓ∞ ¿º¼Ñ¡Ñ¡δ ó¡πΓα¿ µ¿¬½á, á π»αáó½∩εΘá∩ »ÑαѼѡ¡á∩
  350.  ß«σαá¡∩ÑΓ ßó«Ñ º¡áτÑ¡¿Ñ »«ß½Ñ óδσ«ñá ¿º µ¿¬½á, ¬á¬«óá íδ ¡¿
  351.  íδ½á »α¿τ¿¡á φΓ«ú« óδσ«ñá. Å«ß¬«½∞¬π ¬«¼»«¡Ñ¡ΓἿ FOR ¼«úπΓ
  352.  íδΓ∞ »α«¿ºó«½∞¡δÑ óδαáªÑ¡¿∩, «¡¿ ¡Ñ «úαá¡¿τ¿óáεΓß∩ Γ«½∞¬«
  353.  áα¿Σ¼ÑΓ¿τÑ߬¿¼¿ »α«úαÑßß¿∩¼¿. ÆÑ¼ ¡Ñ ¼Ñ¡ÑÑ ∩ó½∩ÑΓß∩ »½«σ¿¼
  354.  ßΓ¿½Ñ¼ ó¬½ετáΓ∞ ó FOR óδτ¿ß½Ñ¡¿∩, ¬«Γ«αδÑ ¡Ñ «Γ¡«ß∩Γß∩ ¬ π»-
  355.  αáó½Ñ¡¿ε µ¿¬½«¼, ½πτΦÑ »«¼ÑßΓ¿Γ∞ ¿σ ó π»αáó½∩ѼδÑ µ¿¬½«¼
  356.  «»ÑαáΓ«αδ.
  357.      
  358.                            - 66 -
  359.      
  360.      é ¬áτÑßΓóÑ í«½∞ΦÑú« »« αẼÑαπ »α¿¼Ñαá »α¿óÑñѼ ñαπú«⌐
  361.  óáα¿á¡Γ Σπ¡¬µ¿¿ ATOI, »αÑ«íαáºπεΘÑ⌐ ßΓ᫬π ó ÑÑ τ¿ß½Ñ¡¡δ⌐
  362.  φ¬ó¿óá½Ñ¡Γ. ¥Γ«Γ óáα¿á¡Γ ∩ó½∩ÑΓß∩ í«½ÑÑ «íΘ¿¼; «¡ ñ«»π߬áÑΓ
  363.  »α¿ßπΓßΓó¿Ñ ó ¡áτá½Ñ ß¿¼ó«½«ó »πßΓδσ »α«¼ÑªπΓ¬«ó ¿ º¡á¬á +
  364.  ¿½¿ -. (é ú½áóÑ 4 »α¿óÑñÑ¡á Σπ¡¬µ¿∩ ATOF, ¬«Γ«αá∩ óδ»«½¡∩ÑΓ
  365.  Γ« ªÑ ßἫѠ»αÑ«íαẫóá¡¿Ñ ñ½∩ τ¿ßѽ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐).
  366.      ÄíΘá∩ ßσѼᠻα«úαá¼¼δ «ΓαáªáÑΓ Σ«α¼π »«ßΓπ»áεΘ¿σ ñá¡¡δσ:
  367.  
  368.   - »α«»πßΓ¿Γ∞ »πßΓ«⌐ »α«¼ÑªπΓ«¬, Ñß½¿ «¡ ¿¼ÑÑΓß∩
  369.   - ¿ºó½Ñτ∞ º¡á¬, Ñß½¿ «¡ ¿¼ÑÑΓß∩
  370.  
  371.   - ¿ºó½Ñτ∞ µÑ½πε τáßΓ∞ ¿ »αÑ«íαẫóáΓ∞ ÑÑ
  372.  
  373.  èáªñδ⌐ Φáú óδ»«½¡∩ÑΓ ßó«ε τáßΓ∞ αáí«Γδ ¿ «ßΓáó½∩ÑΓ óßÑ ó
  374.  »«ñú«Γ«ó½Ñ¡¡«¼ ß«ßΓ«∩¡¿¿ ñ½∩ ß½ÑñπεΘÑ⌐ τáßΓ¿. éÑß∞ »α«µÑßß
  375.  ºá¬á¡τ¿óáÑΓß∩ ¡á »Ñαó«¼ ß¿¼ó«½Ñ, ¬«Γ«αδ⌐ ¡Ñ ¼«ªÑΓ íδΓ∞
  376.  τáßΓ∞ε τ¿ß½á.
  377.  
  378.  ATOI(S)   /* CONVERT S TO INTEGER */
  379.  CHAR S[];
  380.  {
  381.  INT I, N, SIGN;
  382.  FOR(I=0;S[I]==' ' \!\!
  383.           S[I]=='\N' \!\! S[I]=='\T';I++)
  384.     ; /* SKIP WHITE SPACE */
  385.  SIGN = 1;
  386.  IF(S[I] == '+' \!\! S[I] == '-')  /* SIGN */
  387.     SIGN = (S[I++]=='+') ? 1 : - 1;
  388.  FOR( N = 0; S[I] >= '0' && S[I] <= '9'; I++)
  389.     N = 10 * N + S[I] - '0';
  390.  RETURN(SIGN * N);
  391.  }
  392.  
  393.      ÅαÑ¿¼πΘÑßΓóᠵѡΓα὿ºáµ¿¿ π»αáó½Ñ¡¿∩ µ¿¬½«¼ ßΓá¡«ó∩Γß∩
  394.  ÑΘÑ í«½ÑÑ «τÑó¿ñ¡δ¼¿, ¬«úñá ¿¼ÑÑΓß∩ ¡Ñ߬«½∞¬« ó½«ªÑ¡¡δσ µ¿¬-
  395.  ½«ó. æ½ÑñπεΘá∩ Σπ¡¬µ¿∩ ß«αΓ¿απÑΓ ¼áßß¿ó µÑ½δσ τ¿ßѽ »« ¼ÑΓ«-
  396.  ñπ Φѽ½á. «ß¡«ó¡á∩ ¿ñÑ∩ ß«αΓ¿α«ó¬¿ »« Φѽ½π ºá¬½ετáÑΓß∩ ó
  397.  Γ«¼, τΓ« ß¡áτá½á ßαáó¡¿óáεΓß∩ πñá½Ñ¡¡δÑ φ½Ñ¼Ñ¡Γδ, á ¡Ñ ß¼Ñª-
  398.  ¡δÑ, ¬á¬ ó «íδτ¡«¼ ¼ÑΓ«ñÑ ß«αΓ¿α«ó¬¿. ¥Γ« »α¿ó«ñ¿Γ ¬ íδßΓα«-
  399.  ¼π πßΓαá¡Ñ¡¿ε í«½∞Φ«⌐ τáßΓ¿ ¡Ñπ»«α∩ñ«τÑ¡¡«ßΓ¿ ¿ ß«¬αáΘáÑΓ
  400.  »«ß½ÑñπεΘπε αáí«Γπ. ê¡ΓÑαóá½ ¼Ñªñπ φ½Ñ¼Ñ¡ΓἿ »«ßΓѻѡ¡«
  401.  ß«¬αáΘáÑΓß∩ ñ« Ññ¿¡¿µδ, ¬«úñá ß«αΓ¿α«ó¬á Σá¬Γ¿τÑ߬¿ »αÑóαá-
  402.  ΘáÑΓß∩ ó ¼ÑΓ«ñ »ÑαÑßΓᡫ󬿠߫ßÑñ¡¿σ φ½Ñ¼Ñ¡Γ«ó.
  403.                                
  404.      
  405.                            - 67 -
  406.      
  407.  SHELL(V, N)   /* SORT V[0]...V[N-1]
  408.                 INTO INCREASING ORDER */
  409.  INT V[], N;
  410.  {
  411.    INT GAP, I, J, TEMP;
  412.  
  413.    FOR (GAP = N/2; GAP > 0; GAP /= 2)
  414.       FOR (I = GAP; I < N; I++)
  415.    FOR (J=I-GAP; J>=0 && V[J]>V[J+GAP]; J-=GAP) {
  416.     TEMP = V[J];
  417.     V[J] = V[J+GAP];
  418.     V[J+GAP] = TEMP;
  419.    }
  420.  }
  421.           
  422.  çñÑß∞ ¿¼ÑεΓß∩ Γα¿ ó½«ªÑ¡¡δσ µ¿¬½á. æá¼δ⌐ ó¡ÑΦ¡¿⌐ µ¿¬½ π»αáó-
  423.  ½∩ÑΓ ¿¡ΓÑαóὫ¼ ¼Ñªñπ ßαáó¡¿óáÑ¼δ¼¿ φ½Ñ¼Ñ¡ΓἿ, π¼Ñ¡∞Φá∩ Ñú«
  424.  «Γ N/2 óñó«Ñ »α¿ ¬áªñ«¼ »α«σ«ñÑ, »«¬á «¡ ¡Ñ ßΓá¡ÑΓ αáó¡δ¼
  425.  ¡π½ε. æαÑñ¡¿⌐ µ¿¬½ ßαáó¡¿óáÑΓ ¬áªñπε »áαπ φ½Ñ¼Ñ¡Γ«ó, αáºñÑ-
  426.  ½Ñ¡¡δσ ¡á óѽ¿τ¿¡π ¿¡ΓÑαóá½á; ßá¼δ⌐ ó¡πΓαÑ¡¡¿⌐ µ¿¬½ »ÑαÑß-
  427.  Γáó½∩ÑΓ ½εíπε ¡Ñπ»«α∩ñ«τÑ¡¡πε »áαπ. Æá¬ ¬á¬ ¿¡ΓÑαóὠ󠬫¡µÑ
  428.  ¬«¡µ«ó ßó«ñ¿Γß∩ ¬ Ññ¿¡¿µÑ, óßÑ φ½Ñ¼Ñ¡Γδ ó αѺπ½∞ΓáΓÑ π»«α∩-
  429.  ñ«τ¿óáεΓß∩ »αáó¿½∞¡«. ÄΓ¼ÑΓ¿¼, τΓ« ó ß¿½π «íΘ¡«ßΓ¿ ¬«¡ßΓαπ¬-
  430.  µ¿¿ FOR ó¡ÑΦ¡¿⌐ µ¿¬½ π¬½áñδóáÑΓß∩ ó Γπ ªÑ ßá¼πε Σ«α¼π, τΓ« ¿
  431.  «ßΓá½∞¡δÑ, σ«Γ∩ «¡ ¿ ¡Ñ ∩ó½∩ÑΓß∩ áα¿Σ¼ÑΓ¿τÑ߬«⌐ »α«úαÑßß¿Ñ⌐.
  432.      Å«ß½Ññ¡Ñ⌐ «»ÑαᵿÑ⌐ ∩ºδ¬á "C" ∩ó½∩ÑΓß∩ ºá»∩Γá∩ ",", ¬«-
  433.  Γ«αá∩ τáΘÑ óßÑú« ¿ß»«½∞ºπÑΓß∩ ó «»ÑαáΓ«αÑ FOR. äóá óδαáªÑ-
  434.  ¡¿∩, αáºñѽѡ¡δÑ ºá»∩Γ«⌐, óδτ¿ß½∩εΓß∩ ß½Ñóá ¡á»αáó«, »α¿τѼ
  435.  Γ¿»«¼ ¿ º¡áτÑ¡¿Ñ¼ αѺπ½∞ΓáΓá ∩ó½∩εΓß∩ Γ¿» ¿ º¡áτÑ¡¿Ñ »αáó«ú«
  436.  «»Ñαá¡ñá. Æá¬¿¼ «íαẫ¼, ó αẽ¿τ¡δÑ τáßΓ¿ «»ÑαáΓ«αá FOR
  437.  ¼«ª¡« ó¬½ετ¿Γ∞ ¡Ñ߬«½∞¬« óδαáªÑ¡¿⌐, ¡á»α¿¼Ñα, ñ½∩ »áαώѽ∞-
  438.  ¡«ú« ¿º¼Ñ¡Ñ¡¿∩ ñóπσ ¿¡ñѬ߫ó. ¥Γ« ¿½½εßΓα¿απÑΓß∩ Σπ¡¬µ¿Ñ⌐
  439.  REVERSE(S), ¬«Γ«αá∩ αáß»«½áúáÑΓ ßΓ᫬π S ó «íαáΓ¡«¼ »«α∩ñ¬Ñ
  440.  ¡á Γ«¼ ªÑ ¼ÑßΓÑ.
  441.  
  442.   REVERSE(S)    /* REVERSE STRING S IN PLACE */
  443.   CHAR S[];
  444.   {
  445.   INT C, I, J;
  446.  
  447.   FOR(I = 0, J = STRLEN(S) - 1; I < J; I++, J--)  {
  448.      C = S[I];
  449.      S[I] = S[J];
  450.      S[J] = C;
  451.   }
  452.   }
  453.  
  454.  çá»∩ΓδÑ, ¬«Γ«αδÑ αáºñѽ∩εΓ áαúπ¼Ñ¡Γδ Σπ¡¬µ¿⌐, »ÑαѼѡ¡δÑ ó
  455.  «»¿ßá¡¿∩σ ¿ Γ.ñ., ¡Ñ ¿¼ÑεΓ «Γ¡«ΦÑ¡¿∩ ¬ «»Ñαᵿ¿ ºá»∩Γá∩ ¿ ¡Ñ
  456.  «íÑß»Ñτ¿óáεΓ óδτ¿ß½Ñ¡¿⌐ ß½Ñóá ¡á»αáó«.
  457.            
  458.      
  459.                            - 68 -
  460.      
  461.      ô»α᪡ѡ¿Ñ 3-2.
  462.      ---------------
  463.      æ«ßΓáó∞ΓÑ »α«úαá¼¼π ñ½∩ Σπ¡¬µ¿¿ EXPAND(S1,S2), ¬«Γ«αá∩
  464.  αáßΦ¿α∩ÑΓ ß«¬αáΘÑ¡¡δÑ «í«º¡áτÑ¡¿∩ ó¿ñá á-Z ¿º ßΓ᫬¿ S1 ó
  465.  φ¬ó¿óá½Ñ¡Γ¡δ⌐ »«½¡δ⌐ ß»¿ß«¬ áóß...XYZ ó S2. ä«»π߬áεΓß∩ ß«¬-
  466.  αáΘÑ¡¿∩ ñ½∩ ßΓα«τ¡δσ ¿ »α«»¿ß¡δσ íπ¬ó ¿ µ¿Σα. üπñ∞ΓÑ ú«Γ«óδ
  467.  ¿¼ÑΓ∞ ñѽ« ß« ß½πτá∩¼¿ Γ¿»á á-ó-ß, á-Z0-9 ¿ -á-Z. (Å«½Ñº¡«Ñ
  468.  ß«ú½áΦÑ¡¿Ñ ß«ßΓ«¿Γ ó Γ«¼, τΓ« ß¿¼ó«½ -, ßΓ«∩Θ¿⌐ ó ¡áτá½Ñ ¿½¿
  469.  ¬«¡µÑ, ó«ß»α¿¡¿¼áÑΓß∩ íπ¬óá½∞¡«).
  470.  
  471.       3.6. û¿¬½ DO - WHILE
  472.  
  473.      èᬠπªÑ «Γ¼ÑτὫß∞ ó ú½áóÑ 1, µ¿¬½δ WHILE ¿ FOR «í½áñáεΓ
  474.  ΓѼ »α¿∩Γ¡δ¼ ßó«⌐ßΓó«¼, τΓ« ó ¡¿σ »α«óÑα¬á «¬«¡τá¡¿∩ «ßπΘÑß-
  475.  Γó½∩ÑΓß∩ ó ¡áτá½Ñ, á ¡Ñ ó ¬«¡µÑ µ¿¬½á. ÆαÑΓ¿⌐ «»ÑαáΓ«α µ¿¬½á
  476.  ∩ºδ¬á "C", DO-WHILE, »α«óÑα∩ÑΓ πß½«ó¿Ñ «¬«¡τá¡¿∩ ó ¬«¡µÑ,
  477.  »«ß½Ñ ¬áªñ«ú« »α«σ«ñá τÑαѺ Γѽ« µ¿¬½á; Γѽ« µ¿¬½á óßÑúñá
  478.  óδ»«½¡∩ÑΓß∩ »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ «ñ¿¡ αáº. æ¿¡Γá¬ß¿ß φΓ«ú« «»Ñαá-
  479.  Γ«αá ¿¼ÑÑΓ ó¿ñ:
  480.  
  481.  DO
  482.     «»ÑαáΓ«α
  483.  WHILE (óδαáªÑ¡¿Ñ)
  484.  
  485.  æ¡áτá½á óδ»«½¡∩ÑΓß∩ «»ÑαáΓ«α, ºáΓѼ óδτ¿ß½∩ÑΓß∩ óδαáªÑ¡¿Ñ.
  486.  àß½¿ «¡« ¿ßΓ¿¡¡«, Γ« «»ÑαáΓ«α óδ»«½¡∩ÑΓß∩ ß¡«óá ¿ Γ.ñ. àß½¿
  487.  óδαáªÑ¡¿Ñ ßΓá¡«ó¿Γß∩ ½«ª¡δ¼, µ¿¬½ ºá¬á¡τ¿óáÑΓß∩.
  488.  
  489.      èᬠ¿ ¼«ª¡« í佫 «ª¿ñáΓ∞, µ¿¬½ DO-WHILE ¿ß»«½∞ºπÑΓß∩
  490.  º¡áτ¿Γѽ∞¡« αѪÑ, τѼ WHILE ¿ FOR, ß«ßΓáó½∩∩ »α¿¼Ñα¡« »∩Γ∞
  491.  »α«µÑ¡Γ«ó «Γ óßÑσ µ¿¬½«ó. ÆÑ¼ ¡Ñ ¼Ñ¡ÑÑ, ¿¡«úñá «¡ «¬áºδóáÑΓ-
  492.  ß∩ »«½Ñº¡δ¼, ¬á¬, ¡á»α¿¼Ñα, ó ß½ÑñπεΘÑ⌐ Σπ¡¬µ¿¿ ITOA, ¬«Γ«-
  493.  αá∩ »αÑ«íαáºπÑΓ τ¿ß½« ó ß¿¼ó«½∞¡πε ßΓ᫬π («íαáΓ¡á∩ Σπ¡¬µ¿¿
  494.  ATOI). ¥Γá ºáñáτá «¬áºδóáÑΓß∩ ¡Ñ߬«½∞¬« í«½ÑÑ ß½«ª¡«⌐, τѼ
  495.  ¼«ªÑΓ »«¬áºáΓ∞ß∩ ß¡áτá½á. äѽ« ó Γ«¼, τΓ« »α«ßΓδÑ ¼ÑΓ«ñδ óδ-
  496.  ñѽѡ¿∩ µ¿Σα úÑ¡Ñα¿απεΓ ¿σ ó ¡Ñ»αáó¿½∞¡«¼ »«α∩ñ¬Ñ. îδ »αÑñ-
  497.  »«τ½¿ »«½πτ¿Γ∞ ßΓ᫬π ó «íαáΓ¡«¼ »«α∩ñ¬Ñ, á ºáΓѼ «íαáΓ¿Γ∞
  498.  ÑÑ.
  499.            
  500.                            - 69 -
  501.      
  502.      
  503.  ITOA(N,S)   /*CONVERT N TO CHARACTERS IN S */
  504.  CHAR S[];
  505.  INT N;
  506.  {
  507.  INT I, SIGN;
  508.  
  509.  IF ((SIGN = N) < 0)   /* RECORD SIGN */
  510.     N = -N;     /* MAKE N POSITIVE */
  511.  I = 0;
  512.  DO {    /* GENERATE DIGITS IN REVERSE ORDER */
  513.     S[I++] = N % 10 + '0';/* GET NEXT DIGIT */
  514.  }   WHILE ((N /=10) > 0); /* DELETE IT */
  515.  IF (SIGN < 0)
  516.     S[I++] = '-'
  517.  S[I] = '\0';
  518.  REVERSE(S);
  519.  }
  520.  
  521.  û¿¬½ DO-WHILE ºñÑß∞ ¡Ñ«íσ«ñ¿¼, ¿½¿ »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ πñ«íÑ¡,
  522.  »«ß¬«½∞¬π, ¬á¬«ó« íδ ¡¿ í佫 º¡áτÑ¡¿Ñ N, ¼áßß¿ó S ñ«½ªÑ¡ ß«-
  523.  ñÑαªáΓ∞ σ«Γ∩ íδ «ñ¿¡ ß¿¼ó«½. îδ ºá¬½ετ¿½¿ ó Σ¿úπα¡δѠ߬«í¬¿
  524.  «ñ¿¡ «»ÑαáΓ«α, ß«ßΓáó½∩εΘ¿⌐ Γѽ« DO-WHILÑ, σ«Γ∩ φΓ« ¿ ¡Ñ
  525.  «í∩ºáΓѽ∞¡«, ñ½∩ Γ«ú«, τΓ«íδ Γ«α«»½¿óδ⌐ τ¿ΓáΓѽ∞ ¡Ñ »α¿¡∩½
  526.  τáßΓ∞ WHILE ºá ¡áτὫ «»ÑαáΓ«αá µ¿¬½á WHILE.
  527.      ô»α᪡ѡ¿Ñ 3-3.
  528.      --------------
  529.      Åα¿ »αÑñßΓáó½Ñ¡¿¿ τ¿ßѽ ó ñó«¿τ¡«¼ ñ«»«½¡¿Γѽ∞¡«¼ ¬«ñÑ
  530.  ¡áΦ óáα¿á¡Γ ITOA ¡Ñ ß»αáó½∩ÑΓß∩ ß ¡á¿í«½∞Φ¿¼ «Γα¿µáΓѽ∞¡δ¼
  531.  τ¿ß½«¼, Γ.Ñ. æ« º¡áτÑ¡¿Ñ¼ N αAó¡δ¼ -2 ó ßΓѻѡ¿ ¼-1, úñÑ ¼ -
  532.  αẼÑα ß½«óá. «íΩ∩ß¡¿ΓÑ »«τѼπ. êº¼Ñ¡¿ΓÑ »α«úαá¼¼π Γá¬, τΓ«-
  533.  íδ «¡á »αáó¿½∞¡« »ÑτáΓá½á φΓ« º¡áτÑ¡¿Ñ ¡á ½εí«⌐ ¼áΦ¿¡Ñ.
  534.  
  535.      ô»α᪡ѡ¿Ñ 3-4.
  536.      --------------
  537.      ìá»¿Φ¿ΓÑ á¡á½«ú¿τ¡πε Σπ¡¬µ¿ε ITOB(N,S), ¬«Γ«αá∩ »αÑ«íαá-
  538.  ºπÑΓ µÑ½«Ñ íѺ º¡á¬á N ó Ñú« ñó«¿τ¡«Ñ ß¿¼ó«½∞¡«Ñ »αÑñßΓáó½Ñ-
  539.  ¡¿Ñ ó S. çá»α«úαá¼¼¿απ⌐ΓÑ Σπ¡¬µ¿ε ITOH, ¬«Γ«αá∩ »αÑ«íαáºπÑΓ
  540.  µÑ½«Ñ ó ΦÑßΓ¡áñµáΓÑα¿τ¡«Ñ »αÑñßΓáó½Ñ¡¿Ñ.
  541.     ô»α᪡ѡ¿Ñ 3-5.
  542.     ---------------
  543.      ìá»¿Φ¿ΓÑ óáα¿á¡Γ IΓ«á, ¬«Γ«αδ⌐ ¿¼ÑÑΓ Γα¿, á ¡Ñ ñóá áαúπ-
  544.  ¼Ñ¡Γá. ÆαÑΓ¿⌐ áαúπ¼Ñ¡Γ - ¼¿¡¿¼á½∞¡á∩ Φ¿α¿¡á »«½∩; »αÑ«íαẫ-
  545.  óá¡¡«Ñ τ¿ß½« ñ«½ª¡«, Ñß½¿ φΓ« ¡Ñ«íσ«ñ¿¼«, ñ«»«½¡∩Γ∞ß∩ ß½Ñóá
  546.  »α«íѽἿ, ΓᬠτΓ«íδ «¡« ¿¼Ñ½« ñ«ßΓáΓ«τ¡πε Φ¿α¿¡π.
  547.             
  548.                            - 70 -
  549.      
  550.      
  551.  3.7. Ä»ÑαáΓ«α BREAK
  552.  
  553.      ê¡«úñá íδóáÑΓ πñ«í¡δ¼ ¿¼ÑΓ∞ ó«º¼«ª¡«ßΓ∞ π»αáó½∩Γ∞ óδσ«-
  554.  ñ«¼ ¿º µ¿¬½á ¿¡áτÑ, τѼ »α«óÑᬫ⌐ πß½«ó¿∩ ó ¡áτá½Ñ ¿½¿ ó
  555.  ¬«¡µÑ. Ä»ÑαáΓ«α BRÑᬠ»«ºó«½∩ÑΓ óδ⌐Γ¿ ¿º «»ÑαáΓ«α«ó FOR,
  556.  WHILE ¿ DO ñ« «¬«¡τá¡¿∩ µ¿¬½á Γ«τ¡« ΓᬠªÑ, ¬á¬ ¿ ¿º »ÑαѬ-
  557.  ½ετáΓѽ∩. Ä»ÑαáΓ«α BRÑᬠ»α¿ó«ñ¿Γ ¬ ¡Ñ¼Ññ½Ñ¡¡«¼π óδσ«ñπ ¿º
  558.  ßἫú« ó¡πΓαÑ¡¡Ñú« «σóáΓδóáεΘÑú« Ñú« µ¿¬½á (¿½¿ »ÑαѬ½ετáΓÑ-
  559.  ½∩).
  560.      æ½ÑñπεΘá∩ »α«úαá¼¼á πñá½∩ÑΓ σó«ßΓ«óδÑ »α«íÑ½δ ¿ Γáíπ½∩-
  561.  µ¿¿ ¿º ¬«¡µá ¬áªñ«⌐ ßΓ᫬¿ Σá⌐½á óó«ñá. Ä¡á ¿ß»«½∞ºπÑΓ «»Ñ-
  562.  αáΓ«α BRÑᬠñ½∩ óδσ«ñá ¿º µ¿¬½á, ¬«úñá ¡á⌐ñÑ¡ ¬αá⌐¡¿⌐ »αáóδ⌐
  563.  «Γ½¿τ¡δ⌐ «Γ »α«íѽᠿ Γáíπ½∩µ¿¿ ß¿¼ó«½.
  564.  
  565.   #DEFINE MAXLINE 1000
  566.   MAIN()    /* REMOVE TRAILING BLANKS AND TABS */
  567.   {
  568.   INT N;
  569.   CHAR LINE[MAXLINE];
  570.  
  571.   WHILE ((N = GETLINE(LINE,MAXLINE)) > 0) {
  572.    WHILE (--N >= 0)
  573.          IF (LINE[N] != ' ' && LINE[N] != '\T'
  574.          && LINE[N] != '\N')
  575.                BREAK;
  576.    LINE[N+1] = '\0';
  577.    PRINTF("%S\N",LINE);
  578.   }
  579.   }
  580.  
  581.      öπ¡¬µ¿∩ GETLINE ó«ºóαáΘáÑΓ ñ½¿¡π ßΓ᫬¿. é¡πΓαÑ¡¡¿⌐ µ¿¬½
  582.  ¡áτ¿¡áÑΓß∩ ß »«ß½Ññ¡Ñú« ß¿¼ó«½á LINE (¡á»«¼¡¿¼, τΓ« --N
  583.  π¼Ñ¡∞ΦáÑΓ N ñ« ¿ß»«½∞º«óá¡¿∩ Ñú« º¡áτÑ¡¿∩) ¿ ñó¿ªÑΓß∩ ó «í-
  584.  αáΓ¡«¼ ¡á»αáó½Ñ¡¿¿ ó »«¿ß¬Ñ »Ñαó«ú« ß¿¼ó«½á , ¬«Γ«αδ⌐ «Γ½¿-
  585.  τÑ¡ «Γ »α«íѽá, Γáíπ½∩µ¿¿ ¿½¿ ¡«ó«⌐ ßΓ᫬¿. û¿¬½ »αÑαδóáÑΓ-
  586.  ß∩, ¬«úñá ½¿í« ¡á⌐ñÑ¡ Γᬫ⌐ ß¿¼ó«½, ½¿í« N ßΓá¡«ó¿Γß∩ «Γα¿-
  587.  µáΓѽ∞¡δ¼ (Γ.Ñ., ¬«úñá »α«ß¼«ΓαÑ¡á óß∩ ßΓ᫬á). æ«óÑΓπѼ óá¼
  588.  πíÑñ¿Γ∞ß∩, τΓ« ΓᬫѠ»«óÑñÑ¡¿Ñ »αáó¿½∞¡« ¿ ó Γ«¼ ß½πτáÑ,
  589.  ¬«úñá ßΓ᫬á ß«ßΓ«¿Γ Γ«½∞¬« ¿º ß¿¼ó«½«ó »πßΓδσ »α«¼ÑªπΓ¬«ó.
  590.      é ¬áτÑßΓóÑ á½∞ΓÑα¡áΓ¿óδ ¬ BRÑᬠ¼«ª¡« óóÑßΓ¿ »α«óÑα¬π ó
  591.  ßá¼ µ¿¬½:
  592.  
  593.  WHILE ((N = GETLINE(LINE,MAXLINE)) > 0) {
  594.   WHILE (--N >= 0
  595.       && (LINE[N] == ' ' \!\! LINE[N] == '\T'
  596.       \!\! LINE[N] == '\N'))
  597.             ;
  598.     ...
  599.  }
  600.      
  601.                            - 71 -
  602.  
  603.  ¥Γ« πßΓπ»áÑΓ »αÑñδñπΘѼπ óáα¿á¡Γπ, Γᬠ¬á¬ »α«óÑα¬á ßΓá¡«-
  604.  ó¿Γß∩ Γαπñ¡ÑÑ ñ½∩ »«¡¿¼á¡¿∩. Åα«óÑ᫬, ¬«Γ«αδÑ ΓαÑíπεΓ »Ñ-
  605.  αÑ»½ÑΓÑ¡¿∩ &&, \!\!, ! ê ¬απú½δσ ß¬«í«¬, »« ó«º¼«ª¡«ßΓ¿ ß½Ñ-
  606.  ñπÑΓ ¿ºíÑúáΓ∞.
  607.  
  608.       3.8. Ä»ÑαáΓ«α CONTINUE
  609.  
  610.      Ä»ÑαáΓ«α CONTINUE α«ñßΓóѡѡ «»ÑαáΓ«απ BRÑá¬, ¡« ¿ß»«½∞-
  611.  ºπÑΓß∩ αѪÑ; «¡ »α¿ó«ñ¿Γ ¬ ¡áτá½π ß½ÑñπεΘÑ⌐ ¿ΓÑαᵿ¿ «σóáΓδ-
  612.  óáεΘÑú« µ¿¬½á (FOR, WHILE, DO ). é µ¿¬½áσ WHILE ¿ DO φΓ« «º-
  613.  ¡áτáÑΓ ¡Ñ»«ßαÑñßΓóÑ¡¡δ⌐ »ÑαÑσ«ñ ¬ óδ»«½¡Ñ¡¿ε »α«óÑα«τ¡«⌐
  614.  τáßΓ¿; ó µ¿¬½Ñ FOR π»αáó½Ñ¡¿Ñ »ÑαÑñáÑΓß∩ ¡á Φáú αÑ¿¡¿µ¿á½¿-
  615.  ºáµ¿¿. (Ä»ÑαáΓ«α CONTINUE »α¿¼Ñ¡∩ÑΓß∩ Γ«½∞¬« ó µ¿¬½áσ, ¡« ¡Ñ
  616.  ó »ÑαѬ½ετáΓѽ∩σ. Ä»ÑαáΓ«α CONTINUE ó¡πΓα¿ »ÑαѬ½ετáΓѽ∩
  617.  ó¡πΓα¿ µ¿¬½á óδºδóáÑΓ óδ»«½¡Ñ¡¿Ñ ß½ÑñπεΘÑ⌐ ¿ΓÑαᵿ¿ µ¿¬½á).
  618.      é ¬áτÑßΓóÑ »α¿¼Ñαá »α¿óÑñѼ Σαáú¼Ñ¡Γ, ¬«Γ«αδ⌐ «íαáíáΓδ-
  619.  óáÑΓ Γ«½∞¬« »«½«ª¿Γѽ∞¡δÑ φ½Ñ¼Ñ¡Γδ ¼áßß¿óá á; «Γα¿µáΓѽ∞¡δÑ
  620.  º¡áτÑ¡¿∩ »α«»π߬áεΓß∩.
  621.  
  622.  FOR (I = 0; I < N; I++) {
  623.   IF (A[I] < 0) /* SKIP NEGATIVE ELEMENTS */
  624.         CONTINUE;
  625.       ...  /* DO POSITIVE ELEMENTS */
  626.  }
  627.  
  628.  Ä»ÑαáΓ«α CONTINUE τáßΓ« ¿ß»«½∞ºπÑΓß∩, ¬«úñá »«ß½ÑñπεΘá∩
  629.  τáßΓ∞ µ¿¬½á «¬áºδóáÑΓß∩ ß½¿Φ¬«¼ ß½«ª¡«⌐, ΓᬠτΓ« αáßß¼«ΓαÑ-
  630.  ¡¿Ñ πß½«ó¿∩, «íαáΓ¡«ú« »α«óÑα∩Ѽ«¼π, »α¿ó«ñ¿Γ ¬ ß½¿Φ¬«¼ ú½π-
  631.  í«¬«¼π πα«ó¡ε ó½«ªÑ¡¡«ßΓ¿ »α«úαá¼¼δ.
  632.  
  633. ô»α᪡ѡ¿Ñ 3-6.
  634. --------------
  635.  
  636.      ìá»¿Φ¿ΓÑ »α«úαá¼¼π ¬«»¿α«óá¡¿∩ óó«ñá ¡á óδó«ñ, ß ΓѼ ¿ß-
  637.  ¬½ετÑ¡¿Ñ¼, τΓ« ¿º ¬áªñ«⌐ úαπ»»δ »«ß½Ññ«óáΓѽ∞¡δσ «ñ¿¡á¬«óδσ
  638.  ßΓ᫬ óδó«ñ¿Γß∩ Γ«½∞¬« «ñ¡á. (¥Γ« »α«ßΓ«⌐ óáα¿á¡Γ πΓ¿½¿Γδ
  639.  UNIQ ß¿ßΓѼ UNIX).
  640.      
  641.      3.9. Ä»ÑαáΓ«α GOTO ¿ ¼ÑΓ¬¿
  642.  
  643.      é ∩ºδ¬Ñ "C" »αÑñπß¼«ΓαÑ¡ ¿ «»ÑαáΓ«α GOTO, ¬«Γ«αδ¼ íÑ߬«-
  644.  ¡Ñτ¡« º½«π»«ΓαÑí½∩εΓ, ¿ ¼ÑΓ¬¿ ñ½∩ óÑΓó½Ñ¡¿∩. æ Σ«α¼á½∞¡«⌐
  645.  Γ«τ¬¿ ºαÑ¡¿∩ «»ÑαáΓ«α GOTO ¡¿¬«úñá ¡Ñ ∩ó½∩ÑΓß∩ ¡Ñ«íσ«ñ¿¼δ¼,
  646.  ¿ ¡á »αá¬Γ¿¬Ñ »«τΓ¿ óßÑúñá ¼«ª¡« «í«⌐Γ¿ß∞ íѺ ¡Ñú«. îδ ¡Ñ
  647.  ¿ß»«½∞º«ó὿ GOTO ó φΓ«⌐ ¬¡¿úÑ.
  648.      ÆÑ¼ ¡Ñ ¼Ñ¡ÑÑ, ¼δ π¬áªÑ¼ ¡Ñ߬«½∞¬« ß¿Γπᵿ⌐, úñÑ «»ÑαáΓ«α
  649.  GOTO ¼«ªÑΓ ¡á⌐Γ¿ ßó«Ñ ¼ÑßΓ«. ìá¿í«½ÑÑ σáαá¬ΓÑα¡δ¼ ∩ó½∩ÑΓß∩
  650.  Ñú« ¿ß»«½∞º«óá¡¿Ñ Γ«úñá, ¬«úñá ¡πª¡« »αÑαóáΓ∞ óδ»«½¡Ñ¡¿Ñ ó
  651.  ¡Ñ¬«Γ«α«⌐ ú½πí«¬« ó½«ªÑ¡¡«⌐ ßΓαπ¬ΓπαÑ, ¡á»α¿¼Ñα, óδ⌐Γ¿ ßαáºπ
  652.  ¿º ñóπσ µ¿¬½«ó. çñÑß∞ ¡Ñ½∞º∩ ¡Ñ»«ßαÑñßΓóÑ¡¡« ¿ß»«½∞º«óáΓ∞
  653.  «»ÑαáΓ«α BRÑá¬, Γᬠ¬á¬ «¡ »αÑαδóáÑΓ Γ«½∞¬« ßá¼δ⌐ ó¡πΓαÑ¡¡¿⌐
  654.  µ¿¬½. Å«φΓ«¼π:
  655.            
  656.                            - 72 -
  657.      
  658.    FOR ( ... )
  659.       FOR ( ... )    {
  660.               ...
  661.               IF (DISASTER)
  662.        GOTO ERROR;
  663.       }
  664.    ...
  665.  
  666.  ERROR:
  667.     CLEAN UP THE MESS
  668.      
  669.  àß½¿ »α«úαἼᠫíαáí«Γ¬¿ «Φ¿í«¬ ¡ÑΓα¿ó¿á½∞¡á ¿ «Φ¿í¬¿ ¼«úπΓ
  670.  ó«º¡¿¬áΓ∞ ó ¡Ñ߬«½∞¬¿σ ¼ÑßΓáσ, Γ« Γá¬á∩ «αúá¡¿ºáµ¿∩ «¬áºδóá-
  671.  ÑΓß∩ πñ«í¡«⌐. îÑΓ¬á ¿¼ÑÑΓ Γá¬πε ªÑ Σ«α¼π, τΓ« ¿ ¿¼∩ »ÑαѼѡ-
  672.  ¡«⌐, ¿ ºá ¡Ñ⌐ óßÑúñá ß½ÑñπÑΓ ñó«ÑΓ«τ¿Ñ. îÑΓ¬á ¼«ªÑΓ íδΓ∞
  673.  »α¿»¿ßá¡á ¬ ½εí«¼π «»ÑαáΓ«απ Γ«⌐ ªÑ Σπ¡¬µ¿¿, ó ¬«Γ«α«⌐ ¡áσ«-
  674.  ñ¿Γß∩ «»ÑαáΓ«α GOTO.
  675.      é ¬áτÑßΓóÑ ñαπú«ú« »α¿¼Ñαá αáßß¼«Γα¿¼ ºáñáτπ ¡áσ«ªñÑ¡¿∩
  676.  »Ñαó«ú« «Γα¿µáΓѽ∞¡«ú« φ½Ñ¼Ñ¡Γá ó ñóπ¼Ñα¡«¼ ¼áßß¿óÑ. (î¡«ú«-
  677.  ¼Ñα¡δÑ ¼áßß¿óδ αáßß¼áΓα¿óáεΓß∩ ó ú½áóÑ 5). é«Γ «ñ¡á ¿º ó«º-
  678.  ¼«ª¡«ßΓÑ⌐:
  679.  
  680.    FOR (I = 0; I < N; I++)
  681.       FOR (J = 0; J < M; J++)
  682.               IF (V[I][J] < 0)
  683.        GOTO FOUND;
  684.       /* DIDN'T FIND */
  685.    ...
  686.  FOUND:
  687.    /* FOUND ONE AT POSITION I, J */
  688.    ...
  689.  
  690.      Åα«úαá¼¼á, ¿ß»«½∞ºπεΘá∩ «»ÑαáΓ«α GOTO, óßÑúñá ¼«ªÑΓ íδΓ∞
  691.  ¡á»¿ßá¡á íѺ ¡Ñú«, σ«Γ∩, ó«º¼«ª¡«, ºá ßτÑΓ »«óΓ«αÑ¡¿∩ ¡Ñ¬«-
  692.  Γ«αδσ »α«óÑ᫬ ¿ óóÑñÑ¡¿∩ ñ«»«½¡¿Γѽ∞¡δσ »ÑαѼѡ¡δσ. ìá»α¿-
  693.  ¼Ñα, »α«úαἼᠻ«¿ß¬á ó ¼áßß¿óÑ »α¿¼ÑΓ ó¿ñ:
  694.  
  695.  FOUND = 0;
  696.  FOR (I = 0; I < N && !FOUND; I++)
  697.     FOR (J = 0; J < M && !FOUND; J++)
  698.             FOUND = V[I][J] < 0;
  699.  IF (FOUND)
  700.     /* IT WAS AT I-1, J-1 */
  701.     ...
  702.  ELSE
  703.     /* NOT FOUND */
  704.     ...
  705.      ò«Γ∩ ¼δ ¡Ñ ∩ó½∩Ѽß∩ ó φΓ«¼ ó«»α«ßÑ ñ«ú¼áΓ¿¬á¼¿, ¡á¼ óßÑ
  706.  ªÑ ¬áªÑΓß∩, τΓ« Ñß½¿ ¿ ¡πª¡« ¿ß»«½∞º«óáΓ∞ «»ÑαáΓ«α GOTO, Γ«
  707.  óÑß∞¼á π¼ÑαÑ¡¡«.
  708.