Форум
Написать нам
  • Страница 1 из 1
  • 1
Модератор форума: as-master  
Деление
SergДата: Понедельник, 16 Февраля 2009, 00:35 | Сообщение # 1
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Рябят помогите.Мне нужно чтобы при нажатии на кнопку "Ответ" одно число делилося на другое, b$ делилася на a$

Добавлено (16 Февраль 2009, 00:34)
---------------------------------------------
Забыл файл

Добавлено (16 Февраль 2009, 00:35)
---------------------------------------------
Что то не добавляется


 
DEMBELДата: Понедельник, 16 Февраля 2009, 00:46 | Сообщение # 2
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
оператор деления это /, например
x=b/a
для вывода значения числовой переменной x в текстовое поле используй команду DisplayValue




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
toizyДата: Понедельник, 16 Февраля 2009, 12:01 | Сообщение # 3
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Quote (adamfromvyazniki)
Что то не добавляется

Надписи в нижней части страницы читай ВНИМАТЕЛЬНО

Quote (adamfromvyazniki)
число делилося на другое, b$ делилася на a$

b$ на a$ не делится, делится b на a, учите матчасть. Строковые переменные (т.е. те, которые удостоены постфикса $) не могут подчиняться арифметическим операциям. Сперва их нужно перевести в числовое представление при помощи команды VAL (читай справку)

Т.е. в твоём случае ход скриптоложества будет приблизительно таким:

Code
a$ = '4'
b$ = '8'
a  = VAL(a$)
b  = VAL(b$)
c  = b / a
DisplayValue("Text1","c")

...гоу эхед..


Жизнь оказалась не такой уж и забавной, как поначалу...
 
SergДата: Понедельник, 16 Февраля 2009, 14:51 | Сообщение # 4
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
a$ ='EditBoxN'
b$ = 'EditBox1N'
a = VAL(a$)
b = VAL(b$)
c = b / a
DisplayValue("EditBox3","c")
почему у меня в ответе пишется 0?


 
toizyДата: Понедельник, 16 Февраля 2009, 15:22 | Сообщение # 5
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Потому что
Quote
a$ ='EditBoxN'
b$ = 'EditBox1N'

Думай головой. Твой код должен выглядеть так

Code

b  = VAL(b$)  
c  = EditBoxN / EditBox1N  
DisplayValue("Text1","c")


Жизнь оказалась не такой уж и забавной, как поначалу...
 
SergДата: Понедельник, 16 Февраля 2009, 15:53 | Сообщение # 6
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
А как округлить полученное число скажем до сотых?

 
toizyДата: Понедельник, 16 Февраля 2009, 15:55 | Сообщение # 7
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
При помощи INT. Только эта операция отбрасывает дробную часть. Чтобы сделать именно округление, следует немного извратиться. Подожди-ка...

Жизнь оказалась не такой уж и забавной, как поначалу...
 
SergДата: Понедельник, 16 Февраля 2009, 16:04 | Сообщение # 8
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Жду жду

 
Alex3AДата: Понедельник, 16 Февраля 2009, 16:10 | Сообщение # 9
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Quote (adamfromvyazniki)
А как округлить полученное число скажем до сотых?

Найти положение разделителя целой и дробной частей (. или , ) , в текстовом представлении числа, и обрезать все ненужные разряды.
123.33445533 точка 4 + нужное количество знаков после точки, к примеру 2, 123.33 | 445533
или помножить число на 10,100... в зависимости от нужного кол. разрядов сделать инт и поделить на то что множили.


Сообщение отредактировал Alex3A - Понедельник, 16 Февраля 2009, 16:12
 
SergДата: Понедельник, 16 Февраля 2009, 16:16 | Сообщение # 10
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
а как сделать этот как бы шаблон числа "***.***"?

 
Alex3AДата: Понедельник, 16 Февраля 2009, 16:25 | Сообщение # 11
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Quote (adamfromvyazniki)
а как сделать этот как бы шаблон числа "***.***"?

А сам придумай скрипт под это, это не сложно, няпряги мало мало серое вещество.
Потом будеш раздавать всем страждущим.
 
toizyДата: Понедельник, 16 Февраля 2009, 19:46 | Сообщение # 12
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Чёрт, я забыл... простите (( Да, Алекс, я делал пример именно с умножением. К примеру:
Code

i = 1.234
i = i * 100
i = INT(i)
i = i / 100

но это только усечёт число, а не сделает округление. чтобы получить именно округлённый результат, нужно ещё анализировать первый усечённый разряд. Это несложно, можешь сам додумать smile Не сможешь, напишешь...

Добавлено (16 Февраль 2009, 19:46)
---------------------------------------------
Короче, здесь два пути. Первый - чисто арифметический. Второй - символьный smile т.е. работать со строкой надо, а не числом


Жизнь оказалась не такой уж и забавной, как поначалу...
 
SergДата: Вторник, 17 Февраля 2009, 15:51 | Сообщение # 13
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
toizy,т.е. просто будет 3 цифры после запятой?Мне можно и это,необязательно округлять

 
toizyДата: Вторник, 17 Февраля 2009, 18:51 | Сообщение # 14
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
в примере - 2, умножай на 1000 и будет 3. ты попробуй, попробуй. потом напишешь о результатах

Жизнь оказалась не такой уж и забавной, как поначалу...
 
RushДата: Среда, 18 Февраля 2009, 21:17 | Сообщение # 15
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Немного дополненный скрипт toizy, округляющий число:
Code

** округляемое число
n=1456.84287557
** к-во знаков после запятой
r=4
** формула округления
If (n<0) Then
   n=INT(n*(10^r)-0.5)/10^r
Else
   n=INT(n*(10^r)+0.5)/10^r
End
 
toizyДата: Среда, 18 Февраля 2009, 21:30 | Сообщение # 16
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Rush - монстр вычислений в ММВ

Добавлено (18 Февраль 2009, 21:30)
---------------------------------------------
Да уж, немного дополненный biggrin


Жизнь оказалась не такой уж и забавной, как поначалу...
 
RushДата: Среда, 18 Февраля 2009, 22:53 | Сообщение # 17
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Quote (toizy)
Да уж, немного дополненный

Совсем чуть-чуть. Просто записан по другому. smile
В твоем варианте это было бы так:

i = 1.234
i = i * 100+ 0.5
i = INT(i)
i = i / 100

Ну или минус 0.5, конечно, в зависимости от положительности/отрицательности числа...

Сообщение отредактировал Rush - Среда, 18 Февраля 2009, 22:56
 
  • Страница 1 из 1
  • 1
Поиск: