КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Dim FMAX As String, DMAX As String, OMAX As String
Dim N As Integer, I As Integer, VMAX As Single Алгоритм нахождения максимального Next End If
‘ закрываем цикл, к счетчику добавляется шаг (у нас 1), проверяется, ‘не превышено ли конечное значение счетчика, если не превышено, ‘к сумме добавляется значение очередного элемента. (минимального) элемента Например, для данных, представленных в таблице, определим фамилию, должность и отдел сотрудника, отработавшего максимальное количество часов. Суть алгоритма состоит в следующем. Предполагаем, что максимальное количество часов отработал сотрудник, записанный первым, т.е. во второй строке. Назовем его лидером. Он отработал 20 часов. Запомним количество часов, отработанное лидером, а также его фамилию, должность и отдел. Теперь, начиная со следующего сотрудника, т.е. с 3-го, будем сравнивать отработанные часы (записанные в 4-м столбце) с часами, отработанными лидером. Если у очередного сотрудника количество отработанных часов больше, чем у лидера, то этот сотрудник становится лидером. Запоминаем его количество часов, фамилию, должность и отдел. И так до конца таблицы. В результате лидером будет сотрудник, отработавший максимальное количество часов. Словесное описание алгоритма 1) определим количество заполненных строк в 4-м столбце; 2) запомним количество часов, отработанное сотрудником из второй строки в переменной VMAX, его фамилию в переменной FMAX, должность – в переменной DMAX, отдел – в переменной OMAX (это наш лидер); 3) присвоим счетчику I первоначальное значение 3; 4) рассмотрим содержимое ячейки в I-й строке и в 4-м столбце, если содержимое больше (при поиске минимума меньше) VMAX, то лидер меняется, запоминаем данные о новом лидере в переменных VMAX, FMAX, DMAX, OMAX; 5) если просматриваемая строка не последняя, то увеличиваем значение счетчика на 1 и переходим к пункту 4, в противном случае печатаем данные о лидере.
Программное описание алгоритма. Rem Опишем используемые переменные.
Rem определяем количество заполненных ячеек на листе «Лист1» в ‘диапазоне D:D, результат сохраняем в переменной N
N=Application.CountA(Sheets(“Лист1”).Range(“D:D”)) ‘ запомним количество часов, отработанное сотрудником из второй ‘ строки в переменной VMAX, его фамилию в переменной FMAX, ‘ должность – в переменной DMAX, отдел – в переменной OMAX. VMAX=Cells(2,4): FMAX=Cells(2,1): OMAX=Cells(2,2) DMAX=Cells(2,3) ‘открываем цикл со счетчиком I, изменяющимся от 3 до N, шаг 1, ‘ счетчику I присваивается значение 3
For I=3 to N ‘если значение элемента, расположенного в I-й строке и 4-м столбце ‘больше (при поиске минимума меньше, т.е. знак “<”) VMAX, то запоминаем данные о новом лидере в переменных ‘VMAX, FMAX, DMAX, OMAX
If Cells(I,4)>VMAX Then VMAX=Cells(I,4): FMAX=Cells(I,1) OMAX=Cells(2,2): DMAX=Cells(2,3) ‘закрываем условный оператор
Дата добавления: 2014-12-08; Просмотров: 507; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |