상세 컨텐츠

본문 제목

정보처리기사 4과목 프로그래밍 언어 활용 - 2장 프로그래밍 언어 활용 요점 정리

정보처리기사 필기

by E_ONION 2020. 6. 5. 02:28

본문

1. 데이터 타입

- 정수 타입(Integer Type) : 정수

- 부동 소수점 타입(Floating Pint Type) : 소수점 이하가 있는 실수 저장

- 문자 타입(Character type) : ''

- 문자열 타입(Character String type) : ""

- 불린 타입(Boolean Type) : 참, 거짓(기본값)

- 배열 타입(Array Type) : {1,2,3,4,5}

C/C++

JAVA

2. 변수

● 개요 : 컴퓨터가 명령을 처리하는 도중 발생하는 값을 저장하기 위한 공간으로, 변할 수 있는 값

● 작성 규칙

-영문자, 숫자, _를 사용

- 첫 글자 영문자나 _로 시작, 숫자 X

- 글자 수 제한 X

- 공백, 특수문자 X

- 예약어 X

- 문장 끝 세미콜론 필수

● 기억 클래스

3. 연산자

● 산술 연산자 : +, - ,*(곱셈), /(나눗셈), %(나머지), ++(증가 연산자), --(감소 연산자)

● 관계 연산자 : 두 수의 관계를 비교하여 또는 거짓 결과로 얻는 연산자

==(같다), !=(같지 않다), >(크다), >=(크거나 같다), <, <=

● 비트 연산자 : 비트별(0, 1)로 연산하여 결과를 얻는 연산자

&(AND), ^(XOR), |(OR), ~(NOT), <<(왼쪽 시프트), >>

● 논리 연산자 : 두 개의 논리 값을 연산하여 참 또는 거짓 결과로 얻는 연산자

!(NOT), &&(AND), ||(OR)

● 대입 연산자 : 연산 후 결과를 대입하는 연산식을 간략하게 입력할 수 있도록 대입 연산자를 제공

+=, -=, *=, /=, %=, <<=, >>=

● 조건 연산자 : 조건에 따라 서로 다른 수식을 수행

조건 ? 수식1 : 수식2; = 조건의 수식이 참이면 수식1 거짓이면 수식2 진행

● 기타 연산자

- sizeof(자료형 크기 표시)

- ,(콤마)

- (자료형)

연산자 우선순위

4. 제어문

● 개념 : 프로그램의 순서를 변경할 때 사용

- IF문, 다중 IF문, SWITCH문, GOTO문, 반복문

5. 반복문

● 개요 : 제어문의 한 종류로 일정한 횟수를 반복하는 명령문

- FOR, WHILE, DO~WHILE

● for문 : 초기값, 중기값, 증가값을 지정하는 수식을 이용해 정해진 횟수 반복, for( ; ; ) = 무한 반복

● while문 : 조건이 참인 동안 실행할 문장을 반복 수행하는 제어문

- 조건이 거짓이면 끝낸 후 다음 코드 수행, 조건이 처음부터 거짓이면 한 번도 수행하지 않음

● do ~ while문 : 문장을 무조건 한 번 수행한 후 조건을 판단하여 탈출 여부 결정

● break : switch문이나 반복문 안에 break가 나오면 블록을 벗어남

● continue : continue 이후의 문장을 실행하지 않고 제어를 반복문의 처음으로 옮김, 반복문에서만 사용

6. 배열과 문자열

● 배열의 개념 : 동일한 데이터 유형을 여러 개 사용해야 할 경우 이를 손쉽게 처리하기 위해

                      여러 개의 변수들을 조합해서 하나의 이름으로 정의해 사용하는 것을 말함

- 개별적인 요소들의 위치는 첨자를 이용하여 저장, 대괄호 지정

- 0부터 시작

- 행 우선으로 데이터가 기억장소에 할당

- C언어에서 배열 위치 나타내는 첨자 없이 배열 이름 사용 시 배열의 첫 번째 요소의 주소를 지정

● 1차원 배열 : 일직선상의 개념으로 조합한 배열

● 2차원 배열 : 평면, 즉로 조합

● 배열의 초기화 : 배열 선언 시 초기값 지정 가능

- 배열 크기 생략하는 경우 반드시 초기값 지정해야 함

● 배열 형태의 문자열 변수

- C언어에는 문자열을 저장하는 자료형이 없기 때문에 배열 or 포인터 이용하여 처리

- 배열에 문자열 저장 시 문자열 끝에는 문자가 문자열 에 자동으로 삽입

- 배열 선언 시 초기값으로 지정해야 하며, 이미 선언된 배열에 문자열 저장 불가

- 널 문자까지 고려하여 배열 크기 지정

7. 포인터

● 포인터 : 변수의 주소, C언어에서는 주소를 제어할 수 있는 기능 제공

● 포인터 변수 : C언어에서 변수의 주소를 저장할 때 사용하는 변수

- 선언 시 : int *a // * = 간접 연산자

- 주소 저장 시 : a = &b // & = 번지 연산자

- 실행문에서 포인터 변수에 간접 연산자 붙이면 해당 포인터 변수가 가리키는 말함 // c = *a

- 동적으로 할당되는 메모리 영역인 힙 영역에 접근하는 동적 변수

- 용도 : 연결 자료 구조 구성, 동적으로 할당된 자료 구조, 배열을 인수 전달, 문자열 표현, 메모리에 접근, 요소 효율적 저장

● 포인터와 배열 : 배열을 포인터 변수에 저장한 후 포인터를 이용해 배열의 요소에 접근 가능

- 첨자 생략하고 배열의 대표명만 지정 시 배열 첫 번째 주소 지정

- 배열 요소에 대한 주소 지정 시 일반 변수와 동일하게 & 연산자 사용

8. 절차적 프로그래밍 언어

● 개요 : 일련의 처리 절차를 위해 정해진 문법에 따라 순서대로 기술해나가는 언어

- 프로그램 실행되는 절차 중시, 데이터 중심으로 프로시저 구현, 프로그램 전체가 유기적으로 연결

- 자연어 가까운 단어와 문장

- 과학 계산, HW 제어에 주로 사용

● 절차적 프로그래밍 언어의 장단점

- 실행 속도 빠름, 같은 코드 복사하지 않고 다른 위치에서 호출하여 사용 가능

- 모듈 구성 용이, 구조적 프로그래밍 가능

- 프로그램 분석 어렵, 유지 보수 및 코드 수정 어렵

● 절차적 프로그래밍 종류 : C, ALGOL, COBOL, FORTRAN

9. 객체지향 프로그래밍 언어

● 개요 : 현실 세계의 개체를 기계의 부품처럼 객체로 만들어 조립하듯 프로그램을 작성할 수 있도록 한 프로그래밍 기법

- 프로시저 보다는 명령과 데이터로 구성된 객체 중심, 한 프로그램을 다른 프로그램에 이용 가능

● 객체지향 프로그래밍 언어 장단점

- 재사용 확장 용이, 코드 재활용성 높음, 분석 설계 쉽고 효율적 가능, 사용자 개발자 사이 이해 쉬움, 대형 PRGM 작성 용이

- 개발 및 유지보수 용이, 프로그래밍 구현 지원하는 정형화된 분석 및 설계 방법 없음, 처리 시간 지연

● 종류 : JAVA, C++, Smalltalk

● 구성 요소

- 객체 : 데이터(속성)와 연산(메소드) 결합

- 클래스 : 두 개 이상의 유사한 객체들을 묶어서 하나의 공통된 특성을 표현

- 메시지 : 객체들 간에 상호작용하는데 사용되는 수단 객체의 메소드를 일으키는 요구 사항

● 메소드 : 연산, 동작, 함수 / 데이터 : 속성, 변수, 자료 구조

● 객체지향 프로그래밍 언어의 특징 : 캡슐화, 정보 은닉, 추상화, 상속성, 다형성

10. 스크립트 언어

● 개요 : HTML 문서 안에 직접 프로그래밍 언어를 삽입하여 사용하는 것

- 기계어로 컴파일 되지 않고 별도의 번역기 소스를 분석하여 동작하는 언어

- DB 처리 작업 수행 위해 주로 사용

- 클라이언트 스크립트 언어 : 클라이언트 웹 브라우저에서 해석되어 실행 ex) ASP, JSP, PHP, 파이썬

- 서버용 스크립트 언어 : 서버에서 해석되어 실행된 후 결과만 클라이언트로 보냄 ex) 자바 스크립트

● 장단점

- 결과 바로 확인 가능, 배우고 코딩 쉬움, 개발 시간 짧음, 쉽고 빠르게 수정 가능

- 느림, 오류 많이 발생

● 종류 : 자바 스크립트, ASP, JSP, PHP, 파이썬(대화형 인터프리터 언어)

11. 선언형 언어

: 프로그램이 수행해야 할 문제를 기술하는 언어 <-> 명령형 언어 : 문제를 해결하기 위한 방법 기술

- 목표 명시, 알고리즘 명시 X

- 함수형 언어 : 수학적 함수 조합하여 문제 해결, 알려진 값 함수에 적용, 적용형 언어, 재귀호출 병렬처리 유리 ex) LISP

- 논리형 언어 : 기호 논리학 기반, 논리 문장 이용, 선언적 언어, 비절차적 언어 ex) PROLOG

● 명령형 언어 : 폰 노이만 구조 기초, 목표 명시 X, 알고리즘 명시, 개체의 동작과 상태 중시, 절차적 언어, 객체지향 언어

ex) C, JAVA, COBOL, FORTRAN

● 선언형 언어 장단점 : 가독성 재사용성 좋음, 오류 적음, 동작 변경하지 않고 관련 값 대체 가능

● 종류 : HTML, LISP, PROLOG, XML, Haskell

12. 라이브러리

● 개념 : 프로그램을 효율적으로 개발할 수 있도록 자주 사용 함수나 데이터들 미리 만들어 모아 놓은 집합체

- 필요할 때 언제든지 호출 가능

- 표준 라이브러리 : 기본적으로 포함되어 있는 라이브러리, 여러 종류의 모듈, 패키지 형태

- 외부 라이브러리 : 개발자들이 필요한 기능들을 만들어 인터넷 등에 공유해 놓은 것

● C언어의 대표적인 표준 라이브러리

- stdio.h(데이터 입출력), math.h(수학 함수), string.h(문자열 처리), stdlib.h(자료형 변환, 난수 발생, 메모리 할당),

time.h(시간 처리)

● JAVA의 대표적인 표준 라이브러리

- java.lang(인터페이스, 자료형, 예외 처리), java.util(날짜 처리, 난수 발생, 복잡한 문자열 처리)

- java.io(파일 입출력), java,net(네트워크 관련 기능), java.awt(사용자 인터페이스)

13. 데이터 입 출력

● scanf() : C언어의 표준 입력 함수, scanf("%3d", &a);

● printf() : C언어의 표준 출력 함수, printf("%d", a);

● 기타 표준 입출력 함수

- 입력 : getchar(한 문자), gets(문자열) // 서식 문자열 사용 불가

- 출력 : putchar(한 문자), puts(문자열) // 이하동문

14. 예외 처리

개요: 프로그램의 정상적인 실행 방해하는 조건이나 상태예외라 하는데

           이러한 문제에 대비해 작성해 놓은 처리 루틴 수행는 것

- 일반적인 처리 루틴은 프로그램 종료나 로그를 남기는 것

- C++, Ada, JAVA, 자바 스크립트에는 예외 처리 기능 내장, 그 외 언어 필요한 경우 조건문 사용

● JAVA의 예외 처리 : 예외를 객체로 취급, java.lang 패키지에서 제공, try ~ catch 문 이용해 예외 처리 => finally로 이동

15. 프로토타입

● 개념 : 함수 원형이라는 의미, 컴파일러에게 사용될 함수에 대한 정보를 미리 알리는 것

- 함수가 호출되기 전 함수가 미리 정의되는 경우 프로토타입 정의하지 않아도 됨

- 본문이 없다는 점 제외하고 함수 정의와 형태가 동일

- 정의된 반환 형식은 함수 정의에 지정된 반환 형식과 반드시 일치

● C언어에서의 프로토타입 선언

- 예 1과 같이 main() 함수가 시작되기 함수를 정의한 경우 프로토타입 선언 안 해도 되지만

예 2와 같이 main() 함수가 시작된 함수를 정의한 경우에는 main() 함수 전에 사용될 함수에 대한 프로토타입을 선언해야 함

관련글 더보기

댓글 영역