C 프로그래밍 CTI長 윤진훈.

Slides:



Advertisements
Similar presentations
Python Ch.06 RaspberryPi Sejin Oh. Raspberry Pi Python  IDLE(Integrated Development Environment)  라즈베리 파이 배포본들은 일반적으로 파이썬과 파이썬 3 의 IDLE 파 이썬 개발 도구를.
Advertisements

Chapter 12. 배열. 배열  동일한 항목들이 동일한 크기로 연속적으로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는 자료 구조.
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
Part 03 상수, 변수, 자료형 ©우균, 창병모 © 우균, 창병모.
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express Slide 1 (of 27)
제 9 장 포인터.
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
C 프로그래밍 I.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
Chapter 7. 조건문.
제 9 장 구조체와 공용체.
컴퓨터 프로그래밍 기초 [Final] 기말고사
C 8장. 포인터 #include <stdio.h> int main(void) { int num;
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
5장. 참조 타입.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
23장. 구조체와 사용자 정의 자료형 2.
2주차: 변수, 수식, Control Flow.
6장. printf와 scanf 함수에 대한 고찰
14장. 포인터와 함수에 대한 이해.
11장. 1차원 배열.
C 8장. 포인터 #include <stdio.h> int main(void) { int num;
C#.
JA A V W. 03.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
프로그래밍 개요
어서와 C언어는 처음이지 제14장.
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
상수와 기본 자료형.
19. 함수 포인터와 void 포인터.
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
컴퓨터 프로그래밍 기초 - 5th : 조건문(if, else if, else, switch-case) -
자바 5.0 프로그래밍.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
8주차: Strings, Arrays and Pointers
문자열 컴퓨터시뮬레이션학과 2015년 봄학기 담당교수 : 이형원 E304호,
Choi Seong Yun 컴퓨터 프로그래밍 기초 #03 : 변수와 자료형 Choi Seong Yun
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
^^ Computer Programming 2 dmpr.cnu.ac.kr/~daygax.
함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문
[ 단원 04 ] 반복과 배열.
에어 PHP 입문.
구조체 (Structure).
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
05. General Linear List – Homework
7주차: Functions and Arrays
7장. 다양한 형태의 반복문. 7장. 다양한 형태의 반복문 7-1 반복문이란? 반복문의 기능 세 가지 형태의 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 7-1 반복문이란? 반복문의 기능 특정 영역을 특정 조건이 만족하는 동안에 반복.
Chapter 10 데이터 검색1.
컴퓨터 프로그래밍 기초 - 9th : 배열 / 포인터 -
Numerical Analysis Programming using NRs
8장 선택 논리 II 1. 논리연산자 1.1 논리연산자 : AND (&&) 1.2 논리연산자 : OR (||)
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
1. 지역변수와 전역변수 2. auto, register 3. static,extern 4. 도움말 사용법
어서와 C언어는 처음이지 제21장.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
13. 포인터와 배열! 함께 이해하기.
6 객체.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

C 프로그래밍 CTI長 윤진훈

목차 0. 들어가기 전에 1. C 프로그래밍의 방법 2. C 프로그램의 기본 구조 3. printf 함수 4. 변수 5. 연산자 6. scanf 함수 P1. 과제 1차 7. 데이터 표현 방식 8. 기본 자료형 9. 반복문, 조건문 P2. 과제 2차 10. 함수 11. 1차원 배열 12. 다차원 배열 P3 과제 3차 13. 포인터 14. 배열과 포인터의 관계 15. 배열 포인터, 포인터 배열 16. 함수와 포인터의 관계 S1. 세미나 과제 T1. C 프로그래밍 Term

0. 들어가기 전에 학습의 유의사항 학습의 순서 API C MFC C++ 숙제는 인터넷에서 찾지말고 스스로 할 수 있는 데까지 풀어라. 하루에 5시간 이상 코딩한다고 생각하라. 과제는 hosman@nate.com으로 다음 시간 교육 전까지 제출할 것 학습의 순서 C : 가장 기본적인 콘솔 프로그램을 만드는 방법을 배운다. C++ : C에서 확장된 개념을 배운다. API : 윈도우즈에서 사용하는 프로그램을 만드는 방법을 배운다. MFC : 실제 개발자들이 사용하는 라이브러리에 대해 배운다. API C MFC C++

1. C 프로그래밍의 방법 C 언어 프로그래머 프로그램의 완성 과정 작성 컴파일 링크 실행 프로그래밍 언어이다. (컴퓨터와 대화할 수 있는 언어) 절차지향적 프로그래밍이다. (한 줄씩 순서대로 진행.) 프로그래머 프로그래밍 언어를 통해 실생활의 문제를 컴퓨터를 통해 해결하는 사람 프로그램의 완성 과정 프로그램의 작성 : Visual Studio 2003 .net C++을 이용하여 Code 작성 컴파일 : 소스 코드가 맞는 지, 틀렸는 지 검사 (Ctrl + F7) 링크 : 컴파일된 코드를 라이브러리 파일과 연결 실행 파일 생성 : 프로그램을 사용한다. (Ctrl + F5) 작성 컴파일 링크 실행

2. C 프로그램의 기본 구조 C 프로그램의 기본 구조 기억사항 코딩을 시작하면 이것부터 적어 놓고 시작한다!! #include <stdio.h> int main() { printf(“C 프로그래밍 시작 \n”); return 0; } 기억사항 모든 문장은 ;으로 끝난다. (예외 존재) printf() : 화면에 출력하는 함수 “String“ : 문자열 ‘A‘ : 문자 \n : 줄을 바꾸라는 의미 (Enter 키를 누른 효과 발생) 코딩을 시작하면 이것부터 적어 놓고 시작한다!!

3. printf 함수 printf()의 구조 printf()의 사용 예제 기억사항 printf(“나의 나이는 %d세 입니다. \n”, 20); printf(“%d + %d = %d입니다. \n”, 10, 20, 30); printf(“n이 \nm과 같다면 \nn = m이다. =n” ); printf(“1 + 2 = 5 \n”); printf(“%d - %d = %d \n” 50, 20); 기억사항 %d : 숫자를 출력할 때 사용 printf(%d의 갯수 와 콤마(,) 뒤에 오는 숫자의 개수가 같아야 한다) 함수명은 소문자로 적어야 돼고, 오타를 조심하며 꼭 ;는 빼먹지 않도록 주의한다.

4. 변수 변수의 정의 변수의 사용 예제 기억사항 변수 : 데이터를 저장할 수 있는 메모리 공간 프로그래머에 의해 언제든지 값이 변할 수 있다. 단, 메모리 공간의 주소는 바뀌지 않는다. (집 주인은 바뀌지만, 집 주소는 영원하다.) 변수의 사용 예제 int i; // 정수를 저장할 수 있는 메모리 공간. 이름은 i char c; // 문자 1개를 저장할 수 있는 메모리 공간. 이름은 c float f; // 실수를 저장할 수 있는 메모리 공간. 이름은 f 기억사항 변수명으로 사용할 수 있는 것은 알파벳, 숫자, 언더바(_)이다. 대소문자를 구분한다. (Form과 form은 다른 변수이다.) 변수명은 숫자로 시작할 수 없고 키워드(ex. int, printf)를 사용할 수 없다. 공백(space)이 포함될 수 없다. 변수는 초기화하지 않으면 쓰레기값이 들어있다.

5. 연산자 산술 연산자 대입 연산자 관계 연산자 논리 연산자 + : 덧셈 -: 뺄셈 * : 곱셈 / : 나눗셈 % : 나머지 = : 오른 쪽에 있는 값을 왼쪽에 대입 (수학에서의 개념과 틀리다!) 관계 연산자 == : 같은 지를 비교 < >: 크거나 작은 지를 비교 논리 연산자 && : 피연산자가 모두 참이면 true를 반환 || : 피연산자 중 하나라도 참이면 true를 반환

5. 연산자 기타 대입 연산자 증가, 감소 연산자 비트 연산자 기억사항 +=, -=, *=, /=, %= ++a, a++, --a, a— 비트 연산자 ~, &, ^, |, <<, >> 기억사항 앞 페이지의 연산자는 자주 쓰므로 반드시 기억한다. 이 페이지의 연산자는 나중에 좀 더 익숙해지면 필요하므로 그런 게 있다는 것만 기억한다. =과 ==을 혼동하지 말 것 (둘 다 수학의 같다는 개념과 틀리며, 서로 다른 의미로 동작한다.)

6. scanf 함수 기억사항 scanf()의 구조 scanf()의 사용 예제 scanf(“입력받은 값”, &변수); 2번째 인자의 변수 앞에 반드시 &을 붙여야 한다. 사용자가 입력할 때까지 무한 대기한다. scanf()의 사용 예제 scanf(“%d”, &i); // int i가 선언 되어있는 경우 scanf(“%f”, &f); // float f가 선언 되어있는 경우 scanf(“%s”, &c); // char c가 선언 되어있는 경우 (문자이지만 s를 써야함) scanf(“%d, %d, &i, &j); // int i, j가 선언되어 있는 경우 scanf(“%d, %f, &i, &f); // int i, float f가 선언되어 있는 경우 기억사항 두번 째 인자 앞에 & 붙이는 것 절대 잊지 말 것 두 개 이상의 값을 입력 받을 때는 공백(space)로 구분한다.

P1. 과제 1차 연습문제 (p77) 문제 1. 사용자로부터 두 개의 정수를 입력받아서 뺄셈과 곱셈 연산의 결과를 출력하는 프로그램을 작성하라. (모든 프로그램에서 printf()과 scanf()를 사용하라) 문제 2. 사용자로부터 세 개의 정수를 입력받은 다음에 곱과 합을 순서대로 진행해서 그 결과를 출력하는 프로그램을 작성하라. 문제 3. 하나의 정수를 입력받아서 제곱 연산을 한 다음 얻어지는 결과를 출력하는 프로그램을 작성하라. 문제 4. 입력받은 두 개의 정수를 나누었을 때 발생하는 나머지 값을 출력하는 프로그램을 작성하라. (%연산자를사용하라) 문제 5. 입력받은 세 개의 정수를 가지고 (a - b) * (b + c) * (c % a) 연산 결과를 출력하는 프로그램을 작성하라. 복습 1장부터 3장까지 읽고 이해한다.

7. 데이터 표현 방식 컴퓨터가 데이터를 표현하는 방식 데이터의 표현 단위 정수의 표현 방식 실수의 표현 방식 모든 데이터의 표현 및 연산을 2진수로 처리 2진수의 표현 범위 : 0, 1 10진수의 표현 범위 : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 16진수의 표현 범위 : 0, 1, 2, 3, 4, 5 ,6, 7, 8, 9, a, b, c, d ,e, f 데이터의 표현 단위 비트(bit) : 2진수 값 하나를 저장할 수있는 메모리 공간 바이트(byte) : 비트가 8개 모인 것 정수의 표현 방식 가장 왼쪽의 비트는 부호 비트 음수는 2의 보수로 표현 실수의 표현 방식 부동소수점 방식 : 적은 비트로 넓은 범위의 실수를 표현할 수 있지만, 부정확하다.

8. 기본 자료형 C 언어의 기본 자료형 sizeof 연산자 ASCII 코드 상수 영어와 특수문자에 대해 문자상수로 정한 표준 규약 상수 리터럴 상수 : 이름이 없는 상수 심볼릭 상수 : const 키워드를 이용하는 방식, 매크로를 이용하는 방식 자료형 할당되는 메모리 크기 표현 가능한 범위 char 1바이트 256가지의 문자 int 4바이트 -21억 ~ +21억 float 3.4 X 10-37 ~ 3.4 X 1038 double 8바이트 1.7 X 10-307 ~ 1.7 X 10308

9. 반복문, 조건문 for문의 구조 if문의 구조 루프의 생략과 탈출 그외의 반복문, 조건문 { 반복하고자 하는 내용 } if문의 구조 if(실행 조건) 실행하고자 하는 내용 루프의 생략과 탈출 break : 가장 가까이 감싸고 있는 반복문 하나를 탈출 continue : 루프의 맨 처음으로 돌아간다 그외의 반복문, 조건문 while, do~while, switch

P2. 과제 2차 연습문제 문제 1. 다음과 같은 출력을 하는 프로그램을 작성하라.(단, 삼각산의 높이는 사용자로부터 입력을 받도록 하며 for문을 이용하라) 문제 2. 사칙연산을 수행하는 프로그램을 작성하라. (단, 사칙연산을 하는 함수를 사용하여야 한다. 각각 ADD(), SUB(), MUL(), DIV()로 구현하라) 문제 3. 구구단 3, 5, 7단을 출력하는 프로그램을 작성하라. (단, 중첩된 for문의 형태로 구현하고, continue또는 break를 사용하라) 문제 4. 다음과 같은 출력을 하는 프로그램을 작성하라. (단, 삼각산의 높이는 사용자로부터 입력을 받도록 하며, for문과 if문을 이용하라) 복습 4장부터 9장까지 읽고 이해한다 * *** ***** ******* ********* ******** *********** *******************

10. 함수 함수의 구조 지역변수와 전역변수 기억사항 int Sum(int a, int b) { return a + b; } 지역변수 : 함수 구역 내에서만 사용 가능 전역변수 : 프로그램의 모든 구역에서 사용 가능 기억사항 함수의 인자값은 복사된 값이다. (Call by Value) 함수가 포함된 프로그램의 실행흐름을 이해한다.

11. 1차원 배열 배열의 정의 배열의 구조 기억사항 같은 자료형들의 모임 int array[10]; 배열의 길이는 오직 상수만 가능 첫 번째 요소는 [0]이다 배열의 초기화 : int array[5] = {0, 1, 2, 3, 4}; 배열의 마지막 요소는 null 문자이다. (문자열의 마지막을 뜻한다.)

12. 다차원 배열 다차원 배열의 형태 기억사항 1차원 배열 arr[2] 2차원 배열 arr[2][3] 어떠한 형태이든 배열은 1차원의 선형으로 접근한다. (논리적으로 나뉠 뿐이다.) arr[0] arr[1] arr[0][0] arr[0][1] arr[1][0] arr[1][1] arr[2][0] arr[2][1]

P3. 과제 3차 연습문제(p435) 복습 문제 1. 달팽이 만들기(단, 사용자로부터 개수를 입력받는다.) 문제 2. 숫자야구 만들기(단, 숫자의 선정은 ramdom()을 써서 랜덤하게 발생시킨다.) 복습 11장, 16장을 읽고 이해한다. 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 정답 : 4 6 8 1번째 도전 : 1 2 3 결과 : 0S 2번째 도전 : 4 5 6 결과 : 1S 1B 3번째 도전 : 4 6 7 결과 : 2S 4번째 도전 : 4 6 8 결과 : 3S

13. 포인터 포인터의 정의 포인터의 구조 포인터 문법의 이해 기억사항 포인터 : 메모리의 주소 값을 저장하기 위한 변수 int *pi = &i; 포인터 문법의 이해 &pi : pi의 주소 *pi : pi가 가리키고 있는 주소의 내용 pi : pi가 가리키고 있는 주소 기억사항 포인터는 4바이트, 포인터는 주소 임의의 한 포인터는 위 문법을 통해 값의 변동없이 3가지 값을 표현가능하다. 10 100번지 (int *pi;) 30 200번지 (int i;)

14. 배열과 포인터의 관계 배열명 포인터와 배열의 관계 기억사항 배열명은 상수 포인터 배열명은 첫 번째 요소의 주소 값을 나타낸다. Arr = &Arr[0] 포인터와 배열의 관계 int arr[3] = {0, 1, 2}; int *parr; parr = arr; // parr이 가리키는 주소는 arr(arr의 첫번째 요소의 주소)이다. arr[i] = *(parr + i) // arr이 포인터, 배열명인 경우 parr[0] : arr의 첫 번째 요소의 값 parr[1] : arr의 두 번째 요소의 값 parr[2] : arr의 세 번째 요소의 값 //parr이란 글자를 arr로 바꾸면 정확히 맞다!! 기억사항 포인터가 배열을 가리킬 때 배열처럼 사용할 수 있다. 포인터 연산은 대상의 크기에 영향을 받는다. 포인터 연산은 “숫자의 변화”가 아닌 “다음으로 넘어간다”는 의미로 받아들이자

15. 배열 포인터, 포인터 배열 포인터 배열 배열 포인터 기억사항 자료형이 포인터인 배열 int *arr[5] : 이름이 arr이고 int *형 자료 5개로 구성된 배열 배열 포인터 배열을 가리키는 포인터 int (*parr)[5] : 2차첨자가 5인 배열을 가리키는 포인터 기억사항 끝 말에 오는 게 핵심이다. 배열 포인터 배열 포인터 배열은 무엇인가? ▷ 배열을 가리키는 포인터의 배열을 가리키는 포인터의 배열이다!! 배열 포인터를 만들때는 반드시 괄호로 싸야 한다. (싸지 않으면 포인터 배열이다!)

16. 함수와 포인터의 관계 호출 방식 scanf()에서 &을 붙이는 이유 기억사항 Call by Value : 값의 복사에 의해 호출된다. Call by Reference : 주소를 전달한다. scanf()에서 &을 붙이는 이유 scanf()는 함수이다. 변수에 입력받은 내용을 담기위해 Call by Reference방식을 사용한다. 주소를 전달해야 하므로 &을 붙여야 한다 문자열은 왜 &을 안 붙일까? : 배열명은 배열의 주소를 나타내기 때문이다. 기억사항 호출 방식에 대한 그림이 그려져야 한다. 함수의 인자가 무엇이냐에 따라 호출 방식이 틀려진다.

S1. 과제 4차 세미나 발표 작성시 유의사항 과제 1. 책의 12, 13, 14장을 읽고 PPT 파일을 작성하라 파워포인트를 이용해서 작성할 것 책의 코드를 옮기지 말고 이해한 내용을 축약해서 표현할 것 과제 당 PPT는 10장 내로 작성할 것 발표시간은 20분으로 맞출 것

T1. C 프로그래밍 Term 도서 관리 프로그램을 작성하시오 조건 메뉴 구성 : 삽입, 삭제, 검색, 종료 삽입 : 동적할당을 이용하여 삽입 기능을 구현한다. 삭제 : memmove()를 이용하여 삭제 기능을 구현한다. 검색 : 저자로 단순 검색하는 기능을 구현한다. 종료 : 파일 입출력을 이용하여 종료 시 책 정보를 파일에 저장한다. 책 정보는 구조체 배열로 구현하며 [책 제목, 저자, 출판사]를 나타낸다. (길이는 #define MAX 50 로 한다) [도서 관리 프로그램] 삽입 삭제 검색 종료 [책 구조체] 제목 : C 프로그래밍 저자 : 홍길동 출판 : 조선사