powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Наибольшее среди отрицательных чисел
18 сообщений из 18, страница 1 из 1
Наибольшее среди отрицательных чисел
    #38076477
Георгий_rnd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Даны N целых чисел в в диапазоне от -20 до 15 Найти максимальный элемент среди отрицательных чисел.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Sub progr()
Dim i As Integer, max As Integer, N As Integer
N = InputBox("N= ")
For i = 1 To N
Cells(i, 5) = Int(Rnd * 35 - 20)
max = Cells(i, 5)
If Cells(i, 5) > max And Cells(i, 5) < 0 Then
max = Cells(i, 5)
End If
Next i
MsgBox ("max_otr ") & max
End Sub


С моим кодом выдаёт просто отрицательное число
...
Рейтинг: 0 / 0
Наибольшее среди отрицательных чисел
    #38076502
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Георгий_rnd
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Sub progr()
Dim i As Integer, max As Integer, N As Integer
N = InputBox("N= ")
For i = 1 To N
Cells(i, 5) = Int(Rnd * 35 - 20)
max = Cells(i, 5)
If Cells(i, 5) > max And Cells(i, 5) < 0 Then
max = Cells(i, 5)
End If
Next i
MsgBox ("max_otr ") & max
End Sub
...
Рейтинг: 0 / 0
Наибольшее среди отрицательных чисел
    #38076519
Георгий_rnd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
max = Cells(i, 5)
заменил i на "1", теперь выдаёт просто максимум
...
Рейтинг: 0 / 0
Наибольшее среди отрицательных чисел
    #38076549
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Георгий_rndзаменил i на "1"попробуй не методом тыка...

Ответь себе на вопрос, зачем внутри условия max-у присваевается какое-то значение, если при каждом проходе цикла оно все равно затирается?
...
Рейтинг: 0 / 0
Наибольшее среди отрицательных чисел
    #38076577
Георгий_rnd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
чтобы было с чем сравнивать?
...
Рейтинг: 0 / 0
Наибольшее среди отрицательных чисел
    #38076580
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз.
В данной программе конструкция
Код: vbnet
1.
2.
3.
If Cells(i, 5) > max And Cells(i, 5) < 0 Then
max = Cells(i, 5)
End If

совершенно бессмысленна, в ней присваивается некое значение переменной max, дальше оно нигде не используется и при следующем проходе цикла затирается строкой
Код: vbnet
1.
max = Cells(1, 5)



я, конечно, могу сказать, в чем ошибка, но, мне кажется будет полезней подумать самому
...
Рейтинг: 0 / 0
Наибольшее среди отрицательных чисел
    #38076585
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и еще вдогонку, для наведения на мысль. А что должно выдать программа, если вообще в этом случайном наборе не будет отрицательных чисел?
...
Рейтинг: 0 / 0
Наибольшее среди отрицательных чисел
    #38076625
Георгий_rnd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
разбить условие
Код: vbnet
1.
If Cells(i, 5) > max And Cells(i, 5) < 0 Then

на два условия, и начинать цикл после каждого из них? получается что-то вроде
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Sub progr()
Cells.Clear
Dim i As Integer, max As Integer, N As Integer
N = InputBox("N= ")
For i = 1 To N
Cells(i, 5) = Int(Rnd * 35 - 20)
Next i
For i = 1 To N
If Cells(i, 5) < 0 Then
max = Cells(i, 5)
End If
Next i
For i = 1 To N
If max > Cells(i, 5) Then
max = Cells(i, 5)
End If
Next i
MsgBox ("max=") &max
End Sub
...
Рейтинг: 0 / 0
Наибольшее среди отрицательных чисел
    #38076633
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже ближе к теме (потом покажу, как короче).
Только программа теперь неверно работает - ищет минимальное, а не максимальное число.
...
Рейтинг: 0 / 0
Наибольшее среди отрицательных чисел
    #38076647
Георгий_rnd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
что-то до меня никак не дойдет - как искать максимальное
...
Рейтинг: 0 / 0
Наибольшее среди отрицательных чисел
    #38076651
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык см свой первый пост, там-то как раз условие было правильное
...
Рейтинг: 0 / 0
Наибольшее среди отрицательных чисел
    #38076657
Георгий_rnd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Sub progr()
Cells.Clear
Dim i As Integer, max As Integer, N As Integer
N = InputBox("N= ")
For i = 1 To N
Cells(i, 5) = Int(Rnd * 35 - 20)
Next i
For i = 1 To N
If Cells(i, 5) < 0 Then
max = Cells(i, 5)
End If
Next i
For i = 1 To N
If Cells(i, 5) > max And Cells(i, 5) < 0 Then
max = Cells(i, 5)
End If
Next i
MsgBox ("max=") & max
End Sub


так?
...
Рейтинг: 0 / 0
Наибольшее среди отрицательных чисел
    #38076718
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"максимальный элемент среди отрицательных" - это отрицательное, максимальное по модулю; или отрицательное наиболее близкое к 0 (минимальное по модулю)?
...
Рейтинг: 0 / 0
Наибольшее среди отрицательных чисел
    #38076720
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так результат выдается правильный?
...
Рейтинг: 0 / 0
Наибольшее среди отрицательных чисел
    #38076724
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM,

я предпочитаю понять буквально. Тем более, тут явно задачка на двойное условие, так как оговорка "из отрицательных" будет излишней (если по модулю)
...
Рейтинг: 0 / 0
Наибольшее среди отрицательных чисел
    #38076729
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Впрочем...
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub progr()
    Cells.ClearContents
    Dim i As Integer, N As Integer, nMax As Integer
    N = Val(InputBox("N= "))
    If N <= 0 Or N > 30000 Then Exit Sub
    Randomize
    nMax = -20
    For i = 1 To N
        Cells(i, 5) = Int((35 - (-20) + 1) * Rnd + (-20))
        If Cells(i, 5) > nMax And Cells(i, 5) < 0 Then
            nMax = Cells(i, 5)
        End If
    Next i
    MsgBox "max=" & nMax
End Sub
...
Рейтинг: 0 / 0
Наибольшее среди отрицательных чисел
    #38076856
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proпотом покажу, как корочеAndreTMВпрочем...опередил ))

Главное, человек хоть и не оптимально, но вроде сам сделал.
...
Рейтинг: 0 / 0
Наибольшее среди отрицательных чисел
    #38076872
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я бы так сделал:
Код: vbnet
1.
2.
3.
nMax = -100
...
MsgBox IIf(nMax = -100, "Отрицательных чисел не найдено", "max=" & nMax)
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Наибольшее среди отрицательных чисел
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]