Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Basic / VBA


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Гаряка Асмик
Статус: Специалист
Рейтинг: 4180
∙ повысить рейтинг »
Vasiliy83
Статус: Бакалавр
Рейтинг: 1724
∙ повысить рейтинг »
Megaloman
Статус: Профессионал
Рейтинг: 1404
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / Basic/VBA

Номер выпуска:1033
Дата выхода:10.06.2010, 19:00
Администратор рассылки:Калашников О.А., Руководитель
Подписчиков / экспертов:216 / 86
Вопросов / ответов:4 / 4

Вопрос № 178920: Здравствуйте! Цитирую сообщение моей однокурстцы - Мое имя Светлана. Я студентка 3-го курса экономического отделения по специальности «Менеджмент организации» Удмуртского государственного университета. Обращаюсь к Вам за помощью. Очень надеюс...


Вопрос № 178922: Зравствуйте. моя вторая однокурснитца нуждается в вашей помощи )) 3. Даны две матрицы А(n,n); В(m,m). Присвоить переменной B1 значение 1, если элементы матрицы А симметричны относительно главной диагонали, и значение 0 в противном случае. Зн...
Вопрос № 178923: Зравствуйте. моя вторая однокурснитца нуждается в вашей помощи )) 1. В файле хранится произвольный текст на русском языке. Проверить, каких букв в нем больше: гласных или согласных. Есть некоторые правила к выполнению: 1. В работе н...
Вопрос № 178924: Зравствуйте. моя вторая однокурснитца нуждается в вашей помощи )) 2. Дан массив а1,а2...аn Расположить ненулевые элементы массива по убыванию; остальные элементы оставить на своих местах. Размерность массива вводите с помощью оператора Input...

Вопрос № 178920:

Здравствуйте! Цитирую сообщение моей однокурстцы -
Мое имя Светлана. Я студентка 3-го курса экономического отделения по специальности «Менеджмент организации» Удмуртского государственного университета.
Обращаюсь к Вам за помощью. Очень надеюсь, что вы войдете в мое положение, поймете и поможете. Дело в том, что я вынуждена совместно с учебой еще и работать… И у меня совсем нет времени решить некоторые задания по дисциплине «Информационные технологии в экономике». Да и ко всему этому я не очень-то понимаю, что от меня требуется в этих заданиях и как их решить… Очень нуждаюсь в вашей помощи…

Пожалуйста, помогите решить эти задания.
Вот их содержание:
1. Услуги телефонной сети оплачиваются по следующему правилу: за разговоры до А минут в месяц – по В руб., а разговоры сверх установленной нормы оплачиваются из расчета С руб. за минуту. Написать программу, вычисляющую плату за пользование телефоном для введенного времени разговоров за месяц.

Есть нек оторые правила к выполнению:
1. В работе необходимо выполнить алгоритмические задачи с использованием базовых типов данных и основных операторов языка программирования VBA.
2. Темы задач: простые вычислительные алгоритмы, работа с переменными типа строка, работа с одномерным массивом, работа с двумерным массивом, работа с переменными типа запись.
3. Задачи на проверку представить в виде файлов Word либо Excel, с кодом программы, выполненном в среде VBA соответствующего компонента Office (желательно в Excel) .
4. В программах обязательно наличие комментариев, поясняющих основные алгоритмические шаги.
Заранее благодарю. Светлана

Отправлен: 05.06.2010, 17:46
Вопрос задал: Ананьев Рудольф Олегович, 4-й класс
Всего ответов: 1
Страница вопроса »


Отвечает Измалков Эдуард Леонидович, Студент :
Здравствуйте, Ананьев Рудольф Олегович.
Данный код следует выполнять строго в Excel, т.к. используется его встроенная функция InputBox, которая позволяет контролировать соответствие типа введенного выражения.
Во вложении уже готовый файл Excel.
Код:
Sub ОплатаРазговоров()
Const Норма As Integer = 100 ' норма разговоров в месяц (А в задании)
Const Тариф_норма As Currency = 1.13 ' тариф за минуту (В в задании)
Const Тариф_сверх_нормы As Currency = 2.2 ' тариф сверх нормы (С в задании)

Dim Количество_минут As Integer ' сколько минут выговорено в месяц
Dim Сумма_оплаты As Currency ' сумма для оплаты
' для ввода количества минут используется встроенная функция InputBox. Её версия в Excel имеет еще один ар гумент Type. Значение 1 показывает, что должно быть введено число
Количество_минут = Application.InputBox(prompt:="Введите общее время разговоров в месяц в минутах", Title:="Расчет оплаты за телефон", Default:=0, Type:=1)
If Количество_минут = 0 Then Exit Sub ' ничего не введено, значит выход из расчета
Сумма_оплаты = IIf(Количество_минут < Норма, Количество_минут * Тариф_норма, Норма * Тариф_норма + (Количество_минут - Норма) * Тариф_сверх_нормы) ' расчет стоимости
MsgBox prompt:="За текущий месяц Вы должны заплатить " & Сумма_оплаты & " рублей.", Buttons:=vbOKOnly, Title:="Сумма оплаты" ' вывод сообщения с суммой к оплате
End Sub
Прикрепленный файл: загрузить »

Ответ отправил: Измалков Эдуард Леонидович, Студент
Ответ отправлен: 05.06.2010, 18:20
Номер ответа: 261899

Оценка ответа: 5

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 261899 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Вопрос № 178922:

    Зравствуйте. моя вторая однокурснитца нуждается в вашей помощи ))

    3. Даны две матрицы А(n,n); В(m,m). Присвоить переменной B1 значение 1, если элементы матрицы А симметричны относительно главной диагонали, и значение 0 в противном случае. Значение переменной В определить аналогично для матрицы В.

    Есть некоторые правила к выполнению:
    1. В работе необходимо выполнить алгоритмические задачи с использованием базовых типов данных и основных операторов языка программирования VBA.
    2. Темы задач: простые вычислительные алгоритмы, работа с переменными типа строка, работа с одномерным массивом, работа с двумерным массивом, работа с переменными типа запись.
    3. Задачи на проверку представить в виде файлов Word либо Excel, с кодом программы, выполненном в среде VBA соответствующего компонента Office (желательно в Excel) .
    4. В программах обязательно наличие комментариев, поясняющих основные алгоритмические шаги.

    Отправлен: 05.06.2010, 18:16
    Вопрос задал: Ананьев Рудольф Олегович, 4-й класс
    Всего ответов: 1
    Страница вопроса »


    Отвечает Измалков Эдуард Леонидович, Студент :
    Здравствуйте, Ананьев Рудольф Олегович.
    В задании указано, что в случае симметричности элементов матрицы B изменить значение переменной B. VBA не позволит использовать одно и то же имя для разных переменных, поэтому матрицу я оставил как B, а переменная, характеризующая ее симметричность будет B2. Файл во вложении. Для удобства проверки матрицы заполняются значениями из листов Excel. Прикрепленный файл: загрузить »

    Ответ отправил: Измалков Эдуард Леонидович, Студент
    Ответ отправлен: 05.06.2010, 19:00
    Номер ответа: 261900

    Оценка ответа: 5

    Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 261900 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Вопрос № 178923:

    Зравствуйте. моя вторая однокурснитца нуждается в вашей помощи ))

    1. В файле хранится произвольный текст на русском языке. Проверить, каких букв в нем больше: гласных или согласных.

    Есть некоторые правила к выполнению:
    1. В работе необходимо выполнить алгоритмические задачи с использованием базовых типов данных и основных операторов языка программирования VBA.
    2. Темы задач: простые вычислительные алгоритмы, работа с переменными типа строка, работа с одномерным массивом, работа с двумерным массивом, работа с переменными типа запись.
    3. Задачи на проверку представить в виде файлов Word либо Excel, с кодом программы, выполненном в среде VBA соответствующего компонента Office (желательно в Excel) .
    4. В программах обязательно наличие комментариев, поясняющих основные алгоритмические шаги.

    Отправлен: 05.06.2010, 18:31
    Вопрос задал: Ананьев Рудольф Олегович, 4-й класс
    Всего ответов: 1
    Страница вопроса »


    Отвечает Megaloman, Профессионал :
    Здравствуйте, Ананьев Рудольф Олегович.
    Вот мой вариант ответа. Готовый файл можно загрузить 178923.xls (29.5 кб).
    Код:
    Sub Z178923()

    ' подсчет гласных и согласных букв в файле и вывод - каких больше

    Const fileName As String = "E:\Delete\aaa.txt" ' название файла
    Const Glas As String = "аеёиоуыэюя" ' список гласных букв
    Const SoGlas As String = "бвгджзклмнпрстфхцчшщ" ' список согласных букв

    Dim Ns As Integer
    Dim Ng As Integer
    Dim N As Integer
    Dim i As Integer
    Dim NFileIn As Integer

    Dim myStr As String
    Dim S As String

    Ns = 0 ' количество согласных букв
    Ng = 0 ' количество гласных букв

    NFileIn = FreeFile ' Определяем ссылочный Входного номер файла
    Open fileName For Input As #NFileIn ' открываем файл

    Do While Not EOF(NFileIn)
    Input #NFileIn, myStr ' считываем строку в локальную переменную
    myStr = Replace(myStr, " ", "") ' убираем пробелы

    N = Len(myStr) ' Длина строки без пробелов
    If N > 0 Then ' Если строка не пустая
    For i = 1 To N
    If InStr(1, Glas, Mid(myStr, i, 1), vbTextCompare) > 0 Then ' проверка буквы в списке гласных
    Ng = Ng + 1 ' увеличивается счетчик гласных букв
    Else
    If InStr(1, SoGlas, Mid(myStr, i, 1), vbTextCompare) > 0 Then Ns = Ns + 1 ' проверка буквы в списке согласных
    End If
    Next
    End If

    Loop

    Close #NFileIn ' закрытие файла

    myStr = "В файле " + vbCrLf + fileName + vbCrLf + vbCrLf
    myStr = myStr + CStr(Ng) + " гласных букв русского алфавита" + vbCrLf
    myStr = myStr + CStr(Ns) + " согласных букв русского алфавита" + vbCrLf

    S = "количество гласных и согласных букв равно"
    If Ng > Ns Then ' окончание строки для вывода в зависимости от результата подсчета
    S = "количество гласных букв > количества согласных"
    ElseIf Ng < Ns Then
    S = "количество гласных букв < количества согласных"
    End If

    MsgBox myStr + vbCrLf + S, vbOKOnly, "Подсчет согласных и гласных букв&q uot;

    End Sub


    -----
    Нет времени на медленные танцы

    Ответ отправил: Megaloman, Профессионал
    Ответ отправлен: 05.06.2010, 22:00
    Номер ответа: 261908

    Оценка ответа: 5

    Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 261908 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Вопрос № 178924:

    Зравствуйте. моя вторая однокурснитца нуждается в вашей помощи ))

    2. Дан массив а1,а2...аn Расположить ненулевые элементы массива по убыванию; остальные элементы оставить на своих местах. Размерность массива вводите с помощью оператора InputBox. Значения элементов массива определить датчиком случайных чисел. Вывод массива выполнить в файл и на экран с помощью оператора вывода MsgBox.

    Есть некоторые правила к выполнению:
    1. В работе необходимо выполнить алгоритмические задачи с использованием базовых типов данных и основных операторов языка программирования VBA.
    2. Темы задач: простые вычислительные алгоритмы, работа с переменными типа строка, работа с одномерным массивом, работа с двумерным массивом, работа с переменными типа запись.
    3. Задачи на проверку представить в виде файлов Word либо Excel, с кодом программы, выполненном в среде VBA соответствующего компонента Office (желательно в Excel) .
    4. В программах обязательно наличие комментариев , поясняющих основные алгоритмические шаги.

    Отправлен: 05.06.2010, 18:31
    Вопрос задал: Ананьев Рудольф Олегович, 4-й класс
    Всего ответов: 1
    Страница вопроса »


    Отвечает Megaloman, Профессионал :
    Здравствуйте, Ананьев Рудольф Олегович.178924.xls (29.5 кб)
    Код:
    Sub Z178924()

    Const Diapaz = 100000 ' Диапазон определения значений элементов массива от -... до + ...
    Const FileIn = "D:\FileIn.txt" ' Файл с сгенерированным массивом
    Const FileOut = "D:\FileOut.txt" ' Файл с отсортированным массивом

    Dim N As Long ' Число элементов массива
    N = CDbl(InputBox("Введите число элементов в массиве" + vbCrLf + "(целое, больше нуля)"))

    ReDim Mass(N - 1) As Double ' Описание массива

    NFileIn = FreeFile ' Определяем ссылочный номер исходного сгенерированного файла
    Open FileIn For Output As #NFileIn ' Открываем файл

    SS = ""
    Randomize ' Initialize random-number generator.
    For i = 0 To N - 1 ' Заполняем исходный массив случайными числами
    Mass(i) = (Diapaz + Diapaz + 1) * Rnd - Diapaz ' Generate random value between 0 and 1000.
    If ((i + 1) Mod 3) = 0 Then Mass(i) = 0 ' Чтобы гарантированно иметь нулевые эл в массиве каждый третий делаю нулевым
    Print #NFileIn, Format(Mass(i), "# ### ##0.0") ' Записываем элемент массива в строковом виде
    SS = SS + Format(Mass(i), "# ### ##0.0") + vbCrLf
    Next
    Close #NFileIn ' Закрываем файл
    MsgBox SS, vbOKOnly, "Исходный массив" ' Выдача массивов на экран

    NFileOut = FreeF ile ' Определяем ссылочный номер выходного отсортированного файла
    Open FileOut For Output As #NFileOut ' Открываем файл

    SS = ""
    For i = 0 To N - 1 ' Сортировка массива
    If Mass(i) <> 0 Then
    For j = i To N - 1
    If Mass(j) <> 0 Then
    If Mass(i) < Mass(j) Then ' Сортировка массива по убыванию
    MMass = Mass(i) ' Перестановка элементов при сортировке
    Mass(i) = Mass(j)
    Mass(j) = MMass
    End If
    End If
    Next
    End If
    Print #NFileOut, Format(Mass(i), "# ### ##0.0") ' Записываем элемент массива в строковом виде
    SS = SS + Format(Mass(i), "# ### ##0.0") + vbCrLf
    Next

    Close #NFileOut
    MsgBox SS, vbOKOnly, "Отсортированный масс ив" ' Выдача массивов на экран

    End Sub

    -----
    Нет времени на медленные танцы

    Ответ отправил: Megaloman, Профессионал
    Ответ отправлен: 06.06.2010, 02:55
    Номер ответа: 261915

    Оценка ответа: 5

    Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 261915 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.16 от 26.05.2010

    В избранное