본문 바로가기

전체 글985

자바기반의 웹&앱 응용 SW개발자 양성과정 10일차 -20 데이터 구조화. 구조란? 1. 구조 그룹으로 만들어진 체계. 2. 구조화: 여러 개체들을 그룹으로 묶어서 만듦. 3. 구조가 존재하려면 계층화된 그룹이 필요하다 1조,2조...5조,6조 4. 중복적으로 그룹핑할 수 있다. 1 분단(1조,2조,3조) 2 분단(4조,5조,6조) 왜 구조화가 필요할까? 코딩에서 구조화가 필요한 이유는 단순화이다. 각 여러 가지 변수가 흩어져있을 때 동일된 개념으로 묶은 뒤 따로 관리하면 가시적으로 코드를 봤을 때 이해가 더욱 빠르다. 또 내가 생각하는 단위로 묶어서 설명할 수 있기 때문에 구현 단위가 간소해지고 직관적으로 바뀐다. 그럼 어떻게 자바에서 구조화할까? 이클립스 기준 새로운 클래스 파일을 만든 뒤 클래스 이름은 구조 화명이다. public class Omok { i.. 2020. 3. 10.
자바기반의 웹&앱 응용 SW개발자 양성과정 10일차 -19 상수형 변수를 왜 사용해야 하는가? 상수형 변수를 사용할지는 프로그래머 마음이지만, 가시적으로 코드를 가다듬을 때 자신들을 위한 정리라고 생각하면 될 것 같다. final int HEIGHT ; //대입값을 고정시키기위해 final int WIDTH; final int SMAP =1; final int MMAP =2; final int LMAP =3; switch (menu) { case MMAP: HEIGHT = 40; WIDTH = 20; break; case LMAP: HEIGHT = 60; WIDTH = 30; break; case SMAP: default: HEIGHT = 20; WIDTH = 20; }//swich 코드 부분 중 상수형 변수만 사용된 부분만 가져왔는데. 상수형 변수에 final.. 2020. 3. 10.
클래스로부터 객체 생성 1. Class Car생성하기 package testPjt; public class Car { public String gear; public String color; public int price; public Car() { //외부에서 클래스 호출시 이 생성자가 먼저 호출됨 //생성을 할때 필요한 기능 (내용) //앞에 대문자가 들어감 클래스이름이랑 동일 System.out.println("Car constructor"); } public void run() { System.out.println("color " +color); } public void stop() { } } 2.Class Bicycle 생성하기 2) 생성자는 여러개 가능하다. 디폴트 생성자가 있고 매개변수값을 줘서 객체 생성시 값을 .. 2020. 3. 9.
객체 지향 프로그래밍이란? 객체란? 세상에 존재하는 모든 것을 뜻하며 속성과 기능을 가지는 프로그램 단위이다. EX) 실제세계에서 객체 : 사람 속성 : 키. 몸무게, 나이 기능 : 달리기, 숨쉬기 객체 : 체중계 속성 : 눈금, 바늘 기능 : 무게 측정 EX) 프로그램 객체 :날씨 프로그램 속성 : 온도, 습도, 미세먼지 기능 : 날씨예보 클래스란? 객체를 생성하기 위한 틀로 모든 객체는 클래스로부터 생성된다. EX) 사람 (클래스) 농구선수(객체) 다양한 객체를 만들기 위한 틀을 만들어 놓는 것이다. 클래스는 속성(멤버 변수)와 기능(메서드)로 구성된다. 클래스: 자전거 속성(멤버변수) : 안장 핸들 바구니 기어 페달 기능(메서드) : 기어 변속 가속 브레이크 왜 객체지향일까? 프로그램을 만들 때 우리의 입맛대로 프로그램의 기.. 2020. 3. 9.
자바기반의 웹&앱 응용 SW개발자 양성과정 9일차 -18 오목 게임을 만들어 보겠다. 내가 짠 순서도는오목판 1번째 중복된 값이 있나 확인. 바둑돌 배열에서 중복된 좌표값이 있으면 경고창 출력 2번째 순서대로 오목 알 출력 ------여기까지 완성 3번째 5개 연속적으로 그어졌을 때 그 돌의 주인이 승리. 4번째 게임 재시작 여부 묻기 5번째 아니요 - 종료 예 - 다시 오목판 출력 package javaExample1; import java.util.Random; import java.util.Scanner; public class Ex13omokProgram2 { public static void main(String[] args) { int height = 0; int width = 0; int[] xs; int[] ys; int menu; Scanner.. 2020. 3. 9.
2.버블정렬 다음 숫자를 오름차순으로 나열하고 싶다면? 10 9 8 7 6 5 4 3 2 1 선택 정렬을 이용해 가장 작은 값을 반복적으로 앞으로 보냈다면 이번에 배울 버블 정렬은 인접한 옆 숫자끼리 비교해 더 작은 값을 앞으로 보내는 알고리즘입니다. 버블 정렬 알고리즘은 구현은 쉽지만 가장비효율적인 알고리즘입니다. 단순히 반복적으로 두 숫자를 비교하여 큰 숫자를 뒤로 보냅니다. 첫 번째 최댓값을 뒤로 보낼 때 (10,9), (10,8), (10,7), (10,6), (10,5), (10,4), (10,3), (10,2), (10,1) 9번의 연산을 해서 최댓값을 뒤로 보냄(n-1) 번 즉 두 번째 for문에 조건식이 9 8 7로 줄어야 하므로 9-i의 식으로 돌림. public class algorithm02 { .. 2020. 3. 9.
자바기반의 웹&앱 응용 SW개발자 양성과정 8일차 -17 =+ ,=+ 차이점 1) num += 100 은 num = num + 100 의 줄임 표현이라고 생각하시면 됩니다. 2) =+ 라는 연산자는 없습니다. num = (+100) 을 적으신 거와 동일합니다. import java.util.Random; import java.util.Scanner; public class Ex13omokProgram2 { public static void main(String[] args) { int height = 0; int width = 0; int menu; Scanner scan = new Scanner(System.in); while (true) { System.out.println("어떤 바둑판 크기를 원하십니까?"); System.out.println("1. (.. 2020. 3. 9.
코로나 휴강 대체할 t형의 복습문제13. 4. true, false, false, true, false가 들어 있는 boolean 배열을 만든 뒤 각 원소의 반대값을 출력하기(반복문과 ! 연산자를 사용할 것) 출력 예제 false true true false true import java.util.Scanner; public class corona13 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); boolean[] pratice = {true, false, false, true, false}; for(int i =0; i 2020. 3. 8.
코로나 휴강 대체할 t형의 복습문제12. 3. 두 개의 정수형 배열을 만들어 각각 2 3 5 7 11 17과 1 3 5 7 9 11로 초 기화한 뒤 두 배열의 동일원소 출력하기 출력 예제 1번째: 3 2번째: 5 3번째: 7 4번째: 11 import java.util.Scanner; public class corona12 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int[] num1 = new int[6]; num1[0] = 2; num1[1] = 3; num1[2] = 5; num1[3] = 7; num1[4] = 11; num1[5] = 17; int[] num2 = new int[6]; num2[0] = 1; num2[1] = 3; n.. 2020. 3. 8.
코로나 휴강 대체할 t형의 복습문제11. 2. 입력받은 수의 구구단 출력하기 입력 예제 11 출력 예제 11x2=22 11x3=33 11x4=44 11x5=55 11x6=66 11x7=77 11x8=88 11x9=99 import java.util.Scanner; public class corona11 { public static void main(String[] args) { Scanner scan =new Scanner(System.in); int num =scan.nextInt(); for(int i =1; i 2020. 3. 8.
코로나 휴강 대체할 t형의 복습문제10. 1. 양의 정수 10개를 입력받고 2를 입력하면 2의 배수, 3을 입력하면 3의 배 수, 5를 입력하면 5의 배수를 정렬해서 출력하고 0을 입력하면 반복문 종료 입력 예제 5 2 15 18 4 6 21 24 100 30 2 3 5 0 출력 예제 2 4 6 18 24 30 100 6 18 24 30 5 15 30 100 import java.util.Scanner; public class corona10 { public static void main(String[] args) { Scanner scan =new Scanner(System.in); System.out.println("양의 정수를 10개입력하세요"); String string = scan.nextLine(); String[] num = str.. 2020. 3. 8.
코로나 휴강 대체할 t형의 복습문제9. 3. 세 개의 자연수 A, B, C가 주어질 때 A x B x C의 결과에 각 자리의 숫자가 몇 번씩 쓰였는지 구하시오 150 266 247을 입력받는다면 세 수를 곱한 값은 17037300이다. 0이 세 번, 1이 한 번, 3이 두 번, 7이 두 번 쓰였다. 입력 예제 150 266 427 출력 예제 3 1 0 2 0 0 0 2 0 0 import java.util.Scanner; public class corona9 { public static void main(String[] args) { // 숫자는 0부터9까지있다. int indexZero = 0, indexOne = 0, intdexTwo = 0, indexThree = 0, indexFour = 0, indexFive = 0, indexSi.. 2020. 3. 8.
코로나 휴강 대체할 t형의 복습문제8. 2. 9개의 서로 다른 자연수가 주어질 때 이들 중 최댓값을 찾고 그 최대값이 몇 번째 수인지 구하시오(입력하는 자연수는 100 이하) 3 29 38 12 57 74 40 85 61을 입력했을 때 가장 큰 수는 85다. 맨 앞이 첫 번째이므로 85는 여덟 번째 위치한 수다. 입력 예제 3 29 38 12 57 74 40 85 61 출력 예제 85 8 import java.util.Scanner; public class corona8 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int[] numArray = new int[9]; int max =0; int index = 0; System.out.print.. 2020. 3. 8.
코로나 휴강 대체할 t형의 복습문제7. 1. 최소값과 최대값 구하기 N개의 정수가 임의로 주어질 때 최대값과 최소값을 구한다. 입력 예제 5 20 10 35 30 7 출력 예제 7 35 import java.util.Scanner; public class corona7 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("몇개의 정수를 입력하시겠습니까?"); int num = scan.nextInt(); int[] dem = new int[num]; System.out.println("정수를 입력해주세요"); for(int i = 0; i < num; i++) { dem[i] =scan.nextInt(); for(i.. 2020. 3. 8.
코로나 휴강 대체할 t형의 복습문제6. 2. 임의의 수 n을 입력받고 문자를 입력받아 해당 문자를 n개만큼 출력하기. 문자가 q나 Q인 경우 반복문 종료 입력 예 5 a b c q 출력 예 aaaaa bbbbb ccccc ※ 입력을 전부 끝내고 출력이 나오는 게 아니라 매 입력마다 결과가 나와야 합니다. a를 입력하면 aaaaa, b를 입력하면 bbbbb, c를 입력하면 ccccc import java.util.Scanner; public class corona6 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("반복할 숫자 반복할 알파벳 입력"); int count = scan.nextInt(); while (.. 2020. 3. 4.
코로나 휴강 대체할 t형의 복습문제5. 1. 임의 수 n을 입력받아서 n까지 하나씩 늘리면서 출력했다가 하나씩 줄이면서 출력하기 입력 예 5 출력 예 1 12 123 1234 12345 54321 5432 543 54 5 import java.util.Scanner; public class corona5 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("숫자를 입력하세요"); int num = scan.nextInt(); int[] arrNum = new int[num]; // 값 담기 1~5; for (int i = 0; i < arrNum.length; i++) { arrNum[i] = i + 1; for (.. 2020. 3. 4.
코로나 휴강 대체할 t형의 복습문제4. 4. 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하기. 단, 대문자와 소문자를 구분하지 않습니다. 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력합니다 입력값1 Mississipi (s:4개 , i:4개) 입력값2 zZa 출력값1 ? 출력값2 Z 배열과 아스키코드를 사용해야함. 65는'A' charAt (문장중에 인덱스 위치에 해당되는 문자 추출하기) toUpperCase() (문자열을 대문자로 바꿔준다.) 추가: 알파벳은 26개이다. package javaExample1; import java.util.Scanner; public class corona4 { public static void main(String[] a.. 2020. 3. 3.
코로나 휴강 대체할 t형의 복습문제3. 3. 이름을 n개 입력한 뒤 숫자를 입력하면 그 숫자 번째에 해당하는 이름을 출력하고 프로그램 종료하기 입력값 5 Kim Lee Park Choi Ahn 2 출력값 Park import java.util.Scanner; public class corona3 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("몇개의 이름을 입력하시겠습니까?"); int nameCount = scan.nextInt(); System.out.println("이름을 입력해주세요"); String [] name = new String [nameCount]; String userName; for(int.. 2020. 3. 3.
코로나 휴강 대체할 t형의 복습문제2. 2. 정수 1개가 입력되었을 때, 음(minus)/양(plus)과 짝(even)/홀(odd)을 출력하기 입력값 20200301 출력값 minus odd 조건식을 연습한다. import java.util.Scanner; public class corona1 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("숫자입력"); int num = scan.nextInt(); if(num%2 ==0 ) System.out.println("even"); else System.out.println("odd"); if(num >0) System.out.println("plus"); else .. 2020. 3. 3.
코로나 휴강 대체할 t형의 복습문제1. 1. 임의 수 n개를 입력받아서 역순으로 출력하기 *나중에 공부할 '스택'이라는 자료구조랑 관련 있습니다. 가장 처음에 들어온 값이 가장 마지막에 나갑니다. 입력값 10 10 9 8 7 6 5 4 3 2 1 출력 값 1 2 3 4 5 6 7 8 9 10 사용된 개념 1. 버블 정렬 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘 인접한 2개의 레코드를 비교하여 크기가 순서대로 되어 있지 않으면 서로 교환한다. 선택 정렬과 기본 개념이 유사하다. 버블 정렬(bubble sort) 알고리즘의 구체적인 개념 버블 정렬은 첫 번째 자료와 두 번째 자료를, 두 번째 자료와 세 번째 자료를, 세 번째와 네 번째를, … 이런 식으로 (마지막-1) 번째 자료와 마지막 자료를 비교하여 교환하면서 자료를 정렬한다. 1회.. 2020. 3. 3.
java.lang.NullPointerException 오류1 java를 사용하는 프로그래머라면 NPE의 늪에서 빠져나올 수가 없다고 한다. 나 또한 공부를 하는 과정에서 튀어나오는 저 오류때문에 골머리를 앓고 있다. 그래서 서칭을 해보니 먼저 NULL에 대해서 자세히 알 필요가 있다고 생각하고 NULL에 대해 정리를 해보겠다. NULL. 1) null 은 public, static 이나 final과 같은 Java의 키워드입니다. 컴파일러가 대소문자를 구분하기 때문에 null을 Null이나 NULL로 쓰면 에러를 보게 될 것입니다. (하지만 최근에는 IDE가 전부 수정해준다.) 2) null이란 아무것도 없음을 의미합니다. (0 또는 공백 : "") 3) 모든 primitive 자료형이 기본 값을 가지고 있는 것처럼(if int 는 0, boolean 은 false.. 2020. 3. 3.
JAVA 구조적인 프로그래밍 Top Down 프로그램을 보수할때나 만들어 봤던적이 있는 프로그램은 Bottom Up방식으로 충분히 가능하지만, 프로그램이 없을때 만드는 방식은 TopDown방식이다. 예제인 Lotto생성기를 만들어보겠다. 순서도 LottoProgram 순서도 메뉴를 만들고 입력값에따라 메뉴에서 이동 메뉴종류(자동,수동,출력,종료) 만약 자동이면 랜덤하게 6개의 숫자를 뽑음 원하는만큼 반복이 가능해야함 뽑은값을 출력해서 보여줌 저장하는 옵션과 상위메뉴로 돌아가는 옵션이필요함 만약 수동이면 숫자 6개를 연속적으로 입력한뒤 자동이랑 옵션이같아야함. 자동,수동으로 뽑은 로또를 저장하면 상위메뉴로 이동해서 출력을 눌러야함 출력시 저장된 로또번호가 전부나옴. 자동,수동 종료 1. 구조 잡기 import java.util.Random; impo.. 2020. 2. 28.
JAVA 구조적인 프로그래밍 Bottom Up 구조적인 프로그래밍 이란 절차로만 이루어져 있는 프로그램을 코드를 나누어주다 보니 그 나눠진 것들 사이에서 구조가 만들어진다. 두 가지 방식이 있는데 그중 첫 번째인 Bottom Up은 이미 있는 프로그램을 잘라서 조각을 낸 뒤 그 조각을 가지고 구조를 만들어 가는 방법이다. 프로그램은 성적 출력을 가지고 코드를 나누는 연습을 해보겠다. 1. 절차로만 이루어진 코드 package part2.ex1.성적입력부분나누기; import java.util.Scanner; public class newlec { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int kors[][] = new int[3][3]; int t.. 2020. 2. 28.
자바기반의 웹&앱 응용 SW개발자 양성과정 7일차 -16 랜덤한 숫자를 사용해 로또 출력기 Random()사용 이중for문 사용 버블 정렬사용 import java.util.Random; public class Ex12LottoProgram { public static void main(String[] args) { Random rend = new Random(); int[] lotto = new int[6]; // 로또 번호를 생성 for (int i = 0; i < 6; i++) lotto[i] = rend.nextInt(45) + 1; // 로또 번호를 출력 for (int i = 0; i < 6; i++) System.out.println(lotto[i]); // 출력과 입력을 따로 관리하는게 더 효율적이다. System.out.println(); Sy.. 2020. 2. 27.
성적 입출력 프로그램 중 오류 package javaExample1; import java.util.Scanner; public class newlec { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int kors[][] = new int[3][3]; int total = 0; float avg; for (int j = 0; j < 3; j++) { for (int i = 0; i < 3; i++) kors[j][i] = 0; } EXIT: while (true) { System.out.println("┌───────────────┐"); System.out.println("│ 성적 출력 프로그램 │ "); System.out.prin.. 2020. 2. 27.
[JAVA]codeUp 기초100제 자바 1065~1077번 (반복문) 1065. 세 정수 a, b, c가 입력되었을 때, 짝수만 출력해보자. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int a = scan.nextInt(); int b = scan.nextInt(); int c = scan.nextInt(); scan.close(); if(a%2 == 0) System.out.println(a); if(b%2 == 0) System.out.println(b); if(c%2 == 0) System.out.println(c); } } 1066. 세 정수 a, b, c가 입력되었을 때, 짝(eve.. 2020. 2. 26.
[JAVA]codeUp 기초100제 자바 1021~1030번 1021. 1개의 단어를 입력받아 그대로 출력해보자. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String word = scan.next(); System.out.println(word); scan.close(); } } 1022. 공백 문자가 포함되어 있는 문장을 입력받고 그대로 출력하는 연습을 해보자. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in.. 2020. 2. 26.
자바기반의 웹&앱 응용 SW개발자 양성과정 6일차 -15 바둑판 만들기. menu를 만들어서 사용자의 입력에 따라 다른 바둑판을 출력해준다. menu값을 switch구문으로 만드는것이 if else if보다 더 효율적. x축 y축을 개념으로 삼아서 사용자가 원하는 지점을 연속적으로 (10 10) 입력받은 뒤 next로 읽어서 좌표에 바둑돌 출력 import java.util.Scanner; public class Ex11omokProgram { public static void main(String[] args) { int height = 0; int width = 0; Scanner scan = new Scanner(System.in); System.out.println("어떤 바둑판 크기를 원하십니까?"); System.out.println("1. (20x.. 2020. 2. 26.
[JAVA]codeUp 기초100제 자바 1010~1020번 1010. 정수형(int)으로 변수를 선언하고, 변수에 정수 값을 저장한 후 변수에 저장되어 있는 값을 그대로 출력해보자. 예시 int main() { int n; scanf("%d", &n); printf("%d", n); return 0; } import java.util.*; public class Main { public static void main(String[] args) { int a ; Scanner scan = new Scanner(System.in); a = scan.nextInt(); System.out.printf("%d",a); } } 1011. 문자형(char)으로 변수를 하나 선언하고, 변수에 문자를 저장한 후 변수에 저장되어 있는 문자를 그대로 출력해보자. import ja.. 2020. 2. 25.
[JAVA]codeUp 기초100제 자바 1001~1008번 1001. C/C++언어에서 가장 기본적인 명령이 출력문이다. printf()를 이용해 다음 단어를 출력하시오. Hello public class Main { public static void main(String[] args) { System.out.print("Hello"); } } 1002. 이번에는 공백()을 포함한 문장을 출력한다. 다음 문장을 출력해보자. (대소문자에 주의한다.) Hello World public class Main { public static void main(String[] args) { System.out.print("Hello World"); } } 1003. 이번에는 줄을 바꿔 출력하는 출력문을 연습해보자. 다음과 같이 줄을 바꿔 출력해야 한다. Hello World .. 2020. 2. 25.