[[TableOfContents]] == 일시 == * 오후 12시 15분 ~ 12시 45분 == 참가자 == || 유재범 || 불참 || || 최다인 || 참석 || || 이지수 || 참석 || || 김용준 || 불참 || || 김정민 || 참석 || == 진행 상황 == * 김정민 학우의 발표 * Java의 정석 - Chapter 5 === 발표 내용 === * C에서의 배열은 선언과 생성이 동시에 되나, Java에서는 선언과 생성이 다름. {{{ int[] arr; : 선언 arr = new int[5]; : 생성 int[] arr = new int[5]; : 선언과 생성, 동시에. 자동으로 0으로 초기화 int[] arr = {1, 2, 3, 4, 5}; 이런 형식도 가능. 단, 이 경우에는 선언과 생성을 동시에 할 경우에만. 먼저 선언을 했을 경우에는 int[] arr; arr = new int[]{1, 2, 3, 4, 5}; }}} * 생성 후 크기 변경도 가능. {{{ int[] arr; arr = new int[3]; arr = new int[5]; → 문제없음. }}} * 함수의 return형이 배열인 것도 가능. * public static int[] function() {...} * arr.length : 배열의 길이값을 return하는 메서드 * 다차원 배열 {{{ 선언 : int[][] arr; 생성 : arr = new int[3][]; → 열의 길이를 비워둘 수 있음 arr[0] = new int[3]; arr[1] = new int[2]; → 각 행의 배열 길이가 모두 달라도 됨 //다차원 배열에서의 length 메서드 arr.length == 3 arr[0].length == 3 arr[1].length == 2 }}} * for-each 구문 {{{ int[] arr = {1, 2, 3, 4, 5}; for (int e : arr) { System.out.print(e); } → 출력값 : 12345 for (int e : arr) { e++; System.out.print(e); } → 출력값 : 23456 //e는 index가 아니라, arr[index]의 값을 잠깐 받아놓는 역할. }}} * arraycopy 메소드 {{{ int[] arr1 = {1, 2, 3}; int[] arr2 = {11, 12, 13, 14}; System.arraycopy (arr1, 0, arr2, 1, 2); → arr2 = {11, 1, 2, 14}; // arr1[0]부터 2개의 값을, arr2[1]부터 2개의 값으로 복사. }}} * main함수의 String[] args ?? * command line에서 문자열들을 입력받을 수 있음. {{{ java program abc 123 args[0] == abc args[1] == 123 }}} == 다음 진행 == * Chapter 6 * 객체지향 프로그래밍 1 * 발표 : [최다인] == 과제 == * 임의의 n*n 행렬을 입력받아 (n+1)*(n+1) 행렬을 생성해, (n+1)번째 행과 열에 각 행과 열의 합을 계산하여 넣고 출력하는 프로그램을 작성하라. * 행렬의 크기 n은 입력을 받으면 더 쉽다. 안 받고도 만들어보자. * n*m으로도 만들어보자. {{{ 예시 input 1 2 3 4 5 6 7 8 9 output 1 2 3 6 4 5 6 15 7 8 9 24 12 15 18 45 }}} === 유재범 === {{{ }}} === 최다인 === {{{ }}} === 이지수 === {{{ import java.io.*; import java.util.Scanner; public class Jisu { @SuppressWarnings("resource") public static void main(String[] ar) throws IOException{ int[] tempArr = new int[1000]; //입력값을 저장할 임시 일차 행렬 int[][] matrix; //일차 행렬을 복제할 이차 행렬 int i, n; Scanner in = new Scanner(System.in); System.out.println("경고 : 입력받는 숫자의 개수는 제곱수이어야 합니다."); while(true){ n = 0; for(i=0; i<1000; i++){ System.out.print(i+1 + "번째 원소를 입력하세요(-1은 종료). : "); tempArr[i] = in.nextInt(); if(tempArr[i] == -1) break; n++; } if(isSquare(n) == false){ //제곱수 여부 판단. System.out.println("입력하신 숫자의 개수가 제곱수가 아닙니다. 다시 입력해주세요"); } else{ break; } } matrix = cloneArray(tempArr, n); //일차원의 임시 행렬을 이차 행렬로 복사하여 matrix에 대입한다. matrix = sumElementOfArray(matrix); //이차 행렬의 각 행과 열의 원소 값을 합한다. printArray(matrix); //행렬을 출력한다. } public static boolean isSquare(int n){ //입력받은 숫자가 제곱수인지 아닌지 판단한다. int i; for(i=2; i