자전거를 배우려면 안장에 올라가 페달을 밟아라.

Slides:



Advertisements
Similar presentations
파이썬 (Python). 1 일 : 파이썬 프로그래밍 기초 2 일 : 객체, 문자열 3 일 : 문자인코딩, 정규표현식, 옛한글 4 일 : 파일 입출력 5 일 : 함수와 모듈 6 일 : 원시 말뭉치 다루기 실습 7 일 : 주석 말뭉치 다루기 실습 8 일 : 웹 데이터로.
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.
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
컴퓨터와 인터넷.
Part 03 상수, 변수, 자료형 ©우균, 창병모 © 우균, 창병모.
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++로 프로그래밍한다는 것의 의미 세상에서 가장 간단한 C++ 프로그램
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.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
Chapter 7. 조건문.
-Part2- 제3장 포인터란 무엇인가.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
오일석, C와 ALPS, 장. C로 풍덩 © 오일석, 전북대학교 컴퓨터공학.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
6 반복문의 기본 for 문 여러 번 반복하는 작업은 for 문으로!.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
고급 선택 제어문과 반복문 Chapter 9 C에서의 다중 선택 제어문 선 검사 반복 구조와 for 문
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
2주차: 변수, 수식, Control Flow.
Part 07 제어 구조 ©우균, 창병모 © 우균, 창병모.
6장. printf와 scanf 함수에 대한 고찰
Tail-recursive Function, High-order Function
14장. 포인터와 함수에 대한 이해.
11장. 1차원 배열.
C#.
C 2장. C 프로그램 시작하기 #include <stdio.h> int main(void) { int num;
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express Slide 1 (of 27)
JA A V W. 03.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
어서와 C언어는 처음이지 제14장.
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
자전거를 배우려면 안장에 올라가 페달을 밟아라.
자전거를 배우려면 안장에 올라가 페달을 밟아라.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express Slide 1 (of 22)
7장. 다양한 형태의 반복문. 7장. 다양한 형태의 반복문 7-1 반복문이란? 반복문의 기능 세 가지 형태의 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 7-1 반복문이란? 반복문의 기능 특정 영역을 특정 조건이 만족하는 동안에 반복.
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
에어 조건문.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
컴퓨터 프로그래밍 기초 - 5th : 조건문(if, else if, else, switch-case) -
Choi Seong Yun 컴퓨터 프로그래밍 기초 #06 : 반복문 Choi Seong Yun
자바 5.0 프로그래밍.
김선균 컴퓨터 프로그래밍 기초 - 7th : 함수 - 김선균
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
5장 선택제어문 if 선택문 switch-case 선택문 다양한 프로그램 작성 조건 연산자.
Choi Seong Yun 컴퓨터 프로그래밍 기초 #03 : 변수와 자료형 Choi Seong Yun
Fucntion 요약.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
제 15 강 문자와 코드 shcho.pe.kr.
2장 PHP 기초 PHP의 시작과 끝을 이해한다. 주석문에 대하여 이해한다. echo 문을 이용하여 화면에 출력하
7장. 다양한 형태의 반복문. 7장. 다양한 형태의 반복문 7-1 반복문이란? 반복문의 기능 세 가지 형태의 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 7-1 반복문이란? 반복문의 기능 특정 영역을 특정 조건이 만족하는 동안에 반복.
TVM ver 최종보고서
컴퓨터 프로그래밍 기초 - 9th : 배열 / 포인터 -
Numerical Analysis Programming using NRs
8장 선택 논리 II 1. 논리연산자 1.1 논리연산자 : AND (&&) 1.2 논리연산자 : OR (||)
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
제 29 강 스트링(string) 다루기 s a i s . s T i h t g r i n.
어서와 C언어는 처음이지 제21장.
수업 내용 수업 목표 강의 내용 강의 계획서 교과서 및 참고도서 평가 방법 수강생의 학습 방법 제안 강의자료 사이트
13. 포인터와 배열! 함께 이해하기.
6 객체.
Presentation transcript:

자전거를 배우려면 안장에 올라가 페달을 밟아라. C 언어의 특징 쉽다 연습이다. 자전거를 배우려면 안장에 올라가 페달을 밟아라. C 프로그래밍을 배우려면 컴퓨터 앞에 앉아 프로그래밍하라. 넘어지면 피나고 자전거 망가진다. 에러 나도 피 안나고 컴퓨터 멀쩡하다. 친절하게도 컴파일러가 에러 교정을 가이드한다. 더욱 친절하게도 교수님이 지도해 준다.

컴퓨터 프로그래밍 공부의 왕도 이 책은 예제에 의한 학습 연습에 의한 학습 연습, 또 연습, 또 연습하고… 그러다 보면 어느새 고수.. 이 책은 절 끝에서 예제 프로그램의 다양한 변신을 해 봄 3~7장 뒤에는 스스로 해 보는 프로젝트 문제

스타일 좋은 스타일은 어디서나 각광받는다. 프로그래밍 목표 = 옳게 작동 + 좋은 스타일 이 책은 스타일링 요소를 중요하게 다룬다. 좋은 스타일은 어디서나 각광받는다. http://tvpot.daum.net/clip/ClipViewByVid.do?vid=JTJf238z1wA$ 나쁜 스타일 좋은 스타일

1.1 나도 C 프로그래머이다. 구문과 의미를 이해하면 나도 C 프로그래머이다. #include main() 함수 printf() retrun 0와 반환형 int 주석문 /* … */

1.1.1 명령문 모든 명령문의 끝은 ;로 끝남 C 언어의 명령문 종류는 많지 않다. 여러 문을 하나의 묶음으로 만들려면 복합문 { … } 주석문 여러 줄 /* ... */ 한 줄 // ... C의 예약어

C 프로그래밍 절차

컴파일러 (부록 E) C 언어를 기계어로 번역 명령어 라인 인터페이스 통합 개발 환경 (IDE)

Dev C++ 컴파일러 사용하기

오류 메시지를 주의깊게 살피는 습관을 가져라.

C 언어의 정의

예제 1 //******************************************************************** // 표준 출력에 Hello World !를 출력하는 프로그램 #include <stdio.h> #include <stdlib.h> int main() { puts("Hello, World !"); system("PAUSE"); return 0; }

printf(), puts(),putchar() 의 차이점은? printf의 경우에는 %d 등과 같은 서식문자열을 출력할 수 있고, puts는 단순히 문자열만 출력 가능 즉, 단순 문자열만 출력하는 경우라면 puts를 쓰는 것이 좋음

예제 2 //******************************************************************** // '본인의 학과, 본인의 학번, 이름' 을 출력하는 프로그램 #include <stdio.h> #include <stdlib.h> int main() { puts("본인의 학과, 본인의 학번, 이름"); system("PAUSE"); return 0; }

1.2 입출력을 해 보자. 라인 5: 변수 선언 라인 10의 scanf(): 키보드에서 데이터를 입력 라인 12: 연산을 수행하고 결과를 celsius라는 변수에 저장

프로그램의 전형적인 실행 과정

출력문 printf()

입력문 scanf() 입력 리스트에는 단일 변수 변수 앞에 주소 연산자 &

연습 문제 (실습 용)

1.3 메뉴를 제공하자. 여러 기능을 가진 프로그램이 가치가 더 높다. 두 가지 기능의 프로그램으로 확장해 보자. if 문으로 ‘선택’ 라인 5-7: 변수 선언 라인 9-13: 메뉴 디스플레이

1.3 메뉴를 제공하자. 변수 choice의 값에 따라 세 가지 경우 중의 하나를 실행 라인 15-20: 인치  센티미터 라인 21-26: 화씨  섭씨 라인 27-30: 틀린 메뉴

1.3.1 변수 변수: 어떤 값을 저장하는 곳 사용되기 전에 반드시 정의 모든 변수는 형을 가짐 (3장에서 자세히 공부) celsius, fahrenheit, centimeter, inch는 float 형 (실수) choice는 int 형 (정수) 정의할 때 초기화 가능 언제 어떻게 초기화 할지 판단은 프로그래머의 몫

변수 변수(variable) 사용 전 변수 선언 자료형 변수이름; 데이터를 저장하는 데 사용되는 기억 장소의 이름이다. 변수 이름과 저장할 데이터 값의 유형(자료형)을 지정해야 한다.      자료형 변수이름;      char c; short sum;

변수 이름을 잘 지어라. 작명법 만일 choice를 kkk로 바꾸면 기능은 같지만 스타일이 망가진다. 하얀 양복에 빨간 구두를 신은 우스운 스타일 menu는 여전히 멋진 스타일 ‘데이터의 의미를 뜻하는’ 이름은 붙여 주어라. 작명법 i, I, start, v12, _init등은 허용 8i, start*는 허용 안됨 때로 두 단어 붙여 작명 예) initial_condition이나 InitialCondition

식별자 식별자 x25 X age01 sum _jumsu address_01 25x X# 01age sum* -jumsu 변수, 상수, 함수 등에 대한 이름 문자와 숫자로 구성되며 첫 번째 글자는 반드시 문자 밑줄문자’_’도 하나의 문자로 사용될 수 있음 대소문자를 구별 바른 이름 잘못된 이름 x25  X  age01  sum  _jumsu  address_01  25x  X#  01age  sum*  -jumsu  address-01 바른 식별자, 잘못된 식별자

대입문 expression을 계산하여 얻은 값을 변수 a에 저장

예제 3 실행결과: 첫 번째 점수는 7 두 번째 점수는 10 세 번째 점수는 8 네 번째 점수는 9

1.3.2 if 문 제어문은 프로그램의 실행 순서를 제어함 if 문: 조건에 따라 실행할 문을 선택

if 문 형식 if (조건식) 제어 흐름 조건식이 참이면 문장1을 실행하고, 다음 문장으로 진행        문장1; 제어 흐름 조건식이 참이면 문장1을 실행하고, 다음 문장으로 진행 조건식이 거짓이면 문장1을 실행하지 않고, 다음 문장으로 진행 조건식 거짓 참 문장 1

if 문 예 if (x > 0) printf ("x가 양수이다."); if (a < min) min = a; 주의! C 언어에서는 0은 거짓으로 0 이외의 값은 모두 참으로 간주한다. if (x)    printf("x가 0이 아님“);

if-else 문 if-else 문은 조건에 따라 실행할 문장을 선택할 수 있다. 구문 형식 if (조건식) 제어 흐름      문장1; else      문장2; 제어 흐름 조건식이 참이면 문장1을 실행하고, 거짓이면 문장 2 실행 조건식 문장 2 거짓 참 문장 1

if-else 문 예 a, b 값 중 작은 값을 min에 대입하는 문장 if (a < b) min = a; else      min = b;

복합문(compound statement) 중괄호로 둘러싸인 문장들의 집합 필요하면 변수 혹은 상수들을 먼저 선언할 수 있다. 구문 형식 {      선언들;      문장 1;      문장 2;      . . .      문장 n; } 주의! 복합문도 하나의 문장처럼 사용될 수 있다

예제4 실행결과: 입력 1: 20 입력 2: 35 작은 값: 20 큰 값: 35

중첩된 if(nested if) if 문 내에 또 다른 if 문을 포함할 수 있다. 예 이미 결정한 사항에 기초하여 또 다른 결정을 할 수 있다. 예 if (num1 < num2)    if (num1 < num3)         min = num1;     else         min = num3;

예제5

중첩된 if 문 중첩된 if 문에서, else 절은 짝이 없는 가장 가까운 if와 짝이 된다. if (num1 < num2)    if (num1 < num3)         min = num1;     else         min = num3; vs {     if (num1 < num3)        min = num1; } else min = num3;

중첩된 if 문을 이용한 다중선택 형식 if (조건식1) 문장1; else if (조건식2) 문장2; ...     문장1; else if (조건식2)      문장2;      ... else if (조건식n)     문장n;   조건식1 참 거짓 문장 1 참 조건식2 문장 2 거짓 조건식n 참 문장 n 거짓

예제6 실행결과: 점수 입력: 85 점수: 85           학점: B

if 문의 일반적 구문 조건식 ci는 관계 연산자로 만듦 exp는 단일 변수 또는 수식

연습 문제 (실습 용)

1.3.3 중첩 선택 주 메뉴와 부 메뉴를 가지도록 기능 확장해 보자.

프로그램에 자주 등장하는 여러 형태의 중첩 구조

연습 문제 (실습 용)

1.4 반복하자. 서비스를 반복하도록 기능 확장 (while 문 이용) …… …… ……

1.4.1 while 문

while 문 while 문 구문 형식 제어 흐름 조건이 거짓이 될 때까지 동일한 문장을 반복해서 실행한다.     문장1; 제어 흐름 조건식을 계산하고, 그 값이 참(0이 아닌 값)인 동안 문장 1를 반복해서 실행한다. 조건이 거짓이 되면 while 문을 종료하고 다음 문장을 실행한다. 조건식 문장 참 거짓

예제7 실행결과: 1부터 100까지 홀수의 합은 2500 입니다.

연습 문제 (실습 용)

1.5 함수를 만들자. …… …… …… 함수: 특정한 작업을 전문적으로 해 주는 프로그램 모듈 함수 호출: 라인 16과 37 함수의 원형: 라인 8 …… …… ……

함수의 정의 함수의 일반적 구문

함수의 정의와 선언 int Add(int i, int j) { int result = i+j; return result; } 전달 인자와 반환 값, 둘 다 있는 함수 int Add(int i, int j) { int result = i+j; return result; }

함수의 정의와 선언 함수 호출 과정의 이해 #include <stdio.h> int Add(int i, int j) { int result = i + j; return result; } int main(void) int d; d = Add(3, 4); printf("%d \n", d); return 0;

연습 문제 (실습 용)

1.5.2 매개 변수와 반환 값을 가진 함수 함수의 정보 교환 매개 변수: 라인 20의 fahr return 문: 라인 25

연습 문제 (실습 용)

1.6 또 다른 반복 …… 온도 변환 표를 만드는 문제 START에서 END까지 DELTA 만큼씩 증가 #define 문은 기호 상수 정의 #define symbol constant ……

1.6.1 for 문

for 문 for 문 구문 형식 제어 흐름 보통 정해진 회수만큼 반복할 때 사용된다.     문장1; 제어 흐름 수식1: 초기화를 위한 수식 루프를 시작하기 전에 한번 계산 수식2: 부울 조건식 문장1 실행 전에 계산 값이 참(0이 아닌 값)이면 문장1 실행 거짓(값이 0)이면 루프를 벗어남 수식3: 수식2의 변수 증가/감소 위한 식 문장1 실행 후에 계산 수식2 문장1 참 거짓 수식1 수식3

for 문 예 for 루프를 사용해서 1부터 100까지의 자연수의 합 계산 for (count = 1; count <= 100; count++)     total = total + count; for (count = 100; count > 0; count--)     total = total + count;

아래 while을 for로 바꿔 쓰면, 보다 간략하게 고쳐 쓰면,

연습 문제 (실습 용)

1.7 프로그래밍 스타일: 가독성 프로그래머의 개성 프로그래밍은 과학이 아니라 예술이라 말하기도 함 프로그램 스타일은 프로그래머의 개성에 많은 영향을 받음 프로그램의 모양에 관한 스타일 하나: 가독성을readability 높여라. 들여 쓰기 의미 있는 변수 이름 기능별로 구분하기 위한 빈 줄 아래는 나쁜 스타일이다. 소프트웨어의 유지보수와 재사용 측면에서 매우 중요

연습 문제 (실습 용)

1.8 C 언어의 특징 1972년 Dennis Ritchie와 Ken Thompson이 개발, 현재 가장 널리 쓰이는 언어임 학생이 가져야 할 마음 자세 중요하다. C를 잘 하면 C++와 Java도 잘 한다. 재미있다. 나의 개성을 발산하자. 다른 언어와 차별성 Unix와 밀접한 관련이 있다. (Linux 기반 임베디드에 적합) 간결하다. 기계에 가깝다. C++는 C의 객체 지향 버전이다.

C 언어의 개론 (1) 프로그래밍 언어란 무엇인가? 컴파일이란 무엇인가? 사람과 컴파일러가 이해할 수 있는 약속된 형태의 언어 프로그래밍 언어로 작성된 프로그램을 컴퓨터가 이해할 수 있도록 기계어로 번역해 주는 역할을 하는 번역기

C 언어의 개론 (2) C 언어의 장점 C 언어의 단점 익숙해지는데 오랜 시간이 걸리지 않는다. 이식성이 좋다. 효율성이 높다. C 언어의 단점 프로그래밍 하는데 많은 주의를 요한다. 완전한 고급 언어에 비해 상대적으로 어렵다.

C 언어 유래 및 특징 1972년 Dennis Ritchie가 설계함 C 언어에 직접 영향을 준 언어들 특징 UNIX 운영체제 개발에 사용됨 C 언어에 직접 영향을 준 언어들 Algol  CPL  BCPL  B  C 특징 구조화된 언어로서 모듈별 설계가 가능하다. 이식성이 높다(다양한 하드웨어에서 사용 가능). 효율적이다(처리속도가 빠르다). 다양한 연산자를 제공한다. 동적 메모리 관리가 가능하다.