Programming/정처기

4과목 프로그래밍 언어 활용 프로그래밍 언어 활용 132 ~ 139

히히심 2024. 2. 5. 22:54
728x90

132. 데이터 타입

: 변수에 저장될 데이터의 형식을 나타내는 것. 

- 정수타입(Integer) 

- 부동 소수점 타입 (Floating Point)

- 문자 타입 (Character)

- 문자열 타입 (Character String)

- 불린 타입 (Boolean)

- 배열 (Array)

 

1) C/C++

- 구조체 정의 : struct 사용

  데이터 타입 크기
문자 char 1 Byte
부호없는 문자형  unsigned char 1 Byte
정수 short 2 Byte
int 4 Byte
long 4 Byte
long long 8 Byte
부호없는 정수형 unsigned short 2 Byte
unsigned int 4 Byte
unsigned long 4 Byte
실수 float  4 Byte
double 8 Byte
long double Byte

 

2) JAVA

  데이터 타입 크기
문자 char 2 Byte

정수
byte 1 Byte
short 2 Byte
int 4 Byte
long 8 Byte
논리 boolean 1 Byte
실수 float  4 Byte
double 8 Byte

 

3) Python

  데이터 타입 크기
문자 str 무제한
정수 int 무제한
실수 float  8 Byte
complex 16 Byte

 

- 파이썬의 시퀀스 자료형

  • 리스트: 다양한 자료형의 값을 연속적으로 저장. 개수 조정 가능
  • 튜플 : 연속적 저장, 요소 추가, 삭제, 변경은 불가
  • range : 연속된 숫자 생성. 

 

133. 변수

: 변할 수 있는 값을 의미. 

 

1) 변수명 작성 규칙

- 영문자, 숫자, 언더바 사용가능

- 첫 글자는 영문자나 언더바로 시작. 숫자 불가능

- 공백이나 특수문자 불가능

- 대소문자 구분

- 예약어 사용 불가 ( do, for, while, case, default, else, if, switch, break, continue, goto, return, ...)

- 변수 선언시 문장 끝에 세미콜론 붙이기.

>> 상수로 만들기 : const 붙이기. (변하지 않음)

 

2) 기억 클래스 

: 변수 선언 시 메모리 내에 변수값을 저장하기 위한 기억영역 결정하는 작업. 

- 자동 변수 auto : 함수나 코드의 범위를 한정하는 블록 내에서 선언되는 변수. 초기화하지 않으면 쓰레기값이 저장됨 (메모리의 데이터를 변경하기 전 마지막으로 남아 있던 데이터).

- 외부 변수 extern : 현재 파일이나 다른 파일에서 선언된 변수나 함수를 참조하기 위한 변수. 초기화하지 않으면 0으로 초기화됨. 

- 정적 변수 static : 내부 정적 변수 ( 함수나 블록 내에서 선언) / 외부 정적 변수 (함수 외부에서 선언. 모든 함수에서 사용가능). 초기화하지 않으면 0으로 초기화됨. 

- 레지스터 변수 register : 메모리가 아닌 CPU 내부의 레지스터에 기억영역을 할당받는 변수. 자주 사용되는 변수를 레지스터에 저장하여 처리 속도를 높이기 위해 사용. 

** 가비지 콜렉터 : 변수를 선언만 하고 사용하지 않으면 메모리 공간을 강제로 해제하여 다른 프로그램들이 사용할 수 있도록 하는 것. 

 

3) 변수 선언 

: 자료형 변수명 = 값;

 

134. 연산자

1) 산술 연산자

- 우선순위 (낮>>높) : +- > */% > ++ --

+ 덧셈
- 뺄셈
* 곱셉
/ 나눗셈
% 나머지
++ 증가 연산자
-- 감소 연산자
  - 전치 : 변수의 값을 먼저 증감시킨 후 변수를 연산에 사용.
- 후치 : 먼저 변수를 연산에 사용한 후 변수의 값을 증감시킴.

 

2) 관계 연산자 : 참/거짓을 결과로 얻음 (참은 1, 거짓은 0)

== 같다
!= 같지 않다
> 크다
>= 크거나 같다
< 작다
<= 작거나 같다

 

3) 비트 연산자 : 비트별(0, 1)로 연산하여 결과를 얻음. 

& and 모든 비트가 1일 때만 1
^ xor 모든 비트가 같으면 0, 하나라도 다르면 1
| or 모든 비트 중 한 비트라도 1이면 1
~ nor 각 비트의 부정, 0이면 1/ 1이면 0
<< 왼쪽 시프트 비트를 왼쪽으로 이동
>> 오른쪽 시프트 비트를 오른쪽으로 이동

 

4) 논리 연산자 : 참/거짓 (참은 1/ 거짓은 0)

! not 부정
&& and 모두 참이면 참
|| or 하나라도 참이면 참

 

5) 대입 연산자

+= a+=1 a= a+1
-= a -= 1 a= a-1
*= a *= 1 a = a*1
/= a /= 1 a = a/1
%= a %= 1 a = a%1
<<= a <<=1 a = a<<1
>>= a >>=1 a = a>>1

 

6) 조건 연산자

- 형식 : 조건 ? 수식1 : 수식 2;

- 조건의 수식이 참이면 수식1, 거짓이면 수식2 실행.

 

7) 기타 연산자

sizeof 자료형의 크기 표시
, (콤마) 한 줄에 두개 이상의 수식을 작성하거나 변수를 정의  (순서 연산자)
(자료형) 캐스트 연산자. 다른 자료형으로 변환한다. 

 

8) 연산자 우선순위

단항 연산자 ! ~ ++ -- sizeof
산술연산자 * / %
+ - 
시프트 연산자 << >>
관계 연산자  < <= > >=
== !=
비트연산자 & ^ |
논리연산자 && ||
조건연산자 ? :
대입 연산자 = += -= *= /= %= <<= >>=
순서 연산자 ,

 

 

135. 데이터 입출력

- C언어 표준 입출력 함수

1) scanf(서식 문자열, 변수의 주소) : 키보드로 입력받아 변수에 저장하는 함수. (입력받을 데이터의 자료형, 자릿수 등을 지정 가능)

- %d : 정수형 10진수 

- %u : 부호없는 정수형 10진수 

- %o : 정수형 8진수

- %x : 정수형 16진수                                              

- %c : 문자

- %s : 문자열

- %f : 소수점 포함하는 실수

- %e : 지수형 실수

- %ld : long형 10진수

- %lo : long형 8진수

- %lx : long형 16진수

- %p : 주소를 16진수로 입출력

 

2) printf(서식 문자열, 변수) : 인수로 주어진 값을 화면에 출력하는 함수.

- 제어문자

- \n : new line 

- \b : backspace

- \t : tab

- \r : carriage return 커서를 현재줄의 처음으로 이동

- \0 : null 

- \' : single quote

- \" : double quote

- \a : alert 스피커로 벨소리 출력

- \\ : backslash

- \f : form feed 한 페이지를 넘긴다. 

 

3) 기타

- getchar() : 키보드로 한 문자를 입력받아 변수에 저장하는 함수

- gets() : 키보드로 문자열을 입력받아 변수에 저장. 엔터 누르기 전까지 하나의 문자열로 인식

 

- putchar() : 인수로 주어진 한 문자를 화면에 출력

- puts() : 인수로 주어진 문자열을 화면에 출력한 후 커서를 자동으로 다음 줄 앞으로 이동. 

 

136. 제어문

1) 단순 if문: 조건이 참일때만 실행.

if(조건) 
	실행할 문장1;
else 
	실행할 문장2;

 

2) 다중 if문: 조건이 여러개일 때 사용.

3) switch문 : 조건에 따라 분기할 곳이 여러 곳인 경우.

switch(수식) 
{
	case 레이블1: 
    	실행할 문장1;
        break;
    case 레이블2:
    	실행할 문장2;
        break;
    ...
    default:
    	표준 실행문장;
}

 

4) goto문 : 프로그램 실행중 현재 위치에서 원하는 다른 문장으로 건너뛰어 수행을 계속하기 위해 사용.

goto 레이블;

레이블:
	실행할 문장

5) 반복문

 

137. 반복문

: 일정한 횟수를 반복. 

1) for문 : 초기값, 최종값, 증가값을 지정.

2) while문 : 조건이 참인 동안 실행할 문장 반복 수행.

3) do~while문 : do문장을 우선 실행하고 조건을 판별하여 조건이 참인 동안 반복 수행. 

 

- break : switch문이나 반복문 안에서 블록 벗어나기

- continue : 이후의 문장을 실행하지 않고 제어를 반복문의 처음으로 옮긴다. 

 

138. 배열과 문자열

- 배열 : 동일한 데이터 유형을 여러 개 사용해야 할 경우 하나의 이름으로 정의해 사용하는 것. 

-  배열의 위치는 0부터 시작

- 행 우선으로 데이터가 기억장소에 할당

 

1) 1차원 배열 

- 자료형 변수명 [개수];

 

2) 2차원 배열

- 변수들을 평면, 즉 행과 열로 조합한 배열

- 자료형 변수명 [행개수][열개수]

 

- 배열의 초기화 : 선언 시 초기값 지정 가능.

char a[3] = {'a', 'b', 'c'}
int a[2][3] = {{1,2,3}, {4,5,6}};
int a[2][3] = {1,2,3,4,5,6}

 

-  배열 형태의 문자열 변수

>> char 배열이름[크기]= "문자열"

char a[5] = "love"

 

 

139. 포인터

- 포인터 : 변수의 주소. 

- C언어에서는 주소를 제어할 수 있는 기능을 제공. 

- 포인터 변수 : 변수의 주소를 저장할 때 사용하는 변수. 선언할 때 간접 연산자 *를 붙임. 동적으로 할당되는 메모리 영역인 힙영역에 접근하는 동적 변수!

- 변수의 주소를 알아낼 때는 연산자 &붙임. 

- 실행문에서 포인터 변수에 *를 붙이면 해당 포인터 변수가 가리키는 곳의 값을 말한다. 

 

ex)

main()
{
	int a = 50; //정수형 변수a를 선언하고 50으로 초기화한다.
    int *b; //정수형 변수가 저장된 곳의 주소를 기억할 포인터변수 b선언
    b = &a; // a의 주소를 포인터변수 b에 저장
    *b = *b+20; //b가 가리키는 곳의 값에 20을 더한다. 
    printf("%d, %d", a, *b); //70, 70
}

 

1) 포인터와 배열 : 배열을 포인터 변수에 저장한 후 포인터를 이용해 배열의 요소에 접근할 수 있다. 

 

728x90