2 / 2 / 0
Регистрация: 06.05.2013
Сообщений: 50
1

Как найти минимальное и максимальное значения массива и вывести их разность на экран

22.06.2013, 03:59. Показов 27373. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Помогите пожалуйста с составлением программы в VBA. Вот задание: создать одномерный массив из 20 целочисленных значений. Найти минимальное и максимальное значения, вывести их разность на экран. Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.06.2013, 03:59
Ответы с готовыми решениями:

Вывести на экран минимальное и максимальное значения заданного массива
Один из примеров Шилдта - вывод на экран минимального и максимального рандомного числа. Ведь грубо...

Ввести с клавиатуры 6 чисел от -10 до 10. Вывести на экран минимальное и максимальное число и их разность
Ввести с клавиатуры 6 чисел от -10 до 10. Вывести на экран минимальное и максимальное число и их...

найти элементы одномерного числового массива, имеющие минимальное значение и максимальное значание. И вывести на экран их порядковые номера
Переделайте пожалста для xlisp, заранее вам спасибо :) найти элементы одномерного числового...

найти элементы одномерного числового массива, имеющие минимальное значение и максимальное значание. И вывести на экран их порядковые номера
Помогите пожалста решить задачу на Lisp.Заранее спасибо!!) найти элементы одномерного числового...

20
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,086
22.06.2013, 10:51 2
Может так:
Visual Basic
1
2
3
4
5
6
7
Sub pr()
    Dim a&(1 To 20), i&
    For i = 1 To 20
        a(i) = Int(Rnd * 100)
    Next
    MsgBox ("Разность Max-Min составит: " & Application.Max(a) - Application.Min(a))
End Sub
0
761 / 268 / 57
Регистрация: 13.12.2009
Сообщений: 1,101
22.06.2013, 10:57 3
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub CommandButton1_Click()
Dim S() As Integer, i As Integer, max As Integer, min As Integer, n As Integer
Cells.Clear
min = 100
max = -100
n = InputBox("Введите размер массива", "", 20)
ReDim S(n)
For i = 0 To n
S(i) = Rnd() * 100 - 50
Cells(i + 2, 2) = S(i)
If min > S(i) Then
min = S(i)
End If
If max < S(i) Then
max = S(i)
End If
Next
t = max - min
Cells(2, 4) = "Разность = " & t
Cells(4, 4) = "Минимум = " & min
Cells(6, 4) = "Максимум = " & max
End Sub
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
22.06.2013, 12:01 4
To all_angarsk. Мне просто интересно. Вот для чего Вам эта серость на экране (кнопка). А потом еще и в ее модуль код (Private Sub CommandButton1_Click)? И нужен Вам в таких подобных случаях этот бардак?
0
761 / 268 / 57
Регистрация: 13.12.2009
Сообщений: 1,101
22.06.2013, 14:59 5
я пытаюсь думать как они.. , но все равно молчит не спрашивает!!!!! как и что, зачем?
думаю на лентяя попал..
Visual Basic
1
2
3
4
5
6
7
Sub pr()
    Dim a&(1 To 20), i&
    For i = 1 To 20
        a(i) = Int(Rnd * 100)
    Next
    MsgBox ("Разность Max-Min составит: " & Application.Max(a) - Application.Min(a))
End Sub
написано круто!!!! регулярные выражения многие не понимают вообще, считают китайским языком.
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
22.06.2013, 15:47 6
all_angarsk, Вы меня не поняли. Я имел ввиду, что не нужно усложнять. Любой модуль/процедуру Вы легко отправите в экспорт на флэшку в формате *.bas. И так точно вытянете его оттуда в любом месте, на любом компе, в любой документ. А с модулем кнопки - тяжелее. Ну и с самой кнопкой - нарисуйте встроенными инстр-ми фигуру (или обьект WordArt) что Вам нравится, и назначьте ей нужную процедуру (правая кнопка > Назначить макрос (или как там у Вас по локализации)). Всего пару кликов. И практично, и веселее, и проще, а не унылая серость.
А про "...регулярные выражения...". Что Вы имели ввиду? Я их там не вижу.

Добавлено через 25 минут
Кажется, я понял про регулярку. Смотрите, у Тoiai грамотный и лаконичный код. Лично я бы все-таки сгенерированный массив выгрузил на лист, чтоб было видно. I.e., после next я бы добавил строку:
[a1].resize(1, ubound(a)).value=a
Дальше он вызывает окно сообщения MsgBox, в котором использует фукции не VBA, а Excel - Min и Max. Поэтому его тяжелая жизнь заставила вызывать их такими фразами Application.Max(a), Application.Min(a)...
Кстати, что б, если не нужно, не выкладывать массив на лист, его тоже можно одним движение загнать в этот же MsgBox.
2
2 / 2 / 0
Регистрация: 06.05.2013
Сообщений: 50
22.06.2013, 19:46  [ТС] 7
ВойВой, тут всего так много)
Спасибо за помощь, но all_angarsk, я так понимаю вы сделали через формы?

Добавлено через 3 минуты
И all_angarsk, программа считает максимум на 1 больше)

Добавлено через 1 минуту
all_angarsk, всё работает. я просто добавил перед циклом значение мак. и мин. равным нулю и S(i) также равным нулю, теперь считает всё правильно)

Добавлено через 1 минуту
all_angarsk, у меня к вам маленькая просьба, т.к. я хочу с массивами разобраться, не могли бы вы мне написать не большое объяснение основных команд, ибо я не всё понимаю и в гугле найти толком не могу)
0
761 / 268 / 57
Регистрация: 13.12.2009
Сообщений: 1,101
23.06.2013, 01:50 8
Цитата Сообщение от Gerkss Посмотреть сообщение

all_angarsk, всё работает. я просто добавил перед циклом значение мак. и мин. равным нулю и S(i) также равным нулю, теперь считает всё правильно)

Добавлено через 1 минуту
all_angarsk, у меня к вам маленькая просьба, т.к. я хочу с массивами разобраться, не могли бы вы мне написать не большое объяснение основных команд, ибо я не всё понимаю и в гугле найти толком не могу)
1 - мин - должно быть боль больше большого в начале, иначе в некоторых ситуациях может быть ошибка.
также макс - меньше меньшего. Сл. функция имеет пределы от -50 до +50. поэтому взял -100 и + 100 соответственно.

2. нет вопроса - основные ком.?.Я думаю:
Dim S() As Integer -объявление массива, в нем нет кол-ва элем.
ReDim S(n) - переобъявление, когда известно n и приравнивать его к 0 не имеет смысла лишняя команда
0
2 / 2 / 0
Регистрация: 06.05.2013
Сообщений: 50
24.06.2013, 23:02  [ТС] 9
@all_angarsk, Спасибо
0
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 10
10.12.2013, 19:04 10
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sub sd()
Dim i, imin, imax As Integer
Dim a(), min, max, b As Double
min = 99
max = -99
ReDim a(1 To 10)
For i = 1 To 10
a(i) = InputBox("Ââåäèòå çíà÷åíèå äëÿ " & i)
Cells(1, i) = a(i)
Next
For i = 1 To 10
 If a(i) < min Then
 min = a(i): i = imin
 End If
 If a(i) > max Then
 max = a(i): i = imax
 End If
Next
b = min
a(imin) = a(imax)
a(imax) = b
End Sub
задача была такая: переставить местами минимум и максимум в 10-тизначном массиве. Вопрос что не правильно?
0
761 / 268 / 57
Регистрация: 13.12.2009
Сообщений: 1,101
11.12.2013, 01:12 11
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Dim i, imin, imax As Integer
Dim a(10) As Double, min As Double, max As Double, b As Double, t As Double
min = 99
max = -99
 
For i = 1 To 10
t = Rnd() * 100 - 50
a(i) = InputBox("Введите значение для " & i, , t)
Cells(1 + i, 2) = a(i)
 
 If a(i) < min Then
 min = a(i): imin = i
 End If
 
 If a(i) > max Then
 max = a(i):  imax = i
 End If
Next
b = min
a(imin) = a(imax)
a(imax) = b
 
 For i = 1 To 10
Cells(1 + i, 4) = a(i)
Next
1
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 10
12.12.2013, 00:48 12
Цитата Сообщение от all_angarsk Посмотреть сообщение
t = Rnd() * 100 - 50
для чего нужна эта строка объясните пожалуйста
0
761 / 268 / 57
Регистрация: 13.12.2009
Сообщений: 1,101
12.12.2013, 01:26 13
Создает случайное число, которое записывается в inputbox, которое потом вводится в массив
1
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 10
16.12.2013, 21:38 14
Цитата Сообщение от all_angarsk Посмотреть сообщение
Создает случайное число, которое записывается в inputbox, которое потом вводится в массив
а зачем мне это если я хочу вводить каждое значение самостоятельно? =)
0
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 10
16.12.2013, 21:44 15
и еще вопрос почему он тут ругается?
Миниатюры
Как найти минимальное и максимальное значения массива и вывести их разность на экран  
0
Заблокирован
16.12.2013, 21:57 16

Не по теме:

Zhe700, нисколько неохота воспроизводить чужие ляпы с картинки:pardon:
Код скопировать сюда трудно очень?



Сначала n=inputbox(.....)
Потом redim x(1 to n)'но никак не x(n to 1)
1
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 10
16.12.2013, 22:17 17
Цитата Сообщение от Апострофф Посмотреть сообщение
Сначала n=inputbox(.....)
Потом redim x(1 to n)'но никак не x(n to 1)
положительных изменений нет
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub óà()
Dim n, i, p As Integer
Dim x() As Double
p = 1
n = InputBox("Ââåäèòå êîëëè÷åñòâî ïåðåìåííûõ Õ:")
ReDim x(1 To n)
For i = 0 To n
x(i) = InputBox("Ââåäèòå çíà÷åíèå äëÿ Õ:" & i)
Cells(i + 1, 1) = x(i)
Next
For i = n To 1 Step -1
p = p * (x(n) + x(n - 1))
Next i
y = p * x(n)
Range("B2") = y
MsgBox ("Ëîâè îòâåò, ÷åë:") & y
 
End Sub
0
Заблокирован
17.12.2013, 05:21 18
Цитата Сообщение от Zhe700 Посмотреть сообщение
ReDim x(1 To n)
For i = 0 To n
x(i) = InputBox("Введите значение для Х:" & i)
???
1
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 10
18.12.2013, 21:40 19
Апострофф, я извиняюсь, не заметил, устал уже с этими лабами, глаз замылился
0
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 10
23.12.2013, 21:15 20
Ребят снова к вам вопрос, вот попалась мне интересная задачка
Две прямые на плоскости заданы двумя своими точками. Найти координаты единичного вектора-биссектрисы наименьшего угла, образованного этими прямыми.
как это можно реализовать в vba а то я в легком замешательстве?
0
23.12.2013, 21:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.12.2013, 21:15
Помогаю со студенческими работами здесь

Найти максимальное и минимальное значения массива
Помогите решить задачу: Массив из 25 элементов заполнен случайными числами в диапазоне от -70 до...

Найти минимальное и максимальное значения массива
Задача: необходимо в массиве x() найти минимальное и максимальное значение, найти произведение...

Найти и вывести на экран минимальное или максимальное число
помоги плиз Я ша на экзамене. составить алгоритм и программу решения задачи: в текстовые поля...

Найти максимальное и минимальное значения массива и поменять их местами
Господа программисты,неофиту очень нужна ваша помощь. Дан одномерный масив D(80) Найти:...


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

Или воспользуйтесь поиском по форуму:
20
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru