Fascination
article thumbnail

자료구조 개념 및 구현

Chapter 1.  자료구조 개요 - 연습문제


 

Q1. 알고리즘이 성립되기 위한 조건은 무엇인가?

- 명시적 입력은 없어도 된다

- 하나 이상의 출력이 있어야 한다

- 모호하지 않은 명령문으로 표현되어야 한다

- 유한한 수의 명령어 실행 이후에 종료되어야 한다

 

Q2. 알고리즘과 일반 프로그램과의 차이점은 무엇인가?

- 프로그램은 개별적 기능을 지칭하고, 알고리즘은 그 프로그램을 처리하는 절차이다

 

Q3. 소프트웨어 개발 주기를 적고 블랙박스 시험과 화이트박스 시험을 각각 설명하시오

- 소프트웨어 개발 주기: 요구사항 → 분석 → 설계 → 검증

- black box: 입력 값으로부터 발생하는 출력 값을 보고 정확도를 판단

- white box: 프로그램 내부 루틴을 포함하여 오류를 검사

 

Q4. 소프트웨어 시스템 설계에 사용되는 상향식 방법과 하향식 방법을 각각 설명하시오

- 상향식: 기본 단위들을 조합하여 중간 단위의 서브 시스템을 구축하고 이 서브 시스템을 다시 결합하여 최종적인 목표 시스템을 구축해나가는 방식

- 하향식: 프로젝트 최상위 목표에서부터 출발하여 필요한 하위 세부 모듈들을 구성하는 방법

 

Q5. 프로그램 1.3의 팩토리얼 예제에서 1부터 100까지의 팩토리얼이 올바르게 계산되도록 프로그램을 수정하시오

 

[코드]

#include<stdio.h>

void factorial(int n);

int main() {
	factorial(100);
}

void factorial(int n) {
	int i, j;
	double total;

	for (i = 2; i <= n; i++) {
		total = 1;
		for (j = 2; j <= i; j++) {
			total = total * j;
		}
		printf("%d! = %.0f\n", i, total);
	}
}

 

[실행결과]

* 오버플로우 문제를 해결하기 위해 total 변수의 자료형을 double로 변경해주었음

* 실수형이므로 %.0f로 포맷형식을 지정하면 소수점 빼고 값을 출력할 수 있음

 

'Study > Data Structure' 카테고리의 다른 글

[DS] Pointer (포인터)  (0) 2021.08.25
[DS] 구조체  (0) 2021.08.25
[DS] Huffman Coding Tree (허프만 코딩 트리)  (0) 2021.08.25
[DS] 소수 찾기  (0) 2021.08.25
[DS] Factorial (팩토리얼)  (0) 2021.08.25
profile

Fascination

@euna-319

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!