자격증/정보처리기사

정보처리기사 실기 스터디[2022-09-27] - 프로그래밍 언어 활용

머훈 2022. 9. 27. 22:46

📌 Study

🔸 2022-09-27

[프로그래밍 언어 활용]

1. 기본 문법 활용하기

  • 진수 개념
    • 특정 개수의 숫자만을 이용하여 수를 나타내는 수 체계
    • 10진수 이하일 때는 0 ~ 9, 10 진수 초과할 경우는 영어 알파벳 이용
10진수 16진수
0 ~ 9 0 ~ 9
10 A
11 B
12 C
13 D
14 E
15 F

 

  • 13을 2진수로 변환 => 13을 2로 나누어 나머지 읽기 = 1101(2)
  • 201을 16진수로 변환 => 201을 16으로 나누어 나머지 읽기 = C9

 

  • 2진수 1101을 10진수로 변환 => 1 + 4 x 1 + 8 x 1 = 13
  • 16진수 C9를 10진수로 변환 => 16 x 12 + 9 = 201

 

  • 아스키 코드 : 미국 ANSI에서 표준화한 정보교환용 부호 체계
    • 영문 키보드로 입력할 수 있는 모든 기호 할당
10진수 부호 10진수 부호
0 NULL 67 C
32 ''(space) 68 D
48 0 97 a
49 1 98 b
65 A 99 c
66 B 100 d

 

  • 데이터 타입 : 프로그래밍 언어에서 실수형, 정수형과 같은 여러 종류의 데이터를 식별하는 형태

 

  • 데이터 타입 유형
불린 타입 조건이 참(True)인지 거짓(False)인지 판단할 때 사용 C++: bool, 자바: boolean
문자 타입 문자 하나를 저장하고자 할 때 사용 char
문자열 타입 나열된 여러 개의 문자를 저장하고자 할 때 사용 C:char[], C++:string, 자바: String
정수 타입 정숫값을 저장하고자 할 때 사용 int
부동 소수점 타입 소수점을 포함하는 실숫값을 저장하고자 할 때 사용 float, double

 

  • 변수 개념 : 저장하고자 하는 어떠한 값이 있을 때, 그 값을 주기억장치에 기억하기 위한 공간
  • int a = 10;
  • a => 데이터가 들어갈 공간(변수명)
  • 10 => 데이터 값

 

  • 초깃값이 없는 경우 => 데이터 타입 변수명;, int a;
  • 초깃값이 있는 경우 => 데이터 타입 변수명 = 초깃값;, int a = 10;

 

  • static 변수
    • 프로그램이 시작할 때 변수를 초기화하고, 프로그램이 종료되기 전까지 메모리가 유지되는 변수
    • 변수를 static으로 생성하면 처음에 한 번만 초기화되며, 함수에 의해서 변수 선언 부분이 여러 번 호출되더라도 초기화하지 않음

 

    void fn() {
        int a;
    }                // a 변수는 fn()이 종료됨과 동시에 사라짐, 허나 static을 사용하면 
                     // 변수 a가 바로 사라지지 않고, 프로그램이 종료되면 사라짐

 

  • C 언어
    #include <stdio.h>
    void increase() {
        static int count = 0;           // (static)처음 한 번만 count를 0으로 초기화
        printf("count = %d \n", count);
        count++;
    }

    void main() {
        increase();  // count = 0
        increase();  // count = 1
    }
  • 결과는 count = 0, count = 1 (개행)
  • 만약, static이 없다면, 결과는 count = 0, count = 0 (개행)

 

  • 자바
    class Soojebi {
        static int count = 0;
    }

    public class SoojebiMain {
        public static void main(String[] args) {
            Soojebis = new Soojebi();
            s.count++;
            System.out.println(s.count);    // 1
            s.count++;
            System.out.println(s.count);    // 2
        }
    }
  • 결과는 1, 2 (개행)

 

  • 배열 : 같은 타입의 변수들로 이루어진 집합
  • int a[5] = {1, 2};
  • a[5] => 데이터가 들어갈 공간
  • {1, 2} => 배열값(초기값)
a
a[0] 1
a[1] 2
a[2] 0
a[3] 0
a[4] 0

 

  • C, C++ 배열 선언
    • 초깃값이 없는 경우 => 타입 배열명[배열수];, int a[5];
    • 초깃값이 있는 경우 => 타입 배열명[배열수] = {초깃값};, int a[5] = {1, 2};

 

  • 자바 배열 선언
    • 초깃값이 없는 경우 => 타입 []배열명 = new 타입[배열수] or 타입 배열명[] = new 타입[배열수];, int []a = new int[5];
    • 초깃값이 있는 경우 => 타입 []배열명 = {초깃값};, int []a = {1, 2, 3, 4, 5};

 

  • 자바 length 속성 사용 예제
    • a의 배열의 요소 개수를 물어보는 것
    • 결과 : 3
  class Soojebi {
    public static void main (String[] args) {
      int []a = new int [3];
      System.out.println(a.length);
    }
  }

 

  • 2차원 배열
    • int a[2][2] = {1};
    • a[2][2] => 데이터가 들어갈 공간(배열명)
    • {1} => 배열의 초기값
a
a[0][0] 1
a[0][1] 0
a[1][0] 0
a[1][1] 0

 

  • C, C++ 배열 선언
    • 초깃값이 없는 경우 => 타입 배열명[행의 개수][열의 개수];, int a[2][2];
    • 초깃값이 있는 경우 => 타입 배열명[행의 개수][열의 개수] = {초깃값};, int a[2][2] = {1, 2};

 

  • 자바 배열 선언
    • 초깃값이 없는 경우 => 타입 [][]배열명 = new 타입[행의 개수][열의 개수] or 타입 배열명[][] = new 타입[행의 개수][열의 개수];, int [][]a = new int[2][2];
    • 초깃값이 있는 경우 => 타입 [][]배열명 = {{초깃값}, {초깃값}, ...};, int [][]a = {{1, 2}, {3, 4}};

 

  • 2차원 배열 예제
  #include <stdio.h>
  void main() {
    int a[2][3] = {1, 2, 3, 4};
    int i, j;
      for(i = 0; i < 2; i++) {
        for(j = 0; j < 3; j++) {
          printf("%d", a[i][j]);
        }
      }
  }
a
a[0][0] 1
a[0][1] 2
a[0][2] 3
a[1][0] 4
a[1][1] 0
a[1][2] 0

 

  • 기출
  public class Soojebi {
    public static void main(String[] args) {
      int[][] arr = new int[][] { {45, 50, 75}. {89} };
        System.out.println(arr[0].length);      // 3
        System.out.println(arr[1].length);      // 1
        System.out.println(arr[0][0]);      // 45
        System.out.println(arr[0][1]);      // 50
        System.out.println(arr[1][0]);      // 89
      }
    }