5 장 조건과 반복 ②. Contents Counting and Looping [while 문 사용 ] Powers of 2 [while 문 사용 ] More Guessing [do 문 사용 ] Election Day [do 문 사용 ] Finding Maximum &

Slides:



Advertisements
Similar presentations
멘토링 2 주차 장 프로그래밍을 위한 자바의 자료형  값이 변하지 않는 상수  메모리 기억공간인 변수.
Advertisements

명품 JAVA Programming 제 3 장 반복문, 배열, 예외처리.
어서와 Java는 처음이지! 제3장선택과 반복.
프로그래밍 개론 Ⅰ 제 3장. 클래스와 객체의 사용 ①.
제 7주 2015년 1학기 강원대학교 컴퓨터학부 담당교수: 정충교
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
Recursion SANGJI University KO Kwangman
IntArray[0] int length 5 intArray 객체 제 3 장 반복문, 배열, 예외처리.
객체지향 프로그래밍.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
7장 배열 ②.
어서와 Java는 처음이지! 제4장 배열.
Java Seminar 6.
Java Presentation 중간 시험2 풀이
제 4장 문 장 배정문 혼합문 제어문 표준 입출력.
제6장 제어(Control) 6.1 구조적 프로그래밍(Structured Programming)
윤 홍 란 제3장 클래스와 객체의 사용-1 윤 홍 란
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
[INA470] Java Programming Youn-Hee Han
명품 JAVA Programming 제 7 장 제네릭과 컬렉션.
명품 JAVA Essential.
제7장 제어구조 I – 식과 문장.
명품 JAVA Essential.
명품 JAVA Essential.
명품 JAVA Programming 제 4 장 클래스와 객체.
Power Java 제4장 자바 프로그래밍 기초.
10장 객체-지향 프로그래밍 II ©창병모.
7장 배열 ②.
Power Java 제10장 배열.
객체지향 언어와 클래스, 객체 ㅎㅎ 개요 클래스의 선언, 객체의 생성 및 속성 참조 방식 멤버 변수 메소드 한빛미디어(주)
Choi, Namseok Java 기초 (Java의 제어문과 배열) Choi, Namseok
명품 JAVA Essential.
이쁜 코드 작성하기 마이에트 레이더즈팀 중원.
명품 Java Programming.
최용술 장 Thread 최용술
2장 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램
윤 홍 란 4 장 클래스 작성 윤 홍 란
5장 조건과 반복 ①.
제2장 데이터 및 수식.
인터페이스(Interfaces) 강원대학교.
This, static, final 지정 예약어 자바 4대 중첩 클래스
김 정 석 Web Programming 김 정 석
주소록 프로그램.
7장 배열 ①.
6장 객체-지향 설계 ①.
제 4주 2014년 1학기 강원대학교 컴퓨터학부 담당교수: 정충교
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
5장 조건과 반복 ②.
제2장 데이터 및 수식.
6장 객체-지향 설계 ①.
어서와 Java는 처음이지! 제4장 배열 IT응용시스템공학과 김형진 교수.
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
WAP Java Seminar
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.
[INA470] Java Programming Youn-Hee Han
컴퓨터공학실습(I) 3주 인공지능연구실.
Java IT응용시스템공학과 김형진 교수 5장. 객체지향 개념 public class SumTest {
Chap02 객체 지향 개념 2.1 객체지향(object-oriented)과 절차지향(procedural-oriented)
자바 5.0 프로그래밍.
5장 조건과 반복 ①.
루프와 카운트 Looping and counting
Chapter 02. 소프트웨어와 자료구조.
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
JVM의 구조와 메모리 모델 JVM의 내부 구조 클래스 파일 클래스 로더 메소드(method) 영역 힙(heap) 영역
창의인성 두뇌계발 교사교육 3월 생각튼튼리더 1주. 세상에서 제일 똑똑똑한 뇌 2주. 황금요술공,검정요술공 3주. 브레이니 웨이키 웨이키 4주. 생각튼튼 리더가 되었어요.
Chapter 4 클래스 작성.
Java 5장. 객체지향 개념 public class SumTest {
자바 암호 프로그래밍 Java Cryptography Programming
Presentation transcript:

5 장 조건과 반복 ②

Contents Counting and Looping [while 문 사용 ] Powers of 2 [while 문 사용 ] More Guessing [do 문 사용 ] Election Day [do 문 사용 ] Finding Maximum & Minimum Values [for 문 사용 ] Counting Characters [for 문 사용 ] Using the coin class [for 문 사용 ]

Counting and Looping // **************************************************************** // LoveCS. java // // while loop 을 사용하여 “I love Computer Science!!” 을 원하는 만큼 // 프린트 하시오. // // **************************************************************** public class LoveCS { public static void main(String[] args) { final int LIMIT = 10; int count = 1; while (count <= LIMIT){ System.out.println("I love Computer Science!!"); count++; }

LoveCS.java 를 다음과 같이 수정하시오.  1. 상수 LIMIT 를 사용하여 사용자가 원하는 만큼 메시지를 출력 한다. 변수를 선언하여 사용자의 응답을 저장하고 loop 을 제어한다.  2. 라인과 메시지, 출력횟수를 함께 출력한다. 그림 참조 [ 사용자 가 3 을 입력하였을 때, 다음과 같이 프린트 해야 한다.] Counting and Looping [Cont.] 1 I love Computer Science!! 2 I love Computer Science!! 3 I love Computer Science!! Printed this message 3 times.

LoveCS.java 를 다음과 같이 수정하시오.  3. 변수를 하나를 추가하여 메시지 출력 첫째 줄부터 N 번째 줄까지의 합을 계산하여 출력한다.[ 그림 참조 ] Counting and Looping [Cont.] 1 I love Computer Science!! 2 I love Computer Science!! 3 I love Computer Science!! Printed this message 3 times. The sum of the numbers from 1 to 3 is 6.

Powers of 2 PowersOf2.java // **************************************************************** // PowersOf2.java// // powers of 2 를 구하는 문제 // **************************************************************** import java.util.Scanner; public class PowersOf2 { public static void main(String[] args) { int numPowersOf2; // 계산되는 powers of 2 의 개수 int nextPowerOf2 = 1; // 현재 power of 2 int exponent; //Exponent for current power of 2 – loop 의 개수 계산 Scanner scan = new Scanner(System.in); System.out.println("How many powers of 2 would you like printed?"); numPowersOf2 = scan.nextInt(); //powers of 2 의 개수를 메시지로 출력 //exponent 초기화 -- the first thing printed is 2 to the what? while ( ) { // 현재 power of 2 를 출력 // 다음 power of 2 를 찾기 -- how do you get this from the last one? // increment exponent }

Powers of 2[Cont.] PowersOf2.java 는 사용자로 부터 integer 를 입력 받아 2 의 루승을 구한다.  1. Math.pow 를 사용하지 않는다. 예를 들면 사용자가 4 를 입력하였을 때 다음과 같은 결과가 나와야 한다. Here are the first 4 powers of 2:

2. 위의 프로그램을 다음과 같은 결과가 나오게끔 수정하시오. Powers of 2[Cont.] Here are the first 4 powers of 2: 2^0 = 1 2^1 = 2 2^2 = 4 2^3 = 8

Election Day[ 투표 관리 시스템 ] 두 후보의 선거 결과를 취합하는 프로그램인 Election.java 를 완성하시오. 각 선거구에 대해서 두 후보의 득표수를 입력 받는다.  더 입력할 선거구가 있는지 사용자에게 물어봐서, 더 입력할 선거구가 있는 동안 계속 입력을 받는다. 최종적으로, 전체 득표수와 백분율을 출력한다. 두 후보가 각각 몇 개의 선거구에서 승리했고, 비긴 선 거구는 몇 개인지 출력한다.

투표 관리 시스템 (cont.) import java.util.Scanner; public class Election { public static void main (String[] args) { int votesForTom; // 각 선거구에서 Tom 의 득표수 int votesForSusan; // 각 선거구에서 Susan 의 득표수 int totalTom; // Tom 의 전체 득표수 int totalSusan; // Susan 의 전체 득표수 String response; // 선거구가 더 있는지에 대한 질문의 답을 저장할 변수 (y or n) Scanner scan = new Scanner(System.in); System.out.println (); System.out.println ("Election Day Vote Counting Program"); System.out.println (); // 초기화 // 각 선거구에서 투표 결과를 취합 (Loop) // 결과 출력 }

최대, 최소값 찾기 하루 동안 매시간마다 온도를 읽어 들여, 그 최대값과 최소값을 찾는 프로그 램인 Temps.java 를 완성하시오. 최대값 구하기  최대값을 저장할 변수 maxTemp 선언  Loop 에 들어가기 전에 아주 작은 값으로 (-1000) 초기화  Loop 안에서 최대값과 현재의 온도를 비교하여, 그 결과에 따라 최대값 갱신  Loop 밖에서 결과 출력 최대값 발생 시간 구하기  온도의 최대값이 발생된 시간을 저장할 변수 timeOfMax 선언  Loop 안에서 적절히 이 값을 갱신  Loop 밖에서 결과 출력 결과 테스트  첫번째로 넣은 값이, 마지막으로 넣은 값이, 중간에 넣은 값이 각각 최대 값으로 잘 적용되는지 테스트한다. 최소값도 위와 마찬가지의 방법으로 구한다.

최대, 최소값 찾기 (cont.)  import java.util.Scanner;  public class Temps  {  public static void main (String[] args)  {  final int HOURS_PER_DAY = 24;  int temp; // 읽어들인 온도를 저장할 변수  Scanner scan = new Scanner(System.in);   System.out.println ();  System.out.println ("Temperature Readings for 24 Hour Period");  System.out.println ();   for (int hour = 0; hour < HOURS_PER_DAY; hour++)  {  System.out.print ("Enter the temperature reading at " + hour +  " hours: ");   temp = scan.nextInt(); // 매시간 온도를 읽어들임  }  // 결과를 출력하시오  }  }

문자 개수 세기 공백을 비롯한 여러 가지 문자의 개수를 세는 프로그램인 Count.java 를 완성하시오. 공백 개수 세기  읽어 들인 문장에서 한 글자, 한 글자 공백인지 검사한다.  문장 전체를 돌기 위하여 for 문과 length() 메소드를 사용한다.  한글자, 한글자 공백인지 검사하기 위하여 if 문과 charAt() 메소드 를 사용한다. ‘a’, ‘e’, ‘s’, ‘t’ 의 개수 세기  대소문자 구분 없이 모두 센다.  공백을 세기 위해 사용했던 if 문을 switch 문으로 수정한다. 검사를 여러 번 하도록 확장  “quit” 을 입력하기 전까지, 검사가 계속 반복되도록 확장한다.

문자 개수 세기 (cont.)  import java.util.Scanner;  public class Count  {  public static void main (String[] args)  {  String phrase; // 검사할 문장  int countBlank; // 공백의 개수  int length; // 문장의 길이  char ch; // 검사할 글자  Scanner scan = new Scanner(System.in);   System.out.println ();  System.out.println ("Character Counter");  System.out.println ();   // 검사할 문장을 읽어들이고, 그 문장의 길이를 구한다.  System.out.print ("Enter a sentence or phrase: ");  phrase = scan.nextLine();  length = phrase.length();   // 공백의 개수 초기화  countBlank = 0;   // 공백의 개수 세기   // 결과 출력  System.out.println ();  System.out.println ("Number of blank spaces: " + countBlank);  System.out.println ();  }  }

동전 던지기 동전을 100 회 던져, 연속으로 계속 앞면이 나오는 횟수의 최대값을 구하는 프로그램인 Runs.java 를 완성하시오. 이때, 동전을 던지고 그 결과를 알려주는 Coin 클 래스 (Coin.java) 를 이용한다.

동전 던지기 (cont.)  // **************************************************  // Coin.java  //  // 던져질 수 있는 두 면을 갖는 동전을 표현한다.  // **************************************************  public class Coin  {  public final int HEADS = 0;  public final int TAILS = 1;   private int face;   //  // 초기에 동전을 던져서 동전을 설정한다.  //  public Coin ()  {  flip();  }   //  // 상태값을 무작위로 선택함으로써 동전을 던진다.  //  public void flip()  {  face = (int) (Math.random() * 2);  }   //  // 동전이 앞면인지 뒷면인지, 정수값으로 리턴한다.  // public int getFace()  {  return face;  }   //  // 동전의 현재 상태를 스트링으로 반환한다.  //  public String toString()  {  String faceName;   if (face == HEADS)  faceName = "Heads";  else  faceName = "Tails";   return faceName;  }  }

동전 던지기 (cont.)  // ********************************************************************  // Runs.java  // 동전을 100 회 던져, 앞면이 계속 나오는 횟수의 최대값을 구하는 프로그램  // ********************************************************************  import java.util.Scanner;  public class Runs  {  public static void main (String[] args)  {  final int FLIPS = 100; // 동전을 던지는 횟수   int currentRun = 0; // 현재 연속으로 앞면이 나온 횟수  int maxRun = 0; // 연속으로 앞면이 나온 횟수의 최대값   Scanner scan = new Scanner(System.in);   // Coin 객체를 생성   // 동전을 100 회 던진다.  for (int i = 0; i < FLIPS; i++)  {  // 동전을 던지고, (flip() 이용 )  // 그 결과를 출력한다.(toString() 을 묵시적으로 이용 )   // 연속으로 앞면이 나오고 있는 횟수 갱신  // 연속으로 앞면이 나온 횟수의 최대값 계산  }   // 결과 출력  }  }