유리쯔의일상 2023. 9. 21. 18:22
반응형
 

👇 공부한 자료들의 실제 소스파일들을 기록해논 공간입니다 👇

 

 

실습문제

        /*
        
        1.  철수의 점수 60점을 입력하고.
        철수의 점수가 짝수이면 철수의 점수에서 10%를 더하여 저장하세요
        철수의 점수가 홀수이면 철수의 점수에서 10%를 마이너스 하여 저장하세요.
        
        */
package Tasks;

public class Test01 {
    public static void main(String[] args) {

        double point = 100;

        if(point % 2 ==0){
            point += +point*0.1;
        } else if (point % 2 == 1){
            point -= point*0.1;
        }

        System.out.println((int)point);
    }
}

 


 

문제 2 : 변수 하나를 선언하여 3개의 정수 평균값을 구하시오. 소수점까지 포함
package Task;

public class Task2 {
    public static void main(String[] args) {

        int a = 30;
        int b = 40;
        int c = 56;
        float avgAbc = (a+b+c)/3;
        System.out.println(avgAbc);
    }
}

 


 

문제 3 : 선택한 메뉴와 선택한 수량에 따라 메뉴와 수량이 정정되도록 프로그램을 작성하시오
        int cola = 30; // 메뉴번호 1과 수량
        int strite = 29; // 메뉴번호 2번과 수량
        int water = 43; // 메뉴번호 3과 수량

        int seNum = 1;  // 선택한 메뉴
        int selCun = 5; // 선택한 수량
package Task;

public class Task3 {
    public static void main(String[] args) {

        int cola = 30; // 메뉴번호 1과 수량
        int strite = 29; // 메뉴번호 2번과 수량
        int water = 43; // 메뉴번호 3과 수량

        int seNum = 1;  // 선택한 메뉴
        int selCun = 5; // 선택한 수량

        System.out.println("선택 한 메뉴 : " + seNum);

        if (seNum == 1) {
            cola -= selCun;
            System.out.println("선택한 메뉴는 cola입니다 " + cola + " 개 입니다 ");
        } else if (seNum == 2) {
            strite -= selCun;
            System.out.println("선택한 메뉴는 strite입니다 " + strite + " 개 입니다 ");
        } else if (seNum == 3) {
            water -= selCun;
            System.out.println("선택한 메뉴는 water입니다 " + water + " 개 입니다 ");
        }
        else {
            System.out.println("메뉴번호는 1, 2, 3 입니다");
        }
        System.out.println(cola);
    }
}

 


문제 4 : a정수의 모든 숫자를 자리수 상관 없이 더한 값을 출력하시오
package Task;

import java.util.Arrays;

public class Task4 {
    public static void main(String[] args) {


        int a = 6454634;
        // 6 4 5 4 6 3 4 / 10 하면 끝에 자리가 짤림 -- 몫으로 나눠짐
        int sum = 0;

//        while (a != 0){
//            sum += a % 10;      // 소수점 자리의 몫값을 sum에 누적
//            a /= 10;            // 끝에 숫자 4가 빠진 나머지 몫값을 a에 대입
//        }

        if ( a != 0 ) {
            sum = a % 10;
            a = a / 10;
            sum += a % 10;
            a = a / 10;
            sum += a % 10;
            a = a / 10;
            sum += a % 10;
            a = a / 10;
            sum += a % 10;
            a = a / 10;
            sum += a % 10;
            a = a / 10;
            sum += a % 10;
            a = a / 10; }

        System.out.println(sum);
    }
}

 


 

문제 5 : 업 , 다운 게임
        
        int conNum = 30; // 컴퓨터 번호
        int youNum = 30; // 게임자 번호

        게임자 번호가 컴퓨터 번호를 비교하여 컴퓨터 번호보다 up이면 up이라고하고
        다운이면 다운이라고 출력하시오
package Task;

public class Task5 {
    public static void main(String[] args) {

        int conNum = 30; // 컴퓨터 번호
        int youNum = 30; // 게임자 번호

        if (conNum > youNum){
            System.out.println(" 업 ");
        } else if (conNum < youNum ){
            System.out.println(" 다운 ");
        } else {
            System.out.println("정답이라우");
        }
    }
}

 


 

문제 6 : 가위바위보 
        1은 가위, 2는 바위, 0은 보이다
        가위바위보 게임의 승자를 판별하시오
        me you 숫자 차이가 1만 나면 큰수가 이기고
        me you 숫자 차이가 2가 나면 낮은 수가 이긴다
package Task;

public class Task6 {
    public static void main(String[] args) {
        int me = 0;
        int you = 0;
        String Victory = "";

        // 1은 가위, 2는 바위, 0은 보이다
        // 가위바위보 게임의 승자를 판별하시오
        // me you 숫자 차이가 1만 나면 큰수가 이기고
        // me you 숫자 차이가 2가 나면 낮은 수가 이긴다

        if (me > you) {
            Victory = (me - you == 1)? "me가 이겼어요" : "you가 이겼어요"; }
        if(me < you) {
            Victory =  ( you - me == 1) ? "you가 이겼어요 " : "me가 이겼어요";}
        if(me==you){
            Victory = "동점이예요"; }
        System.out.println(Victory);

    }
}

 


 

 

문제 7 :  자동차가 위치한 차도 찾기 
		위 좌표는 도로의 시작점 좌표이다.
        1차선은 10의 너비를 가진다
        도로는 4차선이다
        도로의 길이는 50이다.
        도로의 길이는 50이다. 도로의 길이는  y좌표에서 -50으로 계산한다.

        자동차의 현재 위치
        int carx = 32;
        int cary = 70;
        int size = 8;

        자동차는 사각형이며 사이즈는 가로,세로 각 8이다
        자동차는 몇 차선에서 주행하고 있는가 ?
        판단의 기준은 자동차 앞의 중간 지점이다.
package Task;

public class Task7 {
    public static void main(String[] args) {
        int roadx = 20;
        int roady = 100;

        // 위 좌표는 도로의 시작점 좌표이다.
        // 1차선은 10의 너비를 가진다
        // 도로는 4차선이다
        // 도로의 길이는 50이다.
        // 도로의 길이는 50이다. 도로의 길이는  y좌표에서 -50으로 계산한다.

        // 자동차의 현재 위치
        int carx = 32;
        int cary = 70;
        int size = 8;

        // 자동차는 사각형이며 사이즈는 가로,세로 각 8이다
        // 자동차는 몇 차선에서 주행하고 있는가 ?
        // 판단의 기준은 자동차 앞의 중간 지점이다.

        /*
         1차선의 범위 : x(20) ~ x+9 , y 50~100
         2차선의 범위 : x+10 ~ x+19 , y 50~100
         3차선의 범위 : x+20 ~ x+29 , y 50~100
         4차선의 범위 : x+30 ~ x+39 , y 50~100
        */

        if (roadx <= carx && carx <= roadx+40) {                                 // 도로의 x값 정의 20 ~ 60 사이에 car 있는지 확인 맞다면 아래로 이동
            if (roady - 50 <= cary && cary + size <= roady) {                    // 도로의 y값 정의 50 ~ 100 사이에 car 있는지 확인 맞다면 아래로 이동
                if (carx >= roadx && carx + size <= roadx + 10) {                // 도로의 x값(20) 과 carx값(32) 비교(참) && carx+8(40)과 roadx+10(30)비교(거짓)
                    System.out.println("1차선에 있다");                             // 참 && 거짓 = 거짓 으로 해당 행 실행 안됨
                } else if (roadx + 10 <= carx && carx + size <= roadx + 20) {    // 도로 x값(30)과 carx값(32) 비교(참) && carx+8(40)과 roadex+20(40)비교(참)
                    System.out.println("2차선에 있다");                             // 참 과 참 임으로 참 , 해당 문 실행
                } else if (roadx + 20 <= carx && carx + size <= roadx + 30) {    // 도로 x값(40)과 carx값(32) 비교(거짓) && carx+8(40)과 roadex(50)비교(참)
                    System.out.println("3차선에 있다");                             // 거짓 && 참 = 거짓 임으로 , 해당문 실행 안됨
                } else if (roadx + 30 <= carx && carx + size <= roadx + 40) {    // 도로 x값(50)과 carx값(32) 비교(거짓) && carx+8(40)과 roadex(60)비교(참)
                    System.out.println("4차선에 있다");                             // 거짓 && 참 = 거짓 임으로 , 해당문 실행 안됨
                }
            } else {
                System.out.println("차선에 없다 ");                                 // x 축과 y 축 전체 범위에 포함 되지 않을 경우 차선에 없다 라고 진행
            }
        }
    }
}

 

 

 

 

 

 

 

 

 

IF문 과제

 

 

과제 1 : 
        철수의 점수 60점을 입력하고.
        철수의 점수가 짝수이면 철수의 점수에서 10%를 더하여 저장하세요
        철수의 점수가 홀수이면 철수의 점수에서 10%를 마이너스 하여 저장하세요.
package Tasks;

public class Test01 {
    public static void main(String[] args) {

        double point = 100;

        if(point % 2 ==0){
            point += +point*0.1;
        } else if (point % 2 == 1){
            point -= point*0.1;
        }

        System.out.println((int)point);
    }
}

 


 

과제 2 : 
        철수는 행운의 번호를 선정하고 있다.
        첫번째 조건은   백의 자리가 7인경우
        두번째 조건은 십의 자리가 9인경우이다.
        번호는 000 - 999가지 라고 가정한다. 일의 자리는 무시한다.

        int num=975; 일경우 행운의 번호인가?

        2-1. if문 한개로 풀어 보세요
        2-2. 중첩if로 풀어 보세요.
package Tasks;

public class Test02 {
    public static void main(String[] args) {

        int num = 975;
        // 9 7 5
        int number100 = num/100;  // 9
        int number10 = (num-(number100*100))/10;   // 7

        if(number100 == 7 && number10 == 9) {
            System.out.println(num + " : 행운의 번호 입니다 ");
        } else {
            System.out.println(num + " : 행운의 번호가 아닙니다");
        }

        System.out.println("--------------------------------------");

        if(number100 == 7) {
            if (number10 == 9) {
                System.out.println("행운의 번호 입니다");
            } else {
                System.out.println("행운의 번호가 아닙니다");
            }
        }
    }
}

 


과제 3 : 
        철수는 사냥놀이를 하고 있다.

        현재 종이모양의 새가 x축에는 30, y축에는 20
        철수의 총알이 ballx =3, bally=5에 위치해 있다.
        총알이 진행방향으로 직선으로만 날아간다고 가정한다.

        철수의 총알이 새를 맞출 수 있을까?
package Tasks;

public class Test03 {
    public static void main(String[] args) {
        /*
        기울기 계산법
        x 증가량 / y 증가량 = 기울기값
        */
        int birdx = 30; // 3의 배수
        int birdy = 20; // 5의 배수
        int bulletX = 3;
        int bulletY = 5;

        double bulletavg = (float)bulletY/bulletX;
        double birdavg = (float)birdy/birdx;

        // 5/3 = 1.666666
        // 30/3 : 10 / 3 = 3.3 .....
        // 20/5 : 4 / 5 = 0.8 .....


        if(bulletavg == birdavg){
            System.out.println("총에 맞는다");
        } else {
            System.out.println("총에 맞지 않는다");
        }

    }
}

 

 

 

반응형