Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Алгоритмика в теории и практике

.pdf
Скачиваний:
0
Добавлен:
11.08.2026
Размер:
475 Кб
Скачать

что начальное значение меньше или равно конечному. При отрицательном шаге начальное значение не должно быть меньше конечного.

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

Общий вид блок — схемы для цикла будет выглядеть следующим образом:

Разберем пример:

Составьте программу, которая напишет на экране Вашу фамилию 10 раз.

В данном случае достаточно один раз написать оператор вывода фамилии на экран и заключить его внутри цикла. Переменная цикла I будет меняться в диапазоне от НЗП=1 до КЗП=10, шаг в данном случае равен единицы, поэтому его можно не указывать.

FOR I=1 TO 10

PRINT ''Фамилия''

NEXT I

Блок-схема такой программы будет следующая:

41

4. Операторы цикла

Часто программисты используют такую интересную функцию, как датчик случайных чисел.

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

Запись А= RND(1) * 100), задает двузначное число, которое получается умножением полученного случайного положительного числа на промежутке от 0 до 1 на 100. Если требуется однозначное число, то надо умножать на десятки. Для получения трехзначного на сотни и т. д.

Разберем примеры

1. Заполните экран случайными точками.

CLS: SCREEN 9

FOR I=1 TO 1000 цикл повторяется 1000 раз Y=INT(RND(1) * 500) получили случайную координату для Х Õ=INT(RND(1) * 300) получили случайную координату для Y PSET (X,Y) выводим точку с координатами X,Y

NEXT I

2. Составьте программу, которая построит на экране 20 столбиков случайной высоты.

CLS : X=10:SCREEN 9

42

FOR I=1 TO 10

Y=INT(RND(1) * 100) координата Y задается случайным числом LINE(X, 190)-(X+5,Y) координата Х постоянная

X=x+10:

NEXT I

Второй тип оператора цикла имеет вид:

DO WHILE условие Операторы

LOOP

Этот оператор повторяет блок команд, пока условие верно. Как правило, переменная, на которую идет ссылка в условии, должна изменяться в теле цикла.

Необходимо создать программу рисования концентрических окружностей.

CLS SCREEN 9 R=100

DO WHILE R>10

CIRCLE (100,100),R:R=R–10 LOOP

Условие выполнение цикла проверяется перед выполнением блока операторов

Примеры решения задач по теме

1. Составьте программу, которая рисует квадрат, заштрихованный вертикальными линиями как на рисунке.

Решения:

Задание 1

Cls

Screen 9

Line (100,50)-(300,200),,b

For k=0 to 290 ståp 10

Line (100+k,50)-(100+k,200)

Next k

43

4.Операторы цикла

2.Составьте программу для рисования графика функции:

X ïðè X 10

 

 

X

10

Y X 2 ïðè 10

 

 

 

X ïðè 10

 

 

Cls

Screen 9

Line (300,10)-(300,300)

Line (10,150)-(550,150)

For x=-150 to 150 step 0.1

If x<=-10 then y=-x

If x>=-10 and x<=10 then y=x^2

If x>10 then y=x

Pset (x+300,y+150)

Next x

3.

Cоставьте программу для рисования графика функции

y

 

10

 

5 sin x

x

 

 

1

Решение:

Cls: Sscreen 9

Line (300,10)-(300,300):Line (10,150)-(550,150)

For x=-50 to 50 step 0.1

If x <>1 then y=10/(x-1)+5*sin(x)

Pset (x+300, y+150)

Next x

4. Составьте блок-схему и программу для нахождения среднего арифметического двузначных чисел кратных 3.

Решение:

Cls: S=0: K=0

For A=12 to 99 step 3

S=S+A:K=K+1:Next A

Sr=S/K:Print ''среднее арифметическое='';Sr

44

5. Составьте блок-схему и программу для нахождения суммы по следующей формуле:

50

 

N kl l , k ввести с клавиатуры.

l 3

3 l

Решения:

Cls

Input ''введите значение k'';k

N=0

For l=3 to 50

N=N+(k*l-sqr(l))/(3+l)

Next l

Print ''сумма='';N

45

4. Операторы цикла

6. Составьте блок схему и программу для решения следующей задачи:

Сберкасса начисляет 2% годовых. Вывести какой станет сумма вклада S положенная в сберкассу на N лет. Значения S и N вводятся с клавиатуры.

Решение:

Cls

Input ''введите сумму вклада'';s Input ''введите кол-во лет'';N For k=1 to N

s=s+0.02*s Next k

Print ''через'';N; ''лет сумма вклада будет равна'';s ''рублей''

46

7. Напечайте таблицу перевода температуры из градусов по шкале Цельсия (С) в градусы по шкале Фаренгейта (F) от 150 до 300 градусов с шагом 10.

(по формуле F=1,8 C + 32). Все данные расположить в столбик.

Решение:

Cls

Print ТАB(10); ''Цельсий''; ТАB(30); ''Фаренгейт''

For C=150 to 300 step 10

F=1.8*C+32

Print TAB(10); C; tab(30);F

Next t

8. Используя оператор цикла и графические возможности, нарисуйте на экране:

47

4. Операторы цикла

Решение:

Cls

Screen 9

For k=0 to 250 step 50

Line (25+k, 250)-(50+k,100)

Line (50+k, 100)-(75+k, 250)

Next k

Составьте блок-схему и программу для следующих задач:

9. Определите и выведите на экран количество натуральных чи- сел меньших 1000 и делящихся на 5 и 7 одновременно.

Решение:

Cls : s=0

For A=1 to 1000

If (A mod 5)=0 and (A mod 7)=0 then s=s+1

Next A: Print ''кол-во чисел=''; S

48

10. Найдите и выведите все двузначные числа, сумма цифр которых не меняется при умножении на 2. (например: 27 и 27х2 = 54, сумма цифр 27 и 54 равна 9).

Решение:

Cls

For A=10 to 99

EA=A mod 10:DA=int (A/10):B=A*2

If B>99 then EB=B mod 10:DB=int ((B mod 100)/10): SB=int (B/100):S=EB+DB+SB

If B<100 then EB=B mod 10:

DB=int (B/10): S=EB+DB

If (EA+DA)=S then print A

Next A

49

4. Операторы цикла

11. Напишите программу по следующей блок схеме и проведите пробный счет при следующих значениях: x=133; 0;1,33

Решение:

Cls

Input"Введите значение х";x s=0

For i=1 to 5 s=s+1/i Next i y=x*s

Print ''y='';y

50

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]