코딩인카페 C&JAVA 기초과정 C프로그래밍(1)

유익아카데미
유익아카데미Software Learning Consultant à 유익아카데미
2016.08.16
1
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
2
C 프로그래밍 (1)
컴퓨터의 정보처리
키보드
하드디스크
파일
50 90
75 100
…….
프로그램
프로그램
입력
입력
출력
출력
100
75
90
화면
화면
평균 점수는
72점
평균 점수는
72점
50
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
3
C 프로그래밍 (1)
프로그램의 구성
C언어 프로그램
int main(int argc, char *argv[]){
……………
}
메인 루틴
전처리기라이브러리
특정부분에 특정
파일을 삽입
(#include stdio.h)
#include
특정 문자열을
특정 문자열로
치환
(#define PI 3.14)
#define
조건에 맞춰 특정
행을 삭제 또는
삽입
(#ifdef, #else, #end)
기타
#include <stdio.h>
전처리기
int factorial(int n) { …….. }
서브 루틴
printf(), scanf(), sin()
라이브러리
문자출력 함수
(printf("%dn", n))
printf()
키보드로부터 문자
입력 함수
(scanf("%d", &n))
scanf()
표준 라이브러리
함수, 사전 준비된
프로그램
(fprintf(), sin(), stoi())
기타
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
4
C 프로그래밍 (1)
컴파일(compile)과 어셈블(assemble)
stdio.h
math.h
Stdlib.h
헤더파일
printf()
scanf()
atoi()
라이브러리
C 프로그램 빌드(build)의 흐름
[넓은 의미의 컴파일]
C 소스 코드
전 처리된
C 소스 코드
어셈블리 언어
기계어
(오브젝트 코드)
기계어
(실행 가능한
프로그램)
프리 프로세스
컴파일 링크
어셈블
좁은 의미의
컴파일
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
5
라이브러리의 링크
링크 전
링크 후
printf()
scanf()
atoi()
라이브러리
링크 처리
fprintf 심볼 참조
printf 심볼 참조
atoi 심볼 참조
factorial 심볼 참조
main의 실체
factorial의 실체
fprintf 심볼 참조
printf 심볼 참조
atoi 심볼 참조
factorial 심볼 참조
factorial의 실체
fprintf의 실체
printf의 실체
atoi의 실체
fprintf의 실체
printf의 실체
atoi의 실체
factorial의 실체
심볼에 대응하는 함수를
라이브러리에서 가져와 연결한다.
C 프로그래밍 (1)
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
6
C 프로그래밍 (1)
일반 컴파일과 크로스 컴파일
일반 컴파일
(범용 컴퓨터)
소스 코드
실행 가능
프로그램
컴파일
로드
개발 머신과 타깃 머신이 동일
실행
크로스 컴파일
(임베디드 시스템)
소스 코드
실행 가능
프로그램
컴파일
개발 머신(PC 등)
실행 가능
프로그램
로드
실행
타깃 머신
(가전 제품 등)
전송
시스템에 따라서는 직접
불휘발성 메모리에서
실행하는 경우 있음
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
7
C 언어 코드의 기본 구조
C 프로그래밍 (1)
/* 화면으로 문자를 출력하는 코드 */
#include <stdio.h>
int main(void)
{
printf(“C 언어에 입문하신 걸 환영합니다!n”);
printf(“C 언어를 시작합니다!n”);
return 0;
}
주석문 : 코드에 대한 설명,
이 부분은 무시하고 처리
프로그램
본체
(main 함수)
main() 함수의 시작 부분
main() 함수의 종료 부분
문(statement) : 하나의 작은 처리(‘작업’) 단위로
마지막에 ; 세미콜론을 붙임
첫번째 실행
두번째 실행
문은 원칙적
으로 처음부터
순서대로 처리
들여쓰기
인클루드(include) : 헤더파일을 읽어 들임
# 기호 있는 줄 : 전처리기(preprocessor)가
다른 코드 번역하기 전에 읽어 들임
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
- 변수는 컴퓨터의 메모리를 이용해서
여러 가지 값을 기억하는 기능함
- A = 100 ,
변수 A 라는
메모리 공간에
100을 저장
변수의 정의, 특징
8
변수와 식별자
C 프로그래밍 (1)
메모리
0x9E 번지
0x9F 번지
0xA1 번지
0xA2 번지
변수 A
100
- 식별자(identifier) : 변수의 이름으로
사용할 수 있는 문자와 수치의 조합
< 식별자 작성 규칙 >
- 영문, 숫자, 밑줄 문자(underscore, _)
가운데 하나를 사용할 수 있고,
특수 기호를 포함할 수 없음
- 환경에 따라서 31 문자까지 제한
- C언어의 예약어(keyword) 사용 불가
- 숫자료 시작 불가
- 대문자와 소문자는 구별됨
< 잘못된 예 >
- 12a : 숫자로 시작하면 안됨
- return : 예약어는 사용 불가
- is-a : 특수 기호는 사용 불가
변수의 이름 = 식별자
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
9
변수의 데이터형(data type)
C 프로그래밍 (1)
종류 이름 크기 기억할 수 있는 값의 범위
문자형
char 1바이트 영문숫자 1문자 -128 ~ 127
unsigned char 1바이트 영문숫자 1문자(부호 없음) 0 ~ 255
정수형
short int 2바이트 정수 -32768 ~ 32767
unsigned short int 2바이트 정수(부호 없음) 0 ~ 65535
int 4바이트 정수 -2147483648 ~ 2147483647
unsigned int 4바이트 정수(부호 없음) 0 ~ 4294967295
long int 4바이트 장정수 -2147483648 ~ 2147483647
unsigned long int 4바이트 장정수(부호 없음) 0 ~ 4294967295
부동
소수점형
float 4바이트 단정밀도 부동소수점수 3.4E-38 ~ 3.4E+38
double 8바이트 배정밀도 부동소수점수 1.7E-308 ~ 1.7E+308
long double 16바이트
확장 배정밀도 부동소수점수
1.7E-308 ~ 1.7E+308
☞ 단, C언어의 기본형 크기는 개발환경에 따라 차이가 있을 수 있음
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
10
변수의 선언 및 이용
C 프로그래밍 (1)
- 변수 선언(declaration) : 변수 이름과
형을 결정하고 변수를 준비하는 작업
변수의 선언
- 변수 값의 대입(assignment) :
변수를 선언하고 변수에 특정한
값을 저장 또는 기억시키는 작업
변수 값의 대입
변수 선언 구문
Int num; -> int형 변수 num입니다.
char c; -> char형 변수 c입니다.
double db, dd; -> double형인 두 개의
변수 db와 dd입니다.
numint형
형 이름 식별자;
변수 값 대입 구문
…….
int num;
num = 3;
printf(“변수 num의 값은 %d입니다.n”,
num);
- 실행 화면 -
변수 num의 값은
3입니다.
변수 이름 = 식;
num
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
11
C 프로그래밍 (1)
#include <stdio.h>
int main(void) {
int num1 = 3;
int num2;
printf(“변수 num1의 값은 %d입니다. n”, num1 );
num1 = 5;
printf(“변수 num1의 값을 %d로 변경했습니다. n”, num1);
num2 = num1;
printf(“num1 값을 num2에 대입하여 num2 값은 %d입니다. n”, num2);
return 0;
}
Sample4.c 소스코드
변수 num1의 값은 3입니다.
변수 num1의 값을 5로 변경했습니다.
num1 값을 num2에 대입하여 num2 값은 5입니다.
Sample4 실행 화면
변수 초기화 및 값의 변경
변수 초기화 구문
형 이름 식별자 = 식;
num1 num1 num2
num1=5; num2=num1;num1=3;
변수 선언은 함수 블록 안에서 다
른 문보다 맨 위에 먼저 표기한다.
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
12
본 자료는 코딩인카페 1기 C&JAVA 기초과정
4회차 자료 중 일부를 발췌한 내용입니다.
< 참고자료 >
1. C를 배우기전에 반드시 알아야 할 것들, 무라야마 유키오, 루비페이퍼
2. 그림으로 배우는 C프로그래밍, 마나 다카하시, 영진닷컴
1 sur 12

Contenu connexe

Tendances

프로그래밍 및 실습 Chap2프로그래밍 및 실습 Chap2
프로그래밍 및 실습 Chap2dktm
2.5K vues89 diapositives
C수업자료C수업자료
C수업자료koominsu
3.6K vues124 diapositives
6장 표현식 및 문장6장 표현식 및 문장
6장 표현식 및 문장재정 이
979 vues39 diapositives
C++ 타입 추론C++ 타입 추론
C++ 타입 추론Huey Park
2.1K vues20 diapositives

En vedette(16)

El calostro herramienta para la cria de ternerosEl calostro herramienta para la cria de terneros
El calostro herramienta para la cria de terneros
razasbovinasdecolombia1K vues
Cattle care standards (usa)Cattle care standards (usa)
Cattle care standards (usa)
razasbovinasdecolombia1.2K vues
La porta de l'aireLa porta de l'aire
La porta de l'aire
siseA303 vues
Project presentationProject presentation
Project presentation
rhiannon_folan233 vues
Bull buyers guide (uk)Bull buyers guide (uk)
Bull buyers guide (uk)
razasbovinasdecolombia1.2K vues
Daily routineDaily routine
Daily routine
maria alejandra Monges873 vues
Director researchDirector research
Director research
Syed Shan Tariq888 vues
Cri leite europeu 2015Cri leite europeu 2015
Cri leite europeu 2015
razasbovinasdecolombia903 vues
21st Century/Group Project21st Century/Group Project
21st Century/Group Project
dingess60148 vues
Character SketchesCharacter Sketches
Character Sketches
Syed Shan Tariq539 vues
Safe cattle handling (new zealand)Safe cattle handling (new zealand)
Safe cattle handling (new zealand)
razasbovinasdecolombia1.3K vues
iCloudiCloud
iCloud
karissa1900666 vues

Similaire à 코딩인카페 C&JAVA 기초과정 C프로그래밍(1)

강의자료 2강의자료 2
강의자료 2Young Wook Kim
1.1K vues45 diapositives
HI-ARC PS 101HI-ARC PS 101
HI-ARC PS 101Jae-yeol Lee
140 vues48 diapositives
[170327 1주차]C언어 A반[170327 1주차]C언어 A반
[170327 1주차]C언어 A반arundine
381 vues37 diapositives
About  Visual C++ 10About  Visual C++ 10
About Visual C++ 10흥배 최
1.5K vues92 diapositives

Similaire à 코딩인카페 C&JAVA 기초과정 C프로그래밍(1)(20)

강의자료 2강의자료 2
강의자료 2
Young Wook Kim1.1K vues
HI-ARC PS 101HI-ARC PS 101
HI-ARC PS 101
Jae-yeol Lee140 vues
[170327 1주차]C언어 A반[170327 1주차]C언어 A반
[170327 1주차]C언어 A반
arundine381 vues
About  Visual C++ 10About  Visual C++ 10
About Visual C++ 10
흥배 최1.5K vues
6 function6 function
6 function
웅식 전608 vues
C언어 세미나 - 함수C언어 세미나 - 함수
C언어 세미나 - 함수
SeungHyun Lee340 vues
소프트웨어의 계층구조소프트웨어의 계층구조
소프트웨어의 계층구조
Wonjun Hwang81 vues
06장 함수06장 함수
06장 함수
유석 남1.7K vues
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1
happychallenge5.3K vues
C언어 들어가기C언어 들어가기
C언어 들어가기
jaypi Ko329 vues
C언어 들어가기C언어 들어가기
C언어 들어가기
jaypi Ko956 vues
Changes in c++0xChanges in c++0x
Changes in c++0x
Sang Yeon Jeon682 vues
초보 프로그래머초보 프로그래머
초보 프로그래머
Yong Heui Cho12.1K vues
파이선 실전공략-1파이선 실전공략-1
파이선 실전공략-1
Nomota Hiongun KIM6.6K vues

코딩인카페 C&JAVA 기초과정 C프로그래밍(1)

  • 2. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 2 C 프로그래밍 (1) 컴퓨터의 정보처리 키보드 하드디스크 파일 50 90 75 100 ……. 프로그램 프로그램 입력 입력 출력 출력 100 75 90 화면 화면 평균 점수는 72점 평균 점수는 72점 50
  • 3. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 3 C 프로그래밍 (1) 프로그램의 구성 C언어 프로그램 int main(int argc, char *argv[]){ …………… } 메인 루틴 전처리기라이브러리 특정부분에 특정 파일을 삽입 (#include stdio.h) #include 특정 문자열을 특정 문자열로 치환 (#define PI 3.14) #define 조건에 맞춰 특정 행을 삭제 또는 삽입 (#ifdef, #else, #end) 기타 #include <stdio.h> 전처리기 int factorial(int n) { …….. } 서브 루틴 printf(), scanf(), sin() 라이브러리 문자출력 함수 (printf("%dn", n)) printf() 키보드로부터 문자 입력 함수 (scanf("%d", &n)) scanf() 표준 라이브러리 함수, 사전 준비된 프로그램 (fprintf(), sin(), stoi()) 기타
  • 4. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 4 C 프로그래밍 (1) 컴파일(compile)과 어셈블(assemble) stdio.h math.h Stdlib.h 헤더파일 printf() scanf() atoi() 라이브러리 C 프로그램 빌드(build)의 흐름 [넓은 의미의 컴파일] C 소스 코드 전 처리된 C 소스 코드 어셈블리 언어 기계어 (오브젝트 코드) 기계어 (실행 가능한 프로그램) 프리 프로세스 컴파일 링크 어셈블 좁은 의미의 컴파일
  • 5. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 5 라이브러리의 링크 링크 전 링크 후 printf() scanf() atoi() 라이브러리 링크 처리 fprintf 심볼 참조 printf 심볼 참조 atoi 심볼 참조 factorial 심볼 참조 main의 실체 factorial의 실체 fprintf 심볼 참조 printf 심볼 참조 atoi 심볼 참조 factorial 심볼 참조 factorial의 실체 fprintf의 실체 printf의 실체 atoi의 실체 fprintf의 실체 printf의 실체 atoi의 실체 factorial의 실체 심볼에 대응하는 함수를 라이브러리에서 가져와 연결한다. C 프로그래밍 (1)
  • 6. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 6 C 프로그래밍 (1) 일반 컴파일과 크로스 컴파일 일반 컴파일 (범용 컴퓨터) 소스 코드 실행 가능 프로그램 컴파일 로드 개발 머신과 타깃 머신이 동일 실행 크로스 컴파일 (임베디드 시스템) 소스 코드 실행 가능 프로그램 컴파일 개발 머신(PC 등) 실행 가능 프로그램 로드 실행 타깃 머신 (가전 제품 등) 전송 시스템에 따라서는 직접 불휘발성 메모리에서 실행하는 경우 있음
  • 7. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 7 C 언어 코드의 기본 구조 C 프로그래밍 (1) /* 화면으로 문자를 출력하는 코드 */ #include <stdio.h> int main(void) { printf(“C 언어에 입문하신 걸 환영합니다!n”); printf(“C 언어를 시작합니다!n”); return 0; } 주석문 : 코드에 대한 설명, 이 부분은 무시하고 처리 프로그램 본체 (main 함수) main() 함수의 시작 부분 main() 함수의 종료 부분 문(statement) : 하나의 작은 처리(‘작업’) 단위로 마지막에 ; 세미콜론을 붙임 첫번째 실행 두번째 실행 문은 원칙적 으로 처음부터 순서대로 처리 들여쓰기 인클루드(include) : 헤더파일을 읽어 들임 # 기호 있는 줄 : 전처리기(preprocessor)가 다른 코드 번역하기 전에 읽어 들임
  • 8. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ - 변수는 컴퓨터의 메모리를 이용해서 여러 가지 값을 기억하는 기능함 - A = 100 , 변수 A 라는 메모리 공간에 100을 저장 변수의 정의, 특징 8 변수와 식별자 C 프로그래밍 (1) 메모리 0x9E 번지 0x9F 번지 0xA1 번지 0xA2 번지 변수 A 100 - 식별자(identifier) : 변수의 이름으로 사용할 수 있는 문자와 수치의 조합 < 식별자 작성 규칙 > - 영문, 숫자, 밑줄 문자(underscore, _) 가운데 하나를 사용할 수 있고, 특수 기호를 포함할 수 없음 - 환경에 따라서 31 문자까지 제한 - C언어의 예약어(keyword) 사용 불가 - 숫자료 시작 불가 - 대문자와 소문자는 구별됨 < 잘못된 예 > - 12a : 숫자로 시작하면 안됨 - return : 예약어는 사용 불가 - is-a : 특수 기호는 사용 불가 변수의 이름 = 식별자
  • 9. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 9 변수의 데이터형(data type) C 프로그래밍 (1) 종류 이름 크기 기억할 수 있는 값의 범위 문자형 char 1바이트 영문숫자 1문자 -128 ~ 127 unsigned char 1바이트 영문숫자 1문자(부호 없음) 0 ~ 255 정수형 short int 2바이트 정수 -32768 ~ 32767 unsigned short int 2바이트 정수(부호 없음) 0 ~ 65535 int 4바이트 정수 -2147483648 ~ 2147483647 unsigned int 4바이트 정수(부호 없음) 0 ~ 4294967295 long int 4바이트 장정수 -2147483648 ~ 2147483647 unsigned long int 4바이트 장정수(부호 없음) 0 ~ 4294967295 부동 소수점형 float 4바이트 단정밀도 부동소수점수 3.4E-38 ~ 3.4E+38 double 8바이트 배정밀도 부동소수점수 1.7E-308 ~ 1.7E+308 long double 16바이트 확장 배정밀도 부동소수점수 1.7E-308 ~ 1.7E+308 ☞ 단, C언어의 기본형 크기는 개발환경에 따라 차이가 있을 수 있음
  • 10. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 10 변수의 선언 및 이용 C 프로그래밍 (1) - 변수 선언(declaration) : 변수 이름과 형을 결정하고 변수를 준비하는 작업 변수의 선언 - 변수 값의 대입(assignment) : 변수를 선언하고 변수에 특정한 값을 저장 또는 기억시키는 작업 변수 값의 대입 변수 선언 구문 Int num; -> int형 변수 num입니다. char c; -> char형 변수 c입니다. double db, dd; -> double형인 두 개의 변수 db와 dd입니다. numint형 형 이름 식별자; 변수 값 대입 구문 ……. int num; num = 3; printf(“변수 num의 값은 %d입니다.n”, num); - 실행 화면 - 변수 num의 값은 3입니다. 변수 이름 = 식; num
  • 11. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 11 C 프로그래밍 (1) #include <stdio.h> int main(void) { int num1 = 3; int num2; printf(“변수 num1의 값은 %d입니다. n”, num1 ); num1 = 5; printf(“변수 num1의 값을 %d로 변경했습니다. n”, num1); num2 = num1; printf(“num1 값을 num2에 대입하여 num2 값은 %d입니다. n”, num2); return 0; } Sample4.c 소스코드 변수 num1의 값은 3입니다. 변수 num1의 값을 5로 변경했습니다. num1 값을 num2에 대입하여 num2 값은 5입니다. Sample4 실행 화면 변수 초기화 및 값의 변경 변수 초기화 구문 형 이름 식별자 = 식; num1 num1 num2 num1=5; num2=num1;num1=3; 변수 선언은 함수 블록 안에서 다 른 문보다 맨 위에 먼저 표기한다.
  • 12. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 12 본 자료는 코딩인카페 1기 C&JAVA 기초과정 4회차 자료 중 일부를 발췌한 내용입니다. < 참고자료 > 1. C를 배우기전에 반드시 알아야 할 것들, 무라야마 유키오, 루비페이퍼 2. 그림으로 배우는 C프로그래밍, 마나 다카하시, 영진닷컴