📌 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가 바로 사라지지 않고, 프로그램이 종료되면 사라짐
#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
}
}
- 배열 : 같은 타입의 변수들로 이루어진 집합
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}};
#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
}
}