Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.

Slides:



Advertisements
Similar presentations
Report #5 - due: 4/13 다음 10*5의 희소 행렬 A, B를 고려하라.
Advertisements

9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
데이터 구조 - 소개 순천향대학교 컴퓨터공학과 하 상 호.
컴퓨터 프로그래밍 기초 [Final] 기말고사
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
CHAP 2:순환 순천향대학교 컴퓨터공학과.
Chapter 02 순환 (Recursion).
어서와 Java는 처음이지! 제3장선택과 반복.
공개키 암호화 프로그래밍 전자상거래보안.
P150 문제를 프로그래밍 할 것 Source file (헤더파일포함), 실행화면 (학번_이름_1.txt)
프로그래밍실습 제 11 강.
CHAP 2:순환 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
2007 1학기 11 프로젝트 기초 실습.
보고서 #5(제출기한: 10/14) 다음 문제를 해결하시오.
Tail-recursive Function, High-order Function
쉽게 풀어쓴 C언어 Express 제9장 함수와 변수 C Express.
13. 연산자 오버로딩.
C 프로그래밍 C언어 (CSE2035) (Chap11. Derived types-enumerated, structure, and union) (1-1) Sungwook Kim Sogang University Seoul, Korea Tel:
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
프로그래밍 개요
어서와 C언어는 처음이지 제14장.
어서와 C언어는 처음이지 제15장.
컴퓨터 개론 및 실습 Dept. Computer Eng. Hankuk University of Foreign Studies
프로그래밍 보고서 작성법 순천향대학교 컴퓨터공학과 하 상 호.
Report #3 - due: 4/6 100*100의 2개의 희소 행렬 A, B를 전달 받아서 이들의 덧셈을 구하고, 그 결과의 행렬 C를 반환하는 add_sparse_matrix(A, B, C)를 다음과 같이 작성하라. 희소 행렬은 sparse_matrix 타입으로 표현된다.
CHAP 2:순환.
Quiz #7 다음 수들을 합병 정렬과 퀵 정렬 알고리즘을 이용하여 오름 차순으로 정렬하였을 때, 데이터 이동 회수를 각각 구하라. 여러분은 정렬 과정을 단계별로 보이면서 이동 회수를 추적해야 한다. 단, 퀵 정렬시에 피봇으로 배열의 왼쪽 첫 번째 원소를 선택한다. 5.
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
Chapter 11 함수 활용.
CHAP 2:순환 C로 쉽게 풀어쓴 자료구조 생능출판사 Slide 1 (of 19).
제 1 강.
제 3 강.
보고서 (due 5/8) 다음과 같은 방식으로 문제를 해결하시오. 문제 분석 알고리즘 작성 프로그램 작성 테스트 및 검증
Hanoi Tower.
김선균 컴퓨터 프로그래밍 기초 - 7th : 함수 - 김선균
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
Chapter 08. 함수.
Fitting / Matrix / Excel
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
CHAP 2:순환 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
Fucntion 요약.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
객체기반 SW설계 팀활동지 4.
CHAP 2:순환 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
6장 연습 문제 풀이 학번 : 이름 :조 재한.
함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문
프로그램 개발 방법론 부재 : 연습문제 (6장) 학번: 이름:김치우.
2nd day Indexing and Slicing
데이터 구조 - 소개 순천향대학교 컴퓨터공학과 하 상 호.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
보고서 #2(제출기한: 09/23) 다음 문제를 해결하시오. (7)
Homework #12 (1/2) 프로그램을 작성하고, 프로그램과 실행 결과를 프린트하여 제출한다.
Flow Diagram IV While.
CHAP 2:순환.
Homework #8 (실습 #7) [1/2] 다음을 수행하는 PHP 프로그램을 작성하여 프로그램과 결과물을 프린트하여 제출한다. sin(45º), cos(45º), tan(45º)를 출력하는 프로그램을 작성하시오. 피보나치 수를 구하는 함수 fib($n)을 작성하고,
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
Report #4 (1) (due 4/4) 문제 #1 3개의 막대 A, B, C와 원판 n개를 전달받아 Hanoi 탑 문제를 해결하는데 필요한 원판의 이동 회수를 구하여 반환하는 hanoi_tower(n, A, B, C)를 작성하라. 여기서 원판 n은 막대 A에 쌓여 있고.
프로그래밍 개론 Ⅰ-실습 2장 데이터와 식①.
어서와 C언어는 처음이지 제21장.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
교착 상태 해결 : 교착 상태 탐지 교착 상태 탐지(Deadlock Detection)
Report #2 (기한: 3/16) 데이터 구조 과목의 수강생이 50명이라고 가정한다. 이 학생(학번은 2016????으로 표현됨)들의 중간 시험(0~100), 기말 시험(0~100) 성적을 성적 파일에 작성하라(프로그램을 통해서 또는 수작업으로). 성적 파일을 읽어들여서.
보고서 #4 (1) (제출기한: 10/6) #1 다음 그래프 G에 대해서 답하시오. (2*5 = 10)
SPL-Duino 블록 편집기 이용하기 전류센서 블록 만들기 SPL-Duino 블록 편집기를 실행합니다.
함수 정의, void 자료형 함수 원형선언 함수 호출 변수 영역 규칙 재귀 함수
5. 1 두 수를 입력받아 큰 수를 구하는 순서도를 작성하시오
Presentation transcript:

Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라. 사용자로부터 두 수를 입력받아서 이 두수의 최대 공약수를 구하고자 한다. 분석 챠트를 이용하여 위 문제를 분석하라. I a, b: integer O g: inteter P g = max { r | a % r = 0 and b %r = 0 } E A = 4, b = 24 => g = max {2,4} = 4 A = 6, b = 24 => g = max {2,3,6} = 6

Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라. 두 정수 a, b를 전달받아서, a, b의 최대 공약수를 구하여 반환하는 알고리즘을 순환 버전 gcd_rec과 반복 버전 gcd_iter으로 각각 작성하라. procedure gcd_rec(a, b) // 가정: a> b Parameter a, b: integer if b = 0 then return a else return gcd_rec(b, a%b) endif end gcd_rec procedure gcd_iter(a, b) // 가정: a> b parameter a, b: integer; local tmp: integer; while b <> 0 do tmp <- b; b <- a mod b; a <- t repeat return a; end gcd_iter

Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라. 사용자로부터 두 정수 a, b 를 입력받아서 반환하는 get_data()를 작성하라. void get_data(int *a, int *b) { printf(“input two integers:”); scanf(“%d %d”, a, b); }

Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라. gcd_rec, gcd_iter의 알고리즘을 C 함수로 작성하라. 또한, 이러한 함수를 테스트하는 main()을 작성하고 실행시키고, 그 결과를 검증하라. int main() { int *a, *b, g; get_data(a, b); // input data g = gcd_rec(*a, *b); // print result return 0; }

Report #2 - Solution 문제 #2: 3개의 막대 A, B, C와 원판 n개를 전달받아 Hanoi 탑 문제를 해결하면서 원판의 이동 회수를 구하여 반환하는 hanoi_tower(n, A, B, C)를 작성하라. 여기서 원판 n은 막대 A에 쌓여 있고 이를 B를 이용하여 C로 옮긴다고 가정한다. procedure hanoi_tower(n) parameter n: integer if n = 1 then return 1 else return hanoi_tower(n-1) + 1 + hanoi_tower(n-1) endif end hanoi_tower

Report #2 - Solution 문제 #2: 원판의 개수 n을 입력받아서 hanoi_tower()를 호출하고, 이 함수가 실행되는 시간을 측정하여 다음 테이블을 출력하는 main() 함수를 작성하라. n 이동 회수 실행 시간

Report #2 - Solution 문제 #2: 3)의 테이블로부터 n 대비 이동 회수, 실행시간의 추이도를 보여주는 그래프를 각각 그려라. 또한, 1)의 식으로부터 n 대비 소요 시간을 보여주는 그래프를 그리고, 이러한 그래프를 비교하라.

Report #2 - Solution 문제 #2: Hanoi 탑 문제에서 64개 원판을 옮기는데 걸리는 시간을 계산하라. 단, 한 개의 원판을 옮기는데 걸리는 시간을 1초라고 가정한다. 여러분은 계산 과정을 보여야 한다. Hn이 n개의 원판을 옮기는데 걸리는 시간이라고 가정 H1 = 1 (∵원판이 한 개 있으므로, 한 번이동으로 목적 달성) Hn = Hn-1 + 1 + Hn-1 = 2Hn-1 + 1 (알고리즘으로부터) = 2(2Hn-2 + 1) +1 = 2^2Hn-2 + 2 + 1 = 2^2(2Hn-3 + 1) + 2 + 1 = 2^3Hn-3 + 2^2 + 2 + 1 = … = 2^(n-1)H1 + 2^(n-2) + …. + 1 = 2^(n-1) + 2^(n-2) + … + 1 (∵H1 =1) = 2^n - 1