프로그래밍 언어의 기본
출처: 2019 시나공 정보처리기사 실기
c 언어
-> 함수 지향 언어
-> c언어에 내장되어 있는 내장 함수와 사용자가 만들어 사용하는 사용자 정의 함수가 있다.
변수명 작성 규칙
: 예약어는 사용할 수 없다. ex) int for;
: 숫자로 시작할 수 없다. ex) int 1abc;
기본 자료형
: 문자열 변수는 문자열의 끝을 알리기 위해 문자열의 맨 뒤에 항상 널 문자('\0')가 따라 다닌다. ex) char ab[6] ="korea"; 의 크기가 6인 이유
: 단정도 실수는 숫자 뒤에 f를 붙여 배정도 실수와 구분한다. ex) float x = 24.56f
4바이트(32비트) 단정도(Float) 실수형 : 부호부 1비트(bit) + 지수부 8비트(bit) + 가수부 23비트(bit)
8바이트(64비트) 배정도(Double) 실수형 : 부호부 1비트(bit) + 지수부 11비트(bit) + 가수부 52비트(bit)
출처: https://unlimitedpower.tistory.com/entry/DataStructure-고정-소수점-부동-소수점-형식-그리고-e [오늘도 공장은 돌아간다.]
연산자
전치: ++a, --a, 먼저 변수의 값을 증감시킨 후 변수를 연산에 사용한다.
후치: a++, a--, 먼저 변수를 연산에 사용한 후 변수의 값을 증감시킨다.
조건 연산자
조건 ? 수식1 : 수식2
= 조건의 수식이 참이면 수식1을 처리하고, 조건의 수식이 거짓이면 수식2를 처리한다.
반복문
while문: 조건이 참인 동안 정해진 문장을 반복 수행하다가 조건이 거짓이면 반복문을 벗어남.
do-while문: while문과 같은 동작을 하는데, 다른 점은 do~while문은 무조건 한 번 실행한 다음 조건을 판단하여 탈출 여부를 결정
break문: switch문이나 반복문 안에서 break가 나오면 블록을 벗어난다. =반복문 탈출
continue문: continue 직후의 문장들을 실행하지 않고 제어를 반복문의 처음으로 옮긴다.
포인터
포인터 변수: 주소를 저장할 수 있는 변수
*포인터 변수: 해당 포인터 변수가 가리키는 곳의 '값'
포인터 변수에 주소를 저장하기 위해 변수의 주소를 구할 때는 변수 앞에 &를 붙인다.
구조체
= 자료의 종류가 다른 변수의 모임
struct sawon {
char name[10];
char jikwi[10];
int pay;
};
struct sawon ansan, *seoul;
//sawon 자료형으로 변수를 선언하는데 변수의 이름이 ansan
//*seoul은 구조체의 포인터 변수
//구조체 멤버의 지정
ansan.name="sarah";
seoul->name="saraaah";
(*seoul).name="saraahaha";
함수
사용자 정의 함수 예제
#include <stdio.h>
int add(int i, int j){
return i+j;
}
main() {
int i=10,j=5,result;
int (*pf)(int, int);
pf=add;
result=pf(i,j);
printf("%d", result);
}
JAVA
public class Problem
{
public static void main(String[] args){
int i=0;
System.out.println(i);
}
}
아래에 코드 설명
- JAVA는 아무리 작은 프로그램이라도 클래스 안에 속성(변수)와 메소드(함수)를 만들어서 실행한다.
public class: 실행을 위한 클래스에 그대로 꼭 써야하는 예약어
Problem: 클래스 이름으로, 사용자가 원하는 이름을 임의로 지정하면 된다.
- JAVA는 실행용으로 만든 클래스 안에 반드시 main()메소드가 있어야 여기서부터 실행이 시작된다. 이걸 프로그램 실행 진입점이라고 한다.
public static: main()메소드 앞에 반드시 써야 한다는 것
void: 리턴 값이 없다는 의미
- JAVA는 프로그램에서 사용될 만한 것은 이미 다 클래스로 만들어져 있다. 이걸 API라고 하며, 사용자는 이것을 잘 골라서 사용하면 된다.
System.out.print(): System 클래스의 서브 클래스인 out클래스의 메소드 print()를 사용해서 출력한다는 의미.
문자열
c언어에서는 문자열을 배열에 넣고 배열의 이름을 이용/포인터 변수를 이용해 처리했지만,
java에서는 '주소를 컨트롤하는 기능이 없기 때문에' 불가능. 하지만, 문자열을 처리할 수 있도록 클래스를 제공한다. 클래스를 제공하므로 당연히 그에 따른 속성과 메소드도 지원한다.
메소드 ex)
//charAt() 메소드는 해당 문자열에서 인수에 해당하는 위치의 문자열을 반환한다.
public class example{
public static void main(Strings[] args){
String str ="information";
string a;
a=str.charAt(0);
}
}
클래스와 함수
-클래스 = 객체 생성을 위한 속성과 메소드를 정의하는 설계도
[클래스를 만들어 사용하는 순서]
- 클래스 이름을 정하고 객체 생성을 위한 속성과 메소드를 정의 - class
- 객체 생성 - new
public class Example {
static class A {
int i;
int j;
}
public static void main(String[] args){
A myVal = new A();
myVal.i=10;
myVal.j=20;
myVal=change(myVal);
System.out.println(myVal.i +"와"+myVal.j);
}
static A change(A xx){
int temp;
temp=xx.i;
xx.i=xx.j;
xx.j=temp;
return xx;
}
}
아래에 코드 설명
- class Example을 정의. 클래스 안에 클래스(class A)를 정의할 때는 static을 붙인다.
- 객체 변수 myVal을 생성
- change(myVal) : 객체 변수 myVal을 인수로 하여 change() 메소드를 호출한다. 객체의 모든 속성이 전달된다.
- static A change(A xx)
: 실행 클래스(= main() 메소드가 속해있는 클래스를 말한다.) 안에 메소드를 정의할 때는 static을 붙여야 한다.
: change() 메소드의 인수로 A 클래스의 객체 변수 xx를 받는다.
'정보처리기사 > 정보처리기사 실기' 카테고리의 다른 글
[정처기 실기] 데이터베이스 실무 응용 (0) | 2019.10.06 |
---|---|
[정처기 실기] 실무 알고리즘 응용_기본 알고리즘(수열, 수학) (0) | 2019.10.03 |
Comments