Допускается обработка исходной информации как текста.
Дано натуральное четырехзначное число. Определить, какая цифра
расположена левее – максимальная или минимальная
Другие языки программирования и технологии
Помогите пожалуйста написать функцию в VBA
Function MaxOrMinIsLeft(Number As Integer) As String
Dim NumberAsString As String
Dim minDigit As Integer, maxDigit As Integer, posMinDigit As Integer, posMaxDigit As Integer
Dim curDigit As Integer, curPos As Integer
If Number < 1000 Or Number > 9999 Then MaxOrMinIsLeft = "Неверное число": Exit Function
NumberAsString = Number
posMinDigit = 0
posMaxDigit = 0
For curPos = 1 To 4
curDigit = Int(Mid(NumberAsString, curPos, 1))
If curDigit < minDigit Or posMinDigit = 0 Then
minDigit = curDigit
posMinDigit = curPos
End If
If curDigit > maxDigit Or posMaxDigit = 0 Then
maxDigit = curDigit
posMaxDigit = curPos
End If
Next curPos
If posMinDigit < posMaxDigit Then
MaxOrMinIsLeft = "Минимальная"
ElseIf posMinDigit > posMaxDigit Then
MaxOrMinIsLeft = "Максимальная"
Else
MaxOrMinIsLeft = "Цифры равны"
End If
End Function
Function MaxMinLeft(number As Long) As String
' Объявляем переменные
Dim digits() As Long ' массив для записи значений цифр числа
Dim max_digit As Long
Dim min_digit As Long
' Заполняем массив digits
ReDim digits(3)
digits(0) = Int(number / 1000)
digits(1) = Int((number Mod 1000) / 100)
digits(2) = Int((number Mod 100) / 10)
digits(3) = number Mod 10
max_digit = digits(0)
min_digit = digits(0)
' Ищем максимальную и минимальную цифры
For i = 0 To UBound(digits)
If digits(i) > max_digit Then
max_digit = digits(i)
End If
If digits(i) < min_digit Then
min_digit = digits(i)
End If
Next i
' Сравниваем максимальную и минимальную цифры
If digits(0) = max_digit Then
MaxMinLeft = "Максимальная"
ElseIf digits(0) = min_digit Then
MaxMinLeft = "Минимальная"
End Function
' Объявляем переменные
Dim digits() As Long ' массив для записи значений цифр числа
Dim max_digit As Long
Dim min_digit As Long
' Заполняем массив digits
ReDim digits(3)
digits(0) = Int(number / 1000)
digits(1) = Int((number Mod 1000) / 100)
digits(2) = Int((number Mod 100) / 10)
digits(3) = number Mod 10
max_digit = digits(0)
min_digit = digits(0)
' Ищем максимальную и минимальную цифры
For i = 0 To UBound(digits)
If digits(i) > max_digit Then
max_digit = digits(i)
End If
If digits(i) < min_digit Then
min_digit = digits(i)
End If
Next i
' Сравниваем максимальную и минимальную цифры
If digits(0) = max_digit Then
MaxMinLeft = "Максимальная"
ElseIf digits(0) = min_digit Then
MaxMinLeft = "Минимальная"
End Function
Похожие вопросы
- может помочь мне написать программу на VBA? Благодарность не меньше 200р. Решение кубических уравнений!!!
- Есть ли у матриц A и B одинаковые строки? помогите пожалуйста! очень надо! в VBA
- Помогите пожалуйста построить прямоугольник в VBA (Excel). Как не пытаюсь-постоянно выдаются ошибки.
- Помогите пожалуйста написать программу в с++
- HTML! помогите пожалуйста написать код для сайта простого сайта!
- Помогите, пожалуйста, написать программу на делфи с ассемблерными вставками.
- Помогите, пожалуйста, написать программу на С++
- Помогите пожалуйста написать программу очень нужно!!!
- Привет всем! Помогите, пожалуйста, написать программу в C++.
- Помогите пожалуйста написать программу на C#