Главная Обратная связь

Дисциплины:






Прогноз наводнения по погодным условиям



(Практическая работа №6)

Цели :

1. Закрепить теоретический материал

2. Приобрести практические навыки

Задания:

1.Написать процедуру для прогноза возможности наводнения по простым признакам

2. Написать процедуру для прогноза возможности наводнения по составным признакам

3. Написать процедуру для прогноза возможности наводнения по следующим признакам (известно, что температура выше нуля):

Таблица 3.17

прогноз наводнения

А признак ливневый дождь
В признак обильное таяние снега
С признак заторы при ледоходе

Таблица 3.18

Сценарии развития ситуации на реке

Номер сценария Количество признаков Описание
благоприятная обстановка
малое наводнение
высокое наводнение
большое наводнение

 

Алгоритм прогноза:

 

Рис.3.27 «Алгоритм прогноза»

Код программы:

Function Rain() As Integer

Dim p As Byte

p = MsgBox("ливневый дождь", vbYesNo, "Опрос")

If p = vbYes Then Rain = 1

End Function

Function Snow() As Integer

Dim p As Byte

p = MsgBox("обильное таяние снега", vbYesNo, "Опрос")

If p = vbYes Then Snow = 1

End Function

Function Ice() As Integer

Dim p As Byte

p = MsgBox("заторы при ледоходе", vbYesNo, "Опрос")

If p = vbYes Then Ice = 1

End Function

Private Sub Command1_Click()

Dim j As Integer

j = Rain() + Snow() + Ice()

Select Case j

Case 0: Label1.Caption = "благоприятная обстановка"

Case 1: Label1.Caption = "малое наводнение"

Case 2: Label1.Caption = "высокое наводнение"

Case 3: Label1.Caption = "большое наводнение"

End Select

End Sub

Таблица 3.19

прогноз наводнения

признак A оттепель & ливневый дождь
признак B оттепель & снежная зима
признак C внезапная оттепель & холодная зима

Комментарии:

1. Сочетание условий оттепель & ливневый дождь является причиной возникновения паводка.

2. Сочетание условий оттепель & снежная зима является причиной возникновения половодья.

3. Сочетание условий внезапная оттепель & холодная зима является причиной возникновения ледяных заторов.

4. Если оттепель = False, то внезапная оттепель = False.

 

Алгоритм прогноза:

ЕСЛИ оттепель = да ТО

ливневый дождь: да/ нет

снежная зима: да/ нет

ЕСЛИ внезапная оттепель = да ТО

холодная зима: да/ нет

Код программы:

Function Thaw() As Boolean

Dim p As Byte

p = MsgBox("оттепель", vbYesNo, "Опрос")



If p = vbYes Then Thaw = True

End Function

Function SuddenThaw() As Boolean

Dim p As Byte

p = MsgBox("внезапная оттепель", vbYesNo, "Опрос")

If p = vbYes Then SuddenThaw = True

End Function

Function Rain() As Integer

Dim p As Byte

p = MsgBox("ливневый дождь", vbYesNo, "Опрос")

If p = vbYes Then Rain = 1

End Function

Function SnowWinter() As Integer

Dim p As Byte

p = MsgBox("снежная зима", vbYesNo, "Опрос")

If p = vbYes Then SnowWinter = 1

End Function

Function ColdWinter() As Integer

Dim p As Byte

p = MsgBox("холодная зима", vbYesNo, "Опрос")

If p = vbYes Then ColdWinter = 1

End Function

Private Sub Command1_Click()

Dim j As Integer

If Thaw() Then

j = Rain() + SnowWinter()

If SuddenThaw() Then

j = j + ColdWinter()

End If

End If

Select Case j

Case 0: Label1.Caption = "благоприятная обстановка"

Case 1: Label1.Caption = "малое наводнение"

Case 2: Label1.Caption = "высокое наводнение"

Case 3: Label1.Caption = "большое наводнение"

End Select

End Sub

Таблица 3.20

детальный прогноз наводнения

признак A высокий уровень воды в реке
признак B ливневый дождь
признак C среднесуточная температура >3°С & много снега

 

Таблица 3.21

Сценарии развития ситуации на реке

Номер сценария Признаки Описание
none благоприятная обстановка
A усилить внимание
B угроза паводка
C угроза половодья
B & C угроза большого наводнения
A & B угроза большого паводка
A & С угроза большого половодья
A & B & С угроза катастрофического наводнения

 

Комментарий:

Сочетание условий среднесуточная температура >3°С & много снега является причиной возникновения обильного таяния снега.

Код программы:

Function River() As Boolean

Dim p As Byte

p = MsgBox("высокий уровень воды в реке", vbYesNo, "Опрос")

If p = vbYes Then River = True

End Function

Function Rain() As Boolean

Dim p As Byte

p = MsgBox("ливневый дождь", vbYesNo, "Опрос")

If p = vbYes Then Rain = True

End Function

Function Snow() As Boolean

Dim p As Byte, q As Byte

p = MsgBox("температура > 3", vbYesNo, "Опрос")

If p = vbYes Then

q = MsgBox("много снега", vbYesNo, "Опрос")

If q = vbYes Then Snow = True

End If

End Function

Private Sub Command1_Click()

Dim A As Boolean, B As Boolean, C As Boolean

A = River()

B = Rain()

C = Snow()

If A And B And C Then

Label1.Caption = "угроза катастрофического наводнения"

ElseIf A And C Then

Label1.Caption = "угроза большого половодья"

ElseIf A And B Then

Label1.Caption = "угроза большого паводка"

ElseIf B And C Then

Label1.Caption = "угроза большого наводнения"

ElseIf C Then

Label1.Caption = "угроза половодья"

ElseIf B Then

Label1.Caption = "угроза паводка"

ElseIf A Then

Label1.Caption = "усилить внимание"

Else

Label1.Caption = "благоприятная обстановка"

End If

End Sub

 





sdamzavas.net - 2019 год. Все права принадлежат их авторам! В случае нарушение авторского права, обращайтесь по форме обратной связи...