From 2bf03413a928d6c402ff4f2dff026f48afa9f405 Mon Sep 17 00:00:00 2001 From: mydmk7874 Date: Wed, 18 Jan 2023 21:34:20 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=EA=B3=BC=EC=A0=9C=20=EC=A0=9C=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/kimdongmin/report1/Report1_1 | 3 ++ src/kimdongmin/report1/Report1_2 | 9 ++++++ .../report1/Report1_3.java | 19 +++++++++-- src/kimdongmin/report2/Report2_1 | 3 ++ src/kimdongmin/report2/Report2_2.java | 32 +++++++++++++++++++ src/kimdongmin/report2/Report2_3 | 3 ++ src/kimdongmin/report2/Report2_4 | 3 ++ src/kimdongmin/report2/Report2_5 | 3 ++ src/kimdongmin/report2/Report2_6 | 3 ++ 9 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 src/kimdongmin/report1/Report1_1 create mode 100644 src/kimdongmin/report1/Report1_2 rename src/{studentenglishname => kimdongmin}/report1/Report1_3.java (50%) create mode 100644 src/kimdongmin/report2/Report2_1 create mode 100644 src/kimdongmin/report2/Report2_2.java create mode 100644 src/kimdongmin/report2/Report2_3 create mode 100644 src/kimdongmin/report2/Report2_4 create mode 100644 src/kimdongmin/report2/Report2_5 create mode 100644 src/kimdongmin/report2/Report2_6 diff --git a/src/kimdongmin/report1/Report1_1 b/src/kimdongmin/report1/Report1_1 new file mode 100644 index 0000000..b46d710 --- /dev/null +++ b/src/kimdongmin/report1/Report1_1 @@ -0,0 +1,3 @@ +2-4번 문제 + +정답 : b, c, answer, f diff --git a/src/kimdongmin/report1/Report1_2 b/src/kimdongmin/report1/Report1_2 new file mode 100644 index 0000000..d814329 --- /dev/null +++ b/src/kimdongmin/report1/Report1_2 @@ -0,0 +1,9 @@ +2-7번 문제 + +정답 : 12 +true +131 +51 +99 +Java +오류 \ No newline at end of file diff --git a/src/studentenglishname/report1/Report1_3.java b/src/kimdongmin/report1/Report1_3.java similarity index 50% rename from src/studentenglishname/report1/Report1_3.java rename to src/kimdongmin/report1/Report1_3.java index 5b75b9c..e10a870 100644 --- a/src/studentenglishname/report1/Report1_3.java +++ b/src/kimdongmin/report1/Report1_3.java @@ -1,9 +1,23 @@ -package studentenglishname.report1; + +package kimdongmin.report1; // 2-8 번 문제 <- 이렇게 문제 번호 작성 필수 public class Report1_3 { public static void main(String[] args) { + int x = 1; + int y = 2; + int z = 3; + /* + 알맞은 코드를 넣어 완성하세요. + */ + int x_temp = x; + x = y; + y = z; + z = x_temp; + System.out.println("x="+x); + System.out.println("y="+y); + System.out.println("z="+z); // 정답 작성 - // Ex) + AddClass addClass = new AddClass(); addClass.test(); } @@ -11,6 +25,7 @@ public static void main(String[] args) { // 필요하다면 클래스 추가 class AddClass { + void test() { System.out.println("AddClass.test"); } diff --git a/src/kimdongmin/report2/Report2_1 b/src/kimdongmin/report2/Report2_1 new file mode 100644 index 0000000..ca1b671 --- /dev/null +++ b/src/kimdongmin/report2/Report2_1 @@ -0,0 +1,3 @@ +3-1 문제 + +정답: b, s, i \ No newline at end of file diff --git a/src/kimdongmin/report2/Report2_2.java b/src/kimdongmin/report2/Report2_2.java new file mode 100644 index 0000000..d8709c7 --- /dev/null +++ b/src/kimdongmin/report2/Report2_2.java @@ -0,0 +1,32 @@ +package kimdongmin.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,&& 연산자 먼저 계산되어 false이고 ||의 앞에 있는 y >= 5 가 true이기 때문에 true입니다 + System.out.println(y += 10 - x++); + // x++는 참조된 후에 계산되므로 10 - x++의 값은 8이고, y에 그 결과값 8을 더한 것이 최종 결과값이므로 13입니다 + System.out.println(x += 2); + // +=는 오른쪽 피연산자의 값을 왼쪽 피연산자에 더한 뒤 그 값을 출력하므로 3+2가 되어 5입니다 + System.out.println(!('A' <= c && c <= 'Z')); + // c는 'A'와 같고 'Z'보다는 작으므로 true이고, !는 그 값을 반대로 출력하므로 false입니다 + System.out.println('C' - c); + // 'C'의 문자코드는 67이므로 67-65는 2 입니다 + System.out.println('5' - '0'); + // '5'와 '0'은 문자코드에서도 연속된 값으로 5칸이 차이나므로 계산 결과 역시 5입니다 + System.out.println(c + 1); + // c = 'A'이고 'A'는 문자코드 65이므로 65+1은 66입니다 + System.out.println(++c); + // ++를 c 앞에 붙일 때에는 참조되기 전에 c의 값을 증가시키므로 B가 출력됩니다 + System.out.println(c++); + // ++를 c 뒤에 붙였으므로 기존 c의 값인 B가 출력되고, 참조된 후에 c의 값이 증가해 C가 됩니다 + System.out.println(c); + // 위의 c++의 결과 c의 값이 C가 되었습니다 + + + } +} diff --git a/src/kimdongmin/report2/Report2_3 b/src/kimdongmin/report2/Report2_3 new file mode 100644 index 0000000..c1f3b0e --- /dev/null +++ b/src/kimdongmin/report2/Report2_3 @@ -0,0 +1,3 @@ +3-3 문제 + +정답 : (int)(Math.floor((num/100)*100)) \ No newline at end of file diff --git a/src/kimdongmin/report2/Report2_4 b/src/kimdongmin/report2/Report2_4 new file mode 100644 index 0000000..6664149 --- /dev/null +++ b/src/kimdongmin/report2/Report2_4 @@ -0,0 +1,3 @@ +3-4 문제 + +정답 : numOfApples / sizeOfBucket + 1 \ No newline at end of file diff --git a/src/kimdongmin/report2/Report2_5 b/src/kimdongmin/report2/Report2_5 new file mode 100644 index 0000000..3700db5 --- /dev/null +++ b/src/kimdongmin/report2/Report2_5 @@ -0,0 +1,3 @@ +3-5 문제 + +정답 : num >= 0 ? (num > 0 ? "양수" : "0" ) : "음수" \ No newline at end of file diff --git a/src/kimdongmin/report2/Report2_6 b/src/kimdongmin/report2/Report2_6 new file mode 100644 index 0000000..d77ba49 --- /dev/null +++ b/src/kimdongmin/report2/Report2_6 @@ -0,0 +1,3 @@ +3-6 문제 + +정답 : (fahrenheit-32)*5*100/9%10 >=5 ? ((fahrenheit-32)*5*100/9+1)/100f : ((fahrenheit-32)*5*100/9)/100f \ No newline at end of file From 4ae6e09ff154d032b8b385ce6cb4fef19f9251dc Mon Sep 17 00:00:00 2001 From: mydmk7874 Date: Thu, 19 Jan 2023 16:48:38 +0900 Subject: [PATCH 2/5] =?UTF-8?q?Report3=20=EA=B3=BC=EC=A0=9C=20=EC=A0=9C?= =?UTF-8?q?=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/kimdongmin/report3/Report3_1 | 18 +++++++++++++++ src/kimdongmin/report3/Report3_10.java | 31 ++++++++++++++++++++++++++ src/kimdongmin/report3/Report3_2.java | 21 +++++++++++++++++ src/kimdongmin/report3/Report3_3.java | 21 +++++++++++++++++ src/kimdongmin/report3/Report3_4.java | 24 ++++++++++++++++++++ src/kimdongmin/report3/Report3_5.java | 29 ++++++++++++++++++++++++ src/kimdongmin/report3/Report3_6.java | 23 +++++++++++++++++++ src/kimdongmin/report3/Report3_7.java | 22 ++++++++++++++++++ src/kimdongmin/report3/Report3_8.java | 12 ++++++++++ src/kimdongmin/report3/Report3_9.java | 24 ++++++++++++++++++++ 10 files changed, 225 insertions(+) create mode 100644 src/kimdongmin/report3/Report3_1 create mode 100644 src/kimdongmin/report3/Report3_10.java create mode 100644 src/kimdongmin/report3/Report3_2.java create mode 100644 src/kimdongmin/report3/Report3_3.java create mode 100644 src/kimdongmin/report3/Report3_4.java create mode 100644 src/kimdongmin/report3/Report3_5.java create mode 100644 src/kimdongmin/report3/Report3_6.java create mode 100644 src/kimdongmin/report3/Report3_7.java create mode 100644 src/kimdongmin/report3/Report3_8.java create mode 100644 src/kimdongmin/report3/Report3_9.java diff --git a/src/kimdongmin/report3/Report3_1 b/src/kimdongmin/report3/Report3_1 new file mode 100644 index 0000000..f65729b --- /dev/null +++ b/src/kimdongmin/report3/Report3_1 @@ -0,0 +1,18 @@ +// 4-1번 문제 + +정답 : +10 < x && x < 20 + +!(ch==' ' || ch=='\t') + +ch=='x' || ch=='X' + +'0' <= ch && ch <= '9' + +'a' <= ch && ch <= 'Z' + +year % 400==0 || (year % 4==0 && year % 100 != 0) + +powerOn == false + +str.equals("yes") \ No newline at end of file diff --git a/src/kimdongmin/report3/Report3_10.java b/src/kimdongmin/report3/Report3_10.java new file mode 100644 index 0000000..0a18366 --- /dev/null +++ b/src/kimdongmin/report3/Report3_10.java @@ -0,0 +1,31 @@ +package kimdongmin.report3; + +public class Report3_10 { +} +//4-10 문제 +class Exercise4_14 { + 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 { + count++; + System.out.print("1과 100사이의 값을 입력하세요 : "); + input = s.nextInt(); //입력받은 값을 변수 input에 저장한다. + /*빈 칸*/ + if(input==answer) { + System.out.println("맞혔습니다."); + System.out.println("시도횟수는 "+ count + "번입니다."); + break; + } else if (input > answer) { + System.out.println("더 작은 수를 입력하세요."); + } else { + System.out.println("더 큰 수를 입력하세요."); + } + } while(true); //무한반복문 + } // end of main +} // end of class \ No newline at end of file diff --git a/src/kimdongmin/report3/Report3_2.java b/src/kimdongmin/report3/Report3_2.java new file mode 100644 index 0000000..be1257d --- /dev/null +++ b/src/kimdongmin/report3/Report3_2.java @@ -0,0 +1,21 @@ +package kimdongmin.report3; + +public class Report3_2 { + +} +//4-2 문제 +class Exercise4_2 { + public static void main(String[] args) { + int sum = 0; + /*빈 칸*/ + for(int i=1;i <= 20; i++) { + if (i % 2 == 0 || i % 3 == 0) + continue; + sum += i ; + } + //빈칸끝 + System.out.println("sum="+sum); + } +} + +//정답은 73 입니다. \ No newline at end of file diff --git a/src/kimdongmin/report3/Report3_3.java b/src/kimdongmin/report3/Report3_3.java new file mode 100644 index 0000000..a699812 --- /dev/null +++ b/src/kimdongmin/report3/Report3_3.java @@ -0,0 +1,21 @@ +package kimdongmin.report3; + +public class Report3_3 { +} +//4-3 문제 + +class Exercise4_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.println("totalSum="+totalSum); + } +} +//정답은 220 입니다. \ No newline at end of file diff --git a/src/kimdongmin/report3/Report3_4.java b/src/kimdongmin/report3/Report3_4.java new file mode 100644 index 0000000..a561518 --- /dev/null +++ b/src/kimdongmin/report3/Report3_4.java @@ -0,0 +1,24 @@ +package kimdongmin.report3; + +public class Report3_4 { +} +//4_4 문제 +class Exercise4_4 { + public static void main(String[] args) { + int sum = 0; // 총합을 저장할 변수 + int s = 1; // 값의 부호를 바꿔주는데 사용할 변수 + int num = 0; + /*빈 칸*/ + while (true){ + if(sum >= 100) + break; + num++; + sum += num*s; + s = -s; + } + //빈칸끝 + System.out.println("num="+num); + System.out.println("sum="+sum); + } +} +//정답은 199 입니다. \ No newline at end of file diff --git a/src/kimdongmin/report3/Report3_5.java b/src/kimdongmin/report3/Report3_5.java new file mode 100644 index 0000000..dd950b4 --- /dev/null +++ b/src/kimdongmin/report3/Report3_5.java @@ -0,0 +1,29 @@ +package kimdongmin.report3; +//4_5 문제 + +public class Report3_5 { + public static void main(String[] args) { + 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 + + +//정답 +class answer { + 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(); + } + } +} \ No newline at end of file diff --git a/src/kimdongmin/report3/Report3_6.java b/src/kimdongmin/report3/Report3_6.java new file mode 100644 index 0000000..a1cecdf --- /dev/null +++ b/src/kimdongmin/report3/Report3_6.java @@ -0,0 +1,23 @@ +package kimdongmin.report3; + +//4-6 문제 +public class Report3_6 { +} + +//정답 +class Exercise4_6 { + public static void main(String[] args) { + /*빈 칸*/ + int[] dice1 = {1, 2, 3, 4, 5, 6}; + int[] dice2 = {1, 2, 3, 4, 5, 6}; + + for(int i=0; i < dice1.length; i++) { + for(int j=0; j < dice2.length; j++) { + if(dice1[i] + dice2[j] == 6) + System.out.println(dice1[i] + "," + dice2[j]); + } + } + //빈칸끝 + + } +} \ No newline at end of file diff --git a/src/kimdongmin/report3/Report3_7.java b/src/kimdongmin/report3/Report3_7.java new file mode 100644 index 0000000..c985cc7 --- /dev/null +++ b/src/kimdongmin/report3/Report3_7.java @@ -0,0 +1,22 @@ +package kimdongmin.report3; + +//4-7 문제 +public class Report3_7 { +} + +class Exercise4_7 { + public static void main(String[] args) { + String str = "12345"; + int sum = 0; + + for (int i = 0; i < str.length(); i++) { + /*빈 칸*/ + sum += str.charAt(i)-'0'; + //빈칸 끝 + } + + System.out.println("sum=" + sum); + } +}//예상 결과 : sum=15 + +//정답은 sum += str.charAt(i)-'0'; 입니다. \ No newline at end of file diff --git a/src/kimdongmin/report3/Report3_8.java b/src/kimdongmin/report3/Report3_8.java new file mode 100644 index 0000000..6e61e92 --- /dev/null +++ b/src/kimdongmin/report3/Report3_8.java @@ -0,0 +1,12 @@ +package kimdongmin.report3; + +public class Report3_8 { +} +//문제 4-8 +class Exercise4_8{ + public static void main(String[] args){ + int value = (/*빈 칸*/(int)(Math.random()*6+1) /* 빈칸끝 */); + System.out.println("value:"+value); + } +} +//정답은 (int)(Math.random()*6+1) 입니다. \ No newline at end of file diff --git a/src/kimdongmin/report3/Report3_9.java b/src/kimdongmin/report3/Report3_9.java new file mode 100644 index 0000000..87e0d63 --- /dev/null +++ b/src/kimdongmin/report3/Report3_9.java @@ -0,0 +1,24 @@ +package kimdongmin.report3; + +public class Report3_9 { +} +//4-9 문제 +class Exercise4_9 { + public static void main(String[] args) { + int num = 12345; + int sum = 0; + /*빈 칸*/ + while (num >= 1) { + sum += num % 10; + num = num / 10; + } + //빈칸끝 + System.out.println("sum=" + sum); + } +} + +//정답은 while (num >= 1) { +// sum += num % 10; +// num = num / 10; +// } +//입니다 \ No newline at end of file From e6fde73dddca6a4a7e4a80d996bd0e4951ab8ca6 Mon Sep 17 00:00:00 2001 From: mydmk7874 Date: Thu, 19 Jan 2023 20:14:58 +0900 Subject: [PATCH 3/5] =?UTF-8?q?Report4=20=EA=B3=BC=EC=A0=9C=20=EC=A0=9C?= =?UTF-8?q?=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/kimdongmin/report4/Report4_1 | 14 +++++++++++ src/kimdongmin/report4/Report4_2 | 3 +++ src/kimdongmin/report4/Report4_3.java | 22 +++++++++++++++++ src/kimdongmin/report4/Report4_4.java | 31 ++++++++++++++++++++++++ src/kimdongmin/report4/Report4_5.java | 32 ++++++++++++++++++++++++ src/kimdongmin/report4/Report4_6.java | 35 +++++++++++++++++++++++++++ 6 files changed, 137 insertions(+) create mode 100644 src/kimdongmin/report4/Report4_1 create mode 100644 src/kimdongmin/report4/Report4_2 create mode 100644 src/kimdongmin/report4/Report4_3.java create mode 100644 src/kimdongmin/report4/Report4_4.java create mode 100644 src/kimdongmin/report4/Report4_5.java create mode 100644 src/kimdongmin/report4/Report4_6.java diff --git a/src/kimdongmin/report4/Report4_1 b/src/kimdongmin/report4/Report4_1 new file mode 100644 index 0000000..4c128aa --- /dev/null +++ b/src/kimdongmin/report4/Report4_1 @@ -0,0 +1,14 @@ +5_1 문제 + +정답: +int[] arr[]; +틀린 이유: arr 뒤에 []를 붙이면 안됨. + +int[] arr = new int[5]{1,2,3,4,5}; +틀린 이유: 배열 길이와 내용물은 따로 저장해야함. + +int arr[5]; +틀린 이유: 배열 길이 선언은 int[] arr = new int[5]; 의 형태로 해야 함. + +int[] arr[] = new int[3][]; +틀린 이유: 2차원 배열은 int[][] arr = new int[3][4]; 의 형태로 선언해야함. \ No newline at end of file diff --git a/src/kimdongmin/report4/Report4_2 b/src/kimdongmin/report4/Report4_2 new file mode 100644 index 0000000..2e64458 --- /dev/null +++ b/src/kimdongmin/report4/Report4_2 @@ -0,0 +1,3 @@ +5-2 문제 + +정답 : arr[3]은 4번째 행, {30,30}을 의미하므로 arr[3].length 의 값은 2 이다. \ No newline at end of file diff --git a/src/kimdongmin/report4/Report4_3.java b/src/kimdongmin/report4/Report4_3.java new file mode 100644 index 0000000..5195ec6 --- /dev/null +++ b/src/kimdongmin/report4/Report4_3.java @@ -0,0 +1,22 @@ +package kimdongmin.report4; + +public class Report4_3 { +} +//5-3 문제 +class Exercise5_3{ + public static void main(String[] args){ + int[] arr = {10, 20, 30, 40, 50}; + int sum = 0; + /*빈 칸*/ + for(int i=0; i < arr.length; i++) { + sum += arr[i]; + } + //빈칸끝 + System.out.println("sum="+sum); + } +}//예상 결과 : sum=150 + +//정답은 for(int i=0; i < arr.length; i++) { +// sum += arr[i]; +// } +// 입니다. \ No newline at end of file diff --git a/src/kimdongmin/report4/Report4_4.java b/src/kimdongmin/report4/Report4_4.java new file mode 100644 index 0000000..dc272af --- /dev/null +++ b/src/kimdongmin/report4/Report4_4.java @@ -0,0 +1,31 @@ +package kimdongmin.report4; + +public class Report4_4 { +} +//5-4 문제 +class Exercise5_4 { + public static void main(String[] args) { + int[][] arr = { + { 5, 5, 5, 5, 5 }, + { 10, 10, 10, 10, 10 }, + { 20, 20, 20, 20, 20 }, + { 30, 30, 30, 30, 30 } + }; + + int total = 0; + float average = 0; + + /*빈 칸*/ + for (int i=0; i < arr.length ; i++){ + for (int j=0; j < arr[i].length; j++) { + total += arr[i][j]; + if (i==arr.length-1 && j==arr[i].length-1) + average = total/(i+1f)/(j+1f); + } + } + //빈칸 끝 + + System.out.println("total=" + total); + System.out.println("average=" + average); + } // end of main +} // end of class \ No newline at end of file diff --git a/src/kimdongmin/report4/Report4_5.java b/src/kimdongmin/report4/Report4_5.java new file mode 100644 index 0000000..2b5a465 --- /dev/null +++ b/src/kimdongmin/report4/Report4_5.java @@ -0,0 +1,32 @@ +package kimdongmin.report4; + +import java.util.Arrays; + +public class Report4_5 { +} +//5-5 문제 +class Exercise5_5{ + public static void main(String[] args) { + int[] ballArr = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; + int[] ball3 = new int[3]; + + // 배열 ballArr의 임의의 요소를 골라서 위치를 바꾼다 + for (int i = 0; i < ballArr.length; i++) { + int j = (int) (Math.random() * ballArr.length); + int tmp = 0; + /*빈 칸*/ + tmp = ballArr[i]; + ballArr[i] = ballArr[j]; + ballArr[j] = tmp; + } + + // 배열 ballArr의 앞에서 3개의 수를 배열 ball3로 복사한다 + + /*빈 칸*/ + ball3 = Arrays.copyOfRange(ballArr,0,3); + + for (int i = 0; i < ball3.length; i++) { + System.out.print(ball3[i]); + } + }//end of main +}//end of class \ No newline at end of file diff --git a/src/kimdongmin/report4/Report4_6.java b/src/kimdongmin/report4/Report4_6.java new file mode 100644 index 0000000..79793f8 --- /dev/null +++ b/src/kimdongmin/report4/Report4_6.java @@ -0,0 +1,35 @@ +package kimdongmin.report4; +import java.util.Scanner; + +public class Report4_6 { +} +//5-6 문제 +class Exercise5_13 { + public static void main(String args[]) { + String[] words = { "television", "computer", "mouse", "phone" }; + + Scanner scanner = new Scanner(System.in); + + for (int i = 0; i < words.length; i++) { + char[] question = words[i].toCharArray(); // String을 char[]로 변환 + + /*빈 칸*/ + for (int j = 0; j < question.length; j++) { + int num = (int)(Math.random()* question.length); + char tmp = question[0]; + question[0] = question[num]; + question[num] = tmp; + } + //빈칸 끝 + + System.out.printf("Q%d. %s의 정답을 입력하세요 .>", 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 +}//end of class \ No newline at end of file From 0fb0784dba8bf241b20c103904ac125079f3b522 Mon Sep 17 00:00:00 2001 From: mydmk7874 Date: Thu, 19 Jan 2023 20:17:29 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=ED=9D=90?= =?UTF-8?q?=EB=A6=84=20Flowchart=20=EA=B3=BC=EC=A0=9C=20=EC=A0=9C=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/kimdongmin/report3/login.drawio.png | Bin 0 -> 42751 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/kimdongmin/report3/login.drawio.png diff --git a/src/kimdongmin/report3/login.drawio.png b/src/kimdongmin/report3/login.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..b79b255c383c56ed08a37111459b65cec6b3e5ad GIT binary patch literal 42751 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 OXRWQHO_{ZK?0*2F@ad%h literal 0 HcmV?d00001 From 565ab78f1fa0795cd7fb91b5a0a4df7f80cd52b9 Mon Sep 17 00:00:00 2001 From: mydmk7874 Date: Wed, 25 Jan 2023 15:31:53 +0900 Subject: [PATCH 5/5] =?UTF-8?q?Report=205,=206,=207=20=EA=B3=BC=EC=A0=9C?= =?UTF-8?q?=20=EC=A0=9C=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/kimdongmin/report5/Report5_1 | 18 +++++ src/kimdongmin/report5/Report5_2.java | 82 ++++++++++++++++++++ src/kimdongmin/report5/Report5_4.java | 19 +++++ src/kimdongmin/report5/Report5_5.java | 26 +++++++ src/kimdongmin/report6/Report6_1.txt | 107 ++++++++++++++++++++++++++ src/kimdongmin/report7/Report7_1.java | 36 +++++++++ src/kimdongmin/report7/Report7_2.java | 36 +++++++++ src/kimdongmin/report7/Report7_3.java | 72 +++++++++++++++++ src/kimdongmin/report7/Report7_4.java | 37 +++++++++ src/kimdongmin/report7/Report7_5.java | 25 ++++++ 10 files changed, 458 insertions(+) create mode 100644 src/kimdongmin/report5/Report5_1 create mode 100644 src/kimdongmin/report5/Report5_2.java create mode 100644 src/kimdongmin/report5/Report5_4.java create mode 100644 src/kimdongmin/report5/Report5_5.java create mode 100644 src/kimdongmin/report6/Report6_1.txt create mode 100644 src/kimdongmin/report7/Report7_1.java create mode 100644 src/kimdongmin/report7/Report7_2.java create mode 100644 src/kimdongmin/report7/Report7_3.java create mode 100644 src/kimdongmin/report7/Report7_4.java create mode 100644 src/kimdongmin/report7/Report7_5.java diff --git a/src/kimdongmin/report5/Report5_1 b/src/kimdongmin/report5/Report5_1 new file mode 100644 index 0000000..4f83b95 --- /dev/null +++ b/src/kimdongmin/report5/Report5_1 @@ -0,0 +1,18 @@ +//6-1. 다음과 같은 멤버 변수를 갖는 Student 클래스를 정의하세요. +//타입 : String, 변수명 : name, 설명 : 학생 이름 +//타입 : int, 변수명 : ban, 설명 : 반 +//타입 : int, 변수명 : no, 설명 : 번호 +//타입 : int, 변수명 : kor, 설명 : 국어 점수 +//타입 : int, 변수명 : eng, 설명 : 영어 점수 +//타입 : int, 변수명 : math, 설명 : 수학 점수 + +정답: + +class student { + String name; //학생 이름 + int ban; // 반 + int no; // 번호 + int kor; // 국어 점수 + int eng; // 영어 점수 + int math; // 수학 점수 + } \ No newline at end of file diff --git a/src/kimdongmin/report5/Report5_2.java b/src/kimdongmin/report5/Report5_2.java new file mode 100644 index 0000000..ddc3cfa --- /dev/null +++ b/src/kimdongmin/report5/Report5_2.java @@ -0,0 +1,82 @@ +package kimdongmin.report5; +//6-2, 6-3 답지 +//Report5_2.java와 Report5_3.java로 나누어 제출하고자 했으나 +// java: duplicate class 에러가 뜨며 실행이 안되어서 따로 올립니다 + +//6-2. 6-1에서 정의한 Student 클래스에 생성자와 info()를 추가해서 실행결과와 같은 결과를 얻도록 하세요. +public class Report5_2 { +} + + +class Exercise6_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 +} + +//6-3. 연습문제 6-1에서 정의한 Student 클래스에 다음과 같이 정의된 두 개의 메서드를 추가하세요. +//1. 메서드명 : getTotal +//기능 : 국어(kor), 영어(eng), 수학(math)의 점수를 모두 더해서 반환한다. +//반환타입 : int +//매개변수 : 없음 +//2. 메서드명 : getAverage +//기능 : 총점(국어점수+영어점수+수학점수)을 과목수로 나눈 평균을 구한다. +//소수점 둘째자리에서 반올림할 것. +//반환타입 : float +//매개변수 : 없음 + +class Exercise6_3 { + public static void main(String args[]) { + Student s = new Student(); + 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 Student{ + /*빈 칸*/ + String name; //학생 이름 + int ban; // 반 + int no; // 번호 + int kor; // 국어 점수 + int eng; // 영어 점수 + int math; // 수학 점수 + + public Student(){ + + } + + public 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; + } + + String info() { + return name +", "+ ban+", "+ no+", "+ kor+", "+ eng+", "+ math; + } + + int getTotal() { + int sum = kor+eng+math; + return sum; + } + + float getAverage() { + float average = Math.round((kor+eng+math)*10/3f)/10f; + return average; + } + +} \ No newline at end of file diff --git a/src/kimdongmin/report5/Report5_4.java b/src/kimdongmin/report5/Report5_4.java new file mode 100644 index 0000000..07325a8 --- /dev/null +++ b/src/kimdongmin/report5/Report5_4.java @@ -0,0 +1,19 @@ +package kimdongmin.report5; + +public class Report5_4 { +} + +//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); + } +} \ No newline at end of file diff --git a/src/kimdongmin/report5/Report5_5.java b/src/kimdongmin/report5/Report5_5.java new file mode 100644 index 0000000..10fd33b --- /dev/null +++ b/src/kimdongmin/report5/Report5_5.java @@ -0,0 +1,26 @@ +package kimdongmin.report5; + +public class Report5_5 { +} + +//6-7. 다음은 컴퓨터 게임의 병사(marine)를 클래스로 정의한 것이다. +//이 클래스의 멤버 중에 static을 붙여야 하는 것은 어떤 것들이고 그 이유는 무엇인가? +//(단, 모든 병사의 공격력과 방어력은 같아야 한다.) +class Marine { + int x=0, y=0; //Marine의 위치좌표 (x,y) + int hp = 60; //현재 체력 + int weapon = 6; //공격력 + int armor = 0; //방어력 + void weaponUp() { + weapon++; + } + void armorUp() { + armor++; + } + void move(int x, int y) { + this.x = x; + this.y = y; + } +} +// static 이 붙어야 하는 것은 모든 marine이 동일한 값을 가져야 하는 변수입니다. +// 따라서 weapon 과 armor 의 앞에 static이 붙어야 합니다. \ No newline at end of file diff --git a/src/kimdongmin/report6/Report6_1.txt b/src/kimdongmin/report6/Report6_1.txt new file mode 100644 index 0000000..7c6f321 --- /dev/null +++ b/src/kimdongmin/report6/Report6_1.txt @@ -0,0 +1,107 @@ +6-8. 다음 중 생성자에 대한 설명으로 옳지 않은 것은? (모두 고르시오) +a. 모든 생성자의 이름은 클래스의 이름과 동일해야한다. +b. 생성자는 객체를 생성하기 위한 것이다. +c. 클래스에는 생성자가 반드시 하나 이상 있어야 한다. +d. 생성자가 없는 클래스는 컴파일러가 기본 생성자를 추가한다. +e. 생성자는 오버로딩 할 수 없다. + +정답 : b, c, e +b : 생성자는 객체의 초기화를 위한 매서드이다. +c : 클래스에 생성자가 없을 경우 컴파일러가 자동적으로 매개변수가 없는 기본 생성자를 추가한다. +e : 생성자는 오버로딩이 가능하다. + +6-9. 다음 중 this에 대한 설명으로 맞지 않은 것은? (모두 고르시오) +a. 객체 자신을 가리키는 참조변수이다. +b. 클래스 내에서라면 어디서든 사용할 수 있다. +c. 지역변수와 인스턴스변수를 구별할 때 사용한다. +d. 클래스 메서드 내에서는 사용할 수 없다. + +정답 : b +b : this는 생성자를 포함한 인스턴스 메서드 내에서만 사용 가능하다. + +6-10. 다음 중 오버로딩이 성립하기 위한 조건이 아닌 것은? (모두 고르시오) +a. 메서드의 이름이 같아야 한다. +b. 매개변수의 개수나 타입이 달라야 한다. +c. 리턴타입이 달라야 한다. +d. 매개변수의 이름이 달라야 한다. + +정답 : c, d +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); } + +정답 : b, c, d +a는 매개변수 이름만 바꾼 것으로 아무 의미가 없다. + + +6-12. 다음 중 초기화에 대한 설명으로 옳지 않은 것은? (모두 고르시오) +a. 멤버변수는 자동 초기화되므로 초기화하지 않고도 값을 참고할 수 있다. +b. 지역변수는 사용하기 전에 반드시 초기화해야 한다. +c. 초기화 블럭보다 생성자가 먼저 수행된다. +d. 명시적 초기화를 제일 우선적으로 고려해야 한다. +e. 클래스변수보다 인스턴스변수가 먼저 초기화된다 + +정답 : c, e +c : 초기화 순서는 기본값 - 명시적 초기화 - 초기화 블럭 - 생성자 순서이다. +e : 클래스 변수는 클래스가 처음 로딩될 때 바로 초기화되므로 인스턴스 변수보다 먼저 초기화된다. + +6-13. 다음 중 인스턴스변수의 초기화 순서가 올바른 것은? +a. 기본값-명시적초기화-초기화블럭-생성자 +b. 기본값-명시적초기화-생성자-초기화블럭 +c. 기본값-초기화블럭-명시적초기화-생성자 +d. 기본값-초기화블럭-생성자-명시적초기화 + +정답 : a + +6-14. 다음 중 지역변수에 대한 설명으로 옳지 않은 것은? (모두 고르시오) +a. 자동 초기화되므로 별도의 초기화가 필요없다. +b. 지역변수가 선언된 메서드가 종료되면 지역변수도 함께 소멸된다. +c. 메서드의 매개변수로 선언된 변수도 지역변수이다. +d. 클래스변수나 인스턴스변수보다 메모리 부담이 적다. +e. 힙(heap)영역에 생성되며 가비지 컬렉터에 의해 소멸된다. + +정답 : a, e + +a : 지역변수는 반드시 초기화 후 사용해야 한다. +e : 지역변수는 stack 영역에 생성된다. + +6-15. 호출스택이 다음과 같은 상황일 때 옳지 않은 설명은? (모두 고르시오) +a. 제일 먼저 호출스택에 저장된 것은 main메서드이다. +b. println메서드를 제외한 나머지 메서드들은 모두 종료된 상태이다. +c. method2메서드를 호출한 것은 main메서드이다. +d. println메서드가 종료되면 method1메서드가 수행을 재개한다. +e. main-method2-method1-println의 순서로 호출되었다. +f. 현재 실행중인 메서드는 println뿐이다. + +정답 : b +b : 나머지 메서드들은 대기 상태이고, 위쪽 메서드가 종료되면 다시 실행된다. + +//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: ABC123 + +change(String str)에서 변수를 참조형 매개변수가 아닌 기본형 매개변수로 지정했기 때문에 +main 안의 str 값을 복사해서 넘어간 것이므로 str의 값은 변하지 않는다. \ No newline at end of file diff --git a/src/kimdongmin/report7/Report7_1.java b/src/kimdongmin/report7/Report7_1.java new file mode 100644 index 0000000..e197e50 --- /dev/null +++ b/src/kimdongmin/report7/Report7_1.java @@ -0,0 +1,36 @@ +package kimdongmin.report7; + +import java.util.Arrays; + +public class Report7_1 { +} + +//6-17. 다음과 같이 정의된 메서드를 작성하고 테스트하세요. +// 메서드명 : shuffle +// 기능 +// 주어진 배열에 담긴 값의 위치를 바꾸는 작업을 반복하여 뒤섞이게 한다. +// 처리한 배열을 반환한다. +// 반환타입 : int[] +// 매개변수 : int[] arr - 정수값이 담긴 배열 +class Exercise6_17 { + + /*shuffle 메서드를 작성하세요. */ + static int[] shuffle(int[] arr) { + for (int i=0;i MIN_VOLUME) + volume--; + } + void channelUp() { + // (4) channel의 값을 1 증가시킨다. + // 만일 channel이 MAX_CHANNEL이면 , channel의 값을 MIN_CHANNEL로 바꾼다. + if (channel < MAX_CHANNEL) + channel++; + else channel = MIN_CHANNEL; + } + void channelDown() { + // (5) channel의 값을 1 감소시킨다 . + // 만일 channel이 MIN_CHANNEL이면, channel의 값을 MAX_CHANNEL로 바꾼다. + if (channel >MIN_CHANNEL) + channel--; + else channel = MAX_CHANNEL; + } +} + +class Exercise6_19 { + public static void main(String args[]) { + MyTv t = new MyTv(); + + System.out.println(t.isPowerOn); + t.turnOnOff(); + System.out.println(t.isPowerOn); + t.turnOnOff(); + System.out.println(t.isPowerOn); + + 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); + } +} + +//예상 결과 : CH: 100, VOL: 0 / CH: 99, VOL: 0 / CH: 100, VOL: 100 \ No newline at end of file diff --git a/src/kimdongmin/report7/Report7_4.java b/src/kimdongmin/report7/Report7_4.java new file mode 100644 index 0000000..83da704 --- /dev/null +++ b/src/kimdongmin/report7/Report7_4.java @@ -0,0 +1,37 @@ +package kimdongmin.report7; + +public class Report7_4 { +} + +//6-20. 다음과 같이 정의된 메서드를 작성하고 테스트하세요. +// 메서드명 : max +// 기능 +// 주어진 int형 배열의 값 중에서 제일 큰 값을 반환한다. +// 만일 주어진 배열이 null이거나 크기가 0인 경우, -999999를 반환한다. +// 반환타입 : int +// 매개변수 : int[] arr - 최대값을 구할 배열 +class Exercise6_20 { + /* (1) max 메서드를 작성하시오 . */ + static int max(int[] arr) { + if (arr == null || arr.length == 0) + return -999999; + else { + int j = 0; + for (int i=0;i < arr.length; i++) { + if (j < arr[i]) + j = arr[i]; + } + return j; + } + } + + 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인 배열 } + } +} + +//예상 결과 : 최대값: 9 / 최대값: -99999 최대값: -999999 \ No newline at end of file diff --git a/src/kimdongmin/report7/Report7_5.java b/src/kimdongmin/report7/Report7_5.java new file mode 100644 index 0000000..72bba41 --- /dev/null +++ b/src/kimdongmin/report7/Report7_5.java @@ -0,0 +1,25 @@ +package kimdongmin.report7; + +public class Report7_5 { +} + +//6-21. 다음과 같이 정의된 메서드를 작성하고 테스트하시오. +// 메서드명: abs +// 기능 : 주어진 값의 절대값을 반환한다. +// 반환타입 : int +// 매개변수 : int value +class Exercise6_21 { + /* (1) abs 메서드를 작성하시오. */ + static int abs(int value) { + if (value >=0) + return value; + else return -value; + } + public static void main(String[] args) { + int value = 5; + System.out.println(value + "의 절대값 :" + abs(value)); + value = -10; + System.out.println(value + "의 절대값 :" + abs(value)); + } +} +//예상 결과 : 5의 절대값 : 5 / -10의 절대값 : 10 \ No newline at end of file