Показать сообщение отдельно
Старый 08.04.2012, 19:31   #1 (permalink)
Vans
Новичок
 
Регистрация: 08.04.2012
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Составить программу, определяющую самые старые здания (Visual Basic.Net)

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

Помогите пожалуйста доработать программу

Вот мои наработки:

Module Module1
Public A() As String 'массив из текстового файла
Public MicroRayon(), nMicroRayon(), Ulica(), nUlica() As String
Public Ndoma(), God(), nNdoma(), nGod() As Integer
Public n As Integer = -1
Public t As Integer = -1
Public z As Integer
Public b() 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
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
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.OK Then
Try
FileOpen(1, OpenFiledialog1.FileName, OpenMode.Input)
Do While Not EOF(1)
n = n + 1
ReDim Preserve A(n)
A(n) = LineInput(1)
Loop
FileClose(1)
Catch ex As Exception
MsgBox("Ошибка при чтении")
End Try
End If
End Sub

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

'Процедуры решения задачи
Sub unical(ByRef c() As String, ByRef b() As String)
Dim i, j, k, f As Integer
z = c.Length - 1
b(0) = c(0)
k = 0
For i = 1 To z
f = 0
For j = 0 To k
If c(i) = b(j) Then f = 1
Exit For
Next j
If f = 0 Then k = k + 1
b(k) = c(i)
Next i
ReDim Preserve b(k)
End Sub

Sub sort(ByVal MicroRayon() As String, ByVal Ulica() As String, ByVal Ndoma() As Integer, ByVal God() As Integer, _
ByRef nMicroRayon() As String, ByRef nUlica() As String, ByRef nNdoma() As Integer, ByRef nGod() As Integer, ByRef b() As String)
Dim j, k, mingod As Integer
For i = 0 To k - 1
mingod = 2015
For j = 0 To k - 1
If MicroRayon(i) = MicroRayon(j) Then
If God(j) < mingod Then
mingod = God(j)
k = j
ReDim Preserve nMicroRayon(t), nUlica(t), nNdoma(t), nGod(t)
nMicroRayon(t) = MicroRayon(j)
nUlica(t) = Ulica(j)
nNdoma(t) = Ndoma(j)
nGod(t) = God(j)
End If
End If
Next
Next
End Sub
End Module
Vans вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070