Программирование вычислительных процессов на языке BASIC
Составление схемы алгоритма и программы для построения графика временной функции, работающей как в машинном, так и в реальном времени. Пример вычисления степенного ряда с помощью схемы Горнера. Описание переменных программы, листинг, процедуры и функции.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 20.11.2012 |
Размер файла | 67,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Содержание
Введение
Задание
Выбор и обоснование методов решения
Переменные программы
Листинг программы
Пояснения
График временной функции
Заключение
Список использованной литературы
Введение
С развитием промышленности возникает необходимость в автоматизации технологических процессов и производств. На данном этапе развития техники широкое применение находят роботы и робототехнические системы. Для управления производственными процессами в 70-е, 80-е годы стало возможным применение микропроцессорной техники. Развитие различных языков программирования (Fortran, Basic, Assembler, Pascal, C и т.д.) дает возможность разработки и внедрения объемных пакетов прикладных программ для управления сложными технологическими процессами и производствами. Пакеты прикладных программ дают возможность дистанционного управления и контроля сложных процессов с невозможным прямым вмешательством человека. Управляющая система намного быстрее и точнее выполняет поставленные задачи, не требуя при этом времени на отдых. Применение программного управления значительно увеличивает производительность труда. Первоначальные затраты материальных средств на установку и наладку микропроцессорного оборудования в процессе работы быстро окупаются. Это делает выгодным применение систем такого рода в производстве.
Для написания программного обеспечения к микропроцессорному оборудованию подходит язык программирования Basic. Программы, написанные на нем, обладают высокой работоспособностью и не требуют от управляющей машины высоких аппаратных качеств. Они позволяют провести расчет параметров системы, как в машинном, так и в реальном времени.
Задание
Составить схему алгоритма и программу для построения графика временной функции, работающую как в машинном, так и в реальном времени. Реальное время в диапазоне () формируется таймером в виде программного модуля с метками , называемыми временем квантования.
При вычислении функции использовать алгоритм Горнера.
Функция:
, где время изменяется от до .
.
- корень нелинейного уравнения , которое надо ре-шить методом простых итераций с точностью , при начальном зна-чении корня лежащем в диапазоне .
- сумма корней квадратного уравнения , при .
Коэффициенты:
Выбор и обоснование методов решения
В соответствии с заданием выбираем методы решения задач.
Для нахождения корня нелинейного уравнения используем метод простых итераций.
Этот метод основан на основе попадания в -окрестность модуля разности двух последовательно приближенно вычисленных корней и . Подробнее см. листинг программы. В этом случае нелинейное уравнение считают решенным с заданной степенью точности.
Для вычисления функции используем алгоритм Горнера (схему Горнера).
Схема Горнера применяется для вычисления степенных рядов. Схема Горнера представляет собой рекуррентную формулу, по которой вычисляется значение функции в каждый момент времени.
Пример вычисления степенного ряда с помощью схемы Горнера.
Вычислим функцию в точке при помощи схемы Горнера.
Для этого составим следующую программу на языке Basic:
T=2
Y=1
FOR I=1 TO 4
Y=Y*T+a(I)
NEXT I
PRINT Y
В результате работы данной программы будет вычислена функция в точке , а результат будет выведен на экран.
Переменные программы
Имя переменной |
Коэффициент |
Пояснения |
|
A |
a |
Коэффициент функции |
|
B |
b |
Коэффициент функции |
|
C |
c |
Коэффициент функции |
|
A1 |
a1 |
Коэффициент квадратного уравнения |
|
B1 |
b1 |
Коэффициент квадратного уравнения |
|
C1 |
c1 |
Коэффициент квадратного уравнения |
|
g |
g |
Корень нелинейного уравнения |
|
d |
d |
Сумма корней квадратного уравнения |
Листинг программы
DECLARE SUB Delay (Time!)
DECLARE FUNCTION BaseF! (K!)
DECLARE FUNCTION Range! (K!, Range!)
DECLARE SUB Scale (A!, B!, C!, MaxT!, Tkv!)
DECLARE SUB Grid ()
DECLARE SUB MessageBox (Message$)
DECLARE SUB MainRef (MenuItem!)
DECLARE SUB Text ()
DECLARE SUB StData ()
DECLARE SUB Main ()
DECLARE SUB DataOut ()
DECLARE SUB DataIn ()
DECLARE SUB Outro ()
DECLARE SUB Work (Time!)
DECLARE FUNCTION RootSum! (A!, B!, C!)
DECLARE FUNCTION Iteration! (XBeg!, XEnd!, Eps!)
DECLARE SUB iNTRO ()
' =======================================
' Curs_Task;
' N23
' =======================================
' ==============Constants================
CONST TConst = 2500: 'Depends from the machine
' ==============Shared Vars==============
COMMON SHARED DataFlag
DataFlag = 0
' ===============Intro===================
CALL iNTRO
' =============Main Screen===============
CALL Main
' ==================END==================
FUNCTION BaseF (K)
'Base function
SHARED A, B, C, d, g
BaseF = ABS(A * K ^ 3 + B * K ^ 2 + C * K + d + g)
END FUNCTION
SUB DataIn
'Task conditions inputing
SHARED TBeg, TEnd, Tkv, XBeg, XEnd, Eps, A, B, C, A1, B1, C1, d, g, DataFlag
SHARED RootsFlag
RootsFlag = 1
SCREEN 12
CLS
PRINT "Введение начальных значений:"
INPUT "tнач. "; TBeg
INPUT "tкон. "; TEnd
INPUT "tквант. "; Tkv
INPUT "Xнач. "; XBeg
INPUT "Xкон. "; XEnd
INPUT "Точность "; Eps
INPUT "A "; A
INPUT "B "; B
INPUT "C "; C
DO
INPUT "A1 "; A1
INPUT "B1 "; B1
INPUT "C1 "; C1
d = RootSum(A1, B1, C1)
LOOP WHILE RootsFlag = 0
g = Iteration(XBeg, XEnd, Eps)
PRINT "Нажмите любую клавишу."
WHILE INKEY$ = ""
WEND
DataFlag = 1
CALL MainRef(1)
END SUB
SUB DataOut
'Table & Task conditions
SHARED TBeg, TEnd, Tkv, XBeg, XEnd, Eps, A, B, C, A1, B1, C1, d, g, DataFlag
SCREEN 12
CLS
LINE (0, 0)-(240, 464), 7, B
FOR I = 0 TO 13
LINE (32, I * 32 + 8)-(232, (I + 1) * 32 + 8), 7, B
NEXT
LINE (112, 8)-(112, 14 * 32 + 8), 7
LOCATE 7, 2: PRINT "П"
LOCATE 8, 2: PRINT "А"
LOCATE 9, 2: PRINT "Р"
LOCATE 10, 2: PRINT "А"
LOCATE 11, 2: PRINT "М"
LOCATE 12, 2: PRINT "Е"
LOCATE 13, 2: PRINT "Т"
LOCATE 14, 2: PRINT "Р"
LOCATE 15, 2: PRINT "Ы"
LOCATE 16, 2: PRINT " "
LOCATE 17, 2: PRINT "З"
LOCATE 18, 2: PRINT "А"
LOCATE 19, 2: PRINT "Д"
LOCATE 20, 2: PRINT "А"
LOCATE 21, 2: PRINT "Ч"
LOCATE 22, 2: PRINT "И"
LOCATE 2, 6: PRINT "Tнач.": LOCATE 2, 16: PRINT TBeg
LOCATE 4, 6: PRINT "Tкон.": LOCATE 4, 16: PRINT TEnd
LOCATE 6, 6: PRINT "Tквант.": LOCATE 6, 16: PRINT Tkv
LOCATE 8, 6: PRINT "Xнач.": LOCATE 8, 16: PRINT XBeg
LOCATE 10, 6: PRINT "Xкон.": LOCATE 10, 16: PRINT XEnd
LOCATE 12, 6: PRINT "Точность": LOCATE 12, 16: PRINT Eps
LOCATE 14, 6: PRINT "A": LOCATE 14, 16: PRINT A
LOCATE 16, 6: PRINT "B": LOCATE 16, 16: PRINT B
LOCATE 18, 6: PRINT "C": LOCATE 18, 16: PRINT C
LOCATE 20, 6: PRINT "A1": LOCATE 20, 16: PRINT A1
LOCATE 22, 6: PRINT "B1": LOCATE 22, 16: PRINT B1
LOCATE 24, 6: PRINT "C1": LOCATE 24, 16: PRINT C1
LOCATE 26, 6: PRINT "d": LOCATE 26, 16: PRINT d
LOCATE 28, 6: PRINT "g": LOCATE 28, 16: PRINT g
END SUB
SUB Delay (Time)
'Timer Block
FOR I = 1 TO TConst * Time
A = A + EXP(1)
NEXT
END SUB
SUB Grid
SHARED ScX, ScY
'Draws scaled coordinate grid
CLS
FOR I = 0 TO 640 STEP 10
LINE (I, 0)-(I, 480), 8
NEXT
FOR I = 0 TO 480 STEP 10
LINE (0, I)-(640, I), 8
NEXT
LINE (100, 0)-(100, 480), 9
LINE (0, 400)-(640, 400), 9
LINE (100, 0)-(103, 3), 9
LINE (100, 0)-(97, 3), 9
LINE (640, 400)-(637, 403), 9
LINE (640, 400)-(637, 397), 9
LOCATE 1, 11: PRINT "Y"
LOCATE 27, 80: PRINT "t"
LOCATE 27, 11: PRINT "0"
LINE (97, 300)-(106, 300), 9
LOCATE 19, 3: PRINT Range(100 * ScY, 2)
LINE (97, 200)-(106, 200), 9
LOCATE 13, 3: PRINT Range(200 * ScY, 2)
LINE (97, 100)-(106, 100), 9
LOCATE 7, 3: PRINT Range(300 * ScY, 2)
LINE (200, 397)-(200, 403), 9
LOCATE 27, 25: PRINT Range(100 * ScX, 2)
LINE (300, 397)-(300, 403), 9
LOCATE 27, 37: PRINT Range(200 * ScX, 2)
LINE (400, 397)-(400, 403), 9
LOCATE 27, 50: PRINT Range(300 * ScX, 2)
LINE (500, 397)-(500, 403), 9
LOCATE 27, 62: PRINT Range(400 * ScX, 2)
END SUB
SUB iNTRO
'Intro screen
SCREEN 12
CLS
LINE (0, 0)-(639, 479), 7, B
LINE (3, 3)-(636, 476), 7, B
LINE (80, 128)-(566, 206), 7, B
LINE (84, 132)-(562, 202), 7, B
LINE (84, 132)-(80, 128)
LINE (566, 206)-(562, 202)
LINE (566, 128)-(562, 132)
LINE (84, 202)-(80, 206)
LOCATE 2, 38
PRINT "БГПА"
LOCATE 4, 38
PRINT "ФИТР"
LOCATE 10, 32
PRINT "Курсовой проект."
LOCATE 12, 13
PRINT "Программирование вычислительных процессов на языке BASIC."
LOCATE 18, 40
PRINT "Выполнил студент гр.107110 Орел О.О."
LOCATE 20, 40
PRINT "Проверил Москаленко А.А."
LOCATE 22, 40
PRINT "Дата 21.12.2001 г."
LOCATE 28, 30
PRINT "Нажмите любую клавишу."
WHILE INKEY$ = ""
WEND
END SUB
FUNCTION Iteration (XBeg, XEnd, Eps)
'Simple iteration method
X0 = (XBeg + XEnd) / 2
X1 = X0
X2 = -COS(EXP(.52 * LOG(X1)) + 2)
WHILE ABS(X2 - X1) > Eps
X1 = X2
X2 = -COS(EXP(.52 * LOG(X1)) + 2)
WEND
Iteration = X2
END FUNCTION
SUB Main
'Main Menu
SHARED Tkv
CALL DataOut
LINE (248, 0)-(630, 464), 7, B
LOCATE 2, 37: PRINT "------------ОСНОВНОЕ МЕНЮ------------"
LOCATE 6, 52: PRINT "УСЛОВИЕ"
LOCATE 10, 48: PRINT "ЗАДАТЬ ПАРАМЕТРЫ"
LOCATE 14, 46: PRINT "ПАРАМЕТРЫ ПО УСЛОВИЮ"
LOCATE 18, 44: PRINT "ГРАФИК В РЕАЛЬНОМ ВРЕМЕНИ"
LOCATE 22, 44: PRINT "ГРАФИК В МАШИННОМ ВРЕМЕНИ"
LOCATE 26, 53: PRINT "ВЫХОД"
LINE (304, 72)-(576, 104), 3, B
SHARED MI: MI = 1: 'First menu item
WHILE 1
Key$ = INKEY$
IF (Key$ = CHR$(0) + "P") AND (MI < 6) THEN
LINE (304, 72 + (MI - 1) * 64)-(576, 104 + (MI - 1) * 64), 0, B
MI = MI + 1
SOUND 2000, 2
LINE (304, 72 + (MI - 1) * 64)-(576, 104 + (MI - 1) * 64), 3, B
END IF
IF (Key$ = CHR$(0) + "H") AND (MI > 1) THEN
LINE (304, 424 - (6 - MI) * 64)-(576, 392 - (6 - MI) * 64), 0, B
MI = MI - 1
SOUND 2000, 2
LINE (304, 424 - (6 - MI) * 64)-(576, 392 - (6 - MI) * 64), 3, B
END IF
IF Key$ = CHR$(13) THEN
SOUND 1000, 2
SELECT CASE MI
CASE 1
CALL Text
CASE 2
CALL DataIn
CASE 3
CALL StData
CASE 4
CALL Work(Tkv)
CASE 5
CALL Work(0)
CASE 6
CALL Outro
END SELECT
END IF
WEND
END SUB
SUB MainRef (MenuItem)
'Refreshing of Main Menu
CALL DataOut
LINE (248, 0)-(630, 464), 7, B
LOCATE 2, 37: PRINT "------------ОСНОВНОЕ МЕНЮ------------"
LOCATE 6, 52: PRINT "УСЛОВИЕ"
LOCATE 10, 48: PRINT "ЗАДАТЬ ПАРАМЕТРЫ"
LOCATE 14, 46: PRINT "ПАРАМЕТРЫ ПО УСЛОВИЮ"
LOCATE 18, 44: PRINT "ГРАФИК В РЕАЛЬНОМ ВРЕМЕНИ"
LOCATE 22, 44: PRINT "ГРАФИК В МАШИННОМ ВРЕМЕНИ"
LOCATE 26, 53: PRINT "ВЫХОД"
LINE (304, 72 + (MenuItem - 1) * 64)-(576, 104 + (MenuItem - 1) * 64), 0, B
MenuItem = MenuItem + 1
SOUND 2000, 2
LINE (304, 72 + (MenuItem - 1) * 64)-(576, 104 + (MenuItem - 1) * 64), 3, B
END SUB
SUB MessageBox (Message$)
'Drops message box
Length = LEN(Message$)
LINE (300 - Length * 8, 190)-(340 + Length * 8, 290), 0, BF
LINE (300 - Length * 8, 190)-(340 + Length * 8, 290), 7, B
LOCATE 15, 41 - Length / 2: PRINT Message$
WHILE INKEY$ <> CHR$(13)
WEND
END SUB
SUB Outro
'Outro Message
SCREEN 12
CLS
LINE (0, 0)-(639, 479), 7, B
LINE (3, 3)-(636, 476), 7, B
CALL MessageBox("Программа завершила свою работу.")
STOP
END SUB
FUNCTION Range (N, Range)
'Value Precision
IntN = INT(N)
RealN = INT((N - IntN) * 10 ^ Range)
Range = IntN + RealN / 10 ^ Range
END FUNCTION
FUNCTION RootSum (A, B, C)
'Equation Roots Sum
SHARED RootsFlag
IF (B * B - 4 * A * C) >= 0 THEN
RootSum = ((SQR(B * B - 4 * A * C) - B) / 2 * A) + ((-SQR(B * B - 4 * A * C) - B) / 2 * A): RootsFlag = 1
ELSE CALL MessageBox("Ошибка в вычислении корней."): CLS : RootsFlag = 0
END IF
END FUNCTION
SUB Scale (A, B, C, MaxT, Tkv)
'Axes Scaling
SHARED d, g, ScX, ScY
MaxY = INT(A * MaxT ^ 3 + B * MaxT ^ 2 + C * MaxT + d + g)
MaxX = MaxT
ScX = MaxX / 530: 'X-Resolution
ScY = MaxY / 390: 'Y-Resolution
END SUB
SUB StData
'Standart task conditions
SHARED TBeg, TEnd, Tkv, XBeg, XEnd, Eps, A, B, C, A1, B1, C1, d, g, DataFlag
TBeg = 0
TEnd = 7
Tkv = .25
XBeg = .5
XEnd = 1
Eps = .001
A = 2.7
B = 1.5
C = 4.2
A1 = 2
B1 = 5
C1 = -2
DataFlag = 1
d = RootSum(A1, B1, C1)
g = Iteration(XBeg, XEnd, Eps)
CALL MainRef(2)
END SUB
SUB Text
'Task conditions
SCREEN 12
CLS
CALL DataOut
LINE (248, 0)-(630, 464), 7, B
LOCATE 2, 38: PRINT "--------------УСЛОВИЕ--------------"
LOCATE 4, 51: PRINT "ВАРИАНТ 23."
LOCATE 6, 34: PRINT "Составить схему алгоритма и программу для "
LOCATE 7, 35: PRINT "построения графика временной функции, ра-"
LOCATE 8, 35: PRINT "ботающую как в машинном, так и в реальном"
LOCATE 9, 35: PRINT "ботающую как в машинном, так и в реальном"
LOCATE 10, 35: PRINT "времени. Реальное время в диапазоне "
LOCATE 11, 35: PRINT "(t0-tкон.) формируется таймером в виде про-"
LOCATE 12, 35: PRINT "граммного модуля с метками Тквант., называ-"
LOCATE 13, 35: PRINT "емыми временем квантования. При вычислении"
LOCATE 14, 35: PRINT "функции использовать алгоритм Горнера."
LOCATE 16, 38: PRINT "-------------ПАРАМЕТРЫ-------------"
COLOR 4
LOCATE 18, 38: PRINT "F(t) = |At^3 + Bt^2 + Ct + d + g|"
COLOR 2
LOCATE 19, 35: PRINT "tквант.=0.25 с; t0=0 с; tкон.=7 с."
LOCATE 21, 34: PRINT "g-корень нелинейного ур-я: x+cos(x^0.52+2)=0,"
LOCATE 22, 34: PRINT "которое надо решить методом простых итераций."
LOCATE 24, 36: PRINT "Точность-0.001; Xнач.=0.5; Xкон.=1."
LOCATE 26, 34: PRINT "d-сумма корней квадр-го ур-я: A1z^2+B1z+C1=0"
LOCATE 27, 45: PRINT "При A1=2; B1=5; C1=-2."
LOCATE 28, 40: PRINT "Коэффициенты: A=2.7; B=1.5; C=A+B."
COLOR 15
WHILE INKEY$ <> CHR$(13)
WEND
CALL MainRef(0)
END SUB
SUB Work (Time)
'Working module
SHARED TBeg, TEnd, Tkv, XBeg, XEnd, Eps, A, B, C, A1, B1, C1, d, g, ScX, ScY
SHARED MI
'Data checking
IF DataFlag = 0 THEN
CALL MessageBox("Не заданы параметры задачи!")
MainRef (MI - 1)
EXIT SUB
END IF
IF (TBeg >= TEnd) OR (TBeg < 0) OR (Tkv <= 0) THEN
CALL MessageBox("Временные коэффициенты заданы неверно.")
MainRef (MI - 1)
EXIT SUB
END IF
IF (A > 5) OR (B > 10) OR (C > 10) THEN
CALL MessageBox("Один из коэффициентов A,B,C слишком велик.")
MainRef (MI - 1)
EXIT SUB
END IF
IF d > 50 THEN
CALL MessageBox("Коэффициенты A1,B1,C1 превышают допустимые значения.")
MainRef (MI - 1)
EXIT SUB
END IF
Points = (TEnd - TBeg) / Tkv
IF (Points > 30) THEN
CALL MessageBox("Слишком много точек.Уменьшите время квантования.")
MainRef (MI - 1)
EXIT SUB
END IF
IF g > 20 THEN
CALL MessageBox("g превышает допустимое значение.")
MainRef (MI - 1)
EXIT SUB
END IF
'Draw scaled grid
CALL Scale(A, B, C, TEnd, Tkv)
CALL Grid
'Gorner scheme
DIM Array(3)
DIM YBlock(Points + 1)
Array(3) = A
Array(2) = B
Array(1) = C
Array(0) = d + g
FOR X = 0 TO Points
P = Array(3)
FOR I = 3 TO 1 STEP -1
YBlock(X) = Array(I - 1) + P * (X + TBeg / Tkv) * Tkv
P = YBlock(X)
NEXT
YBlock(X) = ABS(YBlock(X))
NEXT
'Points contro
YBlock(Points + 1) = 0
IF Points <> CINT(Points) THEN YBlock(Points + 1) = -BaseF(TEnd)
'Graphics
FOR K = TBeg / ScX TO TEnd / ScX - 2
CIRCLE (100 + K, 400 - BaseF(K * ScX) / ScY), 1, 14
PAINT (100 + K, 400 - BaseF(K * ScX) / ScY), 14
NEXT
FOR K = TBeg / Tkv TO TEnd / Tkv
CIRCLE (100 + K * Tkv / ScX, 400 - YBlock(K - TBeg / Tkv) / ScY), 2, 4
PAINT (100 + K * Tkv / ScX, 400 - YBlock(K - TBeg / Tkv) / ScY), 4
IF Time <> 0 THEN CALL Delay(Time * 100)
NEXT
IF YBlock(Points + 1) < 0 THEN
CIRCLE (100 + TEnd / ScX, 400 + YBlock(Points + 1) / ScY), 2, 3
PAINT (100 + TEnd / ScX, 400 + YBlock(Points + 1) / ScY), 3
END IF
WHILE INKEY$ <> CHR$(13)
WEND
'Table
CLS
FOR I = 0 TO 13
LINE (32, I * 32 + 8)-(232, (I + 1) * 32 + 8), 7, B
NEXT
LINE (0, 0)-(240, 464), 7, B
LOCATE 7, 2: PRINT "Р"
LOCATE 8, 2: PRINT "А"
LOCATE 9, 2: PRINT "С"
LOCATE 10, 2: PRINT "Ч"
LOCATE 11, 2: PRINT "Ё"
LOCATE 12, 2: PRINT "Т"
LOCATE 13, 2: PRINT "Н"
LOCATE 14, 2: PRINT "А"
LOCATE 15, 2: PRINT "Я"
LOCATE 16, 2: PRINT " "
LOCATE 17, 2: PRINT "Т"
LOCATE 18, 2: PRINT "А"
LOCATE 19, 2: PRINT "Б"
LOCATE 20, 2: PRINT "Л"
LOCATE 21, 2: PRINT "И"
LOCATE 22, 2: PRINT "Ц"
LOCATE 23, 2: PRINT "А"
LINE (248, 0)-(630, 464), 7, B
LOCATE 2, 38: PRINT "-----ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ-----"
LOCATE 7, 50: PRINT "Коэффициенты:"
COLOR 9
LOCATE 10, 53: PRINT "A ="; A
LOCATE 12, 53: PRINT "B ="; B
LOCATE 14, 53: PRINT "C ="; C
COLOR 15
LINE (112, 8)-(112, 14 * 32 + 8), 7
LOCATE 2, 9: PRINT "t"
LOCATE 2, 20: PRINT "Y(t)"
I = 4
K = 0
WHILE K <= Points
IF I > 28 THEN
WHILE INKEY$ <> CHR$(13)
WEND
CLS
FOR I = 0 TO 13
LINE (32, I * 32 + 8)-(232, (I + 1) * 32 + 8), 7, B
NEXT
LINE (112, 8)-(112, 14 * 32 + 8), 7
LINE (0, 0)-(240, 464), 7, B
LOCATE 7, 2: PRINT "Р"
LOCATE 8, 2: PRINT "А"
LOCATE 9, 2: PRINT "С"
LOCATE 10, 2: PRINT "Ч"
LOCATE 11, 2: PRINT "Ё"
LOCATE 12, 2: PRINT "Т"
LOCATE 13, 2: PRINT "Н"
LOCATE 14, 2: PRINT "А"
LOCATE 15, 2: PRINT "Я"
LOCATE 16, 2: PRINT " "
LOCATE 17, 2: PRINT "Т"
LOCATE 18, 2: PRINT "А"
LOCATE 19, 2: PRINT "Б"
LOCATE 20, 2: PRINT "Л"
LOCATE 21, 2: PRINT "И"
LOCATE 22, 2: PRINT "Ц"
LOCATE 23, 2: PRINT "А"
LINE (248, 0)-(630, 464), 7, B
LOCATE 2, 38: PRINT "-----ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ-----"
LOCATE 7, 50: PRINT "Коэффициенты:"
COLOR 9
LOCATE 10, 53: PRINT "A ="; A
LOCATE 12, 53: PRINT "B ="; B
LOCATE 14, 53: PRINT "C ="; C
COLOR 15
LOCATE 2, 9: PRINT "t"
LOCATE 2, 20: PRINT "Y(t)"
I = 4
END IF
LOCATE I, 6: PRINT Range(K * Tkv, 3)
LOCATE I, 16: PRINT Range(YBlock(K), 3)
I = I + 2
K = K + 1
WEND
WHILE INKEY$ <> CHR$(13)
WEND
MainRef (MI-1)
END SUB
Пояснения
При задании параметров задачи нужно учитывать что во избежание некорректной работы программы переменные программы могут принимать следующие значения:
Параметры , и должны быть выбраны таким образом, что .
Процедуры и функции:
SUB Delay (Time!) - временная задержка. В процедуре используется временная константа TConst, объявленная в основной программе. Параметр Time - время в секундах.
FUNCTION BaseF! (K!) - временная функция. Используется для построения линии графика. Параметр K - значение аргумента. Возвращает значение функции для аргумента K.
FUNCTION Range! (K!, Range!) - возвращает K, отбрасывая все знаки после запятой, начиная с Range.
SUB Scale (A!, B!, C!, MaxT!, Tkv!) - масштабирование графика. Параметры: A, B, C - коэффициенты функции, MaxT - наибольшее возможное значение времени, Tkv - время квантования. Вычисляет коэффициенты масштабирования ScX, ScY.
SUB Grid () - рисование координатной сетки с нанесенными значениями.
SUB MessageBox (Message$) - вывод сообщения. Параметр - текстовая переменная, содержащая сообщение.
SUB MainRef (MenuItem!) - обновление основного меню. Параметр - номер элемента меню.
SUB Text () - вывод текстового сообщения, содержащего условие задачи.
SUB StData () - задание параметров задачи по условию.
SUB Main () - основная процедура, содержащая механизм меню.
SUB DataOut () - вывод окна с таблицей параметров задачи.
SUB DataIn () - задание параметров задачи.
SUB Outro () - вывод сообщения о завершении программы.
SUB Work (Time!) - процедура вычисления значений функции в основных точках и рисования графика в машинном или реальном времени. Параметр - время в секундах.
FUNCTION RootSum! (A!, B!, C!) - возвращает сумму корней квадратного уравнения. Параметры - коэффициенты квадратного уравнения.
FUNCTION Iteration! (XBeg!, XEnd!, Eps!) - возвращает корень нелинейного уравнения, лежащий в диапазоне [XBeg;XEnd], вычисленный методом простых итераций с точностью Eps.
SUB Intro () - вывод титульного листа.
График временной функции
программа вычислительный функция
Заключение
Мировой и отечественный опыт подготовки специалистов в области компьютерной науки и компьютерной инженерии подтверждает целесо-образность и эффективность понимания основ программирования на более простых и базирующих языках программирования, одним из которых является Basic. На примере данной программы, написанной на языке Basic, показан несложный вычислительный процесс, позволяющий обеспечить построение графика временной функции, работающий как в машинном, так и в реальном времени.
Примечание: электронный вариант программы находится на приложенной к пояснительной записке дискете под именем KURS.bas, а электронный вариант пояснительной записки - под именем Zap.doc.
Список использованной литературы
1. Дьяконов В. П. “Компьютер в быту”. - С.:Русич, 2006 г.
1. Размещено на www.allbest.ru
Подобные документы
Выбор и обоснование методов составления схемы алгоритма и разработки программы для построения графика временной функции, работающей как в машинном, так и в реальном времени. Алгоритм Горнера. Программа на языке Quick BASIC (с распечаткой листинга).
курсовая работа [55,1 K], добавлен 21.11.2012Составление схемы алгоритма и программы для построения графика временной функции, работающей как в машинном, так и в реальном времени. Выбор и обоснование методов расчета. Разработка основной программы. Блок-схемы алгоритмов. Распечатка листинга.
курсовая работа [1,5 M], добавлен 21.11.2013Создание программ в Borland C++ Builder 6.0. Разработка программы для построения графика временной функции, работающей, как в машинном, так и в реальном времени. Использование алгоритма Горнера для вычисления корня квадратного и нелинейного уравнений.
контрольная работа [925,2 K], добавлен 05.01.2016Построение схемы алгоритма и программы для создания графика временной функции, работающей в машинном и реальном времени. Выбор методов решения и их обоснование. Значение коэффициентов и временной функции. Реализация временных задержек в программе.
курсовая работа [6,2 M], добавлен 09.03.2012Общие сведения об алгоритмическом языке PASCAL. Схема алгоритма и программы для построения графика временной функции, работающей как в машинном, так и в реальном времени. Применение метода простой итерации, метода решения полинома на языке PASCAL.
курсовая работа [41,5 K], добавлен 15.03.2012Программирование на алгоритмическом языке Turbo Pascal на примере разработки алгоритма и программы расчета временной функции. Выбор, обоснование методов решения. Схемы алгоритмов основной программы и подпрограмм. Распечатка исходных и вычисленных величин.
реферат [154,8 K], добавлен 15.03.2012Понятие машинного и реального времени, дискретизация времени. Реализация временных задержек в программе. Вычисление значения многочлена методом Горнера. Разработка схем алгоритмов, основной программы и подпрограмм. Построение графика временной функции.
курсовая работа [40,7 K], добавлен 18.04.2012Математическое обоснование метода решения задачи: определенный интеграл, квадратурная формула Симпсона (формула парабол). Словесное описание алгоритма и составление его блок-схемы. Выбор языка программирования. Текст программы решения задачи, ее листинг.
курсовая работа [593,6 K], добавлен 09.07.2012История создания и развитие языка программирования Pascal, его версии. Особенности и порядок построения графика функции на языке Turbo Pascal с использованием декартовой системы координат. Блок схема алгоритма процедур, листинг и тестирование программы.
курсовая работа [102,7 K], добавлен 23.12.2011Составление блок-схемы алгоритма решения задачи, погрешности вычисления суммы членов числового ряда. Разработка программ на языке на Visual Basic, работа с массивами. Особенности работы со строковыми данными. Варианты реализации формы приложения.
контрольная работа [220,4 K], добавлен 18.06.2010