Программирование вычислительных процессов на языке 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.