학습목표    1

학습주제    1

예습내용    1

실습방법    1

        1

중요함수    1

변수와 데이터

학습목표

변수와 데이터의 사용법을 알아보고 활용한다.

학습주제

변수의 형태와 사용을 알아본다.

변수를 활용한 보드의 입력과 출력을 실습해 본다.

보드의 스위치 입력과 저장을 실습한다.

예습내용

1. 변수란

프로그램 내에서 정수, 실수, 문자 등을 이용하는데 변수는값을 저장 할수 있는 주메모리 내의 기억장소 이름으로 프로그램하기에 따라 도중에 값이 변할 있다.

2. 변수 이름의 규칙

      영문자,아라비아 숫자, 밑줄만 사용한다.

      첫글자는 영문자나 밑줄만 사용할 있다.

      이름 도중에 공백이 있어서는 않된다.

      char, int 같이C언어에서 사용하는 예약어를 사용해서는 않된다.

3. 데이터형

저장하는 데이터량(byte) 따라 나누어 진다. (범위는 컴퓨터와 컴파일러에 따라 달라진다, 괄호는 없어도 된다.)

키워드

바이트

문자형

char

1

 

 

 

정수형

(signed) int

2

-32,7868 ~ 32,767

unsigned (int)

2

0 ~ 65,535

short (int)

2

-32,768 ~ 32,767

unsigned short (int)

2

0 ~ 65,535

(signed) long (int)

4

-2,147,483,648 ~ 2,147,483,647

unsigned long (int)

4

0 ~ 4,294,967,295

 

실수형

float

4

3.4*10-38 ~ 3.4*1038

double

8

1.7*10-308 ~ 1.7*10308

long double

10

3.4*10-4932 ~ 3.4*104932

*기본적으로 같은 바이트의 데이터끼리 연산을 해야 그러므로 정수와 실수의 연산은 정수를 실수로 데이터 변환을 해서 연산을 해야 한다.

4. 데이터의 형변환

(데이터형)변수

 

예제1

정수와 실수의 혼합 연산

#include "stdafx.h"

#include "iostream.h"

int main(int argc, char* argv[])

{

int a=3;

float b=10.,c;

c=b/(float)a;

cout<<”c=”<<c<<”\n”;

return 0;

}

c=3.33333

5. #define

특정 상수에 이름을 붙여 사용 있다.

예제2

3.1416 PI 정의

#include "stdafx.h"

#include "iostream.h"

#define PI 3.1416

int main(int argc, char* argv[])

{

cout<<”PI=”<<PI<<”\n”;

return 0;

}

PI=3.1416

6. const

define 같은 용도로 쓸수 있으나 데이터형을 직접 지정할 있다.

예제2

3.1416 PI 정의

#include "stdafx.h"

#include "iostream.h"

const float PI = 3.1416;

int main(int argc, char* argv[])

{

cout<<”PI=”<<PI<<”\n”;

return 0;

}

PI=3.1416

 

 

실습방법

   

예제 프로그램을 실행해 본다.

처음

   

원의 반지름을 입력 받아 면적을 계산하는 프로그램을 “define” 사용하여 작성하시오.

중요함수

 

AVR 프로그램

지난주에 만들었던 C포트의 출력 ~0x01, ~0x02, ~0x04 … char 변수 led1, led2 정의 하여 이를 출력해 보자.

 

AVR예제1

8개의 LED 순차적 점등

char led1=~0x01,led2=~0x02,led3=~0x04,led4=~0x08,led5=~0x10,led6=~0x20,led7=~0x40,led8=~0x80;

 

while (1)

      {

      // Place your code here   

        PORTC=led1;        //1 보수를 출력                

        delay_ms(100);  // 0.1초간 시간 지연

        PORTC=led2; 

        delay_ms(100);

        PORTC=led3; 

        delay_ms(100); 

        PORTC=led4; 

        delay_ms(100);

        PORTC=led5; 

        delay_ms(100);

        PORTC=led6; 

        delay_ms(100);

        PORTC=led7; 

        delay_ms(100);

        PORTC=led8; 

        delay_ms(100);

         

      };

 

전체프로그램보기

 

AVR예제2 스위치의 입력과 출력

D포트의 스위치를 읽고서 char led 저장하고 이를 C포트로 출력한다.

char led;

while (1)

      {

      // Place your code here   

        led = PIND;           //D포트 입력상태 저장

        PORTC = ~led;     // D포트 상태를 C포트로 출력

        delay_ms(100);

      };

전체프로그램보기