[한국방송통신대학교/컴퓨터과학과 수업: C프로그래밍 1~2강_멀티미디어 강의]
1강 52분부터작성합니다. 사용자 정의 명칭의 예로는 sun10는 가능 SUN10앞의 것과 다릅니다. For는 예약어 for랑비슷하지만 대문자니까 다르다. (하지만 예약어와 비슷하게 만들면 혼란스러우니 피하는 것이 좋습니다. _sum처럼 밑줄도 사용가능합니다. 상수란 수치상수, 문자 상수, 문자열 상수가 있습니다. 변하지 않는 값은 상수라고 합니다. (다음 시간에 자료형 공부할 때 구체적으로 설명드리겠습니다.) 연산자는 수학적인 것을 사용할 때 씁니다. 다른 언어에 비해 많은 연산자 , 연산자를 사용하여 연산 수행합니다. 설명문은 주석 달아주는 것인데요. 여러 줄에 걸칠 설명문에 넣기 위해서는 /* */ 시작과끝을 표현합니다. 한 줄짜리 설명문은 보통 //을 사용합니다. 프로그램의 어느 부분에도 위치할 수 있습니다. 2개 이상의 라인으로 계속 될 수 있습니다. 프로그램에는 어느 영향도 미치지 않습니다. 1강 마지막 부분입니다. 에러와 경고가 컴파일 하게 되면 나타날 수 있습니다. 에러란 문법상 잘못된 경우 메시지를 출력되고 반드시 수정해야한다. 에러 발생하면 실행파일이 만들어지지 않습니다. 경고는 경미한 실수 발생하게 되는데, 특별히 수정하지 않아도 실행파일이 만들어집니다. 무시해도 상관없습니다. 하지만 이식성에 불리하거나 c언어 문법에서 권장하지 않는 방법으로 소스 프로그램을 작성했을 때도 발생합니다. 2강에서는 자료형과 선행처리기에 대한 내용을 살펴보도록 하겠습니다. 자료는 상수와 변수형태로 사용하게 됩니다. 상수를 어떻게 정의하고 변수를 어떻게 사용하는가 하는 변수 선언에 대해 알아보겠습니다. 컴파일 이전에 먼저 처리해야 하는 부분이 있습니다. 선행처리기에는 어떤 것들이 있는가 하는 것도 살펴보도록 하겠습니다. 자료형이란 프로그램에서 사용하는 자료의 형태를 말하고 상수와 변수로 구분하여 사용합니다. 프로그램에서 자료 처리를 하기 우해서는 자료의 생성과 저장 처리과정이 필요합니다. 씨프로그램은 수많은 명령어와 자료들로 구성되어 있고, 이들 자료의 정확한 처리와 효율적인 활용이 필요하다. 씨언어에서는 여러가지 종류의 자료형(data type)을 지원하고 있습니다. 상수라는 것은 항상 고정된 값을 갖는 자료를 말합니다. 값이 한 번 정해지면 프로그램 도중 그 값을 변경할 수 없는 수를 말합니다.이런 상수의 종류에는 정수형 상수, 실수형 상수, 문자형 상수, 문자열 상수가 있습니다. 정수형 상수는 10진수,8진수, 16진수로 표현됩니다. 8진상수는 앞에 0을 붙이고 0-7까지 사용, 16진 상수는 0x OX를 붙이고 0-9나 A-F를 사용하고 unsigned형 상수 는 부호없는 상수를 표현하며, 숫자 뒤에 u나 U를 붙인다. long형 상수는 큰 길이의 정수를 표현하며, 숫자 뒤에 I나 L을 붙입니다. 실수형 상수란 부동소수점 형 상수. 더블형을 기본자료형으로 사용. 소수형식, 지수형식, floar형 상수, long double형 상수로 표현할 수 있다. 플로팅은 f나 F를 붙이고 롱은 l이나 L을 붙인다. 문자형 상수는 단일 인용부호 ''로 묶여 있는 1개의 영문자나 숫자문자를 말학 내부적으로는 해당문자의 아스키코드값을 사용한다. 예로 A는 내부적으로 65(아스키코드값)가 사용된다. Escape문자: 키보드에 나타나 있지 않은 문자를 말합니다. 문자형상수는 내부적으로는 아스키코드값으로 치환되서 사용됩니다. 이거 외에도 이스캡문자 역슬래시 a,(경고음 출력) 역슬래시n,(출력시 줄바꿈) 역슬래시 0(아스키코드 0인문자 널문자를 말한다.) 문자열 상수는 이중 인용부호 ""로 묶여 있는 복수개의 영문자나 숫자를 말합니다. 기억공간에 보관 될 때는 문자열 끝에 null 문자(\0)가 추가합니다. (이것을 유념합니다.) 변수란 변할 수 있는 값을 말하며 프로그래밍언어에서 아주 중요한 개념입니다. 데이터처리를 할때 변수를 사용해서 합니다. 프로그램에서 변수는 프로그램 실행 도중 변할 수 있는 값이 저장되는 기억공간을 의미합니다. 예로 i=10; 에서 i는 변수명이고 10이란 값을 i라는 이름으로 정의 된 기억공간에 저장한다는 의미입니다. 이러한 변수 속에 들어가는 값은 수시로 변경 가능합니다. 따라서 변수는 사용 전에 반드시 선언하여 컴파일러가 기억공간에서 일정공간을 확보할 수 있도록 해야 합니다. 변수 사용 전에는 반드시 변수선언이 있어야 합니다. 변수의 특징에 대해 알아보겠습니다. 모든 변수는 이름이 있다.(변수명을 말합니다.) 모든 변수는 정해진 자료형이 있습니다. 모든 변수는 할당 된 값을 갖습니다.(선언한 i가 있다면 치환 된 값이 있어야 한다.) 변수명의 정의 규칙에 대해 알아보겠습니다. 모든 변수는 사용되기 전에 선언되어야 한다. 변수명은 영문자나 밑줄로 시작하고 변수명 중간에 숫자 밑줄 섞어서 명명할 수 있고, 중간에 밑줄 이외의 특수문자를 섞어서 명명할 수 없고, 대소문자 구별하여 사용하고, 예약어들을 사용할 수 없습니다. 다음으로 변수를 이용해서 자료처리가 어떻게 이루어지는가에 대해 설명들겠습니다. 이런 변수로 치환되는 수많은 자료들이 어떻게 정의되는가에 대해 설명하겠습니다. 이런 자료를 표현하기 위해선 변수가 있어야 한다. 변수 개념을 다시 정의 해보겠습니다. 변수란 자료를 저장할 기억공간을 확보하고 이 공간에 이름을 붙여준 것입니다. 이런 동작(확보된 기억공간에 이름을 부여하는 것)을 변수 선언이라고 합니다. 이러한 변수 선언을 위해 자료형이 필요합니다. 자료들에 대한 형태를 말합니다. 자료형의 종류는 일단 기본형과 확장형으로 나눌 수 있고, 기본형은 정수형, 실수형, 문자형, 열거형, 형없음 있습니다. 정수형은 int라고 합니다. 정수형타입은 int , short int, long int, unsigned int가 있고요. 실수형은 (floating point type) float, double, long double이 있고, 문자형은 char, unsigned char이 있고, 열거형은 enum이 있고, 형없음은 void 가 있습니다. 확장형은 배열형, 함수형, 포인터형, 구조체형이 있습니다 .(확장형은 5장 -8장에 있습니다.) 정수형을 정의 할 때 사용하는 예약어는 int라고 합니다. 인티져형이라고 정수형의 표현범위가 운영체제에 따라 다릅니다. shirt 인티져형, long 인티져형, unsigned 인티져형으로 나눌 수 있습니다. 하나의 기억공간은 1byte라고 합니다. 다음엔 실수형으로는 float, double , long double형이 있는데 기본형은 double형 입니다. 문자형을 표현하는 예약어는 char형, unsigned char 형(부호가 없으니 0~255까지 표현가능합니다)이라고 합니다. 아스키코드를 사용하여 처리합니다.('A'-65) -128~127까지 값(char형)을 표현합니다.(따라서 1바이트만 차지하게 됩니다. 다음으로 열거형이란 자료형에 대해 설명해보겠습니다. 열거형이란 숫자대신 단어를 사용합니다. 형식은 enum 태그명 {열거자 1, 열거자 2, ... } 이렇게 하면 됩니다. 예약어는 enum이다. 열거자 1은 디폴트값이 0으로 치환되서 저장되는데 예로 열거자1 = 2 이렇게 하면 2로 시작해서 순서대로 3,4,5 이런식으로 치환됩니다.(열거형의 구체적인 사용 예는 4장에서 하겠습니다.) 변수 선언이란 것은 변수명과 변수가 가질 자료형을 지정하여 변수를 위한 기억공간을 할당하는 것입니다. 형식은 자료형 변수명; 입니다. 사용 예로는 정수 int 변수명 ; 짧은 정수는 short int 변수명; 긴 정수 long int 변수명; 실수는 float 변수명; 문자는 char 변수명; 문자열은 char 변수명[문자수+1]; 입니다. 변수 선언시 고려해야 할 사항이 몇 가지가 있는데요. 대표적인 것이 3가지 정도 있습니다. 변수에 저장 될 값의 크기가 있을텐데 (그 범위가 벗어나지 않게 해야합니다.) 변수의 선언 위치가 어딨는지, 변수의 초기화를 고려 해야합니다. 구체적인 내용을 살펴보도록 하겠습니다. 변수를 함수 외부에 선언한 예로 맨 위에 선언하면 전역변수로 선언되어 프로그램 어디서 사용가능하고, 변수를 함수 내부에 선언하면 해당 특정 지역에서만 영향을 미치기 때문에 지역번수라고 하고 해당 main함수 내에서만 사용가능합니다. 다음으로는 선행처리기에 대해서 설명해보겠습니다. 프로그램 컴파일 하기전에 먼저처리하는 부분이 있게 되고 그걸 선행처리 부분이라고 이야기합니다. 선행처리기의 종류는 #include라는 파일포함하는 기능, #define 이라는 매크로 정의하는 것, #if, #else, #elif, #endif 조건부 컴파일이 있어요. 선행처리기는 반드시 앞에 #으로 표현하는 것이다. 명령 문 끝에는 세미콜론을 붙이지 않습니다. 한 줄에 하나의 명령만 씁니다. 소스프로그램의 첫 부분에 위치합니다. 파일 포함 선행처리기 #include 는 씨언어에서 제공되는 헤더파일(*.h)를 자신의 소스파일에 읽어 들여 함께 컴파일 하고자 할 때 사용합니다. c프로그램에서 표준함수인printf(), scanf() 등을 사용하려면 이 함수들의 원형이 선언되어 있는 표준 입출력 헤더파일인 studio.h #include시켜야 합니다. 파일포함 선행ㅇ처리기의 형식은 #include <파일명> 이나 #include "파일명" 이렇게 합니다. #include "\tc\kaeun\ddd" 이런식의 형식입니다. 두 번째로 매크로 정의 선행처리기 입니다. #define 은 매크로를 정희할 때 사용합니다. 매크로는 선행처리기 #define을 사용하여 단순 치환되는 자료입니다. 프로그램 작성 시에 명령이나 수식 또는 상수값이 자주 사용될 때 이들을 대표하는 이름을 붙여 사용하는 대상입니다. 매크로 정의는 두 가지입니다. 매크로 상수정의와 매크로 함수 정의가 있습니다. 먼저 매크로 상수 정의의 형식은 #define 매크로명 자료 , #undef 매크로명 이렇게 있습니다. 사용 예로 #define PI 3.141592 이런 프로그램 내의 PI는 3.141592로 치환하여 사용하라는 것입니다. 매크로 함수정의라는 것은 번거롭지만 형식은 #define 매크로명(인수) (수식), #define 매크로명(인수,인수)(수식) 입니다. 사용예는 #define AREA(x) (3.141592*(x)*(x)) #define HAP(a,b)(a+b) 등으로 나타내 볼 수 있습니다. 선행처리기에 의한 단순 치환 방식이므로, 전달 인자의 자료형을 명시할 필요가 없고, 또 어떠한 자료형 변수를 인자로 전달해도 잘 동작한다. 한 두 줄 코드의 경우 함수로 정의하는 것보다 속도가 빠릅니다. 매크로 함수 정의는 괄호 확인 잘해야 한다. 그 다음 조건부 컴파일 선행처리기에 대해서 알아보겠습니다. #if #else #elif # endif 등이 있습니다. #이 있으면 선행처리기 입니다. #if와 #endif 는 항상 짝이라는 것을 알고 있으시면 되고요. 조건에 따라 프로그램을 컴파일하는 명령이고, 최적의 코드로 프로그램을 작성할 수 있기 때문에 시스템의 성능향상할 수 있다. #if 나 #elif 다음에는 컴파일 여부를 결정하는 조건문이 있어야 합니다. 조건문은 선행처리과정에서 진위여부를 판단할 수 있어야 합니다. 변수 지정이나 함수 호출이 불가합니다. 주로 매크로 값이 사용됩니다. 조건에 따라 컴파일 할거냐 안할거냐 에 대한 판단이고, 앞에 조건이 정의 되어 있어야 한다. 2강 끝. 다음시간에는 3장 입출력 함수와 연산자에 대해서 살펴보겠습니다. 3강은 표준 입출력 함수에 관한 내용을 구체적으로 보겠습니다. 수많은 함수 중에 자료를 제공하고 내보내는 걸 표준 입출력함수라고 합니다. 표준입출력 함수는 표준 출력함수와 표준 입력함수가 있어요. 함수란 무엇인지에 대해서 간단히 설명을 드리도록 하겠습니다. 함수라고 하는 것은 특정한 작업을 수행하도록 설계된 독립적인 프로그램입니다. c언어에서의 함수는 크게 두 가지로 나타내는데요. 이시간에 배울 표준함수와 사용자 정의함수가 있습니다. 표준함수는 c언어자체에서 제공된 함수, 사용자가 정의하여 사용하는 함수를 사용자 정의함수라고 합니다. (교재 5장에서 사용자정의함수를 언급하겠습니다.) 표준 입출력 함수의 종류에 대해 알아보겠습니다. 표준 출력함수는 3가지가 있어요. printf()는 화면에 여러 종류의 자료를 출력하는 것입니다. putchar()화면에 1개의 문자를 출력하는 함수이고, puts() 화면에 문자열을 출력하는 함수입니다. 표준 입력함수는 3가지가 있어요. scanf() 키보드를 통해 여러 종류의 자료를 입력 받는 함수입니다. getchar() 키보드를 통해 1개의 문자를 입력 받는 함수이고, gets() 키보드를 통해서 문자열을 입력 받는 함수 입니다. 사용형식은 유사하고 자료는 내보내느냐 받아들이느냐에 따른 차이만 있습니다. 특히 표준입출력함수라는 것은 c언어에서 가장 먼저 배우는 함수의 하나가 되었는데요. 프로그래밍에서 데이터 처리를 하기 위해서는 기본적으로 데이터를 받아야 하기 때문에 입력이 필요하고 , 그 후 모니터에 결과값을 출력하기 위해서는 출력함수도 필수적으로 필요한 것입니다.그래서 먼저 표준 입출력함수에 대해서 배우는 것입니다. printf("출력방식", 변수1, 변수2,..); 형식을 갖고 있고, 주어진 양식으로 자료를 출력하는 기능이 있습니다. 예로 printf("This is examlpe\n"); 있습니다.
'공부 > 방송통신대' 카테고리의 다른 글
[한국방송통신대학교/컴퓨터과학과 수업: 컴퓨터의 이해 1강] (0) | 2017.03.13 |
---|---|
[방송통신대학교/컴퓨터과학과_ C프로그래밍 강의_출석수업] (0) | 2017.03.12 |
[한국방송통신대학교/컴퓨터과학과 수업: C프로그래밍 1강_멀티미디어 강의] (0) | 2017.03.10 |
[방통대 첫걸음! 원격대학교육의이해 1학점 취득 만점] (0) | 2017.02.18 |
[방송통신대 입학준비를 알아보자] (0) | 2017.02.12 |