• 파일시티 이벤트
  • LF몰 이벤트
  • 서울좀비 이벤트
  • 탑툰 이벤트
  • 닥터피엘 이벤트
  • 아이템베이 이벤트
  • 아이템매니아 이벤트

[프로그래밍] haskell로 구현한 계산기

*제*
개인인증판매자스토어
최초 등록일
2005.06.23
최종 저작일
2005.06
6페이지/ 한컴오피스
가격 3,000원 할인쿠폰받기
다운로드
장바구니

소개글

functional programming 언어인
haskell이 설치된 환경에서 실행하면 된다
haskell에서 window GUI를 사용할 수 있는
SOEGraphics 를 이용하여 윈도우 창을 띄운다

functional programming 언어인
haskell의 소스를 구하기란 쉽지 않다

haskell의 recursive 한 function들을 사용하여
윈도우용으로 계산기를 구현하였고
눌려진 효과를 내기 위한 방법도 제공한다

목차

1. 주제의 선정 이유
2. 프로그램의 구현
3. 주제를 구현하기 위해 수행한 작업
4. 자신의 프로그래밍 능력에 대한 평가
5. Haskell과 FP에 대한 평가
6. 계산기 소스 코드

본문내용

2. 프로그램의 구현
가. 프로그램의 구성
But data type을 새롭게 만들어서 숫자버튼과 연산자 버튼들에 대한 정보 (버튼의 위치, 크기, 버튼이 가진 값)를 저장하고 있다. Exp data type도 만들었는데 이것은 숫자버튼과 연산자 버튼의 입력에 따라 결과 값들을 저장하고, 마지막으로 입력한 연산자를 저장하기 위해 사용된다. main함수는 윈도우 핸들을 하나 얻어서 버튼과 결과출력 창(led)을 그리고 loop 함수를 불러 계산기 프로그램을 시작하게 된다. loop문은 Window 핸들과 Exp data type을 파라미터로 받아서 키 입력에 따른 Exp의 변화로서 값을 led란에 출력하고 버튼의 변화도 그려준다. doing 함수는 한 개의 버튼이 입력되었을 때 어떤 버튼인지 알고 수행을 하는 함수인데 연산자 버튼이 눌러지면 Exp의 값에 따른 연산을 하고 그 값을 led란에 그린다. drawOperand와 drawResult는 버튼의 입력에 따라 입력되는 값 또는 결과 값을 led란에 그려주는 함수이다. calculate 함수는 Exp data type의 값을 계산하여 업데이트 된 결과를 새로운 Exp data type에 저장한다. strToDouble, overPointToDouble, underPointToDouble 함수는 모두 Exp에 저장된 스트링 값을 Double로 바꿔주기 위한 것이다. butPress 함수는 버튼들 중에서 어느 버튼이 눌러졌는지 검사해서 알려준다. drawPushCheck 함수와 drawPush 함수는 버튼을 그리는 함수인데 RGB값을 다르게 받음으로써 버튼이 눌러진 효과 눌러지지 않은 효과를 표현할 수 있다. getFont, rgb, ledList, charList, butList에는 프로그램에 필요한 값들을 저장해 놓았다.

<소스 일부분>
6. 계산기 소스 코드
import SOEGraphics
import GraphicsText
import Win32Process

-- 버튼의 정보를 가지는 But data type
-- 입력되는 수와 연산자를 기억하는 Exp data type
data But = But Char Coordinate Side Side
data Exp = Exp String String (Double->Double->Double)
type Coordinate = (Int, Int)
type Side = Int

-- 윈도우 핸들을 생성시켜서 프로그램을 수행한다
main
= runGraphics $
do w <- openWindow "Simple Calculator Ver 0.1" (270,350)
drawInWindow w $ withRGB (RGB 212 208 200)
$ polygon [(0,0),(270,0),(270,350),(0,350)]
drawInWindow w $ withRGB (RGB 98 98 98) $ polygon ledList
drawInWindow w $ polyline ledList
sequence_ [drawPushCheck butList y w rgb1 rgb2 | y <- charList]
loop w (Exp [] [] (+))
closeWindow w

참고 자료

없음
*제*
판매자 유형Bronze개인인증

주의사항

저작권 자료의 정보 및 내용의 진실성에 대하여 해피캠퍼스는 보증하지 않으며, 해당 정보 및 게시물 저작권과 기타 법적 책임은 자료 등록자에게 있습니다.
자료 및 게시물 내용의 불법적 이용, 무단 전재∙배포는 금지되어 있습니다.
저작권침해, 명예훼손 등 분쟁 요소 발견 시 고객센터의 저작권침해 신고센터를 이용해 주시기 바랍니다.
환불정책

해피캠퍼스는 구매자와 판매자 모두가 만족하는 서비스가 되도록 노력하고 있으며, 아래의 4가지 자료환불 조건을 꼭 확인해주시기 바랍니다.

파일오류 중복자료 저작권 없음 설명과 실제 내용 불일치
파일의 다운로드가 제대로 되지 않거나 파일형식에 맞는 프로그램으로 정상 작동하지 않는 경우 다른 자료와 70% 이상 내용이 일치하는 경우 (중복임을 확인할 수 있는 근거 필요함) 인터넷의 다른 사이트, 연구기관, 학교, 서적 등의 자료를 도용한 경우 자료의 설명과 실제 자료의 내용이 일치하지 않는 경우

이런 노하우도 있어요!더보기

찾던 자료가 아닌가요?아래 자료들 중 찾던 자료가 있는지 확인해보세요

  • 함수형 프로그래밍(Clean, F#, Lazy K, Miranda, ML, OCaml, Scala, Scheme, Unlambda) 19페이지
    언어를 구현하려는 움직임이 나타나 Scala · Clojure · F # ... "Thur", "Fri"]목록의 연결은 ++차등는 --요소 추가는 :크기 ... 때문에 대부분의 함수형 언어에서는 함수를 일급 객체로 취급하고, 이론적인 계산
  • 프로그래밍언어 발전사 8페이지
    Haskell은 순수 함수 언어이다. ... 1945년 사이에 독일인 과학자 komard xuse는 전기 기계적인 계전기로부터 ... 관련된 정보와 요구한 결과를 계산해 낼 수 표준화
최근 본 자료더보기
탑툰 이벤트
[프로그래밍] haskell로 구현한 계산기
  • 레이어 팝업
  • 프레시홍 - 특가
  • 프레시홍 - 특가
  • 레이어 팝업
  • 레이어 팝업
  • 레이어 팝업
AI 챗봇
2024년 07월 19일 금요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
9:28 오후
New

24시간 응대가능한
AI 챗봇이 런칭되었습니다. 닫기