Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


II .11. Вложенные циклы в решении вычислительных задач



Работу вложенных циклов можно сравнить с работой часов: старший цикл – часовая стрелка, в него вложен цикл по минутам, а в цикл по минутам вложен цикл по секундам. Параметр цикла по секундам пробежит значения от 0 до 59 и содержимое параметра цикла по минутам увеличится на 1.

Задание:

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

Решение:

Пусть за секунды, минуты и часы отвечают переменные s, m и t, соответственно. Очевидно, они и станут параметрами циклов. Параметры циклов по секундам и минутам должны принимать значения от 0 до 59, а параметр цикла по часам – от 0 до 23. На экран все время работы программы должна выводиться информация, например:

С момента запуска программы прошло:

часов минут секунд

0       1      54

Соответственно, каждую секунду информация о времени должна обновляться. Стирать информацию с экрана позволит нам стандартный оператор CLS. Между обновлениями должна проходить 1 секунда, поэтому мы будем использовать оператор SLEEP 1. Вывод будет осуществляться операторами PRINT.

Программа:

CLS

FOR T=0 TO 23                    

FOR M=0 TO 59

FOR S=0 TO 59

PRINT “С момента запуска программы прошло: ”

PRINT “часов”, “минут”, “секунд”

PRINT T, M, S

SLEEP 1

CLS

NEXT S

NEXT M

NEXT T

END

Если программу не прервать, то она может работать в течение суток. Прервать ее работу можно принудительно, с помощью комбинации клавиш CTRL +  BREAK.

 

Задание:

Составить программу к решению задачи: «У мальчика было Х рублей. Он решил на все деньги купить в лавке шарики, хлопушки и свистки. Шарик стоит 3рубля, хлопушка 10 рублей, а свисток 5 рублей. Какие варианты покупки он может сделать? Останется ли у него сдача, и какая? »

Решение:

Пусть за количество купленных вещей отвечают, соответственно, переменные а – шарики, b – хлопушки, с – свистки, а под сдачу отведем переменную s. Так как мальчик планирует потратить все деньги, то его сдача, судя по ценам на товары, должна быть менее 3-х рублей. Вычислить сдачу можно вычитая из Х стоимость покупки: s=X-(a*3+b*10+c*5). Так как у мальчика всего Х рублей, то он на них может купить от 0 до Х\3 шариков, от 0 до Х\10 хлопушек и от 0 до Х\5 свистков. Здесь а, b и с могут принимать значения из вышеуказанных диапазонов, т.е. будут параметрами циклов. От количества предметов одного вида, зависит количество предметов другого вида, поэтому циклы не могут работать независимо друг от друга, а должны быть вложенными (не важно в какой последовательности).

Программа:

CLS

PRINT “введите количество денег”

INPUT X

FOR A=0 TO X\3

FOR B=0 TO X\10

FOR C=0 TO X\5

S=X-(A*3+B*10+C*5)

IF S< 3 THEN

PRINT “можно купить: ”, A, “ шариков ”, B, “ хлопушек ”, C, “ свистков”

PRINT “сдача составит ”, S, “ рублей”

END IF

NEXT C

NEXT B

NEXT A

END

Задание:

Составить программу к решению задачи: «Сеня, Петя и Миша подбросили игральные кости. Побеждает тот, у кого выпадет больше очков. Петя победил. Известно, что суммарное количество очков на костях равно 12. Напечатайте варианты, которые могли выпасть у ребят».

Решение:

Пусть, соответственно именам ребят, переменные S, P и M отвечают за количество очков, выпавших на игральных костях. По условию задачи, P> S и P> M (так как Петя победил), а также S+P+M=12. Раз Петя победил, значит у него выпало больше 4-х очков (в противном случае, на троих 12 бы не получилось, ведь на грани игральной кости может быть от 0 до 6 точек). Переменные S и M могут принимать значения в диапазоне от 0 до P-1. Причем, если известны P и S, то значение M можно всегда подсчитать (M=12-P-S).

Программа:

CLS

FOR P =5 TO 6

FOR S =0 TO P-1

M=12-P-S

PRINT “выпало очков: ”, S, “ у Сени ”, P, “ у Пети ”, M, “ у Миши”

NEXT S

NEXT P

END

Задание:

Составить программу к решению задачи: «Распечатать все трехзначные числа, у которых первая и последняя цифры не равны и в сумме дают среднюю. Например: 132, 462 и т.п. Подсчитайте сколько их».

Решение:

Пусть, A, B и C соответствующие цифры трехзначного числа. По условию задачи, A< > C A+C=B. Переменная A может принимать любые значения в диапазоне от 1 до 9 (первая цифра числа не может быть равна 0). Последняя цифра числа может принимать значения от 0 до 9. Вторую цифру мы всегда можем определить (B=A+C). Если будут найдены подходящие цифры, то число из них просто собрать по разрядам: X=A*100+B*10+C. Для подсчета количества, заведем переменную-счетчик. Сколько раз мы будем печатать число, столько раз нам надо переменную-счетчик увеличивать на 1.

Программа:

CLS

kol=0

FOR A=1 TO 9

FOR C=0 TO 9

IF (A< > C) THEN

B=A+C

 X=A*100+B*10+C

PRINT  X

KOL=KOL+1

END IF

NEXT C

NEXT A

PRINT " всего таких чисел ", KOL

END

 

Задания для самостоятельного решения:

1. Найти сумму цифр всех трехзначных чисел.

2. Найти трехзначные числа, сумма цифр которых равна произведению этих цифр.

3. Подобрать к числу 42*4* такие цифры, чтобы полученное число делилось на 72.

4. Вывести на экран все четырехзначные числа, цифры которых различны и соответствуют условию a*b+c*d=a+b+c+d.

5. Подберите к числу ***999 три такие цифры, чтобы полученное число делилось на 13, на 17 и на 19.

6. Подберите к числу 523*** три такие цифры, чтобы полученное число делилось на 7, на 8 и на 9.

7. Долгожитель (возраст не менее 100 лет) обнаружил, что если к сумме квадратов цифр его возраста прибавить число дня его рождения, то получится его возраст. Сколько лет долгожителю?

8. В красном и синем мешочках лежат красные и синие фишки с номерами от 1 до 100. Какие различные наборы могли быть, если известно, что достав из каждого мешка по фишке игрок заработал х очков.

9. Доказать, что любое число Х (Х> 7, по умолчанию), можно представить в виде суммы троек и пятерок.

 

 


Поделиться:



Последнее изменение этой страницы: 2019-03-30; Просмотров: 75; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.014 с.)
Главная | Случайная страница | Обратная связь