Post

정보처리기사(필기) 📝 04. 프로그래밍 언어 활용

정보처리기사(필기) 📝 04. 프로그래밍 언어 활용

📌 1. 프로그래밍 언어 활용

✅ 1) 기본 문법 활용

♦️ 변수(Variable)

int sum = 0;

sum = sum + 1;

  • 데이터 타입은 변수에 저장될 데이터의 형식
  • int 크기는 4Byte로 -2,147,483,648 ~ 2,147,483,647까지 표현 가능
  • 변수의 크기 (문자)
TypeStorage SizeValue Range
char1 byte-128 to 127
unsigned char1 byte0 to 255
  • 변수의 크기 (정수): C언어
TypeStorage SizeValue Range
int4 bytes-2,147,483,648 to 2,147,483,647
unsigned int4 bytes0 to 4,294,967,295
short2 bytes-32,768 to 32,767
unsigned shorts2 bytes0 to 65,535
long4 bytes-2,147,483,648 to 2,147,483,647
unsigned long4 bytes0 to 4,294,967,295
long long8 bytes-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
  • 변수의 크기 (정수): Java
TypeStorage SizeValue Range
int4 bytes-2,147,483,648 to 2,147,483,647
unsigned int4 bytes0 to 4,294,967,295
short2 bytes-32,768 to 32,767
unsigned shorts2 bytes0 to 65,535
long8 bytes-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
  • 변수의 크기 (실수, Boolean)
TypeStorage SizeValue Range
float4 bytes1.2E-38 to 3.4E+38
double8 bytes2.3E-308 to 1.7E+308
long double10 bytes3.4E-4932 to 1.1E+4932
TypeStorage SizeValue Range
boolean1 bittrue or false

✏️ 비트와 바이트

Image

Image

♦️ 변수 이름

  • 변수는 컴퓨터가 명령을 처리하는 도중 발생하는 값을 저장하기 위한 공간
  • 변수의 종류: 정수형, 실수형, 문자형, 포인터형으로 구분
  • 작성 규칙:
    • 영문자, 숫자, _ 사용
    • 첫 글자는 영문자나 _만 가능, 숫자는 첫 글자에 올 수 없다.
    • 글자 수에 제한이 없다.
    • 공백이나 특수문자를 사용할 수 없다.
    • 대, 소문자를 구별한다.
    • 예약어를 변수명으로 사용할 수 없다.
    • 변수 선언 후에도 문장 끝에 세미콜론(;)을 붙여야 한다.

♦️ 예약어

  • 예약어는 정해진 기능을 수행하도록 이미 용도가 정해져 있는 단어로, 변수 이름이나 다른 목적으로 사용할 수 없다.

Image

♦️ 배열

  • 각각의 변수를 생성하지 않고, 동일한 데이터 타입의 데이터를 묶어서 하나릐 변수에 저장하고 싶은 경우에는 배열 타입을 이용하여 저장한다.

4개의 행, 3개의 열을 가지는 4X3 배열의 경우,

Array(0, 0)Array(0, 1)Array(0, 2)
Array(1, 0)Array(1, 1)Array(1, 2)
Array(2, 0)Array(2, 1)Array(2, 2)
Array(3, 0)Array(3, 1)Array(3, 2)
  • 배열 선언 방법:
    • int Array[4][3] - C
    • int[][] Array = new int[4][3] - Java

♦️ 연산자

  • 연산자는 프로그램 실행을 위해 연산을 표현하는 기호로, 프로그램 내에서는 +, -와 같은 연산자가 사용된다.
  • 연산자에는 산술 연산자, 시프트 연산자, 관계 연산자, 논리 연산자 등이 있으며 각 연산자는 다음과 같은 종류를 가진다.
    • 산술 연산자: 사칙연산 + %
    • 시프트 연산자:
      • << ⇒ 왼쪽 값을 오른쪽 값만큼 비트를 왼쪽으로 이동시킨다. (=*2의 n승)
      • >> ⇒ 왼쪽 값에 오른쪽 값만큼 부호 비트를 채우면서 왼쪽으로 이동시킨다. (=/2의 n승)
    • 관계 연산자: <, >, <=, >=, ==, != ⇒ True or False 반환
    • 비트 연산자:
      • ~A: NOT A
      • A&B
      • A|B
      • A^B: XOR ⇒ A와 B가 다를 때 참
    • 논리 연산자:
      • &&
      • ||
    • 대입 연산자:
      • a += 1
      • a -= 1
      • a *= 1
      • a /= 1
    • 기타 연산자
      • sizeof - 자료형의 크기 표시
      • 조건 ? 수식1 : 수식2

♦️ 제어문

  • if-else
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
void main() {
	int x = 20;
	int y = 22;
	
	if (x != y) {
		printf("x와 y가 같지 않습니다.")
	} else if (x > y) {
		printf("x가 y보다 큽니다."
	} else if (x < y) {
		printf("x가 y보다 작거나 같습니다."
	} else {
		printf("x가 y가 같습니다."
	}
}
  • switch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
void main() {
	int num = 1;
	switch (num + 1) {
		case 1:
					printf("첫 번째 위치 값은: %d₩n", num);
					break;
		case 2:
					printf("두 번째 위치 값은: %d₩n", num);
					break;
		case 3:
					printf("세 번째 위치 값은: %d₩n", num);
					break;
		default:
					printf("default 값은: %d₩n", num);
					break;
	}
}

♦️ 반복문

  • For
1
2
3
4
5
6
7
#include <stdio.h>
void main() {
	for (int i = 0; i < 5; i++)
		printf("%d₩n", i);
	}
	printf("끝");
}
  • While
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
void main() {
	int n = 0;
	while (n < 10) {
		n++;
		if (n % 2 == 1) continue; // continue 이후 문장을 실행하지 않고 반복문의 처음으로 감
		printf("%d는 짝수₩n", n);
	}
	printf("끝");
}
  • Do While
1
2
3
4
5
6
7
8
#include <stdio.h>
void main() {
	int n = 0;
	do {
		printf("while vs do-while₩n"); // 일단 실행
	} while (n == 1); //
	printf("do-while loop 밖");
}

♦️ 배열

  • C, Java에서의 배열 초기화
1
2
3
int array[5] = {3,2,5,4,1} // [3, 2, 5, 4, 1]
int array[5] = {3} // [3, 0, 0, 0, 0]
char array[5] = "abcd" // ["a", "b", "c", "d", ₩0]
  • List : 파이썬에서의 배열
-5-4-3-2-1
01234
32541
  • Data[0] ⇒ 3
  • Data[-1] ⇒ 1
  • Data[2:5] ⇒ 5 4 1
    • 2부터 5 직전까지
  • Data[-5:-2] ⇒ 3 2 5
  • Data[-5:-1:2] ⇒ 3 5
    • -5부터 -1 직전까지 2씩 건넘
  • Data[-5::2] ⇒ 3 5 1
    • -5부터 끝까지 2씩 건넘
  • Data[-1::-1] ⇒ 1 4 5 2 3
    • 역순

♦️ 입출력 함수

  • C 언어 데이터 입력
%d10진수%uUnsigned
%f실수%o8진수
%c문자%x16진수
%s문자열  
1
2
3
4
5
6
7
8
9
10
11
12
13
scanf(입력 받을 데이터의 자료형, 변수의 주소)

int a;
scanf("%4f", &a)
// input > 12.34 // 실제 값 > 12.3 (소수점 포함)

char b;
scanf("%c", &b)
// input > kohi // 실제 값 > k

char c[4];
scanf("%s", c)
// input > kohi // 실제 값 > kohi
1
2
3
4
5
6
7
8
9
10
11
char a[30];
scanf("%s", a); // 나는 코히야
printf("%s", a); // 나는

char a[30];
gets(a); // 나는 코히야
puts(a); // 나는 코히야

char b;
b = getchar(); // a
putchar(b); // a
  • Java 언어 데이터 입출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
System.out.println("Hello");
System.out.println("World");
// 출력 후 자동으로 줄바꿈(\n)을 포함
// Hello
// World

System.out.print("Hello ");
System.out.print("World");
// 줄바꿈 없이 출력
// Hello World

System.out.printf("이름: %s, 나이: %d", "kohi", 25);
// 형식 지정(formatting)이 가능한 출력
// printf("형식", 값); 형태로 사용
// 이름: kohi, 나이: 25

♦️ 절차적 VS 객체지향 프로그래밍

  • 절차적 프로그래밍
    • 일련의 처리 절차를 정해진 문법에 따라 순서대로 기술해 나가는 언어
    • BASIC, COBOL, C, FORTRAN 등
  • 객체지향 프로그래밍
    • 모든 데이터를 오브젝트로 프로그래밍 하는 방법으로, 처리 요구를 받은 객체가 자신 안에 있는 내용을 가지고 처리하는 방식
    • C++, Java, Python
  • 스크립트 언어 너무너무방가워…
    • HTML 문서 안에 직접 프로그래밍 언어를 삽입하여 사용하는 것으로, 컴파일 되지 않고 별도의 번역기가 분석하여 동작하게 하는 언어
    • 서버용: ASP, JSP, PHP, Python
    • 클라이언트용: JavaScript

📌 2. 응용 SW 기초 기술 활용

✅ 1) 운영체제

♦️ 운영체제의 정의

  • 컴퓨터 시스템의 자원(CPU, 주기억장치, 보조기억장치 등)을 효율적으로 관리하여 사용자가 효과적으로 사용할 수 있는 환경을 제공하는 프로그램
  • Windows, Mac, Linux, Android…

♦️ 운영체제의 목적

편리성효율성 ⇒ 성능 평가 기준제어 서비스 향상
편리한 환경 제공처리량 향상입출력 장치 관리
 반환 시간 단축시스템 오류 예방
 사용 가능도 향상 : 가동률 
 신뢰도 향상 

♦️ 운영체제의 분류

동시 사용자 수작업 처리 방법에 따라사용 환경에 따라
Single User SystemSingle Tasking SystemBatch Processing System
Multi User SystemMulti Tasking SystemTime Sharing System
  Distributed Processing System
  Real-Time System

♦️ Windows

  • Microsoft
  • 95, 98, ne, XP, Vista, 7, 8, 10
  • GUI (Graphic User Interface)
  • PnP (Pug and Play)
  • OLE (Object Linking and Embedding)

♦️ UNIX

  • AT&T, Bell 연구소, MIT
  • Time Sharing System 대화식 운영체제, 개방형 시스템(Open System)
  • Multi User, Multi Tasking 지원
  • Network 관리용 운영체제
  • 트리 구조의 파일 시스템을 갖는다
  • 대부분 C언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높다
This post is licensed under CC BY 4.0 by the author.