|
0 / 0 / 0
Регистрация: 05.04.2011
Сообщений: 8
|
|
Нужно описать все функции27.05.2011, 17:15. Показов 1219. Ответов 2
Метки нет (Все метки)
помогите пожалуйста.
Вспомогательные модули
Option Compare Database 'Сравнение строк средствами баз данных Global ИндексСтудента1 As Integer Function ДайИндексСтудента() As Integer ДайИндексСтудента = ИндексСтудента1 End Function Function Дети(Дети_1_5, Дети_3, Дети_16, Дети_Студент) As Integer If ВНоль(Дети_1_5 Or Дети_3 Or Дети_16) = 0 Then Дети = 1 Else Дети = Дети_1_5 + Дети_3 + Дети_16 End If End Function Function ИмяГруппы(Наименование, Курс, Номер) As String If IsNull(Наименование) Or IsNull(Курс) Or IsNull(Номер) Then ИмяГруппы = "" Else ИмяГруппы = Наименование & "-" & Курс & Номер End If End Function Function КоличествоДней(НомерМесяца As Integer) As Integer Dim МояБД As Database, МойНабор As Recordset Set МояБД = DBEngine.Workspaces(0).Databases(0) Set МойНабор = МояБД.OpenRecordset("Минималка", DB_OPEN_DYNASET) КоличествоДней = 0 Do Until МойНабор.EOF If МойНабор![Индекс месяца] = НомерМесяца Then КоличествоДней = МойНабор![Число рабочих дней] End If МойНабор.MoveNext Loop End Function Function НормНомерМесяца(НомерМесяца As Integer) As Integer ' If НомерМесяца = 0 Then ' НомерМесяца = 12 ' Else If НомерМесяца < 1 Then НомерМесяца = НомерМесяца + 12 Else If НомерМесяца > 12 Then НомерМесяца = НомерМесяца - 12 End If End If ' End If НормНомерМесяца = НомерМесяца End Function Function Округление(Сумма As Variant) As Double If (IsNull(Сумма)) Then Округление = 0# Else Округление = CInt(Сумма) End If End Function Function Пос(Итого, Жетоны) As Double If ВНоль(Итого) = 0 Then Пос = 0 Else If ВНоль(Итого) < Жетоны Then Пос = ВВНоль(((Итого + 2.5) \ 5) * 5) Else Пос = ВВНоль(((Итого + 2.5) \ 5) * 5 - Жетоны) End If End If End Function Function Пособие(Выплаты, СовокупныйДоход, Семья, Жетоны) As Double If ВНоль(Семья) = 0 Then Пособие = 0 Else Пособие = ВВНоль((((Выплаты - СовокупныйДоход \ Семья) + 2.5) \ 5) * 5 - Жетоны) End If End Function Function Пособие_Доплаты_1_5(Выплаты, ДоходМатери, ДоходОтца, ДоходПенсии, Семья1_5, Семья_Студенты, Доп_Стип) As Double If ВНоль(Семья_Студенты) = 0 Then Пособие_Доплаты_1_5 = 0 Else Пособие_Доплаты_1_5 = ВВНоль(((Int((Выплаты - (((ДоходМатери + ДоходОтца + ДоходПенсии + Доп_Стип) / (Семья_Студенты)))))) * Семья1_5)) ' Пособие_Доплаты = ВВНоль((((Выплаты - СовокупныйДоход \ Семья) + 2.5) \ 5) * 5 - Жетоны) End If End Function Function Пособие_Студенты(Выплаты, ДоходМатери, ДоходОтца, ДоходПенсии, Дети_Студенты, Доп_Стип) As Double If ВНоль(Дети_Студенты) = 0 Then Пособие_Студенты = 0 Else Пособие_Студенты = ВВНоль(((Int((Выплаты - (ДоходМатери + ДоходОтца + ДоходПенсии + Доп_Стип) / Дети_Студенты))))) End If End Function Function Пособие_Доплаты_16(Выплаты, ДоходМатери, ДоходОтца, ДоходПенсии, Семья16, Семья_Студенты, Доп_Стип) As Double If ВНоль(Семья_Студенты) = 0 Then Пособие_Доплаты_16 = 0 Else If (ВВНоль((((Выплаты - (ДоходМатери + ДоходОтца + ДоходПенсии) / (Семья_Студенты)))) * Семья16)) < 0 Then Пособие_Доплаты_16 = 0 Else Пособие_Доплаты_16 = ВВНоль((((Выплаты - (ДоходМатери + ДоходОтца + ДоходПенсии + Доп_Стип) / (Семья_Студенты)))) * Семья16) ' Пособие_Доплаты = ВВНоль((((Выплаты - СовокупныйДоход \ Семья) + 2.5) \ 5) * 5 - Жетоны) End If End If End Function Function Пособие_Доплаты_3(Выплаты, ДоходМатери, ДоходОтца, ДоходПенсии, Семья3, Семья_Студенты, Доп_Стип) As Double If ВНоль(Семья_Студенты) = 0 Then Пособие_Доплаты_3 = 0 Else Пособие_Доплаты_3 = ВВНоль((Int((Выплаты - (ДоходМатери + ДоходОтца + ДоходПенсии + Доп_Стип) / (Семья_Студенты)))) * Семья3) ' Пособие_Доплаты = ВВНоль((((Выплаты - СовокупныйДоход \ Семья) + 2.5) \ 5) * 5 - Жетоны) End If End Function Function Пособие_Доход(ДоходМатери, ДоходОтца, ДоходПенсии, Семья_Студенты, Доп_Стип) As Double If ВНоль(Семья_Студенты) = 0 Then Пособие_Доход = 0 Else Пособие_Доход = ВВНоль(Int((ДоходМатери + ДоходОтца + ДоходПенсии + Доп_Стип) / (Семья_Студенты))) End If End Function Function ЦенаПродчеков(Коэффициент, Продчеки, Стипендия) As Double Dim Цена As Double If IsNull(Коэффициент) Or Коэффициент <= 1 Then Цена = Продчеки Else Цена = Продчеки * 2 - Стипендия End If If Цена < 0 Then Цена = 0 Else Цена = Цена End If ЦенаПродчеков = (Цена \ 5000) * 5000 End Function Индекс таблиц Option Compare Database 'Сравнение строк средствами баз данных Function Индекс(Таблица As String) As Integer Dim БазаДанных As Database, Набор As Recordset, Номер As Integer Set БазаДанных = DBEngine.Workspaces(0).Databases(0) Set Набор = БазаДанных.OpenRecordset(Таблица, DB_OPEN_DYNASET) If Набор.RecordCount = 0 Then Номер = 1 Else Набор.MoveLast Номер = Набор![Индекс] + 1 End If Набор.Close Индекс = Номер End Function Function ИндексСтудента() As Integer ИндексСтудента = Индекс("Студент") End Function Окончания Option Compare Database 'Сравнение строк средствами баз данных Function Окончание(Сумма As Long) As String Dim Единицы As Double, Десятки As Double Единицы = Сумма Mod 10 Десятки = (Сумма Mod 100) \ 10 If (Десятки <> 1) Then Select Case Единицы Case 1: Окончание = "рубль" Case 2 To 3: Окончание = "рубля" Case Else: Окончание = "рублей" End Select Else Окончание = "рублей" End If End Function Работа с формами и записями Option Compare Database 'Сравнение строк средствами баз данных Sub АвтоСохранение(Таблица0 As String, Таблица1 As String) On Error GoTo Err_АвтоСохранение_Click DoCmd.SetWarnings False DoCmd.CopyObject "SAVE\oil.MDB", Таблица1, A_TABLE, Таблица0 DoCmd.SetWarnings True Exit_АвтоСохранение_Click: Exit Sub Err_АвтоСохранение_Click: MsgBox Error$ Resume Exit_АвтоСохранение_Click End Sub Function ВВНоль(Данные As Variant) As Double ВВНоль = IIf(IsNull(Данные), 0, Данные) End Function Function ВНоль(Данные As Variant) As Variant ВНоль = IIf(IsNull(Данные), 0, Данные) End Function Sub ВыходИзПрограммы(Сообщение As String) CodRet = MsgBox(Сообщение, 1 + 48, "Выход из программы") If CodRet = 1 Then ЗакрытьФорму Application.Quit A_SAVE End If End Sub Sub ЗакрытьФорму() On Error GoTo Err_Выход_Click DoCmd.Close Exit_Выход_Click: Exit Sub Err_Выход_Click: MsgBox Error$ Resume Exit_Выход_Click End Sub Sub ЗапретитьИзменения(Элемент As Control) If IsNull(Элемент) = False Then Элемент.Enabled = False Элемент.Locked = True End If End Sub Sub НоваяЗапись() On Error GoTo Err_НоваяЗапись_Click DoCmd.GoToRecord , , A_NEWREC Exit_НоваяЗапись_Click: Exit Sub Err_НоваяЗапись_Click: MsgBox Error$ Resume Exit_НоваяЗапись_Click End Sub Sub ОбновитьЗапись() On Error GoTo Err_ОбновитьЗапись_Click DoCmd.DoMenuItem A_FORMBAR, A_RECORDSMENU, Обновить Exit_ОбновитьЗапись_Click: Exit Sub Err_ОбновитьЗапись_Click: MsgBox Error$ Resume Exit_ОбновитьЗапись_Click End Sub Sub ОпуститьСписок() SendKeys "%{DOWN}", True End Sub Sub ОткрытьФорму(ИмяФормы As String, Метод As Variant) On Error GoTo Err_ОткрытьФорму_Click If IsNull(Метод) Then DoCmd.OpenForm ИмяФормы Else DoCmd.OpenForm ИмяФормы, , , , , Метод End If Exit_ОткрытьФорму_Click: Exit Sub Err_ОткрытьФорму_Click: MsgBox Error$ Resume Exit_ОткрытьФорму_Click End Sub Sub ПечатьОтчета(Отчет As String) On Error GoTo Err_ПечатьОтчета_Click DoCmd.OpenReport Отчет, A_NORMAL Exit_ПечатьОтчета_Click: Exit Sub Err_ПечатьОтчета_Click: MsgBox Error$ Resume Exit_ПечатьОтчета_Click End Sub Sub ПодправитьПоле() On Error GoTo Err_ПодправитьПоле_Click Screen.ActiveControl.SelLength = 1 SendKeys "{F2}", True Exit_ПодправитьПоле_Click: Exit Sub Err_ПодправитьПоле_Click: MsgBox Error$ Resume Exit_ПодправитьПоле_Click End Sub Sub ПросмотрОтчета(Отчет As String) On Error GoTo Err_ПросмотрОтчета_Click DoCmd.OpenReport Отчет, A_PREVIEW Exit_ПросмотрОтчета_Click: Exit Sub Err_ПросмотрОтчета_Click: MsgBox Error$ Resume Exit_ПросмотрОтчета_Click End Sub Sub УдалитьЗапись() On Error GoTo Err_УдалитьЗапись_Click DoCmd.SetWarnings False DoCmd.DoMenuItem A_FORMBAR, A_EDITMENU, A_SELECTRECORD_V2, , A_MENU_VER20 DoCmd.DoMenuItem A_FORMBAR, A_EDITMENU, A_DELETE_V2, , A_MENU_VER20 DoCmd.SetWarnings True Exit_УдалитьЗапись_Click: Exit Sub Err_УдалитьЗапись_Click: MsgBox Error$ Resume Exit_УдалитьЗапись_Click End Sub Sub УстановитьВсе(Элемент As Control) If IsNull(Элемент) Then Элемент = "*" End If End Sub Создание списка отчетов Option Compare Database 'Сравнение строк средствами баз данных Function СписокОтчетов(Елемент As Control, id As Long, Строка As Long, Колонка As Long, Код As Integer) Static Массив(), КоличествоЗаписей Dim ВозвращаемоеЗначение, i As Integer Dim DocName As String ВозвращаемоеЗначение = Null Select Case Код Case LB_INITIALIZE 'Инициализация. Dim МояБД As Database, Контейнер As Container Set МояБД = DBEngine.Workspaces(0).Databases(0) Set Контейнер = МояБД.Containers("Reports") КоличествоЗаписей = Контейнер.Documents.Count ReDim Массив(КоличествоЗаписей) ii = 0 For i = 0 To КоличествоЗаписей - 1 DocName = Контейнер.Documents(i).Name Массив(i) = DocName Next i ВозвращаемоеЗначение = КоличествоЗаписей Case LB_OPEN 'Открытие. ВозвращаемоеЗначение = Timer 'Уникальный идентификатор элемента. Case LB_GETROWCOUNT 'Число строк. ВозвращаемоеЗначение = КоличествоЗаписей Case LB_GETCOLUMNUMNCOUNT 'Число столбцов. ВозвращаемоеЗначение = 1 Case LB_GETCOLUMNUMNWIDTH 'Ширина столбцов. ВозвращаемоеЗначение = -1 Case LB_GETVALUE 'Определяются данные. ВозвращаемоеЗначение = Массив(Строка) Case LB_END For i = 0 To КоличествоЗаписей - 1 Массив(i) = "" Next i End Select СписокОтчетов = ВозвращаемоеЗначение End Function Сумма прописью ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' СУММА ПРОПИСЬЮ ' ' ' ' Данный модуль определяет две полезные функции: ' ' Курс (Дата) извлекает из таблицы "Курс" значение ' ' курса обмена рубля на доллары США. ' ' Сумма Прописью (Сумма) выводит сумму прописью для ' ' печати в счетах, накладных и пр. ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' Option Compare Database 'Использовать функции базы данных при сравнении строк Option Explicit Global Сумма As Currency, Остаток As Currency Function Десятки(Разряд As Long) As String Select Case Разряд Case 2 Десятки = "двадцать " Case 3 Десятки = "тридцать " Case 4 Десятки = "сорок " Case 5 Десятки = "пятьдесят " Case 6 Десятки = "шестьдесят " Case 7 Десятки = "семьдесят " Case 8 Десятки = "восемьдесят " Case 9 Десятки = "девяносто " End Select End Function Function Единицы(Разряд As Long, Род As String) As String Select Case Разряд Case 1 If Род = "Мужской" Then Единицы = "один " Else Единицы = "одна " End If Case 2 If Род = "Мужской" Then Единицы = "два " Else Единицы = "две " End If Case 3 Единицы = "три " Case 4 Единицы = "четыре " Case 5 Единицы = "пять " Case 6 Единицы = "шесть " Case 7 Единицы = "семь " Case 8 Единицы = "восемь " Case 9 Единицы = "девять " Case 10 Единицы = "десять " Case 11 Единицы = "одиннадцать " Case 12 Единицы = "двенадцать " Case 13 Единицы = "тринадцать " Case 14 Единицы = "четырнадцать " Case 15 Единицы = "пятнадцать " Case 16 Единицы = "шестнадцать " Case 17 Единицы = "семнадцать " Case 18 Единицы = "восемнадцать " Case 19 Единицы = "девятнадцать " End Select End Function Function Миллионы(Разряд As Long) As String If Разряд = 1 Then Миллионы = "миллион " ElseIf Разряд > 1 And Разряд < 5 Then Миллионы = "миллиона " Else Миллионы = "миллионов " End If End Function Function Рубли(Разряд As Long) As String If Разряд = 1 Then Рубли = "рубль" ElseIf Разряд > 1 And Разряд < 5 Then Рубли = "рубля" Else Рубли = "рублей" End If End Function Function Сотни(Разряд As Long) As String Select Case Разряд Case 1 Сотни = "сто " Case 2 Сотни = "двести " Case 3 Сотни = "триста " Case 4 Сотни = "четыреста " Case 5 Сотни = "пятьсот " Case 6 Сотни = "шестьсот " Case 7 Сотни = "семьсот " Case 8 Сотни = "восемьсот " Case 9 Сотни = "девятьсот " End Select End Function Function СуммаПрописью(СуммаСчета As Currency) As String ' Параметры: Используются глобальные параметры ' Сумма, Остаток и Подпись ' Назначение: Перевод СуммыСчета в строковую константу ' Возвращает: СуммуПрописью Dim Группа As Long, Разряд As Long, Длина As Integer Dim Пропись As String Сумма = СуммаСчета Остаток = Сумма Группа = Остаток \ 1000000 If Группа <> 0 Then Разряд = Группа \ 100 Пропись = Пропись & Сотни(Разряд) Остаток = Остаток - Разряд * 100 * 1000000 Группа = Группа - Разряд * 100 If Группа > 19 Then Разряд = Группа \ 10 Пропись = Пропись & Десятки(Разряд) Остаток = Остаток - Разряд * 10 * 1000000 Группа = Группа - Разряд * 10 End If Разряд = Группа Пропись = Пропись & Единицы(Разряд, "Мужской") Остаток = Остаток - Разряд * 1000000 Пропись = Пропись & Миллионы(Разряд) End If Группа = Остаток \ 1000 If Группа <> 0 Then Разряд = Группа \ 100 Пропись = Пропись & Сотни(Разряд) Остаток = Остаток - Разряд * 100 * 1000 Группа = Группа - Разряд * 100 If Группа > 19 Then Разряд = Группа \ 10 Пропись = Пропись & Десятки(Разряд) Остаток = Остаток - Разряд * 10 * 1000 Группа = Группа - Разряд * 10 End If Разряд = Группа Пропись = Пропись & Единицы(Разряд, "Женский") Остаток = Остаток - Разряд * 1000 Пропись = Пропись & Тысячи(Разряд) End If Группа = Остаток If Группа <> 0 Then Разряд = Группа \ 100 Пропись = Пропись & Сотни(Разряд) Остаток = Остаток - Разряд * 100 Группа = Группа - Разряд * 100 If Группа > 19 Then Разряд = Группа \ 10 Пропись = Пропись & Десятки(Разряд) Остаток = Остаток - Разряд * 10 Группа = Группа - Разряд * 10 End If Разряд = Группа Пропись = Пропись & Единицы(Разряд, "Мужской") Остаток = Остаток - Разряд Пропись = Пропись & Рубли(Разряд) Else Пропись = Пропись & Рубли(0) End If Длина = Len(Пропись) If IsNull(Длина) Then Exit Function End If Пропись = UCase(Mid(Пропись, 1, 1)) & (Mid(Пропись, 2, Длина)) СуммаПрописью = Пропись End Function Function Тысячи(Разряд As Long) As String If Разряд = 1 Then Тысячи = "тысяча " ElseIf Разряд > 1 And Разряд < 5 Then Тысячи = "тысячи " Else Тысячи = "тысяч " End If End Function
0
|
|
| 27.05.2011, 17:15 | |
|
Ответы с готовыми решениями:
2
Описать каждую строчку кода функции либо описать как осуществляется решение этой данной функции Описать все возможные варианты синтаксиса функции и примеры ее использования Описать новый структурный тип. Описать требуемые в задаче функции для работы со структурами. Продемонстрироват |
|
3357 / 1776 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
|
|
| 27.05.2011, 17:19 | |
|
:black_eye.:
0
|
|
|
0 / 0 / 0
Регистрация: 05.04.2011
Сообщений: 8
|
|
| 27.05.2011, 17:22 [ТС] | |
|
0
|
|
| 27.05.2011, 17:22 | |
|
Помогаю со студенческими работами здесь
3
Найти все простые числа, меньше данного числа N. Определение простого числа описать в функции Нужно создать базу данных (создать пустой бинарный файл). Через поток. Поток бинарного файла описать в виде локальной переменной внутри функции. Нужно построить график функции в лазарусе, вроде всё сделал но выдаёт ошибку External: SIGFPE
нужно удалить и вывести все символы после *(его не нужно выводить). я смог наоборот вывести всё до него! помоите Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|