[프로그래밍] [C언어]함수를 이용한 삼각형, 사각형, 다이아몬드 출력 프로그램

  • 등록일 / 수정일
  • 페이지 / 형식
  • 자료평가
  • 구매가격
  • 2007.04.29 / 2019.12.24
  • 10페이지 / fileicon zip (압축파일)
  • 평가한 분이 없습니다. (구매금액의 3%지급)
  • 900원
다운로드장바구니
Naver Naver로그인 Kakao Kakao로그인
[프로그래밍] [C언어]함수를 이용한 삼각형, 사각형, 다이아몬드 출력 프로그램
하고 싶은 말
함수를 이용하여 삼각형 사각형 다이아몬드를 출력하는 프로그램
내부가 비어있거나 꽉찬 도형 출력.
본문내용
(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는 열을 나타내게 된다.
자료평가
    아직 평가한 내용이 없습니다.
회원 추천자료
  • [5일 합격] 2024년 컴퓨터활용능력 1급 필기 요약서
  • 이용해서 파일을 전송하고자 할때 텍스트 파일은 (ASCⅡ 모드)로, 그림파일은 (Binary 모드)로 전송þ EBCDIC 코드- 최대 256개의(64개) 문자 표현 가능- 14 -þ 절차지향 언어- BASIC, Pascal, C언어※ 객체 지향 언어 : JAVA, C++※ JAVA : C++ 언어를 기반으로 개발됨þ 객체지향 언어의 특징- 상속성, 캡슐화(은닉화), 추상화, 다형성,오버로딩þ 객체지향 프로그래밍- 소프트웨어의 재사용과 유지 보수가 용이하여 프로그램의 개발 시간을 단축할 수있음þ 비주

  • [전기전자] 4족보행로봇의 하드웨어 제작과 걸음새 구현
  • c1,a2,b2,c2,a3,b3,c3,a4,b4,c4 를 구하는 함수이다.이 함수에 몸통 중심에서의 좌표를 각각의 다리 중심의 좌표로 변환하는 함수와 inverse kinematics를 구하는 함수가 연결되어 있다.3) leg4angletoduty(a1,b1,c1,a2,b2,c2,a3,b3,c3,a4,b4,c4,&dutya1,&dutyb1,&dutyc1,&dutya2,&dutyb2,&dutyc2,&dutya3,&dutyb3,&dutyc3,&dutya4,&dutyb4,&dutyc4);이 함수는 구한 모터의 각도를 10~190 사이의 duty값을 변환시키는 함수이다.2.3.3.2. 196보드의 ROM 에 load한 프로그램196보드의 C compiler가 acos, sqrt와 같은 수

  • 멀티미디어 프로그램 활용을 통한 수업의 질 향상
  • 프로그램(CAI)보유현황번호학년프 로 그 램 명개 발 언 어비 고11일차방정식의 풀이EBASIC21정수의 뎀셈과 뺄셈31식의 값과 계산41뿔의 부피51정수의 곱셈과 나눗셈C61기수법(1)71구의 부피와 겉넓이C81삼각형의 합동조건GREAT91입체도형의 겉넓이와 부피KAS102일차부등식의 풀이EBASIC112연립방정식의 풀이122지수법칙(1)QBASIC132일차함수의 그래프(절편과 기울기)EBASIC142유리수의 덧셈과 뺄셈KAS152다항식의 곱셈과 나눗셈D

  • [컴공]C++강좌 총정리
  • C++을 공부 하시는 분들께 도움이 되고자 C++ 강좌를시작할까 합니다.부족한 면이 있이나 먼저 배운 자로서 지금 시작하는 분들을도우려는 마음으로 강좌를 시작하려 합니다.많은 회원님들의 참여가 있기를 기원하면서 시작할까 합니다.C++ 강좌1 -> C++ 언어의 기초< 97.12.16 >>>> 1. C 와 C++ 이 다른 점- C 에서는 프로그램을 작성할때 거의 대부분 를 포함시켰었으나 C++ 에서는 을 사용한다.- 입출력 함수로 애용되던 printf(), scanf()대신 c

  • [수학교육] GSP활용을 통한 학생의 기하사고 수준발달에 관한 연구
  • 이용한 기하 탐구, 경문사김미정(1994), van Hiele 이론에 의한 중학생들의 기하적 사고 수준에 관한 연구, 이화여자대학교 교육대학원 석사학위 논문강현수(2003), van Hiele 이론을 바탕으로 GSP를 활용한 학습자료 개발 연구, 단국대학교 교육대학원 석사학위 논문곽효정(2003), 실업계 고등학교에서의 GSP를 활용한 기하 교수-학습 방안 연구, 여수대학교 교육대학원 석사학위 논문허영주(1992), 컴퓨터 프로그래밍 학습이 수학적 문제해결력에 미치는 효과에

오늘 본 자료 더보기
  • 오늘 본 자료가 없습니다.
  • 저작권 관련 사항 정보 및 게시물 내용의 진실성에 대하여 레포트샵은 보증하지 아니하며, 해당 정보 및 게시물의 저작권과 기타 법적 책임은 자료 등록자에게 있습니다. 위 정보 및 게시물 내용의 불법적 이용, 무단 전재·배포는 금지됩니다. 저작권침해, 명예훼손 등 분쟁요소 발견시 고객센터에 신고해 주시기 바랍니다.
    사업자등록번호 220-06-55095 대표.신현웅 주소.서울시 서초구 방배로10길 18, 402호 대표전화.02-539-9392
    개인정보책임자.박정아 통신판매업신고번호 제2017-서울서초-1806호 이메일 help@reportshop.co.kr
    copyright (c) 2003 reoprtshop. steel All reserved.