Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 8

Вычисление порядкового номера и минимума

10.11.2013, 16:46. Показов 1312. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо дописать код, чтобы считался минимум (максимум уже считается) и порядковый номер элемента, являющимся min и max
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim n As Integer, a() As Integer, i As Integer, s1 As Integer, s2 As Integer
n = Cells(2, 1)
ReDim a(1 To n)
For i = 1 To n
a(i) = Int(10 - 20 * Rnd)
Cells(2, 2) = a(i)
Next i
 
s = a(1)
For i = 2 To n
If a(i) > 5 Then s = a(i)
s1 = s + a(i)
Cells(2, 3) = i
Cells(2, 4) = s1
Cells(2, 5) = s2
Next i
Чтобы вычисляться минимум, дописал во втором цикле
Visual Basic
1
2
3
4
5
6
7
8
9
10
s = a(1)
For i = 2 To n
If a(i) > 5 Then s = a(i)
s1 = s + a(i)
If a(i) < 5 Then s = a(i)
s2 = s + a(i)
Cells(2, 3) = i
Cells(2, 4) = s1
Cells(2, 5) = s2
Next i
А вот как вычислять порядковый номер - даже идей нет
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.11.2013, 16:46
Ответы с готовыми решениями:

Вывод порядкового номера
Добрый день! Подскажите, пожалуйста. Если я хочу узнать номер раздела и использовать его я использую: j1 =...

Расчёт даты из порядкового номера дня года
Добрый день, уважаемые! Подскажите как реализовать функцию расчета даты (dd.mm.yyyy) по порядковому номеру дня года? Например, 50 -...

Прочесть информацию, отталкиваясь номера строки файла и порядкового номера первого симвала в строке
не стал создавать новую темку, решил что тут тоже задать вопрос можна.... есть регулярно обновляющийся текстовый файл, из которого мне...

8
призрак
 Аватар для ikki
3266 / 894 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
10.11.2013, 20:57
Лучший ответ Сообщение было отмечено как решение

Решение

просто интересно.
КАК можно вместо переменной с именем s использовать в 11 строке пятёрку???
Visual Basic
11
If a(i) > 5 Then s = a(i)
так что огорчу:
Цитата Сообщение от krokoz9lbr Посмотреть сообщение
максимум уже считается
это не так. списывать надо аккуратно.

по поводу "идей" (вдруг поможет)
привлекаем аналогию: идёте Вы по улице и высматриваете самый высокий дом. увидели самый высокий на данный момент - запомнили (в переменную s), сколько именно этажей; посмотрели на номер дома, запомнили этот номер (в переменную x), пошли дальше...
в конце улицы отчитываетесь сэнсею: самый высокий дом - пятнадцатиэтажка под номером 87.
и получаете заслуженный чёрный пояс.
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
10.11.2013, 21:05
Думаю, что лучше сначала выяснить отношения, а потом расписывать. Где-то так:
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub ffff()
Dim n%, a(), i%, mMAX%, mMIN%, pMax%, pMin%
   ReDim a(1 To Cells(2, 1).Value): Randomize
   For i = LBound(a) To UBound(a)
      a(i) = Int(10 - 20 * Rnd)
      If i = 1 Then mMAX = a(i): mMIN = a(i): pMax = i: pMin = i
      If mMAX < a(i) Then mMAX = a(i): pMax = i
      If mMIN > a(i) Then mMIN = a(i): pMin = i
   Next i
   Cells(2, 2).Value = "My array": Cells(2, 3).Resize(1, UBound(a)).Value = a
   Cells(3, 2).Value = "MAX = ":  Cells(3, 3).Value = mMAX
   Cells(3, 4).Value = "Max pos. numb. =": Cells(3, 5) = pMax
   Cells(4, 2).Value = "MIN = ":  Cells(4, 3).Value = mMIN
   Cells(4, 4).Value = "Min pos. numb. =": Cells(4, 5) = pMin
End Sub


Добавлено через 1 минуту
Ikki! Здравствуйте! Честно - я не видел.
0
10.11.2013, 21:10

Не по теме:

и Вам здравствуйте, Игорь.

Цитата Сообщение от Igor_Tr Посмотреть сообщение
я не видел
жалко. я долго редактировал первый коротенький пост. видимо, мои педагогические потуги пропадут втуне :umbrage:

0
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 8
10.11.2013, 21:35  [ТС]
ikki, действительно моя ошибка. Не верно перенёс из конспекта, там должна быть s
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
10.11.2013, 23:02
Слава Богу, все решилось!
Но скучно это, хотя понимаю, что нужны разборки с циклами. Я бы повеселился. Что б и цикл. Где-то вот так (:
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub v2ffff()
Dim a(), i%
   ActiveSheet.Cells.Delete: Cells(2, 1).Value = 6
   ReDim a(1 To Cells(2, 1).Value): Randomize
   For i = LBound(a) To UBound(a): a(i) = Int(10 - 20 * Rnd):  next 'i
   Cells(2, 2).Value = "My array": Cells(2, 3).Resize(1, UBound(a)).Value = a
   Cells(3, 2).Value = "MAX = ":  Cells(3, 3).Value = Application.Max(a)
   Cells(3, 4).Value = "Max pos. numb. =":  Cells(3, 5).Value = Len(Replace(Replace(Split(Join(a), _
                                                                  Application.Max(a))(0), Space(1), "", 1), "-", "", 1)) + 1
   Cells(4, 2).Value = "MIN = ":  Cells(4, 3).Value = Application.Min(a)
   Cells(4, 4).Value = "Min pos. numb. =": Cells(4, 5) = Len(Replace(Replace(Split(Join(a), _
                                                                  Application.Min(a))(0), Space(1), "", 1), "-", "", 1)) + 1
   ActiveSheet.UsedRange.Columns.AutoFit
End Sub

Но есть и практическая польза от .... Можна вытянуть первый, последний, серединный (или который ближе к середине сверху/снизу - ч/з roundUp(-down), наверное, или все. И почти ничего не менять.
0
призрак
 Аватар для ikki
3266 / 894 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
10.11.2013, 23:26
раз уж использовать функции листа. то можно чуть короче
Visual Basic
1
2
   Cells(3, 4).Value = "Max pos. numb. =":  Cells(3, 5).Value = Application.Match(Application.Max(a), a, 0)
   Cells(4, 4).Value = "Min pos. numb. =": Cells(4, 5) = Application.Match(Application.Min(a), a, 0)
1
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
10.11.2013, 23:39
Только хотел сказать, что шутка неудачная. Мой пост #6 - просто "химия". Сработает только для чисел от 0 до 9.
Ikki правильно сказал (но я уже и сам ) Вот вся шутка:
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Sub v2ffff()
Dim a(), i%, elt, j&
   ActiveSheet.Cells.Delete: Cells(2, 1).Value = 12
   ReDim a(1 To Cells(2, 1).Value): Randomize
   For i = LBound(a) To UBound(a):  a(i) = Int(100 - 200 * Rnd):  Next i
   Cells(2, 2).Value = "My array": Cells(2, 3).Resize(1, UBound(a)).Value = a
   Cells(3, 2).Value = "MAX = ":  Cells(3, 3).Value = Application.Max(a)
   Cells(3, 4).Value = "Max pos. numb. =":  Cells(3, 5).Value = Application.Match(Application.Max(a), a, 0)
   Cells(4, 2).Value = "MIN = ":  Cells(4, 3).Value = Application.Min(a)
   Cells(4, 4).Value = "Min pos. numb. =": Cells(4, 5) = Application.Match(Application.Min(a), a, 0)
   ActiveSheet.UsedRange.Columns.AutoFit
End Sub
0
 Аватар для Sasha_Smirnov
5562 / 1370 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
11.11.2013, 02:34
Аналогичная тема, но с меньшей долей юмора и сатиры: Поменять местами максимальный и минимальный элементы массива
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.11.2013, 02:34
Помогаю со студенческими работами здесь

Поиск номера максимума и номера минимума, перестановка элементов массива с заданными номерами
Разработать модуль программиста,содержащий следующие процедуры и функции работы с одномерным числовым массивом: ввод массива,вывод массива,...

Изменение порядкового номера
Добрый вечер, уважаемые форумчани :) 3 день ломаю голову, не как не могу понять как сделать следующее: У меня есть база, где...

Определение порядкового номера
есть файл с каким то кол-вом чисел, программа должна считать и записать числа с определенными порядковыми номерами в новый файл. например...

Присвоение порядкового номера
Добрый день. Я начинающий, и просьба помочь с заданием №4, автоматическим присвоением номера Подскажите, как сделать

Задача на определение порядкового номера
Условие: Дана непустая последовательность различных натуральных чисел, за которой следует 0. Определить порядковый номер наименьшего из...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru