Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Решение задачки, нигде не могу найти. (https://javascript.ru/forum/misc/51519-reshenie-zadachki-nigde-ne-mogu-najjti.html)

Mr_ZET 10.11.2014 00:11

Решение задачки, нигде не могу найти.
 
Есть у меня задание. Нужно что бы была строка в которую вводишь цифры (например 1,2,3,4 и т.д. можно до 10) можно вводить долго, до тех пор пока не введешь 0. Когда вводишь ноль скрипт останавливается и выдает окно с количеством введенных цифр их общую суму , среднее число, и суму нечетных чисел. Мне бы для начала только количество чисел, а то не получается у меня и не могу найти нигде. Вот код который у меня есть не знаю что дальше писать. Прошу помощи )

<html>
<body>
<script>
do
{

var n = 1;
var n = prompt("Ведите число");
}
while (0<n)

</script>
</body>
</html>

krutoy 10.11.2014 00:33

Если не принципиально использование именно prompt, то типа:
<html>
	 
	<head>
	    <title>Untitled</title>
	</head>
	 
	<body>
<input id="inp" />





<script>

inp=document.getElementById("inp")
inp.oninput=function(){
var all = /\d+/g, isZero=/0/g, str=inp.value
if(isZero.test(str)) alert(str.match(all).length)
}

</script>
</body>
	</html>

А с prompt такое вряд ли получится, это блокирующая операция, пока юзер не разблокировал нажатием enter, скрипт не сможет читать данные со ввода, если я не ошибаюсь.

рони 10.11.2014 00:33

Mr_ZET,
придумать нечто что будет хранить каждое число

рони 10.11.2014 00:50

Цитата:

Сообщение от krutoy
А с prompt такое вряд ли получится

prompt подходит для данной задачи

krutoy 10.11.2014 00:54

рони,
Я понял, да, если вводить по одному то получится, например:
<html>
	 
	<head>
	    <title>Untitled</title>
	</head>
	 
	<body>
<script>
arr=[]
isZeroInArr=function(){
var isZero=/0/
arr.forEach(function(el){if(isZero.test(el)||arr.length===10) throw arr.length})
}

try{
while(true){
arr.push(prompt("Enter Num: "))
isZeroInArr()
}
}catch(e){alert(e)}


</script>
</body>
	</html>

Я просто подумал, что вводить сразу надо. А так неудобно, как-то, трахаться. Но можно, да.

рони 10.11.2014 01:55

Mr_ZET,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>
<body>
<script>
 var length = sumOfOddNums = sum = 0;
 while (n = +prompt("Введите число")) {
     length++;
     n % 2 && (sumOfOddNums += n);
     sum += n;
 }
alert([length,sumOfOddNums,sum, sum/length])
</script>
</body>
</html>

depp 10.11.2014 08:13

Цитата:

Сообщение от рони (Сообщение 340088)
prompt подходит для данной задачи

судя по заданию, нет.
можно воспользоваться сриптом от krutoy, только регулярка там будет /\d{1}/g, и когда введут ноль, обрезать его и считать все необходимые параметры.


Часовой пояс GMT +3, время: 03:24.