//과제) num 배열 요소의 각각의 등수 모두 구하시오
let num = [7, 8, -5, 9, 6];
let size=num.length;
document.write(num);
document.write("<hr>");
/*
7<7 if(num[0]<num[0])
7<8 if(num[0]<num[1]) rank[0]=rank[0]+1 ->1+1
7<-5 if(num[0]<num[2])
7<9 if(num[0]<num[3]) rank[0]=rank[0]+1 ->2+1
7<6 if(num[0]<num[4])
*/
// 7 8 -5 9 6
let rank=[1, 1, 1, 1, 1];
let r = 0;
for( let m = 0 ; m < size ; m++ ) {
for(let i = 0 ; i < size ; i++ ) {
if (num[m]< num[i]) {
rank[m]++;
}
}
}
document.write(rank);
o 성적표(배열 활용)
//참조 section0213/05_성적표.html
//문) 5명의 학생을 대상으로 평균, 등수, 과락, 평균10점당 * 한개씩, 장학생을 구한후
// 결과값을 표작성해서 id=demo에 출력하시오
/*
출력결과
--------------------------------------------------------
이름 국어 영어 수학 평균 등수 결과
--------------------------------------------------------
라일락 100 100 100 100 1 합 격 ********** 장학생
진달래 50 55 60 55 4 불합격 *****
개나리 95 95 35 75 3 재시험 *******
무궁화 80 85 90 85 2 합 격 ********
홍길동 60 40 30 43 5 불합격 ****
----------------------------------
*/
let uname = ["라일락","진달래","개나리","무궁화","홍길동"];
let kor = [100, 50, 95, 80, 60];
let eng = [100, 55, 95, 85, 40];
let mat = [100, 60, 35, 90, 30];
let size = uname.length;
//1) 평균구하기
let aver = [0, 0, 0, 0, 0];
for( x = 0; x < size; x++ ) {
aver[x] = parseInt((kor[x] + eng[x] + mat[x])/3);
}
//2)등수구하기(평균 기준)
let rank = [1,1,1,1,1];
for( x = 0; x < size; x++ ) {
for( y = 0; y < size; y++ ) {
if( aver[x] < aver[y] ) {
rank[x]++;
}
}
}
/////////////////////합불재시 결과
let pf=["","","","",""];
for( x = 0; x < size; x++ ) {
if ( aver[x] >= 70 ) {
if ( kor[x] >= 40 && eng[x] >= 40 && mat[x] >= 40 ) {
pf[x] = pf[x] + "합격";
}
else {
pf[x] = pf[x] + "재시험";
}
}
else {
pf[x] = pf[x] + "탈락";
}
}
/////////////////////////////평균별개수
let strmax=["","","","",""];
let strnum = 0;
let str = "*";
for( x = 0; x < size; x++ ) {
for( let strnum = 0; strnum < parseInt( aver[x] / 10) ; strnum++ ) {
strmax[x] = strmax[x] + str ;
}
}
/*
*/
/////////////장학생여부
sch=["","","","",""];
for( x = 0; x < size; x++ ) {
if (aver[x] >= 95) {
sch[x] = sch[x] + "<span style = 'color:red; font-weight:bold'>장학생</span>";
}
}
//////////////////표출력
let result="";//결과값
result = result + "<table border='1'>";
result = result + "<tr>";
result = result + "<th>이름</th>";
result = result + "<th>국어</th> ";
result = result + "<th>영어</th>";
result = result + "<th>수학</th>";
result = result + "<th>평균</th>";
result = result + "<th>등수</th>";
result = result + "<th>결과</th>";
result = result + "</tr>";
//4) 5명의 성적을 출력
for(let x = 0; x < size; x++ ) {
result = result + "<tr>";
result = result + " <td>" + uname[x] + "</td> ";
result = result + " <td>" + kor[x] + "</td> ";
result = result + " <td>" + eng[x] + "</td> ";
result = result + " <td>" + mat[x] + "</td> ";
result = result + " <td>" + aver[x] + "</td> ";
result = result + " <td>" + rank[x] + "</td> ";
result = result + "<td>" + pf[x] + "</td> ";
result = result + "<td>" + sch[x] + "</td> ";
result = result + "<td>" + strmax[x] + "</td> ";
result = result + "</tr>";
}
result = result + "</table>";
document.getElementById("demo").innerHTML=result;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
o 연도, 월, 일 값을 입력했을 때 요일이 출력되는 프로그램
실제날짜와는 무관
서기 1년1월1일 ~ 서기 2023년 2월 15일까지의 총 일수
구하기
총날수%7 => 0일 1월 2화 3수 4목 5금 6토
1) 서기 1년 ~ 서기 2022 일수 구하기
평년 += 365
윤년 += 366
2)월의 일수 구하기
3)일수 더하기
*/
//1)입력해 전해까지의 일수 구하기
let hap = 0; //총날수
for( y =1 ; y < cYear; y++ ) {
if( y % 4 ==0 && y % 100 !=0 || y % 400 == 0 ) {
hap = hap + 366;
}else{
hap = hap + 365;
}
}
//document.write(hap);
//document.write("<hr>");
//월의 일수 구하기
/*
31 1,3,5,7,8,10,12
30 4,6,9,11
29 윤년2월
28 평년2월
*/
/* 내가한것, 값을 합할 수 없어 쓸모는 없음
let mon = 0;
if(cMonth==1||cMonth==3||cMonth==5||cMonth==7||cMonth==8||cMonth==10||cMonth==12) {
mon = 31;
}else if (cMonth==2){
if( y % 4 ==0 && y % 100 !=0 || y % 400 == 0 ){
mon = 29;
}else{
mon = 28;
}
}else{
mon = 30;
}
*/
//배열을 활용한 달의 일수구하기
let mon=[0,31,28,31,30,31,30,31,31,30,31,30,31]
if(cYear % 4 ==0 && cYear % 100 !=0 || cYear % 400 == 0){
mon[2]=29;
}
for(let m=1; m<cMonth; m++) {
hap = hap+mon[m];
}
//3)단계
hap = hap + cDate;
document.write(cYear + "년" + cMonth + "월" + cDate + "일");
document.write("<hr>")
document.write("총날수 : " + hap);
document.write("<hr>");
switch(hap%7) {
case 0 : document.write("일요일"); break;
case 1 : document.write("월요일"); break;
case 2 : document.write("화요일"); break;
case 3 : document.write("수요일"); break;
case 4 : document.write("목요일"); break;
case 5 : document.write("금요일"); break;
case 6 : document.write("토요일"); break;
}
document.write("<hr>");
//띠 구하기
let animal=["원숭이","닭","개","돼지","쥐","소","호랑이","토끼","용","뱀","말","양"];
document.write("띠 : " + animal[cYear%12]);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/* 함수 작성시 고려사항
- 매개변수(parameter)가 있는지
- return값이 있는지?
*/
//document.write() : ()값을 웹브라우저 본문영역에 출력하는 함수
function test1() {
document.write("KOREA");
}//test1() end
function test2() {
document.writeln("SEOUL");
}
function test3(a) {
//a라는 매개변수(parameter)에는 아래에서 전달한 값인 10이 들어감
//매개변수는 자료형이 없다
document.writeln(a);
}
//test2() end
//////////////////////////////////////////////////
//1. 전달값이 없는 경우 (argument value) -> 괄호 안의 값 없음
test1(); //함수호출
test1(); // KOREA
test2(); //SEOUL
//2. 전달값이 있는 경우
test3(10); //10
test3(20); //20
test3(30); //30
//////////////////////////////////////////////////
function test1() {
document.writeln("SEOUL");
return; //호출시점으로 되돌아간다
// >>굳이 쓰지 않아도 저절로 돌아감
//맨 마지막줄의 return은 생략가능(중간에는 반드시 써야)
}//test1 end
function test2(a) {
if(a < 0) {
return;
}
document.writeln(a);
}//test2 end
function test3(a, b) {
let c = a + b ;
return c; //c값을 리턴, 1개만 리턴할 수 있다.
//document.writeln(c);
}//test3 end
test1(); // SEOUL
test2(3); // 3
test2(-3); // 함수 중간에서 return하여 아무것도 나오지 않음
//////////////////////////////////////////////////////////////////
//문1) 팩토리얼 값 구하기(4*3*2*1)
function fact(a) {
let gop = 1;
for( let b= 1; b <= a ; b++ ) {
gop = gop * b
}
return
///////////////////////////////////////////////////
o//문2{} 윤년 평년 구하기
function leap(a) {
if(a % 4 == 0 && a % 100 !=0 || a % 400 == 0 ) {
return true;
} else {
return false;
if(leap(2023)) {
document.write("윤년");
}else {
document.write("평년");
}
'수업노트' 카테고리의 다른 글
| 배열메소드 (0) | 2023.02.17 |
|---|---|
| 23.2.16(목) (0) | 2023.02.16 |
| 23.2.14(화) (0) | 2023.02.14 |
| 23.2.13 (월) (0) | 2023.02.13 |
| 23.2.9 (목) (0) | 2023.02.09 |