Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.07.2017, 12:46
Аспирант
Отправить личное сообщение для Tanya51 Посмотреть профиль Найти все сообщения от Tanya51
 
Регистрация: 09.07.2017
Сообщений: 49

Циклы, сумма и среднее арифметическое
Есть такая задача:
Запустите цикл, в котором пользователю предлагается вводить число с клавиатуры, до тех пор, пока не будет нажата Отмена. После выхода из цикла распечатайте количество введенных чисел, их общую сумму и среднее арифметическое.


мой 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.
Ответить с цитированием
  #2 (permalink)  
Старый 11.07.2017, 13:30
Интересующийся
Отправить личное сообщение для SergeyERjs Посмотреть профиль Найти все сообщения от SergeyERjs
 
Регистрация: 03.07.2017
Сообщений: 19

amount не инициализирована.
Попробуйте добавить в самом начале:
*!*var amount =0;*/!*
label: for (var i=0;;i++){
...
Ответить с цитированием
  #3 (permalink)  
Старый 11.07.2017, 16:04
Аспирант
Отправить личное сообщение для Tanya51 Посмотреть профиль Найти все сообщения от Tanya51
 
Регистрация: 09.07.2017
Сообщений: 49

спасибо. Получилось)
Ответить с цитированием
  #4 (permalink)  
Старый 11.07.2017, 16:17
Аспирант
Отправить личное сообщение для Tanya51 Посмотреть профиль Найти все сообщения от Tanya51
 
Регистрация: 09.07.2017
Сообщений: 49

а с этой задачей поможете?

Используя вложенные циклы, сформируйте строку чередованием символов . и # таким образом, чтобы получилась шахматный узор. Для перевода строки используйте символ \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);
}
}
Ответить с цитированием
  #5 (permalink)  
Старый 11.07.2017, 18:32
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

По харду
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>

Последний раз редактировалось j0hnik, 11.07.2017 в 19:14.
Ответить с цитированием
  #6 (permalink)  
Старый 11.07.2017, 20:45
Аспирант
Отправить личное сообщение для Tanya51 Посмотреть профиль Найти все сообщения от Tanya51
 
Регистрация: 09.07.2017
Сообщений: 49

а можете эту строчку расписать?
while(b--) str += (b%2?'#.':'.#').repeat(a/2)+((a%2)?b%2?'#':'.':'')+'\n';

Потому что так не совсем понятно. Слишком много знаков вопроса))
Ответить с цитированием
  #7 (permalink)  
Старый 11.07.2017, 20:49
Аспирант
Отправить личное сообщение для Tanya51 Посмотреть профиль Найти все сообщения от Tanya51
 
Регистрация: 09.07.2017
Сообщений: 49

и так он получается выводит 8 символов в строку и 8 строк.
А надо 12 символов в строку и 5 строк)
Ответить с цитированием
  #8 (permalink)  
Старый 11.07.2017, 22:47
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

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
Ответить с цитированием
  #9 (permalink)  
Старый 11.07.2017, 23:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069


Конкурс извратов
Ответить с цитированием
  #10 (permalink)  
Старый 12.07.2017, 01:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069

шифровка из центра ...
<!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>

Последний раз редактировалось рони, 12.07.2017 в 01:30.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти среднее арифметическое Sonick Общие вопросы Javascript 11 01.06.2019 18:16
Сумма в каждой колонке WestMare Общие вопросы Javascript 0 10.06.2017 13:40
Проверка input[text] + input[checkbox] avdotion jQuery 4 07.01.2017 15:49
Определить среднее арифметическое элементов Тип_1 Общие вопросы Javascript 2 25.06.2012 10:56
Среднее арифметическое двумерного массива Тип_1 Общие вопросы Javascript 23 25.06.2012 00:33