PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로....
Transcript of PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로....
![Page 1: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/1.jpg)
C 전처리기와 C 라이브러리
16
1
Section 1Section 2Section 3
C 전처리기
C 라이브러리함수 , 매크로
![Page 2: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/2.jpg)
2
무엇을학습할까요?
C 전처리기
C 라이브러리
문수, 매크로
실전 프로젝트(연습문제 풀이, 총 7 문제)
![Page 3: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/3.jpg)
3
기초다지기
#include <stdio.h>#include “c:\\work\\c\\userHeaderFile.h”#define PAI 3.14
![Page 4: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/4.jpg)
사용하기를 원하는 전처리기 정의가 들어 있는 헤더 파일을 작성하라.01
4
프로그래밍 연습 문제 p911
![Page 5: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/5.jpg)
두 수의 조화평균은 두 수의 역수를 취하고,
두 역수의 평균을 구한 후,
다시 그 결과의 역수를 취하여 얻는다.
#define 지시자를 사용하여 이 연산을 수행하는 매크로 함수를 정의하라.
그 매크로를 테스트하는 간단한 프로그램을 작성하라.
프로그래밍 연습 문제
02
5
p911
![Page 6: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/6.jpg)
프로그래밍 연습 소스 02
6
![Page 7: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/7.jpg)
프로그래밍 연습 소스 02
7
![Page 8: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/8.jpg)
프로그래밍 연습 문제
03 극좌표계는 어떤 벡터를 크기와, x축에서 그 벡터까지 시계 반대 방향으로
잰 각도로 나타낸다.
같은 벡터를 직각좌표계에서는 x 성분과 y 성분으로 나타낸다
(그림 16.3 참조). 어떤 벡터의 크기와 각도(단위는 ̊ 단위)를 읽고,
x 성분과 y 성분으로 표시하는 프로그램을 작성하라.
관련 표현식은 다음과 같다.
x = r cos A
y = r sin A
극좌표 값들을 가지는 구조체를 취하고, 직각좌표계의 값들을 가지는 구조체
를 리턴하는 변환 함수를 작성하라.
(원한다면 그러한 구조체들을 가리키는 포인터를 사용해도 좋다.)
8
p911
![Page 9: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/9.jpg)
프로그래밍 연습 소스 03
9
![Page 10: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/10.jpg)
프로그래밍 연습 소스 03
10
![Page 11: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/11.jpg)
프로그래밍 연습 소스 03
11
![Page 12: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/12.jpg)
프로그래밍 연습 소스 03
12
![Page 13: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/13.jpg)
ANSI 라이브러리는 다음과 같은 서술의 clock() 함수를 제공한다.
#include <time.h>
clock_t clock(void);
여기서, clock_t는 time.h에 정의되어 있는 데이터형이다.
이 함수는 시스템에 종속적인 단위로 주어지는 프로세서 시각을 리턴한다.
(이 함수는 프로세서 시각을 사용할 수 없거나 나타낼 수 없으면 -1을 리턴
한다.)
마찬가지로 time.h에 정의되어 있는 CLOCKS_PER_SEC는,
초당 프로세서 시각 단위의 개수이다.
프로그래밍 연습 문제
04
13
번에 있는 설명을 참조하라.
p912
![Page 14: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/14.jpg)
그러므로 clock()의 두 리턴값의 차를 CLOCKS_PER_SEC로 나누면,
두 호출 사이에 경과된 시간을 초 단위로 알 수 있다.
나누기 전에 그 값들을 double형으로 캐스트하면
, 1초 미만의 값도 얻을 수 있다.
원하는 만큼의 시간 지연을 나타내는 double형 전달인자를 취하고,
그 시간이 경과할 때까지 루프를 실행하는 함수를 작성하라.
그 함수를 테스트하는 간단한 프로그램을 작성하라.
프로그래밍 연습 문제
04
14
번에 있는 설명을 참조하라.
p912
![Page 15: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/15.jpg)
프로그래밍 연습 소스 04
15
![Page 16: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/16.jpg)
프로그래밍 연습 소스 04
16
![Page 17: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/17.jpg)
int형 원소들을 가지는 배열의 이름, 배열의 크기,
선택할 원소 개수를 세 개의 전달인자로 사용하는 함수를 작성하라.
그 함수는 지시된 개수만큼의 원소들을 배열에서 무작위로 선택하여
출력한다.
배열 원소들은 한 번 이상 선택될 수 없다.
(이것으로 로또복권 추첨이나 배심원단 선정을 시뮬레이션 할 수 있다.)
또한, 사용하는 컴파일러가 ‘12장: 저장 클래스, 연계, 메모리 관리’에서
설명했던 time()이나 이와 비슷한 함수를 사용할 수 있다면, 그 결과를
srand()와 함께 사용하여, rand() 난수 발생기를 초기화하라.
간단한 프로그램을 작성하여 함수를 테스트하라.
프로그래밍 연습 문제
05
17
p912witch를 사용하여 연습
04
를 다시 작성하라.
![Page 18: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/18.jpg)
프로그래밍 연습 소스 05
18
![Page 19: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/19.jpg)
프로그래밍 연습 소스 05
19
![Page 20: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/20.jpg)
프로그래밍 연습 소스 05
20
![Page 21: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/21.jpg)
프로그래밍 연습 소스 05
21
![Page 22: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/22.jpg)
double형의 배열 대신에 struct names형의 원소들을 가지는 배열을
사용하도록 리스트 16.15를 수정하라.
더 적은 원소 개수를 사용하고, 적당한 이름들을 사용하여
그 배열을 명시적으로 초기화하라.
프로그래밍 연습 문제
06
22
06p912
![Page 23: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/23.jpg)
23
프로그래밍 연습 소스 06
![Page 24: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/24.jpg)
24
프로그래밍 연습 소스 06
![Page 25: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/25.jpg)
25
프로그래밍 연습 소스 06
![Page 26: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/26.jpg)
26
프로그래밍 연습 소스 06
![Page 27: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/27.jpg)
다음은 가변 전달인자 함수를 사용하는 프로그램의 일부분이다.
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
void show_array(const double ar[], int n);
double * new_d_array(int n, ...);
int main(void)
{
..........
return 0;
}
프로그래밍 연습 문제
07
27
p912
![Page 28: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/28.jpg)
new_d_array() 함수는 하나의 int형 전달인자와,
가변 개수의 double형 전달인자들을 사용한다.
이 함수는 malloc()에 의해 할당된 메모리 블록을 가리키는 포인터를\
리턴한다.
int형 전달인자는 동적 배열에 들어 있는 원소들의 개수를 나타낸다.
double형 값들은 그 원소들을 초기화하는 데 사용된다.
첫 번째 값이 첫 번째 원소에, 두 번째 값이 두 번째 원소에 대입된다.
나머지 값들도 이런 식으로 대입된다.
show_array()와 new_d_array() 함수에 대한 코드를 작성하여,
이 프로그램을 완성하라.
프로그래밍 연습 문제
07
28
p912
![Page 29: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/29.jpg)
29
프로그래밍 연습 소스 07, C99 표준의 va_copy() 제공하지 않음(건너뜀)
![Page 30: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/30.jpg)
30
프로그래밍 연습 소스 07, C99 표준의 va_copy() 제공하지 않음(건너뜀)
![Page 31: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/31.jpg)
31
프로그래밍 연습 소스 07, C99 표준의 va_copy() 제공하지 않음(건너뜀)
![Page 32: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/32.jpg)
32
프로그래밍 연습 소스 07, C99 표준의 va_copy() 제공하지 않음(건너뜀)
![Page 33: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/33.jpg)
33
프로그래밍 연습 소스 07, C99 표준의 va_copy() 제공하지 않음(건너뜀)
![Page 34: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/34.jpg)
KeyPoint 핵심개념
#include <stdio.h>#include “c:\\work\\c\\userHeaderFile.h”#define PAI 3.14
![Page 35: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/35.jpg)
다음 강의 내용
제 17장 고급 데이터 표현, 연습문제
이번학습에이어!
![Page 36: PowerPoint 프레젠테이션 - WithCS · -1을리턴 한다.) 마찬가지로. time.h에정의되어있는CLOCKS_PER_SEC는, 초당프로세서시각단위의개수이다. 프로그래밍연습문제](https://reader033.fdocuments.net/reader033/viewer/2022042414/5f2eb9da396ceb777224d585/html5/thumbnails/36.jpg)
Thank you !
36