Могу дать готовую программу на Visual Basic. Пиши в почту.
И. А. Голованов - замучаешься вводить массив! Есть алгоритмы намного красивее.
Собственно, вот, до 1000
Private Sub btnCancel_Click() ' Кнопка Выход
End
End Sub
Private Sub btnOK_Click() ' Кнопка ОК, которая и переводит число в текст.
lngNumber = txtNumber.Text ' txtNumber - текстовое поле с числом
strNumber = SelCase(lngNumber)
txtWord.Text = strNumber ' txtWord - текстовое поле со словом
End Sub
Private Function SelCase(x As Long) ' Функция вычисления
Dim Ed(0 To 10) As String
Dim intEd As Long, intDes As Long, intSot As Long, intTis As Long
Const Ede = "е", Mz = "ь"
Const Des1 = "надцать", Des2 = "дцать", Des4 = "сорок", Des9 = "девяносто"
Const Sot1 = "сто", Sot2 = "двести", Sot3 = "ста", Sot4 = "сот"
Ed(0) = "": Ed(1) = "один": Ed(2) = "два": Ed(3) = "три": Ed(4) = "четыр": Ed(5) = "пят"
Ed(6) = "шест": Ed(7) = "сем": Ed(8) = "восем": Ed(9) = "девят": Ed(10) = "десят"
If (x >= 1) And (x <= 3) Then
SelCase = Ed(x)
ElseIf x = 4 Then
SelCase = Ed(x) & Ede
ElseIf (x >= 5) And (x <= 10) Then
SelCase = Ed(x) & Mz
ElseIf (x >= 11) And (x <= 19) Then
SelCase = Ed(x Mod 10) & Des1
ElseIf (x >= 20) And (x <= 39) Then
SelCase = Ed(Int(x / 10)) & Des2 & " " & SelCase(x Mod 10)
ElseIf (x >= 40) And (x <= 49) Then
SelCase = Des4 & " " & SelCase(x Mod 10)
ElseIf (x >= 50) And (x <= 89) Then
SelCase = Ed(Int(x / 10)) & Mz & Ed(10) & " " & SelCase(x Mod 10)
ElseIf (x >= 90) And (x <= 99) Then
SelCase = Des9 & " " & SelCase(x Mod 10)
ElseIf (x >= 100) And (x <= 199) Then
SelCase = Sot1 & " " & SelCase(x Mod 100) & " "
ElseIf (x >= 200) And (x <= 299) Then
SelCase = Sot2 & " " & SelCase(x Mod 100) & " "
ElseIf (x >= 300) And (x <= 399) Then
SelCase = Ed(Int(x / 100)) & Sot3 & " " & SelCase(x Mod 100) & " "
ElseIf (x >= 400) And (x <= 499) Then
SelCase = Ed(Int(x / 100)) & Ede & Sot3 & " " & SelCase(x Mod 100) & " "
ElseIf (x >= 500) And (x <= 999) Then
SelCase = Ed(Int(x / 100)) & Mz & Sot4 & " " & SelCase(x Mod 100) & " "
End If
End Function
Другие языки программирования и технологии
помогите написать программу на паскаль Заданное натуральное число не превосходящее 1000 записать прописью, то есть выве
простейший с точки зрения алгоритма вариант:
Задать массив из 1000 строк
читать на входе число и считать его индексом в массиве
выводить нужную строку по индексу
Иначе делить на разряды начиная со старшего и идя вглубь ветвить по исключениям или делящемуся дальше на разряды
типа
312/100 (нацело) = 3 (на этом уровне триста) остаток 12
12 исключение
а
322/100 (нацело) = 3 (на этом уровне триста) остаток 22
22/10 =2 (двадцать) остаток 2
Задать массив из 1000 строк
читать на входе число и считать его индексом в массиве
выводить нужную строку по индексу
Иначе делить на разряды начиная со старшего и идя вглубь ветвить по исключениям или делящемуся дальше на разряды
типа
312/100 (нацело) = 3 (на этом уровне триста) остаток 12
12 исключение
а
322/100 (нацело) = 3 (на этом уровне триста) остаток 22
22/10 =2 (двадцать) остаток 2
Похожие вопросы
- помогите написать програму в паскале. Задано натуральное число х. вывести все двознначные числа ,сума которых меньше х.
- НАПИСАТЬ ПРОГРАММУ В ПАСКАЛЬ! Нахождение суммы чисел в матрице, ввод чисел осуществить из файла matrix.txt вывод на экран.
- Помогите написать программу на паскале
- Помогите написать программу на Паскале!
- Ребят, помогите написать программу для Паскаля!
- помогите написать программу на паскале
- помогите написать программу на паскале!!! если можно напишите в комментах что где делаете!!!
- Помогите написать программу! Турбо Паскаль 7.0
- Помогите написать программу в Паскале, пожалуйста. см ниже
- Помогите написать программу на Паскале
особенно если не до 1000, а до 1000000 ))
Просто в названиях исключения есть и они иногда трудно алгоритмизуемы
например
12 не "дванадцать", а "двенадцать" и все такие ветки сложнее алгоритмически
Я просто привёл самый дубовый вариант))