JS 1일 11/02

권준석·2022년 11월 2일
0

JavaScript(자바 스크립트)

  • 인터프리터 언어다
  • 동적인화면을 제공한다
  • 서버와 통신 가능
  • 에러가 나면 에러가 난 자리에서 멈춤다
    (인터프리터 언어의 특징)

전역변수 지역변수

전역변수 : function-scoped
지역변수 :block-scoped

선언

전역 변수function-scoped : var
지역 변수block-scoped : let ,const(선언후 값을 바꿀수없다)

== : 자료형에 상관없이 값이 같으면 참
=== : 값과 자료형이 같아야 참

자바 스크립트의 배열에서는 자료형 상관없이 사용가능

=========================================

문제

자바스크립트의 자료형, 조건문, 반복문, 배열과 관련된 문제입니다.

  1. 1부터 10까지 합을 구하는 프로그램을 작성하시오.
 var a=0;
    for(let i=1;i<11;i++){
        a+=i
    }
    document.write(a);
  1. 1부터 10까지의 숫자에서 짝수만 더하고 그 결과값을 출력하시오.
var a=0;
    for(let i=1;i<11;i++){
        if(i%2==0){
            a+=i  
        }
    }
    document.write(a);
  1. var a = [10,23,31,40,46]
    배열의 값이 짝수인 경우만 총합을 구하시오.
var a = [10,23,31,40,46];
    var b = 0;
    for(let i=0; i<a.length;i++){
        if(a[i]%2==0){
            b+=a[i];
        }
    }
    document.write(b);
  1. var a = [10,23,31,40,46]
    배열의 값이 짝수인 경우는 그 값에 -10을 하여 저장하세요. 그리고 배열의 모든 값을 출력하세요.
var a =[10,23,31,40,46];
    for(let i=0;i<a.length;i++){
        if(a[i]%2==0){
            a[i]-=10;
        }
    }
    for(let i=0;i<a.length;i++){
        document.write(a[i]);
        document.write("<br>")
    }
  1. 다음과 같은 별을 출력하세요
    1
    111
    11111
    1111111
 var a='1';
    for(let i=1;i<5;i++){
        for(let j=0;j<(i*2)-1;j++){
            document.write(a);
        }
        document.write("<br>");
    }
  1. 다음과 같은 별을 출력하세요
    00001
    000111
    0011111
    01111111
var a='1';
    var b=0;
    for(let i=1;i<5;i++){
        for(let l= 0; l<5-i;l++){
            document.write(b);
        }
        for(let j=0;j<(i*2)-1;j++){
            document.write(a);
        }
        document.write("<br>");
    }
  1. for문의 continue를 사용하여 1부터 100까지 숫자 중 짝수만 합하는 프로그램을 작성하시오.
 var a=0;
    for(let i=1; i<101;i++){
        if(i%2==1){
            continue
        }else{
            a+=i;
        }
    }
    document.write(a);

=====================================

추가문제

  1. 1부터 10까지 각 팩토리얼의 합을 구하시오.
    1 + 12 + 123 + .. + 12345678910 = ?
var a = 1;
    var b = 0;
    for (let i = 1; i <= 10; i++) {
        for (let j = 1; j <= i; j++) {
            a *= j;
        }
        b += a;
        a = 1;
    }
    document.write(b);
  1. var a = new Array(24);
    배열의 인덱스를 시간으로 정의한다.
    프로그램이 실행되면 0-23시 중 시간을 입력하시오라는 문구가 나온다. - while(true)로 무한반복
    키보드로 0-23시 숫자 중 하나를 입력한다.
    var a = prompt('수를 입력하세요.'); <키보드로 입력 받을 수 있다>
    이때 키보드로 99를 입력하면 무한반복문을 종료한다.
    위에서 시간을 입력하면 이번에는 스케줄을 입력한다.
    스케줄 입력이 끝나면 다시 0-23시 중 시간을 입력하시오라는
    문구가 나오면서 반복한다.

    스케줄이 모두 입력 되었으면(99로 종료 한다)
    입력된 스케줄이 출력되도록 한다. 출력형태는 0시 : 일정내용

    만약 현재 시간에 해당되는 일정이라면 일정내용 뒤에 *를 붙힌다.
    현재 시간은 new Data(); 객체를 이용한다. // 교재 ppt 에 나옴

var a = new Array(24);
    var d = 0;
    while (true) {
        var b = prompt('0~24시간을 입력하세요.');
        if (b == 99) {
            break
        }
        var c = prompt('스케줄을 입력하세요');
        a[b] = c;
    }
    var date = new Date();
    var hour = date.getHours();
    for (let i = 0; i < a.length; i++) {
        if (hour == i) {
            document.write(a[i]);
        }
    }
  1. 다음 소스를 분석하시오.
    const n = prompt('수를 입력하세요.').split(' ');
    console.log(Math.pow(parseInt(n[0], 10), parseInt(n[1], 10)));
    수를 입력할때는 숫자공백숫자를 입력한다. 예를들어 20 30
 const n = prompt('수를 입력하세요.').split(" ");
    // 입력된 글자를 배열로 n에 저장
    console.log(Math.pow(parseInt(n[0], 10), parseInt(n[1], 10)));
    // 저장된 배열에 0인덱스와 1번 인덱스을 10진수로 표현 
    // 표현된 0번 인덱스의 수을 1번인덱스의 수만큼 제곱하여
    // 콘솔창에 출력한다.
  1. const scores = prompt('세 과목의 점수를 입력하세요.').split(' ');
    위 코드로 세 과목의 점수를 입력받고 총합과 평균을 구하시오.
    평균은 소숫점 둘째자리까지 표현한다. (반올림)
var sum = 0;
    var agv = 0;
    const scores = prompt('세 과목의 점수를 입력하세요.').split(" ");
    for (let i = 0; i < scores.length; i++) {
        sum += parseInt(scores[i], 10);
    }
    agv = sum / scores.length;
    document.write(sum + "/" + agv);
profile
ㅇㅇ

0개의 댓글