책정리/혼자 연구하는 C,C++ 1

2장 첫 번째 예제

GONII 2015. 2. 18. 01:52

2.1 각 툴별 예제 작성법

C/C++ 컴파일러를 사용해 프로젝트 만드는 과정 실습

2.1.1 비주얼 스튜디오 2008

비주얼 C++ : 개발툴

  1. 비주얼 스튜디오 2008 실행
  2. 메뉴 > 파일 > 새로 만들기 > 프로젝트 > 필요한 항목 선택(Win32 > Win32 콘솔 응용 프로그램) > 이름, 경로 지정 > 확인

  3. 응용 프로그램 마법사가 실행되는데 마법사는 만들고자 하는 프로젝트의 기본 공격을 생성한다. 마법사가 만들어준 골격 코드에 원하는 코드를 추가하는 식이다.

    마침을 누르면 빈 프로젝트로 만들었기 때문에 솔루션 탐색기에 아무런 부속 파일이 없다.

  4. 프로젝트는 C 소스 파일을 담는 일종의 껍데기에 불과하기 때문에 소스 파일은 별도로 추가해야 한다.

    리소스 파일 > 오른쪽 버튼 > 추가 > 새 항목 선택

  5. 예제 입력

#include <stdio.h>
 

void main()

{

printf("Hi~\n");

}

  1. F7(솔루션 빌드) 입력 > 결과 출력

  2. F5(디버깅 시작) 입력하면 번쩍 하고 먼가 없어짐

    Ctrl+F5(디버깅 하지 않고 시작) 동작하는지 확인하는데 편리함

2.1.2 비주얼 C++ 6.0

비주얼 스튜디오 2008과 동일

2.1.3 TC20

별도의 프로젝트 만들 필요가 없고 파일을 저장하지 않고도 컴파일 해볼 수 있어 문법 실습 과정이 무척 간편하다고 함.

2.1.4 Dev-C++

통합 개발 환경이기 때문에 프로젝트를 만들고 컴파일 하는 과정은 비교적 쉬운 편

2.1.5 에러에 대한 대처

컴파일러가 지적해 주는 사용자 실수

  • 에러(Error)

    문법상 명백하게 잘못된 점이 있어서 번역을 할 수 없는 경우 에러 발생, 컴파일을 계속 할 수 없으므로 반드시 수정해야 함.

    오탈자, 형식이 틀린 경우, 필요한 지정이 빠진 경우

  • 경고(Warning)

    의심스러워 보이는 문장이기는 하지만 컴파일은 가능한 경미한 실수, 당장은 큰 문제가 없지만 이식성에 불리하다거나 권장되지 않는 방법으로 문장을 작성했을 때

2.2 First 예제

2.2.1 First 분석

#include <stdio.h>

stdio.h라는 헤더 파일을 포함해라,

헤더 파일에는 C 컴파일러가 제공하는 표준 입,출력 함수들에 대한 선언이 작성되어 있음.

void main()

main은 함수 이름

void는 함수의 리턴 값(void이면 리턴 값이 없다.)

{ }

괄호는 함수의 시작과 끝을 표시한다.

printf("hi~\n");

printf는 문자열을 화면에 출력하는 함수

"" 안에 표시하고 싶은 문자열 입력

\n 은 개행문자

; (세미콜론) 은 C의 모든 명령 끝에 붙여준다.

#include <stdio.h> //printf 함수를 쓰겠다는 선언, 표준 입,출력 함수 사용

   

void main() //여기서 프로그램의 시작점

{ // 함수의 시작

printf("Hi~\n"); //문자열을 출력하라

} //함수의 끝

2.2.2 프로젝트

프로젝트 : 하나의 실행 파일을 제작하는데 필요한 관련 파일의 집합

소리 파일, 그림 파일, 아이콘, 폰트, 데이터 파일 등을 한데 모아 관리하는 기능

솔루션 : 여러 개의 프로젝트를 모아 놓은 것 (확장자 : sln, dsw)

오피스 패키지의 경우 워드, 엑셀, 파워포인트 등등 여러 제품이 한 번에 설치 가능

2.3 예제 실습

2.3.1 삼각형 그리기

#include <stdio.h>

void main()
{

int i, j;

   

for (i=1; i<=15; i=i+1) {

for (j=0; j<i; j=j+1) {

printf("*");

}

printf("\n");

}

}

2.3.2 숫자 맞추기 게임

#include <Turboc.h>

   

void main()

{

int num;

int input;

   

randomize();

for(;;) {

num=random(100)+1;

printf("\n제가 만든 숫자를 맞춰 보세요.\n");

do {

printf("숫자를 입력하세요.(끝낼 때는 999) : ");

scanf("%d", &input);

if (input==999) {

exit(0);

}

if (input==num) {

printf("맞췄습니다.\n");

} else if (input > num) {

printf("입력한 숫자보다 더 작습니다.");

} else {

printf("입력한 숫자보다 더 큽니다.");

}

} while (input!=num);

}

}

2.4 프로그램의 구성 요소

2.4.1 구성 요소

  • 키워드(Keyword)

    C언어 자체가 의미를 미리 정해 놓은 단어들(예약어 : Reserved word 라고도 함)

    다른 목적으로 사용할 수 없음

    즉 키워드와 똑같은 이름의 변수나 함수 선언 x

    C언어의 키워드

    auto, case, cdecl, const, char, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while

       

    C++ 추가된 키워드

    asm, class, delete, friend, inline, mutable, new, operator, private, protected, public, template, this, virtual, explicit, ....

  • 명칭(Identifier)

    사용자가 직접 만들어서 사용

    변수와 함수 같은 것들은 다른 것들과 구분 되어야 하므로 자기만의 고유한 이름을 가져야 함.

  1. 키워드는 사용 x
  2. 알파벳, 숫자, 밑줄기호(_)로 구성 (한글, 공백 x)
  3. 첫 문자는 알파벳이나 밑줄기호만 가능
  4. 대소문자 구분 (Score와 score는 다름)
  • 상수(Constant)

    변수의 반대되는 개념, 고정된 값

    1, 234, 2.234, 'a', "hi~"

  • 연산자(Operator)

    계산을 지시하는 기호(+, -, *, /)

    관계, 대입, 논리 연산자

    포인터 연산자

    삼항 연산자

  • 구두점(Punctuator)

    자연어의 마침표, 쉼표, 물음표, 느낌표와 같은 것들

    프로그램의 구두점 : 쉼표, 따옴표, 괄호, 세미콜론

  • 공백문자(White Space)

    스페이스, 탭, 개행 코드

    구성 요소들을 구분 하는 역할

  • 주석(Comment)

    설명을 위해 삽입되는 문자열

    컴파일러는 주석을 완전히 무시하고 프로그램 실행

    소스를 읽는 사람이 의미를 쉽게 파악하도록 설명을 붙여 놓는 기능

    여러줄 주석 : /*..............*/

    한줄 주석 : //

       

2.4.2 프로그램의 구조

C문법의 기본적인 특징과 구조 설명

  1. 대소문자를 구분하므로 키워드나 명칭 등을 작성할 때 대소문자 구분에 유의
  2. main 함수로 시작 (반드시 있어야 함)
  3. 모든 문장은 세미콜론으로 끝남.
  4. 프리 포맷(Free Format)을 지원(문법만 맞으면 한 줄에 붙여 쓸 수도 있고, 여러 줄에 나누어 쓸 수 있다, 한줄 띄우기, 들여쓰기, 공백의 개수도 마음대로)
  5. 프로그램의 구조는 대체로(절대적이지x) 다음과 같다.

    #include <...>

    #define ...

    함수의 원형

    전역변수

       

    void main()

    {

    코드

    }

    함수 정의

    함수 정의

반응형

'책정리 > 혼자 연구하는 C,C++ 1' 카테고리의 다른 글

5장 연산자  (0) 2015.02.19
4장 제어문  (0) 2015.02.18
3장 변수  (0) 2015.02.18
1장 프로그래밍 입문  (0) 2015.02.17
목차  (0) 2015.02.17