#!/bin/bash # 2Â÷¿ø ¹è¿À» ½Ã¹Ä·¹ÀÌÆ®. # 2Â÷¿ø ¹è¿Àº ¿(row)À» ¿¬¼ÓÀûÀ¸·Î ÀúÀåÇؼ ±¸ÇöÇÕ´Ï´Ù. Rows=5 Columns=5 declare -a alpha # C ¿¡¼ # char alpha[Rows][Columns]; # ÀÎ °Íó·³. ÇÏÁö¸¸ ºÒÇÊ¿äÇÑ ¼±¾ðÀÔ´Ï´Ù. load_alpha () { local rc=0 local index for i in A B C D E F G H I J K L M N O P Q R S T U V W X Y do local row=`expr $rc / $Columns` local column=`expr $rc % $Rows` let "index = $row * $Rows + $column" alpha[$index]=$i # alpha[$row][$column] let "rc += 1" done # declare -a alpha=( A B C D E F G H I J K L M N O P Q R S T U V W X Y ) # ¶ó°í ÇÏ´Â °Í°ú ºñ½ÁÇÏÁö¸¸ ÀÌ·¸°Ô Çϸé À¢Áö 2Â÷¿ø ¹è¿°°Àº ´À³¦ÀÌ µéÁö ¾Ê½À´Ï´Ù. } print_alpha () { local row=0 local index echo while [ "$row" -lt "$Rows" ] # "¿ ¿ì¼±"(row major) ¼ø¼·Î Ãâ·Â # ¿(¹Ù±ù ·çÇÁ)Àº ±×´ë·Î°í ÇàÀÌ º¯ÇÔ. do local column=0 while [ "$column" -lt "$Columns" ] do let "index = $row * $Rows + $column" echo -n "${alpha[index]} " # alpha[$row][$column] let "column += 1" done let "row += 1" echo done # °£´ÜÇÏ°Ô ´ÙÀ½Ã³·³ ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. # echo ${alpha[*]} | xargs -n $Columns echo } filter () # ¹è¿ÀÇ À½¼ö À妽º¸¦ °É·¯³¿. { echo -n " " # ±â¿ïÀÓ(tilt) Á¦°ø. if [[ "$1" -ge 0 && "$1" -lt "$Rows" && "$2" -ge 0 && "$2" -lt "$Columns" ]] then let "index = $1 * $Rows + $2" # ÀÌÁ¦, ȸÀü(rotate)½ÃÄÑ Ãâ·Â. echo -n " ${alpha[index]}" # alpha[$row][$column] fi } rotate () # ¹è¿ ¿ÞÂÊ ¾Æ·¡¸¦ ±âÁØÀ¸·Î 45µµ ȸÀü. { local row local column for (( row = Rows; row > -Rows; row-- )) # ¹è¿À» µÚ¿¡¼ºÎÅÍ Çϳª¾¿ ó¸®. do for (( column = 0; column < Columns; column++ )) do if [ "$row" -ge 0 ] then let "t1 = $column - $row" let "t2 = $column" else let "t1 = $column" let "t2 = $column + $row" fi filter $t1 $t2 # ¹è¿ÀÇ À½¼ö À妽º¸¦ °É·¯³¿. done echo; echo done # ¹è¿ ȸÀü(array rotation)Àº Herbert Mayer °¡ ¾´ # "Advanced C Programming on the IBM PC"¿¡ ³ª¿Â ¿¹Á¦(143-146 ÂÊ)¿¡¼ # ¿µ°¨À» ¹Þ¾Æ ÀÛ¼ºÇß½À´Ï´Ù(¼Áö»çÇ× Âü°í). } #-----------------------------------------------------# load_alpha # ¹è¿À» Àаí, print_alpha # Ãâ·ÂÇÑ ´ÙÀ½, rotate # ¹Ý½Ã°è ¹æÇâÀ¸·Î 45µµ ȸÀü. #-----------------------------------------------------# # ÀÌ ½ºÅ©¸³Æ®´Â ¿¹Á¦¸¦ À§ÇÑ ¿¹Á¦À̱⠶§¹®¿¡ ¾à°£ ¾î»öÇÑ ¸éÀÌ ÀÖ½À´Ï´Ù. # # µ¶ÀÚ¸¦ À§ÇÑ ¿¬½À¹®Á¦ 1: # ¹è¿À» ÀÐ¾î µéÀÌ°í Ãâ·ÂÇÏ´Â ÇÔ¼ö¸¦ # Á» ´õ ±³À°ÀûÀÌ°í ¿ì¾ÆÇÏ°Ô ´Ù½Ã ÀÛ¼ºÇØ º¸¼¼¿ä. # # ¿¬½À¹®Á¦ 2: # ¹è¿ ȸÀü ÇÔ¼ö°¡ ¾î¶»°Ô µ¿ÀÛÇÏ´ÂÁö ¾Ë¾Æ³» º¸¼¼¿ä. # ÈùÆ®: ¹è¿ÀÇ ¿ªÀ妽ÌÀÌ ÀǹÌÇÏ´Â ¹Ù°¡ ¹»±î¿ä? exit 0