본문 바로가기

자격증/정처기

정처기 실기 파트6

반응형

6 프로그래밍 언어 활용

I.    기본 문법 활용하기

1.   변수 활용

(1)  데이터 타입

-     데이터 타입의 개념 : 데이터를 식별하는 형태

-     데이터 타입의 유형

  Boolean : 데이터의 참/거짓 판단

  Character : 문자 하나를 저장

  String : 문자열 저장

  Integer : 정수 값 저장

  Floating Point : 소수점을 포함하는 실수 저장

(2)  기본 저장 공간

-     변수(Variable)

  개념 : 저장 하고자 하는 값을 주 기억장치에 기억하기 위한 공간

  선언 : 데이터_타입 변수명;       데이터_타입 변수명 = 초기값;

-     배열(Array)

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

  선언

C, C++ : 타입 배열명[배열요소];     타입 배열명[배열요소]={초기값};
JAVA :
타입 []배열명 = new 타입[배열요소];  타입 []배열명 = {초기값};

-     포인터

  개념 : 변수의 주소 값을 저장하는 공간

  선언 : 데이터_타입* 포인터_변수명 = &변수명;

(3)  자료형

-     자바

  HashSet

개념 : 중복 원소 허용 안함
선언 : HashSet 변수명 = new HashSet();   Set 변수명 = new HashSet();
메서드 : 변수명.add(), 변수명.remove(), 변수명.size()

  ArrayList

개념 : 크기가 가변적으로 변하는 선형리스트의 성질 가짐
선언 : ArrayList 변수명 = new ArrayList();   List 변수명 = new ArrayList();
메서드 : 변수명.add(), 변수명.add(인덱스,), 변수명.remove(인덱스), 변수명.get(인덱스), 변수명.size()

  HashMap

개념 : 키와 값으로 구성된 객체 저장
선언 : HashMap 변수명 = new HashMap();   Map 변수명 = new HashMap();
메서드 : 변수명.put(,), 변수명.remove(), 변수명.get(), 변수명.size()

-     파이썬

  세트(Set)

개념 : 중복 원소 허용하지 않는 집합
선언 : 세트명 = set([요소1, 요소2, … ])   세트명 = {요소1, 요소2, … }
메서드 : 세트명.add(), 세트명.update([1, 2, … ]), 세트명.remove()

  리스트(List)

개념 : 크기가 가변적으로 변하는 선형리스트 성질 가짐
선언 : 리스트명 = [요소1, 요소2, … ]
메서드 : 리스트명.append(), 리스트명.insert(인덱스,), 리스트명.remove()
리스트 인덱싱 : 인덱스를 이용해 값에 접근
리스트 슬라이싱 : 리스트에서 여러 개의 데이터에 동시 접근 기법 / ( 리스트명[시작인덱스:종료인덱스:스텝]) / 시작~종료인덱스 직전 까지 스텝 단위로 슬라이싱

  튜플(Tuple)

개념 : 초기 선언 값 이후의 값 생성, 삭제 수정이 불가능한 형태
선언 : 튜플명 = ( 요소1, 요소2, … )
튜플 인덱싱 : 인덱스를 이용한 접근방식
튜플 슬라이싱 : 리스트 슬라이싱과 개념 및 방식 동일

  딕셔너리(Dictionary)

개념 : 키와 값으로 구성된 객체를 저장하는 구조
선언 : 딕셔너리명 = { 1:1, 2:2, … }
딕셔너리형 요소 추가 : 딕셔너리명[] =
딕셔너리형 요소 삭제 : del 딕셔너리명[]

(4)  식별자(Identifier)

-      개념 : 변수, 상수, 함수 등을 서로 구분하기 위한 이름

-     명명 규칙

  사용 가능 문자 : 영문, 숫자, 밑줄, $의 사용이 가능

  변수 사용 규칙 : 첫 자리에는 숫자가 불가능, 이름 중간에 공백 사용 불가능

  변수 의미 부여 : 데이터 값의 의미나 역할을 표현, 예약어는 변수로 사용이 불가능

-     식별자 표기법

  카멜 표기법 : 첫 단어 시작만 소문자, 나머지 단어 시작은 대문자

  파스칼 표기법 : 각 단어의 첫 글자 대문자

  스네이크 표기법 : 각 단어 사이 밑줄

  헝가리안 표기법 : 두어에 자료형 붙임 ( int : n, char : c, 문자열 : sz )

2.   연산자

(1)  산술연산자(Arthmeic Operator) : +, -, *, /, %

(2)  시프트연산자(Shift Operator) : <<, >>

(3)  관계연산자(Relation Operator) : >, <, >=, <=, ==, !=

(4)  논리연산자(Logic Operator) : &&, ||

(5)  비트연산자(Bit Operator) : &, |, ^, ~

(6)  대입연산자(Assignment Operator) : =, +=, -=, 8=, /=, %=

(7)  증감연산자(Increment & Decrement Operator) : ++x, x++, --x, x—

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

3.   표준 함수

(1)  출력 함수

-     C언어

  단순 출력 : printf(문자열);

  개행 : printf(“\n”);

  변수 출력 : printf(포멧스트링, 변수);

포멧스트링 : %c, %s, %d, %x, %o, %f, %전체자리수.소수점자리수f

-     C++

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

  개행 : std::endl;

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

-     자바

  단순 출력

System.out.printf(문자열); - 포멧 스트링을 이용하여 변수 출력
System.out.print(
문자열); - 출력 후 개행을 하지 않음

  개행

System.out.print(“\n”);     /     System.out.pirntln(문자열);

  변수 출력

System.out.print(변수명);
System.out.println(
변수명);
System.out.printf(
포멧스트링, 변수명)

-     파이썬

  단순 출력 및 개행

print(문자열) - 출력 후 개행
print(
문자열,end=’ ‘) - 출력 후 개행하지 않음

  변수 출력

print(변수명)

(2)  입력 함수

-     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(변수명)

4.   명령문

(1)  조건문

-     IF

C, C++, 자바 파이썬
if (조건문){
 
명령문;
}
else if (
조건문){
 
명령문;
}
else{
 
명령문;
}
if 조건문 :
명령문
elif
조건문 :
명령문
else :
명령문

-     Switch

C, C++, 자바 파이썬
Switch () {
case
:
명령문;
break;
default :
명령문;
}
없음

 

(2)  반목문

-     while

C, C++, 자바 파이썬
while (조건문) {
명령문;
}
while 조건문 :
명령문

-     for

C, C++, 자바 파이썬
for (초기값; 최종값; 증감값) {
명령문;
}
for 변수 in range (시작값, 끝값+1) :
명령문
for 변수 in range (반복횟수) :
명령문

 

(3)  루프 제어 명령어

-     break : 반복문 중지

-     continue : SKIP 기능

5.   사용자 정의 자료형 활용

(1)  사용자 정의 자료형의 개념

-     열거체

  enum 열거체명{
 
맴버1,
 
맴버2,
 
};

-     구조체

  struct 구조체명{
 
자료형 변수명1;
 
자료형 변수명2;
 
};

6.   사용자 정의함수

(1)  C, C++, 자바

반환_데이터_타입 함수명 (데이터_타입 변수명, …){
 
명령어;
  return
반환값;
};

(2)  파이썬

def 함수명(변수명, …) :
 
명령어
  return
반환값

7.   재귀함수

(1)  C, C++, 자바

반환_데이터_타입 함수명 (데티어_타입 변수명, …){
 
 
함수명(변수명, …)
 
  return
반환값;
}

(2)  파이썬

def 함수명(변수명, …) :
 
 
함수명(변수명, …)
 
  return
반환값

8.   클래스(Class)

(1)  접근 제어자(Access Modifier)

-     public : 외부의 모든 클래스에서 접근 가능

-     protected : 자기 자신과 상속받은 하위 클래스 둘 다 접근이 가능

-     default : 자기 자신만 접근 가능, 자바에만 존재

-     private : 같은 클래스 내에서만 접근 가능

(2)  클래스 사용

-     클래스 정의

C++ 자바 파이썬
class 클래스명{
private:
 
변수_타입 변수명;
public:
 
반환_데이터 _타입 메서드명(데이터_타입 변수명, …){
   
명령어;
    return
반환값;
  }
};
public class 클래스명{
  private
변수_타입 변수명;
  public
반환_데이터_타입 메서드명(데이터_타입 변수명, …){
   
명령어;
    return
반환값;
  }
}
class 클래스명:
  def
메서드명(self, 변수명, …):
 
명령어
  return
반환값

 

-     자신 클래스 참조

  this 포인터 : C++, 자바에서 클래스 내부 변수와 함수 가르킴

C++ 자바
this -> 변수명;
this -> 함수명(매개변수);
this.변수명;
this.함수(매개변수);

 

  self : 파이썬에서 클래스 내부 변수와 함수 가르킴

self.변수명;

self.함수명(매개변수);

-     클래스 선언

  C++

일반 변수 클래스 클래스변수(매개변수); // 생성시
클래스변수.메서드(매개변수); // 클래스 내 메서드 사용
포인터 변수 사용 클래스* 클래스변수 = new 클래스(매개변수); // 생성시
클래스변수->메서드(매개변수); // 클래스 내 메서드 사용
delete 클래스변수; // 소멸시

 

  자바

클래스 클래스변수 = new 클래스(매개변수); // 생성시

클래스변수.finalize(); // 소멸시

  파이썬

클래스변수 = 클래스(매개변수) // 생성시

def 클래스변수 // 소멸시

(3)  생성자(Constructor)

C++ 자바 파이썬
class 클래스명{
public:
 
클래스명(데이터_타입 변수명, …){
   
명령어;
  }
}
public class 클래스명{
  public
클래스명(데이터_타입 변수명, …){
   
명령어;
  }
}
class 클래스명:
  def __init__(self,
변수명, …):
   
명령어

 

(4)  소멸자(Destructor)

C++ 자바 파이썬
class 클래스명{
public:
  ~
클래스명(){
   
명령어;
  }
};
public class 클래스명{
  public void finalize(
매개변수){
   
명령어;
  }
}
calass 클래스명 :
  def __del__(self):
   
명령어

 

(5)  상속(Inheritance)

C++ 자바 파이썬
class 부모_클래스명{
};
class
자식_클래스명 : public 부모_클래스명{
};
class 부모_클래스명{
}
class
자식_클래스명 extends 부모_클래스명{
}
class 부모_클래스명:
  -
class
자식_클래스명(부모_클래스명) :
  -

 

-     오버로딩(Overloading)

  개념 : 동일 이름의 메서드를 매개변수만 다르게 하여 여러 개 정의하는 기능

  특징

파이썬에서는 오버로딩 기능 지원 X
메서드 이름이 동일해야 함
매개변수 개수가 다르거나, 개수가 같더라도 데이터 타입이 달라야 한다.

-     오버라이딩(Overriding)

  개념 : 하위 클래스에서 상위 클래스 메서드를 재정의하는 기능

  특징

C++에서는 virtual 키워드가 있어야 오버라이딩 가능
오버라이드하고자 하는 메서드가 상위 클래스에 존재 해야 함
메서드 이름은 같아야 함
메서드 매개변수 개수, 데이터 타입, 반환형이 같아야 한다

-     상위 클래스 접근

  C++ : 부모_클래스 :: 매서드명()

  자바 : super.매서드명()

  파이썬 : super().매서드명()

(6)  추상 클래스

C++ 자바 파이썬
class 클래스명{
public:
  virtual
데이터_타입 메서드명()=0;
};
abstract class 클래스명{
  abstract
데이터_타입 메서드명();
}
class 클래스명 :
  def
메서드명(self):
    pass

 

(7)  인터페이스

-     자바에서만 사용

-     추상 메서드와 상수만을 맴버로 가짐

-     선언

interface 클래스명 {
 
데티어_타입 메서드명():
}

-     상속받을 때

class 상속받을_클래스 implements 상속할_클래스{
}

II.   언어 특성 활용하기

1.   프로그래밍 언어의 언어별 특성

(1)  프로그래밍 언어의 유형 분류

-     개발편의에 따른 분류

  저급 언어 : 기계가 이해할 수 있도록 만들어진 언어

  고급 언어 : 개발자가 소스 코드 작성시 쉽게 이해할 수 있도록 만들어진 언어

-     실행하는 방식에 따른 분류

  명령형 언어 : 저장된 명령어들이 순차적으로 실행되는 절차형 언어

  객체지향 언어 : 객체간 메시지 통신 이용

  함수형 언어 : 수학적 수식과 같은 함수들로 프로그램을 구성하여 호출

  논리형 언어 : 논리 문장을 이용하여 프로그램을 표현하고 계산을 수행

-     구현 기법에 따른 분류

  컴파일 방식의 언어 : 고급 언어를 기계어로 번역

  인터프리터 방식의 언어 : 고급 언어 명령문을 하나씩 번역하고 실행

  혼합형 방식의 언어 : 고급 언어를 컴파일하여 중간 언어로 변환 후 인터프리터에 의해 번역을 실행

(2)  프로그래밍 언어별 특성

-     절차적 프로그래밍 언어 종류

  ALGOL, C언어, BASIC, FORTRAN

-     객체지향 프로그래밍 언어 종류

  C++, C#, JAVA, Delphi

-     스크립트 언어 종류

   PHP, Perl, Python, Javascript

-     선언형 언어 종류

  함수형 언어 : Haskell, LISP

  논리형 언어 : Prolog

  특수 분야 언어 : SQL

(3)  객체지향 프로그래밍

-     객체 지향 프로그래밍 구성요성 : 객클매(객체, 클래스, 메시지)

-     객체 구성요소 : 개속메(개체, 속성, 메서드)

2.   라이브러리 활용

(1)  라이브러리(Library)

-     개념 : 필요할 때 찾아서 쓸 수 있도록 모듈화되어 제공되는 프로그램

-     구성 : 도설샘(도움말, 설치 파일, 샘플 코드)

-     종류 : 표준 라이브러리, 외부 라이브러리

-     기능 : 문자열 연산 기능, 문자열 탐색/치환 기능, 수치 계산 기능, 난수 생성 기능, 파일 경로 조작 기능, 디렉터리 생성 기능, 날짜 조작 기능, 로그 출력 기능

(2)  모듈과 패키지

-     모듈(Module) : 전역변수, 함수 등을 모아둔 파일 / import 모듈명

-     패키지(Package) : 모듈을 디렉터리 형식으로 구조화 / import 패키지명.모듈명

반응형

'자격증 > 정처기' 카테고리의 다른 글

정처기 실기 파트8  (0) 2022.07.10
정처기 실기 파트7  (0) 2022.07.10
정처기 실기 파트5  (0) 2022.07.10
정처기 실기 파트4  (0) 2022.07.10
정처기 실기 파트3  (0) 2022.07.10