티스토리 뷰

*내가 필요한 부분만 정리*

ch01 기본 문법 활용하기

 

▶ 데이터 타입 유형 (2021 3회 시험에 파이썬으로 나옴)

유형 설명 선언 / 값
불린 (Boolean) 조건이 참인지 거짓인지 판단하고자 할 때 사용
- C언어 미지원
- C++, 자바 : true / false   (소문자)
- 파이썬 : True / False       (대문자)
C++ : bool
자바 : boolean
문자 (Char) 문자 하나를 저장하고자 할 때 사용 C언어 / C++ / 자바 : char
문자열 (String) 나열된 여러 개의 문자를 저장하고자 할 때 사용 C언어 : char []
C++ : string
자바 : String
정수 (int) 정숫값을 저장하고자 할 때 사용 C언어 / C++ / 자바 : int
부동 소수점 (Float) 소수점을 포함하는 실숫값을 저장하고자 할 때 사용 C언어 / C++ / 자바 : float , double

* float : 4byte , 소수점 6자리
* double : 8byte , 소수점 15자리

 

▶ 기본 저장 공간 

  - 변수 : 저장하고자 하는 어떠한 값이 있을 때, 그 값을 주기억장치에 기억하기 위한 공간이다.
            파이썬에서는 변수 선언 X

 

  - 배열 : 같은 타입의 변수들로 이루어진 집합이다.

  • C, C++ 배열 선언
    • 초깃값 없음 : int arr[5];              // 초깃값 선언하지 않을 시 쓰레깃 값 저장
    • 초깃값 존재 : int arr[5] = {1,2};    // 명시되지 않은 값들은 0으로 초기화
  • 자바 배열 선언
    • 초깃값 없음 : int []arr = new int[5];
                        int arr[] = new int[5];
    • 초깃값 존재 : int []arr = {1,2};

  - 포인터 : 변수의 주솟값을 저장하는 공간이다.

 

▶ 자료형

  - 자바

  • 자바 자료형
    • HashSet : 중복된 원소를 허용하지 않는 집합의 성질을 가진 클래스. 순서 중요하지 x
    • ArrayList : 크기가 가변적으로 변하는 선형리스트의 성질을 가진 클래스. 순서가 중요 o
    • LinkedList : 링크드 리스트 자료구조를 구현한 클래스
    • HashMap : 키와 값으로 구성된 객체를 저장하는 구조

① HashSet 형

  • 선언
    • Set 변수명 = new HashSet();
    • HashSet 변수명 = new HashSet();
  • 메서드 
    • add(값) : 값 추가 , 중복 값이 들어오면 추가 x
    • remove(값) : 값 제거
    • size() : 원소 개수

② ArrayList 형

  • 선언
    • List 변수명 = new ArrayList();
    • ArrayList 변수명 = new ArrayList();
  • 메서드
    • add(값) : 값 추가
    • add(인덱스, 값) : 해당 인덱스에 값 추가
    • remove(인덱스) : 해당 인덱스의 값 제거
    • get(인덱스) : 해당 인덱스의 값 얻기
    • size() : 원소 개수

③ HashMap 형

  • 선언
    • Map 변수명 = new HashMap();
    • HashMap 변수명 = new HashMap();
  • 메서드
    • put(키, 값) : 해당 키에 값 추가
    • remove(키) : 해당 키에 해당하는 값 제거
    • get(키) : 해당 키에 해당하는 값 얻기
    • size() : 원소 개수

- 파이썬

  • 파이썬 자료형
    • 세트형 : 중복된 원소를 허용하지 않는 집합의 성질
    • 리스트형 : 크기가 가변적으로 변하는 선형리스트의 성질
    • 튜플형 : 초기 선언된 값에서 값 생성, 삭제, 수정 불가능한 형태
    • 딕셔너리형 : 키과 값으로 구성된 객체를 저장하는 구조

 

▶ 식별자 : 변수, 상수, 함수 등 서로 구분하기 위해 사용되는 이름

 

▶ 식별자 규칙

구분 규칙 사용 가능 예시 사용 불가능 예시
사용 가능 문자 영문 대/소문자, 숫자, 밑줄('_'), 달러('$')  a, A, a1, _, _hello, $a ?a, <a
변수 사용 규칙 단, 첫 자리에는 숫자 사용 불가 _1, a1, a100 1, 1a, 1A, 1234
변수 이름의 중간에는 공백 사용 불가 my_student my student
변수 의미 부여 데이터값의 의미나 역할을 표현 age, student  
예약어의 경우 변수로 사용 불가능 For, If, While for, if, while

 

▶ 식별자 표기법

  - 카멜 표기법 (Camel Case) : 식별자 표기 시 첫 단어 시작만 소문자로 표시하고, 각 단어의 첫글자는 대문자로 지정
    ex) inputFunction

 - 파스칼 표기법 (Pascal Case) : 식별자 표기 시 각 단어의 첫글자는 대문자로 지정

   ex) InputFunction

 - 스네이크 표기법 (Snake Case) : 식별자 표기 시 단어 사이에 언더바 넣는 표기법

   ex) input_function

 - 헝가리안 표기법 (Hungarian Case) : 식별자 표기 시 접두어에 자료형을 붙이는 표기법

   n : 정수 / c : 문자 / sz : 문자열
   ex) nScore -> 정수형

 

▶ 아스키코드

 

 

▶ 연산자

 

 

▶ 출력 함수

  ① c언어

단순 출력 printf(문자열);
개행 printf("\n");
변수 출력 printf("포맷 스트링", 변수명);

* 포맷 스트링
 - 문자형 : %c (문자) ,     %s (문자열)
 - 정수형 : %d (10진수) ,     %x (16진수) ,     %o (8진수)
 - 실수형 : %f,      %[전체자리수].[소수점자리수]  

  ② c++

 - 단순 출력 : std::cout << 문자열;

 - 개행 : std::endl;

 - 변수 출력 : std::cout << 변수명;

 

  ③ 자바

단순 출력 system.out.printf(문자열);  // 포맷 스트링 사용 가능 
system.out.print(문자열);  // 개행을 하지 않음
개행 system.out.print("\n");
system.out.println(문자열);
변수 출력 system.out.print(변수명);
system.out.println(변수명);
system.out.printf(포맷 스트링, 변수명);

④ 파이썬

단순 출력 및 개행 print(문자열)  // 출력 후 개행
print(문자열, end='')  // 개행을 하지 않음
변수 출력 print(변수명)

 

▶ 입력 함수

c언어 변수값 입력 scanf(포맷 스트링, &변수명);
문자열 입력 scanf("%s", 배열명);
c++ std::cin << 변수명;
자바 정수형 입력 Scanner 스캐너 변수명 = new Scanner(System.in);
입력받을 변수명 = 스캐너 변수명.nextInt();
실수형 입력 Scanner 스캐너 변수명 = new Scanner(System.in);
입력받을 변수명 = 스캐너 변수명.nextFloat();
문자열 입력 Scanner 스캐너 변수명 = new Scanner(System.in);
입력받을 변수명 = 스캐너 변수명.nextLine();
파이썬 문자열 입력 변수명 = input()
숫자 입력 변수명 = input()
변수명 = eval(변수명) 

▶ 클래스 접근 제어자

범위 종류 설명
넓음






좁음
public 외부의 모든 클래스에서 접근 가능
protected 같은 패키지 내부에 있는 클래스, 하위 클래스에서 접근 가능
default 같은 패키지 내부에 있는 클래스에서 접근 가능
자바에만 존재
private 같은 클래스 내에서만 접근 가능

 

▶ 클래스 생성자 : 객체가 생성될 때 자동으로 호출되는 메서드이다.


ch02 언어 특성 활용하기

 

▶ 프로그래밍 언어의 유형 분류

  • 개발 편의성에 따른 언어 분류
    • 저급 언어 : 기계가 이해할 수 있도록 만들어진 언어
      ex) 기계어 , 어셈블리어
    • 고급 언어 : 개발자가 소스 코드 작성 시 쉽게 이해할 수 있도록 작성된 언어
      ex) C , C++ , 자바 , 파이썬
  • 실행하는 방식에 따른 언어 분류
    • 명령형 언어 : 컴퓨터에 저장된 명령어들이 순차적으로 실행되는 프로그래밍 방식
      ex) FORTRAN, COBOL, PASCAL, C
    • 객체지향 언어 : 객체 간 메시지 통신을 이용해 프로그래밍 하는 방식
      ex) JAVA, C++
    • 함수형 언어 : 수학적 수식과 같은 함수들로 프로그램을 구성하여 호출하는 방식
      ex) LISP
    • 논리형 언어 : 논리 문장을 이용해 프로그램을 표현하고 계산을 수행하는 개념에 기반한 프로그래밍 방식
      ex) 프롤로그
  • 구현 기법에 따른 분류
    • 컴파일 방식의 언어 : 고급언어를 기계어로 번역하는 방식
      ex) FORTRAN, PASCAL, C, C++
    • 인터프리터 방식의 언어 : 고급 언어 명령문을 하나씩 번역하고 실행하는 방식
      ex) BASIC, 프롤로그, LISP
    • 혼합형 방식의 언어 : 고급 언어를 중간언어로 변환 후, 인터프리터에 의해 번역을 실행하는 방식
      ex) 자바

▶ 프로그래밍 언어별 특성

  •  절차적 프로그래밍 언어 종류
    • 알골 : 알고리즘 연구개발에 이용하기 위한 목적
    • C언어 : 유닉스 운영 체제에서 사용하기 위해 개발
    • 베이직 : 교육용으로 개발
    • 포트란 : 과학 기술 전문 언어
  • 객체지향 프로그래밍 언어 종류
    • C++ : C 문법에 객체지향 개념 + 템플릿 기능 추가
    • C# : 마이크로소프트에서 개발한 객체지향 프로그래밍 언어
    • 자바 : 썬 마이크로 시스템즈가 개발
    • 델파이 : 윈도즈 아래에서 모든 부분 프로그래밍 할 수 있는 언어
  • 스크립트 언어 종류
    • PHP : 동적 웹 페이지를 만들기 위해 설계
    • 펄(Perl) : 인터프리터 방식의 프로그래밍 언어
    • 파이썬 : 다양한 플랫폼에서 사용 가능, 라이브러리 풍부
    • 자바스크립트 : 객체 기반 스크립트 프로그래밍 언어
  • 선언형 언어 종류 
    • 함수형 언어
      • 하스켈 : 패턴 맞춤, 커링, 조건 제시법, 가드, 연산자 정의 등의 기능 존재
      • 리스프 : 수학 표기법을 나타내기 위한 목적으로 생성
    • 논리형 언어
      • 프롤로그 : 논리식 기반으로 객체 간 관계에 대한 문제 해결을 위해 사용
    • 특수 분야 언어
      • SQL : 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어

 

▶ 객체지향 프로그래밍

  : 객체와 객체 간 통신을 통해 프로그램 구현. 객체와 속성, 메서드로 구성

 

▶ 객체지향 프로그래밍 구성 요소

  *객클메*

 - 객체 : 개체, 속성, 메서드로 구성된 클래스의 인스턴스

 - 클래스 : 객체를 표현하는 추상 데이터 타입. 객체를 생성하는 틀

 - 메시지 : 객체 간의 통신

 

▶ 객체의 구성요소 

  *개속메*

 - 개체(Entity) : 현실 세계에 보이는 본질

 - 속성(Attribute) : 자료 저장소 역할

 - 메서드(Method) : 호출 단위

 

▶ 라이브러리 : 효율적인 프로그램 개발을 위해 필요한 프로그램을 모아 놓은 집합체

 

▶ 라이브러리의 구성 

  *도설샘* : 도움말 / 설치 파일 / 샘플 코드

 

▶ 라이브러리의 기능

  문자열 연산 기능 / 문자열 탐색,치환 기능 / 수치 계산 기능 / 난수 생성 기능 

  파일 경로 조작 기능 / 디렉터리 생성 기능 / 날짜 조작 기능 / 로그 출력 기능

 

▶ 모듈과 패키지

  • 모듈 : 전역 변수, 함수 등을 모아둔 파일
  • 패키지 : 모듈을 디렉터리 형식으로 구조화한 라이브러리 
댓글