powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Цикл с буквами и римскими цифрами
7 сообщений из 7, страница 1 из 1
Цикл с буквами и римскими цифрами
    #35073638
Namik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго Вам времени суток
Уважаемые господа

при наличии времени прошу Вас помочь
подскажите пожалуйста

как можно задать цикл for - для букв и римских цифр

т.е.

для букв

for i -=0 to алфавит (русский или английский)

для римских цифр

for i -= I to XXX

С Уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
Цикл с буквами и римскими цифрами
    #35073939
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для римских цифрНасмешил. Для клинописи цикл не хочешь?
Компьютер не знает римскую систему счисления. Пиши процедуру перевода обычного десятичного числа в римское.

Для алфавитов:
Код: plaintext
1.
2.
For x= 0  to  255 
    Debug.Print Chr(x)
next
...
Рейтинг: 0 / 0
Цикл с буквами и римскими цифрами
    #35073941
Namik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
понял спасибо

С Уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
Цикл с буквами и римскими цифрами
    #35074337
Фотография DOSS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С римскими есть пример в книге
Очков В.Ф. Рахаев М.А. Этюды на языках QBasic QuickBasic
...
Рейтинг: 0 / 0
Цикл с буквами и римскими цифрами
    #35074672
bac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот подумал немного и родил. Киньте на форму 2 TextBox и два TextLabel
Не сделал только проверку на правильность написания римских цифр. Что-то с налета не идет.
Наверно выше указанную книгу надо читать :)
Код: 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.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
Private Sub Text1_Change()
Dim dec As Integer
Dim scratch As String
scratch = ""
On Error GoTo Endp
dec = Text1.Text
If (dec =  0  Or dec >  3999 ) Then GoTo Endp
Dim Romans( 13 ) As String
Romans( 1 ) = "I"
Romans( 2 ) = "IV"
Romans( 3 ) = "V"
Romans( 4 ) = "IX"
Romans( 5 ) = "X"
Romans( 6 ) = "XL"
Romans( 7 ) = "L"
Romans( 8 ) = "XC"
Romans( 9 ) = "C"
Romans( 10 ) = "CD"
Romans( 11 ) = "D"
Romans( 12 ) = "CM"
Romans( 13 ) = "M"
Dim Arabics( 13 ) As Integer
Arabics( 1 ) =  1 
Arabics( 2 ) =  4 
Arabics( 3 ) =  5 
Arabics( 4 ) =  9 
Arabics( 5 ) =  10 
Arabics( 6 ) =  40 
Arabics( 7 ) =  50 
Arabics( 8 ) =  90 
Arabics( 9 ) =  100 
Arabics( 10 ) =  400 
Arabics( 11 ) =  500 
Arabics( 12 ) =  900 
Arabics( 13 ) =  1000 
Dim i As Integer

For i =  13  To  1  Step - 1 
   While (dec >= Arabics(i))
      dec = dec - Arabics(i)
      scratch = scratch + Romans(i)
   Wend
Next
Endp:
Label1.Caption = scratch
End Sub

Private Sub Text2_Change()
Dim Rom As String
Rom = Text2.Text

Dim Romans As String
Romans = "IVXLCDM"
Dim Arabics( 7 ) As Integer
Arabics( 1 ) =  1 
Arabics( 2 ) =  5 
Arabics( 3 ) =  10 
Arabics( 4 ) =  50 
Arabics( 5 ) =  100 
Arabics( 6 ) =  500 
Arabics( 7 ) =  1000 

Dim Cnt As Integer
Dim i As Integer
Dim j As Integer
Dim jPre As Integer
Dim dec As Integer
Dim lPrec As Boolean
dec =  0 
jPre = - 1 
Cnt =  0 
lPrec = False

For i = Len(Rom) To  1  Step - 1 
   s = Mid$(Rom, i,  1 )
   j = InStr(Romans, s)
   If (j =  0 ) Then
      dec =  0 
      GoTo Endp2
   End If

   If (jPre = j) Then
       Cnt = Cnt +  1 
   Else
       Cnt =  1 
       lPrec = False
   End If
   
   If lPrec Then
      dec =  0 
      GoTo Endp2
   End If
   
   If Cnt >  3  Then
      dec =  0 
      GoTo Endp2
   End If

   If (jPre > j) Then
        dec = dec - Arabics(j)
        lPrec = True
   Else
       dec = dec + Arabics(j)
   End If
   jPre = j
Next
Endp2:
Label2.Caption = dec

End Sub

...
Рейтинг: 0 / 0
Цикл с буквами и римскими цифрами
    #35075767
gacol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для римских цифр можно использовать функцию РИМСКОЕ (ROMAN)
тогда твой цикл I to XXX можно написать так

n = 0
Do
n = n + 1
rim = Application.WorksheetFunction.Roman(n)
. . . . . . .
Loop Until rim = "XXX"
...
Рейтинг: 0 / 0
Цикл с буквами и римскими цифрами
    #35075956
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже в самом экселе в цикле будет эффективней что-то типа bac 'овского. А уж тащить эксель ради этого в VB...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Цикл с буквами и римскими цифрами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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