Студопедия
rus | ua | other

Home Random lecture






Поиск максимального из чисел


Date: 2015-10-07; view: 453.


Print

Next a

Next b

Прокрутите программу в пошаговом режиме.

 

Следующая ступень усложнения - последняя - напечатать не одну строку таблицы, а девять. Для этого фрагмент 2 должен быть выполнен 9 раз, каждый раз - с новым значением a. Чтобы этого достичь, “обнимем” фрагмент 2 оператором For точно так же, как мы обнимали фрагмент 1.

 

Фрагмент 3

For a = 1 To 10

For b = 1 To 10

proizv = a * b

Print a; "*"; b; "="; proizv;

Next b

Прокрутите программу в пошаговом режиме, для удобства заменив 9 на 4.

 

Печатается все, что надо, но в одну строчку. Добавим в нужное место пустой Print, чтобы после окончания очередной строки печать начиналась с новой:

 

Фрагмент 4

For a = 1 To 10

For b = 1 To 10

proizv = a * b

Print a; "*"; b; "="; proizv;

Next b

Next a

Прокрутите программу в пошаговом режиме. Прочувствуйте то, что пустой Print мы поместили именно в нужное место, строчкой выше или ниже он все бы испортил.

 

Печатает фрагмент 4 плохо. Акуратных столбцов не получается. Мы не будем добиваться идеальной картинки. Просто поменяем точку с запятой в конце оператора Print на запятую, чтобы результаты были выровнены по столбцам. Столбцы расположены на расстоянии 14 символов друг от друга. Поменяем шрифт (свойство Font) формы на Courier, потому что у этого шрифта в отличие от многих других символы имеют одинаковую ширину.

В целом программа иллюстрирует идею вложенных циклов, когда один, внутренний, цикл вложен внутрь другого, внешнего. У нас тело внешнего цикла выполняется 10 раз, а тело внутреннего - 100 раз, так как на каждое выполнение внешнего цикла он выполняется 10 раз.

 

Задание 57:

1) Распечатать все возможные сочетания из двух цифр - первая цифра может быть любой от 3 до 8, вторая - любой от 0 до 7. Например, 36, 44, 80.

2) Распечатать все возможные сочетания из четырех цифр, каждая из которых может принимать значения 1,2,3. Например, 2123, 3312, 1111.

3) Подсчитать количество таких сочетаний.

4) Подсчитать из них количество неубывающих сочетаний, то есть таких, где каждая следующая цифра не меньше предыдущей - 1123, 1223, 2222 и т.п., но не 3322. Распечатать все такие сочетания.

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

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

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

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

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

Private Sub Command1_Click()

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

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

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

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

Next i

Debug.Print Max 'несем самую большую рыбу домой

End Sub

 

Задание 58: Найти из N чисел минимальное. Каким по порядку было введено минимальное число? Указание: для номера минимального числа тоже нужно отвести специальную ячейку.

Задание 59: У вас есть данные о росте ваших одноклассников. Правда ли, что рост самого высокого отличается от роста самого низкого больше, чем на 40 см.?

 

 


<== previous lecture | next lecture ==>
Вложенные циклы | Объекты. Их свойства, их события, их методы
lektsiopedia.org - 2013 год. | Page generation: 0.071 s.