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

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

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

т.е.

для букв

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

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

for i -= I to XXX

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

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

С Уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
20.01.2008, 18:48
    #35074337
DOSS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл с буквами и римскими цифрами
С римскими есть пример в книге
Очков В.Ф. Рахаев М.А. Этюды на языках QBasic QuickBasic
...
Рейтинг: 0 / 0
21.01.2008, 01:10
    #35074672
bac
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
21.01.2008, 13:22
    #35075767
gacol
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл с буквами и римскими цифрами
Для римских цифр можно использовать функцию РИМСКОЕ (ROMAN)
тогда твой цикл I to XXX можно написать так

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


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