powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проблема с условным оператором If
9 сообщений из 9, страница 1 из 1
Проблема с условным оператором If
    #37407673
Серьга
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В тексте программы у меня (наряду с двумя другими) присутствует условие вывода на форму 38-t-k>7, но вывод осуществляется и при 38-t-k=7. В прилагаемом файле текст программы.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Dim i As Long, t As Integer, s As Single, b As Integer, k As Integer
Private Sub Form_Click()
Form1.Cls
Form1.Refresh
For i =  1  To  99999 
s = i *  10  ^ (k -  38 )
t =  0 
While i Mod  10  ^ (t +  1 ) =  0 
t = t +  1 
Wend
falg =  0 
falg =  38  - t - k
If falg >  7  Then b =  5 
r = s - i *  10  ^ (k -  38 )
ls = Len(CStr(s))
li = Len(CStr(i)) + b - t
If ls > li And r <>  0  And k >  25  Then
Form1.Print s, i
L= L +  1 
End If
Next i
Form1.Caption = Str$(k) + "   " + Str$(L)
k = k +  1 
End Sub
Private Sub Form_Load()
k =  25 
L =  0 
End Sub
Модератор: не надо пожалуйста извращений в виде вордового файла с текстом программы, когда существуют специально предназначенные для этого способы
...
Рейтинг: 0 / 0
Проблема с условным оператором If
    #37407710
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Серьга,

не пробовали (38-t-k)>7
...
Рейтинг: 0 / 0
Проблема с условным оператором If
    #37407892
Серьга
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не помогает.
...
Рейтинг: 0 / 0
Проблема с условным оператором If
    #37408581
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СерьгаВ тексте программы у меня (наряду с двумя другими) присутствует условие вывода на форму 38-t-k>7
Нет такого условия.
...
Рейтинг: 0 / 0
Проблема с условным оператором If
    #37408749
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Серьга,

вы знакомы с основами отладки (точки остановки, трассировка, watch)?
...
Рейтинг: 0 / 0
Проблема с условным оператором If
    #37408767
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Option Explicit
Dim i As Long, t As Integer, s As Single, b As Integer, k As Integer
Dim falg As Integer, r As Long, ls As Integer, li As Integer, L As Integer

Private Sub Form_Click()
Form1.Cls
Form1.Refresh

For i =  1  To  99999 
  s = i *  10  ^ (k -  38 )
  t =  0 
  While i Mod  10  ^ (t +  1 ) =  0 
    t = t +  1 
  Wend
  falg =  0 
  falg =  38  - t - k
  If falg =  7  Then Stop
  If falg >  7  Then b =  5 
  r = s - i *  10  ^ (k -  38 )
  ls = Len(CStr(s))
  li = Len(CStr(i)) + b - t
  If ls > li And r <>  0  And k >  25  Then
    Form1.Print s, i
    L = L +  1 
  End If
Next i
Form1.Caption = Str$(k) + "   " + Str$(L)
k = k +  1 

End Sub

Private Sub Form_Load()
k =  25 
L =  0 
End Sub

Запустив программу мы видим, что falg никогда не принимает значение 7. Разбирайтесь с алгоритмом
...
Рейтинг: 0 / 0
Проблема с условным оператором If
    #37408903
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProЗапустив программу ...Запустив программу и кликнув по форме 3 раза мы-таки увидим, что flag принимает значение 7

2 Серьга:
Условие вывода на фору отнюдь не 38-t-k>7
Это Вас кто-то обманул.(с)

ПОЛУОФФ
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
'hint:
'=============
for i ...
t =  0 
While i Mod  10  ^ (t +  1 ) =  0 
t = t +  1 
Wend


'заменить на:
t= 0 
for i ...
..
if i mod  10 ^(t+ 1 )= 0  Then t = t+  1 

'hint2:
'=============
for i=...
s = i *  10  ^ (k -  38 )
...
r = s - i *  10  ^ (k -  38 )
ls = Len(CStr(s))
li = Len(CStr(i)) + b - t
If ls > li And r <>  0  And k >  25  Then
Form1.Print s, i
L= L +  1 
End If

'заменить на:
for i= ...
...
If FALSE Then
  Form1.Print s, i
  L= L +  1 
End If

' и перестать морочить честны'м людям головы..
...
Рейтинг: 0 / 0
Проблема с условным оператором If
    #37408911
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, Браво! У меня лично не хватило сил вникнуть в эту мутотень этот замороченный алгоритм

...
Рейтинг: 0 / 0
Проблема с условным оператором If
    #37408921
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
я ещё и вышивать могу, и на машинке... (с) Кот Матроскин
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проблема с условным оператором If
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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