Имеется массив состоящий из трех столбцов: "Наименование", "минимальное значение", "максимальное значение".
Задается диапазон чисел, необходимо вывести все наименования массивов значения которых лежат в пределах диапазона.
Пока сделал так, см. код ниже.
Но, думаю, есть другие подходы для решения данной задачи.
Т.к. если прописывать все варианты в условии код будет не оптимальным.
Задается диапазон чисел, необходимо вывести все наименования массивов значения которых лежат в пределах диапазона.
Пока сделал так, см. код ниже.
Но, думаю, есть другие подходы для решения данной задачи.
Т.к. если прописывать все варианты в условии код будет не оптимальным.
Код:
#include <Array.au3>
Dim $TCM = [["ТСМ 20/0+5-12", 5, 12], _
["ТСМ 30/0+13-23", 13, 23], _
["ТСМ 40/0+23-33", 23, 33], _
["ТСМ 60/0+34-51", 34, 51], _
["ТСМ 90/0+52-78", 52, 78], _
["ТСМ 120/0+79-99", 79, 99]]
;_ArrayDisplay($TCM)
$dn = 13
$dk = 50
For $i = 0 To UBound($TCM) - 1
If $dn >= $TCM[$i][1] And $dn <= $TCM[$i][2] And $dk <= $TCM[$i][2] Then
ConsoleWrite($dn & "-" & $dk & ":" & @TAB & $TCM[$i][0] & @CRLF)
ExitLoop
ElseIf $dn >= $TCM[$i][1] And $dn <= $TCM[$i][2] And $dk > $TCM[$i][2] And $dk <= $TCM[$i+1][2] Then
ConsoleWrite($dn & "-" & $dk & ":" & @TAB & $TCM[$i][0] & " и " & $TCM[$i+1][0] & @CRLF)
ExitLoop
ElseIf $dn >= $TCM[$i][1] And $dn <= $TCM[$i][2] And $dk > $TCM[$i][2] And $dk > $TCM[$i+1][2] And $dk <= $TCM[$i+2][2] Then
ConsoleWrite($dn & "-" & $dk & ":" & @TAB & $TCM[$i][0] & " и " & $TCM[$i+1][0] & " и " & $TCM[$i+2][0] & @CRLF)
ExitLoop
EndIf
Next