14. Á¶°Ç ÇÔ¼ö

Á¶°Ç ÇÔ¼ö´Â °ü°è¿¬»êÀÚ¿Í ÇÔ²² ¾²¿©¾ß¸¸ Á¦ ±â´ÉÀ» °¡Áú ¼ö ÀÖ½À´Ï´Ù.

ÀÚµ¿È­ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¶§ ¹«¾ùº¸´Ùµµ Áß¿äÇÑ ÇÔ¼ö¶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

1. if

    (1) ±â´É

      ÁöÁ¤ Á¶°Ç½ÄÀ» ºñ±³ÇÏ´Â ±â´ÉÀ¸·Î ÁöÁ¤ Á¶°Ç½ÄÀÌ ¸¸Á·Çϸé Á¶°Ç½Ä-1À» ´ÙÀ½ ¹®ÀåÀ» ¼öÇàÇÏ°í,

      ¸¸Á·ÇÏÁö ¾ÊÀº °æ¿ì¿¡´Â Á¶°Ç½Ä-2¸¦ ó¸®ÇÏ´Â ÇÔ¼ö·Î¼­ ÇÁ·Î±×·¥ ÀÛ¼º½Ã °¡Àå ¸¹ÀÌ ÀÌ¿ëÇÏ´Â Á¶°ÇÇÔ¼öÀÔ´Ï´Ù.

      (°ü°è ¿¬»êÀÚÀÇ ºñ±³ °á°ú°¡ TÀ̸é expr1À» ½ÇÇàÇÏ°í, nilÀ̸é expr2¸¦ ½ÇÇàÇÑ´Ù.)

      ¸¸¾à, ÁöÁ¤ÇÑ ½ÇÇ๮ÀÌ 2°³ ÀÌ»óÀÌ¸é  "if" ÇÔ¼ö´Â ¿¡·¯¸¦ ¹ß»ýÇϸç, 2°³ ÀÌ»óÀÇ ½ÇÇ๮À» ÁöÁ¤ÇÒ ¶§´Â

      "progn" ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.

    (2) »ç¿ë¹ý

      (IF (Test-Expression) Expr1 Expr2)

    (3) ¿¹

       

       (if (= 3 2)

           (setq a "YES")

           (setq a "NO")

       )

       

       

       !a  :  "NO"

       

       (if (= "pnp" "PNP")

           (prompt "P.N.P")

           (prompt "Exit")

       )

       

       

       Exitnil

       

       (if (= 3 (/ 9 3))

           (setq inum "=")

           (setq inum "X")

       )

       

       

        !inum  :  "="

       

       (if (< 1 3)

           (setq nu1 100)

           (setq nu2 200)

           (setq nu3 300)

           (setq nu4 400)

       )

       

       

       : ¿¬»ê °á°ú¿¡ »ó°ü¾øÀÌ nu3ºÎÅÍ´Â ½ÇÇàµÇÁö ¾Ê°í ¹«½ÃµË´Ï´Ù.

       

       (if (= num1 num2)

           (fnum1)

           (fnum2)

       )

       

       

       : ¿¬»ê °á°ú°¡ "T"ÀÌ¸é »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö "funm1"¸¦ ½ÇÇàÇÏ°í,

         "nil"À̸é "funm2"¸¦ ½ÇÇàÇÑ´Ù.

 

 

2. progn

    (1) ±â´É

      ¿©·¯ °³ÀÇ ¹®Àå ¹× ¼ö½ÄÀ» ÇϳªÀÇ ¹®ÀåÀ¸·Î ¹­¾î ó¸®ÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù.

      ÁÖ·Î "IF" ÇÔ¼ö¿Í ÇÔ²² ¾¹´Ï´Ù.

    (2) »ç¿ë¹ý

      (PROGN expr1 expr2 ....)

    (3) ¿¹Á¦

       

       (setq a 10)

       (setq b 10)

       (if (= a b)

           (progn

                (setq a (+ a 10))

                (setq b (+ b 10))

                (setq c (* a b))

           )

           (progn

                (setq a (+ a 20))

                (setq b (+ b 20))

                (setq c (* a b))

           )

       )

       

       

       ½ÇÇ๮ÀÇ ¼ö°¡ µÎ °³ ÀÌ»óÀÌÁö¸¸ "progn"À¸·Î ÀÎÇØ ÇϳªÀÇ ¹®ÀåÀ¸·Î

       Ã³¸®ÇÕ´Ï´Ù.

       µû¶ó¼­, ´ÙÀ½°ú °°Àº °á°ú°¡ ³ª¿É´Ï´Ù.

       

       !a = 20

       !b = 20

       !c = 400

 

 

3. while

    (1) ±â´É

      ÁöÁ¤ Á¶°Ç½ÄÀÌ ¸¸Á·µÇ´Â µ¿¾È Loop³»ÀÇ ¹®ÀåÀ» ¼öÇàÇÏ°í, ¸¸Á·Ä¡ ¾ÊÀ» ¶§¿¡´Â Loop¸¦ Á¾·áÇÏ°í ´ÙÀ½ ¹®ÀåÀ»

      ¼öÇàÇÏ´Â ¹Ýº¹ ÇÔ¼ö

    (2) »ç¿ë¹ý

      (WHILE  (Test-Expression)  expr1  expr2  ....)

    (3) ¿¹Á¦

       

       (setq a 0)

       (setq b 0)

       (while (<= a 100)

              (setq a (+ 1 a))

              (setq b (+ a b))

       )

       

       

       While¸¦ »ç¿ëÇÏ´Â ¾ÆÁÖ ±âº»ÀûÀÎ ÇÁ·Î±×·¥À¸·Î¼­ 1ºÎÅÍ ÁöÁ¤ÇÑ ¼ýÀÚ±îÁö ¶°ÇÏ´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù.

       

     

4. cond(CONDition)

    (1) ±â´É

      ¿©·¯ °³ÀÇ ÇÔ¼ö¸¦ Àμö·Î ¹Þ¾Æµé¿© °¢ Á¶°Ç¿¡ ¸Â´Â ¼ö½ÄÀ» ¼öÇà½ÃÅ°´Â ÇÔ¼ö·Î¼­ C¾ð¾îÀÇ caseÇÔ¼ö¿Í

      ºñ½ÁÇÑ ±â´ÉÀ» °®½À´Ï´Ù.

    (2) Çü½Ä

      (COND (Test-Expr1)  Expr1  (Test-Expr2)  Expr2  ....)

    (3) ¿¹Á¦

     

       

       (cond

           ((<= num 90) (setq hak "A"))

           ((<= num 80) (setq hak "B"))

           ((<= num 70) (setq hak "C"))

           ((<= num 60) (setq hak "D"))

           (t (setq hak "F"))

       )

       

       

       numÀÌ 90º¸´Ù Å©¸é hak¿¡´Â A°¡ ÀúÀåµÇ¸ç ¾Æ¹«·± Á¶°ÇÀ»

       ¸¸Á·ÇÏÁö ¾ÊÀ¸¸é, Áï numÀÌ 60º¸´Ù ÀÛÀ¸¸é hak´Â F°¡ µË´Ï´Ù.

       

  

5. repeat

    (1) ±â´É

      repeat´Â ÁöÁ¤ÇÑ È½¼ö¸¸Å­ ½ÇÇà ºÎºÐÀ» ¹Ýº¹ ¼öÇà½ÃÅ°´Â ÇÔ¼öÀÔ´Ï´Ù.

      ¹Ýº¹ÇØ¾ß Çϴ Ƚ¼ö¸¦ ¾Ë°í ÀÖÀ» °æ¿ì´Â Repeat¸¦ »ç¿ë, ¾Ë ¼ö ¾ø´Â °æ¿ì´Â While¸¦ »ç¿ëÇÏ´Â °ÍÀÌ Æí¸®ÇÕ´Ï´Ù.

      ´Ü, ¹Ýº¹ Ƚ¼ö´Â Á¤¼ö¸¸À» »ç¿ëÇØ¾ß Çϸç, º¯¼ö·Îµµ ÁöÁ¤ÀÌ °¡´ÉÇÕ´Ï´Ù.

    (2) »ç¿ë¹ý

      (repeat Repeat-Number

        (Expression - 1)

        (Expression - 2)

          ¡­

        (Expression -  N)

      )

    (3) ¿¹Á¦

       

       (repeat 100

               (setq a (+ a 1))

               (setq b (+ b a))

       )

       

       

     

     

6. foreach

    (1) ±â´É

      ListÀÇ ¿ä¼Ò ¼ýÀÚ¸¸Å­ ¹Ýº¹ ½ÇÇàÀ» ÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù.

      ¹Ýº¹ ½ÇÇàÇÏ´Â µ¿¾È °¢ ¿ä¼Ò¸¦ ºÐ¸®ÇÏ¿© ÁöÁ¤ÇÑ À̸§¿¡ ´ëÀÔ, µÚÀÇ Ç¥Çö½ÄÀ» ½ÇÇàÇÕ´Ï´Ù.

      ÁöÁ¤ÇØ¾ß ÇÒ ¹Ýº¹ Ƚ¼ö¸¦ ¸ð¸£°Å³ª, ÀÏÁ¤ÇÏÁö ¾ÊÀ» ¶§ »ç¿ëÇϸéÀº ¸Å¿ì Æí¸®ÇÕ´Ï´Ù.

      ¿©·¯ °³ÀÇ ½ÇÇ๮À» ÁöÁ¤ÇÒ ¼ö ÀÖÀ¸¸ç, Áß°£¿¡ Ãâ·Â¹®ÀÌ ¾øÀ¸¸é ÃÖÁ¾ °á°ú¸¸À» Ãâ·ÂÇÕ´Ï´Ù.

      ÃÖÁ¾ °á°ú¸¦ Ãâ·ÂÇÒ ¶§´Â °³ÇàÀÌ µÇÁö ¾ÊÀ¸¹Ç·Î ´ÙÀ½ ¿¹Á¦¿Í °°Àº °á°ú°¡ ³ª¿É´Ï´Ù.

      ¸¶Áö¸·¿¡ °³ÇàÀÌ µÇÁö ¾ÊÀ¸¹Ç·Î ÁÖ·Î ÆÄÀÏó¸®ÇÒ ¶§ »ç¿ëÇϸé Æí¸®ÇÒ °Í °°½À´Ï´Ù.

      ** PerlÀÇ Foreach¿Í ºñ½ÁÇÑ ±â´ÉÀ» °¡Áö°í ÀÖ½À´Ï´Ù.

      ** °°Àº Interpreter ¾ð¾î¶ó¼­ ±×·±Áö CGI¿Í AutoLISPÀº ºñ½ÁÇÑ Á¡ÀÌ ¾ÆÁÖ ¸¹½À´Ï´Ù.

    (2) »ç¿ë¹ý

      (foreach  Name  List  Expression)

    (3) ¿¹Á¦

       

        (setq slist (list 1 2 3 4))

        (foreach sname slist (princ "\n")(princ snmae))

       

       

        1

        2

        3

        44

       

     

 

7. ¿¹Á¦ ÇÁ·Î±×·¥

    (1) While¸¦ »ç¿ëÇØ ÁöÁ¤ÇÑ ¼ö¸¸Å­ ¿øÀ» ±×¸®´Â ÇÁ·Î±×·¥

       

       ; swhile.lsp

       

       (defun c:swhile()

          (prompt " Loaded.....")

          (setq wnum (getint "\n Enter While Number : "))

          (setq point0 (getpoint "\n Enter Center Point : "))

          (setq num 1)

          (while (< num wnum)

                 (setq rnum (* num 100))

                 (command "circle" point0 rnum)

                 (setq num (+ num 1))

          )

          (prompt "\n By PNP")

          (prompt "\n Copyright 2000")

          (princ)

       )

       

       

       Command: (load "c:/swhile")

       C:SWHILE

       Command: swhile

       Loaded.....

       Enter While Number : 10

       Enter Center Point :

       By PNP

       Copyright 2000

       

 

 

    (2) While Áß°£¿¡ ºüÁ®³ª°¡±â

       

       (defun c:swhile()

          (prompt " Loaded..........")

          (setq num 1)

          (setq total 0)

          (while (< num 51)

                 (princ "\n ")

                 (princ num)

                 (princ "th Student,  Enter Score : ")

                 (setq score (getint))

                 (if (< score 0)(setq num 50))   

                 ; numÀÌ µÚ¿¡¼­ Áõ°¡ÇϹǷÎ

                 (if (> score 100)(setq num 50))

                 ; numÀº 51ÀÌ µÊ.

                 (setq total (+ total score))

                 (setq num (+ num 1))

          )

          (setq num (- num 1))

          (setq average (/ total num))

          (princ average)

          (prompt "\n By PNP")

          (princ)

       )

       

       

       ÀÌ ÇÁ·Î±×·¥Àº ÇлýÀÇ Á¡¼ö¸¦ ÀÔ·Â¹Þ¾Æ Æò±ÕÀ»

       ±¸ÇÏ´Â ÇÁ·Î±×·¥À¸·Î À½¼ö¸¦ ÀԷ½ÃÅ°°Å³ª,

       100 ÀÌ»óÀÇ ¼ö¸¦ ÀÔ·ÂÇϸé ÇÁ·Î±×·¥Àº Á¾·áµË´Ï´Ù.

       ´Ü, Çлý ¼ö´Â 50¸íÀ¸·Î Á¦ÇÑ.

       

       »¡°£»ö ºÎºÐÀÌ While¸¦ ºüÁ®³ª°¡°Ô ÇÏ´Â ºÎºÐÀÔ´Ï´Ù.

       score°¡ 0º¸´Ù À۰ųª, 100º¸´Ù Å©¸é numÀ» 50À¸·Î

       Áõ°¡½ÃÄÑ ¹ö¸®¹Ç·Î ´ÙÀ½ ·çÇÁ¿¡¼­ WhileÀÇ Á¶°ÇÀ»

       ¸¸Á·ÇÏÁö ¾ÊÀ¸¹Ç·Î While¸¦ Á¾·áÇÏ°Ô µË´Ï´Ù.

       

       ÀÌ ÇÁ·Î±×·¥Àº WhileÀÌ °­Á¦ Á¾·áµÉ ¶§ ÀԷµÈ

       score¿Í num±îÁö ´õÇϹǷΠ°­Á¦ Á¾·áµÉ ¶§ÀÇ À߸ø

       ÀÔ·ÂµÈ score¿Í numÀ» Á¦°ÅÇÏ´Â ºÎºÐÀÌ ÇÊ¿äÇÕ´Ï´Ù.

       Á¦°ÅÇÏÁö ¾ÊÀ¸¸é totalÀ» Ç×»ó 51·Î ³ª´©¾î ¹ö¸®¹Ç·Î

       average°¡ ´ÙÀ½°ú °°ÀÌ ³ª¿É´Ï´Ù.

       

       

       ½ÇÇà °á°ú

       Command: (load "c:/sw")

       C:SWHILE

       Command: swhile

        Loaded..........

        1th Student,  Enter Score : 100

        2th Student,  Enter Score : 95

        3th Student,  Enter Score : 99

        4th Student,  Enter Score : 109

       8

       By PNP

       

 

 

    (3) Repeat¸¦ ÀÌ¿ëÇÑ 1~100±îÁö ÇÕ ±¸Çϱâ

       

       ; srep.lsp 

       

       (defun c:srep()

          (prompt " Loaded..")

          (setq num 0)

          (setq no 0)

          (repeat 100

                  (setq no (+ no 1))

                  (setq num (+ num no))

          )

          (princ "\n1+2+3~99+100=")

          (princ num)

          (prompt "\n By PNP")

          (princ)

       )

       

       

       Command: (load "c:/srep")

       C:SREP

       Command: srep

        Loaded..

        1+2+3~99+100=5050

        By D.M.Z

       

     

 

    (4) Cond¸¦ ÀÌ¿ëÇÑ

 

 

    (5) Foreach¸¦ ÀÌ¿ëÇÑ ÁÂÇ¥ °ª ºÐ¸®Çϱâ

 

 

 

°ü°è ¿¬»êÀÚ

ÃÖÃÊ ÀÛ¼ºÀÏ 2000.02.18

¹®ÀÚ¿­ ÇÔ¼ö

ÃÖÁ¾ ¼öÁ¤ÀÏ 2006.05.02