본문 바로가기
정보처리기사/프로그래밍 언어 활용

정보처리기사실기 - 프로그래밍 언어 활용 (1)

by 플라퉁 2023. 8. 20.
728x90
반응형

안녕하세요 오늘은 정보처리기사 실기 프로그래밍 언어 활용 단원에 대해 공부해보겠습니다.

 

 

1. 기본 문법 활용하기

 

#include <stdio.h>
void main(){
    int i, j;
    int temp;
    int a[5] = {75, 95, 85, 100, 50};
    
    for(i=0; i<4; i++){
    	for(j=0; j<4-i; j++){
        	if(a[j] > a[j + 1]){
            	temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp;
            }
        }
    }
    
    for(i=0; i<5; i++){
    	printf("%d ", a[i]);
    }
}

-. 거품정렬(Bubble Sort) 로서 두 인접한 원소를 검사하여 정렬하는 방법

-. 요소의 개수 - 1 만큼 반복

-. 요소의 개수 - i 만큼 반복

-. 현재 요소의 값과 다음 요소의 값을 비교하여 큰값을 다음요소로 보냄

-. 0~4번째 값을 출력

-. 출력값 : 50 75 85 95 100

 

 

 

 

public static void main(String[] args){
	int i;
    int a[4] = {0, 1, 2, 3};
    
    for(i=0; i<4; i++){
    	System.out.print(a[i] + " ");
    }
}

-. a[0]~a[3] 요소가 출력된다.

-. 출력값 : 0 1 2 3

 

 

 

 

public static void main(String[] args){
	int i = 3;
    int k = 1;
    
    switch(i){
    case 0:
    case 1:
    case 2:
    case 3: k=0;
    case 4: k+=3;
    case 5: k-=10;
    default: k--;
    }
    
    System.out.print(k);
}

-. i가 3이므로 case 3으로 이동

-. k=0 break문이 없으므로 case 4 실행 k+=3 (k는 3)

-. k-=10 실행 (k는 -7)

-. k-- 실행 (k는 -8)

-. 출력값 : -8

 

 

 

 

a={'일본', '중국', '한국'}
a.add('베트남')
a.add('중국')
a.remove('일본')
a.update({'홍콩','한국','태국'})
print(a)

-. a라는 세트형 변수에 추가 및 삭제 이미 있는 값은 무시

-. 출력값 : {'중국', '한국', '베트남', '홍콩', '태국'}

 

 

 

 

class Parent{
	public void show(){
    	System.out.println("Parent");
    }
}
class Child extends Parent{
	public void show(){
    	System.out.println("Child");
    }
}
public class Main{
	public static void main(String[] args){
    	Parent pa = ____ Child();
        pa.show();
    }
}

-. 밑줄에 들어갈 값은? : new

-. 출력값은 : Child

 

 

 

 

 

class A{
	private int a;
    public A(int a){
    	this.a=a;
    }
    public void display(){
    	System.out.println("a="+a);
    }
}

class B extends A{
	public B(int a){
    	super(a);
        super.display();
    }
}

public class Main{
	public static void main(String[] args){
    	B obj=new B(10);
    }
}

-. B(int a) 안에 super(a); 라는 키워드가 있는데 상위 클래스의 생성자에 접근한다.

-. A(int a) 메서드에서 this.a에 10을 대입

-. B(int a) 안에 super.display라는 메서드 실행 

-. 출력값 : a=10

 

 

 

 

#include <stdio.h>
void main(){
	int i=0, c=0;
    
    while(i<10){
    	i++;
        c *= i;
    }
    
    printf("%d", c);
}

-. c는 i 와 관계없이 i가 10이되어 while문을 탈출하더라도 항상 0이다.

-. 출력값 : 0

 

 

 

 

#include <stdio.h>
int r1(){
	return 4;
}
int r10(){
	return (30+r1());
}
int r100(){
	return (200+r10());
}
int main(){
	printf("%d\n", r100());
    return 0;
}

-. 최종적으로 234 출력

 

 

 

 

public static void main(String[] args){
	int i=0;
    int sum=0;
    
    while(i<10){
    	i++;
        if(i%2==1)
        	continue;
        sum += i;
    }
    
    System.out.println(sum);
}

-. 조건문에 따라 sum 값은 i가 2,4,6,8,10 일때 sum += i; 를 실행하므로 2+4+6+8+10 = 30 이된다.

-. 출력값 : 30

 

 

 

 

abstract class Vehicle{
	private String name;
    abstract public String getName(String val);
    public String getName(){
    	return "Vehicle name:" + name;
    }
    public void setName(String val){
    	name = val;
    }
}

class Car extends Vehicle{
	public Car(String val){
    	setName(val);
    }
    public String getName(byte val[]){
    	return "Car name :" + val;
    }
}

public class Test{
	public static void main(String[] args){
    	Vehicle obj = new Car("Spark");
        System.out.print(obj.getName());
    }
}

 

Spark를 넘겨 주는데 obj.getName() 에서 파라미터가 없으므로 부모 클래스의 getName을 반환

따라서 답은 Vehicle name : Spark 를 출력

 

 

 

lol=[[1, 2, 3],[4, 5],[6, 7, 8, 9]]
print(lol[0])
print(lol[2][1])
for sub in lol:
  for item in sub:
    print(item, end='')
  print()

lol[0] 출력값 [1, 2, 3]

lol[2][1] 출력값 7

lol에서 행 개수만큼 반복

해당 안의 item 만큼 출력

따라서 

123

45

6789

 

 

 

 

 

#include <stdio.h>

void main(){
	char *p = "KOREA";
    printf("%s\n", p);
    printf("%s\n", p+3);
    printf("%c\n", *p);
    printf("%c\n", *(p+3));
    printf("%c\n", *p+2);
}

*p    p라는 포인터에 KOREA 저장

%s 가 있으면 null이 나올때까지 출력  KOREA 

p+3 부터 출력. EA

%c 가있으면 문자 하나 출력 K

*(p+3)     E 출력

*p+2        K의 다다음 스펠링 M 출력

 

 

 

 

 

class Parent{
	public int compute(int num){
    	if(num <= 1) return num;
        return compute(num - 1)+compute(num-2);
    }
}

class Child extends Parent{
	public int compute(int num){
    	if(num <= 1) return num;
        return compute(num-1)+compute(num-3);
    }
}

class Exam{
	public static void main(String[] args){
    	Parent obj = new Child();
        System.out.print(obj.compute(4));
    }
}

다음은 오버라이딩 예제로 Child 클래스를 실행하며 결국 출력값은 1이 된다.

728x90
반응형

댓글