Циклы, сумма и среднее арифметическое
Есть такая задача:
Запустите цикл, в котором пользователю предлагается вводить число с клавиатуры, до тех пор, пока не будет нажата Отмена. После выхода из цикла распечатайте количество введенных чисел, их общую сумму и среднее арифметическое. мой js: label: for (var i=0;;i++){ var user = Number (prompt("введите число")); if(user){ var amount =+amount+user; continue label; }else { break; } } var average = amount/i; document.write(i+''); //количество введенных чисел document.write('сумма:'+' '+amount); document.write('среднее арифметическое:'+' '+average); Помогите посчитать сумму чисел и их среднее арифметическое. Среднее арифметическое вроде правильно пишу, а вот с суммой что-то не так и не понимаю что. У меня в конце цикла получается переменная amount=NaN. |
amount не инициализирована.
Попробуйте добавить в самом начале: *!*var amount =0;*/!* label: for (var i=0;;i++){ ... |
спасибо. Получилось)
|
а с этой задачей поможете?
Используя вложенные циклы, сформируйте строку чередованием символов . и # таким образом, чтобы получилась шахматный узор. Для перевода строки используйте символ \n. Код должен поддерживать легкое изменение размеров доски. .#.#.#.#.#.# #.#.#.#.#.#. .#.#.#.#.#.# #.#.#.#.#.#. .#.#.#.#.#.# одну строку ".#.#.#.#.#.#"получается сделать, но дальше не получается.Не знаю как можно сделать for (var j = 0; j < 1; j++) { if (j % 2===0){ var w='.'; document.write(w); }else if(j % 2===1){ var k='#'; document.write(k); } } |
По харду ;)
var a=8, b=8, str=''; // b-строки, a-столбцы while(b--) str += (b%2?'#.':'.#').repeat(a/2)+((a%2)?b%2?'#':'.':'')+'\n'; console.log(str); если вы используете document write по переход на следующую строку <br> |
а можете эту строчку расписать?
while(b--) str += (b%2?'#.':'.#').repeat(a/2)+((a%2)?b%2?'#':'.':'')+'\n'; Потому что так не совсем понятно. Слишком много знаков вопроса)) |
и так он получается выводит 8 символов в строку и 8 строк.
А надо 12 символов в строку и 5 строк) |
var a=12, b=5, str=''; // b-строки, a-символы while(b--) str += (b%2?'#.':'.#').repeat(a/2)+((a%2)?b%2?'#':'.':'')+'\n'; console.log(str); можете указывать любое количество строк и символов. while(b--) str += (b%2?'#.':'.#').repeat(a/2)+((a%2)?b%2?'#':'.':'')+'\n'; while(b--) //запускаем цикл b раз str += //в котором за каждую итерацию добавляем в строку (b%2?'#.':'.#').repeat(a/2) // если строка нечетная (тоесть процент от остатка равен 1, а 1 это true) '#.' - это кусок строки повторяем a-раз деленные на 2 т.к. в строке два символа. если четная то '.#' то же самое. +((a%2)?b%2?'#':'.':'') // этот кусок кода только для нечетного количества символов если из будет 12 его можно вообще убрать. +((a%2)?b%2?'#':'.':'') // если количество символов нечетное и строка нечетная то добавляется символ '#' если строка четная то символ '.' если же количество символов в строке четное, то добавляется пустая строка (тоесть ничего не добавляется) сделано это потому что .repeat повторяет целую строчку. пополам он ее не делит, проще говоря округляет число до целого как Math.floor. Если что непонятно, почитайте про .repeat, тернарный оператор и цикл while |
|
:lol: шифровка из центра ...
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> body{ font-weight: 600; } </style> </head> <body> <script> function fn(a, d) { for (var c = "", b = 0; b < a * d; b++) c += b % 2 ^ (a % 2 || b % (2 * a) < a) ? "." : "#", (b + 1) % a || (c += "<br>"); return c }; for (var i=8; i<13; i++) { document.write("<h4>"+[i,i-7]+"</h4><br>"+fn(i,i-7)+"<br>") } </script> </body> </html> |
Часовой пояс GMT +3, время: 14:14. |