[정보처리기사 실기] Ⅹ. 프로그래밍 언어 활용 - 기본문법(C, C++, JAVA, 파이썬)

Ⅹ. 프로그래밍 언어 활용 - 기본문법 (C, C++, JAVA, 파이썬).


1. 기본 문법

1.1. C 언어

  • 헤더 : #include 키워드 이용
  • 표준입출력 : stdio.h 헤더 사용 #include <stdio.h>
  • 문자열사용 : string.h 헤더 사용 #include <string.h>
  • main 함수 : 프로그램의 시작점.
  • printf : stdio.h 내의 함수로 C언어에서 출력을 위해 사용.
#include <stdio.h>          //stdio는 Standard Input Output 의 약자
void main(){            // main : 프로그램 시작 위치
  printf("Hello C World₩n");   // printf : 출력을 위한 C언어 함수로 큰따옴표내에 있는 글자 출력 ( ₩n : 개행)   
}
//출력결과 : 
Hello C World


1.2. C++ 언어

  • 헤더 : #include 키워드 이용
  • 표준입출력 : iostream 헤더 사용 #include <iostream>
  • 문자열사용 : string 헤더 사용 #include <string>
  • C와 달리 .h 빼고 작성이 일반적
  • main 함수 : 프로그램의 시작점.
  • cout : iostream 내의 함수로 C++ 에서 출력을 위해 사용
# include <iostream>      // iostream은 input/Output Stream의 약자 
void main(){            // main : 프로그램 시작 위치
  std::cout << "Hello C++ World";  // cout은 출력을 위한 C++ 함수로 << 연산을 사용하여 출력값을 연결하고, 큰따옴표 내에있는 글자를 출력 
  std::cout << std:endl;        // endl 은 개행을 위한 함수   
}
//출력결과 : 
Hello C++ World
  • using namespace std; 명령 작성시 해당 소스코드에서 네임스페이스 표현 없을 경우 std 네임스페이스에 포함된다는 것을 명시.
# include <iostream>      // iostream은 input/Output Stream의 약자
using namespace std;      // 네임스페이스 명시가 없을 경우 std내의 함수로 처리.    
void main(){            // main : 프로그램 시작 위치
  out << "Hello C++ World";  // cout은 출력을 위한 C++ 함수로 << 연산을 사용하여 출력값을 연결하고, 큰따옴표 내에있는 글자를 출력 
  cout << std:endl;        // endl 은 개행을 위한 함수   
}
//출력결과 : 
Hello C++ World


1.3. JAVA 언어

  • 객체지향 언어이므로 클래스 생성해야한다.
  • public class 클래스 이름 {} 구문을 통해 클래스 생성.
  • main 함수는 프로그램의 시작점.
  • System.out.print : JAVA에서 출력을 위해 사용.
  • System.out.println : JAVA에서 출력을 위해 사용 & 출력후 개행.
public class A {      // A는 클래스 명으로 파일명과 동일해야 한다(A.java)
  public static void main(String[] args){         // main : 프로그램 시작점
    System.out.print("Hello Java World");         // 큰따옴표 안에 있는 글자 출력
  }
}
//출력결과 : Hello Java World


1.4. 파이썬 언어

  • print : 파이썬에서 출력시 사용.
    print('Hello Python World')       #작은따옴표 안에 있는 글자를 출력
    // 출력결과 : 
    Hello Python World
    



2. 데이터 타입

2.1. 문자타입

2.1.1. 포맷 스트링

  • 문자형
    • %c : 문자 출력
    • %s : 문자열 출력
  • 정수형
    • %d : 10진수 출력
    • %x : 16진수 출력
    • %o : 8진수 출력
  • 실수형
    • %f : 실수 출력

2.1.2. 문자형 변수 출력

  • 큰따옴표 이용 출력 출력결과 > a
    • C

      #include <stdio.h>
      void main(){
        char a = 'B';     //변수 a에 'B'라는 문자를 저장 
        printf("a₩n");     // a 라는 문자를 출력
      }
      
    • C++

      #include <iostream>
      void main(){
        char a = 'B';     //변수 a에 'B'라는 문자를 저장 
        std::cout << "a" << std::endl;    // a 라는 문자를 출력
      }
      
    • JAVA

      public static void main(String[] args){
        char a = 'B';          //변수 a에 'B'라는 문자를 저장 
        System.out.println("a");    // a 라는 문자를 출력
      }
      
    • 파이썬

      a = 'B'         # 변수 a에 'B'라는 문자를 저장 
      print('a')    # a 라는 문자를 출력
      
    • C언어의 경우 포맷스트링을 이용하여 출력하지 않는다면 큰따옴표 안에 있는 문자를 그대로 출력.
    • C언어를 제외한 다른 언어들은 큰따옴표 안에 있는 문자를 그대로 출력.


  • 변수 이용하여 출력 출력결과 > B
    • C

      #include <stdio.h>
      void main(){
        char a = 'B';     //변수 a에 'B'라는 문자를 저장 
        printf("%c₩n", a);     // a 라는 변수에 저장되어 있는 값을 문자(%c)타입으로 출력
      }
      
    • C++

      #include <iostream>
      void main(){
        char a = 'B';     //변수 a에 'B'라는 문자를 저장 
        std::cout << a << std::endl;    // a 라는 변수에 저장되어 있는 값 출력
      }
      
    • JAVA

      public static void main(String[] args){
        char a = 'B';          //변수 a에 'B'라는 문자를 저장 
        System.out.println(a);    // a 라는 변수에 저장되어 있는 값 출력
      }
      
    • 파이썬

      a = 'B'         # 변수 a에 'B'라는 문자를 저장 
      print(a)    # a 라는 변수에 저장되어 있는 값 출력
      


  • 큰따옴표 안의 문자 + 변수 이용 출력 출력결과 > a: B
    • C

      #include <stdio.h>
      void main(){
        char a = 'B';     //변수 a에 'B'라는 문자를 저장 
        printf("a: %c₩n", a);     // a 라는 변수에 저장되어 있는 값을 문자(%c)타입으로 출력하고 따옴표 안의 글자 출력
      }
      
    • C++

      #include <iostream>
      void main(){
        char a = 'B';     //변수 a에 'B'라는 문자를 저장 
        std::cout << "a: " << a << std::endl;    // "a: "라는 문자열을 출력하고 a 라는 변수에 저장되어 있는 값 출력
      }
      
    • JAVA

      public static void main(String[] args){
        char a = 'B';          //변수 a에 'B'라는 문자를 저장 
        System.out.println("a: "+a);    // "a: "라는 문자열을 출력하고 a 라는 변수에 저장되어 있는 값 출력(+는 두 결괏값 붙일때 사용)
      }
      
    • 파이썬

      a = 'B'         # 변수 a에 'B'라는 문자를 저장 
      print('a: ', a)    # "a: "라는 문자열을 출력하고 a 라는 변수에 저장되어 있는 값 출력(콤마는 두 결괏값 붙일때 사용)
      


2.2. 정수 타입

2.2.1. 아스키코드(ASCII; American Standard Code Information Interchange code)

문자 10진수 16진수
NULL(‘₩0’) 0 0
SPACE(‘ ‘) 32 20
‘0’ 48 30
‘1’ 49 31
‘9’ 57 39
‘A’ 65 41
‘B’ 66 42
‘Z’ 90 5A
‘a’ 97 61
‘b’ 98 62
‘z’ 122 7A

2.2.2. 정수형 변수 출력

  • 정수 : int 키워드 이용 출력결과 > a: 5
    • C

      #include <stdio.h>
      void main(){
        int a = 5;     //변수 a에 5라는 정숫값 저장 
        printf("a: %d₩n", a);     // a 라는 변수에 저장되어 있는 값을 정수(%d)타입으로 출력하고 따옴표 안의 글자 출력
      }
      
    • C++

      #include <iostream>
      void main(){
        int a = 5;      //변수 a에 5라는 정숫값 저장 
        std::cout << "a: " << a ;    // "a: "라는 문자열을 출력하고 a 라는 변수에 저장되어 있는 값 출력
        std::cout <<  std::endl;    // 한줄 개행
      }
      
    • JAVA

      public static void main(String[] args){
        int a = 5;             //변수 a에 5라는 정숫값 저장 
        System.out.println("a: "+a);    // "a: "라는 문자열을 출력하고 a 라는 변수에 저장되어 있는 값 출력(+는 두 결괏값 붙일때 사용)
      }
      
    • 파이썬

      a = 5        # 변수 a에 5라는 정숫값 저장 
      print('a: ', a)    # "a: "라는 문자열을 출력하고 a 라는 변수에 저장되어 있는 값 출력(콤마는 두 결괏값 붙일때 사용)
      

2.2.3. 정수와 문자와의 관계

  • 문자변수를 정수와 문자로 표현하는 예제. 출력결과 > 66 B

    • C

      #include <stdio.h>
      void main(){
        char a = 'B';     //변수 a에 'B'라는 문자를 저장 
        printf("%d %c₩n", a, a);     // a라는 변수에 저장되어 있는 값을 정수(%d), 문자(%c) 출력
      }
      
    • C++

      #include <iostream>
      void main(){
        char a = 'B';     //변수 a에 'B'라는 문자를 저장 
        std::cout << (int)a << " ";    // a라는 변숫값을 int(정수)형으로 강제 변환하여 출력
        std::cout << a << std::endl;    // a라는 변숫값을 출력 & 개행
      }
      
    • JAVA

      public static void main(String[] args){
        char a = 'B';          //변수 a에 'B'라는 문자를 저장 
        System.out.println(""+(int)a+" "+a);    //a라는 변숫값을 int(정수)형으로 강제 변환하여 출력한값과 a라는 변숫값을 출력
      }
      
    • 파이썬

      a = 'B'         # 변수 a에 'B'라는 문자를 저장 
      print(ord(a), a)    # a라는 변숫값을 ord함수를 이용해 아스키코드값으로 출력하고 a 변수에 저장된 값을 출력
      


  • 문자형 변수에 값을 더하거나 뺀 후 해당 변수의 값을 문자로 출력 예제. 출력결과 > A C

    • C

      #include <stdio.h>
      void main(){
        char a = 'B';     //변수 a에 'B'라는 문자를 저장 
        printf("%c %c₩n", a-1, a+1);     // a라는 변수에 저장되어 있는 값을 1뺀 값과 1더한 값을 문자(%c)타입으로 출력
      }
      
    • C++

      #include <iostream>
      void main(){
        char a = 'B';     //변수 a에 'B'라는 문자를 저장 
        std::cout << (char)((int)a-1);    // a라는 변수에 저장되어 있는 값을 1을 뺀 문자로 출력
        std::cout << " ";    // 공백 문자 출력 
        std::cout << (char)((int)a+1);    // a라는 변수에 저장되어 있는 값을 1을 더한 문자로 출력
        std::cout << std::endl;    // 개행
      }
      
    • JAVA

      public static void main(String[] args){
        char a = 'B';          //변수 a에 'B'라는 문자를 저장 
        System.out.println((char)(a-1)+" "+(char)(a+1));    //a라는 변수에 저장되어 있는 값에 1을 뺀 값과 1을 더한 값을 문자로 출력 
      }
      
    • 파이썬

      a = 'B'         # 변수 a에 'B'라는 문자를 저장 
      print(chr(ord(a)-1), chr(ord(a)+1))    # a라는 볏숫값을 ord함수를 이용해 아스키값으로 변경 후 1을 빼거나 더한값을 chr함수를 이용해 문자로 출력
      


2.2.4. 진법

  • 수를 표기하는 기수법으로 컴퓨터에서는 2진수 형태로 저장하고 8진수, 10진수, 16진수 형태로 출력이 가능.
  • 10진수와 다른 진수와 관계

    10진수 2진수 8진수 16진수
    1 1 1 1
    2 10 2 2
    3 11 3 3
    4 100 4 4
    5 101 5 5
    6 110 6 6
    7 111 7 7
    8 1000 10 8
    9 1001 11 9
    10 1010 12 A
    11 1011 13 B
    12 1100 14 C
    13 1101 15 D
    14 1110 16 E
    15 1111 17 F
    16 10000 20 10
    17 10001 21 11

2.2.5. 진법 출력

  • C언어, C++, 자바 진법 출력
    • C
      #include <stdio.h>
      void main(){
        int a = 11;         //변수 a 정수 11 저장 
          
        printf("%x₩n", a);   //변수 a 16진수(%x) 출력
        printf("%d₩n", a);   //변수 a 10진수(%d) 출력
        printf("%o₩n", a);   //변수 a 8진수(%o) 출력
      
    • C++
      #include <iostream>
      using namespace std;        //std 네이스페이스를 사용한다고 선언(cout, endl을 간단히 쓰기위해)
      void main(){
        int a = 11;       //변수에 11 저장
        cout << hex << a << endl;   //변수 a에 저장된 값을 16진수 출력
        cout << dec << a << endl;   //변수 a에 저장된 값을 10진수 출력
        cout << oct << a << endl;   //변수 a에 저장된 값을 8진수 출력
      }
      
    • JAVA
      public static void main(String[] args){
        int a = 11;
        System.out.println(Integer.toHexString(a));   //변수 a에 저장된 값을 16진수 출력
        System.out.println(a);   //변수 a에 저장된 값을 10진수 출력
        System.out.println(Integer.toOctalString(a));   //변수 a에 저장된 값을 8진수 출력
      }
      
// 출력 결과
b
11
13


  • 파이썬 진법 출력
    파이썬의 경우 16진수 출력시 0x 가 붙고, 8진수 출력시 0o가 붙는다
    a = 11
    print(hex(a))  #변수 a에 저장된 값을 16진수 출력
    print(a)  #변수 a에 저장된 값을 10진수 출력
    print(oct(a))  #변수 a에 저장된 값을 8진수 출력
    
// 출력 결과
0xb
11
0o13



3. 연산자

3.1. 산술 연산자 - 사직연산

  • C언어, C++, Java 사칙연산
    • C 사칙연산

      #include <stdio.h>
      void main(){
        int a = 7, b = 3;     // 변수 a에 7, b에 3 저장
        printf("%d₩n", a+b);   //a와 b 합 출력
        printf("%d₩n", a-b);   //a에서 b를 뺀값 출력
        printf("%d₩n", a*b);   //a와 b의 곱한 결과 출력
        printf("%d₩n", a/b);   //a를 b로 나눔(정수와 정수를 연산하면 정숫값이라 소수점에 해당값은 버림)
        printf("%d₩n", a%b);   //a를 b로 나눈 나머지 출력
      }
      
    • C++ 사칙연산

      #include <iostream>
      void main(){
        int a = 7, b = 3;   // 변수 a에 7, b에 3 저장
        std::cout << a+b << std::endl;    //a와 b 합 출력
        std::cout << a-b << std::endl;   //a에서 b를 뺀값 출력
        std::cout << a*b << std::endl;   //a와 b의 곱한 결과 출력
        std::cout << a/b << std::endl;   //a를 b로 나눔(정수와 정수를 연산하면 정숫값이라 소수점에 해당값은 버림)
        std::cout << a%b << std::endl;    //a를 b로 나눈 나머지 출력
      }
      
    • JAVA 사칙연산

      public static void main(String[] args){
        int a = 7, b = 3;;   // 변수 a에 7, b에 3 저장
        System.out.println(a+b);    //a와 b 합 출력
        System.out.println(a-b);  //a에서 b를 뺀값 출력
        System.out.println(a*b);  //a와 b의 곱한 결과 출력
        System.out.println(a/b);  //a를 b로 나눔(정수와 정수를 연산하면 정숫값이라 소수점에 해당값은 버림)
        System.out.println(a%b);   //a를 b로 나눈 나머지 출력
      }
      
//출력 결과
10
4
21
2
1
  • 파이썬 사칙연산

    a = 7     #변수 a에 7 저장
    b = 3     #변수 b에 3 저장 
    print(a+b)   #a와 b 합 출력
    print(a-b)  #a에서 b를 뺀값 출력
    print(a*b) #a와 b의 곱한 결과 출력
    print(a/b)  #a를 b로 나눔
    print(a%b) #a를 b로 나눈 나머지 출력
    
//출력 결과
10
4
21
2.333333
1


3.2. 시프트 연산자

  • 시프트 연산자는 비트를 이동시키는 연산자
  • C
    #include <stdio.h>
    void main(){
      int a = 10;       //변수 a에 10 저장
      printf("%d₩n", a<<2);    //a를 왼쪽으로 2비트 이동한 결과를 10진수로 출력
      printf("%d₩n", a>>2);    //a를 오른쪽으로 2비트 이동한 결과를 10진수로 출력
    }
    
  • C++
    #include <iostream>
    void main(){
      int a = 10;      //변수 a에 10 저장
      std::cout << (a<<2) << std::endl;   //a를 왼쪽으로 2비트 이동한 결과를 10진수로 출력
      std::cout << (a>>2) << std::endl;   //a를 오른쪽으로 2비트 이동한 결과를 10진수로 출력
    }
    
  • JAVA
    public static void main(String[] args){
      int a = 10;     //변수 a에 10 저장
      System.out.println(a<<2);   //a를 왼쪽으로 2비트 이동한 결과를 10진수로 출력
      System.out.println(a>>2);  //a를 오른쪽으로 2비트 이동한 결과를 10진수로 출력
    }
    
  • 파이썬
    a = 10    #변수 a에 10 저장
    print(a<<2)  #a를 왼쪽으로 2비트 이동한 결과를 10진수로 출력
    print(a>>2)   #a를 오른쪽으로 2비트 이동한 결과를 10진수로 출력
    
//출력 결과
40
2
  • a라는 변수를 2진수로 나타내면 다음과 같다
10진수 : 10 a 2진수 0 0 1 0 1 0  
10진수 : 40 a « 2 1 0 1 0 0 0 2진수 비트들이 왼쪽으로 2칸 이동
10진수 : 2 a » 2 0 0 0 0 1 0 2진수 비트들이 오른쪽으로 2칸 이동
(기존 오른쪽 두개는 사라짐)


3.3. 관계 연산자

  • C언어, C++ 관계 연산자 결과 > 0 또는 1
    • C
      #include <stdio.h>
      void main(){
        int a = 10, b = 5;    //변수 a는 10, b는 5 저장
        printf("%d₩n", a>b);   //a>b는 참이므로 1 출력
        printf("%d₩n", a<b);   //a<b는 거짓이므로 0 출력
        printf("%d₩n", a==b);  //a==b는 거짓이므로 0 출력
        printf("%d₩n", a!=b);  //a!=b는 참이므로 1 출력
      }
      
    • C++
      #include <iostream>
      void main(){
        int a = 10, b = 5;    //변수 a는 10, b는 5 저장
        std::cout << (a>b) << std::endl;   //a>b는 참이므로 1 출력
        std::cout << (a<b) << std::endl;  //a<b는 거짓이므로 0 출력
        std::cout << (a==b) << std::endl;  //a==b는 거짓이므로 0 출력
        std::cout << (a!=b) << std::endl;  //a!=b는 참이므로 1 출력
      }
      
//출력 결과
1
0
0
1
  • Java 관계 연산자 결과 > true 또는 false
    • Java
      public static void main(String[] args){
        int a = 10, b = 5;    //변수 a는 10, b는 5 저장
        System.out.println(a>b);   //a>b는 참이므로 true 출력
        System.out.println(a<b);  //a<b는 거짓이므로 false 출력
        System.out.println(a==b);  //a==b는 거짓이므로 false 출력
        System.out.println(a!=b);  //a!=b는 참이므로 true 출력
      }
      
//출력 결과
true
false
false
true
  • 파이썬 관계 연산자 결과 > True 또는 False
    • 파이썬
      a = 10      #변수 a에 10 저장
      b = 5       #변수 b에 5 저장
      print(a>b)   #a>b는 참이므로 True 출력
      print(a<b)  #a<b는 거짓이므로 False 출력
      print(a==b)  #a==b는 거짓이므로 False 출력
      print(a!=b)  #a!=b는 참이므로 True 출력
      
//출력 결과
True
False
False
True


3.4. 논리 연산자

  • 두 피연산자 사이의 논리적 관계를 정의하는 연산자.
  • C언어, C++ 논리 연산자 결과 > 0 또는 1
    • C
      #include <stdio.h>
      void main(){
        int a = 0, b = 1;    //변수 a는 0, b는 1 저장
        printf("%d₩n", a && b);   //a는 0이기 때문에 False, b는 1이기 때문에 True로 인식, AND 조건이므로 False인 0 출력
        printf("%d₩n", a || b);   //OR 조건이므로 True인 1 출력
      }
      
    • C++
      #include <iostream>
      void main(){
        bool a = false, b = true;    //변수 a는 false, b는 true 저장
        std::cout << (a&&b) << std::endl;  //AND 조건이므로 False인 0 출력
        std::cout << (a||b) << std::endl;  //OR 조건이므로 True인 1 출력
      }
      
//출력 결과
0
1
  • Java 관계 연산자 결과 > true 또는 false
    • Java
      public static void main(String[] args){
        boolean a = false, b = true;    //a에 false, b에 true 저장
        System.out.println(a&&b);   //AND 조건이므로 false 출력
        System.out.println(a||b);   //OR 조건이므로 ture 출력
      }
      
//출력 결과
false
true
  • 파이썬 관계 연산자 결과 > True 또는 False
    • 파이썬
      a = False      #변수 a에 False 저장
      b = True       #변수 b에 True 저장
      print(a&&b)   #AND 조건이므로 False 출력
      print(a||b)  #OR 조건이므로 True 출력
      
//출력 결과
False
True


3.5. 비트 연산자

  • 비트연산자는 0과 1 각자리에 대한 연산을 수행하며, 0 또는 1의 결과값을 갖는 연산자

  • a & b : AND 연산

    변수 2진수 (23) 2진수 (22) 2진수 (21) 2진수 (20) 10진수
    a 1 0 1 0 10
    b 1 0 0 1 9
    a&b 1 0 0 0 8
  • a | b : OR 연산

    변수 2진수 (23) 2진수 (22) 2진수 (21) 2진수 (20) 10진수
    a 1 0 1 0 10
    b 1 0 0 1 9
    a|b 1 0 1 1 11
  • C 비트연산
    #include <stdio.h>
    void main(){
      int a = 10, b = 9;  //변수 a는 10, b는 9 저장
      printf("%d₩n", a&b); // a&b 비트 연산 (1010 & 1001 = 1000) / 각 자리 AND 연산
      printf("%d₩n", a|b); // a|b 비트 연산 (1010 & 1001 = 1011) / 각 자리 OR 연산
    }
    
  • C++ 비트 연산
    #include <iostream>
    void main(){
      int a = 10, b = 9;  //변수 a는 10, b는 9 저장
      std::cout << (a&b) << std::endl; // a&b 비트 연산 (1010 & 1001 = 1000) / 각 자리 AND 연산
      std::cout << (a|b) << std::endl; // a|b 비트 연산 (1010 & 1001 = 1011) / 각 자리 OR 연산
    }
    
  • JAVA 비트연산
    public static void main(String[] args){
      int a = 10, b = 9;  //변수 a는 10, b는 9 저장
      System.out.println(a&b); // a&b 비트 연산 (1010 & 1001 = 1000) / 각 자리 AND 연산
      System.out.println(a|b); // a|b 비트 연산 (1010 & 1001 = 1011) / 각 자리 OR 연산
    }
    
  • 파이썬 비트 연산
    a = 10  #변수 a는 10 저장
    b = 9  #변수 b는 9 저장
    print(a&b) # a&b 비트 연산 (1010 & 1001 = 1000) / 각 자리 AND 연산
    print(a|b) # a|b 비트 연산 (1010 & 1001 = 1011) / 각 자리 OR 연산
    
//출력 결과
8
11


3.6. 대입 연산자

  • 대입연산자는 변수에 값을 대입할 때 사용하는 연산자이며 오른쪽에 있는 값을 이용해 왼쪽의 변수에 값을 대입한다.
  • C, C++, 자바 대입연산
    • C 대입연산
      #include <stdio.h>
      void main(){
        int a = 10;     // a에 10 대입
        a += 4;         // a = a+4와 동일, 저장된 숫자 10에 + 4
        printf(%dn", a);  // a 출력
        a /= 2;         // a = a/2와 동일, 저장된 숫자 14를 2로 나눔
        printf(%d₩n", a);    // a 출력
      }
      
    • C++ 대입연산
      #include <iostream>
      void main(){
        int a = 10;     // a에 10 대입
        a += 4;         // a = a+4와 동일, 저장된 숫자 10에 + 4
        std::cout << a << std::endl;  // a 출력
        a /= 2;         // a = a/2와 동일, 저장된 숫자 14를 2로 나눔
        std::cout << a << std::endl;  // a 출력
      }
      
    • Java 대입연산
      public static void main(String[] args){
        int a = 10;     // a에 10 대입
        a += 4;         // a = a+4와 동일, 저장된 숫자 10에 + 4
        System.out.println(a);     // a 출력
        a /= 2;         // a = a/2와 동일, 저장된 숫자 14를 2로 나눔
        System.out.println(a);     // a 출력
      } 
      
//출력 결과
14
7
  • 파이썬 대입연산
    • Python
      a = 10    // a에 10 대입
      a += 4      // a = a+4 동일, 저장된 숫자 10 + 4
      print(a)    // a 출력
      a /= 2  // a = a/2 동일, 저장된 숫자 14 2 나눔
      print(a)   // a 출력(파이썬에서는 나누기를 하면 실수로 결과가 나온다)
      
//출력 결과
14
7.0


3.7. 증감 연산자

  • 피연산자를 1씩 증가 혹은 1씩 감소시킬때 사용하는 연산자.
  • 파이썬에는 해당 연산자가 존재하지 않는다.
  • C 증감연산
    #include <stdio.h>
    void main(){
      int a = 10;       // a 에 10 대입
      a++;        // a++ 로 a 1증가
      printf("%d₩n", a); //a 출력 (11)
      a--;          // a-- 로 a 1감소
      printf("%d₩n", a);   //a 출력 (10)
    }
    
  • C++ 증감연산
    #include <iostream>
    void main(){
      int a = 10;       // a 에 10 대입
      a++;        // a++ 로 a 1증가
      std::cout << a << std::endl;   //a 출력 (11)
      a--;          // a-- 로 a 1감소
      std::cout << a << std::endl;   //a 출력 (10)
    }
    
  • Java 증감연산
    public static void main(String[] args){
      int a = 10;       // a 에 10 대입
      a++;        // a++ 로 a 1증가
      System.out.println(a);   //a 출력 (11)
      a--;          // a-- 로 a 1감소
      System.out.println(a);   //a 출력 (10)
    }
    
//출력 결과
11
10



4. 조건문

4.1. if문

  • 조건이 참인지 거짓인지에 따라 경로를 선택하는 명령문
  • if ~ else if ~ else 형태

  • C if문
    #include <stdio.h>
    void main(){
      int a = 10;       //a 에 10 대입
      if( a % 2 == 0 )  // a를 2로 나눴을때 나머지가 0이면 짝수
        printf("짝수₩n");
      else              //if 조건에 해당하지 않으면 홀수
        printf("홀수₩n");   
    }
    
  • C++ if문
    #include <iostream>
    void main(){
      int a = 10;       //a 에 10 대입
      if( a % 2 == 0 )  // a를 2로 나눴을때 나머지가 0이면 짝수
        std::cout << "짝수" << std::endl;
      else              //if 조건에 해당하지 않으면 홀수
        std::cout << "홀수" << std::endl;   
    }
    
  • Java if문
    public static void main(String[] args){
      int a = 10;      //a 에 10 대입
      if( a % 2 == 0 ) // a를 2로 나눴을때 나머지가 0이면 짝수
        System.out.println("짝수");
      else               //if 조건에 해당하지 않으면 홀수
        System.out.println("홀수");
    }
    
  • 파이썬 if문
    a = 10    # a 에 10 대입
    if a%2 == 0:    # a를 2로 나눴을때 나머지가 0이면 짝수
      print('짝수')
    else:           # if 조건에 해당하지 않으면 홀수
      print('홀수')
    
//출력 결과
짝수


4.2. switch ~ case 문

  • 조건에 따라 여러개의 선택 경로 중 하나를 취하고자 할때 사용하는 명령.
  • 파이썬에서는 switch ~ case 문이 존재하지 않는다.

  • C switch문
    #include <stdio.h>
    void main(){
      int a = 10;       //a 에 10 대입
      switch(a%2){    // a%2 결과에 따라 case로 이동
        case 0 :
          printf("짝수₩n");
          break;
        case 1 :
          printf("홀수₩n");   
    }
    
  • C++ switch문
    #include <iostream>
    void main(){
      int a = 10;       //a 에 10 대입
      switch(a%2){    // a%2 결과에 따라 case로 이동
        case 0 :
          std::cout << "짝수" << std::endl;
          break;
        case 1 :
          std::cout << "홀수" << std::endl;   
    }
    
  • Java switch문
    public static void main(String[] args){
      int a = 10;      //a 에 10 대입
      switch( a % 2){     // a%2 결과에 따라 case로 이동
        case 0 : 
          System.out.println("짝수");
          break;
        case 1 : 
          System.out.println("홀수");
      } 
    }
    
//출력 결과
짝수



5. 반복문

5.1. for문

  • for문은 초깃값, 최종값, 증감 값을 지정하여 반복을 실행하는 명령문.

  • C 구구단 for문
    #include <stdio.h>
      
    void main(){
      int i;            //for문에 사용할 변수 선언
      int a = 4;        // a에 4 대입
      for(i=1; i <= 9; i++)   // i가 1부터 9까지 1씩 증가
        printf("%d * %d = %d₩n", a, i, a*i);
    }
    
  • C++ 구구단 for문
    #include <iostream>
    using namespace std;
    void main(){
      int i;            //for문에 사용할 변수 선언
      int a = 4;        // a에 4 대입
      for(i=1; i <= 9; i++){   // i가 1부터 9까지 1씩 증가
        cout << a << " * " << i << " = ";
        cout << a*i << endl;
      }
    }
    
  • Java 구구단 for문
    public static void main(String[] args){
      int i;            //for문에 사용할 변수 선언
      int a = 4;        // a에 4 대입
      for(i=1; i <= 9; i++){   // i가 1부터 9까지 1씩 증가
        System.out.println(a + " * " + i + " = " + (a*i));
      }
    }
    
  • 파이썬 구구단 for문
    a = 4      # a에 4 대입
    for i in rang(1, 10) :  # i가 1부터 9까지 실행
      print(a, ' * ', i, ' = ', a*i)
    
//출력 결과
4 * 1 = 4
4 * 2 = 8
4 * 3 = 12
...
4 * 9 = 36



5.2. while 문

  • 시작과 종료 조건을 지정하여 참인 동안에는 해당 문장을 반복해서 실행하는 명령문.

  • C 구구단 while문
    #include <stdio.h>
      
    void main(){
      int i;            //for문에 사용할 변수 선언
      int a = 4;        // a에 4 대입
      while(i<=9)   // i <= 9 만족할때까지 실행
        printf("%d * %d = %d₩n", a, i, a*i);
        i++
    }
    
  • C++ 구구단 while문
    #include <iostream>
    using namespace std;
    void main(){
      int i;            //for문에 사용할 변수 선언
      int a = 4;        // a에 4 대입
      while(i<=9)   // i <= 9 만족할때까지 실행
        cout << a << " * " << i << " = ";
        cout << a*i << endl;
        i++;
      }
    }
    
  • Java 구구단 while문
    public static void main(String[] args){
      int i;            //for문에 사용할 변수 선언
      int a = 4;        // a에 4 대입
      while(i<=9)   // i <= 9 만족할때까지 실행
        System.out.println(a + " * " + i + " = " + (a*i));
        i++;
      }
    }
    
  • 파이썬 구구단 while문
    a = 4      # a에 4 대입
    while i<=9    #  i <= 9 만족할때까지 실행
      print(a, ' * ', i, ' = ', a*i)
      i = i+1     # i 값 1증가
    
//출력 결과
4 * 1 = 4
4 * 2 = 8
4 * 3 = 12
...
4 * 9 = 36



6. 루프제어문

6.1. break

  • break는 반복문이나 switch문을 중간에 탈출하기 위해 사용하는 명령어.

  • C break 예제
    #include <stdio.h>
    void main(){
      int i=0;        // i에 0 저장
      while(1){         // 조건 1은 항상 참으로 무한 반복
        printf("%d₩n", i);   // i 출력
        i++;            // i 1 증가
        if(i>=5)      // i >= 5 이면 반복문 탈출
          break;
      }
    }
    
  • C++ break 예제
    #include <iostream>
    void main(){
      int i=0;        // i에 0 저장
      while(1){         // 조건 1은 항상 참으로 무한 반복
        std::cout << i << std::endl;  // i 출력
        i++;            // i 1 증가
        if(i>=5)      // i >= 5 이면 반복문 탈출
          break;
      }
    }
    
  • Java break 예제
    public static void main(String[] args){
      int i=0;        // i에 0 저장
      while(true){         // 조건이 true 이므로 무한반복
        System.out.println(i)  // i 출력
        i++;            // i 1 증가
        if(i>=5)      // i >= 5 이면 반복문 탈출
          break;
      }
    }
    
  • 파이썬 break 예제
    i = 0         # i에 0 저장
    while True:    # 조건이 True 이므로 무한반복
      print(i)    #  i 출력
      i=i+1       # i 1 증가
      if i>= 5 :  #  i >= 5 이면 반복문 탈출
        break
    
//출력 결과
0
1
2
3
4


6.2. continue

  • continue는 반복문에서 다음 반복으로 넘어갈 수 있도록 하는 명령어이다.

  • C continue 예제
    #include <stdio.h>
      
    void main(){
      int i;            //for문에 사용할 변수 선언
      for(i=0; i < 100; i++)   // i가 0부터 99까지 반복
        if(i%3==0)          // i를 3으로 나눈 나머지가 0이면 다음 반복 수행
          continue;
        printf("%d₩n", i);   // i 출력
    }
    
  • C++ continue 예제
    #include <iostream>
    using namespace std;
    void main(){
      int i;            //for문에 사용할 변수 선언
      for(i=0; i < 100; i++)   // i가 0부터 99까지 반복
        if(i%3==0)          // i를 3으로 나눈 나머지가 0이면 다음 반복 수행
          continue;
        cout << i << endl;   // i 출력
      }
    }
    
  • Java continue 예제
    public static void main(String[] args){
      int i;            //for문에 사용할 변수 선언
      for(i=0; i < 100; i++)   // i가 0부터 99까지 반복
        if(i%3==0)          // i를 3으로 나눈 나머지가 0이면 다음 반복 수행
          continue;
        System.out.println(i);   // i 출력
      }
    }
    
  • 파이썬 continue 예제
    for i in rang(0, 100) :  # i가 0부터 99까지 실행
      if i%3==0:    # i를 3으로 나눈 나머지가 0이면 다음 반복 수행
        continue
      print(i)   # i 출력
    
//출력 결과
1
2
4
5
7
8
10
...
98



7. 배열 / 리스트

7.1. 배열/리스트 개념

  • 번호(인덱스)와 번호에 대응하는 데이터들로 이루어진 자료 구조이다.
  • ex. int a[5] = {4, 2, 1, 3, 7};
    a[3] = 3 a[1] = 2

7.2. 배열의 활용

  • C, C++, 자바에서는 배열을 통해 같은 데이터 타입을 저장.
  • 파이썬은 리스트를 통해 같거나 다른 데이터 타입을 저장.

  • C 배열 예제
    #include <stdio.h>
    void main(){
      int i;            // for 문에 사용될 변수
      int sum = 0;       // 배열의 합을 저장할 변수
      int a[5] = {4, 2, 1, 7, 10};    // 5개의 요소를 가진 배열
      for(i=0; i < 5; i++){  
        sum += a[i];      // i번째 인덱스 요솟값을 sum이라는 변수에 더함
      }
      printf("%d₩n", sum);   // sum 출력
    }
    
  • C++ 배열 예제
    #include <iostream>
    void main(){
      int i;            // for 문에 사용될 변수
      int sum = 0;       // 배열의 합을 저장할 변수
      int a[5] = {4, 2, 1, 7, 10};    // 5개의 요소를 가진 배열
      for(i=0; i < 5; i++){  
        sum += a[i];      // i번째 인덱스 요솟값을 sum이라는 변수에 더함
      }
      std::cout << sum << std::endl; // sum 출력
    }
    
  • Java 배열 예제
    public static void main(String[] args){
      int i;            // for 문에 사용될 변수
      int sum = 0;       // 배열의 합을 저장할 변수
      int a[] = {4, 2, 1, 7, 10};    // 5개의 요소를 가진 배열
      for(i=0; i < 5; i++){  
        sum += a[i];      // i번째 인덱스 요솟값을 sum이라는 변수에 더함
      }
      System.out.println(sum);   // sum 출력
    }
    
  • 파이썬 배열 예제
    sum = 0                   # 배열의 합을 저장할 변수
    a = [4, 2, 1, 7, 10]     # 5개의 요소를 가진 배열
    for i in range(0, 5) 
      sum += a[i]     # i번째 인덱스 요솟값을 sum이라는 변수에 더함
    print(sum)       # sum 출력
    
//출력 결과
24


7.3. 2차원 배열

  • ex. int a[2][2] = {{4, 2}, {3, 5}};
    a[1][0] = 3 a[0][0] = 4


7.4. 2차원 배열 활용

  • C, C++, Java 2차원 배열 덧셈 예제
    • C 2차연배열 덧셈
      #include <stdio.h>
      void main(){
        int i, j;         // for문 제어 변수
        int a[2][2] = { {1, 2},{3, 4} };    // a 2차원 배열
        int b[2][2] = { {1, 2},{3, 4} };    // b 2차원 배열
        int c[2][2];                    // a와 b를 더한값을 저장할 2차원 배열
        for(i=0; i < 2; i++){
          for(j=0; j < 2; j++){         
            c[i][j] = a[i][j] + b[i][j];    // a와 b의 같은 인덱스에 있는 값을 더한 후 c의 같은 인덱스에 저장
          }
        }
        for(i=0; i < 2; i++){
          for(j=0; j < 2; j++){
            printf("%d₩n", c[i][j]);   // c에 저장된 결과값 출력   
          }
        }
      }
      
    • C++ 2차연배열 덧셈
      #include <iostream>
      void main(){
        int i, j;         // for문 제어 변수
        int a[2][2] = { {1, 2},{3, 4} };    // a 2차원 배열
        int b[2][2] = { {1, 2},{3, 4} };    // b 2차원 배열
        int c[2][2];                    // a와 b를 더한값을 저장할 2차원 배열
        for(i=0; i < 2; i++){
          for(j=0; j < 2; j++){         
            c[i][j] = a[i][j] + b[i][j];    // a와 b의 같은 인덱스에 있는 값을 더한 후 c의 같은 인덱스에 저장
          }
        }
        for(i=0; i < 2; i++){
          for(j=0; j < 2; j++){
            std::cout << c[i][j] << std::endl;   // c에 저장된 결과값 출력   
          }
        }
      }
      
    • Java 2차연배열 덧셈
      public static void main (String[] args){
        int i, j;         // for문 제어 변수
        int[][] a = { {1, 2},{3, 4} };    // a 2차원 배열
        int[][] b = { {1, 2},{3, 4} };    // b 2차원 배열
        int[][] c = new int[2][2];              // a와 b를 더한값을 저장할 2차원 배열
        for(i=0; i < 2; i++){
          for(j=0; j < 2; j++){         
            c[i][j] = a[i][j] + b[i][j];    // a와 b의 같은 인덱스에 있는 값을 더한 후 c의 같은 인덱스에 저장
          }
        }
        for(i=0; i < 2; i++){
          for(j=0; j < 2; j++){
            System.out.println(c[i][j]);   // c에 저장된 결과값 출력   
          }
        }
      }
      
//출력 결과
2
4
6
8
  • 파이썬 2차원 배열 덧셈 예제
    • Python
      a = [[1, 2],[3, 4]]     // a 2차원 배열
      b = [[1, 2],[3, 4]]     // b 2차원 배열
      c = []                // a와 b를 더한값을 저장할 2차원 배열
      for i in range(0, 2)
        for j in range(0, 2)
          c.append(a[i][j] + b[i][j])   // a와 b의 같은 인덱스에 있는 값을 더한  c의 같은 인덱스에 저장
      print(c);         // 2차원 배열인 c에 저장된 결과값 출력
      
//출력 결과
[2, 4, 6, 8]



8. 사용자 정의 함수

8.1. 사용자 정의 함수 개념

  • 사용자 정의 함수는 프로그램이나 환경의 사용자가 제공하는 함수이다.
  • 사용자 정의 함수는 함수명, 함수의 입력값(파라미터), 함수의 출력값(리턴)으로 구성되어있다.
  • 사용자 정의 함수 형태
    출력타입 함수명(입력값들){
      ... (생략)
      return 출력값;
    }
    


8.2. 사용자 정의 함수 활용

  • C언어와 C++은 함수의 본체를 소스 코드 하단부에 적을 경우 상단부에 함수는 어떤 형태로 구성되어 있는지 알려주기 위한 선언을 해야 한다.
  • sum이라는 함수로 두개의 int형 입력값을 받고 결과로 int형을 반환하는 함수 예제

  • C 사용자 정의 함수 예제
    #include <stdio.h>
    int sum(int a, int b);        // C언어, C++ 에서는 사용자 정의 함수를 어떤 형태로 사용할지 상단에 선언해 주어야한다
    void main(){
      printf("%d₩n", sum(4, 3));    // sum 함수에 4와 3을 입력값으로 넣었을때 결과값 출력
    }
    int sum(int a, int b){  // sum의 입력값은 a와 b에 저장되고 a 와 b를 더한 값을 반환하는 사용자 정의 함수
      return a+b;
    }
    
  • C++ 사용자 정의 함수 예제
    #include <iostream>
    int sum(int a, int b);        // C언어, C++ 에서는 사용자 정의 함수를 어떤 형태로 사용할지 상단에 선언해 주어야한다
    void main(){
      std::cout << sum(4, 3) << std::endl;    // sum 함수에 4와 3을 입력값으로 넣었을때 결과값 출력
    }
    int sum(int a, int b){  // sum의 입력값은 a와 b에 저장되고 a 와 b를 더한 값을 반환하는 사용자 정의 함수
      return a+b;
    }
    
  • Java 사용자 정의 함수 예제
    public static void main(String[] args){
      System.out.println(sum(4, 3));        // sum함수에 4와 3을 입력값으로 넣었을때 결과 출력
    }
      
    public static int sum(int a, int b){     // sum의 입력값은 a와 b에 저장되고 a 와 b를 더한 값을 반환하는 사용자 정의 함수 
      return a+b;
    }
    
  • 파이썬 사용자 정의 함수 예제
    def sum (a, b) :  # sum의 입력값은 a와 b에 저장되고 a 와 b를 더한 값을 반환하는 사용자 정의 함수 
      return a+b
      
    print(sum(4,3))  #  sum함수에 4와 3을 입력값으로 넣었을때 결과 출력
    
//출력 결과
7






  • 정보처리기사 필기 합격 후 실기대비 정리 및 책없이 간단히 보기위해 작성하였습니다.
  • 2020년 수제비 정보처리기사 책 기반으로 정리 하였습니다.
  • 저작권 관련 문제가 있다면 hojunbbaek@gmail.com 으로 메일 주시면 바로 삭제 조치 하도록 하겠습니다.