목차
1. 주제의 선정 이유
2. 프로그램의 구현
3. 주제를 구현하기 위해 수행한 작업
4. 자신의 프로그래밍 능력에 대한 평가
5. Haskell과 FP에 대한 평가
6. 계산기 소스 코드
2. 프로그램의 구현
3. 주제를 구현하기 위해 수행한 작업
4. 자신의 프로그래밍 능력에 대한 평가
5. Haskell과 FP에 대한 평가
6. 계산기 소스 코드
본문내용
,y), (x+xn,y+yn), (x,y+yn)]
drawInWindow w $ withRGB r1
$ polyline [ (x,y+yn), (x,y), (x+xn,y)]
drawInWindow w $ withRGB r2
$ polyline [ (x+xn+2,y+2), (x+xn+2, y+yn+2), (x+2,y+yn+2)]
font1 <- getFont1
drawInWindow w $ withFont font1 $ withColor Black
$ text (x-10+xn `div` 2, y-8+yn `div` 2) [c]
| otherwise = return ()
-- 계산기에 나타나는 숫자들을 나타내기 위한 폰트
getFont1,getFont2 :: IO Font
getFont1 = createFont (18,20) (0)
False False "Courier New Bold Italic"
getFont2 = createFont (12,20) (0)
False False "Arial Black"
-- 버튼의 그림자 효과를 위한 RGB값
rgb1, rgb2 :: RGB
rgb1 = RGB 255 255 255
rgb2 = RGB 49 49 49
ledList :: [Point]
ledList = [(20,18), (250,18), (250,62), (20,62), (20,18)]
charList = [ '0'..'9'] ++ ['.','=','+','-','*','/','C']
-- 버튼의 정보를 담고 있는 리스트
butList :: [But]
butList = [ But '1' (20,130) 50 40, But '2' (80,130) 50 40,
But '3' (140,130) 50 40, But '4' (20,180) 50 40,
But '5' (80,180) 50 40, But '6' (140,180) 50 40,
But '7' (20,230) 50 40, But '8' (80,230) 50 40,
But '9' (140,230) 50 40, But '0' (20,280) 110 40,
But '.' (140,280) 50 40, But '=' (200,230) 50 90,
But '+' (200,130) 50 90, But '-' (200,80) 50 40,
But '*' (140,80) 50 40, But '/' (80,80) 50 40 ,
But 'C' (20,80) 50 40 ]
drawInWindow w $ withRGB r1
$ polyline [ (x,y+yn), (x,y), (x+xn,y)]
drawInWindow w $ withRGB r2
$ polyline [ (x+xn+2,y+2), (x+xn+2, y+yn+2), (x+2,y+yn+2)]
font1 <- getFont1
drawInWindow w $ withFont font1 $ withColor Black
$ text (x-10+xn `div` 2, y-8+yn `div` 2) [c]
| otherwise = return ()
-- 계산기에 나타나는 숫자들을 나타내기 위한 폰트
getFont1,getFont2 :: IO Font
getFont1 = createFont (18,20) (0)
False False "Courier New Bold Italic"
getFont2 = createFont (12,20) (0)
False False "Arial Black"
-- 버튼의 그림자 효과를 위한 RGB값
rgb1, rgb2 :: RGB
rgb1 = RGB 255 255 255
rgb2 = RGB 49 49 49
ledList :: [Point]
ledList = [(20,18), (250,18), (250,62), (20,62), (20,18)]
charList = [ '0'..'9'] ++ ['.','=','+','-','*','/','C']
-- 버튼의 정보를 담고 있는 리스트
butList :: [But]
butList = [ But '1' (20,130) 50 40, But '2' (80,130) 50 40,
But '3' (140,130) 50 40, But '4' (20,180) 50 40,
But '5' (80,180) 50 40, But '6' (140,180) 50 40,
But '7' (20,230) 50 40, But '8' (80,230) 50 40,
But '9' (140,230) 50 40, But '0' (20,280) 110 40,
But '.' (140,280) 50 40, But '=' (200,230) 50 90,
But '+' (200,130) 50 90, But '-' (200,80) 50 40,
But '*' (140,80) 50 40, But '/' (80,80) 50 40 ,
But 'C' (20,80) 50 40 ]
소개글