Помогите написать алгоритм

  • Автор темы DRONSKIY
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

DRONSKIY

Гость
#1
Сабж состоит в следующем, имеется модуль написаный в Visual Basic под Access,в нем содержится функция первоодящая числовое выражение в строку.
У мя извечные проблемы с написанием алгоритмов,посему HELP!Помогите пожалуйста написать алгоритм-блок схему
Текст модуля(все откоментировал):
Attribute VB_Name = "NTF"
Option Compare Database

'Функция преобразует заданное чсило в строковое представление:
Public Function NumToField(Num As String) As String
Dim t, Razr, Fl, L, Zap As Integer
Dim M(11, 7), R(11), Result, MyTemp, rt As String
Fl = 0
Result = ""
'Задание элементов массива, хранящего данные о названиях чисел:
M(0, 1) = " рублей"
M(1, 1) = " один рубль"
M(2, 1) = " два рубля"
M(3, 1) = " три рубля"
M(4, 1) = " четыре рубля"
M(5, 1) = " пять рублей"
M(6, 1) = " шесть рублей"
M(7, 1) = " семь рублей"
M(8, 1) = " восемь рублей"
M(9, 1) = " девять рублей"
M(0, 2) = " "
M(1, 2) = " "
M(2, 2) = " двадцать"
M(3, 2) = " тридцать"
M(4, 2) = " сорок"
M(5, 2) = " пятьдесят"
M(6, 2) = " шестьдесят"
M(7, 2) = " семьдесят"
M(8, 2) = " восемьдесят"
M(9, 2) = " девяносто"
M(0, 3) = " "
M(1, 3) = " сто"
M(2, 3) = " двести"
M(3, 3) = " триста"
M(4, 3) = " четыреста"
M(5, 3) = " пятьсот"
M(6, 3) = " шестьсот"
M(7, 3) = " семьсот"
M(8, 3) = " восемьсот"
M(9, 3) = " девятьсот"
M(0, 4) = " тысяч"
M(1, 4) = " одна тысяча"
M(2, 4) = " две тысячи"
M(3, 4) = " три тысячи"
M(4, 4) = " четыре тысячи"
M(5, 4) = " пять тысяч"
M(6, 4) = " шесть тысяч"
M(7, 4) = " семь тысяч"
M(8, 4) = " восемь тысяч"
M(9, 4) = " девять тысяч"
M(0, 5) = " "
M(1, 5) = " "
M(2, 5) = " двадцать"
M(3, 5) = " тридцать"
M(4, 5) = " сорок"
M(5, 5) = " пятьдесят"
M(6, 5) = " шестьдесят"
M(7, 5) = " семьдесят"
M(8, 5) = " восемьдесят"
M(9, 5) = " девяносто"
M(0, 6) = " "
M(1, 6) = " сто"
M(2, 6) = " двести"
M(3, 6) = " триста"
M(4, 6) = " четыреста"
M(5, 6) = " пятьсот"
M(6, 6) = " шестьсот"
M(7, 6) = " семьсот"
M(8, 6) = " восемьсот"
M(9, 6) = " девятьсот"
R(1) = " десять"
R(2) = " одинадцать"
R(3) = " двенадцать"
R(4) = " тринадцать"
R(5) = " четырнадцать"
R(6) = " пятнадцать"
R(7) = " шеснадцать"
R(8) = " семнадцать"
R(9) = " восемнадцать"
R(10) = " девятнадцать"
Fl = 0
Result = ""
MyTemp = Num
Zap = 0

'Выделение целой части числа (рублей):
If InStr(1, MyTemp, ",") <> 0 Then
L = InStr(1, MyTemp, ",") - 1
Zap = 1
Else: L = Len(MyTemp)
End If

'Анализ целой части поразрядно. Сответственно каждому разряду определяется строка:
For Razr = 1 To L
If Fl <> 1 Then
t = Val(Mid(MyTemp, Razr, 2))
If ((t > 9) And (t < 20)) And ((L - Razr + 1 = 5) Or (L - Razr + 1 = 2)) Then
If L - Razr + 1 = 2 Then Result = Result + R(t - 9) + " рублей"
If L - Razr + 1 = 5 Then Result = Result + R(t - 9) + " тысяч"
Fl = 1
Else
t = Val(Mid(MyTemp, Razr, 1))
Result = Result + M(t, L - Razr + 1)
End If
Else: Fl = 0
End If
Next Razr

'Добавление копеек к строке (копейки остаются цифрами):
If Zap = 1 Then
rt = Mid(MyTemp, InStr(1, MyTemp, ",") + 1, 2)
t = Val(rt)
If t < 10 Then t = t * 10
rt = Str(t)
Else: rt = " 00"
End If
Result = Result + rt + " коп."
Mid(Result, 2) = Format(Mid(Result, 2, 1), ">")

NumToField = Result 'Возвращение результата работы функции
End Function
 
B

Barmutik

Гость
#2
Это ж Вам этот пример дали в другом топике ? Там же посоветовали посмотреть Гугл на пример уже готового кода...

Да и в переводе кода с языка на язык никаких алгоритмов не надо .. просто перевести и всё ...
 
Статус
Закрыто для дальнейших ответов.