[정보처리기사 실기] 6. 프로그래밍 언어 활용 (1)-1

📌 데이터 타입

  • 자료형과 같은 여러 종류의 데이터 식별
  • 메모리 공간 효율적으로 사용하기 위해 사용

✅ 기본 타입

  • 불린(Boolean)
    • C++ : bool
    • Java : boolean
  • 문자(Character)
    • C, C++, Java : char
  • 문자열 타입(String)
    - C : char[]
    • C++, Java : string
  • 정수 타입(Integer)
    • C, C++, Java : int
  • 부동 소수점(Float)
    • C, C++, Java : float, double

📌 기본 저장 공간

✅ 변수

: 주기억장치에 값을 저장하기 위한 공간

  • 자료형과 변수명으로 선언
  • 파이썬은 선언 X

✅ 배열

: 같은 타입의 변수들로 이루어진 집합

  • 배열 선언
    • C, C++
      - 타입[배열_요소_개수]={초깃값};
      - 초깃값 선언안하면 쓰레깃값 저장
      - 배열 요소 개수보다 적은 개수만큼 초기화하면 명시되지 않은 값은 0으로 초기화
    • Java
      - 타입 []배열명 = new 타입[배열_요소_개수];
      - 타입 배열명[] = new 타입[배열_요소_개수];
      - 초깃값 있는 경우 타입 []배열명 = {초깃값};
      - 배열 요소 개수 명시되어 있지 않은 경우 초깃값 개수만큼 선언
      - 초깃값 선언하지 않을 경우 0 또는 NULL값 저장

✅ 포인터

: 변수의 주솟값을 저장하는 공간

  • 선언 : 데이터_타입* 포인터_변수명 = &변수명
  • 데이터 타입 뒤에 *는 포인트 변수 의미, &은 해당 변수명의 주솟값

📌 자료형

✅ 자바

  • 자료형
    • HashSet
      - (Hash)Set 변수명 = new HashSet();
      - 중복된 원소를 허용하지 않는 집합의 성질을 가지고 있는 자료형이며 클래스 (순서 중요X)
      - 메서드 : add(값), remove(값), size()
      - 중복된 값이 들어오면 추가하지 않음
    • ArrayList
      - (Array)List 변수명 = new Arraylist();
      - 크기가 가변적으로 변하는 선형리스트의 성질을 가지고 있는 자료형이며 클래스 (순서 중요O)
      - 메서드 : add(값), add(인덱스, 값), remove(인덱스), get(인덱스), size()
    • HashMap
      - (Hash)Map 변수명 = new HashMap();
      - 키와 값으로 구성된 객체를 저장하는 구조로 되어있는 자료구조 구현
      - 메서드 : put(키, 값), remove(키), get(키), size()

✅ 파이썬

  • 자료형
    • 세트형
      - 세트명 = set([요소1, 2, ...]) or 세트명 = {}
      - 집합의 성질
      - 메서드 : add(값), update([값1, 값2, ...]), remove(값)
    • 리스트형
      - 리스트명 = [요소1, 요소2..]
      - 크기 가변적으로 변하는 선형리스트의 성질
      - 메서드 : append(값), insert(인덱스, 값), remove(값)
      - 리스트 인덱싱 : 중간 값에 접근
      - 리스트 슬라이싱 : 여러 개의 데이터에 동시 접근
      - 리스트명[시작_인덱스:종료_인덱스:스텝]
    • 튜플형
      -튜플명 = (요소1, 요소2 ...)
      - 초기에 선언된 값에서 값을 생성, 삭제, 수정이 불가능한 형태의 자료형
      - 튜플 인덱싱
      - 튜플 슬라이싱
    • 딕셔너리형
      - 딕셔너리명 = {키1:값1, 키2:값2 ...}
      - 키와 값으로 구성된 객체 저장하는 구조
      - 요소 추가 : 딕셔너리명[키] = 값
      - 요소 삭제 : del 딕셔너리명[키]

📌 식별자

  • 변수, 상수, 함수 등 서로 구분하기 위해 사용되는 이름
  • 프로그램의 구성요소 구별

✅ 명명 규칙

  • 사용 가능 문자 : 영문 대소문자, 숫자, _ , $
  • 변수 사용 규칙 : 첫 자리에 숫자X, 중간에 공백X
  • 변수 의미 부여 : 예약어 사용X

✅ 표기법

  • 카멜 표기법 : 첫자리는 소문자, 각 단어 첫글자는 대문자
    e.g. inputFunction
  • 파스칼 표기법 : 각 단어 첫글자는 대문자
    e.g. InputFunction
  • 스네이크 표기법 : 단어 사이에 언더바
    e.g. input_function
  • 헝가리안 표기법 : 두어에 자료형 붙임 n(int), c(char), sz(string)
    e.g. nScore -> 정수형

📌 연산자

✅ 산술 연산자 (+,-,*,/,%)

✅ 시프트 연산자 (<<,>>)

✅ 관계 연산자 (<,>,=<,>=,==,!=)

✅ 논리 연산자 (&&,||)

✅ 비트 연산자 (&,|,^,~)

✅ 대입 연산자 (=,+=,-=,*=,/=,%=)

✅ 증감 연산자 (++x,x++,--x,x--)

✅ 삼항 연산자(조건?참일때값:거짓일때값)

📌 표준함수

✅ 출력 함수

  • C
    • 단순출력 : printf(""); stdio.h헤더 선언 필요
    • 변수출력 : C언어만 해당 변수에 저장된 값 출력할 때에는 포맷스트링 이용
    #include <stdio.h>
    void main() {
    char a = 'A';
    int b = 10;
    printf(%c, %d, a, b);
    }
  • C++
    • 단순출력 : std::cout << 문자열; iostream 헤더 선언 필요
    • using namespace std; 선언하면 std:: 생략가능
    • 개행 : std::endl;
    • 변수출력 : std::cout << 변수명;
    #include <iostream>
    using namespace std;
    void main() {
    char a = 'A';
    int b = 10;
    cout << a << endl << b;
    }
  • Java
    • 단순출력 : Systeml.out.println(문자열); ln없으면 개행 X
    • 변수출력
      - System.out.println(변수명);
      - System.out.printf(포맷_스트링, 변수명);
public static void main(String[] args) {
	int a = 5;
    System.out.print(a);
}
  • Python
    • 단순출력 : print(문자열), print(문자열, end='') -> 개행X
    • 변수출력 : print(변수명)

✅ 입력 함수

  • C

    • 변수값 입력 : scanf(포맷_스트링, &변수명);
    • 문자열 입력 : scanf("%s", 배열명);
    • scanf 사용시 stdio.h 선언 필요
    • 문자열 입력받는 경우가 아니라면 변수명 앞에 를 붙임
    • 문자열 입력받는 경우 배열명을 쓰고 '&' 안붙임
  • C++

    • 변수값 입력 : std::cin >> 변수명
    • iostream 헤더 선언 필요
  • 자바

    • Scanner 클래스를 스캐너 변수에 생성
    • 스캐너 변수를 이용해 정수형은 nextInt, 실수형은 nextFloat,nextDouble, 문자열은 nextLine을 통해 입력받음
public static void main(String[] args) {
	String s;
    int i;
    float f;
    
    Scanner c = new Scanner(System.in);
    s = c.nextLine();
    System.out.println(s);
    
    i = c.nextInt();
    System.out.println(i);
    
    f = c.nextFloat();
    System.out.print(f);
}
  • 파이썬
    • 숫자를 입력받을 때는 문자열로 저장 후 eval 함수를 써서 숫자로 변환
    • 변수명 = input()
    • 변수명 = eval(변수명)

📌 명령문

: 프로그램을 구성하는 문장, 조건문과 반복문

✅ 조건문

  • if문
    • 조건이 참인지 거짓인지에 따라 경로 선택
  • swith문
    • 파이썬은 지원 X
    • break 만나면 switch~case 탈출
    • case의 어떤 값도 만족하지 않으면 default로 진입
  • if문은 산술 or 논리적으로 비교 가능, switch는 조건 동일한지 여부만

✅ 반복문

  • while문
    • 조건이 참인 동안 반복 실행
  • for문
    • 초깃값, 최종값, 증감값 지정하여 반복
  • 특별한 조건 없으면 무한 루프

📌 루프 제어 명령어

: 반복문에서 무한루프 방지

  • break : 반복문이나 switch문 중간에 탈출
  • continue : 다음 반복으로 넘어갈 수 있도록 해줌

📌 사용자 정의 자료형 활용

✅ 열거체

  • 서로 연관된 정수형 상수들의 집합
  • 정수형 상수에 이름을 붙임
#include <iostream>
enum Week {
    Sunday, // 0
    Monday, // 1
    Tuesday = 5,
    Wednesday  // 6
};
void main() {
	enum Week week; // enum Week 타입의 week 변수 선언
    week = Wednesday;
    std::cout << week;
}
// 출력결과 6

✅ 구조체

  • 사용자가 기본 타입을 가지고 새롭게 정의할 수 있음
  • 자바, 파이썬은 지원X
#include <iostream>
using namespace std;
struct Student { // 구조체 타입 정의
	char gender;
    int age;
    int num
};
void main() {
	struct Student s; // struct Student 타입의 s라는 변수 선언
    s.gender = 'M';
    s.age = 24;
    s.num = 20200001;
    
    cout << s.gender << endl;
    cout << s.age << endl;
    cout << s.num << endl;
}

좋은 웹페이지 즐겨찾기