Программа должна вывести список из трёх наиболее популярных задач с указанием количества запросов по ним - VB

Узнай цену своей работы

Формулировка задачи:

На автозаправочных станциях (АЗС) продается бензин с маркировкой 92, 95 и 98. В городе N был проведен мониторинг цены бензина на различных АЗС. Надо написать эффективную по времени работы и по используемой памяти программу, которая будет определять для каждого вида бензина, сколько АЗС продают его дешевле всего. На вход программе в первой строке подается число данных о стоимости бензина. В каждой из последующих N строк находится информация в следующем формате: <Компания><Улица><Марка><Цена> где <Компания> – строка, состоящая не более, чем из 20 символов без пробелов, <Улица> – строка, состоящая не более, чем из 20 символов без пробелов, <Марка> – одно из чисел – 92, 95 или 98, <Цена> – целое число в диапазоне от 1000 до 3000, обозначающее стоимость одного литра бензина в копейках. <Компания> и <Улица>, <Улица> и <Марка>, а также <Марка> и <цена>разделены ровно одним пробелом. Пример входной строки: Синойл Цветочная 95 2250 Программа должна выводить через пробел 3 числа – количество АЗС, продающих дешевле всего 92-й, 95-й и 98-й бензин соответственно. Если бензин какой-то марки нигде не продавался, то следует вывести 0. Пример выходных данных: 12 1 0

Решение задачи: «Программа должна вывести список из трёх наиболее популярных задач с указанием количества запросов по ним»

textual
Листинг программы
Sub main()
 
Dim m As String, a(100, 3) As String, j As Integer, i As Integer, price As String, p, z As Integer, st As Integer, dt As Integer, ft As Integer
 
price = InputBox("Введите цену(в копейках) на АИ-92, 95, 98 через пробел соответственно", "", "2750 2875 2940")
 
Dim countM As Integer
countM = -1
p = Split(price, " ")
 
z = -1
Do
    m = InputBox("<Компания> <Улица> <Марка> <Цена>", "Данные о АЗС", "Лукойл Акскаково 95 2250")
 
Dim inpArray
    inpArray = Split(m, " ")
    countM = countM + 1
    z = z + 1
For i = 0 To 3
    a(z, i) = inpArray(i)
Next
 
v = MsgBox("Добавить АЗС?", vbYesNo)
Loop While v = vbYes
 
    
 For i = 0 To z
    If (a(i, 2) = 92) And (a(i, 3) < p(0)) Then
        st = st + 1
    ElseIf (a(i, 2) = 95) And (a(i, 3) < p(1)) Then
        dt = dt + 1
    ElseIf (a(i, 2) = 98) And (a(i, 3) < p(2)) Then
        ft = ft + 1
    End If
 
Next i
MsgBox "Количество АЗС, продающих дешевле всего 92-й, 95-й и 98-й бензин соответственно" & vbCr & st & " " & dt & " " & ft
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.733 из 5
Похожие ответы