자격증/정보처리기사
정보처리기사 실기 스터디[2022-09-27] - 프로그래밍 언어 활용
머훈
2022. 9. 27. 22:46
📌 Study
🔸 2022-09-27
[프로그래밍 언어 활용]
1. 기본 문법 활용하기
진수
개념- 특정 개수의 숫자만을 이용하여 수를 나타내는 수 체계
- 10진수 이하일 때는 0 ~ 9, 10 진수 초과할 경우는 영어 알파벳 이용
10진수 |
16진수 |
---|---|
0 ~ 9 | 0 ~ 9 |
10 | A |
11 | B |
12 | C |
13 | D |
14 | E |
15 | F |
- 13을 2진수로 변환 => 13을 2로 나누어 나머지 읽기 =
1101(2)
- 201을 16진수로 변환 => 201을 16으로 나누어 나머지 읽기 =
C9
- 2진수 1101을 10진수로 변환 => 1 + 4 x 1 + 8 x 1 =
13
- 16진수 C9를 10진수로 변환 => 16 x 12 + 9 =
201
아스키 코드
: 미국 ANSI에서 표준화한 정보교환용 부호 체계- 영문 키보드로 입력할 수 있는 모든 기호 할당
10진수 | 부호 | 10진수 | 부호 |
---|---|---|---|
0 | NULL | 67 | C |
32 | ''(space) | 68 | D |
48 | 0 | 97 | a |
49 | 1 | 98 | b |
65 | A | 99 | c |
66 | B | 100 | d |
데이터 타입
: 프로그래밍 언어에서 실수형, 정수형과 같은 여러 종류의 데이터를 식별하는 형태
- 데이터 타입 유형
불린 타입 |
조건이 참(True)인지 거짓(False)인지 판단할 때 사용 | C++ : bool, 자바 : boolean |
---|---|---|
문자 타입 |
문자 하나를 저장하고자 할 때 사용 | char |
문자열 타입 |
나열된 여러 개의 문자를 저장하고자 할 때 사용 | C :char[], C++ :string, 자바 : String |
정수 타입 |
정숫값을 저장하고자 할 때 사용 | int |
부동 소수점 타입 |
소수점을 포함하는 실숫값을 저장하고자 할 때 사용 | float, double |
- 변수 개념 : 저장하고자 하는 어떠한 값이 있을 때, 그 값을 주기억장치에 기억하기 위한 공간
int a = 10;
a
=> 데이터가 들어갈 공간(변수명)10
=> 데이터 값
- 초깃값이 없는 경우 =>
데이터 타입 변수명;
,int a;
- 초깃값이 있는 경우 =>
데이터 타입 변수명 = 초깃값;
,int a = 10;
static
변수- 프로그램이 시작할 때 변수를 초기화하고, 프로그램이 종료되기 전까지 메모리가 유지되는 변수
- 변수를
static
으로 생성하면 처음에 한 번만 초기화되며, 함수에 의해서 변수 선언 부분이 여러 번 호출되더라도 초기화하지 않음
void fn() {
int a;
} // a 변수는 fn()이 종료됨과 동시에 사라짐, 허나 static을 사용하면
// 변수 a가 바로 사라지지 않고, 프로그램이 종료되면 사라짐
- C 언어
#include <stdio.h>
void increase() {
static int count = 0; // (static)처음 한 번만 count를 0으로 초기화
printf("count = %d \n", count);
count++;
}
void main() {
increase(); // count = 0
increase(); // count = 1
}
- 결과는
count = 0
,count = 1
(개행) - 만약, static이 없다면, 결과는
count = 0
,count = 0
(개행)
- 자바
class Soojebi {
static int count = 0;
}
public class SoojebiMain {
public static void main(String[] args) {
Soojebis = new Soojebi();
s.count++;
System.out.println(s.count); // 1
s.count++;
System.out.println(s.count); // 2
}
}
- 결과는
1
,2
(개행)
- 배열 : 같은 타입의 변수들로 이루어진 집합
int a[5] = {1, 2};
a[5]
=> 데이터가 들어갈 공간{1, 2}
=> 배열값(초기값)
a |
값 |
---|---|
a[0] | 1 |
a[1] | 2 |
a[2] | 0 |
a[3] | 0 |
a[4] | 0 |
- C, C++ 배열 선언
- 초깃값이 없는 경우 =>
타입 배열명[배열수];
,int a[5];
- 초깃값이 있는 경우 =>
타입 배열명[배열수] = {초깃값};
,int a[5] = {1, 2};
- 초깃값이 없는 경우 =>
- 자바 배열 선언
- 초깃값이 없는 경우 =>
타입 []배열명 = new 타입[배열수]
or타입 배열명[] = new 타입[배열수];
,int []a = new int[5];
- 초깃값이 있는 경우 =>
타입 []배열명 = {초깃값};
,int []a = {1, 2, 3, 4, 5};
- 초깃값이 없는 경우 =>
- 자바 length 속성 사용 예제
- a의 배열의 요소 개수를 물어보는 것
- 결과 :
3
class Soojebi {
public static void main (String[] args) {
int []a = new int [3];
System.out.println(a.length);
}
}
- 2차원 배열
int a[2][2] = {1};
a[2][2]
=> 데이터가 들어갈 공간(배열명){1}
=> 배열의 초기값
a | 값 |
---|---|
a[0][0] | 1 |
a[0][1] | 0 |
a[1][0] | 0 |
a[1][1] | 0 |
- C, C++ 배열 선언
- 초깃값이 없는 경우 =>
타입 배열명[행의 개수][열의 개수];
,int a[2][2];
- 초깃값이 있는 경우 =>
타입 배열명[행의 개수][열의 개수] = {초깃값};
,int a[2][2] = {1, 2};
- 초깃값이 없는 경우 =>
- 자바 배열 선언
- 초깃값이 없는 경우 =>
타입 [][]배열명 = new 타입[행의 개수][열의 개수]
or타입 배열명[][] = new 타입[행의 개수][열의 개수];
,int [][]a = new int[2][2];
- 초깃값이 있는 경우 =>
타입 [][]배열명 = {{초깃값}, {초깃값}, ...};
,int [][]a = {{1, 2}, {3, 4}};
- 초깃값이 없는 경우 =>
- 2차원 배열 예제
#include <stdio.h>
void main() {
int a[2][3] = {1, 2, 3, 4};
int i, j;
for(i = 0; i < 2; i++) {
for(j = 0; j < 3; j++) {
printf("%d", a[i][j]);
}
}
}
a | 값 |
---|---|
a[0][0] | 1 |
a[0][1] | 2 |
a[0][2] | 3 |
a[1][0] | 4 |
a[1][1] | 0 |
a[1][2] | 0 |
- 기출
public class Soojebi {
public static void main(String[] args) {
int[][] arr = new int[][] { {45, 50, 75}. {89} };
System.out.println(arr[0].length); // 3
System.out.println(arr[1].length); // 1
System.out.println(arr[0][0]); // 45
System.out.println(arr[0][1]); // 50
System.out.println(arr[1][0]); // 89
}
}