Вопрос № 178638: В небоскребе N этажей и всего один подъезд; на каждом этаже по три квартиры; лифт может останавливаться только на нечетных этажах. Человек садится в лифт и набирает номер квартиры M. На какой этаж лифт должен доставить пассажира? 1.В работ...
Вопрос № 178642: Даны две матрицы А(5,5); В(6,6). Уменьшить макси-мальный элемент в каждой из этих матриц в 10 раз. 1.В работе необходимо выполнить алгоритмические задачи с использованием базовых типов данных и основных операторов языка программирования VBA.Вопрос № 178645: Написать процедуру, которая формирует двумерный массив А по следующему алгоритму: изменяется от 0 до N, j изменяется от 0 до M. 1.В работе необходимо выполнить алгоритмические задачи с использованием базовых типов данных и основных операт...
Вопрос № 178646: В файле хранится произвольный текст. Группы символов, разделенные пробелом и не содержащие пробелов внутри себя, будем называть словами. Удалить из каждого слова текста все последующие вхождения его первой буквы. Результат записать в новый файл. <...
Вопрос № 178647: Дан список, состоящий из названий книг, фамилий авторов, издательства и года изданий. Упорядочить список по издательствам. Вывод на экран сформировать в виде таблицы. Для ввода данных использовать форму и элементы управления. 1.В работе необхо...
Вопрос № 178662: Подскажите скрипт для подключения библиотеки SHDocVw.dll (Microsoft.internet.control), что она даёт? Каков лучше эффет чтобы узнать загружена ли страница ВЭБа, от строк Do Until IE.readyState = READYSTATE_COMPLETE DoEvents Loop ...
Вопрос № 178638:
В небоскребе N этажей и всего один подъезд; на каждом этаже по три квартиры; лифт может останавливаться только на нечетных этажах. Человек садится в лифт и набирает номер квартиры M. На какой этаж лифт должен доставить пассажира?
1.В работе необходимо выполнить алгоритмические задачи с использованием базовых типов данных и основных операторов языка программирования VBA. 2. Задачи прислать в виде файлов Word либо Excel, с кодом программы, выполненном в среде VBA соответствующего компонента Office. 3.
В программах обязательно наличие комментариев, поясняющих основные алгоритмические шаги.
Отвечает Megaloman, Профессионал :
Здравствуйте Ананьев Рудольф Олегович! Вот код макроса, Excel-файл можно загрузить z178638.xls (25.5 кб).
Код:
Sub z178638()
Dim N As Integer ' Количество этажей Dim M As Integer ' Номер квартиры Dim
Nroom As Integer ' Кол-во квартир на этаже Dim Floor As Integer ' Номер этажа для указанной квартиры
Nroom = 3 ' Количество квартир на этаже
N = CInt(InputBox("Введите количество этажей")) ' Ввод данных и их преобразование из символьного к целому типу M = CInt(InputBox("Введите номер квартиры"))
If N > 0 And M <= N * Nroom Then ' Если число этаже
й и номер квартиры корректно
Floor = Int((M + Nroom-1) / Nroom) 'Подсчёт номера этажа If (Floor Mod 2) = 0 Then ' Если этаж четный Floor = Floor + 1 ' Вычисляем верхний нечётный этаж
If Floor > N Then Floor = Floor - 2 ' Если верхний нечётный этаж вне диапазона ' Вычисляем нижний нечётный этаж
End If
Else Msg = "Количество этажей=" + CStr(N) + vbCrLf ' Формирование аварийного сообщения Msg = Msg + "Номер квартиры=" + CS
tr(M) MsgBox Msg, vbOKOnly, "Некорректные данные" End If
End Sub
----- Нет времени на медленные танцы
Ответ отправил: Megaloman, Профессионал
Ответ отправлен: 26.05.2010, 12:48
Номер ответа: 261672
Оценка ответа: 5 Комментарий к оценке: большое спасибо)
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 261672
на номер 1151 (Россия) |
Еще номера »
Отвечает Andrew Kovalchuk, Студент :
Здравствуйте, Ананьев Рудольф Олегович. Код в приложении.
Приложение:
----- Временная неудача лучше временной удачи
Ответ отправил: Andrew Kovalchuk, Студент
Ответ отправлен: 26.05.2010, 13:03
Номер ответа: 261673
Оценка ответа: 5 Комментарий к оценке: спасибо
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 261673
на номер 1151 (Россия) |
Еще номера »
Вопрос № 178642:
Даны две матрицы А(5,5); В(6,6). Уменьшить макси-мальный элемент в каждой из этих матриц в 10 раз.
1.В работе необходимо выполнить алгоритмические задачи с использованием базовых типов данных и основных операторов языка программирования VBA. 2. Задачи прислать в виде файлов Word либо Excel, с кодом программы, выполненном в среде VBA соответствующего компонента Office. 3. В программах обязательно наличие комментариев, поясняющих основные алгоритмические шаги.
Отвечает Andrew Kovalchuk, Студент :
Здравствуйте, Ананьев Рудольф Олегович. В приложении приведен код, который выполняет необходимые действия. Массивы заполняются случайными числами.
Приложение:
----- Временная неудача лучше временной удачи
Ответ отправил: Andrew Kovalchuk, Студент
Ответ отправлен: 26.05.2010, 02:33
Номер ответа: 261648
Оценка ответа: 5
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 261648
на номер 1151 (Россия) |
Еще номера »
Вопрос № 178645:
Написать процедуру, которая формирует двумерный массив А по следующему алгоритму: изменяется от 0 до N, j изменяется от 0 до M.
1.В работе необходимо выполнить алгоритмические задачи с использованием базовых типов данных и основных операторов языка программирования VBA. 2. Задачи прислать в виде файлов Word либо Excel, с кодом программы, выполненном в среде VBA соответствующего компонента Office. 3. В программах обязательно наличие комментариев, поясняющих основные алгоритмические шаги.
Отвечает Andrew Kovalchuk, Студент :
Здравствуйте, Ананьев Рудольф Олегович. Вариант решения прилагается (вот только что там комментировать - не знаю)
Приложение:
----- Временная неудача лучше временной удачи
Ответ отправил: Andrew Kovalchuk, Студент
Ответ отправлен: 26.05.2010, 02:47
Номер ответа: 261650
Оценка ответа: 5 Комментарий к оценке: спасибо
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 261650
на номер 1151 (Россия) |
Еще номера »
Вопрос № 178646:
В файле хранится произвольный текст. Группы символов, разделенные пробелом и не содержащие пробелов внутри себя, будем называть словами. Удалить из каждого слова текста все последующие вхождения его первой буквы. Результат записать в новый файл.
1.В работе необходимо выполнить алгоритмические задачи с использованием базовых типов данных и основных операторов языка программирования VBA. 2. Задачи прислать в виде файлов Word либо Excel, с кодом программы, выполненном в среде VBA соответствующего компонента
Office. 3. В программах обязательно наличие комментариев, поясняющих основные алгоритмические шаги.
Отвечает Megaloman, Профессионал :
Здравствуйте, Ананьев Рудольф Олегович. Вот код макроса. В нём надо указать пути к файлам.
Код:
Sub Z178646() Const FileNameIn = "H:\Delete\0001.txt" Const FileNameOut = "H:\Delete\0001_OUT.txt"
NFileIn = FreeFile '
Определяем ссылочный Входного номер файла Open FileNameIn For Input As #NFileIn ' Открываем входной файл
NFileOut = FreeFile ' Определяем ссылочный Выходного номер файла Open FileNameOut For Output As #NFileOut ' Открываем выходной файл
i = 0 Do While Not EOF(NFileIn) ' Loop until end of file. Line Input #NFileIn, Dann ' Читаем построчно текст
овый файл со словами Mass = Split(Dann, " ") ' Экспортируем прочитанную строку в массив. Резделитель - пробелы
Dann = "" For i = 0 To UBound(Mass) ' Обрабатываем каждое слово в массиве, формируем новую строку If i <> 0 Then Dann = Dann + " " LM = Len(Mass(i)) ' длина слова If LM > 1 Then L1 = Mid(Mass(i),
1, 1) ' Выделяем первый символ в слове Dann = Dann + L1 + Replace(Mid(Mass(i), 2, LM), L1, "") ' Новое слово (первый символ+ результат замены его замены в оставшейся части слова на строку нулевой длины) добавляем в строку Else Dann = Dann + Mass(i) ' Слово из одной буквы End If Next
Print #NFileOut, Dann ' Записываем новую строку в новый файл i = i + 1 Loop
Excel-файл в прикреплённом файле
Прикрепленный файл:загрузить »
----- Нет времени на медленные танцы
Ответ отправил: Megaloman, Профессионал
Ответ отправлен: 26.05.2010, 17:15
Номер ответа: 261683
Оценка ответа: 5 Комментарий к оценке: большое спасибо!
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 261683
на номер 1151 (Россия) |
Еще номера »
Вопрос № 178647:
Дан список, состоящий из названий книг, фамилий авторов, издательства и года изданий. Упорядочить список по издательствам. Вывод на экран сформировать в виде таблицы. Для ввода данных использовать форму и элементы управления.
1.В работе необходимо выполнить алгоритмические задачи с использованием базовых типов данных и основных операторов языка программирования VBA. 2. Задачи прислать в виде файлов Word либо Excel, с кодом программы, выполненном в среде VBA соответствующего компонента Office. 3.
В программах обязательно наличие комментариев, поясняющих основные алгоритмические шаги.
Отвечает Измалков Эдуард Леонидович, Студент :
Здравствуйте, Ананьев Рудольф Олегович. Приведено решение для Excel. Данные из формы заносятся в определенный лист в книге, затем полученная таблица сортируется по наименованию издательства. Для начала Вам нужно будет создать форму, которая будет использоваться для ввода, и разместить на ней следующие элементы: 4 поля InputBox c именами: Ввод_названия_книги, Ввод_автора, Ввод_издательства, Ввод_года_выпуска и 2 кнопки, одна для сохранения с именем Кнопка_записи, другая для выхода
с именем Кнопка_выхода. Плюс еще можно добавить подписи (поля Label) для каждого поля ввода текста. Затем в код этой формы вставить следующий код
Код:
Const Имя_листа As String = "Список книг" ' название листа для ввода д
анных
Private Sub UserForm_Activate() ' при запуске формы нужно создать лист, куда будут сохраняться данные. Название листа указано в константе "Имя_листа" ' если лист уже существует, то его удалить
Application.ScreenUpdating = False ' не выводить ничего на экран, пока активна форма
Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets ' цикл для перебора всех листов в текущем документе If ws.Name = Имя_листа Then ' лист
уже существует Application.DisplayAlerts = False ' Отключение запроса на удаление листа, содержащего данные ws.Delete ' удаление листа Application.DisplayAlerts = True ' включение предупреждений Exit For ' выход из цикла End If Next ws ' следующий лист Set ws = ThisWorkbook.Worksheets.Add(before:=ThisWorkbook.Sheets(1)) ' создание нового листа перед первым листом ws.Name =
Имя_листа ' присвоение ему нужного названия ' заголовки таблицы ws.Cells(1, 1).Value = "Название книги" ws.Cells(1, 2).Value = "Автор книги" ws.Cells(1, 3).Value = "Издательство" ws.Cells(1, 4).Value = "Год выпуска"
Set ws = Nothing ' освобождение памяти End Sub
Private Sub UserForm_Terminate() ' при закрытии формы сделать сортировку введенных данных With ThisWorkbook.Worksheets(Имя_листа).UsedRange
' дальнейшие действия будут выполняться над заполненным диапазоном ' сортировка по третьему полю в порядке возрастания, первая строка - заголовки, регистр не учитывать .Sort key1:=Columns(3), order1:=xlAscending, Header:=xlYes, MatchCase:=False .Columns.AutoFit ' автоматическая ширина столбцов по содержимому End With Application.ScreenUpdating = True ' включение отображения изменений на листе End Sub
Pr
ivate Sub Кнопка_выхода_Click() Unload Me ' выгрузка формы End Sub
Private Sub Кнопка_записи_Click() ' Проверка на заполнение всех полей If Trim(Me.Ввод_названия_книги.Value) = "" Then ' проверка на заполнение поля ввода названия, для этого убираются крайние пробелы, если они есть MsgBox "Не введено название книги!", vbOKOnly + vbExclamation, "Внимание" ' сообщение с одной кнопкой "ОК" и значком предупреждения
Me.Ввод_названия_книги.SetFocus ' перемещение курсора в нужное поле ElseIf Trim(Me.Ввод_автора.Value) = "" Then ' проверка на заполнение поля ввода автора, для этого убираются крайние пробелы, если они есть MsgBox "Не указан автор книги!", vbOKOnly + vbExclamation, "Внимание" ' сообщение с одной кнопкой "ОК" и значком предупреждения Me.Ввод_автора.SetFocus ' перемещение курсора в нужное пол
е ElseIf Trim(Me.Ввод_издательства.Value) = "" Then ' проверка на заполнение поля ввода издательства, для этого убираю
тся крайние пробелы, если они есть MsgBox "Не указано издательство, выпустившее книгу!", vbOKOnly + vbExclamation, "Внимание" ' сообщение с одной кнопкой "ОК" и значком предупреждения Me.Ввод_издательства.SetFocus ' перемещение курсора в нужное поле ElseIf Trim(Me.Ввод_года_выпуска.Value) = "" Then ' проверка на заполнение поля ввода года выпуска, для этого убираются крайние пробелы, если они есть MsgBox "Не указан год
выпуска книги!", vbOKOnly + vbExclamation, "Внимание" ' сообщение с одной кнопкой "ОК" и значком предупреждения Me.Ввод_года_выпуска.SetFocus ' перемещение курсора в нужное поле ElseIf Len(Trim(Me.Ввод_года_выпуска)) > 4 Then ' в качестве года выпуска не может быть указано более 4 цифр MsgBox "Неправильно введен год выпуска - год не может содержать более 4 цифр", vbOKOnly + vbCritical, "Ошибка&
quot; ' сообщение с одной кнопкой "ОК" и значком ошибки Me.Ввод_года_выпуска.SetFocus ' перемещение курсора в нужное поле ElseIf Not IsNumeric(Me.Ввод_года_выпуска) Then ' в поле ввода года введено не число MsgBox "В качестве года выпуска должно быть указано число", vbOKOnly + vbInformation, "Внимание" ' сообщение с одной кнопкой "ОК" и значком информации Me.Ввод_года_выпуска.SetFocus ' перемещение курсора в нужное
поле ElseIf CInt(Me.Ввод_года_выпуска) > Year(Now) Then ' введен год больше текущего MsgBox "Год, указанный в качестве года выпуска еще не наступил", vbOKOnly + vbInformation, "Ошибка" ' сообщение с одной кнопкой "ОК" и значком ошибки Me.Ввод_года_выпуска.SetFocus ' перемещение курсора в нужное поле Else Dim i As Integer With ThisWorkbook.Worksheets(Имя_листа) ' with использует
ся для того, чтобы внутри этого блока можно было обращаться к нужному листу без его явного указания i = .UsedRange.Rows.Count + 1 ' количество строк на текущий момент плюс одна, чтобы указывать на первую чистую строку .Cells(i, 1).Value = Me.Ввод_названия_книги.Value ' первый столбец - название книги .Cells(i, 2).Value = Me.Ввод_автора.Value ' второй столбец - автор .Cells(i, 3).Value = Me.Ввод_издательства.Value ' третий столбец - издательство
.Cells(i, 4).Value = Me.Ввод_года_выпуска.Value ' четвертый столбец - год выпуска книги End With ' очистка значений полей ввода Me.Ввод_автора.Value = "" Me.Ввод_года_выпуска.Value = "" Me.Ввод_издательства.Value = "" Me.Ввод_названия_книги.Value = ""
Me.Ввод_названия_книги.SetFocus ' перемещение указателя в поле ввода названия книги
End If End Sub
Ответ отправил: Измалков Эдуард Леонидович, Студент
Ответ отправлен: 28.05.2010, 23:41
Номер ответа: 261734
Оценка ответа: 5 Комментарий к оценке: спасибо
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 261734
на номер 1151 (Россия) |
Еще номера »
Вопрос № 178662:
Подскажите скрипт для подключения библиотеки SHDocVw.dll (Microsoft.internet.control), что она даёт? Каков лучше эффет чтобы узнать загружена ли страница ВЭБа, от строк
Do Until IE.readyState = READYSTATE_COMPLETE DoEvents Loop или Do While IE.ReadyState <> 4 Loop DoEvents или, не помню дословно там есть ".Busy", помоему так Спасибо Эндрю
Отвечает Гаряка Асмик, Специалист :
Здравствуйте, Ципихович Эндрю.
SHDocVw.dll - это динамически подключаемая библиотека, в которой содержатся функции управления файловой системой Windows. Эта библиотека прямо используется браузером IE. Если на форме имеется WebControl, эта библиотека автоматически используется.
READYSTATE_COMPLETE - константа, значение которой равно 4. Поэтому можно писать и так, так. Работать будет одинаково. Но если писать READYSTATE_COMPLETE, так более понятно для человека, который будет эту программу
читать.
----- Я ни от чего, ни от кого не завишу.
Ответ отправил: Гаряка Асмик, Специалист
Ответ отправлен: 26.05.2010, 12:04
Номер ответа: 261668
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 261668
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.