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

Тема в разделе "Остальные БД", создана пользователем DRONSKIY, 14 июн 2006.

Статус темы:
Закрыта.
  1. DRONSKIY

    DRONSKIY Гость

    Сабж состоит в следующем, имеется модуль написаный в 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
     
  2. Barmutik

    Barmutik Гость

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

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

Поделиться этой страницей