Sub Z178630()
Const Diapaz = 1000 ' Диапазон определения значений элементов массива от 0 до ...
Const FileIn = "D:\FileAll.txt" ' Файл с исходным сгенерированным массивом
Const FileOut = "D:\FileOut.txt" ' Файл с выходным массивом
Dim N As Long ' Число элементов массива
Dim EMax As Double ' Максимальеое значение элемента
DecD = Mid(CStr(5 / 3), 2, 1) ' Разделитель дробной части
N = CDbl(InputBox("Введите число элементов в массиве" + vbCrLf + "(целое, больше нуля)"))
ReDim Mass(N - 1) As Double
NFileIn = FreeFile ' Определяем ссылочный номер исходного сгенерированного файла
Open FileIn For Output As #NFileIn ' Открываем файл
CN = Len(CStr(N))
Zero = String(CN, "0") ' Строчка нулей для выравнивания номера элемента в файле
MinMass = Diapaz
MaxMass = 0
Randomize ' Initialize random-number generator.
For i = 0 To N - 1 ' Заполняем исходный массив случайными числами
Mass(i) = Diapaz * Rnd ' Generate random value between 0 and 1000.
If MinMass > Mass(i) Then MinMass = Mass(i) ' Минимум элем массива
If MaxMass < Mass(i) Then MaxMass = Mass(i) ' Максимум элем массива
Print #NFileIn, Right(Zero + CStr(i), CN) + " " + CStr(Mass(i)) ' Записываем номер элемента и его значение в файл
Next
Close #NFileIn
Mes = "Кол-во элементов в массиве= " + CStr(N) + vbCrLf
Mes = Mes + "Минимальный элемент= " + CStr(MinMass) + vbCrLf
Mes = Mes + "Максимальный элемент= " + CStr(MaxMass) + vbCrLf
Mes = Mes + "Введите число, больше которого будет удалён последний обнаруженный элемент "
ib = InputBox(Mes) ' ввод данного в символьном виде
ib = Replace(Replace(ib, ",", DecD), ".", DecD) ' приводим вводимое в строке число к правильному разделителю
EMax = CDbl(ib)
ii = N
For i = N - 1 To 0 Step -1 ' C конца массива ищем номер элемента значение которого более заданного числа
If Mass(i) > EMax Then
ii = i
Exit For
End If
Next
If ii = N Then
Mes = "Элемент > " + CStr(EMax) + " не найден" + vbCrLf
ReDim MassOut(N - 1) As Double
Else
Mes = "Номер последнего элемента > " + CStr(EMax) + " равен " + CStr(ii) + vbCrLf + vbCrLf
ReDim MassOut(N - 2) As Double
End If
NFileOut = FreeFile ' Определяем ссылочный номер файла
Open FileOut For Output As #NFileOut ' Открываем файл
For i = 0 To N - 1 ' Формируем выходной массив без удаляемого элемента (если элемент не существует, массивы совпадают)
If i <> ii Then
If i < ii Then k = i Else k = i - 1
MassOut(k) = Mass(i)
Print #NFileOut, Right(Zero + CStr(k), CN) + " " + CStr(MassOut(k)) ' Записываем номер элемента и его значение в файл
End If
Next
Close #NFileOut
MsgBox Mes + "массивы записаны в файлы" + vbCrLf + " сгенерированный " + FileIn + vbCrLf + " обработанный " + FileOut
End Sub
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.