![](/user_photo/2706_HbeT2.jpg)
Арифметические выражения.
Для записи арифметических выражений используются знаки +,-,*,/,^, а также встроенные математические функции (см. таблицу). Порядок вычисления в арифметическом выражении: встроенные функции, затем ^ (возведение в степень), затем */, затем +-.
|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
В
а
1
0.
Вычислить медиану mc
и биссектрису WА.
1
b
с
12. Вычислить медиану mc и радиус вписанной окружности r.
1
А
1
С
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-ю метку в списке. Например, решение квадратного уравнения ax2 + bx +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 |