(495) 240-82-80ПН-СБ с 10:00 до 18:00
We speak English

Структурное программирование

Язык программирования CASIO позволяет разрабатывать программы с использованием идеологии структурного языка программирования. В этом состоит одно из его достоинств с точки зрения обучения программированию.

Напомним, что основная идея структурного программирования состоит в том, что одну большую программу можно разбить на небольшие относительно самостоятельные части, которые можно разрабатывать и отлаживать отдельно или по частям. Затем большую программу можно собрать как бы по кирпичикам. Одно из преимуществ структурного программирования заключается в том, что подпрограмма описывается один раз, а вызывается столько, сколько потребуется. В языке программирования CASIO такие части будем называть подпрограммами.

Подпрограмма представляет собой относительно самостоятельную программу с определенным именем. Упоминание этого имени следующим образом в тексте программы называется вызовом подпрограммы:

...
Prog "имя подпрограммы"
...

Пример 35.
Программа, имитирующая попарное мигание двух кубиков в разных частях экрана.

Подпрограмма "KUB1"
ViewWindow -20, 20, 1, -15, 15, 1 ↵
F-Line 1, 1, 1, 2.5 ↵
F-Line 1, 2.5, 3, 2.5 ↵
F-Line 3, 1, 1, 1 ↵
F-Line 3, 2.5, 3, 1 ↵
ClrGraph

Подпрограмма "KUB2"
ViewWindow -20, 20, 1, -15, 15, 1 ↵
F-Line 10, 8, 10, 9.5 ↵
F-Line 10, 9.5, 13, 9.5 ↵
F-Line 13, 9.5, 13, 8 ↵
F-Line 13, 8, 10, 8 ↵
ClrGraph

Программа MIG
Lbl 1↵
Prog "KUB1"↵
Prog "KUB2"↵
Goto 1

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

Пример 36.

Подпрограмма "KUBIK1"
ViewWindow -20, 20, 1, -15, 15, 1 ↵
F-Line 1-I, 1-I, 1-I, 2.5+I ↵
F-Line 1-I, 2.5+I, 3+I, 2.5+I ↵
F-Line 3+I, 1-I, 1-I, 1-I ↵
F-Line 3+I, 2.5+I, 3+I, 1-I ↵
ClrGraph

Подпрограмма "KUBIK2"
ViewWindow -20, 20, 1, -15, 15, 1 ↵
F-Line 10-I, 8-I, 10-I, 9.5+I ↵
F-Line 10-I, 9.5+I, 13+I, 9.5+I ↵
F-Line 13+I, 9.5+I, 13+I, 8-I ↵
F-Line 13+I, 8-I, 10-I, 8-I ↵
ClrGraph

Программа YVEL
For 1→I To 5 Step 0.2 ↵
Prog " KUBIK 1"↵
Prog " KUBIK 2"↵
Next

Рассмотрим пример возведения любого числа в любую степень.

Пример 37.

Программа PARAM1
"Введите число":?→Х ↵
"Введите показатель степени":?→Y ↵
X→A ↵
Y→B ↵
Prog "STEPEN" ↵
"Степень =":S

Подпрограмма "STEPEN"
If А>0↵
Then e^(В×ln А) →S↵
Else If А<0↵
Then e^(В×ln (Abs А)) → S↵
Else If 0→В
Then 1→ S↵
Else 0→ S↵
IfEnd↵
IfEnd↵
IfEnd

В программе вводится пара чисел X и Y и выводится на экран результат возведения числа Х в степень Y.

Параметры X, Y в момент обращения к подпрограмме "STEPEN" - это фактические параметры. Они подставляются вместо формальных параметров А и В, заданных в основной программе, и затем над ними осуществляются нужные действия. Полученный результат присваивается идентификатору подпрограммы - именно он и будет возвращен как значение при выходе из нее.

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

Пример 38.
Программа, строящая столбчатую диаграмму по заданным значениям.

Подпрограмма "DANN"
"Введите": I
"-й элемент данных": ? →List 1 [I]
Подпрограмма "STOLB"
F-Line 1×I, 0, 1×I, 0+ List 1 [I] ↵
F-Line 1×(I-1), 0, 1×(I-1), 0+ List 1 [I] ↵
F-Line 1×(I-1), 0+ List 1 [I], 1×I, 0+ List 1 [I]

Программа DIAGRAM
ViewWindow -1, 11, 1, -1, 6, 1 ↵
"Количество данных":?→N ↵
For 1→ I To N↵
Prog "DANN" ↵
Prog "STOLB" ↵
Next

Для данных: 3; 1; 4; 2,5 имеем следующую диаграмму:

Пример 39.
Программа, демонстрирующая закон отражения света. Вводится значение угла падения, затем выполняется построение хода падающего луча, затем отраженного и перпендикуляра к отражающей поверхности в точке падения луча, далее выводится значение угла отражения.

ViewWindow -4, 4, 1, -1, 3, 1 ↵
Graph Y<0
Lbl 1:ClrText↵
"A°=":?→A ↵
A<0 Оr A>90 ⇒ Goto 1 ↵
Graph Y=Abs(X÷tanA)
ClrText↵
Graph X=0
Cls↵
ClrText↵
Locate 1,1, "A=_ _°"↵
Locate 3,1, A↵
Locate 17,1, "B=_ _°"↵
Locate 19,1, A

Для угла падения 35° имеем:

Использование структурного программирования позволяет создавать более сложные, динамические программные проекты.

Пример 40.
Программа, которая создает на экране окно и имитирует движение в нем кубика под углом к поверхности. При столкновении с гранью окна кубик отскакивает от нее по закону отражения.

Подпрограмма "KUBIK"
F-Line Х, Y, X, Y+1 ↵
F-Line Х, Y, X+1, Y ↵
F-Line Х+1, Y+1, X+1, Y ↵
F-Line Х+1, Y+1, X, Y ↵

Подпрограмма "OKNO"
F-Line -6, 3, 6, 3 ↵
F-Line 6, 3, 6, -3 ↵
F-Line 6, -3, -6, -3 ↵
F-Line -6, -3, -6, 3

Подпрограмма "DVIG"
Prog "OKNO" ↵
X+A→X ↵
Y+B→Y ↵
Prog "KUBIK" ↵
ClrGraph

Программа DVIGENIE
ClrGraph ↵
-6→X ↵
-6→Y ↵
0.2→A ↵
0.2→B ↵
Lbl 1 ↵
Prog "DVIG" ↵
If (X≤-6) And (A=-0.2) And (B=0.2) ↵
Then 0.2→A ↵
IfEnd ↵
If (X≤-6) And (A=-0.2) And (B=-0.2) ↵
Then 0.2→A ↵
IfEnd ↵
If (Y≥2) And (A=0.2) And (B=0.2) ↵
Then -0.2→B
IfEnd ↵
If (Y≥2) And (A=-0.2) And (B=0.2) ↵
Then -0.2→B
IfEnd ↵
If (X≥5) And (A=0.2) And (B=0.2) ↵
Then -0.2→A
IfEnd ↵
If (X≥5) And (A=0.2) And (B=-0.2) ↵
Then -0.2→A
IfEnd ↵
If (Y≤-3) And (A=0.2) And (B=0.2) ↵
Then 0.2→B ↵
IfEnd ↵
If (Y≤-3) And (A=-0.2) And (B=-0.2) ↵
Then 0.2→B ↵
IfEnd ↵
Goto 1

Задачи

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

111. Создать программу, имитирующую движение в окне окружности; при столкновении с гранью окна она отскакивает по закону отражения.

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

113. Создать программу, имитирующую полет летающей тарелки.

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

115. Создать программу, имитирующую закон преломления света.

116. Число медалистов школы в 2003 г. составило 15 выпускников, в 2004 г. - 17 выпускников, в 2005 г. - 20 выпускников, в 2007 г. - 14 выпускников. Построить по этим данным столбчатую диаграмму.

117. Построить пузырьковую диаграмму по исходным данным.

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

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

120. Решить уравнение 5х2 - 3х - 2 = 0. Построить графическую интерпретацию решения уравнения.

121. Решить уравнение

.

Построить графическую интерпретацию решения уравнения.

122. Решить уравнение

Построить графическую интерпретацию решения уравнения.

123. С заданной точностью решить уравнение х2 = sinх. Построить графическую интерпретацию решения уравнения.

124. Решить систему уравнений:

Построить графическую интерпретацию решения.

125. Решить систему уравнений:

Построить графическую интерпретацию решения.