Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Арифметическое сложение, Как сложить арифметически числа 
:(
    Опции темы
GIK
Дата 4.6.2005, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: 6
Всего: 14



Как сделать так чтобы числа складывались арифметически, а не "сливались"
в одно число.
Краткое описание программы:
Пользователем вводится число, это число при некотором условии складывается с другим, определенным, числом, через определенный промежуток времени. Итог помещается во вторую строку. И так далее до максимального числа.

Код
<script type="text/javascript">
function Func(obj) 
 { var k=obj.num.value
   if (k<10)
  {obj.num.value=k+2
   setTtmeout("func()", 500)}
  if (k>10) { obj.num2.value=obj.num.value}
 If (k>1000) {obj.num2.value="Достижение максимального числа"}
}
</script>
</head>
<body>
<form>
<input type="text" name="num" value="введите число" onfocus="this.value='';"><br>
<input type="text" name="num2" value="число+2">
<input type="button" value="вычислить" onClick="Func(this.form)"><br>
</form>
</body>


Добавлено @ 11:22
Ребята. если вы меня слышите.
ИЛЬ, спасибо за моральную поддержку. На ты со мной нужно.
Aliance извини за неправильный вход в форум.
Просто я не сразу не врубился как входить зарегистрированным.


--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
sergejzr
Дата 4.6.2005, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



http://vingrad.ru/JAVASCRIPT-JS-001953

PS:
Пожалуйста, пользуйтесь тэгами "Код".


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
GIK
Дата 4.6.2005, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: 6
Всего: 14



Мне нужно преобразовать вводимы числа
в number smile
num1=Number(k);
где num1 заменяется "k" в if (k<10) и т.д.




--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
sergejzr
Дата 4.6.2005, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Ээээ. Там же всё написано...


Код

str="1234";
num=parseInt(str);//теперь num - число, а не строка
num++;..прибавляем единицу
alert(num);//Выдаст 1235



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
o.s.a.
Дата 4.6.2005, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Xo4y B MocKBy
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 16.2.2005
Где: Ташкент

Репутация: 5
Всего: 15



GIK, у меня была однажды такая же проблема
Для ее решения мне пришлось всего лишь почитать учебник smile


--------------------
Не могу стоять, пока другие работают, пойду полежу.
PM MAIL ICQ   Вверх
Aliance
Дата 5.6.2005, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Итак, немного о базовом JS.
В ЯваСкрипте существует определенное кол-во операторов, их условно можно поделить на три группы: унарные, бинарные и тернарные. Т.е. операторы, состоящие из 1, 2 и, соответственно, 3 операторов. Для ясности приведу примеры:
  • унарные: - в качестве оператора смены знака, т.е. оператор “минус” в выражении -1 представляет собой унарный оператор, выполняющий смену знака у одного единственного операнда.
  • бинарные: + в качестве оператора контектации строк, к примеру. Т.е. он соединяет две строки в единую.
  • тернарные: ? :

Оператор «плюс» является одним из самый сложных, т.к. он выполняет роль сразу нескольких операторов:
  • унарный плюс
  • сложение
  • контектация
  • инкремент

Теперь, не отходя от темы коснусь проблемы, которая попалась тебе.
Создавая выражения JavaScript, необходимо обращать особое внимание на типы данных. Т.к. различие в типах могут приводить к неожиданным последствиям, как это было в этом примере. При сложении чисел, необходимо убедиться, что оба операнда имеют численный тип данных или могут быть приведены к ним.
Если оператору «плюс» переданы одна строка и одно число, он преобразует число в строку и пытается выполнить контектацию, таим образом получается так:
Код

результатом выражения "1"+2 будет строка "12"


Оператор сам пытается (если это возможно) сделать перевод типов данных, но строчным имеет прерогативу над числовым. Соответственно, для получения необходимого результата нужно вручную перевести тип в необходимый:
Код

alert("22" + 8); // вернет 228
alert(toNumber("22") + 8); // вернет 30

PM MAIL WWW ICQ Skype   Вверх
GIK
Дата 6.6.2005, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: 6
Всего: 14



Aliance спасибо что не заставил меня лезть в учебник.
Вопрос. Можно ли создать оператором переменную и присвоить ей ТИП "номер" и только потом присвойть значение? Будет ли это значение иметь ТИП-обычное число, которое можно складывать перемножать и т.д.?

Код

<html>
 <head>
<script type="text/javascript">
function Func(obj) 
{ var k=Number  // Присваиваю значение Namber (Надеюсь правильно)
  k=obj.num.value
 if (k>10)
  {obj.num.value=k+2
   setTimeout("func()", 10000)}
  if (k>10)  
  {obj.num2.value=obj.num.value}
  if (obj.num2.value>10000)
  {obj.num2.value="Максимальное число"}
}
</script>
</head>
<body>
<form>
Введите число больше 10: <input type="text" name="num" value="введите число" onfocus="this.value='';"><br>
<input type="text" name="num2" value="число+2">
<input type="button" value="вычислить" onClick="Func(this.form)"><br>
</form>
</body>
</html>
Заранее СПАСИБО.

М
 

Пользуйся форумной подсветкой кода!


Это сообщение отредактировал(а) Aliance - 6.6.2005, 16:58


--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
sergejzr
Дата 6.6.2005, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Код

<html>
<head>
<script type="text/javascript">
function Func(obj)
{ //var k=Number // Присваиваю значение Namber (Надеюсь правильно)
k=parseInt(obj.num.value);//Именно здесь слово становится числом!!!
if (k>10)
{obj.num.value=k+2 //Здесь не надо переводить число в строку это будет сделано автоматически
setTimeout("func()", 10000)}
if (k>10)
{obj.num2.value=obj.num.value}
if (parseInt(obj.num2.value)>10000)//здесь опять сравниваем числа - на до перевести строку в число
{obj.num2.value="Максимальное число"}
}
</script>
</head>
<body>
<form>
Введите число больше 10: <input type="text" name="num" value="введите число" onfocus="this.value='';"><br>
<input type="text" name="num2" value="число+2">
<input type="button" value="вычислить" onClick="Func(this.form)"><br>
</form>
</body>
</html>



Пожалуйста, пользуйтесь тэгами "Код"!!! Ужо просил ведь smile
А учебники всё равно не помешает почитать smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
GIK
Дата 6.6.2005, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: 6
Всего: 14



Спасибо.
А как теперь сделать, чтобы числа в полях изменялись по истечении времени,
и что значит "Здесь не надо переводить число в строку это будет сделано автоматически"? smile




--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
sergejzr
Дата 6.6.2005, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



По истечении времени у тебя вызывается функция func(), которая не определена в коде!!
Держу пари, ты просто ошибся регистром smile. Просто поставь "Func()"

теперь про типы:

Вот смотри если я пишу:

var X="1234";
var Y=1234;

Эти две переменные не равны!! Потгому что X - слово, а Y - цифра.

Если ты пытаешься сложить их, компьютер страратся привести обе к одному общему виду. Слово не всегда можно сделать числом, а наоборот можно!
Поэтому компьютер приводит обе переменные в строку и "складывает"
то есть

X+Y будет "12341234"

Для того, чтобы он сложил два числа, необходимо привести обе переменные к типу "число" поэтому мы делаем так:
parseInt(X)+Y теперь будет 2468.

Однако перевести число в строку компьютер может и без нашего напоминания.



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
GIK
Дата 6.6.2005, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: 6
Всего: 14



Теперь понял.
СПАСИБО.



--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
Aliance
Дата 6.6.2005, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Цитата(GIK @ 6.6.2005, 14:02)
Можно ли создать оператором переменную и присвоить ей ТИП "номер"

Да. Например так:
Код

var num = new Number(56); // число 56

Добавлено @ 17:03
Кстати, sergej.z, лучше не использовать ParseInt(), т.к. скажем если мы будемобрабатывать строку 2a в число - то она превратиться в число 2, т.е. потеряется и суть, и не будет сказано об ошибке smile
PM MAIL WWW ICQ Skype   Вверх
o.s.a.
Дата 6.6.2005, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Xo4y B MocKBy
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 16.2.2005
Где: Ташкент

Репутация: 5
Всего: 15



так ведь
Код

var num = 56; 

это же тоже самое

Это сообщение отредактировал(а) o.s.a. - 6.6.2005, 17:05


--------------------
Не могу стоять, пока другие работают, пойду полежу.
PM MAIL ICQ   Вверх
Aliance
Дата 6.6.2005, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



o.s.a.
угу, но тут было задан конкретный вопрос, т.к. иногда (лично у самого была такая ситуация) возникают такие ситуации, что необходимо явно указывать тип данных. Хотя для JavaScript это не характерно, т.к. он не является типизированным, как скажем Pascal.
PM MAIL WWW ICQ Skype   Вверх
sergejzr
Дата 6.6.2005, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Цитата(Aliance @ 6.6.2005, 15:59)
Кстати, sergej.z, лучше не использовать ParseInt(), т.к. скажем если мы будемобрабатывать строку 2a в число - то она превратиться в число 2, т.е. потеряется и суть, и не будет сказано об ошибке smile

Ну в данном коде это не играет большой роли. Проблема состояла не в выборе функции, а впонимании, зачем это делать.
parseInt() содержит в своём названии указание на способ работы, поэтому её и взял smile

o.s.a., прочитайте пожалуйста ещё раз условия задачи и мой предидущий пост.
не всегда у нас числа. Очень часто и строки тоже, которые нам надо преобразовать.





--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1052 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.