Другие языки программирования и технологии
Help!!! Помогите решить задачу по VBA MS Excel!
Отсортировать слова во введенной символьной строке по алфавиту. Результат вывести на экран. Ну очень нужно!)
Sub maria_sort()
Dim text1 As String
Dim text2 As String
Dim tmp As String
Dim words() As String
Dim i As Long
Dim j As Long
Dim n As Long
text1 = InputBox("Сортировка слов", "Введите предложение", "девочка ела очень вкусную кашу! ")
words() = Split(Trim(text1), " ") 'разбили предложение на слова и поместили их в массив
n = UBound(words()) 'размер полученного массива
'сортируем пузырьковым методом
For i = 1 To n - 1
For j = n - 1 To i Step -1
'по первой букве по коду ascii
If Asc(Left(words(j), 1)) < Asc(Left(words(j - 1), 1)) Then
tmp = words(j)
words(j) = words(j - 1)
words(j - 1) = tmp
End If
Next j
Next i
'собрали строку из массива
text2 = Join(words(), " ")
MsgBox "Введенная строка: " & text1 + Chr(13) + "Отсортированная строка: " & text2
End Sub
Sub marina_date()
Dim d1 As Date 'Дата, относительно которой ведется поиск
Dim dplus As Date 'ближайша последующая дата (воскресение)
Dim dminus As Date 'Ближайшая предыдущая дата (воскресение)
Dim CountPlus As Long 'элемент для приращения даты
Dim CountMinus As Long 'элемент для приращения даты
CountPlus = 0
CountMinus = 0
d1 = InputBox("Поиск ближайшего воскресенья", "Укажите дату", Date)
'MsgBox "Введенный день недели - " & Weekday(d1, vbMonday) & Chr(13) & Date
If Weekday(d1, vbMonday) <> 7 Then ' если сегодня не воскресенье
Do
CountPlus = CountPlus + 1 '
dplus = DateAdd("h", CountPlus, d1) 'смещаемся от базовой даты на CountPlus
'отрезков времени "h", т. е. часов
Loop Until (Weekday(dplus, vbMonday) = 7 And Abs(DateDiff("d", d1, dplus, vbMonday)) > 1)
'выход из цикла если новая дата это 7 день недели и не совпадает с введенной
'все аналогично, только отсчет ведется в другую сторону
Do
CountMinus = CountMinus + 1
dminus = DateAdd("h", -CountMinus, d1)
Loop Until (Weekday(dminus, vbMonday) = 7 And Abs(DateDiff("d", d1, dminus, vbMonday)) > 1)
'выводим дату воскресенья, до которого меньше часов
If CountPlus < CountMinus Then MsgBox "Ближайшее воскресенье - " & dplus Else MsgBox "Ближайшее воскресенье - " & dminus
Else
'это условие можно и убрать
MsgBox "Воскресенье - уже сегодня, все остальные - далеко"
End If
Dim text1 As String
Dim text2 As String
Dim tmp As String
Dim words() As String
Dim i As Long
Dim j As Long
Dim n As Long
text1 = InputBox("Сортировка слов", "Введите предложение", "девочка ела очень вкусную кашу! ")
words() = Split(Trim(text1), " ") 'разбили предложение на слова и поместили их в массив
n = UBound(words()) 'размер полученного массива
'сортируем пузырьковым методом
For i = 1 To n - 1
For j = n - 1 To i Step -1
'по первой букве по коду ascii
If Asc(Left(words(j), 1)) < Asc(Left(words(j - 1), 1)) Then
tmp = words(j)
words(j) = words(j - 1)
words(j - 1) = tmp
End If
Next j
Next i
'собрали строку из массива
text2 = Join(words(), " ")
MsgBox "Введенная строка: " & text1 + Chr(13) + "Отсортированная строка: " & text2
End Sub
Sub marina_date()
Dim d1 As Date 'Дата, относительно которой ведется поиск
Dim dplus As Date 'ближайша последующая дата (воскресение)
Dim dminus As Date 'Ближайшая предыдущая дата (воскресение)
Dim CountPlus As Long 'элемент для приращения даты
Dim CountMinus As Long 'элемент для приращения даты
CountPlus = 0
CountMinus = 0
d1 = InputBox("Поиск ближайшего воскресенья", "Укажите дату", Date)
'MsgBox "Введенный день недели - " & Weekday(d1, vbMonday) & Chr(13) & Date
If Weekday(d1, vbMonday) <> 7 Then ' если сегодня не воскресенье
Do
CountPlus = CountPlus + 1 '
dplus = DateAdd("h", CountPlus, d1) 'смещаемся от базовой даты на CountPlus
'отрезков времени "h", т. е. часов
Loop Until (Weekday(dplus, vbMonday) = 7 And Abs(DateDiff("d", d1, dplus, vbMonday)) > 1)
'выход из цикла если новая дата это 7 день недели и не совпадает с введенной
'все аналогично, только отсчет ведется в другую сторону
Do
CountMinus = CountMinus + 1
dminus = DateAdd("h", -CountMinus, d1)
Loop Until (Weekday(dminus, vbMonday) = 7 And Abs(DateDiff("d", d1, dminus, vbMonday)) > 1)
'выводим дату воскресенья, до которого меньше часов
If CountPlus < CountMinus Then MsgBox "Ближайшее воскресенье - " & dplus Else MsgBox "Ближайшее воскресенье - " & dminus
Else
'это условие можно и убрать
MsgBox "Воскресенье - уже сегодня, все остальные - далеко"
End If
Похожие вопросы
- помогите решить задачку, на VBA для Excel
- Помогите решить задачу на Турбо паскале
- Помогите решить задачу.
- Помогите решить задачу на программирование!
- Народ, слезно прошу помочь решить задачу по информатике (програмирование), я просто ноль в этом(((
- Помогите решить задачу на Basic
- Помогите решить задачи на Си! Пожалуйста!!!
- помогите решить задачи
- Помогите решить задачи по Паскалю
- Помогите решить задачу в паскале