본문 바로가기

자격증

[정보처리기능사] chapter 02. 프로그래밍 언어 활용(1)

~ 목차 ~

Part 01 . 프로그래밍 언어 활용

 chapter01 알고리즘 구현

 chapter02. 프로그래밍 언어 활용

 

 

1. 프로그래밍 언어

  • 프로그래밍 언어 : 컴퓨터 시스템을 동작시키기 위한 프로그램 작성 언어
  • Bit(비트) : 0과 1로만 구성된 이진법, 1Byte = 8Bit
  • 컴퓨터 시스템 구조 : 중앙처리장치(CPU), 기억장치(Memory), 입출력장치(I/O Device)
    • 중앙처리장치 단계 (4단계) : Fetch(인출) → Decode(해석) → Execute(실행) → Write Back(기록) 

 

2.프로그래밍 언어 기본 문법 및 용어

  • 기본 용어
    • 변수 : 어떤 값을 주기억장치에 기억하기 위해서 사용하는 공간
    • 식별자 : 프로그램의 구성요소를 구별하기 위한 기준, ex ) 변수명
    • 바인딩 : 변수에 관련된 속성을 연결
      • 정적 바인딩 : 프로그램 실행 전에 연결
      • 동적 바인딩 : 프로그램 실행 중에 연결
    • 선언 : 변수에 이름,데이터 타입(속성) 등을 부여
      • 명시적 선언 : 선언문을 이용
      • 묵시적 선언 : 선언문 없이, 디폴트 규칙에 의해 부여
    • 영역 : 이름이 사용되는 범위
      • 정적 영역 : 변수를 찾을 때 구조에 기반하는 방식
      • 동적 영역 : 변수를 찾을 때 순서에 기반하는 방식
    • 할당 : 변수에 메모리 공간을 바인딩하는 작업
    • 데이터 타입 : 변수가 가질 수 있는 속성값의 길이 및 성질
    • 연산자 : 데이터 처리를 위해 연산을 표현하는 기호
    • 명령문 : 프로그램을 구성하는 문장
  • 변수와 데이터 타입
    • 변수 선언 규칙
      • 영문 대소문자 구분, 숫자, 언더바(_) 사용가능
      • 첫 번째 자리는 숫자로 시작x
      • 공백 사용x
      • 변수 이름 중복x
    • 데이터 타입 유형
불린 타입(boolean) 참(True)과 거짓(False) 두 가지 값 가진다.
문자 타입 문자 하나 저장할 때 사용
   ex. char a = 'A';
문자열 타입 문자열을 저장할 때 사용
   ex. string a = "welcome";
정수 타입 정수값을 저장하고자 할 때 사용
▶ JAVA  : byte, short, int, long
▶ C/C++ : short, unsigned short, int, unsigned int, long, unsigned long
부동 소수점 타입 소수점을 포함하는 실숫값을 저장하고자 할 때 사용
배열 타입 여러 데이터를 하나로 묶어서 저장하고자 할 때 사용
▶C언어 - 배열 공간을 선언 
    ex. Array[5] = {1, 2, 3, 4, 5};
▶ JAVA - 배열 공간 비워 둠
    ex. Array[] = {1, 2, 3, 4, 5};
  • 서식 지정자
    • 변수 혹은 값을 출력문을 통해 출력하기 위해 사용
    • 이스케이프(탈출)문과 같이 문자열 선언을 탈출하여 변수를 인식시키는 것 ( printf는 문자열만 출력 )
정수형 %d 부호 있는 10진수 정수
%u 부호 없는 10진수 정수
%o 부호 없는 8진수 정수
%x 부호 없는 16진수 정수
실수형 %f 소수점 6번째까지의 실수
%e 0.000000e + 00. 실수 지수 표현
%g 숫자 값의 크기에 따라 %e나 %f로 표현
문자형 %c 단일 문자 출력
%s 문자열 출력
#include <stdio.h>

int main(void){     		//자료형 변수 = 값;
	char PATH = 'A';		//PATH에 A 대입(문자형)
    						//''(작은따옴표)는 단일 문자 선언
    						//""(큰따옴표)는 문자열 선언
    
    printf("%c\n", PATH);	//char의 경우 : 정수를 ASCII 코드로 변환 = 문자 출력
    printf("%d\n", PATH);	//A의 값을 %d(정수형)출력 = ASCII 코드 A에 해당하는 숫자 출력
}

답 :

A

65

 

3. 연산자

  • 산술 연산자 : +, -, *, /, %
    • 산술 연산자 우선순위 : (괄호)  *, /, %  >  +, -
  • 시프트 연산자 : 10진수 값을 2진수 값으로 변환하여 비트 위치를 이동 << (Left) , >> (Right) 
  • 관계연산자 : 두 피연산자의 크기를 비교(True 1값, False 0값)
  • 논리 연산자 : &&(and), ||(or) (True 1값, False 0값)
  • 비트 연산자 : 10진수 값 -> 2진수로 변환하여 논리연산 
    • &(and) : 두 값을 비트로 연산하여 모두 참이면 true, 그렇지 않으면 거짓 false
    • |(or) : 두 값을 비트로 연산하여 하나라도 참이면 true, 그렇지 않으면 거짓 false
    • ^(xor) : 두 값을 비트로 연산하여 서로 다르면 true, 그렇지 않으면 거짓 false
  • 증감 연산자 : 값을 1 증가하거나 감소하는 연산자
    • 전위 : ++a, --a  / 피연산자 증감 후, 연산 수행
    • 후위 : a++, a--  /연산 수행 후, 피연산자 증감
    • ex. a = 5, b = 5, c = 0
            c = ++a + b--           // a는 증가 후 연산, b는 연산 후 감소
            c = 11, a = 6, b = 4 // c = 6 + 5
  • 복합 대입 연산자 : +=, -=, *=, /=, %=
    • ex. a += 2 → a = a + 2
  • 삼항 연산자 : 조건 ? True : False  ( ? : 조건과 결과 구분, ' : ' : 참과 거짓 구분 )
    • ex. num1 = 7, num2 = 3
            result = num1 < num2 ? num1 : num2   // 조건을 만족하지 않으므로 False값인 num2값이 입력
            result = 3
  • 진법 입력 및 출력 연산자 : 프로그래밍은 기본적으로 10진 형태
구분 C언어 파이썬 JAVA
입력 2진법 = 0b 2진법 = 0b 2진법 = Integer.valueOf(int, 2)
8진법 = 0 8진법 = 0o 8진법 = Integer.valueOf(int, 8)
16진법 = 0x 16진법 = 0x 16진법 = Integer.valueOf(int, 16)
출력 2진법 = %d 2진법 = bin() 2진법 = Integer.toBinaryString(int)
8진법 = %o 8진법 = oct() 8진법 = Integer.toOctalString(int)
16진법 = %x 16진법 = hex() 16진법 = Integer.toHexString(int)
  • ex
C언어 파이썬 JAVA
#include <stdio.h>
int main(void){
     int num = 0b11010;

     printf("10진수 : %d\n", num);
     printf("8진수 : %o\n", num);
     printf("16진수 : %x\n", num);
}

num = 30
b = bin(num)
o = oct(num)
h = hex(num)

print(b)
print(o)
print(h)
public static void main (String[] args){
int i = 100;
String b = Integer.toBinaryString(i);
String o = Integer.toOctalString(i);
String h = Integer.toHexString(i);

System.out.println(b);
System.out.println(o);
System.out.println(h);
}
답 :
10진수 : 26
 8진수 : 32
16진수 : 1
답 : 
0b11110
0o36
0x1E
답 : 
1100100
144
6

 

728x90