'* 컴퓨터 언어 (Computer Language)/C/C++'에 해당되는 글 7건

Microsoft Visual C++ 6.0

* 컴퓨터 언어 (Computer Language)/C/C++














저작권으로 인해 메일로 보내드립니다.. 

메일을 댓글 달아주세요!(단,언제줄지는 모르지만 최대한 빨리드리도록 노력해보겠습니다.)


Microsoft Visual C++ 6.0

사용하는 곳 = 컴퓨터운용사 실기 or 여러 프로그래밍 사용



참고로 윈도우 7 에서는 잘 안될수도 있습니다.

'* 컴퓨터 언어 (Computer Language) > C/C++' 카테고리의 다른 글

Microsoft Visual C++ 6.0  (164) 2012.04.10
C언어  (0) 2012.03.22
C언어 입출력  (0) 2012.03.16
수식과 연산자  (0) 2011.12.22
02.C언어의 기초  (7) 2011.11.19
이전 댓글 더보기
2013.05.10 15:17 URL EDIT REPLY
비밀댓글입니다
BlogIcon Twodragon | 2013.09.18 01:20 신고 URL EDIT
보내드렸습니다
2013.05.14 19:18 URL EDIT REPLY
비밀댓글입니다
BlogIcon Twodragon | 2013.09.18 01:19 신고 URL EDIT
보내드렸습니다
2013.05.15 12:07 URL EDIT REPLY
비밀댓글입니다
BlogIcon Twodragon | 2013.09.18 01:19 신고 URL EDIT
보내드렸습니다
2013.07.20 21:39 URL EDIT REPLY
비밀댓글입니다
BlogIcon Twodragon | 2013.09.18 01:19 신고 URL EDIT
보내드렸습니다
2013.08.17 11:27 URL EDIT REPLY
비밀댓글입니다
BlogIcon Twodragon | 2013.09.18 01:19 신고 URL EDIT
보내드렸습니다
2013.09.10 16:58 URL EDIT REPLY
비밀댓글입니다
BlogIcon Twodragon | 2013.09.18 01:19 신고 URL EDIT
보내드렸습니다
2013.09.14 21:17 URL EDIT REPLY
비밀댓글입니다
BlogIcon Twodragon | 2013.09.18 01:19 신고 URL EDIT
보내드렸습니다
2013.09.25 18:45 URL EDIT REPLY
비밀댓글입니다
BlogIcon Twodragon | 2014.01.10 16:36 신고 URL EDIT
보내드렸습니다
gusdnwlsrb 2013.09.27 18:21 신고 URL EDIT REPLY
부탁드립니다 ㅎㅎ
gusdnwlsrb 2013.09.27 18:22 신고 URL EDIT REPLY
gusdnwlsrb@hanmail.net
정말 부탁드립니다.
BlogIcon Twodragon | 2014.01.10 16:37 신고 URL EDIT
보내드렸습니다
limslove 2014.01.09 22:02 신고 URL EDIT REPLY
limslove@naver.com
아직도 보내주시나요?
BlogIcon Twodragon | 2014.01.10 16:37 신고 URL EDIT
보내드렸습니다
2014.03.07 16:29 URL EDIT REPLY
비밀댓글입니다
2014.03.07 16:30 URL EDIT REPLY
비밀댓글입니다
BlogIcon Twodragon | 2014.03.14 15:11 신고 URL EDIT
보내드렸습니다
2014.03.12 15:24 URL EDIT REPLY
비밀댓글입니다
BlogIcon Twodragon | 2014.03.14 15:11 신고 URL EDIT
보내드렸습니다
2014.03.12 21:20 URL EDIT REPLY
비밀댓글입니다
BlogIcon Twodragon | 2014.03.14 15:12 신고 URL EDIT
보내드렸습니다
2014.04.23 17:05 URL EDIT REPLY
비밀댓글입니다
BlogIcon j930421 2014.09.20 20:41 신고 URL EDIT REPLY
j930421@naver.com

ㅠㅠ microsoft visual c++6.0 좀 보내주세요 ㅠㅠ
2014.10.30 23:41 URL EDIT REPLY
비밀댓글입니다
2016.09.02 16:02 URL EDIT REPLY
비밀댓글입니다
BlogIcon Twodragon | 2016.10.08 20:14 신고 URL EDIT
보내드렸습니다
2017.05.07 00:01 URL EDIT REPLY
비밀댓글입니다
Name
Password
Homepage
Secret

C언어

* 컴퓨터 언어 (Computer Language)/C/C++
















[문제1]키보드로 정수 1개를 입력 받아서 8,10,16 진수를 출력하시오.(다시해보기)
#include <stdio.h>

main()
{
 int a;

 printf("정수입력:");
 scanf("%d"\n,&a);

 printf("%o\n",a);
 printf("%d\n",a); 
 printf("%x\n",a); 

}
[문제2]키보드로 태어난 연도를 입력 받아서 나이를 출력하시오.
#include <stdio.h>

main()
{
 int year;

 printf("태어난 연도:");
 scanf("%d",&year);

 printf("나이:%d\n",2012-year+1);
}



[문제3] 키보드로 두개의 변의 길이를 입력 받아서 사각형의 넓이를 출력하시오.
#include <stdio.h>

main()
{
 int a,b;

 printf("가로:");
 scanf("%d",&a);
 printf("세로:");
 scanf("%d",&b);

 printf("넓이:%d\n",a*b);
}


과제 :
[문제1]1인치는 2.54cm 이다. 키보드로 인치를 입력(실수값) 받아서 cm 단위로 환산하여 출력하시오. 단, 출력은 소수점 1자리까지 한다.
#include <stdio.h>

main()
{
 float a;
 
 printf("인치를 입력하시오.");
 scanf("%f",&a);
 
printf("%.1fcm\n",2.54*a);
}

[문제2]키보드로 휴대폰 음성통화 사용 초와 문자메시지 사용건수를 입력(정수값)받아서 휴대폰 요금을 출력하시오.
단, 음성통화 요금은 초당 2원, 문자메시지는 건당 30원이다.

#include <stdio.h>

main()

 int a,b;
 
 printf("휴대폰 음성통화 사용 초는?");
 scanf("%d",&a);
 printf("문자메시지 사용건수는?(정수값)?"); 
 scanf("%d",&b);

 printf("%d\n",(2*a)+(30*b)); 
}

[문제3]키보드로 밑변과 높이(정수)를 입력 받아서 삼각형의 넓이를 출력(소수점 2자리)하시오.

#include <stdio.h>

main()
{
int a,b;
float c;
printf("밑변(정수):");
scanf("%d",&a);
printf("높이(정수):");
scanf("%d",&b);

c=a*b;
printf("삼각형의 높이:%,2f\n",c/2);
}


다음주 수요일까지 과제물 주의사항 동국대전산원보기
표지(학번,이름)+문제적고 프로그램코드+결과화면 캡쳐+설명

'* 컴퓨터 언어 (Computer Language) > C/C++' 카테고리의 다른 글

Microsoft Visual C++ 6.0  (164) 2012.04.10
C언어  (0) 2012.03.22
C언어 입출력  (0) 2012.03.16
수식과 연산자  (0) 2011.12.22
02.C언어의 기초  (7) 2011.11.19
Name
Password
Homepage
Secret

C언어 입출력

* 컴퓨터 언어 (Computer Language)/C/C++
















C언어의 입출력

1. 출력함수


  우리가 자주 사용하는 출력함수는 printf()이다. 이것의 장점은 크게 두 가지로 볼 수 있는데, 첫째는 인자 리스트를 구성할 때 길이에 제약이 없다는 것이고, 둘째는 출력의 제어가 간단한 변환형식(format)에 의해 이루어진다는 것이다. 즉, 사용자가 직접 필요한 변환을 하지 않아도 된다는 것이다. printf() 함수는 표준출력 파일 stdout에 문자 스트림을 전달한다. printf()의 매개변수 리스트는 제어문자열과 인자 리스트의 두 부분으로 이루어진다. 다음의 함수 호출



변환문자

의미

d

십진 정수

45

o

8진 정수

55

x

16진 정수

2d

u

무부호 십진 정수

45

e

지수부가 있는 부동 소숫점

-7.001100e+03

f

지수부가 없는 부동 소숫점

-7001.100000

g

e 혹은 f 중 짧은 것이 선택됨

-7001.1

c

단일 문자

k

s

문자열

Pacific




선언문과 치환문

char a;

int i,j,k;

c='w'; i=1; j=29; k=230551777;

형식

인쇄

비고

/* 따옴표는 영역의 경계를 나타내기 */

/* 위한 것일 뿐 실제로 인쇄되지는 않음 */

%c

c

"w"

생랷l의 영역폭은 1

$2c

c

" "

우정렬

%-3c

c

"w "

좌정렬

%d

c

"119"

생략시의 영역폭

%5d

c

" 119"

우정렬

%-5d

c

"119 "

좌정렬

%d

i

"1"

생략시의 영역폭

%d

-j

"-29"

생략시의 영역폭

%10d

i

"         1"

우정렬

%010d

i

"0000000001"

0으로 채워짐

%010d

-i

"-0000000001"

0으로 채워짐

%-12d

j

"29          "

좌정렬

%12o

j

"          35"

우정렬

%-12x

j

"1d          "

좌정렬

%d

k

“230551777”

생략시의 영역폭

%5d

k

“230551777”

9칸이 필요

%17d

-k

“       -230551777”

우정렬


  앞의 설명에서 정확도는 소숫점의 오른쪽에 인쇄될 자릿수를 의미하거나 문자열로부터 인쇄될 무자의 수를 의미한다. 보통 정확도는 컴퓨터 안에 부동소숫점수를 저장할 때의 정확도를 말한다. float 형의 변수는 유효 숫자로 대략 6자리만 저장한다. double 형 변수인 경우에는 유효숫자가 약 16자리이다. 다음의 표는 부동 소숫점 변환형식의 사용법을 예시하고 있다. 이 표는 32비트 기계를 기준으로 한 것이다.

선언문과 치환문

float x;

double y,z;

x=y=333.12345678901234567890;

z=-555.11111111111111111111e-9;

혁식

인쇄

비고

/* 따옴표는 실제로는 인쇄되지 않음 */

%f

x

"333.123444"

생략시의 정확도

%.1f

x

"333.1"

정확도 1

%.9f

x

"333.123443603"

정확도 9

%20.3f

x

"            333.123"

우정렬

%-20.3f

x

"333.123            "

좌정렬

%.9f

y

"333.123456789"

정확도 9

%.20f

y

"333.12345678901234000000"

정확도 20

%20.3e

y

"          3.331e+02"

우정렬

%-20.3e

y

"3.331e+02          "

좌정렬

%f

z

"-0.000001"

생략시의 정확도

%e

z

"-5.551111e-07"

생략시의 정확도

%.1e

z

"-5.6e-07"

정확도 1

%.3e

z

"-5.551e-07"

정확도 3

%20.9e

z

"  -5.5511111111e-07"

우정렬

%-20.9e

z

"-5.5511111111e-07  "

좌정렬

%2e

z

"-5.551111e-07"

더 많은 공간 소요


  다음의 표는 문자열 반환형식의 사용 예이다.

선언문과 초기값

char c='w'';

static char s1[]="she sells sea shells";

static char s2[]="by the sea shore";

형식

인쇄

비고

/* 따옴표는 실제로는 인쇄되지 않음 */

%s

c

/* error */

char는 문자열이 아님

%s

s1

"she sells sea shells"

생략시의 영역폭

%7s

s1

"she sells sea shells"

더 많은 공간소요

%20s

s2

"    by the sea shore"

우정렬

%-20s

s2

"by the sea shore    "

좌정렬

%.5s

s2

"by th"

정확도 5

%.12s

s2

"by the sea s"

정확도 12

%15.12s

s2

"   by the sea s"

정확도 12, 우정렬

%-15.12s

s2

"by the sea s   "

정확도 12, 좌정렬

%3.12s

s2

"by the sea s"

더 많은 공간소요

% 문자의 인쇄에는 %% 변환형식을 사용한다. 물론 변환형식 %c에 대응하는 인자로 ‘%’를 주어도 마찬가지이다.

2. 입력함수 scanf()

scanf() 함수는 다음의 두 특성을 보유하고 있어 융통성이 매우 높다. 첫째는 인자의 길이에 제한이 없다는 것이고, 둘째는 변환에 필요한 세부사항을 사용자가 몰라도 간단한 변환형식에 의해 입력이 제어된다는 것이다. scanf()의 매개변수 리스트는 제어문자열과 인자 리스트의 두 부분으로 구성된다.


3. 관련함수 : fprintf(), sprint(), fscanf(), sscanf()


함수 printf()는 stdout 파일에 출력한다. 함수 fprintf()는 파일 포인터를 첫 인자로 가져야 한다. 나머지 인수들은 printf()의 것들과 같다. 특히 다음의 두 문은 동등하다.


fprintf(stdout, …);

printf(…);


stdout는 기정의된 파일 포인터형의 식별자로서 다음 절에서 다시 설명한다. 이와 비슷하게 sprintf(s, …)는 파일 stdout 대신에 문자열 s에 출력한다. 이 문자열은 출력을 저장하기에 충분한 크기이어야 한다.

함수 fscanf()는 scanf()에 대응하는 것으로서 입력화일에 대한 포인터를 첫 인자로 갖는다. sscanf()는 scanf()의 문자열 형태이다.



 

4. 파일


  파일은 구조체에 대한 포인터에 의해 접근된다. 이 구조체는 표준 헤더파일 stdio.h에서 FILE로 정의되었다. 추상적으로는 파일을 순차적으로 처리되는 문자들의 스티림으로 생각할 수 있다. 시스템에서 제공하는 표준 하일로는 다음의 셋을 들 수 있다.


stdin  표준 입력 파일  : 키보드에 연결됨

stdout 표준 출력 파일  : 스크린에 연결

stderr 표준 오류 파일  : 스크린에 연결


  라이브러리 함수 fopen()은 파일을 열기 위해서 사용된다. 이것은 FILE에 대한 포인터를 반환한다. 다음은 my_file이라는 이름의 파일을 여는 예이다.


#include <stdio.h>

main()

{

        int c;

        FILE *fp, *fopen();

        fp=fopen("my_file","r");


  파일이 개방된 후 파일에 대한 모든 참조에 파일 포인터가 사용된다. 표준 라이브러리에 마련되어 있는 중요한 함수를 살펴보면 다음과 같다. 이 외에 다른 함수도 있으며 시스템마다 다소 차이가 있을 수 있다. 상세한 사항은 사용시스템으 지침서를 참조하기 바란다.


1) fopen(파일명, 파일모드)

  버퍼가 있는 파일을 열기 위해 필요한 작업을 수행하고 FILE에 대한 포인터를 반환한다. “파일명”을 접근할 수 없으면 NULL값이 반환된다. “파일명”과 파일모드“모두 문자열이다. ”파일모드“는 ”r“, ”w", “a" 가 있는데, 각각 일기(read), 쓰기(write), 추가(append)에 해당한다. 파일 모드가 ”r"이나, “w" 이면 파일 포인터는 파일의 처음에 위치하고, ”a“ 모드인 경우에는 파일의 끝에 위치한다. 파일 모드가 "w" 나 "a" 인 경우에 파일이 존재하지 않으면 파일이 새로 생성된다.


2) fclose(파일 포인터)

  “파일 포인터”는 FILE에 대한 포인터이다. 함수 fclose는 버퍼를 비우는 데 필요한 일을 수행하고 지정된 파일에 대한 연결을 모두 제거한다. “파일 포인터”가 파일과 관계가 없는 경우에는 EOF값이 반환된다. 개방되는 파일의 수는 제한적이다. 필요한 파일만을 열어 놓는 것이 시스템의 효율을 높이는 데 도움이 된다.


3) getc(파일 포인터)

  “파일 포인터”가 지시하는 파일에서 다음 문자를 추출한다. 문자의 값은 정수로 반환된다. 하일의 끝을 만나거나 오류가 있는 경우에는 EOF값을 반환한다.


4) getchar()

  이것은 getc(stdin)과 동일하다


5) fgetc(파일 포인터)

  getc()와 유사하게 동작한다.


6) ungetc(c, 파일포인터)

  c를 “파일 포인터”가 지시하는 파일에 푸쉬한다. 푸쉬한 다음 번 읽기에는 바로 이 값이 반환된다. ungetc의 반환치는 c이다. 오류인 경우에는 EOF가 반환된다.


7) putc(c, 파일 포인터)

  c의 값을 파일 포인터가 지시하는 출력파일에 출력한다. 출력한 문자의 int 값을 반환한다.


8) putchar(c)

  putc(c,stdout)와 동일하다


9) fput(c,파일 포인터)

  putc(c,파일 포인터)와 유사하다


10) gets(s)

  s는 문자열 변수이다. gets(s) stdin으로부터 s로 문자열을 읽어들인다. 개행(newline)문자가 나올 때까지 입력문자들을 s에 저장한다. 개행문자는 널(null)문자로 바꿔어 s에 저장된다. 문자형 포인터인 s의 값이 반환된다.


11) fgets(s, n, 파일 포인터)

  파일 포인터가 지시하는 파일로부터 n-1개 문자가 읽혀질 때까지 혹은 첫 번째 개행문자가 읽혀질 때까지 문자를 읽어 문자열 s에 저장한다. gets(s)와는 달리 개행문자 자체도 s에 저장되며 이것 다음에 널이 추가된다. 문자형 포인터인 s의 값이 반환된다.


12) puts(s)

  문자열 s와 개행문자가 stdout에 출력된다.


13) fputs(s, 파일 포인터)

  문자열 s를 파일 포인터가 지시하는 파일에 출력한다. puts()와는 달리 개행문자가 추가로 출력되지 않는다.


14) fseek(파일 포인터, offset, place)

  다음 입력 또는 출력의 시작 위치르 지정한다. offset은 long형의 변수이고 place는 int형 변수이다. place는 0, 1, 2, 중 하나의 값을 가진다. 0은 파일의 시작, 1은 현재 위치, 2는 파일의 끝에 해당한다. 파일 포인터는 place로부터 offset 바이트만큼 이동된다. ungetc()의 효과가 fseek()에 의해 소멸된다.


15) rewind(파일 포인터)

  fseek(파일 포인터, 0L, 0)와 동일하다.


16) ftell(파일 포인터)

  파일 포인터가 지시하는 파일의 처음으로부터 현재 위치까지의 차감거리를 long으로 반환한다. 유닉스에서 차감거리는 바이트 단위로 측정된다.


17) exit(status)

  프로그램 실행을 종료시킨다. 모든 버퍼는 바워지고 파일은 닫힌다. status의 값을 호출 프로세스에 반환한다. status는 int형의 식이다. 보통 프로그램이 적절하게 수행되었으면 0이, 그렇지 않으면 0이 아닌 값이 된다.


18) system(command)

  command는 유닉스의 명령어에 해당한는 문자열이다. 예를 들면

system("cal 1990");

은 쉘(shell)이 유닉스 명령어 “cal 1990"을 수행하도록 한다. 이 결고 1990년의 달력이 파일 stdout에 인쇄된다.


이러한 표준 라이브러리 함수들을 사용하는 예들을 살펴보자, 첫째 프로그램은 파일에 존재하는 문자들을 대문자로 바꾸어 stdout에 출력하는 것이다.


/*** 파일의 모든 문자를 대문자로 바꾸기 ***/


#include <stdio.h>

main(argc, argv)

int argc;

char *argv[];

{

        int c;

        FILE *fp, fopen();

        fp=fopen(argv[1], "r");

        while((c=getc(fp) !=EOF)

                if('a' <= c && c <= 'z')

                        putchar(c+'A'-'a');

                else

                        putchar(c);

}


다음의 문장


fp=fopen("argv[1], "r");


은 사용자가 입력한 코맨드의 첫 인수로 지정된 파일을 읽기용으로 한다. 이제 포인터 변수 fp가 이 파일을 지시하는 것으로 생각하면 된다. 다음 줄


while((c=getc(fp)) != EOF )


로부터 시작되는 while 루프는 파일의 끝까지 문자를 c로 읽어 이를 대문자로 변환하여 출력한다. UNIX의 경우 이 프로그램이 컴파일된 후 프로그램의 수행은 다음과 같은 코맨드에 의한다.


a.out 파일


여기서 “파일”은 입력자료가 저장되어 있는 파일의 이름이다. 출력은 stdout에 기록된다.


다음의 프로그램은 입력파일을 한 행씩 더 뛰워 stdout과 출력파일에 기록한다. 즉, 입력파일에 개행문자마다 이를 하나 더 추가한다.


/*** 파일의 행을 이중으로 뛰우기 ***/


#include <stdio.h>

main(argc, argv)

int argc;

char *argv[];

{

        int c;

        FILE *myfile_in, *myfile_out,*fopen();

        if(argc != 3) {

                fprintf(stderr, "\nusage: %s infile outfile\n", *argv);

                exit(1);

        }

        if((myfile_in = fopen(*++argv, "r")) == NULL) {

                fprintf(stderr, "\nmain:cannot open %s\n", *argv);

                exit(1)

        }

        if(myfile_out = fopen(*++argv, "w")) == NULL) {

                fprintf(stderr, "\nmain:cannot open %s\n", *argv);

                exit(1);

        }

        while((c = getc(myfile_in) != EOF) {

                putc(c,myfile_out);

                putc(c,stdout); /* echo to stdout also */

                if(c == '\n') { /* double space */

                        putc(c, myfile_out);

                        putc(c, stdout);

                }

        }

        fclose(myfile_in);

        fclose(myfile_out);

}


이 프로그램의 목적 코드가 double_space라는 파일에 저장되어 있다고 하자. 다음의 코맨드


double_space 파일1


이 입력되면 argc는 2의 값이 되어 오류 메시지를 stderr로 보내고 시스템 함수 exit(1)를 호출하여 탈출하게 된다. exit()의 인자가 0이 아니므로 비정상적인 탈출이다. 다음의 코맨드


double_space 파일1, 파일2


가 입력되면 argc가 3이 되므로 제어는 밑의 if 문으로 이동된다. 다음의 식


(myfile_in = fopen(*++argv, "r")) == NULL


은 코맨드의 첫째 인자가 제시하는 파일을 열기 위해 사용되었다. *++argv 대신에 argv[1] 을 써도 된다. =가 ==보다 우선순위가 낮으므로 괄호는 반드시 있어야 한다. 만을 fopen()이 파일을 열지 못하면 NULL값이 반환되는데, 이 경우 stderr에 적절한 메시지를 출력한후 프로그램을 빠져 나간다




출처:http://weezzle.net/1624 

'* 컴퓨터 언어 (Computer Language) > C/C++' 카테고리의 다른 글

Microsoft Visual C++ 6.0  (164) 2012.04.10
C언어  (0) 2012.03.22
C언어 입출력  (0) 2012.03.16
수식과 연산자  (0) 2011.12.22
02.C언어의 기초  (7) 2011.11.19
Name
Password
Homepage
Secret

수식과 연산자

* 컴퓨터 언어 (Computer Language)/C/C++












Section1 수식

 
수식이란? 계산을 위하여 변수, 상수, 연산자 등을 결합한 것을 수식이라고 한다. 이러한 수식은 다른 프로그래밍 언어에서의 수식과 마찬가지로 계산 결과를 반드시 왼쪽의 변수에 저장하도록 작성되어야 한다.

변수 = 수식 <- 수식의 처리 결과를 왼쪽의 변수에 대입하라
 
데이터의 형 변환
수식의 계산 결과는 왼쪽 변수의 데이터형에 따라 자동으로 변환되어 저장된다.

(1) 형이 다른 데이터의 대입

main()
{
     char a,b;
      int c,d;
      a=10;
      c=a;
      d=129;
      b=d
      printf("a=%d c=%d\n",a,c);
      printf("b=%d d=%d",b,d);
}

a의 값을 c에 넣는 경우에 a의 값이 c의 데이터형보다 작기 때문에 이상없이 데이터가 대입된다. 그러나 d의 값을 b에 넣는 경우에는 b의 데이터형인 char형에 저장할 수 있는 허용 범위인 127 을 넘어서므로 정확한 결과를 얻을 수 없다.



(2) 형이 다른 데이터끼리의 연산

데이터형이 다른 데이터끼리 연산을 할 경우에는 수식에서 가장 큰 데이터형으로 자동으로 형 변환이 이루어진 후 연산된다.

main()
{
   int a;
   float i,j;
   a= 10000;
   j=0.04;
   j=a*i;
   printf("\n원금 = %d",a);
   printf("\n년 이자율 = %f",i);
   printf("\n이자 = %f원\n",j);
}

위의 프로그램을 실행하면 가장 큰 데이터형인 float형으로 모두 변환된 후 결과가 다음과 같이 출력된다.

(3) 강제 형 변환
다음과 같이 변수 앞의 괄호 안에 데이터형을 지정해 주면 해당 데이터형으로 변환된다.

(데이터형)변수

main()
{
  int a;
  long int b;
  a=127;
  b=327600;
  b=b*(long)a;
  printf("a = %d\nb = %ld",a,b);
}

캐스트 연산자:강제로 형을 변환하기 위하여 괄호 안에 넣어주는 것을 캐스트연산자라고 한다.


Section02 연산자



산술연산자

C언어에서도 일반적인 사칙 연산을 위한 산술 연산자가 사용된다.

(1)이항 연산자
두 변수나 상수에 대한 연산을 처리하기 위한 연산자이다.

main()
{
  int a=20,b=10,c=5;
  a=b+c;
  printf("\n%d와 %d를 더한 값 = %d\n",b,c,a);
  a=b-c;
  printf("\n%d에서 %d를 뺀 값 = %d\n",b,c,a);
  a=b*c;
  printf("\n%d와 %d를 곱한 값 = %d\n",b,c,a);
  a=b/c;
  printf("\n%d에서 %d를 나눈 몫 = %d\n",b,c,a);
  a=b%c;
  printf("\n%d를 %d로 나눈 나머지 = %d\n",b,c,a);
}

(2)단항 연산자
피연산자의 개수가 한 개인 수식에 사용되는 것으로 값을 증감시키는 증가 증가 연산자와 감소 연산자, 그리고 부호를 표시하는데 사용되는 +,- 연산자가 있다.

 연산자  기능  사용 예
 ++  값을 1 증가시킨다.  a++,++a
 --
 값을 1 감소시킨다.  a- -, - -a
 +  부호를 표시한다.  +a
 -  부호를 반전 표시한다.  -a


단항 연산자의 경우에 대입 연산자를 사용하지 않을 수도 있다. 예를 들어 a++는 a=a+1 이라는 의미를 가지므로, a=a+1 대신 a++를 사용하여도 된다.
또한 단항 연산자를 앞에 사용하는 경우와 뒤에 사용하는 경우에 처리 결과가 달라질 수 있다.

main()
{
  int a,b;
  b=5;
  a=++b;
  printf("a의값은 %d이고,b의 값은 %d이다.",a,b);
}

위 프로그램의 실행결과는 a의 값과 b의 값이 모두 6으로 나타난다. 즉, b의 값이 1 증가된 후 a에 대입되어, 두 변수의 값이 모두 6으로 저장된 것이다.

main()
{
   int a,b;
   b=5;
   a=b++
   printf("a의 값은 %d이고,b의 값은 %d이다.",a,b);
}

위 프로그램을 실행하면 a의 값이 5이고, b의 값이 6으로 나타난다. 즉, a에 b의 값을 대입한 후 b의 값이 1 증가된 것이다.
위와 같이 증가 연산자와 감소 연산자는 변수의 왼쪽에 사용하느냐 오른쪽에 사용하느냐에 따라 다른 결과를 가져올 수 있으므로 주의하여야 한다.

대입 연산자

대입 연산자는 오른쪽 수식의 값을 왼쪽의 변수에 대입시켜주는 연산자로 다음과 같은 것들이 사용된다.

대입연산자의 종류와 기능
 연산자 기능0  사용 예
오른쪽의 값을 왼쪽의 변수에 대입한다.  a=b 
+= 왼쪽의 변수에 들어있는 값과 오른쪽 값을 더하여 왼쪽 변수에 대입한다.  a += b 
 -= 왼쪽의 변수에 들어있는 값에서 오른쪽 값을 뺀 후 왼쪽 변수에 대입한다.  a -= b 
 *= 왼쪽의 변수에 들어있는 값과 오른쪽 값을 곱하여 왼쪽 변수에 대입한다.  a *= b 
 /= 왼쪽의 변수에 들어있는 값을 오른쪽 값으로 나눈 후 왼쪽 변수에 대입한다.  a /= b 
 %= 왼쪽의 변수에 들어있는 값과 오른쪽 값으로 나눈 나머지를 왼쪽 변수에 대입한다.  a %=b 


더보기



관계 연산자

관계 연산자는 두 수의 대소 관계를 비교하기 위한 것으로, 연산자의 왼쪽에 있는 값과 오른쪽에 있는 값을 비교하여 대소 관계가 맞으면 참(1)을, 틀리면 거짓(0)을 반환한다. 관계 연산자는 결과에 따라 다른 처리를 하기 위한 조건문에 사용된다.

관계 연산자의 종류와 기능
 연산자 기능  사용 예 
 == 같다  a == b 
 != 같지 않다.  a != b 
 < 보다 작다.  a < b 
 <= 작거나 같다.  a <= b 
 > 보다 크다.  a > b 
 >= 크거나 같다.  a >= b 

main()
{
int a= 10,b=20;
printf("\na의 값은 %d이고,b의 값은 %d이다.\n",a,b);
printf("\n 두 수를 비교한 결과 1이면 a가 b보다 크고, 0이면 b가 a보다 크거나 같다.\n");
printf("\n두 수의 비교 결과는 %d이다.\n\n"a>b);
a*=2;
printf("\na에 2를 곱한 a의 값은 %d이고,b의 값은 %d이다.\n",a,b);
printf("\n두 수를 비교한 결과 1이면 a와 b와 같고, 0이면 a와 b가 다르다.\n");
printf("\n두 수의  비교 결과는 %d이다.\n\n",a==b);
}

C언어에서 관계 연산자는 = 기호보다 < 기호나 > 기호가 먼저 나와야 한다. = 기호가 먼저 나올 경우에는 에러가 발생한다.

논리 연산자
논리 연산자는 연산자의 왼쪽과 오른쪽의 값을 비교하여 두 값의 참과 거짓 값에 대한 논리적인 비교를 하여 참과 거짓을 반환한다. 논리 연산자는 여러 개의 조건을 지정하여 해당 조건을 모두 만족하거나 또는 하나의 조건만 만족하더라도 특정 처리를 실행하기 위한 조건문에 사용된다. 논리 연산자의 종류와 기능은 다음과 같다. 참은 1의 값을 가지고, 거짓은 0의 값을 갖는다.

논리 연산자의 종류와 기능 
 연산자 기능  사용 예 
 && 두 값(조건)이 모두 참이면 참을 반환한다.  a && b 
 || 두 값(조건)중의 하나라도 참이면 참을 반환한다. a || b 
 ! 오른쪽의 값(조건)이 참이면 거짓을, 거짓이면 참을 반환한다.   ! a 


main()
{
int a, b, c;
a=1;
b=1;
c=0;
printf("%d AND %d = %d\n",(a>c),(b>c),(a>c) && (b>c));
printf("%d AND %d = %d\n",(b>a),(b>c),(b>a) && (b>c));
printf("%d OR %d = %d\n",(a>c),(b>c),(a>c)||(b>c));
printf("%d OR %d = %d\n",(b>a),(b>c),(b>a)||(b>c));
printf("NOT %d = %d\n", (a>c),!(a<c));

}

조건 연산자
조건 연산자는 왼쪽의 조건에 따라 오른쪽의 문장을 처리하는 연산자로서 다음과 같은 형식을 갖는다.

조건식 ? 문장1 : 문장2

main()
{
int i=2,j=10;
(i>j) ? printf("\n%d가 %d보다 크다.\n",i,j) : printf("\n%d는 %d보다 크지 않다.\n",i,j);
}

위의 프로그램을 실행하면 i의 값이 j의 값보다 크지 않기 때문에 콜론(:)오른쪽의 문장이 출력된다. 

 


출처 : C를 뿌려라! C언어 입문

 

'* 컴퓨터 언어 (Computer Language) > C/C++' 카테고리의 다른 글

C언어  (0) 2012.03.22
C언어 입출력  (0) 2012.03.16
수식과 연산자  (0) 2011.12.22
02.C언어의 기초  (7) 2011.11.19
01.프로그래밍의 기초  (0) 2011.11.17
Name
Password
Homepage
Secret

02.C언어의 기초

* 컴퓨터 언어 (Computer Language)/C/C++














Section01.C언어의 특징


C언어는 1970년대 초 Bell 연구소에서 UNIX 라는 새로운 운영체제를 만들기 위한 언어로 개발
1.범용적인 프로그래밍 언어
2.소문자를 사용하여 프로그래밍할 수 있다.
3.대소문자를 구분하며, 표현이 간결하다.
4.구조적 프로그래밍과 시스템 프로그래밍에 적합한 언어
5.다양한 연산자를 사용
6.포인터를 이용하여 저수준의 언어처럼 메모리를 직접 제어할 수 있다.
7.다양한 데이터형을 사용한다.
8.함수로 구성되어 모듈화가 가능하다.
9.프리프로세서를 사용한다.
10.입출력기능이 없이 입출력을 위한 외부 함수를 사용한다.
11.특수문자를 사용할 수 있다.
12.프로토타입을 선언할 수 있다.
13.이식성이 좋으며, 하향식 프로그래밍 기법에 적합하다.


Section02.C언어 프로그램의 작성과 실행방법


원시 프로그램의 작성:원시 프로그램은 텍스트 형식의 파일로서, 메모장과 같은 텍스트 편집기를 이용하여 작성한 후 텍스트 형식으로 저장한다. 파일을 저장할 때 확장자는 반드시 ".C"와 같이 "C"라는 확장자를 붙여주어야 한다. 
목적 프로그램으로 번역:작성된 텍스트 형식의 파일을 컴파일러를 이용하여 번역하여 기계어 형식의 목적 프로그램으로 번역한다.Turbo-C등으로 번역하면 목적 프로그램으로 번역 된 후 파일에".obj" 라는 확장자가 자동으로 붙는다.
실행 파일의 생성:컴파일러에 의하여 번역된 목적 프로그램은 링키지 에디터에 의하여 라이브로리, 서브 프로그램 등과 연계하여 재배열된 후 실행 파일로 만들어진다. 이렇게 만들어진 실행 파일은 일반적인 실행 파일과 마찬가지로 ".exe"라는 확장자를 자동으로 붙여준다.
실행 파일의 실행:프로그램의 작성 -> 원시 프로그램 -> 실행 프로그램 -> 결과


Section03.C언어의 기본 구조


main() 함수


main()
{
    printf("대한민국");
}
C언어로 작성된 간단한 프로그램으로 "대한민국"이라는 문자열을 화면에 보여준다.

Section04.표준 입출력 함수


표준 출력 함수
printf("나타내고자하는 메시지, 형식 지정 문자",데이터 또는 변수);

main()
{   int i=10;
    chat a= 'Y';
    printf("a에 들어있는 값은 %c이고,i에 들어있는 값은 %d이다.",a,i);
}
%c는 출혁할 내용이 문자형이라는 것을 알려주고, %d는 정수형이라는 것을 알려준다.

앞에서 작성한 프로그램을 다음과 같이 변경해보자.
main()
{
   int i=10;
  char a='Y';
   printf("a에 들어있는 값은 %c이고,",a);
   printf("i에 들어있는 값은 %d이다.",i);
}

동일한 결과를 얻을 수 있다.

C언어에서는 줄바꿀때 기호를 "\n"은 "\n"라고 표현한다.
main()
{
        int i=10;
        char a= 'Y';
        printf("a에 들어있는 값은 %c이고,\n",a);
        printf("i에 들어있는 값은 %d이다.",i);
}
위 프로그램을 실행하면 줄이 바뀌어 출력이 된다.

또한 인용 부호 안에 특수 문자를 넣을 경우에는 반드시 앞에 '\'기호를 붙여주어야 한다.
ex) 인용 부호(")나 '%'기호, '\'기호 등을 출력하고자 할 경우에는 다음과 같이 해당 문자의 앞에 '\'기호를 붙여준다.

main()
{
  printf("특수 문자 출력 연습\n");
  printf("인용 부호(\")를 출력할 때에는 \" 앞에 \\를 붙여 준다.\n");
  printf("퍼센트 기호(\%)를 출력할 때에는 앞에 \\를 붙여 준다.");
}

입출력을 위한 형식 지정 문자
%d:정수 변환
%f:실수 변환
%c:문자 변환
%s:문자열 변환
%x:16진 변환

제어 문자열의 종류
\n:커서를 다음 행의 선두로 이동
\f:커서를 다음 탭의 선두로 이동
\b:커서를 한 칸 앞으로 이동

표준 입력 함수
scanf("형식 지정 문자",&변수);

-문자열의 경우에는 '&' 기호를 붙이기 않는다.
Scanf("%c",&a) 문자의 경우
Scanf("%s",a)  문자열의 경우

main()
{
  int i;
  char c;
  printf("정수와 문자를 콤마(,)로 구분하여 입력하세요\n");
  scanf("%d,%c",&i,&c);
  printf("\n입력된 정수는 %d이고, 문자는 %c입니다.",i,c);
}

Section05.변수


변수의 정의:변수라는 것은 어떤 연산을 처리하기 위하여 필요한 값을 넣어두기 위한 방의 이름이다.

헝가리안 표기법

 접두어  데이터형
 c char 
 by  BYTE(unsigned integer)
 n  short
 l  int
 x,y  int(x좌표와 y좌표에서 사용)
 cx,cy  int(x 또는 y 길이로 사용, c는 count의 의미)
 b 또는 f  BOOL(int), f는 flag의 의미
 w  WORD(unsigned short)
 l  LONG(long)
 dw  DWORD(unsigned Short)
 fn  function(함수)
 s  string(문자열)
 sz  바이트 0으로 종료되는 문자열(string terminated by 0 byte)
 h  handle
 p  pointer

Section06.데이터형과 변수의 선언


정수형 자료
정수형 자료는 소수점이 없는 숫자로서, 일반적으로 16비트(2Byte)의 자리를 할당하는 int형을 사용한다.
그러나 정수의 크기가 클 경우에는 32비트(4Byte)의 자리가 할당되는 long형을 사용한다.
또한 부호가 있는 수와 부호가 없는 수로 할당할 수 있으며, 부호가 있는 수의 경우에는 최상위 비트를 부호 비트로 사용한다.
정수형 자료의 타입과 할당되는 비트 수가 있다.

정수형의 데이터 타입

 데이터 타입 할당되는 비트 수  값의 표현 범위 
 int  16  -2의 15승 ~2의15승-1(-32768~+32767)
 unsigned int  16  0~2의16승-1(0~65535)
 long  32  -2의31승~2의31승-1
(-2147483648~+2147483647)
 unsigned long  32 0~2의32승-1(0~4294967295) 


더보기



실수형 자료

[부호][10진수].[소수점 이하 숫자]E[지수부의 부호][지수]
ex)12.345->0.12345E+2
1234.567->0.1234567E+4
0.0012->0.12E-2
0.0000123->0.123E-4

실수형의 데이터 타입
 데이터 타입 할당되는 비트 수 값의 표현 범위 
 float  32   +-3.4E-38~+-3.4E+38 
 double 64  +-1.7E-308~+-1.7E+308
 long double 80   +-3.4E-4916~+-1.1E+4932

float로 선언한 경우와 double로 선언한 경우에 똑같은 숫자를 대입하였으나, 실행한 결과 float의 경우에 정확한 값이 나오지 않는 것을 알 수 있다. 즉, float형의 자료 범위를 넘을 경우에 정확한 값이 저장되지 않는다. 그러나 double형으로 선언한 경우에는 정확한 값을 처리할 수 있다.


문자형 자료

C언어에는 문자형 자료를 저장하기 위한 데이터형으로 char형을 사용한다.
char형은 8비트(1Byte)의 자리를 할당하는 것으로 하나의 문자만을 저장할 수 있다.
하나의 문자는 작은 따옴표('')로 묶어 주어야 한다.
C언어에서는 하나의 문자가 아닌 여러 개의 문자, 즉 문자열을 저장하기 위한 문자열 데이터형이 없고, 나중에 배울 배열이나 포인터를 이용한다. 문자열은 인용 부호("")로 묶어주어야 한다.

main()
{
      char a,b,*c;                    
      a=  'H';
      b=   'i';
      c= "Hello!";
      printf("%c%c %s" ,a,b,c,);
}

하나의 문자를 저장하기 위하여 변수 'a'와 'b', 그리고 문자열을 저장하기 위하여 변수 'c'앞에 포인터(*)를 붙인 후 문자형으로 선언한다.
문자형 변수에 문자 하나를 대입하여 초기화시킨다. 문자는 작은 따옴표('')로 묶어주었다.
문자열 변수에 문자열을 대입하여 초기화시킨다. 문자열은 인용 부호("")로 묶어주었다.
'%c'는 문자형으로 출력하라는 의미이고, '%s'는 문자열형으로 출력하라는 의미이다.


기호상수

#define 상수명 값

#difine PI 3.141592
main()
{
   printf("%If" ,PI);
}

위 프로그램을 실행하면 "PI"가 아닌 PI 의 값(3.141592)이 출력되는 것을 알 수 있다.


형식 지정 문자

printf() 함수나 scanf() 함수에서는 출력할 값이나, 입력할 값에 대한 형식을 지정하기 위한 문자를 사용한다.
이러한 문자를 정리하면 다음 표와 같다.

형식지정 문자의 종류와 기능
 형식 지정 문자 기능 
 %d  10진수 정수를 의미한다.
 %u  부호 없는 10진수를 의미한다.
 %o  부호 없는 8진수를 의미한다.(영문 소문자 o)
 %x  부호 없는 16진수를 의미한다. 영문자를 소문자로 나타낸다.
 %X  부호 없는 16진수를 의미한다.영문자를 대문자로 나타낸다.
 %c  단일 문자를 의미한다.
 %s  문자열을 의미한다.
 %e  부동소수점의 지수형을 의미한다.
 %f  부동소수점의 소수형((실수형)을 의미한다.

printf()함수를 이용하여 출력할 때 위와 같은 형식 지정 문자에 다음과 같은 포맷 옵션을 지정하면 보다 다양한 모양으로
출력 할 수 있다.

%[-][전체 자릿수][.][소수점 이하 자릿수]형식 지정 문자

- : 내용을 왼쪽에서부터 출력
전체 자릿수 : 출력할 값이 차지할 정수 부분의 자릿수를 의미한다.

main()
{
  float i= 12345;
  double j=123.4567;
  char a='A';
  char *b="대한민국";
  printf("\n%f%If%c %s\n",i,j,a,b);
  printf("\n%10.3f%10.4IF %10c%20s\n",i,j,a,b);
  printf("\n%10.3f%10.4IF %-10c%-20s\n\n",i,j,a,b);
}

첫번째 printf() 함수의 경우에 포맷 옵션을 주지 않아 변수의 선언된 데이터형에 따른 크기로 출력
두번째 포맷 옵션에 따라 지정된 자리수로 출력
세번째 문자형과 문자열형에 - 옵션을 지정함으로써 왼쪽부터 출력된 것이다.


참고문헌:C뿌려라!C언어 입문



상세보기






'* 컴퓨터 언어 (Computer Language) > C/C++' 카테고리의 다른 글

C언어 입출력  (0) 2012.03.16
수식과 연산자  (0) 2011.12.22
02.C언어의 기초  (7) 2011.11.19
01.프로그래밍의 기초  (0) 2011.11.17
C 뿌려라!  (0) 2011.11.17
BlogIcon Noon. 2011.12.20 16:58 신고 URL EDIT REPLY
어? 박정민교수님 책이넼ㅋㅋㅋㅋㅋ헐
BlogIcon Twodragon | 2011.12.20 17:34 신고 URL EDIT
그냥 C언어 관련 책 넣은거예요ㅋ
BlogIcon Noon. | 2011.12.24 13:11 신고 URL EDIT
ㅋㅋㅋ놀랫어 우리교수님일줄은
BlogIcon Twodragon | 2011.12.24 20:39 신고 URL EDIT
와우.. 저 책 많이 유명한데 엄청난교수님이네요ㅋ
BlogIcon Noon. | 2011.12.28 17:28 신고 URL EDIT
그런가? 아무튼 잘가르치심

개인적으로 팬이야 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
BlogIcon ㅁㅁ 2015.04.30 09:27 신고 URL EDIT REPLY
잠시만 써볼게요
오타났다 2015.04.30 11:53 신고 URL EDIT REPLY

#include<stdio.h>
#include<math.h>
#define PI 3.141592654 //파이상수
int main()
{
int i, j;//i,j 반복문을 위한 변수, count는 간격을 계산하기 위한 변수
int count;
for (i = 0; i <= 360; i += 15)//각도를 15도씩 올리면서 반복
{
printf("%d", i);
double a = i;
count = 15 + 15 * sin(a * (PI / 180));//15을 기점으로 간격값 계산
for (j = 0; j < count; j++)//간격 프린트 반복문
{
printf(" ";);
}
printf("*\n";);//줄바꾸기

}


}

Name
Password
Homepage
Secret

01.프로그래밍의 기초

* 컴퓨터 언어 (Computer Language)/C/C++











Section01.알고리즘


알고리즘이란?
-어떤 특정한 작업을 처리하기 위한 과정에서 사용되는 명령들의 집합
알고리즘 기본 조건
-입력
-명확성
-실제성
-출력
-종결성

Section02.순서도


순서도 기호
순서도는 국제표준화기구(ISO : International Organization for Standardization) 에서 정한 표준 기호



Section03.프로그래밍의 순서


 
문제분석 ->입출력 설계->순서도 작성->원시 프로그램 작성->번역->테스트->테스트->실행->문서화 및 유지보수
이런식이며 번역에서 문법오류가 생기면 디버깅에서 다시 원시 프로그램 작성을 하기도 하며,
모의 데이터를 삽입할수 있으며 테스트에서 논리오류가 생기면 디버깅에서 순서도 작성으로 다시 간다.
이렇게 여러 과정을 고친다.

Serction04.프로그래밍 기법


구조화 프로그래밍 기법
-순차제어 구조:
일을 단계적으로 차례로 처리하는 구조로서 하나의 처리를 마친 후에 바로 다음의 처리 과정이 시작된다.
-조건제어 구조:조건에 따라 서로 다른 처리 과정을 진행하도록 한 것으로, 어떤 조건을 비교한 후 조건을 만족하거나 만족하지 않는 경우에 서로 다른 처리를 실행하는 구조
-반복제어 구조:컴퓨터의 특징 중에 가장 중요한 점은 처리 과정을 반복적으로 수행할 수 있다는 것으로, 어떤 조건을
만족하는 동안(Do ~ While), 또는 만족할 때까지(Do ~ Until)같은 처리를 반복하여 실행하는 구조

모듈별 프로그래밍 기법:전체 프로그램을 기능별로 작은 단위의 모듈(module)로 분리하여 부분적으로 코딩한 후 전체 모듈을 결합하여 프로그램을 구성하는 방법을 사용한다.
       -장점:
               1.프로그램의 작성이쉽다.
               2.프로그램의 분석과 디버깅이 쉽다.
               3.기능별로 분할된 모듈을 다른 프로그램에 재사용할 수 있다.
       -단점:
               1.모듈별로 분할하기 위한 객관적인 기준이 없다.
               2.모듈간을 연결하여 전체 프로그램을 만들기 위한 기준을 세우기 어렵다.

하향식 프로그래밍 기법:모듈별 프로그래밍 기법의 하나로 프로그램을 상위의 모듈에서 하위 모듈 순으로 작성해 나가는 프로그래밍 기법이다.

개체지향 프로그래밍 기법:실제세계에서 나타나는 다양한 현상을 개체라는 단위로 실현함으로써 다양한 문제를 해결하기
위한 프로그래밍 기법이다.
-개체지향의 기본용어
              -개체:실제와 실체에 관련된 동작을 모두 포함하는 것
              -메소드:개체에 접근할 수 있는 수단을 제공하는 것으로 개체의 값을 변경하는 등의 기능을 한다. 함수와 비슷하다.
              -인스턴스:클래스에 속하는 각 개체
-개체의 특성
              -상속성:상위클래스와 하위 클래스 사이에 메소드와 데이터를 자동적으로 공유하는 특성
              -캡슐화:개체 고유의 메소드를 통해서만 데이터에 접근
              -추상화:클래스나 개체로부터 공통적인 질의나 특성을 추출하여 상위 클래스를 만들어 낼 수 있다.
              -다형성:동일한 메시지에 대한 수신측에 따라 다른 결과를 얻을 수 있는 특성
              -지속성:개체의 인스턴스는 대부분 프로그램이 실행될 때 만들어지고 실행이 끝나면 없어진다.

Section05.프로그래밍 언어

저급언어
-기계어: 번역 과정이 필요 없이 컴퓨터가 바로 실행 할 수 있으나, 프로그램을 작성하기 매우 어렵고 기종간의 호환성이 떨어져 거의 사용하지 않는다.
-어셈블리어: 기계어와 1:1로 대응되는 기호 형태의 단어로 구성된 프로그래밍 언어,프로그램 작성하기 어렵고 기종간의 호환성이 떨어진다.

고급언어
-컴파일러형 언어:원시 프로그램을 목적 프로그램으로 번역한 후 실행하는 방식으로 대부분의 프로그래밍 언어는 컴파일러형이다. 대화식 처리가 불가능하며 반드시 목적 프로그램을 만드는 것이 특징이다.
ex)FORTRAN,COBOL,PASCAL,C,C++,JAVA 등..

-인터프리터형 언어:번역기를 이용하여 프로그램을 한 줄씩 받아들여 해석하고 번역한 후 번역과 동시에 즉시 실행시키는 방식의 언어이다. 줄 단위로 처리되기 때문에 대화식 처리가 가능하고 목적 프로그램을 만들지 않는 것이 특징이다.
ex)BASIC,LISP,APL,JSP,ASP 등..

컴파일러형 언어와 인터프리터형 언어의 비교
 컴파일러형 언어  인터프리터형 언어
 목적 프로그램을 만든다.  목적 프로그램을 만들지 않는다.
 번역 속도가 느리다.  번역 속도가 빠르다.
 메모리를 많이 차지한다.  메모리를 적게 차지한다.
 프로그램 단위로 번역한다.  줄 단위로 번역한다.
 실행 속도가 빠르다.  실행 속도가 느리다.


Section06.프로그램의 번역과 실행


-인터프리터형 언어의 번역과 실행:BASIC 등은 전용 에디터나 툴을 이용하여 프로그램을 작성한 후 실행하면 줄단위로 번역한 후 이상이 없으면 실행, 실행 도중에 이상이 있으면, 에러 메시지와 함께 디버깅을 할 수 있다.

-컴파일러형 언어의 번역과 실행:C언어 등의 컴파일러형 언어는 원시 프로그램을 목적 프로그램으로 번역한 후 링커를 이용하여 로드 모듈로 만든 다음 로더를 이용하여 주 기억장치에 적재한 후 실행한다.
  -링커:실행 가능한 프로그램을 만들기 위해서 컴파일된 목적 모듈들을 서로 연결시키는 기능을 하는 서비스 프로그램
  -로더:목적 프로그램을 읽어들여 주기억 장치에 적재시킨 후에 실행시키는 서비스 프로그램으로, 목적 프로그램의 재배치, 주기억 장치 내에 프로그램을 적재시킬 공간의 확보, 여러 개의 목적 프로그램이나 라이브러리 루틴과의 링크 작업, 또는 실제 프로그램을 보조기억 장치에서 읽어들이는 기능을 한다.


참고문헌:C뿌려라!C언어 입문



상세보기
 

'* 컴퓨터 언어 (Computer Language) > C/C++' 카테고리의 다른 글

C언어 입출력  (0) 2012.03.16
수식과 연산자  (0) 2011.12.22
02.C언어의 기초  (7) 2011.11.19
01.프로그래밍의 기초  (0) 2011.11.17
C 뿌려라!  (0) 2011.11.17
Name
Password
Homepage
Secret