diff --git a/src/LISHANYU/Report3/Report3_1 b/src/LISHANYU/Report3/Report3_1 new file mode 100644 index 0000000..3115cfa --- /dev/null +++ b/src/LISHANYU/Report3/Report3_1 @@ -0,0 +1,25 @@ +//4-1. 다음의 문장들을 조건식으로 표현해보세요. + +//int형 변수 x가 10보다 크고 20보다 작을 때 true인 조건식 + x>10 && x<20 + +//char형 변수 ch가 공백이나 탭이 아닐 때 true인 조건식 + !(ch == ' ' || ch =='\t') + +//char형 변수 ch가 'x' 또는 'X'일 때 true인 조건식 + ch == 'x' || ch == 'X' + +//char형 변수 ch가 숫자('0'~'9')일 때 true인 조건식 + ch >= '0' && ch <= '9' + +//char형 변수 ch가 영문자(대문자 또는 소문자)일 때 true인 조건식 + ('a' <= ch && ch <= 'z') || ('A' <= ch && ch <= 'Z') + +//int형 변수 year가 400으로 나눠떨어지거나 또는 4로 나눠떨어지고 100으로 나눠떨어지지 않을때 true인 조건식 + year % 400 = 0 || (year % 4 = 0 && year % 100 != 0) + +//boolean형 변수 powerOn이 false일 때 true인 조건식 + !powerOn + +//문자열 참조변수 str이 "yes"일 때 true인 조건식 + str.equals("yes") //대소문자 구분 \ No newline at end of file diff --git a/src/LISHANYU/Report3/Report3_10.java b/src/LISHANYU/Report3/Report3_10.java new file mode 100644 index 0000000..c4c3d1f --- /dev/null +++ b/src/LISHANYU/Report3/Report3_10.java @@ -0,0 +1,29 @@ +package LISHANYU.Report3; +//4-10. 다음은 숫자맞추기 게임을 작성한 것이다. 1과 100사이의 값을 반복적으로 입력해서 +//컴퓨터가 생각한 값을 맞추면 게임이 끝난다. +//사용자가 값을 입력하면, 컴퓨터는 자신이 생각한 값과 비교해서 결과를 알려준다. +//사용자가 컴퓨터가 생각한 숫자를 맞추면 게임이 끝나고 몇 번 만에 숫자를 맞췄는지 알려준다. + +public class Report3_10 { + public static void main(String[] args) { + // 1~100사이의 임의의 값을 얻어서 answer에 저장한다. + int answer = (int) (Math.random() * 100) + 1; + int input = 0; //사용자입력을 저장할 공간 + int count = 0; //시도횟수를 세기위한 변수 + + // 화면으로 부터 사용자입력을 받기 위해서 Scanner클래스 사용 + java.util.Scanner s = new java.util.Scanner(System.in); + do { + System.out.print("1과 100사이의 값을 입력하세요>"); + input = s.nextInt(); //입력받은 값을 변수 input에 저장한다. + count++; + if (input > answer) { + System.out.println("더 작은 수를 입력하세요"); + } else if (input < answer) { + System.out.println("더 큰 수를 입력하세요"); + } + } while (input != answer); //무한반복문//// + + System.out.println("장답입니다."); + } // end of main +} diff --git a/src/LISHANYU/Report3/Report3_2.java b/src/LISHANYU/Report3/Report3_2.java new file mode 100644 index 0000000..cefb78f --- /dev/null +++ b/src/LISHANYU/Report3/Report3_2.java @@ -0,0 +1,13 @@ +package LISHANYU.Report3; +//4-2. 1부터 20까지의 정수중에서 2 또는 3의 배수가 아닌 수의 총합을 구하세요. +public class Report3_2 { + public static void main(String[] args) { + int sum = 0; + for (int i = 1; i<=20; i++){ + if(i % 2 != 0 && i % 3 !=0){ + sum += i; + } + } + System.out.println("sum="+sum); + } +} diff --git a/src/LISHANYU/Report3/Report3_3.java b/src/LISHANYU/Report3/Report3_3.java new file mode 100644 index 0000000..0fe97b4 --- /dev/null +++ b/src/LISHANYU/Report3/Report3_3.java @@ -0,0 +1,14 @@ +package LISHANYU.Report3; +//4-3. 1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+...+10)의 결과를 계산하세요. +public class Report3_3 { + public static void main(String[] args) { + int sum = 0; + int totalSum = 0; + for (int i = 1; i <= 10; i++){ + sum += i; + totalSum += sum; +// System.out.printf("i=%d sum=%d totalSum=%d%n", i, sum, totalSum); + } + System.out.println("totalSum="+totalSum); + } +} diff --git a/src/LISHANYU/Report3/Report3_4.java b/src/LISHANYU/Report3/Report3_4.java new file mode 100644 index 0000000..7e63eee --- /dev/null +++ b/src/LISHANYU/Report3/Report3_4.java @@ -0,0 +1,23 @@ +package LISHANYU.Report3; +//4-4. 1+(-2)+3+(-4)+...과 같은 식으로 계속 더해나갔을 때, +//몇까지 더해야 총합이 100 이상이 되는지 구하세요. +public class Report3_4 { + public static void main(String[] args) { + int sum = 0; // 총합을 저장할 변수 + int s = 1; // 값의 부호를 바꿔주는데 사용할 변수 + int num = 0; + for (int i=1;sum<=100;i++){ + if (i % 2 !=0 ){ + s= Math.abs(s); + }else{ + s= -s; + } + num = s * i; + sum += num; +// System.out.printf("i=%d s=%d num=%d sum=%d%n",i, s, num, sum); + } + System.out.println("num="+num); + System.out.println("sum="+sum); + } + +} diff --git a/src/LISHANYU/Report3/Report3_5.java b/src/LISHANYU/Report3/Report3_5.java new file mode 100644 index 0000000..8bdad94 --- /dev/null +++ b/src/LISHANYU/Report3/Report3_5.java @@ -0,0 +1,22 @@ +package LISHANYU.Report3; +//4-5. 다음의 for문을 while문으로 변경하세요. +public class Report3_5 { + public static void main(String[] args) { + int i=0;// 초기화 + while (i<=10){ //조건식 + int j=0; + while (j<=i){ + j++; + System.out.print("*"); + } + i++; + System.out.println(); + } + +// for(int i=0; i<=10; i++) { +// for(int j=0; j<=i; j++) +// System.out.print("*"); +// System.out.println(); +// } + }//end of main +}// end of class diff --git a/src/LISHANYU/Report3/Report3_6.java b/src/LISHANYU/Report3/Report3_6.java new file mode 100644 index 0000000..f72de6f --- /dev/null +++ b/src/LISHANYU/Report3/Report3_6.java @@ -0,0 +1,13 @@ +package LISHANYU.Report3; +//4-6. 두 개의 주사위를 던졌을 때, 눈의 합이 6이 되는 모든 경우의 수를 출력하는 프로그램을 작성하세요. +public class Report3_6 { + public static void main(String[] args) { + for (int i=1; i<=6; i++){ + for (int j=1; j<=6; j++){ + if( i+j == 6){ + System.out.printf("%d + %d = %d%n", i, j ,i+j); + }//if문 end + }// j for end + }// i for end + } // main end +} //class end diff --git a/src/LISHANYU/Report3/Report3_7.java b/src/LISHANYU/Report3/Report3_7.java new file mode 100644 index 0000000..22f3c1b --- /dev/null +++ b/src/LISHANYU/Report3/Report3_7.java @@ -0,0 +1,17 @@ +package LISHANYU.Report3; +//4-7. 숫자로 이루어진 문자열 str이 있을 때, 각 자리의 합을 더한 결과를 출력하는 코드를 완성하세요. +//만일 문자열이 "12345"라면, ‘1+2+3+4+5’의 결과인 15를 출력이 출력되어야 합니다. +public class Report3_7 { + public static void main(String[] args) { + String str = "12345"; + int sum = 0; + int num = Integer.parseInt(str); + for (int i = 0; i < (str.length()); i++) { + int a = num%10; + sum += a; + num = num/10; +// System.out.printf("i=%d num=%d a=%d sum=%d%n",i,num,a,sum); + } + System.out.println("sum=" + sum); + } +} diff --git a/src/LISHANYU/Report3/Report3_8.java b/src/LISHANYU/Report3/Report3_8.java new file mode 100644 index 0000000..21ce409 --- /dev/null +++ b/src/LISHANYU/Report3/Report3_8.java @@ -0,0 +1,9 @@ +package LISHANYU.Report3; +//4-8. Math.random()을 이용해서 1부터 6 사이의 임의의 정수를 변수 value에 저장하는 코드를 완성하세요. +public class Report3_8 { + public static void main(String[] args) { + + int value = (int)(Math.random()*6)+1; + System.out.println("value:" + value); + } +} diff --git a/src/LISHANYU/Report3/Report3_9.java b/src/LISHANYU/Report3/Report3_9.java new file mode 100644 index 0000000..a22ddcc --- /dev/null +++ b/src/LISHANYU/Report3/Report3_9.java @@ -0,0 +1,16 @@ +package LISHANYU.Report3; +//4-9. int 타입의 변수 num이 있을 때, 각 자리의 합을 더한 결과를 출력하는 코드를 완성하세요. +//만일 변수 num의 값이 12345라면, ‘1+2+3+4+5’의 결과인 15를 출력하세요. +//문자열로 변환하지 말고 숫자로만 처리하세요. +public class Report3_9 { + public static void main(String[] args) { + int num = 12345; + int sum = 0; + while (num>0) { + int a = num % 10; + sum += a; + num = num / 10; + System.out.println("sum=" + sum); + } + } +} \ No newline at end of file diff --git a/src/LISHANYU/Report4/Report4_1 b/src/LISHANYU/Report4/Report4_1 new file mode 100644 index 0000000..879bab1 --- /dev/null +++ b/src/LISHANYU/Report4/Report4_1 @@ -0,0 +1,16 @@ +//5-1. 다음은 배열을 선언하거나 초기화한 것이다. 잘못된 것을 고르고 그 이유를 설명하세요. +int[] arr[]; 정답: 2차원 배열의 선언 + +int[] arr = {1,2,3,}; 정답 + +int[] arr = new int[5]; 정답 + +int[] arr = new int[5]{1,2,3,4,5}; +수정: int[] arr = new int[]{1,2,3,4,5}; +이유: 두번째 []에는 숫자를 넣으면 안된다.{}안의 값의 개수에 따라 자동으로 배정의 길이를 결정된다. + +int arr[5]; +틀림: 배열을 선언할 때 배열의 크기를 지정할 수 없다. + +int[] arr[] = new int[3][]; 정답: + diff --git a/src/LISHANYU/Report4/Report4_2.java b/src/LISHANYU/Report4/Report4_2.java new file mode 100644 index 0000000..3610798 --- /dev/null +++ b/src/LISHANYU/Report4/Report4_2.java @@ -0,0 +1,13 @@ +package LISHANYU.Report4; +//5-2. 다음과 같은 배열이 있을 때, arr[3].length의 값은? +public class Report4_2 { + public static void main(String[] args) { + int[][] arr = { + {5, 5, 5, 5, 5}, + {10, 10, 10}, + {20, 20, 20, 20}, + {30, 30} + }; + System.out.println(arr.length); // 답안은 4 + } +} diff --git a/src/LISHANYU/Report4/Report4_3.java b/src/LISHANYU/Report4/Report4_3.java new file mode 100644 index 0000000..0adc2a5 --- /dev/null +++ b/src/LISHANYU/Report4/Report4_3.java @@ -0,0 +1,13 @@ +package LISHANYU.Report4; +//5-3. 배열 arr에 담긴 모든 값을 더하는 프로그램을 완성하세요. +public class Report4_3 { + public static void main(String[] args){ + int[] arr = {10, 20, 30, 40, 50}; + int sum = 0; + + for (int i=0; i", i + 1, new String(question)); + String answer = scanner.nextLine(); + + // trim()으로 answer의 좌우 공백을 제거한 후, equals로 word[i]와 비교 + if (words[i].equals(answer.trim())) + System.out.printf("맞았습니다.%n%n"); + else + System.out.printf("틀렸습니다.%n%n"); + } + } //end of main +} diff --git "a/src/LISHANYU/Report4/\353\241\234\352\267\270\354\235\270 \355\235\220\353\246\204 flowchart .jpg" "b/src/LISHANYU/Report4/\353\241\234\352\267\270\354\235\270 \355\235\220\353\246\204 flowchart .jpg" new file mode 100644 index 0000000..99dd5c8 Binary files /dev/null and "b/src/LISHANYU/Report4/\353\241\234\352\267\270\354\235\270 \355\235\220\353\246\204 flowchart .jpg" differ diff --git a/src/LISHANYU/Report5/Report5_1.java b/src/LISHANYU/Report5/Report5_1.java new file mode 100644 index 0000000..69bc5cd --- /dev/null +++ b/src/LISHANYU/Report5/Report5_1.java @@ -0,0 +1,19 @@ +package LISHANYU.Report5; +//6-1. 다음과 같은 멤버 변수를 갖는 Student 클래스를 정의하세요. +//타입 : String, 변수명 : name, 설명 : 학생 이름 +//타입 : int, 변수명 : ban, 설명 : 반 +//타입 : int, 변수명 : no, 설명 : 번호 +//타입 : int, 변수명 : kor, 설명 : 국어 점수 +//타입 : int, 변수명 : eng, 설명 : 영어 점수 +//타입 : int, 변수명 : math, 설명 : 수학 점수 +public class Report5_1 { + + String name; + int ban; + int no; + int kor; + int eng; + int math; + + +} diff --git a/src/LISHANYU/Report5/Report5_2.java b/src/LISHANYU/Report5/Report5_2.java new file mode 100644 index 0000000..d86a852 --- /dev/null +++ b/src/LISHANYU/Report5/Report5_2.java @@ -0,0 +1,35 @@ +package LISHANYU.Report5; +//6-2. 6-1에서 정의한 Student 클래스에 생성자와 info()를 추가해서 실행결과와 같은 결과를 얻도록 하세요. +public class Report5_2 { + public static void main(String[] args) { + Student s = new Student("홍길동", 1, 1, 100, 60, 76); + + String str = s.info(); + System.out.println(str); + }// 예상 결과 : 홍길동, 1, 1, 100, 60, 76, 236, 78.7 +} + +class Student { + String name; + int ban; + int no; + int kor; + int eng; + int math; + + // Student() {} + Student(String name, int ban, int no, int kor, int eng, int math) {//생성자 + this.name = name; + this.ban = ban; + this.no = no; + this.kor = kor; + this.eng = eng; + this.math = math; + } + + public String info() { + return name + "," + ban + "," + no + "," + kor + "," + eng + "," + math + + "," + (kor+eng+math)+ "," + ((int)((kor+eng+math)/3f*10)/10f ); + } +} + diff --git a/src/LISHANYU/Report5/Report5_3.java b/src/LISHANYU/Report5/Report5_3.java new file mode 100644 index 0000000..9f1b7f5 --- /dev/null +++ b/src/LISHANYU/Report5/Report5_3.java @@ -0,0 +1,53 @@ +package LISHANYU.Report5; +//6-3. 연습문제 6-1에서 정의한 Student 클래스에 다음과 같이 정의된 두 개의 메서드를 추가하세요. +//1. 메서드명 : getTotal +//기능 : 국어(kor), 영어(eng), 수학(math)의 점수를 모두 더해서 반환한다. +//반환타입 : int +//매개변수 : 없음 +//2. 메서드명 : getAverage +//기능 : 총점(국어점수+영어점수+수학점수)을 과목수로 나눈 평균을 구한다. +//소수점 둘째자리에서 반올림할 것. +//반환타입 : float +//매개변수 : 없음 +public class Report5_3 { + public static void main(String[] args) { + Students s = new Students("홍길동", 1, 1, 100, 60, 76); + s.name = "홍길동"; + s.ban = 1; + s.no = 1; + s.kor = 100; + s.eng = 60; + s.math = 76; + System.out.println("이름 :"+s.name); + System.out.println("총점 :"+s.getTotal()); + System.out.println("평균 :"+s.getAverage()); + + }//예상 결과 : 이름 : 홍길동, 총점 : 236, 평균 : 78.7 +} + +class Students {//생성자 + String name; + int ban; + int no; + int kor; + int eng; + int math; + + Students(String name, int ban, int no, int kor, int eng, int math) {//생성자 + this.name = name; + this.ban = ban; + this.no = no; + this.kor = kor; + this.eng = eng; + this.math = math; + } + + int getTotal()/*선언부*/{ + //구현부 + return kor + eng + math; + } + float getAverage() { + return (int) ((kor + eng + math) / 3f * 10) / 10f; + } + // name은 return 하지 않아도 된다. 위 main 에 정보가 있다. +} diff --git a/src/LISHANYU/Report5/Report5_4 b/src/LISHANYU/Report5/Report5_4 new file mode 100644 index 0000000..960da75 --- /dev/null +++ b/src/LISHANYU/Report5/Report5_4 @@ -0,0 +1,18 @@ +//6-5. 다음의 코드에 정의된 변수들을 종류별(클래스 변수,인스턴스 변수, 지역변수)로 구분해서 적으세요. +class PlayingCard { + int kind; + int num; + static int width; + static int height; + PlayingCard(int k, int n) { + kind = k; + num = n; + } + public static void main(String args[]) { + PlayingCard card = new PlayingCard(1,1); + } +} + +- 클래스 변수(static 변수): width, height +- 인스턴스 변수(iv) : kind , num +- 지역변수 : k,n, args, card \ No newline at end of file diff --git a/src/LISHANYU/Report5/Report5_5 b/src/LISHANYU/Report5/Report5_5 new file mode 100644 index 0000000..dcdbf0c --- /dev/null +++ b/src/LISHANYU/Report5/Report5_5 @@ -0,0 +1,25 @@ +package LISHANYU.Report5; +//6-7. 다음은 컴퓨터 게임의 병사(marine)를 클래스로 정의한 것이다. +//이 클래스의 멤버 중에 static 을 붙여야 하는 것은 어떤 것들이고 그 이유는 무엇인가? +//(단, 모든 병사의 공격력과 방어력은 같아야 한다.) +public class Report5_5 { + class Marine { + int x = 0, y = 0; //Marine의 위치좌표 (x,y) : 위치는 계속 바뀌기 때문에 static + int hp = 60; //현재 체력: + static int weapon = 6; //공격력: 모든 병사의 공격력과 방어력은 같아야 하기 때문에 static 가 붙어야 한다. + static int armor = 0; //방어력:모든 병사의 공격력과 방어력은 같아야 하기 때문에 static 가 붙어야 한다. + + static void weaponUp() { //static변수 weapon을 가지고 작업을 하기 떄문에 static를 붙여야 한다. + weapon++; + } + + static void armorUp() {//static변수 armor을 가지고 작업을 하기 떄문에 static를 붙여야 한다. + armor++; + } + + void move(int x, int y) {//메서드영역, x,y는 지역변수 + this.x = x; + this.y = y; + } + } +} diff --git a/src/LISHANYU/Report6/Report6_1.txt b/src/LISHANYU/Report6/Report6_1.txt new file mode 100644 index 0000000..afc8aaa --- /dev/null +++ b/src/LISHANYU/Report6/Report6_1.txt @@ -0,0 +1,86 @@ +6-8. 다음 중 생성자에 대한 설명으로 옳지 않은 것은? (모두 고르시오) +정답: a. 모든 생성자의 이름은 클래스의 이름과 동일해야한다. +오답: b. 생성자는 객체를 생성하기 위한 것이다. + // 객체를 초기화할 목적으로 사용되는 것이다. 객체를 생성하는 것은 new연산자이다. +정답: c. 클래스에는 생성자가 반드시 하나 이상 있어야 한다. +정답: d. 생성자가 없는 클래스는 컴파일러가 기본 생성자를 추가한다. +오답: e. 생성자는 오버로딩 할 수 없다. + // 생성자도 오버로딩이 가능해서 하나의 클래스에 여러개의 생성자를 정의할 수 있다. + +6-9. 다음 중 this에 대한 설명으로 맞지 않은 것은? (모두 고르시오) +정답: a. 객체 자신을 가리키는 참조변수이다. +오답: b. 클래스 내에서라면 어디서든 사용할 수 있다. + // 인스턴스메서드에서만 사용가능 +정답: c. 지역변수와 인스턴스변수를 구별할 때 사용한다. +정답: d. 클래스 메서드 내에서는 사용할 수 없다. + +6-10. 다음 중 오버로딩이 성립하기 위한 조건이 아닌 것은? (모두 고르시오) +정답: a. 메서드의 이름이 같아야 한다. +정답: b. 매개변수의 개수나 타입이 달라야 한다. +오답: c. 리턴타입이 달라야 한다. + // 반환 타입은 관계없다 +오답: d. 매개변수의 이름이 달라야 한다. + // 리턴타입은 관계없다. + +6-11. 다음 중 아래의 add메서드를 올바르게 오버로딩 한 것은? (모두 고르시오) +> long add(int a, int b) { return a+b; } + +오답: a. long add(int x, int y) { return x+y; } + // 메서드 이름이 같지만 매개변수의 이름만 다를 뿐 매개변수의 타입은 같기때문에 오답 +정답: b. long add(long a, long b) { return a+b; } + // 메서드 이름 같고, 매개변수의 타입이 다르기때문에 정답. +정답: c. int add(byte a, byte b) { return a+b; } + //메서드 이름 같고, 매개변수의 타입이 다르기때문에 정답. +정답: d. int add(long a, int b) { return (int)(a+b); } + // 메서드 이름 같고, 매개변수의 타입이 다르기때문에 정답. + +6-12. 다음 중 초기화에 대한 설명으로 옳지 않은 것은? (모두 고르시오) +정답: a. 멤버변수는 자동 초기화되므로 초기화하지 않고도 값을 참고할 수 있다. +정답: b. 지역변수는 사용하기 전에 반드시 초기화해야 한다. +오답: c. 초기화 블럭보다 생성자가 먼저 수행된다. + // 초기화블럭이 생성자보다 먼저 생성된다. +정답: d. 명시적 초기화를 제일 우선적으로 고려해야 한다. +오답: e. 클래스변수보다 인스턴스변수가 먼저 초기화된다 + //클래스변수 초기화 -> 인스턴스변수 초기화 + +6-13. 다음 중 인스턴스변수의 초기화 순서가 올바른 것은? +정답: a. 기본값-명시적초기화-초기화블럭-생성자 +오답: b. 기본값-명시적초기화-생성자-초기화블럭 +오답: c. 기본값-초기화블럭-명시적초기화-생성자 +오답: d. 기본값-초기화블럭-생성자-명시적초기화 + +6-14. 다음 중 지역변수에 대한 설명으로 옳지 않은 것은? (모두 고르시오) +오답: a. 자동 초기화되므로 별도의 초기화가 필요없다. + // 지역변수의 초기화는 필수이다. +정답: b. 지역변수가 선언된 메서드가 종료되면 지역변수도 함께 소멸된다. +정답: c. 메서드의 매개변수로 선언된 변수도 지역변수이다. +정답: d. 클래스변수나 인스턴스변수보다 메모리 부담이 적다. +오답: e. 힙(heap)영역에 생성되며 가비지 컬렉터에 의해 소멸된다. + // 힙(heap)영역: 인스턴스가 생성되는 영역. 지역변수는 호출스택에 생성된다. + +6-15. 호출스택이 다음과 같은 상황일 때 옳지 않은 설명은? (모두 고르시오) +정답: a. 제일 먼저 호출스택에 저장된 것은 main메서드이다. +오답: b. println메서드를 제외한 나머지 메서드들은 모두 종료된 상태이다. +정답: c. method2메서드를 호출한 것은 main메서드이다. +정답: d. println메서드가 종료되면 method1메서드가 수행을 재개한다. +정답: e. main-method2-method1-println의 순서로 호출되었다. +정답: f. 현재 실행중인 메서드는 println뿐이다. + +//6-16. 다음 코드의 실행 결과를 예측하여 적어주세요. +class Exercise6_16 { + public static void change(String str) { + str += "456"; + } + + public static void main(String[] args) { + String str = "ABC123"; + System.out.println(str); + change(str); + System.out.println("After change:" + str); + } +} + +답안: "ABC123" + "After change:" + str + 이유: 문자열은 내용을 변경 할 수 없기 떄문에 덧셈연삼을 하면 새로운 문자열이 생성되어 새로운 문자열의 주소가 변수 str(0*200)에 저장된다. + change메서드가 종료되면 메모리를 반환하고 change메서드가 삭제된다. 그리고 main메서도에 돌아오면 str(0*100)변수에는 여전히 같은 값이 출력된다. \ No newline at end of file diff --git a/src/LISHANYU/Report7/Report7_1.java b/src/LISHANYU/Report7/Report7_1.java new file mode 100644 index 0000000..40d65fd --- /dev/null +++ b/src/LISHANYU/Report7/Report7_1.java @@ -0,0 +1,27 @@ +package LISHANYU.Report7; +//6-17. 다음과 같이 정의된 메서드를 작성하고 테스트하세요. +//메서드명 : shuffle +//기능: + //주어진 배열에 담긴 값의 위치를 바꾸는 작업을 반복하여 뒤섞이게 한다. + //처리한 배열을 반환한다. +//반환타입 : int[] +//매개변수 : int[] arr - 정수값이 담긴 배열 +public class Report7_1 { + /*shuffle 메서드를 작성하세요. */ + public static void main(String[] args) { + int[] original = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; + System.out.println(java.util.Arrays.toString(original)); + + int[] result = shuffle(original); + System.out.println(java.util.Arrays.toString(result)); + } + static int[] shuffle(int[] arr){ + for(int i = 0; i '4'){ + return false; + } + } + return true; + } + +} +//예상 결과 : 123는 숫자입니까? true, 1234o는 숫자입니까? false + diff --git a/src/LISHANYU/Report7/Report7_3.java b/src/LISHANYU/Report7/Report7_3.java new file mode 100644 index 0000000..0bb331c --- /dev/null +++ b/src/LISHANYU/Report7/Report7_3.java @@ -0,0 +1,74 @@ +package LISHANYU.Report7; +//6-19.Tv클래스를 주어진 로직대로 완성하세요. 완성한 후에 실행해서 주어진 실행결과와 일치하는지 확인하세요 +public class Report7_3 { + public static void main(String args[]) { + MyTv t = new MyTv(); + t.channel = 100; + t.volume = 0; + System.out.println("CH:" + t.channel + ", VOL:" + t.volume); + t.channelDown(); + t.volumeDown(); + System.out.println("CH:" + t.channel + ", VOL:" + t.volume); + t.volume = 100; + t.channelUp(); + t.volumeUp(); + System.out.println("CH:" + t.channel + ", VOL:" + t.volume); + } +} + +class MyTv { + boolean isPowerOn; + int channel; + int volume; + final int MAX_VOLUME = 100; + final int MIN_VOLUME = 0; + final int MAX_CHANNEL = 100; + final int MIN_CHANNEL = 1; + + boolean turnOnOff() { + // (1) isPowerOn의 값이 true면 false로, false면 true로 바꾼다. +// isPowerOn = !isPowerOn; + if (isPowerOn == true){ + isPowerOn=false; + } + return false; + } + + void volumeUp() { + // (2) volume의 값이 MAX_VOLUME보다 작을 때만 값을 1 증가시킨다. + if (volumeMIN_VOLUME){ + volume--; + } + + } + + void channelUp() { + // (4) channel의 값을 1 증가시킨다. + // 만일 channel이 MAX_CHANNEL이면 , channel의 값을 MIN_CHANNEL로 바꾼다. + + if (channel==MAX_CHANNEL){ + channel = MIN_CHANNEL; + }else{ + channel++; + } + } + + void channelDown() { + // (5) channel의 값을 1 감소시킨다 . + // 만일 channel이 MIN_CHANNEL이면, channel의 값을 MAX_CHANNEL로 바꾼다. + + if (channel==MIN_CHANNEL){ + channel=MIN_CHANNEL; + }else { + channel--; + } + } +} + diff --git a/src/LISHANYU/Report7/Report7_4.java b/src/LISHANYU/Report7/Report7_4.java new file mode 100644 index 0000000..2a3b2bd --- /dev/null +++ b/src/LISHANYU/Report7/Report7_4.java @@ -0,0 +1,33 @@ +package LISHANYU.Report7; + +import java.util.Arrays; + +//6-20. 다음과 같이 정의된 메서드를 작성하고 테스트하세요. +//메서드명 : max +//기능 +// 주어진 int형 배열의 값 중에서 제일 큰 값을 반환한다. +// 만일 주어진 배열이 null이거나 크기가 0인 경우, -999999를 반환한다. +//반환타입 : int +//매개변수 : int[] arr - 최대값을 구할 배열 +public class Report7_4 { + /* (1) max 메서드를 작성하시오 . */ + public static void main(String[] args) { + int[] data = {3,2,9,4,7}; + System.out.println(java.util.Arrays.toString(data)); + System.out.println("최대값 :"+max(data)); + System.out.println("최대값 :"+max(null)); + System.out.println("최대값 :"+max(new int[]{})); // 크기가 0인 배열 } + } + static int max(int[] arr){ + if (arr==null || arr.length==0){ + return -999999; + } + int md = arr[0]; + for (int i=0; imd){ + md =arr[i]; + } + } + return md; + } +} diff --git a/src/LISHANYU/Report7/Report7_5.java b/src/LISHANYU/Report7/Report7_5.java new file mode 100644 index 0000000..1dc2be4 --- /dev/null +++ b/src/LISHANYU/Report7/Report7_5.java @@ -0,0 +1,18 @@ +package LISHANYU.Report7; +//6-21. 다음과 같이 정의된 메서드를 작성하고 테스트하시오. +//메서드명: abs + //기능 : 주어진 값의 절대값을 반환한다. +//반환타입 : int +//매개변수 : int value +public class Report7_5 { + /* (1) abs 메서드를 작성하시오. */ + public static void main(String[] args) { + int value = 5; + System.out.println(value + "의 절대값 :" + abs(value)); + value = -10; + System.out.println(value + "의 절대값 :" + abs(value)); + } + static int abs(int valve){ + return valve<0? -valve: valve; + } +} diff --git a/src/LISHANYU/report1/Report1_1 b/src/LISHANYU/report1/Report1_1 new file mode 100644 index 0000000..091952b --- /dev/null +++ b/src/LISHANYU/report1/Report1_1 @@ -0,0 +1,4 @@ +2-4번 문제 + +정답 :1.2.3.4 + diff --git a/src/LISHANYU/report1/Report1_2 b/src/LISHANYU/report1/Report1_2 new file mode 100644 index 0000000..0db8853 --- /dev/null +++ b/src/LISHANYU/report1/Report1_2 @@ -0,0 +1,3 @@ +2-7번 번 문제 + +정답 : 1) 12 2) true 3) 131 4) 51 5)99 6)Java 7)오류 \ No newline at end of file diff --git a/src/LISHANYU/report1/Report1_3.java b/src/LISHANYU/report1/Report1_3.java new file mode 100644 index 0000000..df28ac1 --- /dev/null +++ b/src/LISHANYU/report1/Report1_3.java @@ -0,0 +1,25 @@ +package LISHANYU.report1; +// 2-8 번 문제 <- 이렇게 문제 번호 작성 필수 +public class Report1_3 { + public static void main(String[] args) { + int x = 1; + int y = 2; + int z = 3; + + int tmp = x; + x =y; + y = z; + z = tmp; + + System.out.println("x="+x); + System.out.println("y="+y); + System.out.println("z="+z); + } +} + +// 필요하다면 클래스 추가 +//class AddClass { +// void test() { +// System.out.println("AddClass.test"); +// } +//} diff --git a/src/LISHANYU/report2/Report2-1 b/src/LISHANYU/report2/Report2-1 new file mode 100644 index 0000000..8954714 --- /dev/null +++ b/src/LISHANYU/report2/Report2-1 @@ -0,0 +1,3 @@ +3-1번 문제 + +정답 :4번 5번 diff --git a/src/LISHANYU/report2/Report2_2.java b/src/LISHANYU/report2/Report2_2.java new file mode 100644 index 0000000..025a6e3 --- /dev/null +++ b/src/LISHANYU/report2/Report2_2.java @@ -0,0 +1,32 @@ +package LISHANYU.report2; +// 3-2번 문제 +public class Report2_2 { + public static void main(String[] args) { + int x = 2; + int y = 5; + char c = 'A'; // 'A'의 문자코드는 65 + + System.out.println(y >= 5 || x < 0 && x > 2); + //true 이유: && 먼저 실행 후 || 실행하기때문에 true || false && false => true + System.out.println(y += 10 - x++); + //13 이유: y = y + (10 - (x+1)) = 5+(10-(2+1))=13 + System.out.println(x += 2); + //5 이유: x=x+2 단, 위에서 x=3으로 출력되어 x=3으로 입력한다.=> x=3+2=5 + System.out.println(!('A' <= c && c <= 'Z')); + //false 이유: !(65<=65 && 65 <= 90) => !(true) => false + System.out.println('C' - c); + //2 이유: 67-65=2 + System.out.println('5' - '0'); + //5 이유: 53-48=5 + System.out.println(c + 1); + //66 이유: 65+1=66 + System.out.println(++c); + //B 이유: 값이 참조되기 전에 증가시킨다 ++'A' = 65+1=66 => B + System.out.println(c++); + //B 값이 참조된 후에 증가시킨다. => 65+1=66 + System.out.println(c); + //C + + + } +} diff --git a/src/LISHANYU/report2/Report2_3.java b/src/LISHANYU/report2/Report2_3.java new file mode 100644 index 0000000..92ff161 --- /dev/null +++ b/src/LISHANYU/report2/Report2_3.java @@ -0,0 +1,10 @@ +//3-3. 아래는 변수의 num 값 중에서 백의 자리 이하를 버리는 코드이다. +//만일 변수 num의 값이 '456'이라면 '400'이 되고, '111'이라면 '100'이 된다. +//알맞은 코드를 넣으시오. +package LISHANYU.report2; +class Report2_3 { + public static void main(String[] args){ + int num = 456; + System.out.println(num/100*100); + } +} \ No newline at end of file diff --git a/src/LISHANYU/report2/Report2_4.java b/src/LISHANYU/report2/Report2_4.java new file mode 100644 index 0000000..0e3879e --- /dev/null +++ b/src/LISHANYU/report2/Report2_4.java @@ -0,0 +1,12 @@ +package LISHANYU.report2; +//3-4. 아래의 코드는 사과를 담는데 필요한 바구니(버켓)의 수를 구하는 코드이다. +//만일 사과의 수가 123개이고 하나의 바구니에는 10개의 사과를 담을 수 있다면, 13개의 바구니가 필요할 것이다. +//알맞은 코드를 넣으시오. +class Report2_4 { + public static void main(String[] args){ + int numOfApples = 123; // 사과의 개수 + int sizeOfBucket = 10; // 바구니의 크기(바구니에 담을 수 있는 사과의 개수) + int numOfBucket = numOfApples/sizeOfBucket+((numOfApples%sizeOfBucket) > 0 ? 1:0); // 모든 사과를 담는데 필요한 바구니의 수 + System.out.println("필요한 바구니의 수 :"+numOfBucket); + } +} \ No newline at end of file diff --git a/src/LISHANYU/report2/Report2_5.java b/src/LISHANYU/report2/Report2_5.java new file mode 100644 index 0000000..a079526 --- /dev/null +++ b/src/LISHANYU/report2/Report2_5.java @@ -0,0 +1,12 @@ +package LISHANYU.report2; + +//3-5. 아래는 변수 num의 값에 따라 '양수', '음수', '0'을 출력하는 코드이다. +//삼항연산자를 이용해서 빈칸에 알맞은 코드를 넣으시오. +//Hint : 삼항 연산자를 두 번 사용할 것! +public class Report2_5{ + public static void main(String[] args){ + int num = 10; + System.out.println(num > 0 ? "양수" : (num<0 ? "음수":0)); + } +} +//예상 결과 : 양수 \ No newline at end of file diff --git a/src/LISHANYU/report2/Report2_6.java b/src/LISHANYU/report2/Report2_6.java new file mode 100644 index 0000000..d3c9488 --- /dev/null +++ b/src/LISHANYU/report2/Report2_6.java @@ -0,0 +1,15 @@ +package LISHANYU.report2; + +//3-6. 아래는 화씨(Fahrenheit)를 섭씨(Celcius)로 변환하는 코드이다. +//변환 공식이 'C = 5/9*(F-32)'라고 할 때, 빈 칸에 알맞은 코드를 넣으시오. +// 단, 변환값은 소수점 셋째자리에서 반올림하며, Math.round() 함수를 사용하지 않고 처리할 것! +public class Report2_6{ + public static void main(String[] args){ + int fahrenheit = 100; + float celcius = (int)((5/9f * (fahrenheit-32))*100+0.5)/100f; + + System.out.println("Fahrenheit:"+fahrenheit); + System.out.println("Celcius:"+celcius); + } +} +//예상 결과 : Fahrenheit:100, Celcius:37.78 \ No newline at end of file diff --git a/src/studentenglishname/report1/Report1_1 b/src/studentenglishname/report1/Report1_1 deleted file mode 100644 index 3f37658..0000000 --- a/src/studentenglishname/report1/Report1_1 +++ /dev/null @@ -1,3 +0,0 @@ -2-4번 문제 - -정답 : diff --git a/src/studentenglishname/report1/Report1_2 b/src/studentenglishname/report1/Report1_2 deleted file mode 100644 index f4e5811..0000000 --- a/src/studentenglishname/report1/Report1_2 +++ /dev/null @@ -1,3 +0,0 @@ -2-7번 번 문제 - -정답 : \ No newline at end of file diff --git a/src/studentenglishname/report1/Report1_3.java b/src/studentenglishname/report1/Report1_3.java deleted file mode 100644 index 5b75b9c..0000000 --- a/src/studentenglishname/report1/Report1_3.java +++ /dev/null @@ -1,17 +0,0 @@ -package studentenglishname.report1; -// 2-8 번 문제 <- 이렇게 문제 번호 작성 필수 -public class Report1_3 { - public static void main(String[] args) { - // 정답 작성 - // Ex) - AddClass addClass = new AddClass(); - addClass.test(); - } -} - -// 필요하다면 클래스 추가 -class AddClass { - void test() { - System.out.println("AddClass.test"); - } -} diff --git a/src/studentenglishname/report2/Report2_2.java b/src/studentenglishname/report2/Report2_2.java deleted file mode 100644 index 71dbb48..0000000 --- a/src/studentenglishname/report2/Report2_2.java +++ /dev/null @@ -1,7 +0,0 @@ -package studentenglishname.report2; -// 3-2번 문제 -public class Report2_2 { - public static void main(String[] args) { - - } -}