Помогите Решить Задачку

Тема в разделе "Visual Basic", создана пользователем Parenek, 29 фев 2012.

  1. Parenek

    Parenek Гость

    Здравствуйте! Передо мной встал вопрос о решении задачи в системе VBA. Но возникли трудности, я попросту не знаю как написать код и блок схему.

    Условие таковы:
    По результатам продажи жилья за полгода администрацией области получена следующая информация:

    Город: Кемерово
    Кол-во проданных квартир: 634
    Кол-во кв.м: 62800
    Сумма от продажи (тыс.руб) - 6781.70

    Напечатать исходные данные в виде таблицы и определить город, в котором стоимость 1 кв.метра минимальная.

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

    Добавлено через 15 часов 19 минут
    вот есть скрипт

    Код (LotusScript):
    Sub Пример()
    Dim N, i As Integer
    Dim G() As String
    Dim P() As Integer
    Dim K() As Single
    Dim S() As Single
    Dim Sr() As Single
    N = InputBox("количество обследуемых городов")
    ReDim G(N) As String
    ReDim P(N) As Integer
    ReDim K(N) As Single
    ReDim S(N) As Single
    ReDim Sr(N) As Single
    For i = 1 To N
    G(i) = InputBox("название города")
    P(i) = InputBox("количество проданных квартир в")
    K(i) = InputBox("количество кв. м.")
    S(i) = InputBox("Введите стоимость 1 кв.м в городе")
    Next
    For i = 1 To N
    Next
    Debug.Print "город"; Tab(30); "количество проданных квартир"; Tab(50); "количество кв. м."; Tab(70); "Стоимость 1 кв.м"
    For i = 1 To N
    Debug.Print G(i); Tab(30); P(i); Tab(50); K(i); Tab(70); S(i)
    Next
    End Sub
    Вот мне нужно сделать так, чтобы ниже таблицы выводилась самое маленькое значение S(i), а рядом название города. Подскажите пожалуйста как это реализовать!?
     
  2. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    гуглите нахождение минимального элемента массива на vb
     
  3. Parenek

    Parenek Гость

    ну найти на нашел,

    Код (Text):
    Dim a(10) As Integer ' Описываем массив из 10 элементов
    Dim min As Integer ' min - это минимальное число массива

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    For i = 1 To 10
    a(i) = Fix(Rnd() * 100) ' Задаем массив случайным образом, числами от 1 до 99
    Next

    min = 9999999 ' Значение min должно быть максимально возможным
    For i = 1 To 10
    If a(i) < min Then min = a(i) ' Сравниваем каждый элемент массива с min. Если он меньше, то min равен данному элементу
    Next

    MsgBox("Минимум равен: " & min) ' Выводим сообщение с минимальным числом
    End Sub
    End Class
    но проблема в том как связать это все с моим условием. и правильно ли оно вообще :(
    Не могли бы Вы показать примерною структуру?
     
  4. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
     
  5. Parenek

    Parenek Гость

    сПАСИБО)))))
    Очень помогли!
    И еще такой вопросик, как посчитать общую сумму столбца в VBA

    Вот есть скрипт.
    Но он неправильный. Т.е нужно посчтитать общую сумму в столбце Количество видов. Переменная G(i)

    Код (LotusScript):
    Sub Пример()
    Dim N, i As Integer
    Dim G() As Integer
    Dim P() As Integer
    Dim Z() As String
    Dim R() As String
    Dim O() As Single
    Dim Oi() As Single
    N = InputBox("кол-во наименований товара")
    ReDim G(N) As Integer
    ReDim P(N) As Integer
    ReDim Z(N) As String
    ReDim R(N) As String
    ReDim O(N) As Single
    ReDim Oi(N) As Single
    For i = 1 To N
    Z(i) = InputBox("название")
    G(i) = InputBox("кол-во видов")
    P(i) = InputBox("импортируемых")
    Next
    For i = 1 To N
    Oi(i) = G(i)
    Oi(i) = P(i) + P(i)
    Next
    Debug.Print "товар"; Tab(30); "кол-во видов"; Tab(50); "импортируемых"
    For i = 1 To N
    Debug.Print Z(i); Tab(30); G(i); Tab(50); P(i)
    Next
    For i = 1 To 1
    Debug.Print "Общая сумма столбца", O(i)
    Next
    End Sub
    Помогите пожалуйста... С меня пивко))
     
  6. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    просто просуммировать и вывести сумму можно так
    Код (LotusScript):
    Dim Sum as Integer
    Sum = 0
    For i = 1 To N
    Sum = Sum + G(i)
    Next
    Debug.Print "Общая сумма столбца", Sum
    Если есть подозрение, что в Sum as Integer может переполнение, напишите Dim Sum As Single
    Еще вот это непонятно что делает:
    Код (LotusScript):
    For i = 1 To N
    Oi(i) = G(i)
    Oi(i) = P(i) + P(i)
    Next
    там опечатка, что ли?
    И не надо вообще циклов писать таких - смешно же
    Код (LotusScript):
    For i = 1 To 1
    Debug.Print "Общая сумма столбца", O(i)
    Next
     
  7. Parenek

    Parenek Гость

    Вот вывел как вы показали

    Код (LotusScript):
    Dim Sum As Integer
    Sum = 0
    For i = 1 To N
    Sum = Sum + G(i)
    Next
    For i = 1 To N
    Z(i) = InputBox("название товара")
    G(i) = InputBox("количество видов")
    P(i) = InputBox("из них импортых")
    Next
    Debug.Print "товар"; Tab(30); "количество видов"; Tab(50); "из них ипортных"
    For i = 1 To N
    Debug.Print Z(i); Tab(30); G(i); Tab(50); P(i)
    Next
    Debug.Print "Общая сумма столбца", Sum
    End Sub
    Но пи выводе просто выводит :

    Общая сумма столбца 0

    Хотя указывал значения G(I) 25 и 23

    В чем ошибочка? Мож не туда вставил?
     
  8. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    да, не туда :) это круто - сумму считать до того, как вводим значения (для справки - вводится в цикле тут: G(i) = InputBox("количество видов") )
     
Загрузка...
Похожие Темы - Помогите Решить Задачку
  1. darklisa
    Ответов:
    3
    Просмотров:
    1.784
  2. mrx13
    Ответов:
    8
    Просмотров:
    257
  3. kuklofon
    Ответов:
    9
    Просмотров:
    573
  4. GREED
    Ответов:
    1
    Просмотров:
    532
  5. vovanabali
    Ответов:
    0
    Просмотров:
    531

Поделиться этой страницей