Перечисляемый тип - Visual Basic .NET
Формулировка задачи:
Определить перечисляемый тип для планет. Объявить и использовать массив для записи данных о массе планет. Найти первые три планеты с наибольшей массой. Как вывести на экран первые три планеты с наибольшей массой?
Листинг программы
- Module Module1
- 'Объявление перечисляемого типа для типа планет
- Enum ТипПланет
- Венера = 0
- Земля = 1
- Луна = 2
- Марс = 3
- Меркурий = 4
- Нептун = 5
- Плутон = 6
- Сатурн = 7
- Уран = 8
- Юпитер = 9
- End Enum
- Sub Main()
- 'Объявление строковых констант для сообщений
- Const СтрокаВыйти As String = "выйти из программы - любая другая клавиша."
- Const СтрокаОшибка As String = ControlChars.CrLf & "Ошибка: "
- Const СообщениеПовторить As String = ControlChars.CrLf &
- "Если вы хотите повторить ввод значения " &
- "нажмите клавишу (п), " & СтрокаВыйти
- Const СообщениеПродолжить As String = ControlChars.CrLf &
- "Если вы хотите продолжить работу " &
- "нажмите клавишу (д), " & СтрокаВыйти
- 'Объявление массива для хранения и записи данных о массе планет
- Dim МассаПланет(ТипПланет.Юпитер) As Single
- Dim Планета As ТипПланет
- Dim max As Double
- '1. Ввод массы планет
- Do
- For Планета = ТипПланет.Венера To ТипПланет.Юпитер
- Do
- Try
- Console.Write("Введите массу планеты {0}: ", Планета)
- МассаПланет(Планета) = Console.ReadLine()
- Exit Do
- Catch ex As Exception
- Console.WriteLine(СтрокаОшибка & ex.Message & СообщениеПовторить)
- If Console.ReadKey(True).Key <> ConsoleKey.G Then Exit Sub
- End Try
- Loop
- Next
- '2. Определение первых трех планет с наибольшой массой
- max = 0
- For Планета = ТипПланет.Венера To ТипПланет.Юпитер
- If МассаПланет(ТипПланет.Венера) > max Then max = МассаПланет(ТипПланет.Венера)
- Next
- '3. Печать первых трех планет с наибольшой массой на экран
- Console.WriteLine()
- For Планета = ТипПланет.Венера To ТипПланет.Юпитер
- Console.WriteLine("Первые три планеты с наибольшей массой: {0}", Планета)
- Next
- Console.WriteLine(СообщениеПродолжить)
- Loop While Console.ReadKey(True).Key = ConsoleKey.L
- End Sub
- End Module
Решение задачи: «Перечисляемый тип»
textual
Листинг программы
- 'по умолчанию это и будет 0,1,2,...,9
- Enum ТипПланет
- Венера
- Земля
- Луна
- Марс
- Меркурий
- Нептун
- Плутон
- Сатурн
- Уран
- Юпитер
- End Enum
- '…
- Dim NamesP() As String = [Enum].GetNames(GetType(ТипПланет))
- Dim weightP(NamesP.Length - 1) As Double
- For i = 0 To NamesP.Length - 1
- 'вводим для NamesP(i) значение weightP(i)
- Next
- 'сортируем по возрастанию
- Array.Sort(Of Double, String)(weightP, NamesP)
- 'выводим три с наибольшей массой
- Console.WriteLine("Первые три планеты с наибольшей массой")
- For i = NamesP.Length - 1 To NamesP.Length - 4 Step -1
- Console.WriteLine("{0}, {1}", NamesP(i), weightP(i))
- Next
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д