자료구조 개념 및 구현
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 |