Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Понятно о Visual Basic.NET. Самоучитель.Ч2.2005...docx
Скачиваний:
46
Добавлен:
25.11.2019
Размер:
4.02 Mб
Скачать
    1. Поиск максимума и минимума

Ищем максимальное число.

Задача программисту: Найти максимальное из вводимых в компьютер чисел.

Задача рыбаку: Принести домой самую большую из выловленных рыб.

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

Решение программиста: Программист приготовил для самого большого числа ячейку и придумал ей название, скажем, max. Первое число программист не глядя вводит в эту ячейку. Каждое следующее число (назовем его chislo) он сравнивает с max. Если оно больше, то он присваивает переменной max значение этого числа.

Напишем программу для определения максимального из 10 вводимых чисел:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim max, chislo, i As Integer

max = InputBox("Введите число") 'первую рыбу - в ведро

For i = 2 To 10 'ловим остальных рыб:

chislo = InputBox("Введите число") 'поймали очередную рыбу

If chislo > max Then max = chislo 'и если она больше той, что в ведре, бросаем ее в ведро

Next i

Debug.WriteLine(max) 'несем самую большую рыбу домой

End Sub

В этой программе переменная max исполняла роль «памяти». Она сохраняла в себе нужное значение и передавала его из цикла в цикл, благодаря чему каждый следующий цикл «знал», с чем сравнивать очередное число. Эта идея – использовать переменные для запоминания нужной информации на всем процессе выполнения программы – весьма продуктивна и широко используется программистами.

Примечание: Не путайте изобретенную нами переменную max со стандартной функцией Math.Max, которая нужна немножко для другого.

В нашей программе функция InputBox("Введите число") встречается два раза. Не всем нравится такая избыточность. А. Попробуйте избавится от одной из них, усложнив If. Б. Можно избавиться и по-другому: заранее присвоив переменной max очень маленькое число, такое, что все числа заведомо больше него.

Ищем порядковый номер максимального числа. Дополним нашу программу, чтобы она искала также порядковый номер максимального числа из N заданных чисел, для чего организуем переменную Номер_макс_числа:

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

Dim max, chislo, i, N, Номер_макс_числа As Integer

N = InputBox("Сколько чисел?")

max = InputBox("Введите число")

Номер_макс_числа = 1

For i = 2 To N

chislo = InputBox("Введите число")

If chislo > max Then

max = chislo

Номер_макс_числа = i

End If

Next i

Debug.WriteLine(max)

Debug.WriteLine(Номер_макс_числа)

End Sub

Найти из N чисел минимальное. Каким по порядку было введено минимальное число?

У вас есть результаты забега на 100 метров (в секундах). Правда ли, что результат самого быстрого бегуна отличается от результата самого медленного больше, чем на 0,4 сек.?

На небе 10 звезд. Напечатайте координаты самой правой звезды.