Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2012, 14:17   #1
Shifler
Новичок
Джуниор
 
Регистрация: 22.04.2012
Сообщений: 1
По умолчанию Определить самые старые здания (Visual Basic.Net)

Имеется список 60-ти зданий города, подлежащих реконструкции. Сведения о каждом здании содержат название микрорайона, улицу, номер дома и год постройки. Составить алгоритм и программу определения самых старых зданий, подлежащих реконструкции. Сформировать списки, содержащие полные сведения об этих домах по микрорайонам. Если в микрорайоне таких домов нет, выдать соответствующее сообщение.

Подскажите пожалуйста, где ошибка
выводит только:
Бусиново:
Войковская,12,1890
Петрозаводская,15,1895
дальше микрорайоны (или года) не сравнивает...


Option Explicit On
Imports System.IO
Module Module1
Public A() As String 'массив из текстового файла
Public MicroRayon(), nMicroRayon(), Ulica() As String
Public God(), Ndoma() As Integer
Public n As Integer = -1
Public Result As String

'Процедура вывода строки
Sub vivod(ByVal M() As String, ByVal Lb As ListBox, ByVal k As Integer)
Dim i As Integer
For i = 0 To k
Lb.Items.Add(M(i))
Next i
End Sub

'процедура вывода строки , состоящей из целых чисел
Sub vivodInt(ByVal M() As Integer, ByVal Lb As ListBox, ByVal k As Integer)
Dim i As Integer
For i = 0 To k
Lb.Items.Add(M(i))
Next i
End Sub

'процедура вывода списков, содержащие сведения о домах
Sub vivod(ByVal Z As String, ByVal T As TextBox)
T.Text = CStr(Z)
End Sub

'процедура чтения из файла
Sub readfile(ByRef M() As String)
Dim OpenFiledialog1 As New OpenFileDialog
OpenFiledialog1.InitialDirectory = "C:\"
OpenFiledialog1.Filter = "Текстовые файлы (*.txt)|*.txt"
If OpenFiledialog1.ShowDialog() = System.Windows.Forms.DialogResult.O K Then
Try
FileOpen(1, OpenFiledialog1.FileName, OpenMode.Input)
Do Until EOF(1)
n = n + 1
ReDim Preserve A(n)
A(n) = LineInput(1)
Loop
Catch ex As Exception
MsgBox("Ошибка при чтении")
Finally
FileClose(1)
End Try
End If
End Sub

'процедура распределения частей строки из файла по Listbox
Sub sp(ByRef M() As String, ByRef MicroRayon() As String, ByRef Ulica() As String, _
ByRef Ndoma() As Integer, ByRef God() As Integer)
Dim i As Integer
Dim sved() As String
For i = 0 To n
sved = M(i).Split(CChar(","))
MicroRayon(i) = sved(0)
Ulica(i) = sved(1)
Ndoma(i) = CInt(sved(2))
God(i) = CInt(sved(3))
Next i
End Sub

'процедура сравнивающая микрорайоны
Sub unical(ByRef MicroRayon() As String, ByRef sved() As String)
Dim i, j, f, k As Integer
k = 0
nMicroRayon(k) = MicroRayon(0)
For i = 0 To UBound(MicroRayon) 'Цикл формирует массив MicroRayon(), который
'будет содержать уникальные названия районов (если какое-либо название будет
'повторятся, то в массив записыватся уже не будет).
f = 0
For j = 0 To k
If MicroRayon(i) = MicroRayon(j) Then ' MicroRayon(i)- строка, содержащая
'название текущего района.
f = 1
Exit For
End If
Next j

If f = 0 Then 'Название не повторяется, тогда:
k = k + 1
nMicroRayon(k) = MicroRayon(i)
End If
Next i
ReDim Preserve nMicroRayon(k)
End Sub

Sub Resh(ByRef MicroRayon() As String, ByRef Ulica() As String, ByRef Ndoma() As Integer, ByRef God() As Integer, _
ByRef nMicroRayon() As String, ByRef Result As String)
Dim mingod, j, k, i As Integer
Result = ""
For i = 0 To k
mingod = 2015
Result = Result + nMicroRayon(i) + ":" + vbNewLine ' Строка Result поочередно
'присваивается район
For j = 0 To UBound(MicroRayon)
If nMicroRayon(i) = MicroRayon(j) Then
If God(j) < mingod Then ' если год 2015 больше года сооружения,
'то запоминает год сооружения, далее сравнивает последующие
'года сооружения пока не выведет самые старые.
mingod = God(j)
k = j
End If
Result = Result + Ulica(j) + "," + CStr(Ndoma(j)) + "," + CStr(God(j)) + vbNewLine
'если названия j-го района совпадает с названием в ячейке MicroRayon(i), строка Result
'построчно запоминает сведения о зданиях в этом районе (улицу, номер дома, год сооружения
End If
Next j
Next i
End Sub
End Module
Вложения
Тип файла: rar Здания.rar (508 байт, 6 просмотров)
Shifler вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Visual C++, Visual C#, Visual basic .Net, или Microsoft.Net Что лучше? _PROGRAMM_ Общие вопросы .NET 14 10.10.2012 19:24
Литература по Visual Basic.NET ч1 arkadihard Помощь студентам 5 06.02.2012 10:57
Подключение .NET к Visual Basic papos Общие вопросы .NET 0 30.09.2010 09:01
Формы в visual basic.net Timon779 Общие вопросы .NET 1 08.07.2010 00:04