Урок номер 2

  • Есть такой код:

    
      // Инициализация переменных, "a" и "b" присваивается 1
      var a = 1, b = 1, c, d;
    
      // Переменная "a" увеличивается на 1, после этого присваивается 
      // переменной "c" и выводится.
      c = ++a; alert(c); // 2
    
      // Переменная "b" присваивается переменной "d". После присваивания
      // "b" увеличивается на 1 (становится 2). Выводится переменная "d".
      d = b++; alert(d); // 1
    
      // Переменная "a" (была 2 стала 3) увеличивается на 1, 
      // после этого выполняется операция сложения и присваивается "c"
      c = (2+ ++a); alert(c); // 5
    
      // Складывается 2 + b (2 + 2)и сумма присваивается  "d". После этого
      // "b" увеличивается на 1 (становится 3)
      d = (2+ b++); alert(d); // 4
    
      // Выводим "a"
      alert(a); // 3
      // Выводим "b"
      alert(b); // 3
    			

    Необходимо разобраться почему работает именно так. Объяснения написать в виде комментария к каждой строчке.

  • Чему будет равен x в примере ниже?

    
      var a = 2;
    
    
      //  "a" умножается на "a" , потом присваивается 1.
      var x = 1 + (a *= 2);
          

    Результат: x =

  • * Забегая немного вперед. Напишите программу, которая выводит через console.log все числа от 1 до 100, с двумя исключениями. Для чисел, нацело делящихся на 3, она должна выводить‘Fizz’, а для чисел, делящихся на 5 (но не на 3) – ‘Buzz’.Когда сумеете – исправьте её так, чтобы она выводила «FizzBuzz» для всех чисел, которые делятся и на 3 и на 5.

    a)

    
    function FizzOrBuzz() {
      for (var i = 1; i <= 100; i++) {
          if( (i % 3) == 0)
            console.log("Fizz");
          else if( (i % 5) == 0)
            console.log("Buzz");
          else
            console.log(i);
      }
    }
            


    b) Когда сумеете – исправьте её так, чтобы она выводила «FizzBuzz» для всех чисел, которые делятся и на 3 и на 5.

    
    function FizzAndBuzz() {
      for (var i = 1; i <= 100; i++) {
          if( (i % 3) == 0 && (i % 5) == 0 )
            console.log("FizzBuzz");
          else
            console.log(i);
      }
    }
            


  • Домашнее задание из методички.
    Добавить еще одну переменную с помощью prompt. Передать эту переменную во второй цикл, в качестве предела вычисления переменной j.

    
    
      var n = parseInt(prompt("Введите число: ", 1));
      for(var i=1;i<=n;i++){
        for(var j=1;j<=10;j++){
          document.write("<br>",i," x ",j," = ", j*i );
        }
      }
    
      /*
        Домашнее задание.
        Добавить еще одну переменную с помощью prompt. Передать эту переменную во второй цикл,в качестве предела вычисления переменной j.
      */
    
          
    Решение:
    
      function ixj() {
        var n = parseInt(prompt("Введите число n: ", 1));
        var m = parseInt(prompt("Введите число m: ", 1));
        var out = "<h3>ТАБЛИЦА УМНОЖЕНИЯ</h3>";
        for(var i=1;i<=n;i++){
          out += "<div class=\"tablica\"><table>";
          for(var j=1;j<=m;j++){
            //document.write("<br>",i," x ",j," = ", j*i );
            out += "<tr><td>" + i + "</td><td> x </td><td>" + j + "</td><td> = </td><td>" + (j*i)+ "</td></tr>";
          }
          out += "</table></div>";
        }
    
        document.getElementById('out').innerHTML= out;
     }
          


  • Напишите цикл, выводит такой треугольник:

     
            
    # ## ### #### ##### ###### #######

    Решение:

    
    
    function tetra() {
      for (var i = 1; i <= 7; i++) {
        for (var j = 1; j <= i; j++) {
          document.write("#");
        }
        document.write("<br>");
      }
    }
    
    tetra();
    
          


  • * Напишите программу, создающую строку, содержащую решётку 8х8, в которой линии разделяются символами новой строки. На каждой позиции либо пробел, либо #. В результате должна получиться шахматная доска.

    Решение:

    
    
    function shashki() {
      document.write("<pre>");
      for (var i = 1; i <= 8; i++) {
        for (var j = 1; j <= 8; j++) {        
            if( j%2 == i%2 ){
              document.write("#");
            } else {
              document.write(" ");
            }
        }
        document.write("<br>");
      }
      document.write("</pre>");
    }
    
    shashki();