정보처리 요약정리 2-1장 ✔

서린·2024년 3월 24일
0

정보처리산업기사

목록 보기
5/8
post-thumbnail

2과목 프로그래밍 언어 활용

C/C++ 데이터 타입과 크기


변수명 작성 규칙

  • 첫 글자로 숫자는 올 수 없다.
  • 공백이나 *, +, -, /등의 특수문자를 사용할 수 없다.
  • 예약어를 변수명으로 사용할 수 없다.

상수의 생성

  • C언어에서 상수를 만들 때는 const 또는 #difine 예약어를 사용한다.

외부변수

  • 변수나 함수를 참조(reference)하기 위한 변수이다.
  • 함수가 종료된 뒤에도 값이 소멸되지 않는다.

산술 연산자

연산자의미비고
%나머지정수만 연살할 수 있으며, 실수를 사용하면 오류가 발생함
++증가전치 : 변수 앞에 증감 연산자가 오는 형태로 먼저 변수의 값을 증감시킨 후 변수를 연산에 사용함(++a, --a)
--감소후치 : 변수 뒤에 증감 연산자가 오는 형태로 먼저 변수를 연산에 사용한 후 변수의 값을 증감시킴(a++,a--)

관계 연산자

 == : 같다
 != : 같지 않다
 > : (왼쪾이)크다
 >= : (왼쪽이)크거나 같다
 < : (왼쪽이)작다
 <= : (왼쪽이)작거나 같다

비트 연산자

 &(and) : 모든 비트가 1일때만 1
 ^(xor) : 모든 비트가 같으면 0, 하나라도 다르면0
 |(or) : 모든 비트 중 한 비트라도 1이면 1
 ~(not) : 각 비트의 부정, 0이면 1, 1이면 0
 << (왼쪽 시프트) : 비트를 왼쪽으로 이동
 >> (오른쪽 시프트) : 비트를 오른쪽으로 이동

논리 연산자

  • !(not) : 부정
  • &&(and) : 모두 참이면 참
  • ||(or) : 하나라도 참이면 참

조건 연산자

  • 조건에 따라 서로 다른 수식을 수행한다
mx = a < b ? b : a;

a가 b보다 작으면 mx에 b를 저장하고 그렇지 않으면 mx에 a를 저장한다.


연산자 우선순위


scanf()함수

  • 키보드로 입력받아 변수에 저장하는 함수이다
scanf("%d %f", $i, $j);

정수를 입력받아 i에 저장하고, 실수를 입력받아 j에 저장한다.


주요 서식 문자열

  • %d : 정수형 10진수를 입 출력하기 위해 지정함
  • %o : 정수형 8 진수를 입 출력하기 위해 지정함
  • %x : 정수형 16진수를 입 출력하기 위해 지정함
  • %c : 문자를 입 출력하기위해 지정함
  • %s : 문자열을 입 출력하기 위해 지정함
  • %f : 소수점을 포함하는 실수를 입 출력하기 위해 지정함

prinf()함수

  • 인수로 주어진 값을 화면에 출력하는 함수이다.
printf("%d, %c", a, b);

a의 값을 정수로 출력하고 쉼표(,)와 공백 한 칸을 띄운 후, b의 값을 문자로 출력한다.


주요 제어문자

  • \n : 다음 줄 앞으로 이동함
  • \b : 왼쪽으로 한 칸 이동함
  • \t : 일정 간격 띄움
  • \r : 현재 줄의 처음으로 이동함
  • \0 : 널 문자를 출력함
  • \a : 스피커로 벨 소리를 출력함
  • \ : 역 슬래시를 출력함
  • \f : 한 페이지를 넘김

Java에서의 표준 출력

  • printf()
System.out.printf("%d", r);

r의 값을 10진수 정수로 출력한다

  • print()
System.out.print(r+s);

r과 s를 더한 값을 출력한다.

  • println()
System.out.println(r+"은 소수");

r의 값과 은 소수를 출력한 후, 커서를 다음 줄의 처음으로 옮긴다.


기타 표준 입 출력 함수

  • getchar() : 키보드로 한 문자를 입력받아 변수에 저장 하는 함수
  • gets() : 키보드로 문자열을 입력받아 변수에 저장하는 함수로, enter를 누르기 전까지를 하나의 문자열로 인식하여 저장함
  • putchar() : 인수로 주어진 한 문자를 화면에 출력하는 함수
  • puts() : 인수로 주어진 문자열을 화면에 출력한 후 커서를 자동으로 다음줄 앞으로 이동하는 함수

파일 입력 함수

  • fscanf() : 파일 포인터 변수가 가리키는 위치에서 데이터를 가져와 지정한 자료형으로 변수에 저장하는 함수
  • fgetc() : 파일로부터 한 문자를 입력받아 변수에 저장하는 함수
  • fgets() : 파일로부터 문자열을 입력받아 변수에 저장하는 함수

단순 if문

  • 조건이 한 개 일때 사용하는 제어문이다.
  • 조건이 참일 때만 실행하는 경우
if(a>b)
   printf("Gilbut");

a가 b보다 크면 Gilbut을 출력하고, 아니면 if문을 벗어난다.

  • 조건이 참일 때와 거짓일 때 실행할 문장이 다른경우
if(a>b)
  printf("참");
else
  printf("거짓");

a가 b보다 크면 참을 출력하고, 아니면 거짓을 출력한다.


switch문

  • 조건에 따라 분기할 곳이 여러 곳인 경우 간단하게 처리할 수 있는 제어문이다.
  • breack문이 생략되면 수식과 레이블이 일치할 때 실행 할 문장부터 break문 또는 switch 문이 종료될 때까지 모든 문장이 실행된다.
switch(a){
  case 1:
    printf("바나나");
    break;
  case 2:
    printf("딸기");
    break;
  default:
    printf("없음");
}
  • a가 1이면 바나나를 출력하고 switch문을 탈출한다. a가 2면 딸기를 출력하고 switch문을 탈출한다 a가 1이나 2가 아니면 없음을 출력하고 switch문을 탈출한다.

for문

  • 초기값, 최종값, 증가값을 지정하는 수식을 이용해 정해진 횟수를 반복하는 제어문이다.
for(i = 1; i<=10; i++)
  sum=sum+i;
  • 반복 변수 i가 1부터 1씩 증가하면서 10보다 작거나 같은 동안 sum에 i의 값을 누적시킨다.

while문

  • 조건이 참인 동안 실행할 문장을 반복 수행하는 제어문이다
while(i<=10)
  i=i+1;

i가 10보다 작거나 같은 동안 i의 값을 1씩 누적시킨다.


do~while문

  • 조건이 참인 동안 정해진 문장을 반복 수행하다가 조건이 거짓이면 반복문을 벗어난다.
  • 실행할 문장을 무조건 한 번 실행한 다음 조건을 판단하여 탈출 여부를 결정한다.
do
  i=i+i;
while(i<=10);

1차원배열

  • 변수들을 일직선상의 개념으로 조합한 배열이다.
char a[3] = {"A","B","C"};

3개의 요소를 갖는 문자형 배열 a를 선언한다.


2차원배열

  • 변수들을 평면, 즉 행과 열로 조합한 배열이다.
int b[2][3] = {{11,22,33}, {44,55,66}}

2개의 행과 3개의 열을 갖는 정수형 배열b를 선언한다.


배열 형태의 문자열 변수

  • C언어에서는 큰따음표(" ")로 묶인 글자는 글자 수에 관계없이 문자열로 처리된다.
  • 배열에 문자열을 저장하면 문자열의 끝을 알리기위한 널 문자("\0")가 문자열 끝에 자동으로 삽입된다
char a[5] = "love";

5개의 요소를 갖는 문자형 배열 a를 선언하고, "love"로 초기화 한다.


포인터와 포인터 변수

  • 포인터 변수를 선언할 때는 자료의 형을 먼저 쓰고 변수명 앞에 간접 연산자 를 붙인다(int a;)
  • 포인터 변수에 주소를 저장하기 위해 변수의 주소를 알아낼 때는 변수 앞에 번지 연산자 &를 붙인다(a = &b;)
  • 실행문에서 포인터 변수에 간접 연산자 를 붙이면 해당 포인터 변수가 가리키는 곳의 값을 말한다(c = a;)

포인터와배열

  • 배열을 포인터 변수에 저장한 후 포인터를 이용해 배열의 요소에 접근할 수 있다.
  • 배열 위치를 나타내는 첨자를 생략하고 배열의 대표명만 지정하면 배열의 첫 번째 요소의 주소를 지정하는 것과 같다

사용자 정의 함수

  • 사용자가 필요한 기능을 취향대로 만들어 사용할 수 있는 함수이다.


Python의 기본 문법

  • if나 for와 같이 코드 블록을 포함하는 명령문을 작성할때 코드 블록은 콜론(:)과 여백으로 구분한다.
  • 문자열에 따옴표가 포함되는 경우 다른 따옴표를 이용하여 문자열을 묶어줘야 한다.
'She said"i like it"'

Python의 print()함수

  • 인수로 주어진 값을 화면에 출력하는 함수이다.
print(82,24,sep = '-', end = '.')

82와 24 사이에 분리문자 '-'가 출력되고, 마지막에 종료문자 '.'가 출력된다.
결과는 82-24.


Range

  • 연속된 숫자를 생성하는 것으로, 리스트, 반복문 등에서 많이 사용된다.

슬라이스

  • 문자열이나 리스트 같은 순차형 객체에서 일부를 잘라(slicing)반환하는 기능이다.
  • a = ["a","b","c","d","e"]일때
    a[1:3] -> ["b","c"]
    a[1:3] -> ["b","c"]
    a[3:] -> ["d","e"]
    a[:3] -> ["a","b","c"]
    a[::3] -> ["a","d"]

Python의 for문

  • range를 이용하는 방식
for i in range(1,11):
sum = sum+i

i에서 1부터 10까지 순서대로 저장하여 sum에 i의 값을 누적시키는 실행문을 반복 수행한다

  • 리스트(List)를 이용하는 방식
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for i in a:
 sum = sum+i

a 리스트에 저장된 10개의 요소를 i에 순서대로 저장하며 sum에 i의 값을 누적시키는 실행문을 반복 수행한다.


Python의 클래스

  • 클래스를 사용하려면 클래스 이름을 정하고 객체 생성을 위한 속성과 메소드(함수)를 정의한 후, 객체를 선언하면 된다.

HTML - 프레임의 주요 태그

<frameset>태그
  - 화면을 분할 한다.
  - <framset>...</framset>태그 사이에는 분할한 프레임의 개수만큼 <frame>태그를 사용한다.
<frame>태그
  - 분할된 각각의 프레임에 표시할 HTML 문서를 지정한다.
  - <frameset>으로 분할된 영역에 <frame>태그가 적용되는 순서는 다음과 같다
      - 화면이 가로로 분할된 경우 : 위쪽 -> 아래쪽
      - 화면이 세로로 분할된 경우 : 왼쪽 -> 오른쪽
 - 분할된 프레임의 개수는 <frameset>의 rows 또는 cols속성으로 알 수 있다.
      - rows="20%,*" -> 2개, cols="200,*,500" -> 3개

TML - 테이블의 주요 태그

  • table : 테이블에 관한 세부사항을 설정함
  • thead : 테이블의 머리글 부분을 정의함
  • tbody : 테이블의 본문 부분을 정의함
  • tfoot : 테이블의 바닥글 부분을 정의함
  • tr : 행을 만듦
  • td : 셀을 만듦
  • th : 셀을 만들면서 제목 스타일을 적용함

HTML - style 태그

  • 서식을 지정하는 태그로, head부분에 지정하면 테이블 전체에 공통으로 적용된다
  • 선택자 {속성1:속성값1, 속성2:속성값2 ,,}
    • 선택자 : 요소 중 일부에만 서식을 지정할 때 사용하는 옵션으로, 생략이 가능함
    • first-child : 첫번째 요소에 적용
    • last - child : 마지막 요소에 적용
    • nth - child(n) : n번째 요소마다 적용
  • 속성:속성값 : 요소에 적용할 속성과 속성값을 입력함. 2개이상의 속성을 지정할 때는 세미콜론(:)을 이용하여 구분함

HTML - form태그

  • 사용자로부터 정보를 입력받는 틀을 정의한다
  • 관련속성
    • method : 데이터 전송 방식을 지정함
      get: 입력받은 데이터를 URL에 첨부하여 전송함
      post : 입력받은 데이터를 메시지 형식으로 전송함
    • action : 데이터를 전송할 URL을 지정함

JavaScript - document.write()

  • 가장 일반적인 출력 메소드로, 인수로 출력할 데이터를 입력하면 화면에 데이터가 출력된다.
  • document.write("Sinagong"); -> 화면에 Sinagong이 출력됨

JavaScript - 대화상자

  • 알림 대화상자
alert(내용); // 화면에 내용이표시되고 확인버튼이 생김
  • 확인 대화상자
confirm(내용); // 화면에 내용이 표시되고 확인과 취소 버튼이 생김
  • 입력 대화상자
prompt(내용, 기본값); // 화면에 내용이 생기고 입력텍스트가 표시된다 밑에는 확인과 취소가 생김

JavaScript - 배열의 주요 메소드

  • pop() : 배열의 마지막 요소를 제거함
  • push() : 배열의 마지막에 요소를 추가함
  • join() : 배열의 모든 요소를 하나의 문자열로 변환함
  • shift() : 배열의 첫번째 요소를 제거함
  • splice () : 배열에서 지정한 범위의 요소를 제거한 후 제거된 위치에 지정한 값을 저장함

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

  • JAVA
    • 분산 네트워크 환경에 적용할 수 있다.
    • 캡슐화가 가능하고 재사용성 높다.
  • C++ : C 언어에 객체지향 개념을 적용한 언어
  • Smalltalk : 1세대 객체지향 프로그래밍 언어 중 하나로 순수한 객체지향 프로그래밍 언어

객체지향 프로그래밍 언어의 구성 요소

  • 객체(Object) : 데이터(속성)와 이를 처리하기 위한 연산(메소드)을 결합시킨 실체
  • 클래스(Class) : 두 개 이상의 유사한 객체들을 묶어서 하나의 공통된 표현하는 요소

객체지향 프로그래밍 언어의 주요 특징

  • 캡슐화(Encapsulation) : 데이터(속성)와 함수를 하나로 묶는 것
  • 상속성(Inheritance) : 이미 정의된 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는것

스크립트 언어의 종류

  • 자바스크립트 : 웹 페이지의 동작을 제어하는 데 사용되는 클라이언트용 스크립트 언어
  • PHP : Linux, Unix, Windows 운영체제에서 사용가능한 서버용 스크립트 언어
  • 파이썬(Python) : 귀도 반 로섬이 발표한 대화형 인터프리터 언어
  • 쉘 스크립트 : 쉘에서 사용되는 명령어들의 조합으로 구성된 스크립트 언어
  • Basic : 절차지향 기능을 지원하는 대화형 인터프리터 언어

쉘 스크립트에서 사용되는 제어문

  • 선택형 : if, case
  • 반복형 : for, while, until

JavaScript 프레임워크의 종류

  • jQuery : 웹 브라우저 간의 호환성 문제를 해결하고 명령어를 단순화한 프레임워크
  • React : 메타(META)에서 개발한 프레임워크
  • Angular : 구글(Gogle)에서 개발한 프레임워크
  • Node.js : 인터넷 브라우저 외에도 JavaScript가 동작하도록 함
  • Ember : 웹 애플리케이션을 위한 다양한 기능 제공

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

  • math.h

    • 수학 함수들을 제공한다
    • 주요 함수 : sqrt, pow, abs 등
  • stdlib.h

    • 자료형 변환, 난수발생, 메모리 할당에 사용되는 기능들을 제공한다.
    • 주요 함수 : atoi, atof, srand, rand, malloc, free등

    try~catch문

  • C++, C#,Java,JavaScript 등의 언어에서 예외처리 기능을 수행하는 명령문이다.

  • 일반적으로 예외가 발생한 경우에는 'try문 ->해당예외catch문 ->finally'순으로 진행한다.

  • finally블록은 예외의 발생과 관계없이 무조건 수행되는데, C++에서는 사용할 수 없다


    프레임워크의 특성

  • 모듈화(Modularity) : 캡슐화를 통해 모듈화를 강화하고 설계 및 구현의 변경에 따른 영향을 최소화 함으로써 소프트웨어의 품질을 향상시키고 유지보수를 용이하게함

  • 재사용성(Reusability) : 재사용 가능한 모듈들을 제공함으로써 예산절감, 생산성 향상, 품질 보증이 가능함

  • 확장성(Extensibility) : 다형성(Polymorphism)을 통한 인터페이스 확장이 가능하여 다양한 형태와 기능을 가진 애플리케이션 개발이 가능함

  • 재어의 역흐름(Inversion of Control) : 개발자가 관리하고 통제해야 하는 객체들의 제어를 프레임워크에 넘김으로써 생산성을 향상시킴

profile
개발 일기 ( •̀ ω •́ )✧

0개의 댓글

관련 채용 정보