Вопрос по обучающим примерам.
Если не в тот раздел, извините. :)
Начал изучение JavaScript. Параллельно читаю учебник на этом сайте и смотрю видео курс "Специалист". Делал задания по видео про функции. Задание было сделать функцию вычисления средне арифметического числа. Вот как сделал "Специалист":
<script>
function middle (a1,a2)
{
var f = (a1 + a2)/2;
return f;
}
var s1 = prompt ('Введите первое число','');
s1 = parseInt(s1);
var s2 = prompt ('Введите второе число','');
s2 = parseInt(s2);
var j = middle(s1,s2);
document.write (j)
</script>
А вот как сделал я:
<script>
var c = +prompt ("Введите первое число","");
var v = +prompt ("Введите второе число","");
function z(c,v)
{
return "Среднее арифметическое " + (c + v) / 2;
}
document.write (z(c,v));
</script>
Вопрос: :-? ЗАЧЕМ в примере "Специалиста" так много переменных??? и ПОЧЕМУ работает мое решение???? (делал абсолютно по наитию(как кажется правильным)) |
Цитата:
Цитата:
|
alert((+prompt('Введите первое число') + +prompt('Введите второе число')) / 2);
|
Цитата:
alert((+(a=prompt)('Введите первое число') + +a('Введите второе число')) / 2);
|
На все ваши ответы у меня есть свой одни:
В рот мне чих-пых! Как вы это делаете!??!? Но задача была научится работать с функциями, хотя и ваши примеры я взял на заметку. :) В моем решении меня интересует КАК он заработал, и ПОЧЕМУ, по какому алгоритму???? кто то может объяснить? |
Славик,
Посто ты написал рабочий код. Тябя это удивляет? :) ты записал в переменные prompt, потом сделал функцию, возвращающюю их среднее арефметическое, потом вывел результат функции на страницу. Всё правильно, не удивляйся )) |
Цитата:
А если серьёзнее то вам скорее всего не понятно почему уних используеться parseInt а у вас вместо него сразу c = +prompt ну так унарныйй плюс тоже преобразует в числовой тип. поэтому и работает правильно... |
с Предыдущим разобрался... у меня другой вопрос. Вот код
var z = new Array();
do
{
var x = +prompt('Введите число или 0 для отмены','');
if (x) z.push(x);
}
while ( x );
document.write ('Вы ввели числа : ' + z + '<br/>');
var s = 0;
for ( i = 0; i < z.lenght; i++)
//document.write (z[i]);
{s += z[i];}
if (z.length > 0)
{ var d = s/z.length;}
document.write ('Среднее число : ' + d);
Он должен вычислять среднее арифметическое из введенного массива. НО почему то не выводит, а выводит среднее 0, если убрать закомментированную строчку с документ.врайтом и сделать ее активной, то 1 оно не выводит документ.врайт на страницу 2 все начинает работать нормально... :-? Почему так??? делалось все по аналогии и я не смог найти разницу между работающим кодом и моим... |
выводите через alert.
|
Славик, 11 строка z.lenght Это на первый взгляд.
|
| Часовой пояс GMT +3, время: 06:15. |