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

[C언어]반복문을 이용한 다이아몬드, 삼각형 그리기 및 함수를 이용한 선분의 기울기 구하기

*장*
개인인증판매자스토어
최초 등록일
2007.04.22
최종 저작일
2007.04
20페이지/ 압축파일
가격 1,500원 할인쿠폰받기
다운로드
장바구니

소개글

1. 선분의 두 좌표를 이용한 기울기 구하기
2. 킬로미터, 마일, 해리를 변환하는 함수
3. 시인을 검색하여 시를 출력하는 함수
4. 정사각형, 직사각형, 삼각형, 다이아몬드를 출력하는 함수



(1) 프로그램 설명
연습문제 6.8은 정사각형, 삼각형, 다이아몬드, 직사각형을 함수를 이용하여 화면에 출력하여 주는 프로그램을 작성하는 문제이다. 여기서 각 도형은 내부가 채워져 있거나 비워져 있어야 하며 이는 유저의 선택에 따라 이루어 지며, X를 이용하여 도형을 나타내어 준다.

(2) 문제해결 접근 방식
1) 정사각형, 직사각형 출력의 문제
정사각형과 직사각형의 경우 가로, 세로가 균일한 모양으로 이루어져 있으므로 규칙적인 방법으로 만들 수 있을 것이다. 내부가 채워져 있는 경우 세로를 기준으로 한 줄씩 가로 크기로 채워 나가면 간단하게 만들 수 있을 것이다. 문제는 내부를 비우는 경우에 발생한다. 내부를 비우는 경우 젤 윗줄과 아랫줄은 채워줘야 하며 중간의 내부만을 비워야 할 것이다. 따라서 중간의 경우 양 사이드만 X를 출력하여 주고 중간은 빈칸을 출력하는 방법이 필요하다. 사각형의 경우 균일하게 빈칸이 출력되므로 가로 크기에서 양 사이드의 두 개의 X를 제외한 만큼 빈칸을 출력하고, 위/아래 줄은 구별하여 X로 채워 주는 방식으로 만들면 될 것이다.

2) 삼각형 출력의 문제
삼각형의 경우 두 가지의 문제점이 있다. 하나는 사이드의 빈칸을 출력해야 하는 것인데, 이 경우 앞부분의 빈칸은 그림에 영향이 있으나, 뒤쪽의 빈칸은 영향이 없기 때문에 생략해도 된다. 앞 칸의 빈칸은 꼭지점 부분에서 최대가 되며, 중간 점을 뺀 가로 사이즈의 반 만큼 출력해주어야 할 것이다. 이때 가로 사이즈는 현재라인을 높이의 역수로 계산하여 주면 간단하게 구할 수 있다. 또한 X로 내부를 채워 주는 것은 총 가로 사이즈에서 빈칸의 개수를 뺀 만큼 출력해 주면 될 것이다. 또 하나의 문제점은 내부가 비어있는 경우 인데, 이때 가장 윗줄과 아랫줄은 사각형과 마찬 가지로 X만 출력하면 되므로 사이드 빈칸은 앞서 설명한 방식으로 출력하고 위/아래 줄은 X만을 출력한다. 중간 부분의 경우 양 사이드만 X를 출력해주고, 내부의 빈칸은 두 개의 X 및 사이드 빈칸의 총 개수를 가로 사이즈에서 뺀 만큼 출력하여 주면 될 것이다.

3) 다이아몬드 출력의 문제
다이아몬드의 경우 삼각형과 역삼각형의 합으로 그릴 수 있다. 삼각형의 경우 앞서 설명한 방식으로 출력하면 되지만, 역삼각형의 경우는 다르다. 역삼각형은 다이어몬드의 중간부분이 두줄로 되지 않도록 하기 위해 첫 줄은 출력하지 않아야 한다. 또한 내부를 채우는 경우는 삼각형과 다르게 현재라인을 역수로 계산하지 않고 0부터 차례대로 거쳐가면서 삼각형 출력때와 동일한 방식에 의하면 될 것이다. 내부가 비어있는 경우도 양 사이드 X를 출력하고, 사이드 빈칸을 출력한 후 총 가로 사이즈에서 두 개의 X에서 빈칸을 뺀 만큼 내부 빈칸을 출력하여 주면 역삼각형을 그릴 수 있을 것이다. 이러한 방식의 삼각형, 역삼각형 그리는 함수를 순차적으로 호출하면 다이아몬드를 그릴 수 있다.


(3) 알고리즘 구현
1) 간략한 알고리즘
위 제시한 문제해결 방식에 의하여 알고리즘을 작성하면, 메인에서 어떤 도형을 그릴지 선택하는 부분이 필요하며, 이는 select변수를 이용하여 수행하게 된다. 그림을 선택하면 내부를 채울 것인지 빈 도형을 출력할 것인지 변수 in에 결과를 받아온다. 이때 in은 각 그림 함수의 파라미터로 쓰여질 것이다. 각 함수가 호출되면 해당하는 그림을 그릴 것이다. 정사각형의 경우 7 by 7, 삼각형의 경우 4 by 7, 다이아몬드의 경우 7 by 7, 직사각형의 경우 4 by 7을 출력한다. 사각형의 경우 두 개의 for문을 이용하여 세로의 길이 만큼 한 줄 씩 출력하며, 내부가 비어있는 경우는 중간 부분에서 내부에 빈칸을 출력한다. 삼각형의 경우 높이의 역순으로 for문을 돌리며, 앞쪽에 빈칸을 현재 첫 for문 카운터의 반만큼 빈칸을 출력하여 주고, 가로 길이 7에서 빈칸을 뺀 만큼 X를 출력한다. 내부를 비워 두는 경우는 첫 줄과 마지막 줄만 X를 모두 출력하고, 중간은 가로 길이에서 X 두 개 및 사이드 빈칸을 뺀 만큼 내부에 빈칸을 출력한다. 다이아몬드의 경우 삼각형을 출력하고, 역삼각형을 출력한다. 이때 역삼각형은 높이의 역순으로 삼각형을 출력하지 않고 정순으로 출력하여 준다. 이와 같은 내용을 알고리즘으로 표현하면 아래와 같다.

ⅰ. select에 도형 선택, in에 내부 내용 선택.

ⅱ. 정사각형의 경우로서 내부를 채울 때는 두 개의 for문을 7만큼 수행하며 X 채움.

ⅲ. 정사각형으로서 내부를 비울 때는 첫 for문을 7만큼 수행하며, 첫 줄 및 마지막 줄은 7 만큼 X 출력, 중간은 사이드만 X출력. 내부는 빈칸 출력.

ⅳ. 삼각형으로서 내부를 채울 때는 첫 for문을 높이의 역순으로 카운터 2만큼 빼면서 수행. 내부의 첫 for문은 빈칸을 현재 외부 for문의 카운터 반 만큼 빈칸 출력. 두 번째 내부 for문은 빈칸을 뺀 만큼 X 출력.

ⅴ. 삼각형으로서 내부를 비울 때는 첫 for문을 높이의 역순으로 카운터 2 만큼 빼면서 수행. 내부의 첫 for문은 빈칸을 현재 외부 for문의 카운터 반 만큼 빈칸 출력. 두 번째 for문은 첫 줄과 마지막 줄의 경우 X를 빈칸 만큼 빼고 출력. 그 외의 경우 사이드 X를 출력하고, 내부에는 두 개의 X 및 사이드 빈칸 수를 7에서 뺀 만큼 빈칸 출력.

ⅵ. 다이아몬드의 경우 삼각형 함수를 호출 후 역삼각형 함수를 호출. 역삼각형은 삼각형 함수에서 첫 for문을 역순으로 감소 시킨 것과 반대로 정순으로 증가 시키면서 연산.

ⅶ. 직사각형의 경우 높이 4, 가로 7만큼 정사각형과 같은 방식으로 연산.

위 제시된 7개의 경우에 따라 플로우 차트를 작성하면 다음과 같다. 다이아몬드와 같은 경우는 삼각형에 역삼각형을 더하기만 하면 되므로 여기서는 역삼각형 출력 플로우 차트만을 작성한다. 각 플로우 차트에서 i, j값은 i는 행을 j는 열을 나타내게 된다.

컴파일 실행환경

C언어

압축파일 내 파일목록

HW6.dsw
HW6.plg
HW6.ncb
HW6.dsp
Session6.cpp
Session6.cpp.bak
HW6.opt
Untitled-3 copy.jpg
session6.hwp
Debug/vc60.idb
Debug/vc60.pdb
Debug/HW6.pch
Debug/HW6.exe
Debug/HW6.pdb
Debug/HW6.ilk
Debug/Session6.obj

참고 자료

experiments in computer science - C version -
*장*
판매자 유형Bronze개인인증

주의사항

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

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

파일오류 중복자료 저작권 없음 설명과 실제 내용 불일치
파일의 다운로드가 제대로 되지 않거나 파일형식에 맞는 프로그램으로 정상 작동하지 않는 경우 다른 자료와 70% 이상 내용이 일치하는 경우 (중복임을 확인할 수 있는 근거 필요함) 인터넷의 다른 사이트, 연구기관, 학교, 서적 등의 자료를 도용한 경우 자료의 설명과 실제 자료의 내용이 일치하지 않는 경우
최근 본 자료더보기
탑툰 이벤트
[C언어]반복문을 이용한 다이아몬드, 삼각형 그리기 및 함수를 이용한 선분의 기울기 구하기
  • 레이어 팝업
  • 프레시홍 - 특가
  • 프레시홍 - 특가
  • 레이어 팝업
  • 레이어 팝업
  • 레이어 팝업
AI 챗봇
2024년 07월 18일 목요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
8:52 오후
New

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