Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/48: Рейтинг темы: голосов - 48, средняя оценка - 4.58
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 3
1

Найти максимальное и минимальное по модулю значение элемента массива

22.03.2015, 19:35. Показов 9525. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Существует семь элементов массива (-3; 5; 2; 12; -6; 1; 17). Подскажите, пожалуйста, как найти максимальное и минимальное по модулю значение элемента массива (без привязки к этим числам, с возможностью их поменять). А так же после нахождения данных элементов - поделить max/min.
В Visual Basic 2010, Консольное приложение.
Буду очень благодарна за помощь!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2015, 19:35
Ответы с готовыми решениями:

Максимальное и минимальное значение элемента массива
Нахождение максимального значения массива работает не корректно. Помогите найти ошибку в коде....

Вывести максимальное значение по модулю элемента каждой строки массива
Дан двумерный массив состоящий из N строк и M столбцов. Элементы массива имею вещественный...

В матрице для каждого столбца найти минимальное и максимальное значение элемента
В данном двухмерном массиве A с целыми коэффициентами для каждого столбца найти минимальное и...

Найти минимальное и максимальное значение массива
Найти минимальное и максимальное значение массива

17
4 / 4 / 6
Регистрация: 10.04.2013
Сообщений: 45
26.03.2015, 13:59 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

VB.NET
1
2
3
4
5
6
7
8
9
Dim a(6) as Integer = {-3, 5, 2, 12, -6, 1, 17}
Dim i as Integer
Dim mx as Integer = 0
Dim mn as Integer = 0
For i = 0 To a.Length - 1
    If Math.Abs(a(i)) > mx Then mx = a(i)
    If Math.Abs(a(i)) < mn Then mn = a(i)
Next i
Console.WriteLine(mx / mn)
1
1568 / 1447 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
26.03.2015, 14:16 3
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

mcmishok,
VB.NET
1
2
Dim a() As Integer = {-3, 5, 2, 12, -6, 1, 17}
        MessageBox.Show(String.Format("Min: {0}, Max: {1}", a.Min, a.Max()))
1
1496 / 1044 / 146
Регистрация: 01.10.2009
Сообщений: 3,510
Записей в блоге: 1
26.03.2015, 16:53 4
Цитата Сообщение от edward_freedom Посмотреть сообщение
VB.NET
1
2
Dim a() As Integer = {-3, 5, 2, 12, -6, 1, 17}
 MessageBox.Show(String.Format("Min: {0}, Max: {1}", a.Min, a.Max()))
Упустили по модулю
VB.NET
1
2
3
Dim a() As Integer = {-3, 5, 2, 12, -6, 1, 17}
MessageBox.Show(String.Format("Min: {0}, Max: {1}", Math.Abs(a.Min), Math.Abs(a.Max)))
MsgBox(Math.Abs(a.Min) / Math.Abs(a.Max), , "max\min")
0
4 / 4 / 6
Регистрация: 10.04.2013
Сообщений: 45
26.03.2015, 17:31 5
И тогда вы получите модули максимального и минимального чисел в массиве, а не максимальные и минимальные числа по модулю.
0
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
26.03.2015, 18:46 6
Цитата Сообщение от mcmishok Посмотреть сообщение
И тогда вы получите модули максимального и минимального чисел в массиве, а не максимальные и минимальные числа по модулю.
А у Вас минимальное по модулю значение равно 0 - которого нет в массиве
0
COM‐пропагандист
859 / 768 / 147
Регистрация: 18.12.2014
Сообщений: 2,195
Записей в блоге: 4
26.03.2015, 19:02 7
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

mcmishok, тогда так
VB.NET
1
2
Dim a() As Integer = {-3, 5, 2, 12, -6, -1, 17}
MessageBox.Show(String.Format("Min: {0}, Max: {1}", a.Min(Function(x) Math.Abs(x)), a.Max(Function(x) Math.Abs(x))))
0
4 / 4 / 6
Регистрация: 10.04.2013
Сообщений: 45
26.03.2015, 19:43 8
Согласен
VB.NET
1
2
3
4
5
6
7
8
9
10
Dim a(6) as Integer = {-3, 5, 2, 12, -6, 1, 17}
Dim i as Integer
Dim mx as Integer = 0
Dim mn as Integer = 0
For i = 0 To a.Length - 1
    If Math.Abs(a(i)) > mx Then mx = a(i)
    If mn = 0 Then mn = a(i)
    If Math.Abs(a(i)) < mn Then mn = a(i)
Next i
Console.WriteLine(mx / mn)
0
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
26.03.2015, 20:26 9
mcmishok, опять не то, если в массиве встретится 0, то Ваш код его пропустит.
Остальное удалил
0
COM‐пропагандист
859 / 768 / 147
Регистрация: 18.12.2014
Сообщений: 2,195
Записей в блоге: 4
26.03.2015, 20:48 10
SoftIce, Я же уже решил.
1
4 / 4 / 6
Регистрация: 10.04.2013
Сообщений: 45
26.03.2015, 21:07 11
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
Dim a(6) as Integer = {-3, 5, 2, 12, -6, 1, 17}
Dim i as Integer
Dim mx as Integer
Dim mn as Integer
For i = 0 To a.Length - 1
    If i = 0 Then
        mx = a(i)
        mn = a(i)
    End If
    If Math.Abs(a(i)) > mx Then mx = a(i)
    If Math.Abs(a(i)) < mn Then mn = a(i)
Next i
Console.WriteLine(mx / mn)
Хоть какой-то дебагер.
0
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
26.03.2015, 21:18 12
mcmishok, извините, я не докапываюсь, просто решения неверные пока.
Все равно минимальный по модулю определяется неправильно.
Миниатюры
Найти максимальное и минимальное по модулю значение элемента массива  
0
4407 / 3531 / 843
Регистрация: 02.02.2013
Сообщений: 3,417
Записей в блоге: 2
26.03.2015, 22:24 13
VB.NET
1
2
3
4
5
6
7
8
9
10
Dim a() As Integer = {-3, 5, 2, 12, -6, 1, 17}
Dim i As Integer
Dim mx As Integer = Integer.MinValue
Dim mn As Integer = Integer.MaxValue
For i = 0 To a.Length - 1
    'ищем среди абсолютных значений элементов массива
    mx = Math.Max(mx, Math.Abs(a(i)))
    mn = Math.Min(mn, Math.Abs(a(i)))
Next i
MsgBox("max=" & mx.ToString & vbCrLf & "min=" & mn.ToString)
0
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
27.03.2015, 06:53 14

Не по теме:

Цитата Сообщение от Замабувараев Посмотреть сообщение
SoftIce, Я же уже решил.
Да, но не каждый преподаватель примет такое решение, особенно принципиальный, которому нужно от студента знание алгоритмов, а не встроенных функций конкретного языка программирования.



ovva, тоже неправильно. Добавляем в массив -19, и что видим на выходе? Выдает 19, то есть модуль, а должно быть само значение элемента.
Миниатюры
Найти максимальное и минимальное по модулю значение элемента массива  
0
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
27.03.2015, 07:04 15
Мой вариант
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub Main()
        Dim a() As Integer = {-3, 5, 2, 12, -6, -1, 17}
        Dim i As Integer
        Dim mx As Integer = a(0)
        Dim mn As Integer = a(0)
        For i = 1 To a.Length - 1
            If Math.Abs(mn) > Math.Abs(a(i)) Then mn = a(i)
            If Math.Abs(mx) < Math.Abs(a(i)) Then mx = a(i)
        Next i
        Console.WriteLine("Max = " & mx)
        Console.WriteLine("Min = " & mn)
        If mn <> 0 Then
            Console.WriteLine("Max/Min = " & mx / mn)
        Else
            Console.WriteLine("Деление на 0")
        End If
        Console.ReadLine()
    End Sub
0
COM‐пропагандист
859 / 768 / 147
Регистрация: 18.12.2014
Сообщений: 2,195
Записей в блоге: 4
27.03.2015, 11:05 16
SoftIce, вот функциональный подход с рекурсией. Вычисляет минимальный по модулю элемент. Для вычисления максимального по модулю элемента нужно сменить знак на >.
VB.NET
1
2
3
Dim lambda As Func(Of Integer(), Integer, Integer, Integer) = Function(b, Index, CurrentMin) If(Index = b.Length, CurrentMin, If(Math.Abs(b(Index)) < Math.Abs(CurrentMin), lambda(b, Index + 1, b(Index)), lambda(b, Index + 1, CurrentMin)))
' Использование: массив, индекс, с которого нужно начинать проверку, первый элемент в массиве
Console.WriteLine(lambda(a, 0, a(0)))
1
4407 / 3531 / 843
Регистрация: 02.02.2013
Сообщений: 3,417
Записей в блоге: 2
27.03.2015, 14:06 17
Наверное стоит вернуться к постановке задачи:
" …найти максимальное и минимальное по модулю значение элемента массива"
. Обратите внимание, ищется не элемент массива, а его значение по модулю.
0
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
27.03.2015, 14:12 18
Цитата Сообщение от ovva Посмотреть сообщение
Обратите внимание, ищется не элемент массива, а его значение по модулю
Вот именно что ищется "максимальное и минимальное по модулю значение элемента массива" а не модуль максимального и минимального по модулю значения элемента массива.

Разницу понимаете?
0
27.03.2015, 14:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.03.2015, 14:12
Помогаю со студенческими работами здесь

Найти максимальное и минимальное значение массива
Программа получает на вход число N. Пользователь вводит массив из N элементов. Программа должна...

Найти минимальное и максимальное значение массива
Всем привет. Есть массив: array:2 1 =&gt; array:4 ] Как найти сначала из 1го 0 =&gt; 4 ...

Найти максимальное и минимальное значение элементов массива
Описать функции формирования элементов одномерного массива с по- мощью генератора случайных чисел...

Найти максимальное и минимальное значение элементов массива
Помогите пожалуйста решить задачку)совсем не силен в с++( Задан одномерный массив В,состоящем из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru