0 + Study/0 + 정보처리기사(실기)

[정보처리기사 실기] 프로그래밍 언어#1

힘들면힘을내는쿼카 2020. 10. 4. 00:07
728x90
반응형



프로그래밍 언어 활용



1. 기본 문법 활용

2. 언어 특성 활용


1. 기본 문법 활용

 1) 프로그래밍을 위한 대표적인 용어

번호 

용어 

설명 

 1

변수

어떤 값을 주기억 장치에 저장하기 위해서 사용하는 공간

 2

식별자

프로그램의 구성요소를 구별하기 위한 기준

ex) 함수명, 변수명 ...

 3

바인딩

변수와 변수에 관련된 속성을 연결하는 과정

 정적 바인딩

 프로그램 실행 시간 전에 속성을 연결하는 방식

 동적 바인딩

 프로그램 실행 시간에 속성을 연결하는 방식


 4

영역

선언한 변수가 사용되는 범위를 의미

 정적 영역

 변수를 찾을 때 구조에 기반

 동적 영역

 변수를 찾을 때 순서에 기반


 5

할당

변수에 메모리 공간을 바인딩 하는 작업


2) 자료구조의 개념

-> 컴퓨터에 데이터를 삽입, 삭제, 수정하게 해주는 논리적인 공간 구조를 의미


자료 형태에 따른 자료 구조 분류

번호 

 유형

설명 

1

단순구조 

프로그래밍 언어에서 제공하는 기본 데이터 타입 

2

선형 구조 

데이터가 연속적으로 연결된 자료 구조 

비선형 구조 

자료들 사이의 관계가 비순차적인 성질을 가진 자료 구조 

4

파일 구조

보조 기억 장치에 데이터 값이 실제로 기록되는 자료 구조


3) 알고리즘의 개념

-> 알고리즘이란 어떤 문제에 대한 답을 찾는 해법을 의미.


알고리즘의 특성

  • 입력
  • 출력
  • 명확성
  • 유한성
  • 유효성

번호 

유형 

설명 

 1

입력

외부로부터 입력되는 자료가 0개 이상

 2

출력

출력되는 결과가 1개 이상

 3

명확성 

명령어의 의미가 명확 

 4

유한성

정해진 단계를 지나면 반드시 종료

 5

유효성

모든 명령은 실행이 가능한 연산 



4) 연산자의 개념

-> 연산자란 프로그램 실행을 위해 연산을 표현하는 기호이다.


연산자의 종류

  • 산술 연산자
  • 시프트 연산자
  • 관계 연산자
  • 논리 연산자
  • 비트 연산자
  • 대입 연산자
  • 증감 연산자


  • 산술 연산자

-> +, -, *, /, % 와 같이 일반적으로 사용되는 연산자.

( %(모듈러)연산자는 오른쪽 값에서 왼쪽값을 나눈 나머지를 Return 한다.)



  • 시프트 연산자
-> 비트를 이동시키는 연산자이다.

연산자 

내용 

 >>

왼쪽 값을 오른쪽 값만큼 비트를 왼쪽으로 이동 

<<

왼쪽 값을 오른쪽 값만큼 비트를 오른쪽으로 이동


ex)

int a = (3 << 4);

일반적으로 정수를 2진수로 바꾼다.

3은 2진수로 11(2) 이고 0b11로 표기한다.

이제 0b11를 왼쪽으로 4비트만큼 이동하면

0b11000가 된다.

이를 다시 10진수로 표현하면 24이다.

따라서 a는 24다.



  • 관계 연산자
-> 두 피연산자 사이의 크기를 비교하는 연산자.

<, >, <=, >=, ==, != 로 표기한다.

( != 연산자는 같지 않다를 의미한다.)



  • 논리 연산자
->  두 피연산자 사이의 논리적인 관계를 정의하는 연산자이다.

연산자 

내용 

&& 

두 개의 논리 값이 모두 참일때만 참을 반환 

||

두 개의 논리 값 중 1개만 참이면 참을 반환 



  • 비트 연산자

-> 0, 1의 각 자리에 대한 연산을 수행하고 0 또는 1의 결과값을 갖는 연산자이다.

연산자 

내용 

두 값을 비트로 연산하여 모두 참일때만 참을 반환, 나머지는 거짓 

|

두 값을 비트로 연산하여 하나만 참이여도 참을 반환

^

서로 다르면 참, 같으면 거짓을 반환

쉽게 말하면

& : AND

| : OR

^ : XOR


  • 대입 연산자
-> 변수에 값을 대입 할때 사용하는 연산자이다.(오른쪽 값을 왼쪽 값에 삽입)

int a = 1; // 1의 값을 a에 삽입
a += 1; // a = a + 1; 과 같은 의미
a -= 1; // a = a - 1; 과 같은 의미
a *= 2; // a = a * 2; 과 같은 의미
a /= 3; // a = a / 3; 과 같은 의미
a %= 2; // a = a % 2; 과 같은 의미



  • 증감 연산자

-> 피연산자를 1씩 증가 혹은 1씩 감소 할때 사용하는 연산자이다.

예를 통해서 배워보자.

int a = 100;

printf("%d\n", a++);

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

printf("%d\n", ++a);

printf("%d\n", a--);

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

printf("%d\n", --a);

출력 결과는 다음과 같다.

100

101

102

102

101

100

++a와 --a 는 연산자 사용 후에 그 값이 적용 된다.

쉽게 생각하면 증감을 예약한다고 생각하면 될 것 같다.

++a는 바로 호출하면 a에 1을 증가하지 않고, 그다음 명령문 부터 1 증가가 적용된다.




5) 기타

  • 열거체

-> 열거체란 서로 연관된 정수형 상수들의 집합이다.

-> 정수형 상수에 이름을 붙여서 코드를 이해하기 쉽게 한다.

-> 멤버변수에 초기값을 설정하지 않으면 default 값으로 0부터 시작된다.


enum leave_work

{

mon,

tue,

wed,

thr,

fri,

sat,

sun

};

mon ~ sun 까지 0부터 6까지 차례대로 대입된다.



  • 공용체
-> 구조체와 다르게 모든 멤버 변수가 하나의 메모리 공간을 공유한다.(자바, 파이썬은 지원하지 않는다.)

union leave_work2

{

char sex;

int age;

short id;

};

leave_work2 공용체의 메모리 크기는 4바이트(int의 크기) 이다.



  • 추상화
-> 추상화란  세부 사항은 배제하고 중요한 부분을 중심으로 간략화 하는 기법

추상화의 종류

 종류

설명 

기능 추상화 

입력 자료를 출력자료로 변환하는 과정을 추상화

자료 추상화

자료와 자료에 적용할 수 있는 연산을 함께 추상화

제어 추상화 

외부 이벤트에 대한 반응을 추상화



  • 상속
-> 상위 수준 그룹의 모든 특성을 하위 수준 그룹이 이어 받아 재사용 또는 확장하는 방법


  • 구체화
-> 하위 수준 그룹이 상위 수준 그룹의 추상적이 부분을 구체화 하는 방법





728x90
반응형