View
191
Download
5
Category
Preview:
Citation preview
Korean ONLY Korean + French French
Korean ONLY C언어 Machine
컴파일러( Compiler )
•프로그래밍 언어란 무엇인가?
• 사람과 컴파일러가 이해할 수 있는 약속된 형태의 언어
• C 언어도 프로그래밍 언어 중 하나이다.
•컴파일이란 무엇인가?
• 프로그래밍 언어로 작성된 프로그램을 컴퓨터가 이해할 수 있
도록 기계어로 번역해 주는 역할을 하는 번역기
• C 언어의 장점
• 익숙해지는데 오랜 시간이 걸리지 않는다.
• 이식성이 좋다.
• 효율성이 높다.
• C 언어의 단점
• 프로그래밍 하는데 많은 주의를 요한다.
• 완전한 고급 언어에 비해 상대적으로 어렵다.
void setup(){Serial.begin(9600);
}
void loop(){
Serial.println("Hello World");delay(1000);
}
• 함수
• 적절한 입력과 그에 따른 출력이 존재 하는 것을 가리켜 함수라 한다.
• C 언어의 기본 단위는 함수이다.
setup() 환경을 설정하는데 사용된다.
loop() 실제 코드를 작성하는 부분
Serial.begin( ) 시리얼 통신을 시작한다.Ex) Serial.begin(9600);
Serial.print( ) 문자를 시리얼 통신으로 보낸다. Serial.println( )Ex) Serial.print(“Hello World”);
• return의 의미
• 함수를 종료(빠져 나온다).
• 함수를 호출한 영역으로 값을 반환
return
•주석이란?
• 프로그래머에게 메모(memo)의 기능을 부여
• 컴파일러는 주석을 없는 것으로 간주
• 주석을 삽입 함으로 인해 프로그램 소스를 읽기 쉽게
한다.
•주석의 두 가지 형태
• 여러 줄에 걸친 주석 처리
단일 행 주석 처리
/* 한 줄 짜리 주석 */
/*
여러 줄에
걸친 주석
*/
// 주석 하나.
// 주석 둘.
// 주석 셋.
#include <stdio.h> // stdio.h 헤더 파일 포함
int main(void) // main 함수의 시작
{
/*
printf 함수는 모니터로 출력을 하는 경우에 쓴다.
인자로 문자열을 전달하면 문자열을 출력한다.
*/
printf("Hello World! \n"); //모니터로 문자열 출력
return 0; // 0을 반환한다.
} // main 함수의 끝
•연산자란 무엇인가?
• 연산을 요구할 때 사용되는 기호
• ex : +, -, *, /
void loop()
{
Serial.println(1 + 2);
delay(1000);
}
•변수란 무엇인가?
• 데이터를 저장할 수 있는 메모리 공간에 붙여진 이름
•다양한 형태(자료형)의 변수
• 정수형 : char, int, long
• 실수형 : float, double
int main(void)
{
int val; // int형 변수 val의 선언
val = 20; // 변수 val에 20을 저장
. . . . . .
20
•기본 자료형 종류와 데이터의 표현 범위
자료형(data type) 할당되는 메모리 크기 표현 가능한 데이터의 범위
정수형
char 1 바이트 -128 ~ +127
short 2 바이트 -32768 ~ +32767
int 4 바이트 -2147483648 ~ +2147483647
long 4 바이트 -2147483648 ~ +2147483647
실수형
float 4 바이트 3.4*10-37 ~ 3.4*10+38
double 8 바이트 1.7*10-307 ~ 1.7*10+308
long double 8 바이트 혹은 그 이상 차이를 많이 보임
void loop()
{
int a;
int b;
a = 30;
b = 40;
int c = a + b;
Serial.println(c);
delay(1000);
}
•변수 선언 시 주의 사항 2
• 첫째 : 변수의 이름은 알파벳, 숫자 언더바(_)로 구성
• 둘째 : 대 소문자 구분
• 셋째 : 변수의 이름은 숫자로 시작 불가, 키워드 사용 불가
• 넷째 : 공백이 포함될 수 없음
적절치 않은 변수의 이름 적절치 않은 이유
int 7th_val 변수의 이름이 숫자로 시작
int live_inthe# #과 같은 특수 문자는 올 수 없다.
int kor year 변수 이름에 공백이 삽입될 수 없다.
•변수와는 다른 상수!
• 상수도 메모리 공간을 할당받는다.
하지만 데이터의 변경이 불가능하다.const int MAX = 100;
void setup(){
Serial.begin(9600);}
void loop(){
Serial.println(MAX);delay(1000);
}
const int MAX = 100;
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.println(MAX);
delay(1000);
}
•반복문의 기능
• 특정 영역을 특정 조건이 만족하는 동안에 반복 실행
하기 위한 문장
•세 가지 형태의 반복문
• while문에 의한 반복
• for문에 의한 반복
• while문의 기본 원리와 의미
void loop()
{
int a = 0;
while(a < 50)
{
a = a + 1;
Serial.println(a);
delay(200);
}
}
• for문의 기본 원리와 의미
• 초기문, 조건문, 증감문 모두를 기본적으로 포함!
• 가장 많이 사용되는 반복문
void loop(){
for(int i=0;i<10;i++){
Serial.println(i);delay(200);
}}
• if문에 의한 조건적 실행
• 조건이 만족되는 경우에 한해서 실행
• if~else 에 대해서
• 예제 calcu_one.c의 단점: 불필요한 연산을 하게 된다.
• basic_ifelse.c 참조
그림 8-5
• if, else if, else에 대해서
• calcu_two.c 참조
void loop(){
int a = 100
if(a < 100){
Serial.println("100 < a");}else(a > 100){
Serial.println("100 > a");}
}
•관계 연산자(비교 연산자)
• 두 피연산자의 관계(크다, 작다 혹은 같다)를 따지는 연산자
• true(1), false(0) 반환
연산자 연산의 예 의미 결합성
< a<b a가 b보다 작은가
> a>b a가 b보다 큰가
== a==b a와 b가 같은가
!= a!=b a와 b가 같지 않은가
<= a<=b a가 b보다 작거나 같은가
>= a>=b a가 b보다 크거나 같은가
•논리 연산자
• and, or, not을 표현하는 연산자
• true(1), false(0) 반환
연산자 연산의 예 의미 결합성
&& a&&b true면 ture 리턴
|| a||b 하나라도 true면 true 리턴
! !a true면 false를, false면 true 리턴
void loop(){
int a = 100;if(a == 100){
Serial.println("100 = a");}
if(a > 80 && a < 120)Serial.println("A > 80 and A < 120");
delay(500);}
수고 하셨습니다.Break Time
Recommended