데이터 입출력
- C언어
- scanf("%d", &변수);
- printf("%d", 변수);
- Java
import java.util.Scanner;
Scanner scan = new Scanner(System.in);
Int a =scan.nextInt();
scan.close();
헝가리안 표기법
- 헝가리안 표기법이란 변수명 작성 시 자료형을 의미하는 문자를 포함하여 작성하는 방법
- ex) int i_inputA(정수형 변수), double d_Result(실수형 변수)
주요 자료형
종류 | 자료형 | 크기(C) | 크기(Java) |
정수형 | int | 4Byte | 4Byte |
문자형 | char | 1Byte | 2Byte |
실수형 | float double |
4Byte 8Byte |
4Byte 8Byte |
주요 서식 문자열
서식 문자열 | 의미 |
%d | 정수형 10진수 입출력 |
%o | 정수형 8진수 입출력 |
%x | 정수형 16진수 입출력 |
%c | 문자의 입출력 |
%s | 문자열의 입출력 |
%f | 소수점을 포함한 실수의 입출력 출력 시 소수점 이하는 기본 7자리 출력 |
주요 제어문자
제어문자 | 기능 |
\n | 커서를 다음 줄의 처음으로 이동 |
\t | 커서를 일정 간격 띄움 |
\0 | 널 문자 출력 |
\r | 현재 줄의 첫 번째 부분으로 이동 |
\b | 백스페이스 |
연산자 우선순위
대분류 | 중분류 | 연산자 | 결합규칙 | 우선순위 |
단항 연산자 | 단항 연산자 | !(논리 not),~(비트 not), ++(증가), --(감소), sizeof(기타 | <- | 높음 |
이항연산자 | 산술 연산자 | *, /, %(나머지) | -> | |
+, - | ||||
시프트 연산자 | <<, >> | |||
관계연산자 | ==(같다), !=(같지 않다) | |||
비트 연산자 | &(비트and), ^(비트 xor), |비트(or) | |||
논리 연산자 | &&(논리 and), ||(논리 or) | |||
삼항 연산자 | 조건연산자 | ?: | -> | |
대입 연산자 | 대입 연산자 | =, +=, -=, *=, /=, %=, <<=, >>= 등 | <- | |
순서 연산자 | 순서 연산자 | , | -> | 낮음 |
JAVA
- length() : 배열클래스의 속성으로, 배열 요소의 개수가 저장되어 있음
- charAt() : 문자열에서 지정된 위치의 문자를 반환
포인터
- c 언어에서는 변수의 주소를 포인터, 포인터를 저장할 수 있는 변수를 포인터 변수라고 한다.
#include <stdio.h>
main()
{
int a = 50;
int *b=&a;
*b=*b+20;
printf("%d, %d\n", a, *b);
char *s;
s="selina";
for(int i =0; i<6; i+=2){
printf("%c, ", s[i]);
printf("%c, ", *(s+i));
printf("%s\n", s+i);
}
}
- 결과
70 70
s, s, selina
l, l, lina
n, n, na
구조체
- 배열이 자료의 형과 크기가 동일한 변수의 모임이라면, 구조체는 자료의 종류가 다른 변수의 모임
- 구조체의 정의
struct person{
int age, weight;
char name[10];
}
구조체 변수의 선언
- struct person ms, *yj;
- 구조체 멤버의 지정
- ms.name="최명수";
- ms.age=25;
- ms.weight=74;
- ' -> ' 에의한 지정 : 구조체 포인터 변수를 이용해 구조체 멤버를 지정할 때
- yj->name = "박영재";
- yj->age=25;
- yj->weight=75;
- 구조체 포인터 변수는 일반 포인터 변수처럼 *을 사용하면 멤버를 지정할 수도 있다.
- (*yj).name="박영재";
- (*yj).age=25;
- (*yj).weight=75;
추상클래스와 형 변환
- 추상 메서드(Abstract Method)
- 자식 클래스에서 재정의해야만 사용할 수 있는 메서드
- 이러한 메서드를 하나 이상 포함하는 클래스를 추상클래스(Abstract Class)라고 한다.
- 추상 클래스는 내부에 실행 코드가 없는 추상메서드를 포함하기 때문에, 객채변수의 생성자로 사용할 수 없다.
- 형변환(Casting) : 부모클래스의 구조를 가지면서 자식 클래스의 속성이나 메서드로 재정의 하고 싶을 때 사용
- 부모클래스의 객체변수를 선언할때 자식클래스의 생성자를 이용
파이썬 - 세트(Set)
- 세트는 수학에서 배우는 집합(set)과 같은 python의 자료형으로, 중괄호({})를 이용하여 리스트와 같이 다양한 요소들을 저장할 수 있다, 순서가 정해져 있지 않고 중복된 요소는 저장되지 않는다
세트 관련 주요 메서드
- pop() : 세트의 값을 출력하고 요소를 삭제, {10,11,12}.pop() -> 10 출력 -> {11,12}
- 세트의 pop()메서드는 리스트와 달리 인수를 입력하지 못하며, pop() 사용시 어떤 요소가 출력되고 삭제될 지는 알 수 없다.
- add(값) : 세트의 '값'을 추가. {10,11,12}.add(13) -> { 10,11,12,13}
- update(세트) : 세트에 새로운 '세트'를 추가하여 확장 {'a','b','c'}.extend({'c','d'}) -> {'a','b','c','d'}
- remove(값) : 세트에서 '값'을 찾아 해당 요소를 삭제 {10,11,12}.remove(10) -> {11,12}
파이썬 - Range
- 연속된 숫자를 생성하는 것
- 리스트나 반복문에서 많이 사용
range(최종값) # 0에서 '최종값' -1 까지 연속된 숫자를 생성
range(초기값, 최종값) # '초기값'에서 '최종값'-1까지 연속된 숫자를 생성
range(초기값,최종값,증가값) # '초기값'에서 '최종값'-1까지 '증가값'만큼 증가하면서 숫자를 생성
# '증가값'이 음수인 경우, '초기값'에서 '최종값'+1 까지 '증가값'만큼
# 감소하면서 숫자를 생성
파이썬 -슬라이스(Slice)
- 문자열이나 리스트와 같은 순차형 객체에서 일부를 잘라(slicing)반환하는 기능
객체명[초기위치:최종위치] #초기위치에서 최종위치-1 까지의 요소들을 가져온다
객체명[초기위치:최종위치:증가값] # 초기위치에서 최종위치-1까지 증가값 만큼 증가하면서 해당 위치의
# 요소들을 가져온다
# 증가값이 음수인경우 초기위치에서 최종위치+1까지 증가값만큼
# 감소하면서 해당위치의 요소들을 가져온다
객체명[:] 또는 객체명[::] # 객체의 모든 요소를 반환
객체명[초기위치:] #객체의 '초기위치'에서 마지막위치까지의 요소들을 반환
객체명[:최종위치] # 객체의 0번째위치에서 '최종위치'-1까지의 요소들을 반환
객체명[::증가값] # 객체의 0번째위치에서 마지막 위치까지 증가값만큼 증가하면서 해당위치의 요소들을
# 반환한다.
파이썬 - 리스트 관련 주요 메서드
형식 | 내용 |
pop(위치) | -리스트의 '위치'에 있는 값을 출력하고, 해당 요소를 삭제 -예) [10,11,12].pop(1) -> 11출력 -> [10, 12] |
index(값) | -리스트에서 '값'이 저장된 요소의 위치를 반환 -예) [10,11,12].index(12) -> 2 |
count(값) | -리스트에서 '값'이 저장된 요소들의 개수를 반환 -예) [1,0,1,0,0].count(0) -> 3 |
extend(리스트) | -리스트의 끝에 새로운 '리스트'를 추가하여 확장 -예) ['a', 'b'].extend(['c','d']) -> ['a', 'b', 'c', 'd'] |
reverse() | -리스트의 순서를 역순으로 뒤집는다 -예) [1,2,3[.reverse(0 -> [3,2,1] |
sort() | -리스트를 정렬하며, 기본값은 오름차순이다. -reverse 속성을 이용하여 정렬 방식을 지정할 수 있다.(true:내림차순, false: 오름차순) - ex1) [2,1,3].sort() -> [1,2,3] - ex2) [2,1,3].sort(reverse=True) -> [3,2,1] |
copy() | - 리스트를 복사한다. - 예) a=[1,2,3] b=a.copy(0 |
리스트의 복사
- copy() 메서드를 사용하지 않고, '새로운 리스트=기존의 리스트' 형식으로 리스트를 복사하면, 2개의 리스트가 같은 메모리를 공유하기 때문에 어느 한쪽의 리스트에서 작업을 수행하면 다른 리스트에도 작업 내용이 그대로 반영
- 별개의 자료 공간으로 사용하려면 반드시 copy()메서드 이용
절차적 프로그래밍 언어
- 일련의 처리 절차를 정해진 문법에 따라 순서대로 기술하는 언어
- 언어 종류
- c, ALGOL, COBOL, FORTRAN
객체지향 프로그래밍 언어
- 현실세계의 개체를 기계의 부품처럼 하나의 객체로 만들어 객체들을 조립해서 프로그램을 작성하는 기법
- 언어 종류
- JAVA, C++, Smalltalk
스크립트 언어
- HTML 문서 안에 직접 프로그래밍 언어를 삽입하여 사용하는 언어
- 서버용 스크립트 언어 : 서버에서 해석되어 실행된 후, 결과만 클라이언트로 보냄
- 종류 : ASP, JSP, PHP, Python
- 클라이언트용 스크립트 언어 : 클라이언트의 웹 브라우저에서 해석되어 실행됨
- 종류 : 자바스크립트(JavaScript) , VB스크립트(Visual Basic Script)
스크립트 언어의 종류
- 자바 스크립트
- 웹 페이지의 동작을 제어하는데 사용되는 클라이언트용 스크립트 언어
- 클래스가 존재하지 않으며 변수 선언도 필요 없다
- 서버에서 데이터를 전송할 때 아이디, 비밀번호, 수량 등의 입력 사항을 확인하기 위한 용도로 많이 사용
- VB 스크립트 : 마이크로 소프트사에서 자바 스크립트에 대응하기 위해 제작한 언어,Active X 사용
- ASP(Active Server Page) : 서버측에서 동적으로 수행되는 페이지를 만들기 위한 언어 , 마이크로소프트사 제작, windows계열만 수행가능
- JSP(Java Server Page) : Java로 만들어진 서버용 스크립트 언어, 다양한 운영체제에서 사용 가능
- PHP(Professional Hypertext Preprocessor) : Linux, Unix, Windows운영체제에서 사용간으한 서버용 스크립트 언어, c java등 과 문법이 유사
- Python : 대화형 인터프리터 언어
- 쉘 스크립트(Shell Script) : 유닉스/리눅스 계열의 쉘(shell)에서 사용되는 명령어들의 조합으로 구성된 스크립트 언어
- 쉘 스크립트에서 사용되는 제어문
- 선택형 : if , cas
- 반복형 : for, while, until
- 쉘 스크립트에서 사용되는 제어문
- Basic : 절차 지향 기능을 지원하는 대화형 인터프리터 언어
선언형 언어
- 프로그램이 수행해야 할 문제를 기술하는 언어
- 함수형 언어 : 수학적 함수를 조합하여 문제를 해결하는 언어, 재귀호출, LISP
- 논리형 언어 : 기호 논리학에 기반을 둔 언어, 반복문 선택문 사용 X, PROLOG
- 종류 : HTML, LISP, PROLOG, XML, Haskell
명령형 언어
- 문제를 해결하기 위한 방법을 기술하는 언어
- 순차적인 명령 수행을 기본
- 폰노이만 구조에 개념적인 기초를 두고 있다
- 절차적언어, 객체지향 언어가 있다.
- FORTRAN, COBOL, C, JAVA
라이브러리
- 자주 사용하는 함수나 데이터들을 미리 만들어 놓은 집합체
- 표준 라이브러리 : 프로그래밍 언어에 기본적으로 포함되어 있는 라이브러리, 여러 종류의 모듈이나 패키지 형태
- 외부 라이브러리 : 개발자들이 필요한 기능을 만들어 인터넷 등에 공유해놓은 라이브러리, 다운받아 설치 후 사용가능
C언어의 대표적 표준 라이브러리
- stdio.h : 데이터 입출력에 사용되는 기능들을 제공
- printf, scanf, fprintf, fscanf, fclose, fopen
- math.h : 수학 함수들을 제공
- sqrt, pow, abs
- string.h : 문자열 처리에 사용되는 기능들을 제공
- strlen, strcpy, strcmp
- stdlib.h : 자료형 변환, 난수발생, 메모리할당에 사용되는 기능 제공
- atoi, atof, srand, rand, malloc, free
- time.h : 시간 처리에 사용되는 기능들을 제공
- time, clock
출처 : https://starrykss.tistory.com/1640
https://zero-zae.tistory.com/91
'정보처리기사 > 실기' 카테고리의 다른 글
정보처리기사 정리본(7,9,11) (0) | 2023.04.19 |
---|---|
정보처리기사 - 11. 응용 SW기초 기술 활용 (1) | 2023.04.19 |
정보처리기사 - 9. 소프트웨어 보안 구축 (0) | 2023.04.18 |
정보처리기사 - 8. SQL응용 (1) | 2023.04.18 |
정보처리기사 정리본(1,2,4) (0) | 2023.04.17 |