c프로그래밍의 구성요소가 있습니다. 예약어는 int,char,if,for 등이 있다. 예약어는 변수명으로 쓸 수 없습니다. 명칭은 변수,배열, 함수, 등의 이름을명칭이라고 이야기할 수있고요. 상수는 값이 불변인 자료를 말합니다. 변수는 그 반대언어로 변할 수 있는 자료를 말합니다. 연산자가 있습니다.(=,+,-)설명문은 주석을 다는 내용들을 이야기합니다. 자료형 관련 예약어로는 char, inr,folat등이 있고요. 기억 관련 예약어도 있고요. 제어관련 예약어도 있고요. 기타 예약어도 있습니다. (예약어 종류 총 4가지가 있습니다.) 예약어도 명칭으로 사용되면 안된다. 하지만 변형시켜 사용할 수 있다. 명칭을 만들 때의 규칙을 알려드릴게요. 영문자와 숫자의조합으로 만들어야 한다. 명칭의 첫 문자는 반드시 영문자 또는 밑줄로 시작해야 한다. 특수문자를 사용해서는 안된다. 참고로 언더바는 사용가능하다.(오리지널C는 밑줄만 허용한다. 공백 불가능하니까 언더바를 사용하면 된다. ) 문자사이에 공백이 있어서는 안 된다. 예약어를 사용할 수 없다(변경해서 사용하능한다.) 영문자 대문자와 소문자는 서로 구별하여사용해야 합니다. 명칭의 길이는 컴파이러에 따라 차이가 있다. 일반적으로 32자까지 인식 가능하다. (안드로이드나 자바같은 경우는 클래스 등 이거저거 넣게 되면 이름이 길어질 수 있다. 하지만 C는 그렇지 않다. 명칭 심플하게 설정하자.)C 같은 경우는 대문자와 소문자를 구별해야한다. 윈도우는 구별안하지만, 유닉스에서는 대문자와 소문자를 구별해야한다. A과 a는 다른문자로 구분하는 것이다. 선언을 대문자로 하면 밑에서 대문자로 사용해야한다. 설명문에 대해 알아보자. 여러 줄에 걸친 설명문을 넣기 위해서는 /* */ 이렇게 하면 주석가능하다. (이 사이는 주석입니다. 다 버리세요. 한 줄까리 설명문을 넣기 위해서는 보통 //를 사용합니다. 프로그램의 어느부분에도 위치할 수 있습니다. 2개 이상의 라인으로 계속될 수 있습니다. 예로 /* 두수를 입력 받아 덧셈후 출력하세요 */ 이렇게 하면 주석으로 보고 안쪽을 컴파일 하지 않게 됩니다. 변수명 옆에 괄호가 나오면 무조건 함수입니다. scanf(~, printf( ~ 이런식으로 되어 있는데, 도입부분에 #include<studio.h> 이렇게 되어 있어서 불러온파일에 이미 선언 다 되어 있기 때문에 에러가 나지 않았다. 만약 불러온 파일에 선언이 없었다면 에러가 났을 것이다. 에러와 경고에 대해 알아보겠다. 에러는 씨언어늬 문법상 잘못 된 경우 에러 메시지를 출력한다. 씨언어의 문법에 맞지 않는 형식의 사용, 반드시 필요한 지정이 빠진 경우 등이다. 에러 메시지가 뜨면 확인하여 반드시 수정해야 한다. 에러 안고치면 실행 안된다. 경고는 일단 컴파일이 가능한 경미한 실수를 했을 때 발생한다. 크게 문제는 없지만 이식성에 불리하는 등입니다. 비쥬얼 스튜디오에서는 에러가 뜨면 어디부분이 에러가 났는지 잘 표시해준다. 하지만 데브씨 프로그램은 에러가 나도 어디에 에러가 났는지 알려주지 않는다. 비쥬얼 스튜디오프로그램이 데브시프로그램보다 고가이다. printf를 작성할 때 실수로 print만 작성 되면 에러메시지가 뜨지만, int a=3; 이렇게 선언만 해놓고 아래에서 쓰지 않으면 경고가 뜬다. 고치지 않아도 상관없지만 예전에는 컴퓨터 용량이 작았기 때문에 메모리 누수가 된다. 이런 워닝을 무시하면 좋지 않다. 나중에 복잡한 프로그래밍을 해서 1번에 만번씩 프로그래밍하게되면 잉여 메모리를 계속 쓰게 되는 것이다. 잉여메모리가 많아야 최적화가 좋은데, 메모리누수가 생기면 최적화되기 쉽지 않다. 아이폰같은 경우는 최적화된 앱은 공급 하지 않는다. 그런부분때문에 안드로이드 앱에 올라온 앱이 6개월 후에 아이폰 시장에 올라온다. 하지만 지금은 메모리는 아이폰도 2기가로 늘렸기 때문에 바로바로 앱마켓에 업로드가 되는 편이다. 프로그래밍은 혼자서 하는 거 아니다. 젤 좋은 공부방법은 남이 짜놓은 소스를 보고 가져다 연구하고 쓰면 된다. 혼자서 하기엔 너무 더디다. 제일 메뉴얼은 무엇이냐면 각 프로그램마다 도움말에 예제가 다 있다. 프로그램 잘 하는 사람은 책 안보고 매뉴얼만 보고 가져다 쓰고 자신의 것으로 만든다. 도움말 예제 많이 보고 공부하세요. 예시작성해보겠습니다. 이 프로그램은 두 수의 곱을 계산하는 프로그램입니다.
#include<studio.h>
int a,b, c;
int product( int x, int y);
void main() {
printf("Enter a number between 1 and 100: ");
scanf(%d, &a);
printf("Enter another number between 1 and 100: ");
scanf(%d, &b);
c=product(a,b);
printf(%d*%d = %d\n",a,b,c);
}
int product(intx, int y){
return(x*y);
}
실습하기에는 비쥬얼스튜디오보다는 터봇이나 데브씨 프로그램을 사용하는 것이 좋을 것 같습니다. 하지만 비쥬얼C++하실 때는 반드시 비쥬얼스튜디오를 사용하셔야합니다.이렇게 쉬는 시간을 갖고 2장은 다음 시간에 하도록 하겠습니다. 정수형상수에 대해알아보고자합니다. 십진상수,팔진수,십육진수 등이 있다. 대부분 십진수를 사용하지만 가끔은다른 진수를 사용하는것이 더 편할 때가 있습니다. 앞에 0이 붙으면 팔진수, 0x가붙으면 십육진수로 컴퓨터가 알아듣습니다. 실수형 상수에 대해 알아보겠습니다. 부동소수점형 상수로 정수형 보다 크거나작은 값 처리에 사용합니다. 더블형은 기본 자료형으로 사용합니다.(중요합니다.) 소수형식은 .을 찍는 방식입니다. 지수형식은 십의 몇승. 대문자 e를 사용하고 그 뒤에는 몇승인지 숫자로 씁니다. floar상수와, long double 상수 등이 있습니다.문자형 상수에 대해 알아봅니다. 단일 인용문자는 {' '}로 묶는 1개의 영문자나 숫자문자입니다. 내부적으로 해당 문자의 아키 코드값을 사용합니다. 문자열 상수에 대해 알아봅시다. 이중 인용부호 {" "}로 묶인복수개의 영문자 및 숫자문자입니다. 기억공간에 보관 될 떄는 문자열 끝에 Null 문자가 삽입됩니다. 내가 이름이 네글자밖에 안들어간다고 생각해서 크기를 4로 선언했는데 에러가 날 수 있습니다. 왜냐하면 null 공간이 + 1더 들어가기 때문에 +1 해서 크기를 선언해야 한다. 변수의 특징에 대해 알아봅시다. 모든 변수에는 이름이 있다. 모든 변수는 정해진 자료형이 있다. 모든 변수는 할당된 값을 갖는다. 변수라는 것은 실제 표현하는 수가 아니라 실제 표현하는 값이 어디에 있는 지를 알려주는 것입니다. 변수는 값이 아니라 주소라고 생각하시면 됩니다. 변수만드는 명칭에는 규칙이 있다. 알파벳과 숫자만 쓸 수 있고 알파벳 또는 밑줄로 시작해야 한다. 키워드 예약어를 쓸 수 없다. 선언하고 쓰지 않으면 메모리 누수되니까 선언하고 할당된 값을 갖도록 해라. 변수명의 정의 규칙에 대해 알아보자. 모든 변수는 사용되기 전에 선언되어야 한다. 변수명은 반드시 영문자와 밑줄로 시작해야 한다. 변수명은 중간에 숫자, 언더바를 섞어서 명명할 수 있다. 변수명은 대, 소문자를 구별하여 사용한다. c프로그래밍에서 =표시는 오른쪽에 있는 것을 왼쪽에 집어넣겠다는 뜻입니다. 절대 같다는 뜻이 아닙니다. 같다는 뜻으로 쓰려면 == 두개 써야 합니다. 상수는 바뀔 수없지만 변수는 늘 바뀔 수 있습니다. 자료형이 종류에 대해서 알아봅시다. 일단 기본형은 정수형, 실수형, 문자형, 열거형, 형없음(void)이 있고요. 확장형은 배열형, 함수형, 포인터형, 구조체형 이 있습니다. void는 밑에 return 값이 없다. 먼저 정수형에대해서 보겠습니다. 정수형은 int형, short형(인트의 반 메모리할당을적게 하고 싶어서 쇼트를 쓴다. 일반적인 프로그래밍할 때는 쓸일이 없지만, 펌웨어 개발 시 굉장히 많이 쓴다. 한정된 메모리 안에서 프로그래밍 하는 펌웨어에서는 쇼트형을 꽤 많이 쓴다.), long형(반대로 크기를 키우는것입니다.), unsigned형이 있습니다.(보통은 256개 중에 반으로 쪼개서 128은 양수, 128은 음수로 설정해주는 것이다. 하지만 예로 언사인을 하면 255개의 양수를 쓸 수 있다. 음수 쓸거 아니면 언싸인 하면 된다. 언사인은 양수만 표현해준다는 것을 기억해두면 됩니다. 정수형의 범위에 대해 알아봅시다.(이것은 피피티 참조한다) 실수형의 범위에 대해서 알아봅시다. 플롯형, 더블형, 롱더블형이 있습니다. 플롯은 4바이트, 더블형 8바이트, 롱더블은 마이크로 소프트의 경우 8바이트, 터봇에선 10바이트를 준다고 합니다. 문자형과 범위에 대해 알아봅시다. 문자형은 기본적으로 1바이트입니다.(영문자 기준입니다.) 문자형은 아스키코드를 사용합니다. 문자형을 의미하는 char은 8비트 아스키코드값이 사용되기 때문에 128~127까지의 값을 표현할 수 있습니다. 컴퓨터에서는 문자를 문자로 기억하지 않고 숫자로 기억합니다. 아무리 대문자 A를 저장하겠습니다. 해도 해당 아스키코드값이 저장되는 것입니다. 문자형은 1바이트입니다. 0~128까지 입니다. 언사인 지정안해놓으면 양수 음수 다 표현하니까 128까지만 표현합니다. 그래서 문자형으로하면 `-128~+128까지 쓸 수 있으니까 일부러 메모리 아끼기 위해서 문자형으로 사용하는 경우도 있다고 합니다. 8진수, 16진수의 지정에 대해 알아봅시다. c언어에서는 10진수 이외의 숫자를 지정할 수 있습니다. 8진수는 숫자 앞에 0을 입력하고, 16진수는 숫자앞에 0x를 입력합니다. 열거형에 대해 알아봅시다. 제한적이거나 숫자 대신 단어를 사용하여 프로그램 가독성을 높이기 위해서 쓰이는 것입니다. 형식은 enum태그명{열거자1,여거자2,.. }변수명, 열거자: int 상수. 예로 enum day{sun,mon,~~}
변수선언하는 방법에 대해 알아봅시다. 형식은 자료형 변수형 입니다. 사용예 정수는 int 변수명; , 문자열 은 char 변수명 +1 으로 합니다. 변수선언시 고려 사항에 대해 알아봅시다. 변수에 저장될 값의 크기, 변수의 선언 위치, 변수의 초기화에 대해 고려해야 합니다. 변수는 전역변수와 지역변수가 있는데 예로 메인함수 위의 int 형은 전역 변수이고(위의 예시 작성에서) 지역변수는 main안에 있는 것을 말합니다. 변수는 반드시 초기화 시켜야합니다. 변수는 원하는 자료가 어디 있는지 알려주는것인데 변수 선언하고 프로그램을 짰는데 갑자기 이상한 값이 나온다. 왜냐하면 변수가 지정한 값에 일명 쓰레기 값이 들어있어서 그런 것이다. 그래서 새로운 변수를 선언하게 되면 거기에 있는 값을 반드시 초기화 시켜야 한다. 예전에 터봇같은 경우는 초기화 안시키면 에러 발생하는데 비쥬얼은 에러 안뜬다. 그냥 본인이 알아서 하겠지 하고 에러 메시지를 띄워 주지 않는다. 메모리 오버플로우란 크기를 잘못할당해서 생기는 것인데 표현할 수 있는 최대치보다 1 더해서 작성하면 음수로 최대치보다 1더 많은숫자가 표현되고, -최대치보다 1더 작은 -최대지+1이면 표현은 양수로 최대치+1숫자가 표현 된다.
'공부 > 방송통신대' 카테고리의 다른 글
[2017년 컴퓨터의 이해 중간과제물_1편] (0) | 2017.03.21 |
---|---|
[한국방송통신대학교/컴퓨터과학과 수업: 컴퓨터의 이해 1강] (0) | 2017.03.13 |
[한국방송통신대학교/컴퓨터과학과 수업: C프로그래밍 1~2강_멀티미디어 강의] (0) | 2017.03.11 |
[한국방송통신대학교/컴퓨터과학과 수업: C프로그래밍 1강_멀티미디어 강의] (0) | 2017.03.10 |
[방통대 첫걸음! 원격대학교육의이해 1학점 취득 만점] (0) | 2017.02.18 |