C 언어와 프로그래밍 개요
|
|
- 두나 곡
- 5 years ago
- Views:
Transcription
1 st 프로그래밍입문 (1) 6 장. 함수 박종혁교수 서울과학기술대학교컴퓨터공학과 UCS Lab Tel: jhpark1@seoultech.ac.kr
2 목차 함수의개념 함수의필요성 함수의종류 함수의기본 함수의정의 함수의호출 함수의선언 지역변수와전역변수 지역변수 전역변수 변수의영역규칙 표준 C 라이브러리함수 2
3 함수란 특정기능을제공하는일련의코드를묶어서이름을붙인것 일종의블랙박스 전달하는인자의의미와호출결과만알면된다 3
4 함수란 하향식프로그래밍기법 프로그램은하나이상의함수로구성됨 함수정의 함수가수행할일을기술한 C 코드 함수정의의일반적인형식 type function_name( parameter list ) declarations statements 4
5 함수의필요성 5
6 함수를사용할때의장점 코드가중복되지않으므로간결하고알아보기쉽다 한번작성해둔코드를여러번사용하므로코드의재사용성이높다 기능위주로함수를작성해서사용하므로프로그램의모듈화가증대된다 함수코드를수정하더라도함수를호출하는부분은수정할필요가없으므로프로그램을유지보수하기쉽다 6
7 함수의종류 7
8 함수의요건 함수의정의 (definition) : 함수가수행할내용을기술 함수의호출 (call) : 이미정의된함수를사용 함수의선언 (declaration) : 사용될함수에대한정보를미리제공 8
9 함수의정의 9
10 함수의실행과정 함수는호출하기전에정의되어있어야한다 다른함수가먼저있어도프로그램은항상메인함수부터시작된다 10
11 함수의실행과정 메인함수의실행중에다른함수를호출하면그때함수가실행된다 함수가호출될때전달인자는매개변수에복사된다 11
12 함수의실행과정 함수가실행을마치고리턴할때는제어와함께리턴값도돌려준다 함수가리턴하는값은복사되어임시기억공간에저장되며, 이값은따로저장하지않으면버려지므로다른변수에저장해서사용한다 int res; //sum 함수가리턴하는값이 int 형이므로 int 형변수를선언한다. res = sum(10,20); //sum 함수가리턴하는값을저장한다. 12
13 제어의흐름예제 #include <stdio.h> int test(int); int main(void) int b, a; int test(int c) c = c + 10; return 1; a = 5; b = test(a); printf("test is %d", b); return 0; int printf(... )
14 제어의흐름 #include <stdio.h> int test(int); int main(void) int b, a; int test(int c) c = c + 10; return 1; a = 5; b = test(a); printf("test is %d", b); return 0; int printf(... )
15 제어의흐름 #include <stdio.h> int test(int); int main(void) int b, a; int test(int c) c = c + 10; return 1; a = 5; b = test(a); printf("test is %d", b); return 0; int printf(... )
16 제어의흐름 #include <stdio.h> int test(int); int main(void) int b, a; int test(int c) c = c + 10; return 1; a = 5; b = test(a); printf("test is %d", b); return 0; int printf(... )
17 제어의흐름 #include <stdio.h> int test(int); int main(void) int b, a; int test(int c) c = c + 10; return 1; a = 5; b = test(a); printf("test is %d", b); return 0; int printf(... )
18 제어의흐름 #include <stdio.h> int test(int); int main(void) int b, a; int test(int c) c = c + 10; return 1; a = 5; b = test(a); printf("test is %d", b); return 0; int printf(... )
19 제어의흐름 #include <stdio.h> int test(int); int main(void) int b, a; int test(int c) c = c + 10; return 1; a = 5; b = test(a); printf("test is %d", b); return 0; int printf(... )
20 제어의흐름 #include <stdio.h> int test(int); int main(void) int b, a; int test(int c) c = c + 10; return 1; a = 5; b = test(a); printf("test is %d", b); return 0; int printf(... )
21 함수의리턴형 함수가처리결과로리턴하는값의데이터형 함수가처리결과로리턴하는값이없을때는 void 라고적어준다 함수는반드시하나의값만리턴할수있다 21
22 함수의이름 (1/2) 어떤일을하는함수인지명확하게알수있는이름을사용한다 식별자를만드는규칙에따라서정해야한다 일관성있는이름을사용하는것이좋다 22
23 함수의이름 (2/2) 서로다른함수가같은이름을사용할수없다 명명규칙 (Naming Convention) 식별자로사용되는이름을정할때적용되는규칙 프로그래머가직접자신만의명명규칙을정하고따르면코드의가독성을높일수있다 23
24 매개변수목록 (1/2) 매개변수 (parameter) 함수를호출한곳에서함수안으로전달되는값을보관하기위한변수 인자, 인수 (argument) 함수를호출할때, 실제로전달되는값 24
25 매개변수목록 (2/2) 매개변수의개수에는제한이없다 매개변수가없을때는 void 를써주는데, 이때의 void 는생략할수있다 함수를정의할때, 매개변수의데이터형을생략하거나매개변수의이름을생략하면컴파일에러가발생한다 25
26 함수의내용 함수의정의는헤더 (header) 와바디 (body) 로구성된다 26
27 함수헤더 헤더 함수정의에서첫번째여는중괄호의앞부분 type function_name(parameter list) type - 함수가리턴하는값의형 - 컴파일러는필요하다면, 함수의리턴값을이 type 으로변환함 - 이것이 void 이면리턴하는값이없다는것을나타냄 parameter list - 이함수가가지는인자의목록 - 이함수를호출할때에는이 list 에맞게호출해야함 - 이것이 void 이면인자를갖지않음을나타냄 27
28 함수몸체 몸체 함수정의에서중괄호사이에있는문장들 예제 int factorial(int n) /* header */ /* body starts here */ int i, product = 1; for (i = 2; i <= n; ++i) product *= i; return product; 28
29 리턴값과매개변수가없는함수 리턴형과매개변수목록을 void 로지정한다 void 형의함수를호출하면정해진코드를수행하고, 함수의끝을만나면리턴한다 29
30 리턴값은없고매개변수만있는함수 (1/2) 선그리는기능 30
31 리턴값은없고매개변수만있는함수 (2/2) count 개의정수를입력받아합계를구해서출력하는함수 31
32 리턴값과매개변수가있는함수 리턴형이있는함수에서 return 문을생략하면안된다 num 팩토리얼을구하는함수 원의면적을구하는함수 32
33 기존의코드로부터함수를정의하는과정 어떤내용을어떻게만들것인가? 33
34 기존의코드로부터함수를정의하는과정 어떤내용을어떻게만들것인가? 34
35 기존의코드로부터함수를정의하는과정 35
36 처음부터함수를정의하는과정 36
37 함수의호출 이미만들어진함수를불러쓰는것 함수이름다음에 ( ) 를쓰고, ( ) 안에함수의인자를써준다 함수를호출할때넘겨준인자가매개변수로전달된다 37
38 리턴값과매개변수가없는함수의호출 hi(); 처럼함수이름다음에빈괄호를적어준다 ( ) 가없으면함수호출이아니다 38
39 예제 : 리턴값과매개변수가없는함수의사용예 39
40 리턴값은없고매개변수만있는함수의호출 40
41 예제 : 매개변수가있는 draw_line 함수의사용예 41
42 인자전달시주의사항 ( ) 안에함수의인자를콤마 (,) 로나열한다 함수호출시넘겨준인자는함수의매개변수로순서대로전달된다 매개변수의데이터형과같은형의값을인자로전달해야한다 인자와매개변수의데이터형과일치하지않으면형변환해서전달한다 인자와매개변수의순서와개수가일치해야한다 매개변수의의미에맞게순서대로인자를전달해야한다 char 형으로형변환 인자와매개변수의개수가다르므로컴파일에러 인자의순서가잘못된경우 42
43 예제 : 매개변수가있는 print_sum 함수의사용예 43
44 리턴값이없는함수호출시주의사항 리턴형이 void 형인함수는리턴값이없으므로수식이아니다 수식이사용되어야하는곳에리턴값이없는함수호출은사용할수없다 44
45 리턴값과매개변수가있는함수의호출 (1/2) 함수의리턴값은임시값이므로사용하지않으면사라진다 함수의리턴값은변수에저장할수도있고, 다른수식의일부분이나다른함수호출의인자로사용할수있다 45
46 리턴값과매개변수가있는함수의호출 (2/2) 46
47 예제 : get_factorial 함수의사용예 47
48 예제 : 원의면적을구하는 get_area 함수사용예 48
49 인자전달과정의의미 49
50 예제 : 두정수의최대공약수를구하는 get_gcd 함수의사용예 50
51 함수호출시주의사항 (1/3) 함수의인자도수식이며, 항상인자의값을먼저평가한다 51
52 예제 : get_max 함수의사용예 52
53 함수호출시주의사항 (2/3) 인자의개수와데이터형은매개변수와일치해야한다 53
54 함수호출시주의사항 (3/3) 함수는이름으로구분한다 같은이름의함수를여러번정의할수없다 54
55 함수의선언 함수가정의된위치에상관없이호출하려면함수의선언이필요하다 함수의리턴형, 이름, 매개변수에대한정보를미리알려준다 함수의원형 (prototype) 함수의시그니쳐 (signature) 55
56 함수선언문 56
57 함수선언문의위치 57
58 예제 : draw_line, get_area 함수의선언 58
59 선언 / 정의되지않은함수의호출 59
60 main 함수앞에함수정의를할경우선언필요없음 - 단, 많은함수정의를할경우프로그램가독성저해우려 60
61 지역변수와전역변수 지역변수 (local variable) : 함수나블록안에선언되는변수 전역변수 (global variable) : 함수밖에선언되는변수 61
62 지역변수 ANSI C 에서는지역변수는블록의시작부분에선언해야한다 C99 에서는원하는위치에지역변수를선언할수있다 지역변수가선언된위치에따라지역변수의사용범위가결정된다 62
63 지역변수의생성과소멸 함수안에선언된지역변수 함수가호출되는횟수만큼생성되고소멸된다 void dummy() 함수호출시 매번다시생성 int y = 456; printf("y = %d\n", y); y--; 함수리턴시소멸 int main(void) int i; for (i = 0; i < 3; i++) dummy(); y = 456을 3번출력 반복문의블록안에선언된지역변수 반복문이수행되는횟수만큼생성되고소멸된다 for (i = 0; i < 3; i++) 각반복회차마다 int x = 123; 매번다시생성 printf("x = %d\n", x); x++; 블록의끝을만나면소멸 x = 123 을 3 번출력 63
64 예제 : 지역변수의생성과소멸과정 void dummy() int y = 456; printf("y = %d\n", y); y--; 감소된 y 는함수리턴시소멸 함수호출시매번다시생성 for 의각반복회차가시작될때마다생성 int main(void) int i; for (i = 0; i < 3; i++) dummy(); for (i = 0; i < 3; i++) int x = 123; printf( x = %d\n, x); x++; 증가된 x 는블록의끝을만나면소멸 64
65 함수의매개변수 함수의매개변수도지역변수다 함수가호출될때생성되고함수가리턴할때소멸된다 함수안에서함수의매개변수를변경해도함수를호출하는쪽에아무영향도주지않는다 매개변수를변경하는것은의미없다 void double_it(int num) num *= 2; int main(void) int x = 5; 함수호출후 x는 double_it(x); 변경되지않는다. printf("x = %d\n", x); x = 5 출력 int double_this(int num) return num * 2; 함수를호출하는 쪽으로전달 int main(void) 함수의리턴값을 x에받아온다. int x = 5; x = double_this(x); printf( x = %d\n, x); x = 10 출력 65
66 예제 : 지역변수로서의매개변수 66
67 지역변수의사용범위 서로다른함수에서같은이름의변수를선언하면, 이름은같지만서로다른변수가된다 각각의함수는자신안에선언된변수만사용한다 67
68 예제 : 지역변수의사용범위 68
69 전역변수의선언 전역변수는보통소스파일의시작부분에선언한다 전역변수는따로초기화하지않으면자동으로 0 으로초기화된다 69
70 전역변수 전역변수는프로그램이시작될때한번만생성되고, 프로그램이종료될때소멸된다 소스파일의시작부분에전역변수를선언하면, 같은소스파일의모든함수에서전역변수를바로사용할수있다 70
71 예제 : 전역변수의선언및사용 void print_count(void); void increment(void); void decrement(void); int count; // 전역변수선언 int main(void) int i; count = 0; print_count(); for (i = 0; i < 3; i++) increment(); print_count(); for (i = 0; i < 3; i++) decrement(); print_count(); void print_count(void) printf("count = %d\n", count); void increment(void) count++; void decrement(void) count--; 71
72 변수의영역규칙 블록범위가다를때는같은이름의변수를여러번선언할수있다 가까운블록안에선언된변수가우선적으로사용된다 같은이름의지역변수가있을때는전역변수를사용할수없다 전역변수이름앞에 g_ 와같은접두사를사용해서지역변수명과구분한다 72
73 예제 : 변수의영역규칙 void test(void); double x = 0.01; // 전역변수 x int main(void) double x = 0.5; // main의지역변수 x while (1) double x = 1.23; // while 블록의지역변수 x printf("in while block: x = %f\n", x); // x는 1.23 if (x > 1) // x는 1.23 break; printf("in main block: x = %f\n", x); // x 는 0.5 test(); void test(void) x *= 10; // 전역변수 x printf("in test block: x = %f\n", x); 73
74 병렬블록과중첩블록 int a, b;... /* inner block 1 */ float b;... /* int a is known, but not int b */... /* inner block 2 */ float a;... /* int b is known, but not int a */ /* nothing in inner block 1 in known */... 74
75 디버깅을위한블록사용 블록은디버깅을위한목적으로많이사용 코드부분에임시로블록을삽입하면, 프로그램의다른부분에영향을주지않는지역변수를사용할수있음 v 가이상한값을갖는다고가정 /* debugging starts here */ static int cnt = 0; printf("*** debug : cnt = %d v = %d\n", ++cnt, v); 75
76 메모리영역 76
77 메모리영역 push 동작 pop 동작 77
78 재귀함수 함수내부에서자기자신의함수를다시호출 ( 재귀호출 ) 하는순환호출함수 복잡한알고리즘을간략하게구현가능 재귀는각호출을위한인자와변수를스택에쌓아두어관리하기때문에많은시간과공간을요구함 즉, 재귀를사용할때에는비효율성을고려해야함 그러나일반적으로재귀적코드는작성하기쉽고, 이해하기쉬우며, 유지보수하기가쉬움 78
79 재귀함수 단순한재귀적루틴은일반적인패턴을따름 재귀의일반적인패턴에서는기본적인경우와일반적인재귀경우를처리하는코드가있음 보통두경우는한변수에의해결정됨 일반적인재귀함수의제어흐름 1. 변수를검사하여기본적인경우인지일반적인경우인지를결정 2. 기본적인경우일때에는더이상재귀호출을하지않고필요한값을리턴 3. 일반적인경우일때에는그변수의값이결국에기본적인경우의값이될수있게하여재귀호출 79
80 재귀함수예제 int sum(int n) if (n <= 1) // 1 번 return n; else return (n + sum(n - 1)); 위예제코드에서는 n 을사용하여두경우를판단 // 2 번 1. n 이 1 보다작거나같으면기본적인경우임 n 을리턴 2. 아니면일반적인경우임 n 에서 1 을빼어재귀호출 ==> n 에서 1 을뺐기때문에언젠가 n 은 1 보다작거나같아질것임 80
81 하노이탑문제 하노이탑문제는막대 A 에쌓여있는원판 3 개를막대 C 로동일한모양으로옮기는것 * 단다음의조건을지켜야함 한번에하나의원판만이동할수있다 맨위에있는원판만이동할수있다 크기가작은원판위에큰원판이쌓일수없다 중간의막대를임시적으로이용할수있으나앞의조건들을지켜야한다 81
82 하노이탑알고리즘 순서대로 1 부터 n 까지원판이있고 A, B, C 3 개의막대기가있는경우하노이탑문제를해결하는방법 1. A 에서 2 번부터 n 번째까지 n-1 개의원판을 B 로이동 2. A 에서 1 번원판을 C 로이동 3. B 에서 2 번부터 n 번째까지 n-1 개의원판을 C 로이동 82
83 하노이탑알고리즘 // 막대 from에쌓여있는 n개의원판을막대 tmp를사용하여막대 to로옮긴다. hanoi_tower(n, A, B, C ); // 하노이함수호출 void hanoi_tower(int n, char from, char tmp, char to) if (n == 1) else printf("board %d move %c->%c\n", n, from, to); hanoi_tower(n-1, from, to, tmp); printf("1board %d move %c->%c\n",n, from, to); hanoi_tower(n-1, tmp, from, to); 83
84 표준 C 라이브러리함수 C 컴파일러가필수로제공해야하는플랫폼독립적인함수집합 라이브러리함수를호출하려면 라이브러리헤더파일을포함해야한다 호출할함수의원형을알아야한다 라이브러리레퍼런스페이지 함수에대한대략적인설명 함수원형 매개변수및리턴값에대한설명 필요한헤더파일및요구사항 간단한사용예 84
85 <ctype.h> 85
86 <math.h> 86
87 <stdlib.h> 87
88 <string.h> 88
89 <time.h> 89
90 90
91 Making coffee 프로그램 int main() int coffee; printf(" 어떤커피드릴까요? (1: 보통, 2: 설탕, 3: 블랙 ) "); scanf_s("%d", &coffee); printf("\n# 1. 뜨거운물을준비한다 \n"); printf("# 2. 종이컵을준비한다 \n"); switch (coffee) case 1 : printf("# 3. 보통커피를탄다 \n"); break; case 2 : printf("# 3. 설탕커피를탄다 \n"); break; case 3 : printf("# 3. 블랙커피를탄다 \n"); break; default : printf("# 3. 아무거나탄다 \n"); break; printf("# 4. 물을붓는다 \n"); printf("# 5. 스푼으로저어서녹인다 \n\n"); printf(" 손님 ~ 커피여기있습니다.\n\n"); 커피종류입력 안내문출력 커피종류선택변수 91
92 Making coffee 프로그램 ( 모듈화 ) #include <stdio.h> int coffee_machine(int button) printf("\n# 1.( 자동으로 ) 뜨거운물을준비한다 \n"); printf("# 2. ( 자동으로 ) 종이컵을준비한다 \n"); switch (button) case 1 : printf("# 3. ( 자동으로 ) 보통커피를탄다 \n"); break; case 2 : printf("# 3. ( 자동으로 ) 설탕커피를탄다 \n"); break; case 3 : printf("# 3. ( 자동으로 ) 블랙커피를탄다 \n"); break; default : printf("# 3. ( 자동으로 ) 아무거나탄다 \n"); break; printf("# 4. ( 자동으로 ) 물을붓는다 \n"); printf("# 5. ( 자동으로 ) 스푼으로저어서녹인다 \n\n"); return 0; int main() int coffee; int ret; printf(" 어떤커피를드릴까요?(1: 보통, 2: 설탕, 3: 블랙 ) "); scanf("%d", &coffee); ret = coffee_machine(coffee); printf(" 손님 ~ 커피여기있습니다.\n\n"); 92
93 Making coffee 실행결과 실행결과 어떤커피드릴까요? (1: 보통, 2: 설탕, 3: 블랙 ) 2 # 1. 뜨거운물을준비한다 # 2. 종이컵을준비한다 # 3. 설탕커피를탄다 # 4. 물을붓는다 # 5. 스푼으로저어서녹인다손님 ~ 커피여기있습니다. 93
94 Making coffee 프로그램 확장 #include <stdio.h> int coffee_machine(int button) printf("\n# 1.( 자동으로 ) 뜨거운물을준비한다 \n"); printf("# 2. ( 자동으로 ) 종이컵을준비한다 \n"); switch (button) case 1 : printf("# 3. ( 자동으로 ) 보통커피를탄다 \n"); break; case 2 : printf("# 3. ( 자동으로 ) 설탕커피를탄다 \n"); break; case 3 : printf("# 3. ( 자동으로 ) 블랙커피를탄다 \n"); break; default : printf("# 3. ( 자동으로 ) 아무거나탄다 \n"); break; printf("# 4. ( 자동으로 ) 물을붓는다 \n"); printf("# 5. ( 자동으로 ) 스푼으로저어서녹인다 \n\n"); return 0; int main() int coffee; int ret; printf("a님, 어떤커피드릴까요? (1: 보통, 2: 설탕, 3: 블랙 ) "); scanf_s("%d", &coffee); ret = coffee_machine(coffee); printf("a님커피여기있습니다.\n\n"); printf("b님, 어떤커피드릴까요? (1: 보통, 2: 설탕, 3: 블랙 ) "); scanf ("%d", &coffee); ret = coffee_machine(coffee); printf("b님커피여기있습니다.\n\n"); printf("c님, 어떤커피드릴까요? (1: 보통, 2: 설탕, 3: 블랙 ) "); scanf_s("%d", &coffee); ret = coffee_machine(coffee); printf("c님커피여기있습니다.\n\n"); 94
95 Making coffee ( 확장 ) 실행결과 A 님, 어떤커피드릴까요? (1: 보통, 2: 설탕, 3: 블랙 ) 1 # 1. ( 자동으로 ) 뜨거운물을준비한다 # 2. ( 자동으로 ) 종이컵을준비한다 # 3. ( 자동으로 ) 보통커피를탄다 # 4. ( 자동으로 ) 물을붓는다 # 5. ( 자동으로 ) 스푼으로저어서녹인다 A 님커피여기있습니다. B 님, 어떤커피드릴까요? (1: 보통, 2: 설탕, 3: 블랙 ) 2 # 1. ( 자동으로 ) 뜨거운물을준비한다 # 2. ( 자동으로 ) 종이컵을준비한다 # 3. ( 자동으로 ) 설탕커피를탄다 # 4. ( 자동으로 ) 물을붓는다 # 5. ( 자동으로 ) 스푼으로저어서녹인다 B 님커피여기있습니다. C 님, 어떤커피드릴까요? (1: 보통, 2: 설탕, 3: 블랙 ) 95
96 더하기함수 #include <stdio.h> int plus(int v1, int v2) int result; result = v1 + v2; 실행결과 return result; 100과 200의 plus() 함수결과는 : 300 int main() int hap; hap = plus(100, 200); printf("100과 200의 plus() 함수결과는 : %d\n", hap); 96
97 계산기함수 #include <stdio.h> int calc(int v1, int v2, int op) int result; switch (op ) case 1 : result = v1 + v2; break; case 2 : result = v1 - v2; break; case 3 : result = v1 * v2; break; case 4 : result = v1 / v2; break; return result; int main() int res; int oper, a, b; printf(" 계산입력 (1:+, 2:-, 3:*, 4:/) : "); scanf("%d", &oper); printf(" 계산할두숫자를입력 : "); scanf("%d %d", &a, &b); res = calc(a, b, oper); printf(" 계산결과는 : %d\n", res); 97
98 계산기함수실행결과 실행결과 계산입력 (1:+, 2:-, 3:*, 4:/) : 3 계산할두숫자를입력 : 7 8 계산결과는 : 56 98
99 지역변수와전역변수 #include <stdio.h> int a = 100; void func1() int main() int a = 200; printf("func1() 에서 a 의값 ==> %d\n", a); func1(); printf("main() 에서 a 의값 ==> %d\n", a); 실행결과 func1() 에서 a 의값 ==> 200 main() 에서 a 의값 ==>
100 함수의반환값에따른차이 #include <stdio.h> void func1() printf("void 형함수는돌려줄게없음.\n"); int func2() return 100; int main() int a; func1(); a = func2(); printf("int 형함수에서돌려준값 ==> %d\n", a); 실행결과 void 형함수는돌려줄게없음. int 형함수에서돌려준값 ==>
101 매개변수전달방법 call by value #include <stdio.h> void func1(int b) void main() b = b + 1; printf(" 전달받은 a ==> %d\n", b); int a=10; func1(a); printf("func1() 실행후의 a ==> %d\n", a); 실행결과전달받은 a ==> 11 func1() 실행후의 a ==>
102 매개변수전달방법비교 #include <stdio.h> void func1 (char a, char b) int imsi; imsi = a; a = b; b = imsi; void func2 (char *a, char *b) int imsi; imsi = *a; *a = *b; *b = imsi; void main() char x = 'A', y = 'Z ; printf(" 원래값 : x=%c, y=%c\n", x, y); func1(x, y); printf(" 값을전달한후 : x=%c, y=%c\n", x, y); func2(&x, &y); printf(" 주소를전달한후 : x=%c, y=%c\n", x, y); 원래값값을전달한후주소를전달한후 실행결과 : x=a, y=z : x=a, y=z : x=z, y=a 102
103 103
104 참고문헌 천정아, Core C Programming, 연두에디션 (2019) C 가보이는그림책, ANK Co., Ltd., 성안당 (2018) Greg Perry, Dean Miller 어서와 C 언어는처음이지, 천인국옮김, 인피니티북스 (2015) KELLEY ( 역 : 김명호외 ), A Book on C, 홍릉과학출판사 (2003) 윤성우, 열혈 C 프로그래밍, 오렌지미디어 천인국, 쉽게풀어쓴 C 언어 Express, 생능출판사 서현우, 뇌를자극하는 C 프로그래밍, 한빛미디어 강성수, 쾌도난마 C 프로그래밍, 북스홀릭 고응남, C 프로그래밍기초와응용실습, 정익사 우재남, C 언어 for Beginner, 한빛미디어 104
Microsoft PowerPoint - chap02-C프로그램시작하기.pptx
#include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의
More informationMicrosoft PowerPoint - chap06-5 [호환 모드]
2011-1 학기프로그래밍입문 (1) chapter 06-5 참고자료 변수의영역과데이터의전달 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 자동변수 지금까지하나의함수안에서선언한변수는자동변수이다. 사용범위는하나의함수내부이다. 생존기간은함수가호출되어실행되는동안이다.
More information슬라이드 1
CHAP 2: 순환 (Recursion) 순환 (recursion) 이란? 알고리즘이나함수가수행도중에자기자신을다시호출하여문제를해결하는기법 정의자체가순환적으로 되어있는경우에적합한방법 순환 (recursion) 의예 팩토리얼값구하기 피보나치수열 1 n! n*( n 1)! fib( n) 0 1 fib( n 2) n n 0 ` 1 fib( n 1) if n 0 if
More information슬라이드 1
5 장함수 박종혁교수 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr SeoulTech 2017-1 st 프로그래밍입문 (1) 2 목차 5.1 함수정의 5.2 return 문 5.3 함수원형 5.4 예제 : 거듭제곱표생성하기 5.5 컴파일러관점에서의함수선언 5.6 함수정의순서의다른방법 5.7 함수호출과값에의한호출
More informationMicrosoft PowerPoint - chap10-함수의활용.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과
More informationMicrosoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
More informationMicrosoft PowerPoint - chap05.ppt
2010-1 학기프로그래밍입문 (1) 5 장함수 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 0 목차 5.1 함수정의 5.2 return 문 5.3 함수원형 5.4 예제 : 거듭제곱표생성하기 5.5 컴파일러관점에서의함수선언 5.6 함수정의순서의다른방법 5.7 함수호출과값에의한호출 5.8 대형프로그램의개발 5.9 단정 5.10
More information슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More informationPowerPoint 프레젠테이션
Chapter 08 함수 01 함수의개요 02 함수사용하기 03 함수와배열 04 재귀함수 함수의필요성을인식한다. 함수를정의, 선언, 호출하는방법을알아본다. 배열을함수의인자로전달하는방법과사용시장점을알아본다. 재귀호출로해결할수있는문제의특징과해결방법을알아본다. 1.1 함수의정의와기능 함수 (function) 특별한기능을수행하는것 여러가지함수의예 Page 4 1.2
More informationPowerPoint Presentation
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을작성하면서 C 프로그램의구성요소에대하여알아본다.
More informationPowerPoint 프레젠테이션
순환알고리즘 C 로쉽게풀어쓴자료구조 순환 (recursion) 수행이끝나기전에자기자신을다시호출하여문제해결 - 직접순환, 간접순환 문제정의가순환적으로되어있는경우에적합한방법 ( 예제 ) 팩토리얼 피보나치수열 n! 1 n * ( n 1)! n n 0 fib( n) 1 fib ( n 2) fib( n 1) 1 ` 2 if if n 0 n 1 otherwise 이항계수
More informationC 프로그래밊 개요
함수 (2) 2009 년 9 월 24 일 김경중 공지사항 10 월 1 일목요일수업휴강 숙제 #1 마감 : 10 월 6 일화요일 기초 함수를만들어라! 입력 함수 ( 기능수행 ) 반환 사용자정의함수 정의 : 사용자가자신의목적에따라직접작성한함수 함수의원형 (Function Prototype) + 함수의본체 (Function Body) : 함수의원형은함수에대한기본적정보만을포함
More informationC 언어와 프로그래밍 개요
2019-1 st 프로그래밍입문 (1) 2 장. C 프로그램기본 박종혁교수 서울과학기술대학교컴퓨터공학과 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr 목차 C 프로그램의구성요소 주석 main 함수 출력 C 언어의입력과출력 변수 printf 함수 scanf 함수 2 예제 2-1 : 첫번째 C 프로그램 3 주석 (Comment)
More information[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi
2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,
More informationOCW_C언어 기초
초보프로그래머를위한 C 언어기초 2 장 : C 프로그램시작하기 2012 년 이은주 학습목표 을작성하면서 C 프로그램의구성요소 주석 (comment) 이란무엇인지알아보고, 주석을만드는방법 함수란무엇인지알아보고, C 프로그램에반드시필요한 main 함수 C 프로그램에서출력에사용되는 printf 함수 변수의개념과변수의값을입력받는데사용되는 scanf 함수 2 목차 프로그램코드
More information쉽게 풀어쓴 C 프로그래밍
쉽게풀어쓴 C 언어 Express 제 9 장함수와변수 이번장에서학습할내용 변수의속성 전역, 지역변수 자동변수와정적변수 재귀호출 이번장에서는함수와변수와의관계를집중적으로살펴볼것이다. 또한함수가자기자신을호출하는재귀호출에대하여살펴본다. 변수의속성 변수의속성 : 이름, 타입, 크기, 값 + 범위, 생존시간, 연결 범위 (scope) : 변수가사용가능한범위, 가시성생존시간
More information슬라이드 1
Recursion SANGJI University KO Kwangman () 1. 개요 재귀 (recursion) 의정의, 순환 정의하고있는개념자체에대한정의내부에자기자신이포함되어있는경우를의미 알고리즘이나함수가수행도중에자기자신을다시호출하여문제를해결하는기법 정의자체가순환적으로되어있는경우에적합한방법 예제 ) 팩토리얼값구하기 피보나치수열 이항계수 하노이의탑 이진탐색
More informationMicrosoft PowerPoint - additional01.ppt [호환 모드]
1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능
More informationMicrosoft PowerPoint - Chapter8.pptx
Computer Engineering g Programming g 2 제 8 장함수 Lecturer: JUNBEOM YOO jbyoo@konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 모듈화 함수의개념, 역할 함수작성방법 반환값 인수전달 규모가큰프로그램은전체문제를보다단순하고이해하기쉬운함수로나누어서프로그램을작성하여야합니다.
More information슬라이드 1
5 장함수 박종혁교수 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr SeoulTech 2018-1 st 프로그래밍입문 (1) 2 목차 5.1 함수정의 5.2 return 문 5.3 함수원형 5.4 예제 : 거듭제곱표생성하기 5.5 컴파일러관점에서의함수선언 5.6 함수정의순서의다른방법 5.7 함수호출과값에의한호출
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More informationOCW_C언어 기초
초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향
More informationMicrosoft PowerPoint - chap-03.pptx
쉽게풀어쓴 C 언어 Express 제 3 장 C 프로그램구성요소 컴퓨터프로그래밍기초 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C프로그램을이루는구성요소들을살펴봅니다. 컴퓨터프로그래밍기초 2 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에
More informationMicrosoft PowerPoint - chap-09.pptx
쉽게풀어쓴 C 언어 Express 제 9 장함수와변수 이번장에서학습할내용 반복의개념이해 변수의속성 전역, 지역변수 자동변수와정적변수 재귀호출 이번장에서는함수와변수와의관계를집중적으로살펴볼것이다. 또한함수가자기자신을호출하는재귀호출에대하여살펴본다 변수의속성 변수의속성 : 이름, 타입, 크기, 값 + 범위, 생존시간, 연결 범위 (scope) : 변수가사용가능한범위,
More informationC 프로그램의 기본
C 프로그램의기본 목차 C 프로그램의구성요소 주석 main 함수 출력 C 언어의입력과출력 변수 printf 함수 scanf 함수 2 예제 2-1 : 첫번째 C 프로그램 3 2.1.1 주석 주석의용도 프로그램에대한설명 프로그램전체에대한대략적인정보를제공 프로그램수행에영향을미치지않는요소 4 2.1.1 주석 주석사용방법 /* 과 */ 을이용한여러줄주석 // 을이용한한줄주석
More information<4D F736F F F696E74202D20C1A639C0E520C7D4BCF6BFCDBAAFBCF6>
쉽게풀어쓴 C 언어 Express 제 9 장함수와변수 이번장에서학습할내용 반복의개념이해 변수의속성 전역, 지역변수 자동변수와정적변수 재귀호출 이번장에서는함수와변수와의관계를집중적으로살펴볼것이다. 또한함수가자기자신을호출하는재귀호출에대하여살펴본다. 변수의속성 변수의속성 : 이름, 타입, 크기, 값 + 범위, 생존시간, 연결 범위 (scope) : 변수가사용가능한범위,
More information쉽게 풀어쓴 C 프로그래밍
쉽게풀어쓴 C 언어 Express 제 9 장함수와변수 이번장에서학습할내용 반복의개념이해 변수의속성 전역, 지역변수 자동변수와정적변수 재귀호출 이번장에서는함수와변수와의관계를집중적으로살펴볼것이다. 또한함수가자기자신을호출하는재귀호출에대하여살펴본다. 변수의속성 변수의속성 : 이름, 타입, 크기, 값 + 범위, 생존시간, 연결 범위 (scope) : 변수가사용가능한범위,
More information쉽게 풀어쓴 C 프로그래밍
제 3 장함수와문자열 1. 함수의기본적인개념을이해한다. 2. 인수와매개변수의개념을이해한다. 3. 함수의인수전달방법 2가지를이해한다 4. 중복함수를이해한다. 5. 디폴트매개변수를이해한다. 6. 문자열의구성을이해한다. 7. string 클래스의사용법을익힌다. 이번장에서만들어볼프로그램 함수란? 함수선언 함수호출 예제 #include using
More informationMicrosoft PowerPoint - 04_C_Language_Function
C Language 함수 (Function) Doo-ok Seo clickseo@gmail.com http:// 목 차 함수의기본개념 함수와포인터 기억클래스 2 함수의기본개념 함수의기본개념 함수의기본개념 사용자정의함수 함수와포인터 기억클래스 3 함수의기본개념 함수란무엇인가? 함수는필요한데이터를주면정해진행동을하고원하는값을만들어서돌려준다 데이터만주면내가그모든값의평균을구해주지
More informationMicrosoft PowerPoint - chap12-고급기능.pptx
#include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 가 제공하는 매크로 상수와 매크로
More informationMicrosoft PowerPoint - chap05-제어문.pptx
int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); 1 학습목표 제어문인,, 분기문에 대해 알아본다. 인 if와 switch의 사용 방법과 사용시 주의사항에 대해 알아본다.
More informationMicrosoft PowerPoint - Lesson2.pptx
Computer Engineering g Programming g 2 제 3 장 C 프로그래밍구성요소 Lecturer: JUNBEOM YOO jbyoo@konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() *
More information11장 포인터
누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리
More information프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음
프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음 CHAPTER 9 둘중하나선택하기 관계연산자 두개의피연산자를비교하는연산자 결과값은참 (1) 아니면거짓 (0) x == y x 와 y 의값이같은지비교한다. 관계연산자 연산자 의미 x == y x와 y가같은가? x!= y
More informationuntitled
if( ) ; if( sales > 2000 ) bonus = 200; if( score >= 60 ) printf(".\n"); if( height >= 130 && age >= 10 ) printf(".\n"); if ( temperature < 0 ) printf(".\n"); // printf(" %.\n \n", temperature); // if(
More information쉽게 풀어쓴 C 프로그래밍
누구나즐기는 C 언어콘서트 제 7 장함수 이번장에서학습할내용 모듈화 함수의개념, 역할 함수작성방법 반환값 인수전달 함수를사용하는이유 규모가큰프로그램은전체문제를보다단순하고이해하기쉬운함수로나누어서프로그램을작성하여야한다. 함수가필요한이유 같은작업이되풀이되는경우 함수가있다면 함수는한번작성되면여러번사용 ( 호출 ) 이가능하다. 모듈의개념 모듈 (module) 독립되어있는프로그램의일부분
More informationMicrosoft PowerPoint - chap06-1Array.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어
More informationMicrosoft Word - FunctionCall
Function all Mechanism /* Simple Program */ #define get_int() IN KEYOARD #define put_int(val) LD A val \ OUT MONITOR int add_two(int a, int b) { int tmp; tmp = a+b; return tmp; } local auto variable stack
More informationuntitled
int i = 10; char c = 69; float f = 12.3; int i = 10; char c = 69; float f = 12.3; printf("i : %u\n", &i); // i printf("c : %u\n", &c); // c printf("f : %u\n", &f); // f return 0; i : 1245024 c : 1245015
More information목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2
제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해
More informationuntitled
while do-while for break continue while( ) ; #include 0 i int main(void) int meter; int i = 0; while(i < 3) meter = i * 1609; printf("%d %d \n", i, meter); i++; return 0; i i< 3 () 0 (1)
More informationPowerPoint 프레젠테이션
Chapter 15 고급프로그램을 만들기위한 C... 1. main( ) 함수의숨겨진이야기 2. 헤더파일 3. 전처리문과예약어 1. main( ) 함수의숨겨진이야기 main( ) 함수의매개변수 [ 기본 14-1] main( ) 함수에매개변수를사용한예 1 01 #include 02 03 int main(int argc, char* argv[])
More informationC 언어 프로그래밊 과제 풀이
과제풀이 (1) 홀수 / 짝수판정 (1) /* 20094123 홍길동 20100324 */ /* even_or_odd.c */ /* 정수를입력받아홀수인지짝수인지판정하는프로그램 */ int number; printf(" 정수를입력하시오 => "); scanf("%d", &number); 확인 주석문 가필요한이유 printf 와 scanf 쌍
More information중간고사
중간고사 예제 1 사용자로부터받은두개의숫자 x, y 중에서큰수를찾는알고리즘을의사코드로작성하시오. Step 1: Input x, y Step 2: if (x > y) then MAX
More informationC 언어와 프로그래밍 개요
2019-1 st 프로그래밍입문 (1) 1 장. C 언어와프로그래밍개요 박종혁교수 서울과학기술대학교컴퓨터공학과 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr 목차 C 소개 프로그래밍의개념 C 언어의특징 C 프로그램개발 일반적인 C 프로그램개발과정 Visual Studio 를이용한 C 프로그램개발과정 2 소프트웨어의중요성
More information임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과
임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수
More informationC 언어와 프로그래밍 개요
2019-1 st 프로그래밍입문 (1) 11 장. 변수, 함수의활용및동적메모리 박종혁교수 서울과학기술대학교컴퓨터공학과 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr 목차 변수의활용 변수의특성 auto 와 register extern static 함수의활용 재귀함수 함수포인터 동적메모리 2 변수의특성 (1/4)
More informationPowerPoint 프레젠테이션
Chapter 10 포인터 01 포인터의기본 02 인자전달방법 03 포인터와배열 04 포인터와문자열 변수의주소를저장하는포인터에대해알아본다. 함수의인자를값과주소로전달하는방법을알아본다. 포인터와배열의관계를알아본다. 포인터와문자열의관계를알아본다. 1.1 포인터선언 포인터선언방법 자료형 * 변수명 ; int * ptr; * 연산자가하나이면 1 차원포인터 1 차원포인터는일반변수의주소를값으로가짐
More information8장. 포인터
2019-1 st 프로그래밍입문 (1) 8 장포인터 박종혁교수 서울과학기술대학교컴퓨터공학과 UCS Lab Tel: 970-6702 Email: jhpark1@seoultechackr 목차 포인터의기본 포인터의개념 포인터의선언및초기화 포인터의사용 포인터의용도 포인터사용시주의사항 참조에의한호출 배열과포인터의관계 calloc() 과 malloc() 을이용한동적메모리할당
More informationC 언어와 프로그래밍 개요
2019-1 st 프로그래밍입문 (1) 5 장. 제어문 박종혁교수 서울과학기술대학교컴퓨터공학과 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr 목차 조건문 if switch 반복문 반복문의필요성 for while do while 무한루프 분기문 break continue goto return 2 제어문 프로그램의수행순서를제어하기위한목적의문장
More information<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>
쉽게풀어쓴 C 언어 Express 제 3 장 C 프로그램구성요소 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C 프로그램을이루는구성요소들을살펴봅니다. 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에 ( 처리단계 ), 결과를화면에출력
More informationMicrosoft PowerPoint - chap04-연산자.pptx
int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에
More information10장. 구조체
2019-1 st 프로그래밍입문 (1) 10 장. 구조체 박종혁교수 서울과학기술대학교컴퓨터공학과 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr 목차 구조체의기본 구조체의개념 구조체의정의 구조체변수의선언및초기화 구조체변수의사용 구조체변수간의초기화와대입 구조체변수의비교 typedef 구조체의활용 구조체배열 구조체포인터
More informationMicrosoft PowerPoint - chap11-포인터의활용.pptx
#include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 포인터를 사용하는 다양한 방법에
More informationMicrosoft PowerPoint - chap03-변수와데이터형.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.
More informationMicrosoft PowerPoint - 05장(함수) [호환 모드]
이장에서다룰내용 1 함수의기본 2 함수의입출력방법 함수 함수는입력을넣으면출력이나오는마술상자다. 3 4 재귀함수 Inline 함수 01_ 함수의기본 01_ 함수의기본 함수란 함수를사용할때의장점 반복적으로실행해야할내용을함수로만들어필요할때마다호출해사용할수있다. 프로그램이모듈화 ( 블록화 ) 되므로읽기쉽고, 디버그와편집이쉽다. 프로그램의기능과구조을한눈에알아보기쉽다.
More informationMicrosoft PowerPoint - chap13-입출력라이브러리.pptx
#include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 스트림의 기본 개념을 알아보고,
More information1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문
1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문 1. 표준입출력 표준입출력 입력 : 키보드, scanf 함수 출력 : 모니터, printf 함수문제 : 정수값 2개를입력받고두값사이의값들을더하여출력하라. #include int main(void) int Num1, Num2; int
More informationMicrosoft PowerPoint - chap01-C언어개요.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을
More informationPowerPoint 프레젠테이션
함수 Heeseung Jo 이장의내용 함수개요프로시저함수호출메커니즘변수와유효범위재귀함수매크로함수 2 함수개요 함수개요 함수란? 함수 (function): 상자수 ; 상자에수를넣으면수가나옴 자동판매기와유사함 수학에서함수는대응관계 (mapping) 를의미함 함수주변상황 인수 : 함수에들어가는값 - 정의구역 (domain) 의원소 리턴값 : 함수가되돌려주는값 -
More informationMicrosoft PowerPoint - chap-11.pptx
쉽게풀어쓴 C 언어 Express 제 11 장포인터 컴퓨터프로그래밍기초 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 컴퓨터프로그래밍기초 2 포인터란? 포인터 (pointer): 주소를가지고있는변수 컴퓨터프로그래밍기초 3 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다.
More informationA Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning
C Programming Practice (I) Contents 변수와상수 블록과변수의범위 수식과연산자 제어문과반복문 문자와문자열 배열, 포인터, 메모리관리 구조체 디버거 (gdb) 사용법 2/17 Reference The C Programming language, Brian W. Kernighan, Dennis M. Ritchie, Prentice-Hall
More information<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>
리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1
More informationPowerPoint 프레젠테이션
Chapter 06 반복문 01 반복문의필요성 02 for문 03 while문 04 do~while문 05 기타제어문 반복문의의미와필요성을이해한다. 대표적인반복문인 for 문, while 문, do~while 문의작성법을 알아본다. 1.1 반복문의필요성 반복문 동일한내용을반복하거나일정한규칙으로반복하는일을수행할때사용 프로그램을좀더간결하고실제적으로작성할수있음.
More informationMicrosoft PowerPoint - 제11장 포인터
쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조
More information쉽게 풀어쓴 C 프로그래밍
제 3 장 C 프로그램구성요소 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C 프로그램을이루는구성요소들을살펴봅니다. 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에 ( 처리단계 ), 결과를화면에출력 ( 출력단계 ) 한다. 데이터입력
More informationMicrosoft PowerPoint - chap-06.pptx
쉽게풀어쓴 C 언어 Express 제 6 장조건문 컴퓨터프로그래밍기초 이번장에서학습할내용 조건문이란? if 문 if, 문 중첩 if 문 switch 문 break문 continue문 goto 문 5장까지는문장들이순차적으로실행된다고하였다. 하지만필요에따라서조건이만족되면문장의실행순서를변경할수있는기능이제공된다. 컴퓨터프로그래밍기초 2 조건문 조건에따라서여러개의실행경로가운데하나를선택
More information< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>
Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법
More informationMicrosoft PowerPoint - [2009] 02.pptx
원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include
More informationMicrosoft PowerPoint - 제11장 포인터(강의)
쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조
More informationC++ Programming
C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout
More information0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4
Introduction to software design 2012-1 Final 2012.06.13 16:00-18:00 Student ID: Name: - 1 - 0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x
More information쉽게 풀어쓴 C 프로그래밍
쉽게풀어쓴 C 언어 Express 제 6 장조건문 이번장에서학습할내용 조건문이란? if 문 if, else 문 중첩 if 문 switch 문 break 문 continue 문 goto 문 5 장까지는문장들이순차적으로실행된다고하였다. 하지만필요에따라서조건이만족되면문장의실행순서를변경할수있는기능이제공된다. 조건문 조건에따라서여러개의실행경로가운데하나를선택 문장이실행되는순서에영향을주는문장
More information제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.
제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 이중포인터란무엇인가? 포인터배열 함수포인터 다차원배열과포인터 void 포인터 포인터는다양한용도로유용하게활용될수있습니다. 2 이중포인터
More information쉽게 풀어쓴 C 프로그래밍
누구나즐기는 C 언어콘서트 제 5 장조건문 이번장에서학습할내용 조건문이란? if 문 if, else 문 중첩 if 문 switch 문 goto 문 이제까지는문장들이순차적으로실행된다고하였다. 하지만필요에따라서조건이만족되면문장의실행순서를변경할수있는기능이제공된다. 조건문 조건에따라서여러개의실행경로가운데하나를선택 문장이실행되는순서에영향을주는문장 조건에따라서여러개의같은처리를반복
More information윤성우의 열혈 TCP/IP 소켓 프로그래밍
C 프로그래밍프로젝트 Chap 22. 구조체와사용자정의자료형 1 2013.10.10. 오병우 컴퓨터공학과 구조체의정의 (Structure) 구조체 하나이상의기본자료형을기반으로사용자정의자료형 (User Defined Data Type) 을만들수있는문법요소 배열 vs. 구조체 배열 : 한가지자료형의집합 구조체 : 여러가지자료형의집합 사용자정의자료형 struct
More informationMicrosoft PowerPoint - ch07 - 포인터 pm0415
2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 9 강. 클래스의활용목차 멤버함수의외부정의 this 포인터 friend 선언 static 멤버 임시객체 1 /17 9 강. 클래스의활용멤버함수의외부정의 멤버함수정의구현방법 내부정의 : 클래스선언내에함수정의구현 외부정의 클래스선언 : 함수프로토타입 멤버함수정의 : 클래스선언외부에구현
More information쉽게 풀어쓴 C 프로그래밍
쉽게풀어쓴 C 언어 Express 제 6 장조건문 이번장에서학습할내용 조건문이란? if 문 if, else 문 중첩 if 문 switch 문 break 문 continue 문 goto 문 5 장까지는문장들이순차적으로실행된다고하였다. 하지만필요에따라서조건이만족되면문장의실행순서를변경할수있는기능이제공된다. 조건문 조건에따라서여러개의실행경로가운데하나를선택 문장이실행되는순서에영향을주는문장
More information1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 #define _CRT_SECURE_NO_WARNINGS #include #include main() { char ch; printf(" 문자 1개를입력하시오 : "); scanf("%c", &ch); if (isalpha(ch))
More informationPowerPoint Template
16-1. 보조자료템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park 함수템플릿 Jong Hyuk Park 함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n : n; double abs(double n) 함수 return n < 0? -n : n; //
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,
More information슬라이드 1
1 장. C 의개요 박종혁교수 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr SeoulTech 2017-1 st 프로그래밍입문 (1) 2 C 의개요 C-Language 란? 원하는결과를얻어내기위한 Program 작성시필요한일종의언어 Unix 운영체제하에서시스템프로그래밍을하기위해개발된언어 구조적인언어, 강력한기능,
More informationC 프로그래밍 언어 입문 C 프로그래밍 언어 입문 김명호저 숭실대학교 출판국 머리말..... C, C++, Java, Fortran, Python, Ruby,.. C. C 1972. 40 C.. C. 1999 C99. C99. C. C. C., kmh ssu.ac.kr.. ,. 2013 12 Contents 1장 프로그래밍 시작 1.1 C 10 1.2 12
More information제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.
제 11 장포인터 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습합니다.
More information프로그램의실행화면 주석 (comment) 두수의합 : 300 /* 두개의숫자의합을계산하는프로그램 */ 주석은코드를설명하는글입니다. 주석 3 가지방법의주석 주석의예 /* 한줄로된주석 */ /* 저자 : 홍길동날짜 : 2013.
쉽게풀어쓴 C 언어 Express 제 3 장 C 프로그램구성요소 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C 프로그램을이루는구성요소들을살펴봅니다. 일반적인프로그램의형태 덧셈프로그램 #1 데이터를받아서 ( 입력단계 ), 데이터를처리한후에 ( 처리단계
More information<4D F736F F F696E74202D20C1A63036C0E520BCB1C5C3B0FA20B9DDBAB928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>
Power Java 제 6 장선택과반복 이번장에서학습할내용 조건문이란? if 문 if, else 문 중첩 if 문 switch 문 break문 continue문 지금까지는문장들이순차적으로실행된다고하였다. 하지만필요에따라서조건이만족되면문장의실행순서를변경할수있는기능이제공된다. 3 가지의제어구조 조건문 문장이실행되는순서에영향을주는문장 조건에따라서여러개의실행경로가운데하나를선택
More informationMicrosoft PowerPoint - C++ 5 .pptx
C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성
More informationC 프로그래밊 개요
구조체 2009 년 5 월 19 일 김경중 강의계획수정 일자계획 Quiz 실습보강 5 월 19 일 ( 화 ) 구조체 Quiz ( 함수 ) 5 월 21 일 ( 목 ) 구조체저녁 6 시 5 월 26 일 ( 화 ) 포인터 5 월 28 일 ( 목 ) 특강 (12:00-1:30) 6 월 2 일 ( 화 ) 포인터 Quiz ( 구조체 ) 저녁 6 시 6 월 4 일 ( 목
More informationMicrosoft PowerPoint 자바-기본문법(Ch2).pptx
자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March
More information제4장 기본 의미구조 (Basic Semantics)
제 4 장블록및유효범위 Reading Chap. 5 숙대창병모 1 4.1 변수선언및유효범위 숙대창병모 2 변수선언과유효범위 변수선언 Declaration before Use! 대부분의언어에서변수는사용전에먼저선언해야한다. 변수의유효범위 (scope) 선언된변수가유효한 ( 사용될수있는 ) 프로그램내의범위 / 영역 변수이름뿐아니라함수등다른이름도생각해야한다. 정적유효범위
More informationA Hierarchical Approach to Interactive Motion Editing for Human-like Figures
단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct
More information슬라이드 1
정적메모리할당 (Static memory allocation) 일반적으로프로그램의실행에필요한메모리 ( 변수, 배열, 객체등 ) 는컴파일과정에서결정되고, 실행파일이메모리에로드될때할당되며, 종료후에반환됨 동적메모리할당 (Dynamic memory allocation) 프로그램의실행중에필요한메모리를할당받아사용하고, 사용이끝나면반환함 - 메모리를프로그램이직접관리해야함
More information쉽게 풀어쓴 C 프로그래밍
쉽게풀어쓴 C 언어 Express 제 8 장함수 이번장에서학습할내용 모듈화 함수의개념, 역할 함수작성방법 반환값 인수전달 함수를사용하는이유 규모가큰프로그램은전체문제를보다단순하고이해하기쉬운함수로나누어서프로그램을작성하여야한다. 모듈의개념 모듈 (module) 독립되어있는프로그램의일부분 모듈러프로그래밍 모듈개념을사용하는프로그래밍기법 모듈러프로그래밍의장점 각모듈들은독자적으로개발가능
More informationMicrosoft PowerPoint - 03_(C_Programming)_(Korean)_Pointers
C Programming 포인터 (Pointers) Seo, Doo-Ok Clickseo.com clickseo@gmail.com 목 차 포인터의이해 다양한포인터 2 포인터의이해 포인터의이해 포인터변수선언및초기화 포인터연산 다양한포인터 3 주소연산자 ( & ) 포인터의이해 (1/4) 변수와배열원소에만적용한다. 산술식이나상수에는주소연산자를사용할수없다. 레지스터변수또한주소연산자를사용할수없다.
More information비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2
비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,
More information슬라이드 1
1 장. C 의개요 박종혁교수 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr SeoulTech 2018-1 st 프로그래밍입문 (1) 2 C 의개요 C-Language 란? 원하는결과를얻어내기위한 Program 작성시필요한일종의언어 Unix 운영체제하에서시스템프로그래밍을하기위해개발된언어 구조적인언어, 강력한기능,
More information학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2
학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 6.1 함수프로시저 6.2 서브프로시저 6.3 매개변수의전달방식 6.4 함수를이용한프로그래밍 3 프로시저 (Procedure) 프로시저 (Procedure) 란무엇인가? 논리적으로묶여있는하나의처리단위 내장프로시저 이벤트프로시저, 속성프로시저, 메서드, 비주얼베이직내장함수등
More informationMicrosoft PowerPoint - 2주차-1차시 (강의자료) ch01 - C Programming 기초 (part 2)
일반적인프로그램의기본구성형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에 ( 처리단계 ), 결과를화면에출력 ( 출력단계 ) 한다. 데이터입력 데이터처리 결과출력 1-23 덧셈프로그램 #1 주석 전처리기지시어 /* 두개의숫자의합을계산하는프로그램 */ #include 함수 int main(void) { int x; int y; int sum;
More information구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을
(structures) 구조체정의 구조체선언및초기화 구조체배열 구조체포인터 구조체배열과포인터 구조체와함수 중첩된구조체 구조체동적할당 공용체 (union) 1 구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined
More information