함수 강의자료 및 기말도우미.

Slides:



Advertisements
Similar presentations
Chapter 12. 배열. 배열  동일한 항목들이 동일한 크기로 연속적으로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는 자료 구조.
Advertisements

6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
4장 배열과 함수 한빛미디어(주).
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express Slide 1 (of 27)
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
컴퓨터 프로그래밍 기초 [Final] 기말고사
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
10장 함수.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
6주차: Functions in C and Others
23장. 구조체와 사용자 정의 자료형 2.
2주차: 변수, 수식, Control Flow.
6장. printf와 scanf 함수에 대한 고찰
Tail-recursive Function, High-order Function
2019년 1월 16일 오후 6시 15분 제 6 장 함수
11장. 1차원 배열.
C 2장. C 프로그램 시작하기 #include <stdio.h> int main(void) { int num;
C 프로그래밍 C언어 (CSE2035) (Chap11. Derived types-enumerated, structure, and union) (1-1) Sungwook Kim Sogang University Seoul, Korea Tel:
Method & library.
JA A V W. 03.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
프로그래밍 개요
어서와 C언어는 처음이지 제14장.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express Slide 1 (of 22)
19. 함수 포인터와 void 포인터.
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
자바 5.0 프로그래밍.
김선균 컴퓨터 프로그래밍 기초 - 7th : 함수 - 김선균
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
8주차: Strings, Arrays and Pointers
Chapter 08. 함수.
문자열 컴퓨터시뮬레이션학과 2015년 봄학기 담당교수 : 이형원 E304호,
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
Fucntion 요약.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문
제 6 장 함수(functions).
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
에어 PHP 입문.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
Homework #12 (1/2) 프로그램을 작성하고, 프로그램과 실행 결과를 프린트하여 제출한다.
7주차: Functions and Arrays
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
함수, 모듈.
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
Numerical Analysis Programming using NRs
Chapter 11 구조체.
Static과 const 선언 조 병 규 한 국 교 통 대 학 교 SQ Lab..
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
동적메모리와 연결 리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
제 29 강 스트링(string) 다루기 s a i s . s T i h t g r i n.
1. 지역변수와 전역변수 2. auto, register 3. static,extern 4. 도움말 사용법
어서와 C언어는 처음이지 제21장.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
수업 내용 수업 목표 강의 내용 강의 계획서 교과서 및 참고도서 평가 방법 수강생의 학습 방법 제안 강의자료 사이트
7 생성자 함수.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

함수 강의자료 및 기말도우미

chapter 10 << 함수 하나의 복잡하고 큰 문제는 여러 개의 작은 문제로 나누어 생각하는 것이 효율적인 문제 해결 방법이다. C 프로그램은 하나 이상의 함수로 구성된다. 또한 하나의 함수는 여러 개의 블록으로 구성할 수도 있고, 그 블록은 다시 여러 블록들을 포함 할 수도 있다. 이번 장에서는 일반적으로 함수라고 지칭하는 사용자 정의 함수를 정의하는 방법에 대하여 소개한다. 2019-10-18 종이위에 쓰는 C 프로그래밍

학습 목표 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 재귀호출 Learning Objectives Explain the Important Role of Telecommunications and why Managers have to know Telecommunications Describe the components and functions of a Telecommunications system and in particular their value-added to business Describe different Types of Networks: LAN, WAN, VAN and the Internet Discuss important business applications of Telecommunications technology

1.1 C 언어와 구조적 프로그래밍 구조적 방식의 기본 요소는 함수 C 언어는 구조적 프로그래밍 방식의 대표적인 언어 C언어는 함수(function)의 집합으로 구성 프로그램 작성 시 함수를 여러 개의 파일로 나누어 구성 가능 2019-10-18 종이위에 쓰는 C 프로그래밍

main()함수의 형태 함수가 값을 반환하는 유무에 따라 정수형을 반환하는 경우 int main( ) { int x; …… return(x); } 반환 값이 없는 경우 void main( ) { int x; return 0; } 반환 형이 없는 경우 는 정수형으로 간주 main( ) { int x; …… [ return 0;] } ANSI, ISO 사용규격 int main( void) { int x; …… } 2019-10-18 종이위에 쓰는 C 프로그래밍

1.2 표준 라이브러리 함수와 사용자 정의 함수 X 재료를 f 기계에 넣으면 y 라는 제품이 나옴 C 언어에서는 명령을 함수로 데이터를 변수로 표현 함수는 y=f(x) 에 비유 X 재료를 f 기계에 넣으면 y 라는 제품이 나옴 기본적으로 한 개의 main()함수를 갖는다. 프로그램을 기능별로(모듈, 함수) 작성. main() 함수에서 해당 함수를 호출(call)하여 함수를 사용. winmain(Windows) 함수는 OS에서 호출 함수의 종류 : 표준함수, 사용자 정의 함수 표준함수는 컴파일러에 의해 기본적으로 제공되는 함수 사용자 정의 함수는 사용자가 직접 작성하는 함수 2019-10-18 종이위에 쓰는 C 프로그래밍

간단한 함수 프로그램1 - 성명학번 출력 #include<stdio.h> void name(); void juso(); main() { name(); //함수호출 juso(); //함수호출로 //실행제어이동 } void name() { printf("************************\n"); printf(“ Chosun University\n"); } void juso() printf("광주시 서석동 \n"); }

라이브러리 함수(표준 함수, 내장함수) 모든 라이브러리 함수는 표준 헤더 파일(*.h)에 정의 표준 함수 사용 예 컴파일러에 라이브러리 형태로 제작되어 지원하는 함수 모든 라이브러리 함수는 표준 헤더 파일(*.h)에 정의 표준 함수 사용 예 관련 헤더 파일 입출력 함수 printf(), getchar(), scanf() #include <stdio.h> 난수 관련 함수 rand(), srand() 산술 연산 함수 sqrt(), sin(), abs() 문자열 처리 함수 strcmp(), strcpy(), strlen() 시간 관련 함수 clock(), time() 메모리 관리 함수 free(), malloc() #include <stdlib.h> #include <math.h> #include <string.h> #include <time.h> C 언어에서는 어떤 기능(문자를 화면에 출력, 두수의 사칙연산, 키보드로 부터 문자 입력등)을 실행하는 명령어가 별도로 존재하지 않는다. 그러므로 어떤 기능을 구현하기 위하여 그 기능을 실행하는 프로그램을 배정문(a=4) 및 제어문(if, while문등)을 이용하여 작성해야 하는데, 이와 같이 특정한 기능을 실행하는 프로그램의 집합을 함수라 한다. 그러므로 C 언어로 작성하는 프로그램은 특정한 기능을 실행하는 함수들, 배정문 및 제어문으로 구성된다. 따라서 C언어에서는 반드시 하나 이상의 함수가 존재해야 하며, 반드시 존재해야 하는 함수의 이름은 main()함수이다. 즉, 프로그램이 동작할때 처리되는 순서는 main()함수의 첫번째 줄부터 실행된다. 함수의 종류는 라이브러리 함수 및 사용자가 작성한 함수로 구분된다. C 언어는 특정한 기능을 수행하는 명령어가 없으므로 사용자가 기본적인 기능(문자 입출력 기능, 문자열처리 기능등)을 함수로 직접 만들어 프로그램을 작성한다는 것은 너무 많은 노력 및 시간을 요구한다. 따라서 컴파일러 공급업자가 기본적인 기능을 실행하는 함수를 만들어 사용자에게 공급하는데 이를 라이브러리 함수라 한다. 라이브러리 함수는 헤더화일(화일네임.h)에 포함되어 있으며 어떤 특정한 기능을 수행하는 함수를 이용할 때 관련된 헤더화일을 읽어야 하며, 헤더화일을 읽는 방법은 #include 헤더화일 이름; 을 프로그램 맨 앞에 위치시킨다. 또한 라이브러리 함수는 공급자가 이미 만들어 놓은 함수이므로 반드시 미리 정해진 인수를 사용해야 한다. 앞절에서 사용한 printf() 함수가 대표적인 라이브러리 함수이며, 이는 stdio.h 헤더화일에 포함되어 있고, 화면에 데이타를 출력하는 기능을 수행하며 이 함수를 사용하기 위하여 프로그램 앞줄에서 #include 명령어를 사용하여 stdio.h 헤더 화일을 읽어 드리면 프로그램에서 printf()함수를 사용할 수 있다. #include <malloc.h> 2019-10-18 종이위에 쓰는 C 프로그래밍

2. 사용자 정의 함수 사용자 함수 구성 요소 함수의 연산 결과를 반환하는 함수의 자료형 함수 명칭을 나타내는 함수명 2. 사용자 정의 함수 사용자가 직접 작성한 함수 사용자 함수 구성 요소 함수의 연산 결과를 반환하는 함수의 자료형 함수 명칭을 나타내는 함수명 함수로 전달될 데이터의 변수인 매개변수 리스트 함수 내부에 필요한 변수 선언 각종 명령문을 수행할 함수의 본체 함수를 호출한 곳으로 값을 되돌려 주는 return 문 2019-10-18 종이위에 쓰는 C 프로그래밍

2.1 함수의 형식 모든 함수는 사용(호출)전에 선언 또는 정의 함수의 3가지 요건 함수선언, 함수호출, 함수정의 형식 1 함수선언, 함수호출, 함수정의 형식 1 사용 예 자료형 함수명( 매개변수) { 몸체 (하는 일들)  함수 정의 } main() 몸체 ;  함수 호출 int sum( int a , int b) { int total ; total = a + b ; return result ; main( ) sum( ) ; } 2019-10-18 종이위에 쓰는 C 프로그래밍

간단한 함수 프로그램 – 형식 1 #include<stdio.h> void line(void) { printf("=========================\n"); } int main(void) { line(); printf(" Chosun University\n"); return 0; }

2.1 함수의 형식 모든 함수는 사용(호출)전에 선언 또는 정의 함수의 3가지 요건 함수선언, 함수호출, 함수정의 ② 형식2 함수선언, 함수호출, 함수정의 ② 형식2 ② 사용 예 #include<stdio.h> int sum( int, int); main( ) { sum( ) ; } int sum( int a , int b) int total ; total = a + b ; return result ; 프로토타입  함수 선언 main() { 몸체  함수 호출 함수명( ) 몸체  함수 정의 } 2019-10-18 종이위에 쓰는 C 프로그래밍

간단한 함수 프로그램 - 형식2 #include<stdio.h> void line(void); //프로토타입(원형) 선언 int main(void) { line(); 함수 호출 line(); printf(" Chosun University\n"); return 0; } void line(void) { printf("=========================\n"); }

2.2 함수의 구성 원칙 prototype(함수 원형, 프로토타입)의 선언 함수의 정보를 컴파일러에게 미리 제공 반환값(리턴값)의 자료형을 정확하게 표시 함수명은 식별자의 명명 규칙에 따라 기능을 알기 쉽게 작성 함수로 전달될 데이터인 매개변수를 잘 활용 하나의 함수는 한 가지 기능만 구현하도록 구성 2019-10-18 종이위에 쓰는 C 프로그래밍

함수 실습 실습문제] 변수 a = 30 , b = 40를 선언 후 두 수를 더하는 프로그램을 나눠진 용지에 코딩. 자료형은 정수형 합 변수 :sum 두 수 더하는 식 : sum = a + b; 출력 : sum 값 함수로 변환 과정을 나눠진 용지에 코딩. 함수의 자료형과 함수명과 함수의 ( ) 안에 들어 갈 매개변수(가인자)를 정함 프로토타입 선언 함수 안에서 해야 할 기능을 정의 및 반환 (return ) 함수 자료형 int 함수명 : sum(int a, int b);

함수 실습 – 형식1과 2로 작성 #include <stdio.h> int Sum(int a, int b); //  함수 원형 선언 int main(void) { int x =30 , y = 5; // 두 개의 변수 선언 int total ; total = Sum(x, y); // 함수 호출과 실행제어권 이동 printf("두 수의 합은 : %d\n", total); return 0; } int Sum(int a, int b) // 함수의 자료형과 함수명을 정한 {  매개변수(가인자)를 정함 int result ;  기능을 정의 후 결과를 반환 result = a + b; return result; }

함수 실습 – 함수화 과정 함수화는 반환 값이 있는 경우와 없는 경우로 나뉜다. 반환 값이 없는 경우는 단순 반복 부분을 함수화한다. 테두리, 반복 문자열 등 반환 값이 있는 경우는 수식부분을 함수화 한다. 사칙연산에서 +, - , /, * 부분 등 함수화는 곧 사용자 함수 정의라 할 수 있다. 사용자 함수 정의 작성 원칙에 따라 작성한다. 함수 자료형과 함수명, 함수의 매개변수 개수, 기능정의와 반환값등이 필요하다.

2.4 함수의 프로토타입(원형) #include <stdio.h> int Sum(int a, int b); main( )함수를 제외한 모든 함수는 사용되기 전에 선언 #include <stdio.h> int Sum(int a, int b); 프로토타입은 세미콜론( ; )을 붙여서 함수정의와 구분 프로토타입은 함수의 매개변수의 개수와 자료형과 반환되는 자료형의 정보를 컴파일러에게 제공 함수의 프로토타입을 선언 하면 안정적인 프로그램 제작 선언할 내용이 많으면 헤더파일(*.h)을 작성, 사용 가능 표준함수의 프로토타입은 헤더파일로 제작하여 제공 scanf, printf 등 의 프로토타입은 stdio.h 파일에 있음 2019-10-18 종이위에 쓰는 C 프로그래밍

3. 함수의 정의와 호출 함수는 헤더(header)와 본체(body)로 구분 함수의 호출 과정 main() 함수 수행 실인자를 가인자로 전달 호출된 함수 수행 함수 호출 결과값 반환 호출된 함수 종료 2019-10-18 종이위에 쓰는 C 프로그래밍

실인수와 가인수의 개수와 데이터형은 일치해야 함. 함수의 수행이 끝나면 호출한 함수로 리턴 함수정의 시에 사용하는 변수 형식 매개변수, 형식 인자, 가인자, 가인수 함수호출 시에 사용되는 인수 실인수 (actual argument) , 실인자 실인수와 가인수는 1 : 1로 대응해서 정보 전달 실인수와 가인수의 명칭이 동일할 필요는 없음 실인수와 가인수의 개수와 데이터형은 일치해야 함. 함수의 수행이 끝나면 호출한 함수로 리턴 2019-10-18 종이위에 쓰는 C 프로그래밍

예제10-2] 다음 프로그램에서 함수 호출이 어떻게 처리되는지를 설명하여라. 예제10-2] 다음 프로그램에서 함수 호출이 어떻게 처리되는지를 설명하여라. 1: #include <stdio.h> 2: int sum(int , int); 3: main( ) {         4:      int i = 10, j = 100;       5:      sum(i, j); 6:      ++i, ++j;           7:      printf("total=%d", i + j); }   8: int sum(int x, int y) { 9:        printf("sum = %d\n", x + y); 10:      ++x, ++y; 11:      printf("x = %d, y = %d\n", x, y);  //return x+y; }  수행 순서 1 2  3  4  5 (스택에 저장)  8  9  10  11 (스택에 저장한 다음 문장으로 리턴)  6  7  종료 2019-10-18 종이위에 쓰는 C 프로그래밍

기말시험 시험일 : 12월 7일 시험범위 : for , 이중for , 배열, 함수 배열은 형식, 뜻, 선언 및 특징등, 1차원 배열 초기화, 2차원 배열 초기화와 문자열 배열 초기화 프로그램 출제형태는 객관식, 주관식, 빈 칸 채우기, 프로그램 작성, 실행오류 찾기 프로그램 실행결과값

배열 출제 예시 다음 배열의 초기화 중 오류가 있는 것은?  int chosun[5];  int chosun[]={1,2,3,4,}  int chosun[3]= {1,2,3,4,} ;  int chosun[5] = {1,2}; int ch[2][2];로 선언된 배열의 기억형태를 표현하시오. 다음 배열에 관한 사항 중 맞는 것(틀린 것)을 고르시오. 다음 프로그램을 완성하시오. 프로그램을 작성하시오. 교재와 배열강의자료 그리고 배열실습평가를 참조바람.

함 수 함수가 왜 필요한지의 정의 표준(내장)함수의 종류 중 헤더파일과 함수 기능 연결관계가 맞는 것은? 함수의 3가지 요건이 아닌것은? 함수의 프로토타입(원형) 관한 사항 중 맞는 것(틀린 것)을 고르시오. 함수 호출 처리과정을 쓰시오. 함수화 시키는 부분 및 프로그램 분석

감사 감사