정보처리기사(필기) 📝 04. 프로그래밍 언어 활용
정보처리기사(필기) 📝 04. 프로그래밍 언어 활용
📌 1. 프로그래밍 언어 활용
✅ 1) 기본 문법 활용
♦️ 변수(Variable)
int sum = 0;
sum = sum + 1;
- 데이터 타입은 변수에 저장될 데이터의 형식
- int 크기는 4Byte로 -2,147,483,648 ~ 2,147,483,647까지 표현 가능
- 변수의 크기 (문자)
| Type | Storage Size | Value Range |
|---|---|---|
| char | 1 byte | -128 to 127 |
| unsigned char | 1 byte | 0 to 255 |
- 변수의 크기 (정수): C언어
| Type | Storage Size | Value Range |
|---|---|---|
| int | 4 bytes | -2,147,483,648 to 2,147,483,647 |
| unsigned int | 4 bytes | 0 to 4,294,967,295 |
| short | 2 bytes | -32,768 to 32,767 |
| unsigned shorts | 2 bytes | 0 to 65,535 |
| long | 4 bytes | -2,147,483,648 to 2,147,483,647 |
| unsigned long | 4 bytes | 0 to 4,294,967,295 |
| long long | 8 bytes | -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 |
- 변수의 크기 (정수): Java
| Type | Storage Size | Value Range |
|---|---|---|
| int | 4 bytes | -2,147,483,648 to 2,147,483,647 |
| unsigned int | 4 bytes | 0 to 4,294,967,295 |
| short | 2 bytes | -32,768 to 32,767 |
| unsigned shorts | 2 bytes | 0 to 65,535 |
| long | 8 bytes | -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 |
- 변수의 크기 (실수, Boolean)
| Type | Storage Size | Value Range |
|---|---|---|
| float | 4 bytes | 1.2E-38 to 3.4E+38 |
| double | 8 bytes | 2.3E-308 to 1.7E+308 |
| long double | 10 bytes | 3.4E-4932 to 1.1E+4932 |
| Type | Storage Size | Value Range |
|---|---|---|
| boolean | 1 bit | true or false |
✏️ 비트와 바이트
♦️ 변수 이름
- 변수는 컴퓨터가 명령을 처리하는 도중 발생하는 값을 저장하기 위한 공간
- 변수의 종류: 정수형, 실수형, 문자형, 포인터형으로 구분
- 작성 규칙:
- 영문자, 숫자, _ 사용
- 첫 글자는 영문자나 _만 가능, 숫자는 첫 글자에 올 수 없다.
- 글자 수에 제한이 없다.
- 공백이나 특수문자를 사용할 수 없다.
- 대, 소문자를 구별한다.
- 예약어를 변수명으로 사용할 수 없다.
- 변수 선언 후에도 문장 끝에 세미콜론(;)을 붙여야 한다.
♦️ 예약어
- 예약어는 정해진 기능을 수행하도록 이미 용도가 정해져 있는 단어로, 변수 이름이나 다른 목적으로 사용할 수 없다.
♦️ 배열
- 각각의 변수를 생성하지 않고, 동일한 데이터 타입의 데이터를 묶어서 하나릐 변수에 저장하고 싶은 경우에는 배열 타입을 이용하여 저장한다.
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
- a
- 기타 연산자
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 |
|---|---|---|---|---|
| 0 | 1 | 2 | 3 | 4 |
| 3 | 2 | 5 | 4 | 1 |
- 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 언어 데이터 입력
| %d | 10진수 | %u | Unsigned |
|---|---|---|---|
| %f | 실수 | %o | 8진수 |
| %c | 문자 | %x | 16진수 |
| %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 System | Single Tasking System | Batch Processing System |
| Multi User System | Multi Tasking System | Time 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.
