2과목 프로그래밍 언어 활용
C/C++ 데이터 타입과 크기
![](https://velog.velcdn.com/images/lxn_ee/post/dfc327ab-32d7-4df7-9c4a-b5dec9b87c3d/image.PNG)
변수명 작성 규칙
- 첫 글자로 숫자는 올 수 없다.
- 공백이나 *, +, -, /등의 특수문자를 사용할 수 없다.
- 예약어를 변수명으로 사용할 수 없다.
상수의 생성
- C언어에서 상수를 만들 때는 const 또는 #difine 예약어를 사용한다.
외부변수
- 변수나 함수를 참조(reference)하기 위한 변수이다.
- 함수가 종료된 뒤에도 값이 소멸되지 않는다.
산술 연산자
연산자 | 의미 | 비고 |
---|
% | 나머지 | 정수만 연살할 수 있으며, 실수를 사용하면 오류가 발생함 |
++ | 증가 | 전치 : 변수 앞에 증감 연산자가 오는 형태로 먼저 변수의 값을 증감시킨 후 변수를 연산에 사용함(++a, --a) |
-- | 감소 | 후치 : 변수 뒤에 증감 연산자가 오는 형태로 먼저 변수를 연산에 사용한 후 변수의 값을 증감시킴(a++,a--) |
관계 연산자
== : 같다
!= : 같지 않다
> : (왼쪾이)크다
>= : (왼쪽이)크거나 같다
< : (왼쪽이)작다
<= : (왼쪽이)작거나 같다
비트 연산자
&(and) : 모든 비트가 1일때만 1
^(xor) : 모든 비트가 같으면 0, 하나라도 다르면0
|(or) : 모든 비트 중 한 비트라도 1이면 1
~(not) : 각 비트의 부정, 0이면 1, 1이면 0
<< (왼쪽 시프트) : 비트를 왼쪽으로 이동
>> (오른쪽 시프트) : 비트를 오른쪽으로 이동
논리 연산자
- !(not) : 부정
- &&(and) : 모두 참이면 참
- ||(or) : 하나라도 참이면 참
조건 연산자
mx = a < b ? b : a;
a가 b보다 작으면 mx에 b를 저장하고 그렇지 않으면 mx에 a를 저장한다.
연산자 우선순위
![](https://velog.velcdn.com/images/lxn_ee/post/13fb07e6-7f78-4435-827c-402ee5acc4e9/image.PNG)
scanf()함수
- 키보드로 입력받아 변수에 저장하는 함수이다
- 예
scanf("%d %f", $i, $j);
정수를 입력받아 i에 저장하고, 실수를 입력받아 j에 저장한다.
주요 서식 문자열
- %d : 정수형 10진수를 입 출력하기 위해 지정함
- %o : 정수형 8 진수를 입 출력하기 위해 지정함
- %x : 정수형 16진수를 입 출력하기 위해 지정함
- %c : 문자를 입 출력하기위해 지정함
- %s : 문자열을 입 출력하기 위해 지정함
- %f : 소수점을 포함하는 실수를 입 출력하기 위해 지정함
prinf()함수
- 인수로 주어진 값을 화면에 출력하는 함수이다.
- 예
printf("%d, %c", a, b);
a의 값을 정수로 출력하고 쉼표(,)와 공백 한 칸을 띄운 후, b의 값을 문자로 출력한다.
주요 제어문자
- \n : 다음 줄 앞으로 이동함
- \b : 왼쪽으로 한 칸 이동함
- \t : 일정 간격 띄움
- \r : 현재 줄의 처음으로 이동함
- \0 : 널 문자를 출력함
- \a : 스피커로 벨 소리를 출력함
- \ : 역 슬래시를 출력함
- \f : 한 페이지를 넘김
Java에서의 표준 출력
System.out.printf("%d", r);
r의 값을 10진수 정수로 출력한다
System.out.print(r+s);
r과 s를 더한 값을 출력한다.
System.out.println(r+"은 소수");
r의 값과 은 소수를 출력한 후, 커서를 다음 줄의 처음으로 옮긴다.
기타 표준 입 출력 함수
- getchar() : 키보드로 한 문자를 입력받아 변수에 저장 하는 함수
- gets() : 키보드로 문자열을 입력받아 변수에 저장하는 함수로, enter를 누르기 전까지를 하나의 문자열로 인식하여 저장함
- putchar() : 인수로 주어진 한 문자를 화면에 출력하는 함수
- puts() : 인수로 주어진 문자열을 화면에 출력한 후 커서를 자동으로 다음줄 앞으로 이동하는 함수
파일 입력 함수
- fscanf() : 파일 포인터 변수가 가리키는 위치에서 데이터를 가져와 지정한 자료형으로 변수에 저장하는 함수
- fgetc() : 파일로부터 한 문자를 입력받아 변수에 저장하는 함수
- fgets() : 파일로부터 문자열을 입력받아 변수에 저장하는 함수
단순 if문
- 조건이 한 개 일때 사용하는 제어문이다.
- 조건이 참일 때만 실행하는 경우
if(a>b)
printf("Gilbut");
a가 b보다 크면 Gilbut을 출력하고, 아니면 if문을 벗어난다.
- 조건이 참일 때와 거짓일 때 실행할 문장이 다른경우
if(a>b)
printf("참");
else
printf("거짓");
a가 b보다 크면 참을 출력하고, 아니면 거짓을 출력한다.
switch문
- 조건에 따라 분기할 곳이 여러 곳인 경우 간단하게 처리할 수 있는 제어문이다.
- breack문이 생략되면 수식과 레이블이 일치할 때 실행 할 문장부터 break문 또는 switch 문이 종료될 때까지 모든 문장이 실행된다.
switch(a){
case 1:
printf("바나나");
break;
case 2:
printf("딸기");
break;
default:
printf("없음");
}
- a가 1이면 바나나를 출력하고 switch문을 탈출한다. a가 2면 딸기를 출력하고 switch문을 탈출한다 a가 1이나 2가 아니면 없음을 출력하고 switch문을 탈출한다.
for문
- 초기값, 최종값, 증가값을 지정하는 수식을 이용해 정해진 횟수를 반복하는 제어문이다.
for(i = 1; i<=10; i++)
sum=sum+i;
- 반복 변수 i가 1부터 1씩 증가하면서 10보다 작거나 같은 동안 sum에 i의 값을 누적시킨다.
while문
- 조건이 참인 동안 실행할 문장을 반복 수행하는 제어문이다
while(i<=10)
i=i+1;
i가 10보다 작거나 같은 동안 i의 값을 1씩 누적시킨다.
do~while문
- 조건이 참인 동안 정해진 문장을 반복 수행하다가 조건이 거짓이면 반복문을 벗어난다.
- 실행할 문장을 무조건 한 번 실행한 다음 조건을 판단하여 탈출 여부를 결정한다.
do
i=i+i;
while(i<=10);
1차원배열
- 변수들을 일직선상의 개념으로 조합한 배열이다.
char a[3] = {"A","B","C"};
3개의 요소를 갖는 문자형 배열 a를 선언한다.
![](https://velog.velcdn.com/images/lxn_ee/post/5b0a35c5-7385-4ec1-91b9-b6598d4c0ace/image.PNG)
2차원배열
- 변수들을 평면, 즉 행과 열로 조합한 배열이다.
int b[2][3] = {{11,22,33}, {44,55,66}}
2개의 행과 3개의 열을 갖는 정수형 배열b를 선언한다.
![](https://velog.velcdn.com/images/lxn_ee/post/5b36e00e-1065-4631-b8af-af137a48bdef/image.PNG)
배열 형태의 문자열 변수
- C언어에서는 큰따음표(" ")로 묶인 글자는 글자 수에 관계없이 문자열로 처리된다.
- 배열에 문자열을 저장하면 문자열의 끝을 알리기위한 널 문자("\0")가 문자열 끝에 자동으로 삽입된다
char a[5] = "love";
5개의 요소를 갖는 문자형 배열 a를 선언하고, "love"로 초기화 한다.
![](https://velog.velcdn.com/images/lxn_ee/post/fa46983d-49ff-4412-b59a-37f235f2c5df/image.PNG)
포인터와 포인터 변수
- 포인터 변수를 선언할 때는 자료의 형을 먼저 쓰고 변수명 앞에 간접 연산자 를 붙인다(int a;)
- 포인터 변수에 주소를 저장하기 위해 변수의 주소를 알아낼 때는 변수 앞에 번지 연산자 &를 붙인다(a = &b;)
- 실행문에서 포인터 변수에 간접 연산자 를 붙이면 해당 포인터 변수가 가리키는 곳의 값을 말한다(c = a;)
![](https://velog.velcdn.com/images/lxn_ee/post/b650cd5d-e056-4ee8-a297-d166632ddac2/image.PNG)
포인터와배열
- 배열을 포인터 변수에 저장한 후 포인터를 이용해 배열의 요소에 접근할 수 있다.
- 배열 위치를 나타내는 첨자를 생략하고 배열의 대표명만 지정하면 배열의 첫 번째 요소의 주소를 지정하는 것과 같다
![](https://velog.velcdn.com/images/lxn_ee/post/96eca04c-3032-4873-9ee3-208d0cd9ce70/image.PNG)
사용자 정의 함수
- 사용자가 필요한 기능을 취향대로 만들어 사용할 수 있는 함수이다.
![](https://velog.velcdn.com/images/lxn_ee/post/4547622d-4529-4927-b2e0-e2ebc7b3ca56/image.PNG)
![](https://velog.velcdn.com/images/lxn_ee/post/ffac6fc8-28c7-4dd4-a5bd-237b582486bd/image.PNG)
Python의 기본 문법
- if나 for와 같이 코드 블록을 포함하는 명령문을 작성할때 코드 블록은 콜론(:)과 여백으로 구분한다.
- 문자열에 따옴표가 포함되는 경우 다른 따옴표를 이용하여 문자열을 묶어줘야 한다.
'She said"i like it"'
Python의 print()함수
- 인수로 주어진 값을 화면에 출력하는 함수이다.
print(82,24,sep = '-', end = '.')
82와 24 사이에 분리문자 '-'가 출력되고, 마지막에 종료문자 '.'가 출력된다.
결과는 82-24.
Range
- 연속된 숫자를 생성하는 것으로, 리스트, 반복문 등에서 많이 사용된다.
![](https://velog.velcdn.com/images/lxn_ee/post/e76b2b76-b012-4a79-b88f-3c1f5e1246ca/image.PNG)
슬라이스
- 문자열이나 리스트 같은 순차형 객체에서 일부를 잘라(slicing)반환하는 기능이다.
- a = ["a","b","c","d","e"]일때
a[1:3] -> ["b","c"]
a[1:3] -> ["b","c"]
a[3:] -> ["d","e"]
a[:3] -> ["a","b","c"]
a[::3] -> ["a","d"]
Python의 for문
for i in range(1,11):
sum = sum+i
i에서 1부터 10까지 순서대로 저장하여 sum에 i의 값을 누적시키는 실행문을 반복 수행한다
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for i in a:
sum = sum+i
a 리스트에 저장된 10개의 요소를 i에 순서대로 저장하며 sum에 i의 값을 누적시키는 실행문을 반복 수행한다.
Python의 클래스
- 클래스를 사용하려면 클래스 이름을 정하고 객체 생성을 위한 속성과 메소드(함수)를 정의한 후, 객체를 선언하면 된다.
![](https://velog.velcdn.com/images/lxn_ee/post/1d5960fd-d590-40e1-bd83-37f25b131b8d/image.PNG)
HTML - 프레임의 주요 태그
<frameset>태그
- 화면을 분할 한다.
- <framset>...</framset>태그 사이에는 분할한 프레임의 개수만큼 <frame>태그를 사용한다.
<frame>태그
- 분할된 각각의 프레임에 표시할 HTML 문서를 지정한다.
- <frameset>으로 분할된 영역에 <frame>태그가 적용되는 순서는 다음과 같다
- 화면이 가로로 분할된 경우 : 위쪽 -> 아래쪽
- 화면이 세로로 분할된 경우 : 왼쪽 -> 오른쪽
- 분할된 프레임의 개수는 <frameset>의 rows 또는 cols속성으로 알 수 있다.
- rows="20%,*" -> 2개, cols="200,*,500" -> 3개
TML - 테이블의 주요 태그
- table : 테이블에 관한 세부사항을 설정함
- thead : 테이블의 머리글 부분을 정의함
- tbody : 테이블의 본문 부분을 정의함
- tfoot : 테이블의 바닥글 부분을 정의함
- tr : 행을 만듦
- td : 셀을 만듦
- th : 셀을 만들면서 제목 스타일을 적용함
HTML - style 태그
- 서식을 지정하는 태그로, head부분에 지정하면 테이블 전체에 공통으로 적용된다
- 선택자 {속성1:속성값1, 속성2:속성값2 ,,}
- 선택자 : 요소 중 일부에만 서식을 지정할 때 사용하는 옵션으로, 생략이 가능함
- first-child : 첫번째 요소에 적용
- last - child : 마지막 요소에 적용
- nth - child(n) : n번째 요소마다 적용
- 속성:속성값 : 요소에 적용할 속성과 속성값을 입력함. 2개이상의 속성을 지정할 때는 세미콜론(:)을 이용하여 구분함
- 사용자로부터 정보를 입력받는 틀을 정의한다
- 관련속성
- method : 데이터 전송 방식을 지정함
get: 입력받은 데이터를 URL에 첨부하여 전송함
post : 입력받은 데이터를 메시지 형식으로 전송함
- action : 데이터를 전송할 URL을 지정함
JavaScript - document.write()
- 가장 일반적인 출력 메소드로, 인수로 출력할 데이터를 입력하면 화면에 데이터가 출력된다.
- document.write("Sinagong"); -> 화면에 Sinagong이 출력됨
JavaScript - 대화상자
alert(내용);
confirm(내용);
prompt(내용, 기본값);
JavaScript - 배열의 주요 메소드
- pop() : 배열의 마지막 요소를 제거함
- push() : 배열의 마지막에 요소를 추가함
- join() : 배열의 모든 요소를 하나의 문자열로 변환함
- shift() : 배열의 첫번째 요소를 제거함
- splice () : 배열에서 지정한 범위의 요소를 제거한 후 제거된 위치에 지정한 값을 저장함
객체지향 프로그래밍 언어의 종류
- JAVA
- 분산 네트워크 환경에 적용할 수 있다.
- 캡슐화가 가능하고 재사용성 높다.
- C++ : C 언어에 객체지향 개념을 적용한 언어
- Smalltalk : 1세대 객체지향 프로그래밍 언어 중 하나로 순수한 객체지향 프로그래밍 언어
객체지향 프로그래밍 언어의 구성 요소
- 객체(Object) : 데이터(속성)와 이를 처리하기 위한 연산(메소드)을 결합시킨 실체
- 클래스(Class) : 두 개 이상의 유사한 객체들을 묶어서 하나의 공통된 표현하는 요소
객체지향 프로그래밍 언어의 주요 특징
- 캡슐화(Encapsulation) : 데이터(속성)와 함수를 하나로 묶는 것
- 상속성(Inheritance) : 이미 정의된 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는것
스크립트 언어의 종류
- 자바스크립트 : 웹 페이지의 동작을 제어하는 데 사용되는 클라이언트용 스크립트 언어
- PHP : Linux, Unix, Windows 운영체제에서 사용가능한 서버용 스크립트 언어
- 파이썬(Python) : 귀도 반 로섬이 발표한 대화형 인터프리터 언어
- 쉘 스크립트 : 쉘에서 사용되는 명령어들의 조합으로 구성된 스크립트 언어
- Basic : 절차지향 기능을 지원하는 대화형 인터프리터 언어
쉘 스크립트에서 사용되는 제어문
- 선택형 : if, case
- 반복형 : for, while, until
JavaScript 프레임워크의 종류
- jQuery : 웹 브라우저 간의 호환성 문제를 해결하고 명령어를 단순화한 프레임워크
- React : 메타(META)에서 개발한 프레임워크
- Angular : 구글(Gogle)에서 개발한 프레임워크
- Node.js : 인터넷 브라우저 외에도 JavaScript가 동작하도록 함
- Ember : 웹 애플리케이션을 위한 다양한 기능 제공
C언어의 대표적인 표준 라이브러리
-
math.h
- 수학 함수들을 제공한다
- 주요 함수 : sqrt, pow, abs 등
-
stdlib.h
- 자료형 변환, 난수발생, 메모리 할당에 사용되는 기능들을 제공한다.
- 주요 함수 : atoi, atof, srand, rand, malloc, free등
try~catch문
-
C++, C#,Java,JavaScript 등의 언어에서 예외처리 기능을 수행하는 명령문이다.
-
일반적으로 예외가 발생한 경우에는 'try문 ->해당예외catch문 ->finally'순으로 진행한다.
-
finally블록은 예외의 발생과 관계없이 무조건 수행되는데, C++에서는 사용할 수 없다
프레임워크의 특성
-
모듈화(Modularity) : 캡슐화를 통해 모듈화를 강화하고 설계 및 구현의 변경에 따른 영향을 최소화 함으로써 소프트웨어의 품질을 향상시키고 유지보수를 용이하게함
-
재사용성(Reusability) : 재사용 가능한 모듈들을 제공함으로써 예산절감, 생산성 향상, 품질 보증이 가능함
-
확장성(Extensibility) : 다형성(Polymorphism)을 통한 인터페이스 확장이 가능하여 다양한 형태와 기능을 가진 애플리케이션 개발이 가능함
-
재어의 역흐름(Inversion of Control) : 개발자가 관리하고 통제해야 하는 객체들의 제어를 프레임워크에 넘김으로써 생산성을 향상시킴