Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 18

Составить алгоритм и программу определения самых старых зданий, подлежащих реконструкции

26.03.2011, 18:17. Показов 2342. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется список 60-ти зданий города, подлежащих реконструкции. Сведения о каждом здании содержат название микрорайона, улицу, номер дома и год постройки. Составить алгоритм и программу определения самых старых зданий, подлежащих реконструкции. Сформировать списки, содержащие полные сведения об этих домах по микрорайонам. Если в микрорайоне таких домов нет, выдать соответствующее сообщение.
реализация проекта: со стандартным модулем и двумя формами и вводом с клавиатуры,
Помогите или посоветуйте как сделать а то, даже плана решения нет
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.03.2011, 18:17
Ответы с готовыми решениями:

Вывести 10 самых старых сотрудников и 10 самых высокоплачиваемых
Здравствуйте, подскажите пожалуйста, у меня есть БД где написаны сотрудники предприятия с зарплатами, со стажет. Нужно вывести 10 самых...

Составить программу нахождения двух самых больших (самых маленьких) элементов массива
Нужно решить до завтрешнего утра (8:00 - 9:00 крайние сроки) Составить программу нахождения двух самых больших (самых маленьких)...

Вывести список самых новых и самых старых машин для каждой из стоянок,с указанием их владельцев и года выпуска
"В районном обществе автолюбителей имеются сведения об N автомобилях.О каждой машине известно:фамилия владельца,год выпуска и номер...

10
 Аватар для gitarillo
755 / 554 / 48
Регистрация: 17.06.2010
Сообщений: 1,041
Записей в блоге: 1
26.03.2011, 18:22
Toffinn,
Что у вас с названием темы?

Цитата Сообщение от Toffinn Посмотреть сообщение
Имеется список 60-ти зданий города, подлежащих реконструкции
Где имеется? В какой форме.
Цитата Сообщение от Toffinn Посмотреть сообщение
Помогите или посоветуйте как сделать
ИМХО использовать базы данных.
0
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 18
26.03.2011, 18:44  [ТС]
Нужно создать проект VB c двумя формамами и модулем, одна форма это двумерный массив состоящий из 60 строк-зданий и 4 столбцов-(микрорайон, улица, № дома, год постройки); вторая форма - два одномерных масива один список микрорайонов, другой года постройки самых старых домов в микрорайоне; ВОТ что вроде имеется ввиду, вопрос как это сделать..
0
 Аватар для gitarillo
755 / 554 / 48
Регистрация: 17.06.2010
Сообщений: 1,041
Записей в блоге: 1
26.03.2011, 19:52
Ну если все в массивах то не вижу проблем это организовать. В чем конкретно проблема. Сами пытались что-нибудь навалять?
0
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 18
26.03.2011, 20:24  [ТС]
как из первой формы из двоичного массива вытащить года и в сравнить,
попробую изобразить что-нибудь конкретное
0
0 / 0 / 0
Регистрация: 19.11.2011
Сообщений: 11
06.04.2012, 02:46
Имеется список 60-ти зданий города, подлежащих реконструкции. Сведения о каждом здании содержат название микрорайона, улицу, номер дома и год постройки. Составить алгоритм и программу определения самых старых зданий, подлежащих реконструкции. Сформировать списки, содержащие полные сведения об этих домах по микрорайонам. Если в микрорайоне таких домов нет, выдать соответствующее сообщение.
Подскажите пожалуйста алгоритм сортировки "самых старых зданий"
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
06.04.2012, 07:16
Мне видится это так. Для начала создаём свой пользовательский тип, и объявляем одномерный массив домов под снос с этим типом. Потом заполняем его.
Цитата Сообщение от Toffinn Посмотреть сообщение
и вводом с клавиатуры
Муторно с клавиатуры вводить 240 значений. Лучше бы было считать из файла.
Потом нужно отсортировать массив по годам по возрастанию или убыванию.
В общем начало положено.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Type Dom_pod_snos           ' Создаём пользовательский тип
        MicroRayon As String        ' Название микрорайона
        Uliza As String             ' Название улицы
        NomerDomaPoUlize As Integer ' Номер дома на улице
        GodPostroyki As Integer     ' Год постройки
End Type
 
Dim Dom(1 To 60) As Dom_pod_snos    'Массив Dom - это список домов под снос
Private Sub Command1_Click()
Dim i As Integer
       For i = 1 To UBound(Dom)
          Dom(i).MicroRayon = InputBox("Введите название микрорайона в котором находится дом под снос № " & i, "Ввод данных", " 1-й Нагорный")
          Dom(i).Uliza = InputBox("Введите название улицы на которой находится дом под снос № " & i, "Ввод данных", " Полтавская")
          Dom(i).NomerDomaPoUlize = InputBox("Введите номер дома под снос № " & i, "Ввод данных", 5)
          Dom(i).GodPostroyki = InputBox("Введите год постройки дома под снос № " & i, "Ввод данных", 1795)
       Next i
End Sub
1
0 / 0 / 0
Регистрация: 19.11.2011
Сообщений: 11
06.04.2012, 08:54
Спасибо, делаю через файл, но не получается отсортировать...
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
06.04.2012, 10:25
Типа так
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Option Explicit
 
Private Type Dom_pod_snos           ' Создаём пользовательский тип
        NomerPoSpisku  As Integer   ' Номер по списку
        MicroRayon As String        ' Название микрорайона
        Uliza As String             ' Название улицы
        NomerDomaPoUlize As Integer ' Номер дома на улице
        GodPostroyki As Integer     ' Год постройки
End Type
 
Dim Dom(1 To 60) As Dom_pod_snos    'Массив Dom - это список домов под снос
Dim PoGodam(1 To 60) As Integer
Private Sub Command2_Click() 'Чтение из файла
Dim i As Integer
On Error Resume Next
 Open App.Path + "\" + "11.txt" For Input As #1
   For i = 1 To UBound(Dom)
    Input #1, Dom(i).NomerPoSpisku
    Input #1, Dom(i).MicroRayon
    Input #1, Dom(i).Uliza
    Input #1, Dom(i).NomerDomaPoUlize
    Input #1, Dom(i).GodPostroyki
  Next i
 Close #1
 Pechat
End Sub
 
Sub Pechat()   '   Вывод на печать
List1.Clear
Dim i As Integer
  For i = 1 To UBound(Dom)
    List1.AddItem i & ".  " & "№ " & Dom(i).NomerPoSpisku & _
    ". Микрорайон  " & Dom(i).MicroRayon & _
    ", улица " & Dom(i).Uliza & _
    ", дом № " & Dom(i).NomerDomaPoUlize & " ,    " & _
    Dom(i).GodPostroyki & "  года постройки."
  Next i
End Sub
Private Sub Command4_Click()   '   Сортировка по годам
   Dim i As Integer, j As Integer, Tmp
       For i = 1 To UBound(Dom) Step 1
        For j = 1 To UBound(Dom) - i
            If Dom(j).GodPostroyki > Dom(j + 1#).GodPostroyki Then
            
              Tmp = Dom(j).GodPostroyki
                 Dom(j).GodPostroyki = Dom(j + 1#).GodPostroyki
              Dom(j + 1#).GodPostroyki = Tmp
            
              Tmp = Dom(j).MicroRayon
                 Dom(j).MicroRayon = Dom(j + 1#).MicroRayon
              Dom(j + 1#).MicroRayon = Tmp
              
              Tmp = Dom(j).NomerDomaPoUlize
                 Dom(j).NomerDomaPoUlize = Dom(j + 1#).NomerDomaPoUlize
              Dom(j + 1#).NomerDomaPoUlize = Tmp
              
              Tmp = Dom(j).Uliza
                 Dom(j).Uliza = Dom(j + 1#).Uliza
              Dom(j + 1#).Uliza = Tmp
              
              Tmp = Dom(j).NomerPoSpisku
                 Dom(j).NomerPoSpisku = Dom(j + 1#).NomerPoSpisku
              Dom(j + 1#).NomerPoSpisku = Tmp
              
            End If
        Next j
    Next i
Pechat
End Sub
Вложения
Тип файла: rar Cнос домов.rar (3.1 Кб, 22 просмотров)
1
0 / 0 / 0
Регистрация: 19.11.2011
Сообщений: 11
21.04.2012, 17:51
Имеется список 60-ти зданий города, подлежащих реконструкции. Сведения о каждом здании содержат название микрорайона, улицу, номер дома и год постройки. Составить алгоритм и программу определения самых старых зданий, подлежащих реконструкции. Сформировать списки, содержащие полные сведения об этих домах по микрорайонам. Если в микрорайоне таких домов нет, выдать соответствующее сообщение.

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


VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
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.OK 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) = nMicroRayon(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
 
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        readfile(A)
        ReDim MicroRayon(n), Ulica(n), Ndoma(n), God(n)
        sp(A, MicroRayon, Ulica, Ndoma, God) 'вызов процедуры распределения частей строки из файла по Listbox
        vivod(MicroRayon, ListBox1, n)
        vivod(Ulica, ListBox2, n)
        vivodInt(Ndoma, ListBox3, n)
        vivodInt(God, ListBox4, n)
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Form2.Show() ' показывается форма 2
        Me.Hide() ' закрывается форма1
    End Sub
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        End
    End Sub
End Class
 
Public Class Form2
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ReDim nMicroRayon(n)
        unical(MicroRayon, nMicroRayon)
        Resh(MicroRayon, Ulica, Ndoma, God, nMicroRayon, Result)
        vivod(Result, TextBox1)
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Form1.Show() 'показывается форма 1
        Me.Close() 'закрывается форма 2
    End Sub
 
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        End
    End Sub
End Class
Вложения
Тип файла: rar Здания.rar (508 байт, 24 просмотров)
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
21.04.2012, 17:59
К сожалению у меня нет Visual Studio
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.04.2012, 17:59
Помогаю со студенческими работами здесь

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

Написать алгоритм, составить блок-схему и отладить программу для определения суммы
Помогите, пожалуйста решить задачу. Нужно написать алгоритм, составить блок-схему и отладить программу для определения суммы...

Составить алгоритм и реализовать программу для определения на ЭВМ коэффициентов a0, a1, a2 аппроксимирующей функции
Помогите подредактировать код программы под вариант. У меня задание сделать алгоритм под этот вариант (см.скрин) У меня уже есть...

Составить программу,используя оператор Repeat.Составить программу для определения N!-M!,где N!=1*2*3...n.
Составить программу,используя оператор Repeat.Составить программу для определения N!-M!,где N!=1*2*3...n.

Выпадение из яндекса самых старых страниц
В начале октября Яндекс перестал индексировать самые старые страницы. У нас журналы и все статьи выкладываем целиком. Берем произвольную...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru