Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы 1-3.doc
Скачиваний:
3
Добавлен:
19.09.2019
Размер:
339.46 Кб
Скачать

Арифметические выражения.

Для записи арифметических выражений используются знаки +,-,*,/,^, а также встроенные математические функции (см. таблицу). Порядок вычисления в арифметическом выражении: встроенные функции, затем ^ (возведение в степень), затем */, затем +-.

|x|

Модуль (абсолютное значение)

ABS(x)

ex

Экспонента

EXP(x)

ln x

Натуральный логарифм

LOG(x)

Квадратный корень

SQR(x)

arctg x

Арктангенс

ATN(x)

cos x

Косинус

COS(x)

sin x

Синус

SIN(x)

tg х

Тангенс

TAN(x)

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

sin2x SIN(x)^2

sin (cos x) SIN(COS(x))

arctg|x| ATN(ABS(x))

Оператор безусловного перехода GO TO <метка>: или <номер строки>.

Для перехода к нужному оператору выше или ниже по тексту программы используется оператор GO TO с указанием номера или метки строки. Часто его использую вместе с оператором условия, в этом случае ключевое слово GO TO может быть опущено.

IF A>0 THEN 20 ‘переход на строку с номером 20

Приведенных выше сведений достаточно для написания кода программы по приведенным выше блок-схемам.

5 CLS ‘Оператор очистки экрана перед вводом данных

10 REM Вычисление площади треугольника – Герон Схема 1

20 INPUT “Введите длины сторон треугольника a,b,c”,a,b,c

30 p=(a+b+c)/2

40 s=SQR(p*(p-a)*(p-b)*(p-c))

50 PRINT USING “Площадь треугольника s=###.## для а=##.## b=##.## c=##.##”;s,a,b,c

60 PRINT “Расчет выполнил студент группы 04-ТМ Иванов А.А. Вариант №2”

70 END

Для схемы 2 в данную программу нужно добавить строку:

25 IF NOT((a+b>c) AND (a+c>b)AND(b+c>a)) then PRINT “Неверные соотношения длин сторон!”:GO TO 20

В результате такой строки данные будут вводится до тех пор, пока соотношения для длин не будут выполнены.

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

15 DEFINT a,b,c

Задание к лабораторной работе №1 (о треугольнике).

Треугольник задан координатами вершин А(0; 0), B(i; i-1) и C(-i; i+1), где i - номер варианта.

1. Вычислить высоту hа и биссектрису WC.

2. Вычислить медиану mа и биссектрису WB.

3. Вычислить биссектрису WA и радиус вписанной окружности r.

4. Вычислить высоту hа и медиану mb.

5. Вычислить медиану mb, и биссектрису WC.

6. Вычислить биссектрису WА, и радиус описанной окружности R.

7. Вычислить высоту hb и биссектрису WА.

8. Вычислить высоту hb и медиану mc.

9

В

а

. Вычислить высоту hа и радиус вписанной окружности r.

1 0. Вычислить медиану mc и биссектрису WА.

1

b

с

1. Вычислить высоту hb, и биссектрису WC.

12. Вычислить медиану mc и радиус вписанной окружности r.

1

А

3. Вычислить высоту hb, и медиану mа.

1

С

4. Вычислить медиану mа и радиус описанной окружности R.

15. Вычислить медиану mа и биссектрису WC.

16. Вычислить высоту hc и биссектрису wа

17. Вычислить медиану mb, и радиус вписанной окружности r.

18. Вычислить высоту hc. и медиану mа.

19. Вычислить медиану mb, и биссектрису WА.

20. Вычислить медиану mc и радиус описанной окружности R.

21. Вычислить высоту hc и биссектрису WB

22. Вычислить высоту hc и медиану mb.

23. Вычислить высоту hа и радиус описанной окружности R.

24. Вычислить высоту hа и биссектрису WB.

25. Вычислить высоту hа и медиану mc.

Справочные сведения:

- расстояние между точками (x1,y1), (x2,y2) :

-координаты середины отрезка x=(x1+x2)/2 y=(y1+y2)/2

- полупериметр треугольника: p=(a+b+c)/2

- площадь треугольника:

- длина высоты к стороне: ha=2S/a, hb=2S/b, hc=2S/c

- длина медианы к стороне:

- длина биссектрисы угла, противолежащего стороне:

- радиус описанной окружности: R=abc/(4S)

- радиус вписанной окружности: r=S/p, где a,b,c – длины сторон треугольника, A,B,C – противолежащие им углы..

Указания к решению. Составить блок-схему, предусмотреть целый тип для вводимых данных.

Исходные данные – номер варианта (проверка положительности). Промежуточные данные (в зависимости от варианта) – координаты точек, длины сторон, полупериметр, площадь.

5 CLS

10 REM Вариант 25

20 DIM i,Ax,Ay,Bx,By,Cx,Cy AS INTEGER

30 INPUT “Введите номер варианта >0”,i

40 IF i<=0 THEN PRINT “Должно быть положительное число!”:GO TO 30

Определим координаты точек согласно рисунку

50 Ax=0:Ay=0:Bx=i:By=i-1:Cx=-i:Cy=i+1

Найдем длины сторон a=BC, b=CA ,с=ВА по формуле расстояния между точками

60 a=SQR((Bx-Cx)^2+(By-Cy)^2): b=SQR((Cx-Ax)^2+(Cy-Ay)^2): c=SQR((Bx-Ax)^2+(By-Ay)^2)

Для нахождения высоты нам потребуется площадь

70 p=(a+b+c)/2: S=SQR(p*(p-a)*(p-b)*(p-c))

80 mc=1/2*SQR(2*a^2+2*b^2-c^2) ‘ медиана mc

90 ha=2*S/a ‘высота ha

100 PRINT USING “медиана mc=##.## высота ha=##.## “;mc,ha

110 PRINT “Расчет выполнил студент группы 04-ТМ Иванов А.А. Вариант №”;i

120 END

Лабораторная работа №2. Программирование линейных вычислительных процессов.

Цель: освоить программирование линейных вычислительных процессов, применение встроенных математических функций.

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

Для вычисления функций, которые не являются встроенными в языке Бейсик, можно использовать следующие математические формулы:

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

Пример.

Вычислить при a=1.72, b=2.21, x=0.7

Введем обозначения для повторяющихся частей выражения:

p=4*arctg(1) С= q=a2+bx

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

CLS

INPUT “Введите a,b,x”,a,b,x

p=ATN(1)*4

c=COS(p/3-x)^3: q=a*a+b*x: d=ABS(LOG(q)/LOG(10))

f=SQR(q)/(a+x)+d/(c+1))

z=c*f/(q^(1/3)-a*x)

PRINT USING “z=####.## при x=#.#”;z,x

PRINT “Задание выполнил студент Иванов А.А. группа 04-ТМ Вариант 30”

END

Задание к лабораторной работе №2.

Вычислить для указанных значений переменных выражение:

1. при x=3.2, y=6.84

2. при x=4.1 y=0.75

3. при x=3.42 y=-0.6

4. при x=0.51 y=7.36

5. при x=2.16 y=-0.08

6. при x=0.5 y=10.6

7. при x=-1.6 y=5.4

8. при x=3.12 y=8.5

9. при x=8.41 y=-3.1

10. при x=2.4 y=-3.5

11. при x=0.48 y=6.3

12. при x=0.65 y=12.4

13. при x=2.17 y=36

14. при x=7.32 y=0.81

15. при x=6.25 y=12.3

16. при x=12.9 y=2.95

17. при x=-0.23 y=9.4 a=-0.36 b=4.78

18. при x=-0.05 y=4 a=0.3 b=-0.21

19. при x=5.35 y=0.73

20. при x-0.97 y=0.27 a=21.7 b=-0.29

Лабораторная работа 3. Программирование разветвляющихся алгоритмов.

Цель: освоить программирование разветвляющихся конструкций.

а) Безусловный выбор. Обычное разветвление осуществляется оператором GOTO ‹ метка ›, либо оператором перехода с выбором

ON ‹ арифм. выражение › GOTO ‹ метка ›, ‹ метка ›,...

При этом значение арифметического выражения округляется до целого n и выполняется переход на n-ю метку в списке. Например, решение квадратного уравнения ax2 + bx +c = 0 (a ≠ 0) можно выполнить

программой

DEFINT I

d = b*b - 4ac

i = 2 + SGN(d)

ON i GOTO ZERO, ONE, TWO

EX: PRINT "Задача решена": END

ZERO: PRINT "Корней нет" : GOTO EX

ONE: PRINT "Один корень х ="; - 0.5 * b / a : GOTO EX

TWO: d = SQR(d)

PRINT "2 корня: х1 = "; 0.5 * (d - b) / a;"; x2 = "; - 0.5 * (d + b) / a

GOTO EX

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

b) Условный выбор имеет несколько форм (условный оператор):

1) Простое условие:

IF ‹условие› THEN ‹оператор›

2) Условие с альтернативой

IF ‹условие› THEN ‹оператор 1› ELSE ‹оператор 2›.

При этом оператор, оператор 1 (и, или) оператор 2 сами могут быть условными операторами. Здесь условие - логическое выражение, возможно с использованием логических функций : OR = "или", AND = = "и", XOR = "разделенное или", NOT = "не"

3) блочная форма (записывается в несколько строк):

IF ‹условие› THEN

‹блок операторов›

ELSE

‹блок операторов›

END IF

При этом блок ELSE (который может отсутствовать, если нет альтернативы) может сам принимать условие в виде блока

ELSEIF ‹условие› THEN

‹блок операторов›

с) альтернативный выбор в блоке SELECT CASE, который имеет

конструкцию:

SELECT CASE ‹идентификатор›

CASE ‹выражение› 'конкретное значение

‹блок операторов›

CASE ‹выр.›, ‹выр.› IS ≥ ‹выр.› 'сравнение

‹блок операторов›

CASE ‹выр.› TO ‹выр.› 'перечисление 2<=x<=5 2 TO 5

‹блок операторов›

CASE ELSE 'все остальное

‹блок операторов›

END SELECT

Пример. Вычислить при x=3

Переменная x имеет только одно значение, поэтому для ее ввода можно использовать оператор присваивания. Переменные a и b принимают разные исходные значения, поэтому их лучше вводить с клавиатуры.

Условия можно переписать в следующем виде: a-b>0 a-b<0 a-b=0

Введем также переменную c=a-b, поскольку эта величина используется неоднократно.

a) Использование оператора IF THEN ELSE блочной формы:

CLS

x=3

INPUT “Введите a,b”, a,b

c=a-b

IF c>0 THEN

z=x*LOG(c)/LOG(10)*x

ELSEIF c<0 THEN

z=c^x

ELSE

z=0

END IF

PRINT USING “z=####.## при a=##.## b=##.##”;z,a,b

PRINT “Задание выполнил студент Иванов А.А. группа 04-

ТМ Вариант 30”

END

б) Использование оператора SELECT CASE

CLS

x=3

INPUT “Введите a,b”, a,b

c=a-b

SELECT CASE c

CASE IS>0

z=x*LOG(c)/LOG(10)*x

CASE IS<0

z=c^x

CASE ELSE

z=0

END SELECT

PRINT USING “z=####.## при a=##.## b=##.##”;z,a,b

PRINT “Задание выполнил студент Иванов А.А. группа 04-

ТМ Вариант 30”

END