'* 컴퓨터 언어 (Computer Language)'에 해당되는 글 10건

수식과 연산자

* 컴퓨터 언어 (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 Lessa 2011.12.20 16:58 신고 URL EDIT REPLY
어? 박정민교수님 책이넼ㅋㅋㅋㅋㅋ헐
BlogIcon Twodragon | 2011.12.20 17:34 신고 URL EDIT
그냥 C언어 관련 책 넣은거예요ㅋ
BlogIcon Lessa | 2011.12.24 13:11 신고 URL EDIT
ㅋㅋㅋ놀랫어 우리교수님일줄은
BlogIcon Twodragon | 2011.12.24 20:39 신고 URL EDIT
와우.. 저 책 많이 유명한데 엄청난교수님이네요ㅋ
BlogIcon Lessa | 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

C 뿌려라!

* 컴퓨터 언어 (Computer Language)/C/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