Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2012, 19:54   #1
вася радугов
Форумчанин
 
Регистрация: 09.04.2011
Сообщений: 134
По умолчанию представить введенное число прописью

Помогите найти ошибку. Надо представить введенное с клавиатуры число прописьЮ. вот мой код:
Код:

Public Class Form10

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim i As Integer
        Dim a(200) As String
        Dim k As String
        k = TextBox1.Text
        Label1.Text = ""
        a(0) = "ноль"
        a(1) = "odin"
        For i = 0 To 200
            If k = a(i) Then
                Label1.Text = Label1.Text + a(i)
            End If
        Next
       
    End Sub
End Class
Программа на Visual Basic. Таких чисел должно быть 1000. я не могу вывести в label элемент массива, т.е. вместо i-того элемента, например, второго выводится в label весь массив из 1000 чисел. как вывести один элемент?
вася радугов вне форума Ответить с цитированием
Старый 10.10.2012, 20:08   #2
gaw4
Форумчанин
 
Регистрация: 31.05.2010
Сообщений: 407
По умолчанию

Label1.Text = Label1.Text + a(i)----->Label1.Text = a(i)
icq 584 308 611
gaw4 вне форума Ответить с цитированием
Старый 10.10.2012, 20:09   #3
gaw4
Форумчанин
 
Регистрация: 31.05.2010
Сообщений: 407
По умолчанию

но это не решает задачу
icq 584 308 611
gaw4 вне форума Ответить с цитированием
Старый 10.10.2012, 20:15   #4
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

вариант решения задания вашего
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 10.10.2012, 20:22   #5
вася радугов
Форумчанин
 
Регистрация: 09.04.2011
Сообщений: 134
По умолчанию

а как можно исправить мою программку?
вася радугов вне форума Ответить с цитированием
Старый 10.10.2012, 20:33   #6
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Цитата:
Сообщение от вася радугов Посмотреть сообщение
а как можно исправить мою программку?
к вашему сожалению VB прошел мимо меня...
а логика написанного вами мной как-то не воспринимается...
но интуитивно можно аналогию сделать на VB опираясь на код в Pascal, который вам нашел...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 10.10.2012, 20:49   #7
gaw4
Форумчанин
 
Регистрация: 31.05.2010
Сообщений: 407
По умолчанию

а как можно исправить мою программку? ---- написать вновь
в Вашем коде
чисел 1000 -- массив a(200)
k = TextBox1.Text что тут считывается
icq 584 308 611
gaw4 вне форума Ответить с цитированием
Старый 10.10.2012, 22:52   #8
вася радугов
Форумчанин
 
Регистрация: 09.04.2011
Сообщений: 134
По умолчанию

попробовал переделать с паскаля - тяжело, т.к. vb Я плохо знаю. может кто - нибудь знает как решить эту задачу?
вася радугов вне форума Ответить с цитированием
Старый 10.10.2012, 23:26   #9
gaw4
Форумчанин
 
Регистрация: 31.05.2010
Сообщений: 407
По умолчанию

Код:
Dim i As Integer
Dim cislo As Integer, j As Integer, ed As Integer, des As Integer, sot As Integer
Dim s1, s10, s100
Dim s
sotni = Array("", "сто", "двести", "триста", "четыреста", "пятьсот", "шестьсот", "семьсот", "восемьсот", "девятьсот")
desyatki = Array("", "десять", "двадцать", "тридцать", "сорок", "пятьдесят", "шестьдесят", "семьдесят", "восемьдесят", "девяносто")
edenici = Array("", "один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять")
special = Array("десять", "одиннадцать", "двенадцать", "тринадцать", "четырнадцать", "пятнадцать", "шестнадцать", "семнадцать", "восемнадцать", "девятнадцать")

s = Text1.Text ' TextBox1.Text
cislo = Val(s)
If ((cislo < 0) Or (cislo > 1000)) Then
MsgBox ("Введите число в диапазоне 0..1000")
Exit Sub
End If
j = Len(s)
Select Case j
Case 1
    ed = cislo
    Label1 = edenici(ed) 'Label1.Text = edenici(ed)

Case 2
    If Mid(s, 1, 1) = "1" Then
      s1 = Mid(s, 2, 1)
      ed = Val(s1)
      Label1 = special(ed)
    Else
    
        s10 = Mid(s, 1, 1)
        s1 = Mid(s, 2, 1)
        des = Val(s10)
        ed = Val(s1)
        Label1 = desyatki(des) & " " & edenici(ed)
    End If
Case 3
    s100 = Mid(s, 1, 1)
    s10 = Mid(s, 2, 1)
    s1 = Mid(s, 3, 1)
    des = Val(s10)
    ed = Val(s1)
    sot = Val(s100)
            If Mid(s, 2, 1) = "1" Then
               Label1 = sotni(sot) & " " & special(ed)
            Else
               Label1 = sotni(sot) & " " & desyatki(des) & " " & edenici(ed)
            End If
Case 4
    
End Select
If cislo = 1000 Then Label1 = "тысяча"
If cislo = 0 Then Label1 = "ноль"
icq 584 308 611
gaw4 вне форума Ответить с цитированием
Старый 10.10.2012, 23:26   #10
gaw4
Форумчанин
 
Регистрация: 31.05.2010
Сообщений: 407
По умолчанию

это в вб 6, там подправь под себя
icq 584 308 611
gaw4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Число прописью kzld Microsoft Office Excel 11 29.05.2013 17:01
Число прописью not4u Microsoft Office Excel 26 20.08.2012 20:40
вывести таблицу умножения на введенное число ( в програме mingw studio ) Дима1989 Помощь студентам 10 08.12.2011 21:17
Паскаль.программа, которая определяет каким является введенное число... Integer Помощь студентам 4 18.11.2007 22:17
Исправить введенное как текст число SAndrus Microsoft Office Excel 3 11.11.2007 14:25