08.04.2012, 19:31 | #1 (permalink) |
Новичок
Регистрация: 08.04.2012
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Составить программу, определяющую самые старые здания (Visual Basic.Net)
(Нужно создать модуль и 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 |
08.04.2012, 19:31 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
В похожих темах обычно много интересных советов Задача на массивы в Visual Basic Задача в Visual Basic Создание программ в среде Visual Basic 6.0 Задача по Visual Basic Помощь с Visual Basic |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|