Другие языки программирования и технологии
Нужно СРОЧНО написать программу в Visual Basic!!!!Помогите, пожалуйста!!!
Дан список из Н окладов сотрудников. Вчислить наименьший из окладов, который больше 10.000. Программу надо написать с циклом параметра и предусловием.
Private Sub view_Click()
Dim i, k, n, min10 As Integer 'Объявление переменных целочисленного типа
Dim P As String 'Объявление переменных строкового типа
Dim x(), y() As Integer 'Объявление двух одномерных массивов целочисленного типа и резервирование памяти под них
tb1 = "" 'Присвоение текстовому окну для отображения окладов пустого значения
tb2 = "" 'Присвоение текстовому окну для отображения минимального оклада большего 10000 окладов пустого значения
n = 0 'Присвоение переменной количества окладов начального значения
Open "List.txt" For Input As #1 'Открытие текстового файла со списком окладов для чтения информации с него
'Чтение файла до конца
Do While Not EOF(1)
Line Input #1, P 'Присвоение переменной текущего значения в строке
tb1 = tb1 + P + vbCrLf 'Вывод строкового значения на экран в окне списка и переход на новую строку
n = n + 1 'Присвоение переменной количества окладов нового значения
Loop
Close #1 'Закрытие файла от чтения с него
ReDim x(n) 'Переопределение массива окладов до размерности, вычисленной из списка
Open "List.txt" For Input As #1
i = 0 'Присвоение текущему порядковому номеру начального значения
'Запись массив окладов по порядку их считывания из файла списка
Do While Not EOF(1)
Line Input #1, P
i = i + 1 'Присвоение текущему порядковому номеру следующего значения
x(i) = Val(P) 'Перевод текстового значения в числовое и присвоение его элементу массива
Loop
Close #1
k = 0 'Присвоение переменной количества окладов >10000 исходного значения
'Определение количества окладов >10000
For i = 1 To n
If x(i) > 10000 Then k = k + 1
Next i
ReDim y(k) 'Переопределение массива разниц окладов и нижнего требуемого предела
k = 0
For i = 1 To n
If x(i) > 10000 Then 'Если оклад >10000, тогда
k = k + 1 'Присвоение номеру элемента в массиве нового значения
y(k) = x(i) - 10000 'Запись разницы этого оклада и требуемого нижнего предела в массив
End If
Next i
min10 = y(1) 'Присвоение переменной минимальной разницы первого значения массива разниц
'Сравнение минимального значения со всеми оставшимися элементами массива и нахождение истинного минимального
For i = 2 To k
'Если значение массива меньше минимального начального, то значение элемента берём за минимальный
If y(i) < min10 Then min10 = y(i)
Next i
tb2 = min10 + 10000 'Вывод в текстовое окно мининального оклада >10000
'Текстовое окно tb1 должно иметь свойства принимать много строк и вертикальную прокрутку
End Sub
Dim i, k, n, min10 As Integer 'Объявление переменных целочисленного типа
Dim P As String 'Объявление переменных строкового типа
Dim x(), y() As Integer 'Объявление двух одномерных массивов целочисленного типа и резервирование памяти под них
tb1 = "" 'Присвоение текстовому окну для отображения окладов пустого значения
tb2 = "" 'Присвоение текстовому окну для отображения минимального оклада большего 10000 окладов пустого значения
n = 0 'Присвоение переменной количества окладов начального значения
Open "List.txt" For Input As #1 'Открытие текстового файла со списком окладов для чтения информации с него
'Чтение файла до конца
Do While Not EOF(1)
Line Input #1, P 'Присвоение переменной текущего значения в строке
tb1 = tb1 + P + vbCrLf 'Вывод строкового значения на экран в окне списка и переход на новую строку
n = n + 1 'Присвоение переменной количества окладов нового значения
Loop
Close #1 'Закрытие файла от чтения с него
ReDim x(n) 'Переопределение массива окладов до размерности, вычисленной из списка
Open "List.txt" For Input As #1
i = 0 'Присвоение текущему порядковому номеру начального значения
'Запись массив окладов по порядку их считывания из файла списка
Do While Not EOF(1)
Line Input #1, P
i = i + 1 'Присвоение текущему порядковому номеру следующего значения
x(i) = Val(P) 'Перевод текстового значения в числовое и присвоение его элементу массива
Loop
Close #1
k = 0 'Присвоение переменной количества окладов >10000 исходного значения
'Определение количества окладов >10000
For i = 1 To n
If x(i) > 10000 Then k = k + 1
Next i
ReDim y(k) 'Переопределение массива разниц окладов и нижнего требуемого предела
k = 0
For i = 1 To n
If x(i) > 10000 Then 'Если оклад >10000, тогда
k = k + 1 'Присвоение номеру элемента в массиве нового значения
y(k) = x(i) - 10000 'Запись разницы этого оклада и требуемого нижнего предела в массив
End If
Next i
min10 = y(1) 'Присвоение переменной минимальной разницы первого значения массива разниц
'Сравнение минимального значения со всеми оставшимися элементами массива и нахождение истинного минимального
For i = 2 To k
'Если значение массива меньше минимального начального, то значение элемента берём за минимальный
If y(i) < min10 Then min10 = y(i)
Next i
tb2 = min10 + 10000 'Вывод в текстовое окно мининального оклада >10000
'Текстовое окно tb1 должно иметь свойства принимать много строк и вертикальную прокрутку
End Sub
Private Sub Command1_Click()
Command2.Enabled = True
ListView1.ListItems.Clear
For i = 1 To 3
Image1(i).Visible = False
Next i
Label3(0).Visible = False
For i = 4 To 6
Label3(i).Visible = False
Next i
i = 0
F = FreeFile
Open Text1.Text For Input As F
Do Until EOF(F)
Line Input #F, L
i = i + 1
ListView1.ListItems.Add i, , L, 1, 1
Loop
Close F
Label4.Caption = "Количество окладов H =" + Str(i)
End Sub
Private Sub Command2_Click()
ReDim M(1000)
ReDim S(1000)
If ListView1.ListItems.Count > 0 Then
For i = 1 To ListView1.ListItems.Count
If Val(ListView1.ListItems.Item(i).Text) > 10000 Then
ListView1.ListItems.Item(i).SmallIcon = 2
j = j + 1
M(j) = Val(ListView1.ListItems.Item(i).Text)
S(j) = i
End If
Next i
Min = 1
For i = 2 To j
If M(i) < M(Min) Then Min = i
Next i
For i = 1 To 3
Image1(i).Visible = True
Next i
Label3(0).Visible = True
For i = 4 To 6
Label3(i).Visible = True
Next i
Label3(0).Caption = "Наименьший из окладов, который больше 10000 =" + Str(M(Min)) + Chr(13) + Chr(10) + "находится на " + Str(S(Min)) + "-й строке. "
ListView1.ListItems.Item(S(Min)).SmallIcon = 3
End If
End Sub
Private Sub Command3_Click()
CommonDialog1.ShowOpen
If CommonDialog1.FileName <> "" Then Text1.Text = CommonDialog1.FileName
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = 112 Then Command1_Click
If KeyCode = 113 Then Command2_Click
End Sub
Private Sub Form_Load()
Caption = App.EXEName
Text1.Text = App.Path + "\" + App.EXEName + ".txt"
CommonDialog1.InitDir = App.Path
CommonDialog1.Filter = "Текстовые файлы (*.txt)|*.txt|Все файлы (*.*)|*.*"
ImageList1.ListImages.Add 3, , LoadPicture(App.Path + "\POINT04.ICO")
For i = 1 To 3
Image1(i).Picture = ImageList1.ListImages(i).Picture
Next i
End Sub
Private Sub Form_Resize()
ListView1.Height = Height * 0.85
End Sub
Command2.Enabled = True
ListView1.ListItems.Clear
For i = 1 To 3
Image1(i).Visible = False
Next i
Label3(0).Visible = False
For i = 4 To 6
Label3(i).Visible = False
Next i
i = 0
F = FreeFile
Open Text1.Text For Input As F
Do Until EOF(F)
Line Input #F, L
i = i + 1
ListView1.ListItems.Add i, , L, 1, 1
Loop
Close F
Label4.Caption = "Количество окладов H =" + Str(i)
End Sub
Private Sub Command2_Click()
ReDim M(1000)
ReDim S(1000)
If ListView1.ListItems.Count > 0 Then
For i = 1 To ListView1.ListItems.Count
If Val(ListView1.ListItems.Item(i).Text) > 10000 Then
ListView1.ListItems.Item(i).SmallIcon = 2
j = j + 1
M(j) = Val(ListView1.ListItems.Item(i).Text)
S(j) = i
End If
Next i
Min = 1
For i = 2 To j
If M(i) < M(Min) Then Min = i
Next i
For i = 1 To 3
Image1(i).Visible = True
Next i
Label3(0).Visible = True
For i = 4 To 6
Label3(i).Visible = True
Next i
Label3(0).Caption = "Наименьший из окладов, который больше 10000 =" + Str(M(Min)) + Chr(13) + Chr(10) + "находится на " + Str(S(Min)) + "-й строке. "
ListView1.ListItems.Item(S(Min)).SmallIcon = 3
End If
End Sub
Private Sub Command3_Click()
CommonDialog1.ShowOpen
If CommonDialog1.FileName <> "" Then Text1.Text = CommonDialog1.FileName
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = 112 Then Command1_Click
If KeyCode = 113 Then Command2_Click
End Sub
Private Sub Form_Load()
Caption = App.EXEName
Text1.Text = App.Path + "\" + App.EXEName + ".txt"
CommonDialog1.InitDir = App.Path
CommonDialog1.Filter = "Текстовые файлы (*.txt)|*.txt|Все файлы (*.*)|*.*"
ImageList1.ListImages.Add 3, , LoadPicture(App.Path + "\POINT04.ICO")
For i = 1 To 3
Image1(i).Picture = ImageList1.ListImages(i).Picture
Next i
End Sub
Private Sub Form_Resize()
ListView1.Height = Height * 0.85
End Sub
Похожие вопросы
- Напишите пожалуйста программу на visual basic 2010(Пожалуйста очень нужно)
- Помогите написать программу на Visual Basic (найти ошибку)
- Что лучше для новичка, что бы написать программу? 1.Visual Basic 2.Delphi 3.C++ 4.Assembler
- Пожалуйста, помогите!!! Нужно срочно написать программу в VB. Задание тут:
- Visual Basic.Помогите написать программу.
- Помогите написать легкую программу в Visual Basic которая складывала бы 2 числа.
- Visual Basic помогите срочно!!!111!
- Написать программу на Visual BasicВ каждом слове текста замените "а" на букву "е", если "а" стоит начетном месте, и заме
- Напишите код для visual basic 6 чтоб калькулятор работал в режим deg и rad ли напишите эту функцию
- Какая среда программирования нужна для написания программ на Visual Basic .NET