powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вот такая задача! :-(( (разность двух чисел)
11 сообщений из 11, страница 1 из 1
Вот такая задача! :-(( (разность двух чисел)
    #32313268
Alex_from_Spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток всем!

В разработке алгоритма обработки (модуль VBA) столкнулся с вот какой задачей - есть два числовых поля формата Long в одной таблице. Необходимо узнать следующее - сколько в разнице этих двух полей содержится целых десятков, единиц до первого десятка и единиц от последнего десятка. Из всего этого удалось решить только проблему целых десятков, а вот все остальное... :-( В общем, если кто сталкивался с чем-то подобным или имеет какие-то идеи, пожалуйста, не оставайтесь в стороне.

Заранее благодарен всем за ответы.
...
Рейтинг: 0 / 0
Вот такая задача! :-(( (разность двух чисел)
    #32313301
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Все достигается операциями \ и mod.

Напишу подробнее, если пойму, что такое единиц до первого десятка и единиц от последнего десятка.
...
Рейтинг: 0 / 0
Вот такая задача! :-(( (разность двух чисел)
    #32313430
Alex_from_Spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, Владимир Саныч! Спасибо за ответ и сразу вопрос - что такое операции "\ и mod"? И отвечаю на Ваш вопрос: к примеру, у нас есть два числа - 322 и 346. Число целых десятков между этими числами 2, единиц до первого десятка - 2, единиц от последнего десятка - 6. И проблема у меня именно в том, что эти единицы никак из разницы этих чисел не вытащить! Все оставшиеся единицы сваливаются в одну кучу и в результате получается совсем не то, что нужно. :-(
...
Рейтинг: 0 / 0
Вот такая задача! :-(( (разность двух чисел)
    #32313439
vist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы попытался перевести в строку и выбирать функциями left Mid ходя можно и моd употребить
...
Рейтинг: 0 / 0
Вот такая задача! :-(( (разность двух чисел)
    #32313481
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не очень понял...
>единиц до первого десятка и единиц от последнего десятка

может на примере покажешь, что должно получиться...

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
Вот такая задача! :-(( (разность двух чисел)
    #32313496
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что это за задача? шифрование что-ли?

вычитай , определи сколько у тебя десятков( подели на 10) и посмотри остаток
если нужно выяснить кол-во единиц -отнимай от десяти кол-во единиц из разницы
...
Рейтинг: 0 / 0
Вот такая задача! :-(( (разность двух чисел)
    #32313498
vvs2003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
согласен с vist

Int(Left(Right(Str(346),2),1)) = 4
-
Int(Left(Right(Str(322),2),1)) = 2
=2 - целых десятков

Int(Right(Str(346),1)) = 6 - единиц от последнего десятка
Int(Right(Str(322),1)) = 2 - единиц до первого десятка

Если конечно задач правильно понял :)
...
Рейтинг: 0 / 0
Вот такая задача! :-(( (разность двух чисел)
    #32313519
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> единиц до первого десятка - 2, единиц от последнего десятка - 6

То есть это число единиц в первом числе и число единиц во втором числе? Что такое:

до первого десятка?
от первого десятка?
до последнего десятка?
от последнего десятка?
...
Рейтинг: 0 / 0
Вот такая задача! :-(( (разность двух чисел)
    #32313567
Alex_from_Spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за ответы. Но, пока с вами общался, придумал другое решение, не требующее перевода числа в строку и обратно (ведь обрабатываю я в дальнейшем именно ЧИСЛО). Но тут возникла новая бага - когда я пытаюсь запустить модуль, Access ругается, что употреблен End If без блока If. Хотя, по тексту вроде все правильно. Единственное, в чем у меня сомнение, так это в количестве вложений друг в друга конструкций If... Then... Else, у меня одна вложена в другую. Может, из-за этого и плющилово? :-( В общем, привожу листинг модуля:

Private Sub xxx
Dim a As Long
Dim b As Long
Dim c As Long
Dim d As Long
Dim e As Long
Dim f As Long
Dim i As Long

Set rs = CurrentDb.OpenRecordset("Table1") 'открытие таблицы

Do Until rs.EOF() 'цикл до конца таблицы последовательным перебором записей
a = rs![Chislo1] 'присваивает значения переменным
b = rs![Chislo2]
c = b - a 'находит разницу
If c <> 0 Then 'если разница не равна нулю, то циклически выполняет запросы с параметрами на вставку
If c <= 9 Then 'если разница между значениями не более 9 (вложенный If)
CurrentDb.Execute ("[Query1]=") & a
DoEvents
For i = 1 To c 'цикл на присвоение последовательных значений
CurrentDb.Execute ("[Query2]=") & a
DoEvents
Next i
Else:
d = Round(c / 10) 'находим число десятков
e = a - Round(a / 10) 'находим число единиц до первого десятка
f = b - Round(b / 10) 'находим число единиц от последнего десятка
For i1 = 1 To e 'выполняем запросы на вставку значений
CurrentDb.Execute ("[Query3]=") & a 'вставка значений с единицами до первого десятка
DoEvents
Next i1
For i2 = 1 To d
CurrentDb.Execute ("[Query4]=") & Round(a / 10) 'вставка значений с десятками без единиц
DoEvents
Next i2
For i3 = 1 To f
CurrentDb.Execute ("[Query5]=") & a 'вставка значений с единицами после последнего десятка
DoEvents
End If ' - вот на этот оператор ругается
Else: 'если равна, то запрос на вставку без цикла
CurrentDb.Execute ("[Query6]=") & a
DoEvents
End If
rs.MoveNext
Loop 'конец цикла

End Sub

Заранее всем спасибо.
...
Рейтинг: 0 / 0
Вот такая задача! :-(( (разность двух чисел)
    #32313573
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> For i3 = 1 To f
> CurrentDb.Execute ("[Query5]=") & a 'вставка значений с единицами после последнего десятка
> DoEvents
> End If ' - вот на этот оператор ругается

А что это за конструкция - For ... End If?
...
Рейтинг: 0 / 0
Вот такая задача! :-(( (разность двух чисел)
    #32313844
Alex_from_Spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все, понял! Забыл цикл закрыть, вот он и ругается, что концов не может найти. :-( Теперь работает, спасибо! :-)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вот такая задача! :-(( (разность двух чисел)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]