본문 바로가기
수업노트

23.2.15(수)

by MIniLabo 2023. 2. 16.

//과제) 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)일수 더하기
    */
   
   let cYear = 2023, cMonth = 2, cDate = 15;
//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