04.12
오늘은 JAVA 수업 날!
월요일부터 대면 수업에다가
금방이라도 비가 올 것만 같은 축축한 날씨라
비에 쥐약인 나는 아침부터 너무 힘들다...😇
나는 한 마리의 병든 닭...
그래도 다행스럽게도(?)
오늘은 학원이 4시에 끝나기 때문에
평소보다 2시간 일찍 집에 갈 수 있다는 점을
위안삼아 열심히 공부하고 집에 가야겠다!!
자바 수업은 늘 복습을 병행하며 수업을 나가곤 하는데
오늘도 복습과 함께 문제들을 풀어보았다.
package Day5;
import java.util.Random;
import java.util.Scanner;
/*
* Q9. 숫자야구게임
* 1)com 3개의 숫자를 랜덤으로 받는다.(1~9)
* (단, com의 랜덤숫자는 다 달라야합니다 ex.com1 = 4,com2 = 2, com3=3 숫자 겹칠 시 랜덤숫자 다시 받아야함)
* 2)user가 3개의 숫자를 입력합니다.
* 3)user입력이 똑같은 숫자가 들어오면 잘못된 입력이라고 알려주고 다시 입력을 받아야합니다. (다시 처음으로)
* 4)게임단계
* ex) com 3 2 1 user 2 7 9 => 1ball
* com 3 2 1 user 3 9 6 => 1strike
* com 3 2 1 user 4 5 6 => out
* com 3 2 1 user 3 2 1 => homerun , 프로그램 종료.
*
* */
public class Question1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Random r = new Random();
int com1 = 0;
int com2 = 0;
int com3 = 0;
int user1 = 0;
int user2 = 0;
int user3 = 0;
int total = 0;//총 게임 횟수(그냥 추가해봄)
Scanner sc = new Scanner(System.in);
//com 3개의 숫자 중복X 랜덤으로 받기
while(true) {
com1 = r.nextInt(9)+1;
com2 = r.nextInt(9)+1;
if(com1!=com2) {
com3 = r.nextInt(9)+1;
if(com3!=com2 && com3!=com1) {
break;
}
}
}
System.out.println("숫자 야구게임을 시작합니다.");
//user 3개의 숫자 중복X 범위내로 받기
while(true) {
System.out.println("1부터 9까지의 숫자 세개를 입력하세요");
user1 = sc.nextInt();
user2 = sc.nextInt();
user3 = sc.nextInt();
int ball = 0;
int strike = 0;
if(user1>=1 && user1<=9 && user2>=1 && user2<=9 && user3>=1 && user3<=9) { //1~9사이의 수인지 확인
if(user1!=user2 && user1!=user3 && user2 != user3) { //서로 수가 다를 시 게임 시작
total += 1; // 총 게임횟수 추가
//user1비교
if(user1 == com1) {
strike += 1;
}else if(user1 == com2 || user1 == com3) {
ball += 1;
}
//user2비교
if(user2 ==com2) {
strike += 1;
}else if(user2 == com1 || user2 == com3) {
ball += 1;
}
//user3비교
if(user3 == com3) {
strike += 1;
}else if(user3 == com1 || user3 == com2) {
ball += 1;
}
if(ball!=0 || strike!=0) {
if(strike!=3) {
System.out.println(ball+"ball "+strike+"strike 입니다." );
}else {
System.out.println("홈런입니다. 컴퓨터의 숫자는"+com1+" "+com2+" "+com3);
System.out.println("총 게임 횟수 : "+ total );
System.out.println("프로그램이 종료됩니다.");
break;
}
}else if(ball==0 && strike==0) {
System.out.println("OUT입니다.");
}
}else {
System.out.println("중복되는 숫자가 있습니다. 다시 입력해주세요.");//중복되는 숫자가 입력된 경우
}
}else {
System.out.println("잘못된 숫자 입력입니다. 처음으로 돌아갑니다."); // 1~9사이의 숫자가 아닐 경우
}
}
}
}
Q1. 숫자야구게임(조건문, 반복문)
(코드가...밀린다..)
04.13
이날은 파이썬 수업 날이었다.
파이썬수업은 초반에 컴퓨터, 네트워크에 대해배우고 시작한다 하셨기 때문에
아직 파이썬의 p도 배우지 못했다!!
그래서 아직까지는 딱히 올릴만한게 없어 하루 스킵!
04.14
매주 수요일은 HTML의 날!
폼에 대해 많이 배울 수 있는 날이었다.
<!DOCTYPE html>
<html lang="kr">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>폼 연습1</title>
</head>
<body>
<form>
<fieldset>
<legend>로그인</legend>
<label>아이디 : <input type="text"></label><br>
<label>비밀번호 : <input type="password"></label><br>
<input type="submit" value="로그인">
<input type="reset" value="초기화">
</fieldset>
</form>
</body>
</html>
<!DOCTYPE html>
<html lang="kr">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>폼연습2 달력</title>
</head>
<body>
<h1>날짜 지정하기</h1>
<input type="date"><br><br><!--연도-월-일-->
<input type="month"><br><br><!------년--월-->
<input type="week"><br><br><!-- ----, --번 째 주-->
<input type="time"><br><br><!--오전/오후 -- : -- -->
<input type="datetime-local"><br><br><!--연도-월-일 오전/오후 -- : -- -->
<h3>좋아하는 계절은?</h3>
<select>
<option>봄</option>
<option>여름</option>
<option>가을</option>
<option>겨울</option>
</select>
</body>
</html>
input type 날짜,시간과 select박스
<!DOCTYPE html>
<html lang="kr">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>주문하기</title>
</head>
<body>
<h1>레드향 주문하기</h1>
<form>
<fieldset>
<legend>상품 선택</legend>
<p>주문할 상품을 선택하세요</p>
<input type="checkbox">선물용 3kg <input type="number" min="0" max="5">개<br>
<input type="checkbox">선물용 5kg <input type="number" min="0" max="5">개<br>
<input type="checkbox">가정용 3kg <input type="range"min="0" max="3">개<br>
<input type="checkbox">가정용 5kg <input type="range" min="0" max="3">개<br>
<p>포장 선택</p>
<input type ="radio" name="aa">선물포장
<input type ="radio" name="aa">선물포장안함
</fieldset>
<br><br>
<fieldset>
<legend>배송정보</legend>
<ul>
<li> <label> 이 름 <input type="text"></label></li>
<li> <label> 배 송 주 소 <input type="text"></label></li>
<li> <label> 이 메 일 <input type="text"></label></li>
<li> <label> 연 락 처 <input type="text"></label></li>
<li><label>배 송 지 정 <input type="date"></label></li>
<li><label>가 입 경 로</label>
<select>
<option>인터넷(카페/블로그)</option>
<option>잡 지</option>
<option>지인 추천</option>
<option>기 타</option>
</select>
</li>
<li><label>메 모</label><br><textarea cols="30" rows="10"></textarea></li>
</ul>
</fieldset>
<br>
<input type="submit" value="주문하기">
<input type="reset" value="주문 다시하기">
</form>
</body>
</html>
checkbox , fieldset,
<!DOCTYPE html>
<html lang="kr">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>레드향 상품구성</title>
<style>
table,th,td{
border: 1px solid rgb(255,170,170);
border-collapse: collapse;
}
th,td{
padding: 10px 30px;
}
</style>
</head>
<body>
<!--웹 문서에 pdf 파일 삽입
<object data="product.pdf" type="pdf" width="900" height="800"></object>
-->
<!--<embed src="salad.mp3">-->
<audio src="spring.mp3" autoplay loop></audio><br>
<video src="salad.mp4" width="700" controls></video>
<h1>레드향</h1>
<img src="tangerines.jpg" alt="레드향" width="50%">
<p>껍질에 붉은 빛이 돌아 <b>레드향</b>이라 불린다. </p>
<p>레드향은 <strong>한라봉</strong>과 귤을 교배한 것으로 일반 귤보다 2~3배 크고, 과육이 붉고 통통하다.</p>
<blockquote>
<i>비타민 C와 비타민 P</i>가 풍부해<br>혈액순환, 감기예방 등에 좋은 것으로 알려져 있다.
</blockquote>
<hr>
<a href="red_form.html">주문하기</a>
<h2>레드향 샐러드 레시피</h2>
<p> <b>재료 : </b>레드향 1개, 아보카도 1개, 토마토 1개, 샐러드 채소 30g</p>
<p><b>드레싱 : </b>올리브유 1큰술, 레몬즙 2큰술, 꿀 1큰술, 소금 약간</p>
<ol>
<li>샐러드 채소를 씻고 물기를 제거한 후 준비합니다.</li>
<li>레드향과 아보카도, 토마토를 먹기 좋은 크기를 썰어둡니다.</li>
<li>드레싱 재료를 믹서에 갈아줍니다.</li>
<li>볼에 샐러드 채소와 썰어 둔 레드향, 아보카도, 토마토를 넣고 드레싱을 뿌리면 끝!</li>
</ol>
<br>
<img src="salad.jpg" alt="레드향 샐러드 레시피" width="50%">
<h2>상품구성</h2>
<table>
<caption>선물용과 가정용 상품 구성</caption>
<tr>
<th>용도</th>
<th>중량</th>
<th>갯수</th>
<th>가격</th>
</tr>
<tr>
<td rowspan="2">선물용</td>
<td>3kg</td>
<td>11~16과</td>
<td>35,000원</td>
</tr>
<tr>
<td>5kg</td>
<td>18~26과</td>
<td>52,000원</td>
</tr>
<tr>
<td rowspan="2">가정용</td>
<td>3kg</td>
<td>11~16과</td>
<td>30,000원</td>
</tr>
<tr>
<td>5kg</td>
<td>18~26과</td>
<td>47,000원</td>
</tr>
</table>
<iframe width="894" height="503" src="https://www.youtube.com/embed/AR5y3WJuTcI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</body>
</html>
하루종일 배운 것을 테스트해보는 코드
iframe으로 유튜브 영상 삽입하기
audio로 mp3 , video로 mp4파일 삽입하기
늘 드는 생각이지만 HTML 수업날은
시간을 알차게 쓰는 것 같다😚
04.15
목요일은 C언어를 배우는 날이다.이 날까지는 Dev C++을 사용했고,
그 다음주부터 Visual studio를 사용하기로 했다.
#include <stdio.h>
//a숫자의 1000단위, 100단위, 10단위 값을 출력하시오
void main(void)
{
int a =0;
printf("네자리 숫자를 입력해주세요.");
scanf("%d",&a);
if(a>=1000 && a<10000){
printf("1000의 자리수 : %d\n",a/1000);
printf("100의 자리수 : %d\n",(a%1000)/100);
printf("10의 자리수 : %d\n",(a%100)/10);
printf("1의 자리수 : %d\n",a%10);
} else{
printf("잘못된 입력입니다.");
}
}
#include <stdio.h>
//반복문 한 개만 사용하여 구구단 2~9단까지 출력하기
void main(void)
{
int dan = 2;
int i;
for(i=1; dan<=9; i++){
if(i>9){
dan++;
i = 0;
printf("\n");
continue;
}
printf("%d X %d = %d\n",dan,i,dan*i);
}
}
구구단 2단부터 9단까지 출력하기
#include <stdio.h>
//do-while문 사용 , 카운트다운
void main(void){
int a = 10;
do{
printf("%d\n",a--);
Sleep(1000); //대문자로 해야함 카운트다운 1000=1초
}while(a>0);
printf("발사");
}
do-while문과 sleep함수를 이용하여
카운트 다운 출력하기
#include <stdio.h>
//Q1. 숫자 한 개를 입력받아 홀수 짝수를 구분하시오.
void main(void){
int a;
printf("숫자를 입력해주세요\n");
scanf("%d", &a);
if(a%2==0){
printf("%d 는 짝수입니다.\n", a);
}else{
printf("%d 는 홀수입니다.\n", a);
}
}
숫자 한 개 입력받아 홀수 짝수 구분하기
#include <stdio.h>
//Q2. 삼항연산자를 이용해서 홀수 짝수 구분하기
void main(void){
int a,b;
scanf("%d",&a);
if(a%2){
puts("홀수");
}else{
puts("짝수");
}
printf("%s", a%2 ? "홀수" : "짝수");
삼항 연산자를 이용해서 홀수 짝수 구분하기
이 외에도 많은 걸 연습했으나
이전 자바수업 때 올린 내용들과 겹치는 부분들이 많아
스킵!
04.16
다시 돌아온 Java데이
개인적으로 슬슬 자바가 어려워진다 싶었던
<배열>을 배웠다ㅎ
(이상하게도 행열이
어디가 가로고 세로인지
맨날 헷갈려 애먹는사람🙋♀)
package Day6;
//p.202 배열초기화하고 출력하기
public class ArrayTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] num = new int[] {1,2,3,4,5,6,7,8,9,10};
for(int i =0; i<num.length; i++) {
System.out.println(num[i]);
}
}
}
int 배열을 초기화하고 배열 길이만큼 출력하기
실행하면 1부터 10까지 개행 출력된다
package Day6;
//p.204 배열 길이만큼 출력하기
public class ArrayTest2 {
public static void main(String[] args) {
double[] data = new double[5];
data[0] = 10.0;
data[1] = 20.0;
data[2] = 30.0;
for(int i = 0; i < data.length; i++) {
System.out.println(data[i]);
}
}
}
double 배열의 길이(length)만큼 출력하기
실행하면 10.0 20.0 30.0 0.0 0.0이 개행 출력된다.
즉, length출력을 하면 data의 길이만큼 data[4]까지 출력됨을 알 수 있다.
package Day6;
//p.205 배열의 유효한 요소 값 출력하기
public class ArrayTest3 {
public static void main(String[] args) {
double[] data = new double[5];
int size = 0; //유효한 값이 저장된 배열 요소 개수를 저장할 변수 선언
data[0] = 10.0; size++;//값을 저장한 후 size 변수 값 증가
data[1] = 20.0; size++;
data[2] = 30.0; size++;
for(int i = 0; i < size; i++) {
System.out.println(data[i]);
}
}
}
이번에는 위 예제와는 달리
유효한 요소값만 출력을 하는 예제이다.
실행하면 10.0 20.0 30.0이 개행 출력된다.
package Day6;
//p.206 알파벳 문자와 아스키 코드 값 출력하기
public class CharArray {
public static void main(String[] args) {
// TODO Auto-generated method stub
char[] alphabets = new char[26];
char ch = 'A';
for(int i=0; i <alphabets.length; i++, ch++) {
alphabets[i]=ch;//아스키값으로 각 요소에 저장
}
for(int i=0; i<alphabets.length; i++) {
System.out.println(alphabets[i]+","+(int)alphabets[i]);
}
}
}
char 배열을 이용하여 알파벳 문자와 아스키 코드 값 출력하기
실행하면 A,65 B,66 C,67 ~ Z,90까지 개행 출력된다.
이 아래로는
복습 시간
package Day6;
import java.util.Scanner;
/*
* 성적을 입력하세요.
* 성적이 90점 이상이면 축하합니다 A학점을 취득하셨습니다가 출력됩니다.
* 마지막에는 무조건 "감사합니다"를 출력해주는 프로그램을 만드세요
* */
public class Question1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("성적을 입력해주세요");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
if(num>=90 && num<=100) {
System.out.println("축하합니다.");
System.out.println("귀하의 점수는 "+ num+"점으로 A학점을 취득하셨습니다.");
}else if(num>=0 && num<90) {
System.out.println("귀하의 점수는"+num+"점입니다.");
}else {
System.out.println("잘못입력하셨습니다. 프로그램을 다시 실행해주세요.");
}
System.out.println();
System.out.println("감사합니다.");
}
}
Q1.Scanner와 반복문을 사용하여 학점 계산하기
package Day6;
import java.util.Scanner;
/*
* 숫자를 입력합니다
* 그 숫자가 0보다 작으면 "음수입니다" 출력
* 0이면 "0입니다" 출력
* 0보다 크면 "양수입니다" 출력하는 프로그램 만들기
* */
public class Question2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("숫자를 입력해주세요");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
if(num>0) {
System.out.println("양수입니다.");
}else if(num<0) {
System.out.println("음수입니다.");
}else if(num==0) {
System.out.println("0입니다.");
}
}
}
Q2.Scanner와 반복문을 이용하여 음수/양수 구분하기
package Day6;
import java.util.Scanner;
/*
* A~F학점을 입력하여
* AB -> 우수한 성적입니다
* CD -> 분발하십시오
* F -> 많은 노력이 필요합니다 출력
* 이 외의 문자가 입력되면 정확한 성적이 아닙니다 출력하기
* */
public class Question3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("학점을 대문자로 입력해주세요");
Scanner sc = new Scanner(System.in);
String user = sc.next();
if(user.equals("A")||user.equals("B")) {
System.out.println("우수한 성적입니다.");
}else if(user.equals("C")||user.equals("D")) {
System.out.println("분발하십시오.");
}else if(user.equals("F")) {
System.out.println("많은 노력이 필요합니다.");
}else {
System.out.println("정확한 성적이 아닙니다. 다시 실행해주세요");
}
}
}
Q3.Scanner와 반복문을 사용하여 학점 계산하기
package Day6;
import java.util.Scanner;
/*
* 정수를 입력받는다
* 정수를 입력받으면 그 정수에 짝수 값만 더해서 결과 값을 출력하는 프로그램을 만드세요
* 원하는 정수입력(짝수의 합) : 100
* 1부터 100까지 짝수의 합은 = 2550 입니다. 출력하기
* */
public class Question4 {
public static void main(String[] args) {
System.out.println("원하는 정수값을 입력하세요");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int sum = 0;
for(int i=0; i<=num; i++) {
if(i%2==0) {
sum +=i;
}
}
System.out.println("입력하신 정수의 값 : "+num);
System.out.println("1부터 "+num+"까지 짝수의 합은 = "+sum+"입니다.");
}
}
Q4.Scanner와 for문을 이용하여 1부터 입력한 정수까지 짝수의 합 구하기
package Day6;
import java.util.Scanner;
/*
*정수를 입력받고 그 정수의 약수가 출력되는 프로그램을 만들어주세요
*ex) 정수 1024
*1024의 약수 : 1 2 4 8 16 32 64 128 258 512 1024
* */
public class Question5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("정수를 입력해주세요.");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
for(int i=1; i<=num; i++) {
if( num % i == 0) {
System.out.print(i+" ");
}
}
}
}
Q5. Scanner로 정수를 입력받고 정수의 약수가 출력되는 프로그램 만들기
package Day6;
import java.util.Scanner;
/*
* 정수를 입력받고
* 그 정수를 1부터 더해서 결과값을 출력하는 프로그램을 만들기
* ex) 원하는 정수 입력 : 10
* 1부터 10까지 결과 값 : 55
* 무한반복으로 해주시고 -1이 입력되면 종료되게 프로그램 구현할 것
*
* */
public class Question6 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
while(true) {
System.out.println("정수 덧셈 프로그램입니다.원하시는 정수를 입력해주세요.");
System.out.println("단, -1을 입력하실 시 프로그램이 종료됩니다.");
int num = sc.nextInt();
int sum = 0;
if(num!=-1) {
for(int i=1; i<=num; i++) {
sum += i;
}
}else if(num==-1) {
System.out.println("프로그램이 종료됩니다.");
break;
}
System.out.println("1부터 "+num+"까지의 결과 값 : "+sum);
System.out.println("처음화면으로 돌아갑니다.");
System.out.println();
}
}
}
Q6.Scanner로 정수를 입력받아 정수 덧셈 프로그램 만들기
package Day6;
import java.util.Scanner;
/*
* 5명의 점수를 각각 입력을 받아서 평균을 출력하는 프로그램을 만드세요
* */
public class Question7 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int[] num = new int[5];
int sum = 0;
for(int i=0; i<num.length; i++) {
System.out.println((i+1) +"번째 학생의 점수를 입력하세요");
int number = sc.nextInt();
if(i>=0 && i<=100) {
num[i] += number;
sum += number;
}else {
System.out.println("잘못된 입력입니다. 프로그램을 다시 실행해주세요.");
break;
}
}
System.out.println("5명의 평균 점수는 : "+ (sum/5) +"점 입니다.");
}
}
Q7.Scanner로 5명의 점수를 각각 입력받아 평균점수를 구하는 프로그램
package Day6;
import java.util.Random;
import java.util.Scanner;
/*
* 사용자가 정수를 입력하면 그 입력한 수 만큼의 배열을 생성해주고,
* 전체 배열에 각각 0~100까지의 랜덤값으로 값을 채워줍니다.
* 그 이후에 가장 큰 값의 인덱스와 가장 작은 값의 인덱스를 출력해주세요
* 만약 똑같은 큰 값이나 작은 값이 있다면 처음 인덱스만 출력할 것
* */
public class Question8 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
Random r = new Random();
System.out.println("정수를 입력해주세요.");
int user = sc.nextInt();//유저에게 정수 받음
int [] num = new int[user]; //받은 수 만큼 배열 생성
int maxindex = 0;
int minindex =0;
//랜덤으로 0~100까지 넣어줌
for(int i=0; i<num.length; i++) { //length뺴줘도될듯
num[i] = r.nextInt(100)+1;
}
//최대 인덱스 비교
for(int i = 0; i<num.length; i++) {
if(num[i] > num[maxindex]) { //num[i] > num[0] 일 때 0은 i로 바뀐다.
maxindex = i;
}
}
for(int i = 0; i<num.length; i++) {
if(num[i] < num[minindex]) { //num[i] < num[0] 일 때 0은 i로 바뀐다.
minindex = i;
}
}
for(int i=0; i<num.length; i++) { // 배열 전체 출력해서 답 확인
System.out.println(num[i]);
}
System.out.println("최대 인덱스값 : "+maxindex);
System.out.println("최소 인덱스값 : "+minindex);
}
}
Q8. 입력받은 정수 크기 만큼의 배열을 생성 및 랜덤값 부여해주고,
최대 인덱스와 최소 인덱스값 구하기
3주차도 끝~!🥳
'공부 > 학원.' 카테고리의 다른 글
국비 개발 학원 5주차(04.26~04.30) (0) | 2021.04.26 |
---|---|
국비 개발 학원 4주차(04.19~04.23) (0) | 2021.04.20 |
국비 개발 학원 2주차(04.05~04.09) (0) | 2021.04.05 |
국비 개발 학원 1주차(03.31~04.02) (0) | 2021.04.05 |
국비 개발 학원 개강 (0) | 2021.04.04 |
댓글