Part 01 . 프로그래밍 언어 활용
chapter01 알고리즘 구현
chapter02. 프로그래밍 언어 활용
1. 프로그래밍 언어
- 프로그래밍 언어 : 컴퓨터 시스템을 동작시키기 위한 프로그램 작성 언어
- Bit(비트) : 0과 1로만 구성된 이진법, 1Byte = 8Bit
- 컴퓨터 시스템 구조 : 중앙처리장치(CPU), 기억장치(Memory), 입출력장치(I/O Device)
- 중앙처리장치 단계 (4단계) : Fetch(인출) → Decode(해석) → Execute(실행) → Write Back(기록)
2.프로그래밍 언어 기본 문법 및 용어
- 기본 용어
- 변수 : 어떤 값을 주기억장치에 기억하기 위해서 사용하는 공간
- 식별자 : 프로그램의 구성요소를 구별하기 위한 기준, ex ) 변수명
- 바인딩 : 변수에 관련된 속성을 연결
- 정적 바인딩 : 프로그램 실행 전에 연결
- 동적 바인딩 : 프로그램 실행 중에 연결
- 선언 : 변수에 이름,데이터 타입(속성) 등을 부여
- 명시적 선언 : 선언문을 이용
- 묵시적 선언 : 선언문 없이, 디폴트 규칙에 의해 부여
- 영역 : 이름이 사용되는 범위
- 정적 영역 : 변수를 찾을 때 구조에 기반하는 방식
- 동적 영역 : 변수를 찾을 때 순서에 기반하는 방식
- 할당 : 변수에 메모리 공간을 바인딩하는 작업
- 데이터 타입 : 변수가 가질 수 있는 속성값의 길이 및 성질
- 연산자 : 데이터 처리를 위해 연산을 표현하는 기호
- 명령문 : 프로그램을 구성하는 문장
- 변수와 데이터 타입
- 변수 선언 규칙
- 영문 대소문자 구분, 숫자, 언더바(_) 사용가능
- 첫 번째 자리는 숫자로 시작x
- 공백 사용x
- 변수 이름 중복x
- 데이터 타입 유형
- 변수 선언 규칙
불린 타입(boolean) | 참(True)과 거짓(False) 두 가지 값 가진다. | ||
문자 타입 | 문자 하나 저장할 때 사용 ex. char a = 'A'; |
||
문자열 타입 | 문자열을 저장할 때 사용 ex. string a = "welcome"; |
||
정수 타입 | 정수값을 저장하고자 할 때 사용 ▶ JAVA : byte, short, int, long ▶ C/C++ : short, unsigned short, int, unsigned int, long, unsigned long |
||
부동 소수점 타입 | 소수점을 포함하는 실숫값을 저장하고자 할 때 사용 | ||
배열 타입 | 여러 데이터를 하나로 묶어서 저장하고자 할 때 사용 ▶C언어 - 배열 공간을 선언 ex. Array[5] = {1, 2, 3, 4, 5}; ▶ JAVA - 배열 공간 비워 둠 ex. Array[] = {1, 2, 3, 4, 5}; |
- 서식 지정자
- 변수 혹은 값을 출력문을 통해 출력하기 위해 사용
- 이스케이프(탈출)문과 같이 문자열 선언을 탈출하여 변수를 인식시키는 것 ( printf는 문자열만 출력 )
정수형 | %d | 부호 있는 10진수 정수 |
%u | 부호 없는 10진수 정수 | |
%o | 부호 없는 8진수 정수 | |
%x | 부호 없는 16진수 정수 | |
실수형 | %f | 소수점 6번째까지의 실수 |
%e | 0.000000e + 00. 실수 지수 표현 | |
%g | 숫자 값의 크기에 따라 %e나 %f로 표현 | |
문자형 | %c | 단일 문자 출력 |
%s | 문자열 출력 |
#include <stdio.h>
int main(void){ //자료형 변수 = 값;
char PATH = 'A'; //PATH에 A 대입(문자형)
//''(작은따옴표)는 단일 문자 선언
//""(큰따옴표)는 문자열 선언
printf("%c\n", PATH); //char의 경우 : 정수를 ASCII 코드로 변환 = 문자 출력
printf("%d\n", PATH); //A의 값을 %d(정수형)출력 = ASCII 코드 A에 해당하는 숫자 출력
}
답 :
A
65
3. 연산자
- 산술 연산자 : +, -, *, /, %
- 산술 연산자 우선순위 : (괄호) > *, /, % > +, -
- 시프트 연산자 : 10진수 값을 2진수 값으로 변환하여 비트 위치를 이동 << (Left) , >> (Right)
- 관계연산자 : 두 피연산자의 크기를 비교(True 1값, False 0값)
- 논리 연산자 : &&(and), ||(or) (True 1값, False 0값)
- 비트 연산자 : 10진수 값 -> 2진수로 변환하여 논리연산
- &(and) : 두 값을 비트로 연산하여 모두 참이면 true, 그렇지 않으면 거짓 false
- |(or) : 두 값을 비트로 연산하여 하나라도 참이면 true, 그렇지 않으면 거짓 false
- ^(xor) : 두 값을 비트로 연산하여 서로 다르면 true, 그렇지 않으면 거짓 false
- 증감 연산자 : 값을 1 증가하거나 감소하는 연산자
- 전위 : ++a, --a / 피연산자 증감 후, 연산 수행
- 후위 : a++, a-- /연산 수행 후, 피연산자 증감
- ex. a = 5, b = 5, c = 0
c = ++a + b-- // a는 증가 후 연산, b는 연산 후 감소
c = 11, a = 6, b = 4 // c = 6 + 5
- 복합 대입 연산자 : +=, -=, *=, /=, %=
- ex. a += 2 → a = a + 2
- 삼항 연산자 : 조건 ? True : False ( ? : 조건과 결과 구분, ' : ' : 참과 거짓 구분 )
- ex. num1 = 7, num2 = 3
result = num1 < num2 ? num1 : num2 // 조건을 만족하지 않으므로 False값인 num2값이 입력
result = 3
- ex. num1 = 7, num2 = 3
- 진법 입력 및 출력 연산자 : 프로그래밍은 기본적으로 10진 형태
구분 | C언어 | 파이썬 | JAVA |
입력 | 2진법 = 0b | 2진법 = 0b | 2진법 = Integer.valueOf(int, 2) |
8진법 = 0 | 8진법 = 0o | 8진법 = Integer.valueOf(int, 8) | |
16진법 = 0x | 16진법 = 0x | 16진법 = Integer.valueOf(int, 16) | |
출력 | 2진법 = %d | 2진법 = bin() | 2진법 = Integer.toBinaryString(int) |
8진법 = %o | 8진법 = oct() | 8진법 = Integer.toOctalString(int) | |
16진법 = %x | 16진법 = hex() | 16진법 = Integer.toHexString(int) |
- ex
C언어 | 파이썬 | JAVA |
#include <stdio.h> int main(void){ int num = 0b11010; printf("10진수 : %d\n", num); printf("8진수 : %o\n", num); printf("16진수 : %x\n", num); } |
num = 30 b = bin(num) o = oct(num) h = hex(num) print(b) print(o) print(h) |
public static void main (String[] args){ int i = 100; String b = Integer.toBinaryString(i); String o = Integer.toOctalString(i); String h = Integer.toHexString(i); System.out.println(b); System.out.println(o); System.out.println(h); } |
답 : 10진수 : 26 8진수 : 32 16진수 : 1 |
답 : 0b11110 0o36 0x1E |
답 : 1100100 144 6 |
728x90
'자격증' 카테고리의 다른 글
[정보처리기능사] chapter 02. 애플리케이션 결함 조치 (3) | 2023.11.13 |
---|---|
[정보처리기능사] chapter 01. 애플리케이션 테스트 수행 (0) | 2023.11.13 |
[정보처리기능사] 라이브러리의 활용(math, string) (0) | 2023.11.13 |
[정보처리기능사] chapter 02. 프로그래밍 언어 활용(2) (0) | 2023.11.09 |
[정보처리기능사] chapter 01. 알고리즘 구현 (0) | 2023.11.07 |