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

  • Автор темы Parenek
  • Дата начала
P

Parenek

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

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

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

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

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

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

Код:
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), а рядом название города. Подскажите пожалуйста как это реализовать!?
 
P

Parenek

Гость
#3
ну найти на нашел,

Код:
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
но проблема в том как связать это все с моим условием. и правильно ли оно вообще :(
Не могли бы Вы показать примерною структуру?
 
P

Parenek

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

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

Код:
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
Помогите пожалуйста... С меня пивко))
 

hosm

* so what *
18.05.2009
2 442
9
42
Kiev, Ukraine
#6
просто просуммировать и вывести сумму можно так
Код:
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
Еще вот это непонятно что делает:
Код:
For i = 1 To N
Oi(i) = G(i)
Oi(i) = P(i) + P(i)
Next
там опечатка, что ли?
И не надо вообще циклов писать таких - смешно же
Код:
For i = 1 To 1
Debug.Print "Общая сумма столбца", O(i)
Next
 
P

Parenek

Гость
#7
Вот вывел как вы показали

Код:
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

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

hosm

* so what *
18.05.2009
2 442
9
42
Kiev, Ukraine
#8
да, не туда :) это круто - сумму считать до того, как вводим значения (для справки - вводится в цикле тут: G(i) = InputBox("количество видов") )