Академический Документы
Профессиональный Документы
Культура Документы
Лебедева
ПРАКТИКУМ
ПО АЛГОРИТМИЧЕСКОМУ ПРОГРАММИРОВАНИЮ
БЕЙСИК
ProCNC. Info
2008
2
СОДЕРЖАНИЕ
ПРЕДИСЛОВИЕ
РАЗДЕЛ 1. АЛГОРИТМИЧЕСКИЙ ЯЗЫК БЕЙСИК …………………………. 7
3
5.2. Примеры циклических программ…………………………………………32
ГЛАВА 6. ПОДПРОГРАММЫ…………………………………………………………………… 45
6.2. Подпрограммы……………………………………………………………. 48
ВЕЛИЧИНАМИ………………………………………………………………………. 56
Программы с разветвлениями………………….……………………….. 65
4
3.2. Лабораторная работа “ L1 “: Записи арифметических
. Программы с разветвлениями…………………………………77
К ЛАБОРАТОРНЫМ РАБОТАМ……………………………………. 92
5
ПРЕДИСЛОВИЕ
Общество стало перед необходимостью повсеместного внедрения в производственный
процесс компьютерной техники. Начало всему этому должно быть в школе. В большинстве
школ созданы компьютерные классы, но эти классы недостаточно снабжены методическими
пособиями, сборниками лабораторных работ и упражнений, компьютерными программами.
В качестве алгоритмического языка взят язык Бейсик. Его структура, операторы изложены
в разделе 1, содержащего 7 глав. Здесь работа каждого из рассмотренных операторов
иллюстрируется большим количеством компьютерных программ.
Многолетняя работа авторов в высших учебных заведениях позволяет сделать вывод, что
предлагаемая логика изучения алгоритмических языков является наиболее рациональной.
Надеемся, что читатель, изучив предложенное пособие, сможет в дальнейшем самостоятельно
программировать необходимые ему задачи и пользоваться более фундаментальными
источниками по алгоритмическим языкам.
6
Раздел 1. Алгоритмический язык Бейсик
Глава 1. Начальные сведения
3) арабские цифры Ø 1 2 3 4 5 6 7 8 9.
7
Log – натуральный логарифм; EXP – число е;
8
Примеры неправильно записанных чисел:
12. – оканчивается точкой;
9
Примеры
2
SQR(3*X+SQR(ABS(X)))
3 sin|x| SIN(ABS(X))
4
EXP(-X^2/2)
10
Пример 2.1. Пусть Х=32+sin .
10 PI=3.1415
20 X =3^2+SIN(PI/6)
Переменной Х будет присвоено значение 9.5.
В правую часть оператора присваивания могут входить имена переменных, но к моменту
выполнения оператора каждая из этих переменных должна получить числовое значение.
Числовые значения переменные получают либо с помощью оператора присваивания, либо с
помощью ввода.
Периметр Р=2а+2b
10 А=13.5
20 В=7.2
30 Р=2*А+2*В
В операторе присваивания в левой и правой частях может стоять одно и то же имя
переменной.
Например: Х=Х+5.5
Это означает, что переменная Х принимает новое значение равное прежнему плюс 5.5.
Пусть Х=2. В результате выполнения оператора присваивания Х получает значение 7.5 и в
последующих вычислениях значение Х равно 7.5.
11
Список переменных - это имена переменных, которые отделяются друг от друга
запятыми. Например: для присваивания начальных значений переменным A,B,C оператор
ввода можно записать так: 30 INPUT A,B,C
При выполнении оператора INPUT на экране дисплея появляется знак ” ? ” и ЭВМ ожидает
ввода с клавиатуры необходимой информации. Для этого следует набрать числовое значение
каждой переменной оператора INPUT , отделив их друг от друга и нажать клавишу ENTER- ”
ввод ”. Количество и тип вводимых значений должен соответствовать количеству и типу
переменных в списке оператора INPUT.
10 INPUT A
20 INPUT B
30 P=2*A+2*B
PRINT - печатать.
Выражения в списке отделяются друг от друга запятой или точкой с запятой. Если
выражения в списке оператора print отделены друг от друга точкой с запятой, то их значения
выводятся через пробел.
30 PRINT 1; 2; 3
На экране будет
1 2 3
12
Если разделителем является запятая, то строка экрана делится на зоны по 14 позиций в
каждой зоне и выводимые результаты располагаются по одному в зоне:
1 . 2 3 . 7 5
Оператор PRINT при отсутствии списка выражений обеспечивает вывод пустой строки.
30 PRINT ”X1=2.5”
X 1 = 2 . 5
X 1 =
a+b
Среднее арифметическое S= .
2
Среднее геометрическое G = ab .
13
1 1 1 1 2ab
= ( + ). Отсюда c=
c 2 a b a+b
10 A=5
20 B=7
30 S=(A+B)/2
40 G=SQR(A*B)
50 C=2*A*B/(A+B)
70 END
10 INPUT A
20 INPUT B
30 INPUT C
40 INPUT D
50 INPUT X
60 S=A*X+B (ax + b)
70 S=S*X+C ((ax + b) x + c
90 PRINT ”S=”; S ((ax + b) x + c) x + d
100 END
14
Глава 3. Операторы управления
GOTO n
и осуществляет переход к оператору программы с номером n.
Пример 3.1.
10 A=2
20 C=A+1
30 GOTO 50
40 C=A+2
50 PRINT ”C=”; C
60 END
15
IF (если), THEN (то), ELSE (иначе) – служебные слова.
Логическое выражение B принимает одно из двух возможных значений:
«истина» (да) или «ложь» (нет).
В простейшем случае – это отношения вида:
A1=A2, A1>A2, A1<A2, A1>=A2, A1<=A2, A1<>A2.
А1 и А2 – арифметические выражения.
Выполнение условного оператора можно изобразить в виде блок – схемы
.
истина
В Р
Q Следующий оператор
Пример 3.2. Определить значение переменной С, которое она получит при выполнении
программы.
10 C = 2.5
20 K = -1.5
30 A = (C ^ 2 - K) * 3 - 13
40 IF A < 0 THEN
16
50 C = (A + C) / 2
60 ELSE
70 C = (A - K) / C
80 END IF
90 PRINT "C="; C
100 END
Результат: С=4.
оператора
истина
В Р Следующий
ложь
17
Пример 3.4.
10 A=10
20 B=20
30 IF B>A THEN 70
40 C=A+B
41 END IF
50 PRINT ”C=’’; C
60 GO TO 80
70 PRINT ”C=”; A-B
80 END
В результате выполнения программы С имеет значение: С= -10.
Используется также простой вариант структуры IF.
IF B THEN P ELSE Q
18
70 IF C < 0 THEN
80 C=A+B
85 END IF
86 END IF
90 ELSE
100 IF A < B THEN
110 IF C < D THEN
120 C=A-B
130 END IF
135 END IF
136 END IF
140 PRINT "C="; C
150 END
Результат: С= -2.
1 X
0
3
Х< -3 X>4 X < -3 OR X>4
-3 4
19
Пример 3.7.
10 A=10
20 B=20
30 X=5
40 Y=3
50 IF A<B AND X>Y THEN Z=X+Y
60 PRINT ”Z=”; Z
70 END
Результат выполнения программы: Z = 8
Оператор ELSEIF
Существует расширенный вариант стуктуры IF- THEN- ELSE, который обеспечивает передачу
управления по нескольким направлениям путем использования дополнительного оператора
ELSEIF (иначе если).
Пример 3.8.
10 X = -2
20 IF X >= -2 AND X <= 0 THEN
30 Y = ABS(X)
40 ELSEIF X > 0 AND X < 1 THEN
50 Y = SQR(X)
60 ELSEIF X >= 1 AND X <= 2 THEN
70 Y = EXP(X)
80 END IF
90 PRINT "X="; X, "Y="; Y
100 X = X + .5
110 IF X <= 2 THEN GOTO 20
120 END
X=-2 Y=2
X=-1.5 Y=1.5
X=-1 Y=1
X=- .5 Y= .5
X=0 Y= 0
X= .5 Y= 7071068
X=1 Y=2.718282
X=1.5 Y=4.481689
X=2 Y=7.389056
20
Пример 3.9. Определить значение переменной Х, которое она получит при выполнении
программы.
10 X = 2.5
20 Y = -1.5
30 Z = (X ^ 2 - Y) * 3 - 22.5
40 IF Z < 0 THEN
41 X = 7.3 * X
50 ELSE
51 X=X^2
60 END IF
70 IF Z > 10 THEN
71 X = (Z + X) / 2
80 END IF
81 PRINT "X="; X
90 END
Ответ: Х=6.25
21
Пример 3.10. Составить программу нахождения корней квадратного уравнения
ax 2 + bx + c = 0 .
- b + b 2 - 4ac - b - b 2 - 4ac
x1 = ; x2 =
2a 2a
Начало
Описание
и ввод
d: = -4ac
НЕТ
Вычисление
d<0 X1, X2
ДА
Вывод
«Действительных Вывод
корней нет» a, b, c; X1, X2
Конец
10 PRINT "Решение квадратного уравнения”
20 INPUT A
30 INPUT B
40 INPUT C
22
50 D=B^2-4*A*C
60 IF D < 0 THEN 110
70 x1 = (-B + SQR(D)) / 2 / A
80 x2 = (-B - SQR(D)) / 2 / A
90 PRINT "X1="; x1, "X2="; x2
100 GOTO 120
110 PRINT "Действительных корней нет
120 END
Рeшeниe квадратного уравнения
a=2 b=3 c=-1 x1= 0.2808 x2= -1.7808
Пример 3.11. Составить таблицу значений функции y = +4x-1 на отрезке [a;b] с шагом h.
Принять: a = -2; b =2 ; h = 0,5.
Блок – схема
Начало
Описание a, b, h
X, Y
Ввод a, b, h.
x=a
y= +4x-1
да
Вывод X,Y
х: = x + h x ≤b
Нет
Конец
23
10 PRINT " Табулирование функции "
20 INPUT A
30 INPUT B
40 INPUT H
50 PRINT "X", "Y"
60 X = A
70 Y = X ^ 3 + 4 * X - 1
80 PRINT X, Y
90 X = X + H
100 IF X <= B THEN 70
110 END
Табулирование функции
a=-2
b=2
h=0.5
x y
-2.000 -17.000
-1.500 -10.375
-1.000 -6.000
-0.500 -3.125
0.000 -1.000
0.500 1.125
1.000 4.000
1.500 8.375
2.000 15.000
24
Глава 4. Массивы. Работа с массивами
4.1. Описание массива
Массивом может быть строка чисел А = [9,14,20,40] или прямоугольная таблица чисел
В=
Массив как единое целое обозначается именем. Имена массивов, как и имена переменных,
назначаются программистом по тем же правилам. Отдельные величины, образующие массив,
называются элементами массива или переменными с индексами.
Для обращения к отдельному элементу массива следует указать имя массива и в круглых
скобках написать его номер. Нумерация элементов массива начинается с нуля. Например: для
обращения в массиве А к элементу, значение которого 20, необходимо записать А(2) Если
массив двумерный, то элемент массива имеет два индекса, разделенные запятой. Первый
индекс указывает номер строки, второй - номер столбца.
25
Например: массив В = в ячейках памяти ЭВМ располагается следующим
Для того, чтобы выделить ячейки памяти ЭВМ для массивов в программе их надо описать.
Блок данных – набор чисел(или строковых данных), предназначенных для ввода в память.
Признаком присутствия блока данных является служебное слово
DATA
В одном операторе DATA может быть столько чисел,сколько поместится в одной строке.
READ A, B, C
26
A, B, C – имена переменных, которым присваиваются значения из блока данных.
Число имен в списке оператора READ не должно превышать числа констант в блоке
данных,иначе машина выдаст сообщение об ошибке и остановится. Если число имен в списке
READ меньше числа констант в блоке данных,то некоторые константы останутся пока
В программе может быть любое количество операторов DATA. Операторы DATA можно
помещать в любом месте программы до оператора END. Когда начинает работать программа,то
одним из действий компьютера является поиск операторов DATA и запись значений из этих
операторов в специальную секцию памяти.
Операторы READ читают DATA по порядку (по номеру строки).Тип переменных, задаваемый
для оператора READ должн совпадать с типом соответствующей константы в операторе DATA.
Если необходимо возобновить чтение данных с начала единого блока в программу включают
оператор
RESTORE
27
4.3. Программы с массивами
Пример 4.1. Дан массив А(1). Сформировать массив В(1,1) по правилу b (i,j)=аi – 3aj.. i=0,1;
j=0,1. A(0)=3.4; A(1)=4.2.
Программа
Пример 4.2. Найти сумму положительных и отрицательных элементов массива А(5) = 2.5,
- 3.4, - 7.1, 0.5, - 4.7, 6.
. Программа
10 DIM A(5)
20 DATA 2.5, -3.4, -7.1, 0.5, -4.7,6
30 SP = 0
40 SO = 0
50 I = 0
60 READ A(I)
70 IF A(I) >= 0 THEN SP = SP + A(I) ELSE SO = SO + A(I)
80 I = I + 1
90 IF I <= 5 THEN 60
100 PRINT "SP="; SP, "SO="; SO
110 END
SP= 9 SO= -15.2
28
Блок – схема
начало
Описание массива,
объявление данных
I=1
ввод
элемента
массива
да
SP=SP+A(I)
A(i)>=0
нет
I<=6
SO = SO+A (I) I=I+1
да нет
вывод
SP,SO
конец
29
Глава 5. Оператор цикла
5.1. Структура счетного оператора цикла FOR
FOR X=m1 TO m2
Блок операторов
NEXT X
30
Выполнение оператора цикла можно представить в виде следующей схемы
X:= m1
тело цикла
X:= X+H
да
X≤m2
нет
следующий
оператор
31
5.2. Примеры циклических программ
Пример 5.2. Составить программу вычисления суммы обратных квадратов чисел от 1 до 15.
S=1+ + +…+ .
Программа Блок-схема
50 NEXT K
K=1
60 PRINT ”S=” ; S
70 END
Результат S=S +
S=1.58044 k=k+1
Да
k≤15
Нет
Вывод S
Конец
32
Пример 5.3. Составить таблицу значений функции y = 2 x + sin( x 2 ) на отрезке[a, b] сшагом h.
a= -0.5, b= 2.5, h= 0.5.
10 PRINT "Табулирование функции"
20 PRINT "X", " Y"
30 A = -.5
40 B = 2.5
50 H = .5
60 FOR X = A TO B STEP H
70 Y = 2 ^ X + SIN(X * X)
80 PRINT X, Y
90 NEXT X
100 END
Табулирование функции
X Y
-0.5 0.9545107
0 1
0.5 1.661618
1 2.841471
1.5 3.6065
2 3.243197
2.5 5.623675
Пример 5.4. Найти значение функции y = 5 x 3 + 2 + x при x = -1.2, 0.5, 1.4, 2.7.
33
Вычисление значений функции
X=-1.2 Y=-7.745574
X=0.5 Y= 2.206139
X=1.4 Y=15.56391
X=2.7 Y=100.583
å
k
sin kn
S = åk =1
4 n =1
; S1= - сумма; f=1*2*3…=k! – факториал.
k!
10 S = 0
20 S1 = 0
30 F = 1
40 FOR K = 1 TO 4
50 FOR N = 1 TO K
34
60 S1 = S1 + SIN(K * N)
70 F=F*K
80 S = S + S1 / F
90 NEXT N
100 NEXT K
110 PRINT "S="; S
120 END
S=2.09766
A(1,1)= 1.2, 2.1, 4.01, 3.13; B(1,1)= 12.3, 0.81, 3.05, 2.06.
35
i =1 j =1 c(i,j )= 21.165
i =1 j =2 c( i,j )= 5.298
i =2 j =1 c( i,j )= 58.870
i =2 j =2 c( i,j )= 9.696
5.3. Цикл DO
DO WHILE (условие)
------------ блок
------------ операторов
LOOP
36
Оператор цикла DO WHILE проверяет логическое выражение в начале цикла до того, как
цикл выполняется в первый раз и затем повторяется. Оператор LOOP WHILE проверяет
логическое выражение в конце цикла перед его повторным исполненим.
DO
------------ блок
------------ операторов
LOOP WHILE (условие)
37
10 C=.0005
20 SNAK = -1
30 S = 1
40 S1 = 1
50 k = 1
60 DO
70 S1 = SNAK / (2 * k + 1)
80 S = S + S1
85 SNAK = -SNAK
90 k=k+1
100 LOOP WHILE ABS(S1) > C
110 S=4*S
120 PRINT "PI ="; S, "K="; k
130 END
PI=3.142591 K=1001
Член ряда, котрий стал меньше c=0.5*10 находится на 1001 месте ряда p /4.
-3
DO UNTIL DO
(условие) ----------- блок
----------- блок ------------ операторов
------------ операторов
LOOP LOOP UNTIL (условие)
Операторы DO UNTIL или LOOP UNTIL обеспечивают повторение цикла, пока логическое
выражение не станет истинным.
Примечание. Операторы DO WHILE и DO UNTIL проверяют логическое выражение в
начале цикла до того, как цикл выполняется в первый раз и затем повторяется. Операторы LOOP
WHILE и LOOP UNTIL проверяют логическое выражение в конце цикла перед его повторным
исполнением.
Пример 5.10. Найти сумму чисел от 1 до 50 с использованием цикла DO UNTIL.
10 K=0
20 S=0
30 DO UNTIL K = 50
38
40 K=K+1
50 S=S+K
60 LOOP
70 PRINT "S="; S
80 END Результат : S=1275
10 X = 2
20 S = 1
30 K = 0
40 DO
50 K=K+1
60 S = S + X ^ (2 * K)
70 LOOP UNTIL X ^ (2 * K) > 10000
80 PRINT "K="; K, "S="; S
90 END
Результат: K=7 S=21845
39
Корень кубический
N= 128 X=5.039684 A=0.0001 K=192
Пример 5.13. Смотрите пример 4.1 главы 4. Дан массив А(1). Сформировать массив
В(1,1) по правилу b (i,j ) = аi – 3aj.. i = 0,1; j = 0,1. A (0) = 3.4; A (1) = 4.2.
10 DIM A(1), B(1, 1)
20 DATA 3.4,4.2
30 FOR I = 0 TO 1
40 READ A(I)
50 NEXT I
55 PRINT " MAССИВ B "
60 FOR I=0 TO 1
70 FOR J = 0 TO 1
80 B(I, J) = A(I) - 3 * A(J)
90 PRINT "I="; I, "J="; J, " B="; B(I, J)
100 NEXT J
110 NEXT I
120 END
МАССИВ B
I=0 J=0 B(0,0)= -6.80
I=0 J=1 B(0,1)= -9.19999
I=1 J=0 B(1,0)=-6
I=1 J=1 B(1,1)=-8.4
40
90 FOR I = 0 TO N
100 READ B(I)
110 NEXT I
120 FOR I = 0 TO N
130 READ FIGR(I)
140 NEXT I
150 FOR I = 0 TO N
160 FI(I) = FIGR(I) * PI / 180
170 S(I) = (A(I) * B(I) * SIN(FI(I))) / 2
180 PRINT "I="; I, " S="; S(I)
190 NEXT I
200 FOR I = 0 TO N - 1
210 IF S(I + 1) > S(I) THEN
220 S(I) = S(I + 1)
230 PRINT S(I)
240 ELSE
250 S(I + 1) = S(I)
260 PRINT S(I + 1)
270 END IF
280 Smax = S(I + 1)
290 NEXT I
300 PRINT " Smax="; Smax
310 END
I=0 S= 2 4.24264
I=1 S= 4.242664 15.21426
I=2 S= 15.21426 15.21426
I=3 S= 12.99038 17.32051
I=4 S= 17.32051 17.32051
I=5 S= 5.795555
Smax = 17.32051
i - 0.1
Пример 5.15. Последовательность x1 , x 2 ,... образована по закону xi =
i + tg 2i
3
41
50 X = (I - .1) / (I ^ 3 + ABS(TAN(2 * I)))
60 PRINT X
70 I = I + 1
80 LOOP
90 END
0.283 , 0.207 , 0.106, 0.055 , 0.039 , 0.027 , 0.020 , 0.015 , 0.012 , 0.010
150 END
A(0)= 8;
n
(-1) k (k + 1)
Пример 5.17. Задано натуральное число n. Вычислить выражение å
k =0 k!
.
n
(-1) k (k + 1) 3 4 (-1) k (k + 1)
å
k =0 k!
= 1 - 2 + - + .... +
2! 3! k!
+ ...
Обозначим сумму первых n членов через S. Общий член ряда обозначим через U.
(-1) k k (-1) k (k + 1)
U k -1 = ; Uk =
(k - 1)! k!
Чтобы получить каждый последующий член ряда надо предыдущий умножить на один и тот же
42
Uk (-1) k (k + 1)(k - 1)! k +1
множитель = k -1
=- 2 .
U k -1 k!(-1) k k
CLS
N=5
S=1
U=1
FOR K = 1 TO N
U = U * (-(K + 1) / K / K)
S=S+U
NEXT K
PRINT "S="; S
END
S= - 8.33344E-03
Пример 5.18. Заданы целые числа a1 , a 2 ....a n . Вычислить сумму тех чисел
] Program Pr518;
Uses Crt;
const N=6;
Label
lb1;
var A:array[1..N] of integer;
var S,i:integer;
Begin
Clrscr;
for i:=1 to N do
begin
43
write('A[i]=');
read(A[i]);
end;
i:=1; S:=0;
lb1:
if abs(A[i])<i*i then
S:=S+A[i];
i:=i+1;
if i<= N then goto lb1;
writeln;
writeln(' S=',S);
End.
A[i]=2, A[i]=5, A[i]=3, A[i]=-4 , A[i]=8, A[i]=-5.
Результат: S= 12
44
Глава 6. Подпрограммы
45
Вычисление значения функции, определенной в операторе DEF, происходит лишь в момент
обращения к ней. Обращение производится по имени функции, за которым в круглых скобках
указываются фактические аргументы. Фактические аргументы могут быть выражением. При
обращении к функции вычисляются значения всех фактических аргументов. Затем они
присваиваются формальным параметрам в описании функции и вычисляется значение
выражения , указанного в операторе DEF. Полученный результат является значением
вычисленной функции.
Пример 6.1.
DEF FNZ(X)=X*X+5
A=2
B=3
PRINT FNZ(A), FNZ(B+1) ,FNZ(B-A), FNZ(FNZ(A))
END
После выполнения программы на экране монитора появится информация:
9 21 6 86
При обращении к функции количество, порядок следования и тип фактических и
формальных аргументов должны соответствовать друг другу.
Результатом выполнения оператора DEF есть одно число.
Пример 6.2. Найти периметр треугольника по координатам его вершин:
A (2.5 ; 3.0) , B (-1.2 ; -4.0), C (5.0 ; -2.5).
Периметр треугольника Р = АВ + ВС + СА, т.е. отыскание длины отрезка осуществляется
три раза. Можно оформить это действие в виде функции пользователя. Расстояние между двумя
точками находится по формуле:
5 CLS
10 PRINT "Вычисление периметра треугольника"
20 DEF FND (X1, X2, Y1, Y2) = SQR((X2 - X1) ^ 2 + (Y2 - Y1) ^ 2)
30 L1 = FND(2.5, -1.2, 3, -4)
40 L2 = FND(-1.2, 5, -4, -2.5)
50 L3 = FND(2.5, 5, 3, -2.5)
60 P = L1 + L2 + L3
46
70 PRINT "P="; P
80 END
Вычисление периметра треугольника
P=20.3381
Комментарий.
3) L1, L2, L3– длины сторон треугольника, которые насчитываются в процессе работы
оператора DEF.
6,9 + y 2,1z + z 4
a == ; b= ,
y 2 + 1 + 2 y + 3y 2 z 2 + 1 + 2 z + 3z 2
k = p2 + 1+ 2 p + 3p2
10 Y = 4
20 Z = 2
30 DEF FNK (P) = P * P + SQR(1 + 2 * P + 3 * P * P)
40 A = (6.9 + Y) / FNK(Y)
50 B = (2.1 * Z + Z ^ 4) / FNK(Z)
60 PRINT "A="; A, "B="; B
70 END Результат: A= .4628482 B=2.486733
47
6.2. Подпрограммы
При всей своей полезности функции пользователя имеют ограничения - они определяются
только с помощью одного выражения и позволяют одновременно получить всего лишь один
результат. В большинстве случаев вспомогательные алгоритмы включают несколько команд
или составляются для получения более чем одного результата. В этом случае используются
подпрограммы.
n GOSUB m
K RETURN
48
Пример 6.4. Составить программу вычисления числа сочетаний
n!
c nm =
( n - m)! m!
с использованием подпрограммы вычисления факториала .
Пусть N=10, M=3.
10 PRINT "Вычисление числа сочетаний"
20 INPUT N
30 INPUT M
40 L = N
50 GOSUB 150 Вычисление N!
60 C = F
70 L = M
80 GOSUB 150 Вычисление M!
90 C = C / F
100 L = N - M
110 GOSUB 150 Вычисление (N-M)!
120 C = C / F
130 PRINT "C="; C
140 GOTO 200
----- --------------------------
150 F = 1 Подпрограмма вычисления
160 FOR K = 1 TO L
170 F = F * K факториала. L - принимает
180 NEXT K
190 RETURN значение в основной программе
-------------------------------
200 END
Вычисление числа сочетаний. С = 120
49
где S – площадь треугольника.
Площадь треугольника можно вычислить по формуле Герона:
S= ;
10 CLS
20 DATA 5,3.2,6.4
30 DATA 4.5,1.7,5.1
40 DATA 15,8,20
50 DEF FNS (A, B, C, P) = SQR(P * (P - A) * (P - B) * (P - C))
60 DEF FNP (A, B, C) = (A + B + C) / 2
70 READ A, B, C Комментарий:
80 GOSUB 140 Вычисление площади S и
90 READ A, B, C периметра P оформлено в виде
100 GOSUB 140 функций пользователя FNS и FNP.
110 READ A, B, C.
120 GOSUB 140
130 GOTO 190
140 P = FNP(A, B, C) -------------------------------------------------------------------------
150 R1 = (A * B * C) / (4 * FNS(A, B, C, P)) Вычисление радиусов R и r
160 R2 = FNS(A, B, C, P) / P оформлено в виде подпрограммы
170 PRINT "R1="; R1, "R2="; R2
180 RETURN --------------------------------------------------------------------------------------------
190 END
Ответы: R1=3.252381 R2= 1.078241
R1= 2.596084 R2= .6649736
R1= 11.2788 R2= 2.474286
- b ± b 2 - 4ac
x1, 2 = Введем обозначение D = b 2 - 4ac
2a
50
5 CLS
10 PRINT "Решение квадратного уравнения "
20 DATA 1,-2,1
30 DATA 2,4,7
40 DATA 1,-7,12
50 READ A, B, C
60 GOSUB 120
70 READ A, B, C
80 GOSUB 120
90 READ A, B, C
100 GOSUB 120
110GOTO 210
120 D = B ^ 2 - 4 * A * C ---------------------------------------------------------------------
130 IF D < 0 THEN 185
140 X1 = (-B + SQR(D)) / 2 / A Подпрограмма решения
150 X2 = (-B - SQR(D)) / 2 / A квадратного уравнения.
160 PRINT "a="; A, "b="; B, "c="; C Коэффициенты A , B, C принимают
170 PRINT "X1="; X1, "X2="; X2 значения в основной программе.
175 PRINT
180 GOTO 200
a= 2 b= 4 c= 7
Действительных корней нет
a= 1 b=-7 c= 12
X1= 4 X2= 3
51
Пример 6.7. Составить подпрограмму для вычисления координат центра тяжести системы
n материальных точек с массами m1 , m 2 ,...mn и координатами
( x1 , y1 ) , ( x 2 , y 2 ) , … ( x n , y n )
n n
åm x
i =1
i i åm y
i =1
i i
по формулам xc = n
yc = n
åm
i -1
i åm
i =1
i
Введены три массива: в массив M входят данные о массе точек; массив MX содержит
n
абсциссы точек, а массив MY – их ординаты. MS = å mi - масса всей системы.
i =1
n n
MX= å mi xi ; MY=
i =1
åm y
i =1
i i
5 CLS
10 PRINT "Вычисление координат центра тяжести системы "
20 N = 3
30 DIM M(N - 1), MX(N - 1), MY(N - 1)
40 DATA 8, 10, 12
50 FOR I = 0 TO 2
60 READ M(I)
70 NEXT I
80 DATA 0, 2, 6
90 FOR I = 0 TO 2
100 READ X(I)
110 NEXT I
120 DATA 0, 6, 4
130 FOR I = 0 TO 2
140 READ Y(I)
150 NEXT I
160 MS = 0
170 MX = 0
180 MY = 0
190 GOSUB 240
200 XC = MX / MS
210 YC = MY / MS
220 PRINT "XC="; XC, "YC="; YC
230 GOTO 300
240 FOR I = 0 TO N – 1 STEP 1--------------------------------------
52
250 MS = MS + M(I)
260 MX = MX + M(I) * X(I)
270 MY = MY + M(I) * Y(I)
280 NEXT I
290 RETURN -------------------------------------------------------------------
300 END
Вычисление координат центра тяжести системы
XC = 3.066667 YC= 3.6
( p - b)( p - c)
A = 2 arctan
p( p - a )
где p = (a + b + c) / 2 - полупериметр.
При решении этой задачи возникает две проблемы:
1. Стороны треугольника нам неизвестны, а известны координаты точек A, B, C.
Координаты точек, для примера, приведены ниже.
2. Неизвестно, являются точки A, B, C вершинами треугольника.
Расстояние между двумя точками находится по формуле:
53
70 FOR I = 0 TO 3 STEP 1
80 READ Y(I)
90 NEXT I
100 GOSUB 160
110 ALFA = 2 * ATN(SQR((P - B) * (P - C) / P / (P - A)))
120 BETA = 2 * ATN(SQR((P - C) * (P - A) / P / (P - B)))
130 GAMA = PI - (ALFA + BETA)
140 PRINT " ALFA="; ALFA, "BETA="; BETA, "GAMA="; GAMA
141 ALFGR = 180 * ALFA / PI
142 BETGR = 180 * BETA / PI
143 GAMGR = 180 * GAMA / PI
144 PRINT
145 PRINT "ALFGR="; ALFGR, "BETGR="; BETGR, "GAMGR="; GAMGR
150 GOTO 270
160 FOR I = 0 TO 2 --------------------------------------------------------------------------------------------
170 L(I) = SQR((X(I + 1) - X(I)) ^ 2 + (Y(I + 1) - Y(I)) ^ 2)
180 NEXT I Подпрограмма вычисления
190 A = L(1) сторон треугольника
191 B = L(2)
192 C = L(0)
193 PRINT "A="; A, "B="; B, "C="; C
194 PRINT
200 IF C < (A + B) AND C > ABS(A - B) THEN Условие существования
210 P = (A + B + C) / 2 треугольника
220 ELSE
230 PRINT "Треугольник не существует"
240 GOTO 270
250 END IF
260 RETURN ---------------------------------------------------------------------------------------------------------
270 END
54
Пример 6.9. Найти площадь пятиугольника ABCDE, если известны его стороны и две
диагонали. Сторонам пятиугольника и диагоналям нададим значения AB= 1, BC= 1.5, CD= 2,
DE= 3, EA= 2, AC= 2, AD= 2.5.
5 CLS
10 PRINT " Вычисление площади пятиугольника "
20 DATA 1,1.5,2
30 DATA 2,2,2.5
40 DATA 2.5,3,2
50 READ A, B, C
60 GOSUB 135
70 S1 = S
75 PRINT "S1="; S
76 PRINT
80 READ A, B, C
90 GOSUB 135
95 S2 = S
96 PRINT "S2="; S2
97 PRINT
100 READ A, B, C
110 GOSUB 135
115 S3 = S
116 PRINT "S3="; S3
117 PRINT
120 SP = S1 + S2 + S3
125 PRINT "SP="; SP
130 GOTO 160
135 P = (A + B + C) / 2
140 S = SQR(P * (P - A) * (P - B) * (P - C))
145 PRINT "a="; A, "b="; B, "c="; C
150 RETURN
160 END
a=1 b= 1.5 c= 2 s1= .726844
a= 2 b= 2 c= 2.5 s2= 1.951562
a= 2.5 b= 3 c= 2 s3= 5.158138
55
ГЛАВА 7 . ЛИТЕРНЫЕ ВЕЛИЧИНЫ.
ПРОГРАММЫ С ЛИТЕРНЫМИ ВЕЛИЧИНАМИ
7.1. Литерные величины
Литерные константы представляют собой набор символов, заключенный в кавычки.
Например, “ урок “, “S “, “ ; “, “ 2005 год “, “------“, “ “- пустая константа.
Литерная константа может содержать не более 255 символов.
Для литерной переменной имя выбирается так же, как и для вещественной, но это имя
снабжается символом $.
Например: A$, B1$.
Литерными могут быть массивы. B$(3)= “ Зима”, “Весна”, “Лето”, “ Осень”.
Литерные (строковые) выражения в БЕЙСИКЕ образуются из литерных констант, литерных
переменных и функций помощью знака операции соединения текстов. Операция соединения
текстов обозначается символом +.
A$ + B$ - означает, что происходит соединение значений литерных переменных.
56
Например: Q$=MID$( “ ДОКЛАД”, 3, 4).
Литерная переменная Q$ получит значение “КЛАД”.
Если функция MID$ стоит в правой части оператора присваивания, то выделенная этой
Пример 7.2.
10 A$ = "КОРАБЛЬ"
20 B$ = MID$(A$, 1, 6) + "Ь"
30 PRINT B$
40 END
С помощью функции MID$ из слова КОРАБЛИК выделяется “КОРАБЛ”. Операция +
присоединяет к нему “Ь” и получаем КОРАБЛЬ.
Стандартная функция
STRING$ ( A1, A2)
строки;
А2 - целое выражение, принимающее значение от 0 до 255, соответствующее коду символа,
57
Например: результат действия функции STRING$ (41, 61) и STRING$ (41,” =” ) будет один и тот
же: будет сформирована строка длиной 41 символ, состоящий из = .
Значение вновь создаваемой строки может быть присвоено новой переменной или является
элементом вывода.
Пример 7.3.
5 CLS
10 T$ = STRING$(8, 46)
15 A$ = STRING$(5, 95)
20 B$ = STRING$(10, 43)
21 D$ = STRING$(5, "=")
25 PRINT T$ , D$
30 PRINT A$, B$
Будет напечатано следующее:
........ =====
- - - - - ++++++++++
Пример 7. 4
. 10 A$ = "ГЛАВА 2"
20 N = 16
30 PRINT A$; STRING$(20 - LEN(A$), "."); N
40 END
После выполнения этих операторов выводится информация
ГЛАВА 2………….16.
Функция
TAB (N)
58
2) если A$=BDC; B$=BCD, то A$>B$, т.к. сравнение осуществляется
посимвольно.
59
ХОРОШ ПИРОЖОК, ВНУТРИ ТВОРОЖОК
В предложении 7 букв О
Пример 7.7. Имеется список, состоящий из 10 фамилий, номеров и городов, где
проживают их владельцы. Требуется создать программу, которая по вводимой фамилии
печатала бы номер телефона и место жительства. Если же введенной фамилии нет в списке, то
необходимо выдать информацию об этом.
Сведения о наличии телефона
АНТОНОВ 183-19-48 ВОЛГОГРД
БАРСОВ 52-16-35 ВОРОНЕЖ
ГУРОВ 13-53-14 РИГА
ЕРМАКОВА 254-14-53 МОСКВА
ЗИМИН 386-43-71 МОСКВА
ИЛЬИН 232-46-17 КИЕВ
КРУТОВА 278-61-34 ХАРЬКОВ
МОРОЗОВ 23-17-29 НИКОЛАЕВ
НИКИФОРОВ 57-83-21 ВОРОНЕЖ
ПЕТРОВ 162-32-75 ЛЬВОВ
Заданный список можно рассматривать как массив литерных (символьных) переменных.
Длина каждого значения 31 позиция.
Обозначения: S$(9) - список; F$ - фамилия; F1$ - проверяемая фамилия.
5 CLS
10 PRINT ” Сведения о наличии телефона ”
20 DATA ” АНТОНОВ 183-19-48 ВОЛГОГРД”
30 DATA ” БАРСОВ 52-16-35 ВОРОНЕЖ”
40 DATA “ ГУРОВ 13-53-14 РИГА”
50 DATA ” ЕРМАКОВА 254-14-53 МОСКВА”
60
140 READ S$ (I)
150 NEXT I
160 INPUT F1$
170 FOR I= 0 TO 9
180 F$ = MID$ ( S$ ( I ), 1, 10 )
190 IF F1$ =F$ THEN GOTO 230
200 NEXT I
210 PRINT ” В списке нет фамилии ”; F1$
220 GOTO 250
230 PRINT F1$ ; ’’город ’’; MID$ ( S$ ( I ), 21 , 10)
240 PRINT ” ДОМАШНИЙ ТЕЛЕФОН ” ; MID$ ( S$ ( I ), 11, 11 )
250 END
ИЛЬИН город КИЕВ
ДОМАШНИЙ ТЕЛЕФОН 232-46-17
Пример 1.
3. -3 6 +17 9 1Е3
61
Пример 2. Вычислить значение выражения
Ответ 17.
10 A=2
20 B=-3
30 C=-2
40 X=B/A
50 X=X+0.5
60 Y=A*X*X+B*X+C
70 END
A=2
B=-3
C=-2
-3/2=-1.5
X= -1.5+0.5=-1
X=-1
2*(-1)*(-1)+(-3)*(-1)-2=2+3-2=3
Y=3
После выполнения программы переменная Y получит значение 3. Ответ 3
Пример 4. Определить вид функции, вычисление значения которой реализуется
следующей программой: 10 X=2
20 Z=X+1
30 IF Z<4 THEN Y=Z^2+1 ELSE Y=Z+5
40 PRINT Y
50 END
Из представленных ответов выбрать номер правильного ответа.
1. Y=Z+5 2. Y=Z^2+1
Так как Z=2+1=3, 3<4, то вычисляется значение функции Y=Z^2+1, ее номер 2.
62
2.2. Упражнения к главе 1 ”UP-1”: Константы и переменные, арифметические
выражения в языке БЕЙСИК
“UP-1.1”. Какие из приведенных чисел являются константами целого типа?
1 2.1E3 4 0.7E-1 7 22.78
2 128 5 +0.9 8 -2100
3 -350 6 +71 9 1E5
“UP-1.2”. Какие из приведенных чисел являются вещественными константами в форме с
фиксированной точкой?
1 12.35 4 -1E5. 7 5
2 -0.75 5 0.71 8 -5.1
3 12E5 6 1315 9 -11.4
63
2.3. Упражнения к главе 2 “UP-2 “:
Операторы присваивания, ввода –вывода. Линейные программы.
2 Y:=7 6 K+5=X+Y
4 Z=Z^2+5.3*X 8 X=X*X+A*X+B
“UP-2.2 “
1 PRINT ”A=”; A; ”B=”; B 5 PRINT A; ”B=”; B, C
64
А=12
В=14
А=10
В=В+5
У=А+В
END
65
а) Какие из приведенных конструкций представляют оператор безусловного перехода?
б) Какие из приведенных конструкций представляют оператор условной передачи
управления?
“UP-3.2”. Какое значение получит переменная X в результате выполнения программы?
10 A=4
20 B=2
30 A=(A+B)/2+A
40 X=A*B^2
50 PRINT X
60 END
10 INPUT X
20 IF X>5 THEN Y=SQR(X) ELSE Y=X^2
30 PRINT Y
40 END
66
60 PRINT Y
70 END
30 IF X<=5 THEN 80
40 Y = LOG(X-4)
50 GOTO 90
60 Y =COS(X)
70 GOTO 90
80 Y=1-0.2*X
90 PRINT Y
100 END
“UP-4.1”.
1. 3.5+A*B+C(1)*A-C(2)
2. 4.8+A1*B-C2/3
3. D11+SIN(X/2+4)-A3
4. B(2,3)*C-TAN(Y)/(A(1)+B(1,2))
67
5. I*J+K*N-A(I,J)+B(K,N)
6. AI+BK*C/(X+Y)^2
7. F*(M(1)+M(2))/(1-M(1)^2*V^2)
8. A(I+J,K+2)*B(I+J)-(K+3)^2
9. A(I*2,I+J)+B(I+3,I+K)
40 A (J) =3.5
50 K =J+2
60 A(K) =10.3
70 A (I+K) =7
80 END
30 A(I)=I*I - 3*I+1
40 I=I+1
50 IF I<=4 THEN 30
60 END
“UP-4.4”. Даны три массива A(3,4), B(7), C(2,6). Какие из переменных, указанных ниже,
1 A(1,1) 6 C(2)
68
2 B(8) 7 B(3,1)
3 C(3,7) 8 A(2,1)
4 B(6) 9 C(2,5)
5 A(3,5)
“UP-5.1”. 10 Y=5
20 FOR A=1 TO 12 STEP
30 Y=Y+A;
40 NEXT A
50 PRINT
60 END
69
60 NEXT I
70 END
1. Какое значение получит переменная X в результате выполнения программы?
2. Сколько элементов содержит массив B?
3. Какое значение получит B(1)?
4. С каким шагом изменяется параметр цикла?
5. Указать сумму номеров невыполняемых операторов.
50 PRINT X
60 END
50 READ A(I, J)
60 NEXT J
70 NEXT I
80 S=0
90 FOR I=0 TO 2
100 J=1
110 S=S+A(I, J)
120 NEXT I
130 PRINT S
140 END
70
2.7. Ответы к упражнениям ”UP ”
UP-1.1 2368
UP-1.2 12589
UP-13 3479
UP-1.4 259
UP-1.5 1379
UP-1.6 1) 64 , 2) 81 , 3) 1 , 4) 0 , 5) 5
UP-2.1 1248
UP-2.2 1) 256 , 2) 147, 3) 3.
UP-2.3 9
UP-2.4 29
UP-2.5 5
UP-2.6 27
UP_3.1 a) 18 , b) 2359
UP-3.2 28
UP-3.3 -6
UP-3.4 4
UP_3.5 1
3) 4589 4) 89
UP-4.2 579
UP-4.3 5
UP-4.5 -11
UP-5.2 25
UP-5.3 5
71
Раздел 3. Сборник лабораторных работ по алгоритмическому
языку Бейсик
3.1. Требования к оформлению лабораторных работ
на языке БЕЙСИК.
Контрольные вопросы.
1. Из каких букв и цифр состоит язык БЕЙСИК?
2. Какими символами изображаются знаки действия?
3. Перечислить стандартные функции языка БЕЙСИК .
3. Какова форма представления чисел?
72
4. Что может послужить именем переменной?
5. Какова структура арифметического выражения?
L1.2.1
2 ln
L1.2.2
L1.3.1
3
L1.3.2
4 L1.4.1
L1.4.2
L1.5.1 sin +
5 L1.5.2 1 + x + ln
L1.6.1
L1.7.1
7
L1.7.2 xtg +2ln
8 L1.8.1
L1.8.2
73
L1.9.1
9
L1.9.2 y–
L1.10.1
10
L1.10.2
11 L1.11.1
L1.12.1
12
L1.12.2 (a + b 2 ) /(c 3 sin x ) + cos x
13 L1.13.1
L1.13.2
L1.14.1
14
L1.14.2 x ln
L1.15.1
15 L1.15.2
74
3.3 . Лабораторная работа “L2“: Оператора присваивания, ввода – вывода
Контрольные вопросы.
1 L2.1.1
L2.1.2 x 2 = 5,72
.
x = 2; a = 248;
2 L2.2.1 b =87,2
L2.2.2 5,87
L2.3.1 x = 5; a = 23,5;
3 b =0,129; c = 350
L2.3.2 6,31
75
x = 2,57;
4 L2.4.1 y = 13,76
L2.4.2 2,79
a = 1,25; b = -1,75;
L2.5.1 x = 4,78
5
L2.5.2 6,31
x = 2,15;
6 L2.6.1 y = 9,78.
L2.6.2 1,76
L2.7.1 a = 1,9;
7 b =0,04; c = 6
L2.7.2 2,56
m = 1,2;
8 L2.8.1 n = -3,76
L2.8.2 2,57
a = 0,7;
9 L2.9.1 b = -3,1
L2.9.2 3,93
a = 3,2;
10 L2.10.1 b =2; c = 0,75
L2.10.2 2,74
x = 3,35; y = -0,27;
11 L2.11.1 a = 2,1
L2.11.2 1,74
x = -1,7; y = 3,2;
12 L2.12.1
L2.12.2 2,64
76
x = -0,025; y = 2,12;
L2.13.1 a = 3,861
13
L2.13.2 1,25
x = 0,34; y = 0,95;
L2.14.1 a = -0,5
14
L2.14.2 3,11
a = 9;
15 L2.15.1 b =3,5; c = -1,2
L2.15.2 1,12
77
Образец выполнения лабораторной работы “L3“
,
Блок-схема
начало
Т = 1,27
да
нет
Вывод
Вариант 1 конец
5 CLS
10 PRINT "L3.ob1"
20 T = 1.27
30 X = (T * T + 1.2 * T + 3.7) ^ (1 / 3)
40 IF X > 1.7 THEN Y = SQR(ABS(COS(X) + SIN(X))) ELSE
Y = 1.57 * X / (X ^ 2 + 1)
50 PRINT "x="; X, "y="; Y
60 END
L3.ob1
x= 1.897957 y= .6474656
78
Вариант 2
5 CLS
10 PRINT "L3.OB2"
20 T = 1.77
30 X = (T ^ 2 + 1.2 * T + 3.7) ^ (1 / 3)
40 IF X <= 1.7 THEN 50 ELSE 70
50 Y = 1.57 * X / (X ^ 2 + 1)
60 GOTO 80
70 Y = SQR(ABS(COS(X) + SIN(X)))
80 PRINT "X="; X, "Y="; Y
90 END
L3.OB2
X= 2.076758 Y= .6245477
1 L31 1,5
2 L32 0,3
3 L33 -1,1
4 L34 0,7
79
5 L35 0,9
6 L36 -3
t
7 L37 (t + 1) 2 -0,64
8 L38 0,93
9 L39 -3,59
Y=
10 L310 0,85
11 L311 5,74
12 L312 Y= -1,75
13 L313 Y= -3,75
80
14 L314 = 3,75
15 L315 Y= 1,27
Контрольные вопросы
81
Шифр Функции Независимая переменная
Вар.
Независимая
Вар. Шифр Функции
переменная
82
при x = -1,0; 0,75; 2,1; 4,75; 5,12.
Все значения х удобно оформить в виде массива. Назовем его Х. Размерность этого массива
N=4. Для ввода этого массива в память машины используем оператор цикла, где параметром
цикла будет номер элемента массива 1 ≤ i ≤ 4.
5 CLS
10 PRINT "L4.ob1"
20 DIM X (4)
40 FOR I = 0 TO 4
50 READ X (I)
60 NEXT I
70 FOR K = 0 TO 4
100 NEXT K
110 END
L4.ob1
X=-1 Y=-1.291051
X= .75 Y=-.8354596
X= 2.1 Y=-.6361014
X= 4.75 Y=-.3336877
X= 5.12 Y=-.2879645
83
Найти сумму первых десяти членов последовательности
2 L422 .
Используя формулу q, найти первые 10 членов
3 L432
Геометрической прогрессии и их сумму,если q=-2.
Используя формулу q, найти первые 10
4 L442 членов арифметической прогрессии и их сумму, если
; d =1,5.
Вычислить значения многочлена
P(x) + ,
5 L452 записав его по схеме Горнера
при х=2,5;
84
Образец выполнения работы
85
Цель работы: формирования навыков и умений по составлению программ с
использованием функций пользователя и подпрограмм.
Контрольные вопросы:
86
1. А(-12;-3); В(12;-10); С(-6;14);
2. А(-6;-5); В(18;-12); С(0;12);
; ;
D (-9; 5,5)
Введем обозначения
A1 A2 B1 B2 C1 C2 D1 D2 M1 M2
5 CLS
8 PRINT "L5ob"
87
20 PRINT " центра тяжести треугольника"
30 DATA -12, -3, 12, -10, -6, 14
40 DATA -6, -5, 18, -12, 0, 12
50 DATA 3, 12, 27, 5, 9, 29
60 FOR I = 0 TO 2
70 READ A1, A2, B1, B2, C1, C2
80 GOSUB 120
90 PRINT "XM="; , M1, "YM="; M2
100 NEXT I
110 GOTO 180
120 D1 = (A1 + C1) / 2
130 D2 = (A2 + C2) / 2
140 L = 2
150 M1 = (B1 + L * D1) / (1 + L)
160 M2 = (B2 + L * D2) / (1 + L)
170 RETURN
180 END
L5ob
Вычисление координат
центра тяжести треугольника
XM= -2 YM= .3333333
XM= 4 YM=-1.666667
XM= 13 YM= 15.33333
88
Составить подпрограмму вычисления периметра треугольника по
координатам его вершин. Используя эту подпрограмму, найти
периметры треугольников по заданным координатам вершин:
1 L51
1. А(3;2), В(-2;5), C(9;4)
2. А(2;1), В(5;5), С(-4;6)
3. А(0;-3), В(9;0), С(6;-6)
Составить подпрограмму вычисления площади треугольника по
формуле Герона. Используя эту подпрограмму, найти площади
треугольников по заданным его вершинам:
2 L52
1. А(3;2), В(-2;5), C(9;4)
2. А(2;1), В(5;5), С(-4;6)
3. A(0;-3), B(9;0), C(6;-6)
Составить программу вычисления периметра трапеции по
координатам её вершин. Используя эту подпрограмму, найти
периметры заданных трапеций:
3 L53
1. А(-3;2), B(2;7), C(2,3), D(4;5)
2. A(-5;-4), B(8;-4), C(6;1), D(-2;1)
3. A(5;3), B(5;7), C(9;5), D(9;4)
Составить подпрограмму вычисления площади трапеции по
основаниям и высоте. Используя эту подпрограмму, найти площади
заданных трапеций:
4 L54
1. a=6,5 b=3,4 h=2,5
2. a=13,4 b=8,3 h=5,7
3. a=15,5 b=8,4 h=6,5
Составить подпрограмму вычисления площади ромба по
координатам его вершин. Используя подпрограмму, найти площади
ромбов:
5 L55
1. А(2;8), В(8;4), С(14;8), D(8;12)
2. A(5;6), B(11;2), C(17;6), D(11;10)
3. A(0;11), B(6;7), C(12;11), D(6;15)
Составить подпрограмму вычисления угла между сторонами ромба.
Используя эту подпрограмму, найти углы между сторонами
заданных ромбов:
6 L56
1. А(2;8), В(8;4), С(14;8), D(8;12)
2. A(5;6), B(11;2), C(17;6), D(11;10)
3. A(0;11), B(6;7), C(12;11), D(6;15)
Составить подпрограмму вычисления площади параллелограмма по
координатам его вершин (используя формулу Герона). Используя
эту подпрограмму, найти площади заданных параллелограммов:
7 L57
1. А(0;4), В(2;9), С(8;3), D(6;-2)
2. A(2;7), B(4;12), C(10;6), D(8;1)
3. A(-1;2), B(1;7), C(7;1), D(5;-4)
89
Составить подпрограмму вычисления угла между диагоналями
параллелограмма по координатам его вершин. Используя эту
подпрограмму, найти углы между диагоналями заданных
параллелограммов:
8 L58
1. А(0;4), В(2;9), С(8;3), D(6;-2)
2. A(2;7), B(4;12), C(10;6), D(8;1)
3. A(-1;2), B(1;7), C(7;1), D(5;-4)
2. V=10-2t; ; .
3. V=3,5+1,5t; ;
Составить подпрограмму вычисления суммы членов
геометрической прогрессии 10, 5, 2,5. Используя эту подпрограмму,
12 L512
вычислить сумму n членов прогрессии, если n= 2; 5; 10.
-3 5 6
13 L513 0 1 2
-5 4 -7
1 2 -11
90
Задана прямоугольная таблица чисел из 5 строк и 3 столбцов.
Составить подпрограмму для вычисления суммы элементов
столбца. Используя эту подпрограмму, вычислить сумму элементов
каждого столбца:
14 L514 2 3 1
-1 2 5
0 -5 -3
3 4 7
1 2 -4
91
РАЗДЕЛ 4. ОТВЕТЫ И КОМПЬЮТЕРНЫЕ ПРОГРАММЫ
К ЛАБОРАТОРНЫМ РАБОТАМ
L111 (x+y)^3+2*sin(x)
L112 0.25*(x-1.75*L0G(9.8+x*x))
------------------------------------------------------------------------
L122 LOG(abs(a*a-x*x))
--------------------------------------------------------------------------
L131 (abs(cos(x)+abs(sin(y))/(x*x)
L132 (abs(x)+2*cos(x))/(0.5+x*x+x^4)
---------------------------------------------------------------------------
L142 (sin(x)+cos(x))/(x*x+1)
-------------------------------------------------------------------------
L151 sin((x+y)/2)+sqr(abs(x+1.2))
L152 1+x+LOG(abs(x))
92
--------------------------------------------------------------------------
----------------------------------------------------------------------------
L171 ((1+x/(1+x)))/(3*y)
------------------------------------------------------------------------------
L181 (sqr(a+b))/(sin(a)+cos(b))
L182 a*x*x+b*x+c
----------------------------------------------------------------------------
L192 y-x^3*LOG(x)-1
-----------------------------------------------------------------------------
10
------------------------------------------------------------------------------
L1111 (a*x+b*y)/(a*b)
11
93
------------------------------------------------------------------------------
12
-----------------------------------------------------------------------------
13
------------------------------------------------------------------------------
L1141 sin(x)*cos(y)/(x+y)
14
L1142 x*LOG(abs(sin(pi*s/x))
------------------------------------------------------------------------------
L1151 (LOG(x*x+y*y))/sin(y)
15
------------------------------------------------------------------------------
4.2. Лабораторная работа ”L2”
5 CLS
10 PRINT "L2.1.1"
20 X1 = .62
30 X2 = .98
40 Y = (.5 * X1 - .13 * X2) / (.15 * X1 * X1 + .37 * X2 + .75)
50 PRINT "Y="; Y
60 END
L2.1.1 Y= .1560337
94
5 CLS
10 PRINT " L212 "
20 X1 = 1.75
30 X2 = 5.72
40 Z1 = X1 * COS(X1) ^ 2
50 Z2 = SQR(2 - SIN(X2) ^ 2)
60 Z = Z1 + Z2
L212
Z= 1.365169
5 CLS
10 PRINT "L221"
20 X = 2
30 A = 248
40 B = 87.2
50 Y = (A + B / 3 + X * A) / (X * A + B)
60 PRINT "Y="; Y
70 END
L221
Y= 1.32556
5 CLS
10 PRINT " L222"
20 X1 = 2.59
30 X2 = 5.87
40 Z1 = 2 * SIN(2 * X1)
50 Z2 = SQR(X2 * X2 + 5)
60 Z = Z1 + Z2
70 PRINT "Z="; Z
80 END
L222
Z= 4.496177
5 CLS
10 PRINT " L231"
20 X = 5
30 A = 23.5
40 B = .189
50 C = 350
95
60 Y = ((A * X * X + B) * C) / (B + A)
70 PRINT "Y="; Y
80 END
L231
5 CLS
10 PRINT "L232"
20 X1 = .37 Y= 8682.981
30 X2 = 6.31
40 Z1 = EXP(-X1 ^ 2 + 1)
50 Z2 = LOG(ABS(SIN(X2)))
60 Z = Z1 + Z2
70 PRINT "Z="; Z
80 END
L232
Z=-1.248429
5 CLS
10 PRINT "L241"
20 X = 2.57
30 Y = 13.76
40 Z = (X ^ 2 * Y + .15 * Y ^ 2) / (1.37 * X - Y / .37)
50 PRINT "Z="; Z
60 END
L241 Z=-3.54292
5 CLS
10 PRINT "L242"
20 X1 = -6.23
30 X2 = 2.79
40 Z1 = SQR(1 + COS(X1) ^ 2)
50 Z2 = SIN(LOG(ABS(X2)))
60 Z = Z1 + Z2
70 PRINT " Z="; Z
L242
Z= 2.268468
5 CLS
10 PRINT "L251"
20 A = 1.25
30 B = -1.75
40 X = 4.78
96
50 Y = (A * X ^ 2 + B * X) / (X ^ 3 + .78 * X)
60 PRINT "Y="; Y
70 END
L251
Y= .1788102
5 CLS
10 PRINT "L252"
20 X1 = .85
30 X2 = 2.36
40 Z1 = LOG(ABS(SIN(X1)))
50 Z2 = EXP(X2 - 2)
60 Z = Z1 + Z2
70 PRINT "Z="; Z
80 END
L252
Z= 1.147353
5 CLS
10 PRINT "L261"
20 X = 2.15
30 Y = 9.78
40 Z = (X ^ 2 + X * Y - 4.75) / (X ^ 3 * Y - .136 * Y)
50 PRINT "Z="; Z
60 END
L261
Z= .2180046
5 CLS
10 PRINT "L262"
20 X1 = .21
30 X2 = 1.76
40 Z1 = EXP(SQR(X1 ^ 2 + 3))
50 Z2 = COS(X2 ^ 2)
60 Z = Z1 + Z2
70 PRINT "Z="; Z
80 END
L262
Z= 4.725351
5 CLS
10 PRINT "L271"
97
20 A = 1.9
30 B = .04
40 C = 6
50 X = ((A + B) ^ 4 * C ^ 2) / (A ^ 2 - B ^ 2)
60 PRINT "X="; X
70 END
L271
X= 141.3171
5 CLS
10 PRINT "L272"
20 X1 = .74
30 X2 = 2.56
40 Z1 = (X1 ^ 2 + 1) ^ (1 / 3)
50 Z2 = LOG(ABS(COS(X2)))
60 Z = Z1 + Z2
70 PRINT "Z="; Z
80 END
L272
Z= .9770782
5 CLS
10 PRINT "L281"
20 M = 1.2
30 N = -3.76
40 Y = ((M - N) ^ 2 + 4 * M * N) / (M ^ 2 - N ^ 2)
50 PRINT "Y="; Y
60 END
L281
Y=-.516129
5 CLS
10 PRINT "L282"
20 X1 = .52
30 X2 = 2.57
40 Z1 = EXP(COS(X1))
50 Z2 = LOG(2 * X2) ^ 2
60 Z = Z1 + Z2
70 PRINT "Z="; Z
80 END
L282
Z= 5.061654
98
5 CLS
10 PRINT "L291"
20 A = .7
30 B = -3.1
40 X = (25 * B + A - (4 * A ^ 2 - .7 * B ^ 2) / A) * B
50 PRINT "X="; X
60 END
L291
X= 216.969
5 CLS
10 PRINT "L292"
20 X1 = 1.59
30 X2 = 3.93
40 Z1 = (X1 ^ 2 + X1) ^ (1 / 3)
50 Z2 = EXP(SIN(X2)) + 2
60 Z = Z1 + Z2
70 PRINT "Z="; Z
80 END
L292
Z= 4.0948
5 CLS
10 PRINT "L2101"
20 A = 3.2
30 B = 2
40 C = .75
50 Y = (1 / A + 1 / B - 2 * C / A / B) * (A + B + 2 * C)
60 PRINT "Y="; Y
70 END
L2101
Y= 3.873437
5 CLS
10 PRINT "L2102"
20 X1 = 1.95
30 X2 = 2.74
40 Z1 = SIN(2 * X1) ^ 2
50 Z2 = (LOG(X2) ^ 2 + 3) ^ (1 / 3)
60 Z = Z1 + Z2
70 PRINT "Z="; Z
80 END
99
L2102
Z= 2.062534
5 CLS
10 PRINT "L2111"
20 X = 3.35
30 Y = -.27
40 A = 2.1
50 Z = (X * Y - 2 * X + Y) / (Y - X ^ 2 - Y ^ 2 * A)
60 PRINT "Z="; Z
70 END
L2111
Z= .6761788
5 CLS
10 PRINT "L2112"
20 X1 = -.12
30 X2 = 1.74
40 Z1 = EXP(X1 ^ 2 - 2)
50 Z2 = SQR((SIN(X2)) ^ 2 + 2)
60 Z = Z1 + Z2
70 PRINT "Z="; Z
80 END
L2112
Z= 1.861143
5 CLS
10 PRINT "L2121"
20 X = -1.7
30 Y = 3.2
40 Z = (X ^ 2 * Y ^ 2 - .75 * X * Y) / (X ^ 2 + Y ^ 2)
50 PRINT "Z="; Z
60 END
L2121
Z= 2.564631
5 CLS
10 PRINT "L2122"
20 X1 = -1.61
30 X2 = 2.84
40 Z1 = LOG(X1 + 3)
50 Z2 = (SIN(X2) ^ 2 + 5) ^ (1 / 3)
60 Z = Z1 + Z2
100
70 PRINT "Z="; Z
80 END
L2122
Z= 2.04928
5 CLS
10 PRINT "L2131"
20 X = -.025
30 Y = 2.12
40 A = 3.861
50 Z = (.82 * A * X - X ^ 2 * Y ^ 3) / (A ^ 2 + X ^ 2 + Y ^ 2)
60 PRINT "Z="; Z
70 END
L2131
Z=-4.386355E-03
5 CLS
10 PRINT "L2132"
20 X1 = 2.59
30 X2 = 1.25
40 Z1 = (COS(X1 ^ 2 - 1)) ^ 3
50 Z2 = 2 * EXP(X2 + 2)
60 Z = Z1 + Z2
70 PRINT "Z="; Z
80 END
L2132
Z= 52.17158
5 CLS
10 PRINT "L2141"
20 X = .39
30 Y = .95
40 A = -.5
50 Z = (.8 * X ^ 3 + Y ^ 3 - A * X) / (A * X * Y + A ^ 2)
60 PRINT "Z="; Z
70 END
L2141
Z= 16.98579
5 CLS
10 PRINT "L2142"
20 X1 = .81
30 X2 = 3.11
101
40 Z1 = SIN(X1) ^ 2 + 9
50 Z2 = SQR(X2 ^ 2 + COS(X2))
60 Z = Z1 + Z2
70 PRINT "Z="; Z
80 END
L2142
Z= 12.46952
5 CLS
10 PRINT "L2151"
20 A = 9
30 B = 3.5
40 C = 8.72
50 X = -1.2
60 Y = (A * X + B * X + C ^ 2) / (X ^ 2 + B ^ 2)
70 PRINT "Y="; Y
80 END
L2151
Y= 4.458612
5 CLS
10 PRINT "L2152"
20 X1 = .51
30 X2 = 1.12
40 Z1 = COS(X1) + EXP(2 * X1)
50 Z2 = ABS(SIN(2 * X2)) ^ (1 / 3)
60 Z = Z1 + Z2
70 PRINT "Z="; Z
80 END
L2152
Z= 4.5681
102
L31
X= 7.2 Y= 2.372743
5 CLS
10 PRINT "L32"
20 T = .3
30 X = T ^ 3 - 2.4 * T
40 IF X <= .5 THEN Y = EXP(X * X - 2) ELSE Y = SQR(COS(X) ^ 2 + 1.7)
50 PRINT "X="; X, " Y="; Y
60 END
L32
X=-.6930001 Y= .2187664
5 CLS
10 PRINT "L33"
15 T = -1.1
20 X = SQR(ABS(T + 3))
30 IF X <= 1.4 THEN Y = X + X ^ 2 * COS(X) ELSE Y = X ^ 2 + X * SIN(X)
40 PRINT "X="; X, " Y="; Y
50 END
L33
X= 1.378405 Y= 1.741698
5 CLS
10 PRINT "L34"
20 T = .7
30 X = T ^ 2 + 1.3 * T + 1
40 IF X <= 2.3 THEN Y = SIN(X) ^ 2 ELSE Y = (LOG(X) ^ 2 + 3) ^ (1 / 3)
50 PRINT "X="; X, " Y="; Y
60 END
L34
X= 2.4 Y= 1.555884
5 CLS
10 PRINT "L35"
20 T = .9
30 X = T / (T ^ 2 + T + 1)
40 IF X > 1.5 THEN Y = EXP(SIN(X)) ELSE Y = (X * X + 2) ^ (1 / 3)
50 PRINT "X="; X, " Y="; Y
103
60 END
L35
X= .3321033 Y= 1.282668
5 CLS
10 PRINT "L36"
20 T = -3
30 X = (T ^ 2 + 1) / (.7 * T + 1)
40 IF X > 2.1 THEN Y = LOG(ABS(2 * X)) ^ 2 ELSE Y = EXP(COS(X) + 3)
50 PRINT "X="; X, " Y="; Y
60 END
L36
X=-9.090909 Y= 7.808543
5 CLS
10 PRINT "L37"
20 T = -.64
30 X = T / (T + 1) ^ 2
40 IF X > 0 THEN Y = COS(X ^ 2) ELSE Y = (X ^ 2 + 2.5) ^ (1 / 3)
50 PRINT "X="; X, " Y="; Y
60 END
L37
X=-4.938271 Y= 2.995791
5 CLS
10 PRINT "L38"
20 T = .93
30 X = T ^ 3 / (1 + T)
40 IF X > 3.5 THEN Y = SQR(2 - SIN(X) ^ 2) ELSE Y = X * COS(X) ^ 2
50 PRINT "X="; X, " Y="; Y
60 END
L38
X= .4167653 Y= .3484713
5 CLS
10 PRINT "L39"
20 T = -3.59
30 X = 2 + ABS(T + 1.5) ^ (1 / 3)
40 IF X > 4 THEN Y = SQR(X ^ 2 + 5) ELSE Y = 2 * SIN(2 * X)
50 PRINT "X="; X, " Y="; Y
104
60 END
L39
X= 3.278543 Y= .5409784
5 CLS
10 PRINT "L310"
20 T = .85
30 X = T * T / (T ^ 3 + 1)
40 IF X > 2 THEN Y = EXP(X - 2) ELSE Y = LOG(ABS(SIN(X)))
50 PRINT "X="; X, " Y="; Y
60 END
L310
X= .4476109 Y=-.8374493
5 CLS
10 PRINT "L311"
20 T = 5.74
30 X = (2 * T + 4) / (T ^ 2 + 1)
40 IF X <= -1 THEN Y = EXP(SQR(X ^ 2 + 3)) ELSE Y = ABS(X - 3.5) ^ (1 / 3)
50 PRINT "X="; X, " Y="; Y
60 END
L311
X= .4559969 Y= 1.449267
5 CLS
10 PRINT "L312"
20 T = 3.75
30 X = -T + SQR(T * T + 1)
40 IF X > 1 THEN Y = 1 / (1 + X * X) ELSE Y = (X ^ 2 + 5.75) / SIN(X)
50 PRINT "X="; X, " Y="; Y
60 END
L312
X= .1310437 Y= 44.13576
5 CLS
10 PRINT "L313"
20 T = -1.75
30 X = T * T + 3 * T + 1
40 IF X <= 0 THEN Y = SIN(SQR(ABS(X))) ELSE Y = EXP(X) / (X * X + 3 * X)
105
50 PRINT "X="; X, " Y="; Y
60 END
L313
X=-1.1875 Y= .8864996
5 CLS
10 PRINT "L314"
20 T = 3.75
30 X = T ^ 3 - SQR(T * T + 1)
40 IF X <= 2.3 THEN Y = SQR(1 + X + X * X) ELSE Y = COS(X) / ABS(X - 1.3)
50 PRINT "X="; X, " Y="; Y
60 END
L314
X= 48.85333 Y= 3.322201E-03
5 CLS
10 PRINT "L411"
20 DATA 0.2, 1, 1.8, 2, 3
30 DIM X(4)
40 FOR I = 0 TO 4
50 READ X(I)
60 NEXT I
70 FOR K = 0 TO 4
80 Y = (13.5 * X(K) ^ 7 + 9) / 5 / (X(K) ^ 2 - X(K) - 1) - 4 * X(K) ^ 4
90 PRINT "X="; X(K), " Y="; Y
100 NEXT K
110 END
L411
X= .2 Y=-1.558154
X= 1 Y=-8.5
X= 1.8 Y= 337.781
X= 2 Y= 283.4
X= 3 Y= 857.34
5 CLS
10 PRINT "L421"
106
20 DATA 5.8, 5.5, 6.1, 6.5, 7.6
30 DIM X(4)
40 FOR I = 0 TO 4
50 READ X(I)
60 NEXT I
70 FOR K = 0 TO 4
80 Y = X(K) * LOG(ABS(SIN(15 / X(K))))
90 PRINT "X="; X(K), " Y="; Y
100 NEXT K
110 END
L421
X= 5.8 Y=-3.712234
X= 5.5 Y=-5.004409
X= 6.1 Y=-2.810732
X= 6.5 Y=-1.952284
X= 7.6 Y=-.6342574
5 CLS
10 PRINT "L32"
20 T = .3
30 X = T ^ 3 - 2.4 * T
40 IF X <= .5 THEN Y = EXP(X * X - 2) ELSE Y = SQR(COS(X) ^ 2 + 1.7)
50 PRINT "X="; X, " Y="; Y
60 END
L431
X= 3.8 Y= .8746406
X= .15 Y=-.2490185
X= 15.1 Y= 3.637524
X= 17.8 Y= 4.206316
X= 39.2 Y= 8.1426
5 CLS
10 PRINT "L441"
20 DATA 8.1, 2.3, 15.2, 31.5, 33.08
30 DIM X(4)
40 FOR I = 0 TO 4
50 READ X(I)
60 NEXT I
70 FOR K = 0 TO 4
107
80 Y = (1.2 + 2.4 ^ 2) / 5.4 / (SIN(X(K))) ^ (1 / 3) + COS(X(K))
90 PRINT "X="; X(K), "Y="; Y
100 NEXT K
110 END
L441
X= 8.1 Y= 1.058547
X= 2.3 Y= .755048
X= 15.2 Y= .7651588
X= 31.5 Y= 3.939758
X= 33.08 Y= 1.197618
5 CLS
10 PRINT "L451"
20 DATA - 3.1, 2.52, 5.81, 7, 9
30 DIM X(4)
40 FOR I = 0 TO 4
50 READ X(I)
60 NEXT
70 FOR K = 0 TO 4
80 Y = X(K) * SIN(X(K)) / (X(K) ^ 2 + 5) + X(K) ^ 3 - 2
90 PRINT "X="; X(K), "Y="; Y
100 NEXT K
110 END
L451
X=-3.1 Y=-31.78218
X= 2.52 Y= 14.1323
X= 5.81 Y= 194.0546
X= 7 Y= 341.0852
X= 9 Y= 727.0432
5 CLS
10 PRINT "L461"
20 DATA 1, 1.1, 1.15, 1.3, 1.6
30 DIM X(4)
40 FOR I = 0 TO 4
50 READ X(I)
60 NEXT
70 FOR K = 0 TO 4
80 Y = (1 / 1.2 ^ 4 - 1 / X(K) ^ 4) * ATN(X(K) / 1.2)
108
90 PRINT "X="; X(K), "Y="; Y
100 NEXT K
110 END
L461
X= 1 Y=-.3596987
X= 1.1 Y=-.1489536
X= 1.15 Y=-6.838938E-02
X= 1.3 Y= .109053
X= 1.6 Y= .3056969
5 CLS
10 PRINT "L471"
20 DATA 1, 1.8, 2.2, 2.5, 7
30 DIM X(4)
40 FOR I = 0 TO 4
50 READ X(I)
60 NEXT
70 FOR K = 0 TO 4
80 Y = X(K) ^ 3 * LOG(X(K)) - 1
90 PRINT "X="; X(K), "Y="; Y
100 NEXT K
110 END
L471
X= 1 Y=-1
X= 1.8 Y= 2.427971
X= 2.2 Y= 7.395495
X= 2.5 Y= 13.31704
X= 7 Y= 666.4472
5 CLS
10 PRINT "L481"
20 DATA 1.1, 3, 25, 70, 72
30 DIM X(4)
40 FOR I = 0 TO 4
50 READ X(I)
60 NEXT
70 FOR K = 0 TO 4
80 Y = (1.2 * X(K) ^ 2 + 2.7 * X(K) + 5.4)
90 PRINT "X="; X(K), "Y="; Y
109
100 NEXT K
110 END
L481
X= 1.1 Y= 9.822001
X= 3 Y= 24.3
X= 25 Y= 822.9
X= 70 Y= 6074.4
X= 72 Y= 6420.6
5 CLS
10 PRINT "L491"
20 DATA 0.5, 0.6, 0.9, 1.1, 1.5
30 DIM X(4)
40 FOR I = 0 TO 4
50 READ X(I)
60 NEXT
70 FOR K = 0 TO 4
80 Y = X(K) * TAN(X(K) / 2) + 2 * LOG(ABS(COS(X(K) / 2)))
90 PRINT "X="; X(K), "Y="; Y
100 NEXT K
110 END
L491
X= .5 Y= 6.450886E-02
X= .6 Y= 9.421845E-02
X= .9 Y= .2250218
X= 1.1 Y= .3553091
X= 1.5 Y= .7725949
5 CLS
10 PRINT "L4101"
20 DATA 2.15, 2.3, 2.35, 2.37, 2.5
30 DIM X(4)
40 FOR I = 0 TO 4
50 READ X(I)
60 NEXT
70 FOR K = 0 TO 4
80 Y = 2 * ATN(X(K)) - SIN(X(K) / 2) * LOG(X(K) / 4)
90 PRINT "X="; X(K), "Y="; Y
100 NEXT K
110
110 END
L4101
X= 2.15 Y= 2.816959
X= 2.3 Y= 2.826448
X= 2.35 Y= 2.82771
X= 2.37 Y= 2.827973
X= 2.5 Y= 2.826606
5 CLS
10 PRINT "L4111"
20 DATA -16, -9, 0.5, 2.4, 3.4
30 DIM X(4)
40 FOR I = 0 TO 4
50 READ X(I)
60 NEXT
70 FOR K = 0 TO 4
80 Y = 1 + X(K) + LOG(ABS(X(K)))
90 PRINT "X="; X(K), "Y="; Y
100 NEXT K
110 END
L4111
X=-16 Y=-12.22741
X=-9 Y=-5.802775
X= .5 Y= .8068528
X= 2.4 Y= 4.275469
X= 3.4 Y= 5.623775
5 CLS
10 PRINT "L4121"
20 DATA -2.75, -1.05, 1.65, 3.25, 4.5
30 DIM X(4)
40 FOR I = 0 TO 4
50 READ X(I)
60 NEXT
70 FOR K = 0 TO 4
80 Y = LOG(ABS(1.2 ^ 2 - X(K) ^ 2))
90 PRINT "X="; X(K), "Y="; Y
100 NEXT K
110 END
111
L4121
X=-2.75 Y= 1.81197
X=-1.05 Y=-1.086189
X= 1.65 Y= .2488111
X= 3.25 Y= 2.210744
X= 4.5 Y= 2.934389
5 CLS
10 PRINT "L4131"
20 DATA 0, -3.25, 1.23, 5.2, 4.0
30 DIM X(4)
40 FOR I = 0 TO 4
50 READ X(I)
60 NEXT
70 FOR K = 0 TO 4
80 Y = (ABS(X(K)) + 2 * COS(X(K))) / (.5 + X(K) ^ 2 + X(K) ^ 4)
90 PRINT "X="; X(K), "Y="; Y
100 NEXT K
110 END
L4131
X= 0 Y= 4
X=-3.25 Y= .0102891
X= 1.23 Y= .4413246
X= 5.2 Y= 8.088863E-03
X= 4 Y= 9.881515E-03
5 CLS
10 PRINT "L4141"
20 DATA -1.5, 0, 1.2, 3, 5
30 DIM X(4)
40 FOR I = 0 TO 4
50 READ X(I)
60 NEXT
70 FOR K = 0 TO 4
80 Y = (SIN(X(K)) + COS(X(K))) / (X(K) ^ 2 + 1)
90 PRINT "X="; X(K), "Y="; Y
100 NEXT K
110 END
L4141
112
X=-1.5 Y=-.2851563
X= 0 Y= 1
X= 1.2 Y= .5304905
X= 3 Y=-8.488725E-02
X= 5 Y=-2.597162E-02
5 CLS
10 PRINT "L422"
20 S = 0
30 FOR N = 0 TO 10
40 U = N / (1 + N ^ 2)
50 S=S+U
60 NEXT N
70 PRINT "S="; S
80 END
L422
S= 2.261607
5 CLS
10 PRINT "L432"
20 A = 5.2
113
30 Q = -2
40 S = 0
50 FOR I = 0 TO 9
60 S=S+A
70 A=A*Q
80 NEXT I
90 PRINT "S="; S
100 END
L432
S=-1773.2
CLS
PRINT "L442"
DATA 4.6, 1.5
DIM A(9)
READ A(0), D
PRINT A(0)
FOR I = 1 TO 9
A(I) = A(I - 1) + D
PRINT A(I)
NEXT I
END
L442
4.6
6.1
7.6
9.1
10.6
12.1
13.6
15.1
16.6
18.1
CLS
PRINT "L452"
DATA 2, -1.7, 2.7, 0.8, -3, 1.5, 2.5
DIM A(5)
FOR I = 0 TO 5
114
READ A(I)
NEXT I
READ X
P = A(0)
FOR K = 1 TO 5
P = P * X + A(K)
NEXT K
PRINT P
END
L452
170.0938
CLS
PRINT "L462"
PRINT "X", "Y"
FOR X = -3 TO 1 STEP .5
Y=4*X^3-2*X^2+5
PRINT X, Y
NEXT X
END
L462
X Y
-3 -121
-2.5 -70
-2 -35
-1.5 -13
-1 -1
-.5 4
0 5
.5 5
1 7
CLS
PRINT "L472"
DATA 3, -2.7, 5, 11, -1.8, -0.9, 2.3, -15, 14, -8.7
115
DIM A(9)
FOR K = 0 TO 9
READ A(K)
NEXT K
S=0
N=0
FOR K = 0 TO 9
IF A(K) < 0 THEN 10 ELSE 11
10
N=N+1
S = S + A(K)
11
NEXT K
PRINT "N="; N, " S = "; S
END
L472
N= 5 S = -29.1
CLS
PRINT "L482"
DIM A(5), B(5)
DATA 3, -2.7, 8, -4.1, 5.3, 6.8
DATA -2, 8, 4.7, -11, 8.9, -15
FOR I = 0 TO 5
READ A(I)
NEXT I
FOR I = 0 TO 5
READ B(I)
NEXT I
S=0
FOR I = 0 TO 5
S = S + A(I) * B(I)
NEXT I
PRINT "S="; S
END
L482
S= .2699938
CLS
116
PRINT "L492"
X = 3.2
S=0
FOR N = 1 TO 5
U = X ^ (2 * N) / N ^ 2
S=S+U
NEXT N
PRINT "S="; S
END
L492
S= 5346.554
CLS
PRINT "L4102"
DIM A(5), B(5), C(5)
DATA 7, 8.1, 9.3, -2.7, -0.5, 1.4
DATA 3, 1.2, 7, 9.3, 1.5, 5.2
FOR I = 0 TO 5
READ A(I)
NEXT I
FOR I = 0 TO 5
READ B(I)
NEXT I
FOR I = 0 TO 5
C(I) = A(I) + B(I) ^ 2
PRINT C(I)
NEXT I
END
L4102
16
9.540001
58.3
83.79
1.75
28.44
CLS
PRINT "L4112"
DIM A(10)
117
DATA -3, -7, 9, 10,- 11, -7.5, 8.1, 3.4,- 2, -4, 3.5
FOR I = 0 TO 10
READ A(I)
NEXT I
FOR I = 1 TO 10 STEP 2
IF A(I) < 0 THEN PRINT " I ="; I, A(I - 1)
NEXT I
END
L4112
I=1 -3
I=5 -11
I=9 -2
CLS
PRINT "L4122"
PRINT "X", "Y"
FOR X = 1 TO 2 STEP .2
Y = 3.285 * X ^ 3 / (5 - X ^ (1 / 3))
PRINT X, Y
NEXT X
END
L4122
X Y
1 .82125
1.2 1.441704
1.4 2.322422
1.6 3.512789
1.8 5.063519
CLS
PRINT "L4132"
PRINT "X", "Y"
N=0
FOR X = 4 TO 2 STEP -.5
Y = SQR(ABS(X)) * SIN(X) / (X + EXP(X))
IF Y > 0 THEN N = N + 1
PRINT X, Y
NEXT X
PRINT "N", N
118
END
L4132
X Y
4 -2.583025E-02
3.5 -1.792291E-02
3 1.058789E-02
2.5 6.444869E-02
2 .1369617
N 3
CLS
PRINT "L4142"
S=0
FOR X = -3 TO 3 STEP .5
Y = X * COS(2 * X + 3)
IF Y < 0 THEN S = S + Y
NEXT X
PRINT "S="; S
END
L4142
S=-6.544869
119
120 P = 0
130 P = P + FND(X1, Y1, X2, Y2)
140 P = P + FND(X1, Y1, X3, Y3)
150 P = P + FND(X2, Y2, X3, Y3)
160 PRINT "P="; P
170 RETURN
180 END
L5.1
P= 23.20087
P= 21.86563
P= 22.90324
1 CLS
5 PRINT "L5.2"
10 DEF FND (X1, Y1, X2, Y2) = SQR((X1 - X2) ^ 2 + (Y1 - Y2) ^ 2)
20 DATA 3, 2, -2, 5, 9, 4
30 DATA 2, 1, 5, 5, -4, 6
40 DATA 0, -3, 9, 0, 6, -6
50 READ X1, Y1, X2, Y2, X3, Y3
60 GOSUB 120
70 READ X1, Y1, X2, Y2, X3, Y3
80 GOSUB 120
90 READ X1, Y1, X2, Y2, X3, Y3
100 GOSUB 120
110 GOTO 190
120 A = FND(X1, Y1, X2, Y2)
130 B = FND(X1, Y1, X3, Y3)
140 C = FND(X2, Y2, X3, Y3)
150 P = (A + B + C) / 2
160 S = SQR(P * (P - A) * (P - B) * (P - C))
170 PRINT "S="; S
180 RETURN
190 END
L5.2
S= 13.99999
S= 19.5
S= 22.5
1 CLS
120
5 PRINT "L5.3"
10 DEF FND (X1, Y1, X2, Y2) = SQR((X1 - X2) ^ 2 + (Y1 - Y2) ^ 2)
20 DATA -3, 2, 2, 7, 2, 3, 4, 5
30 DATA -5, -4, 8, -4, 6, 1, -2, 1
40 DATA 5, 3, 5, 7, 9, 5, 9, 4
50 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4
60 GOSUB 120
70 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4
80 GOSUB 120
90 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4
100 GOSUB 120
110 GOTO 190
120 P = 0
130 P = P + FND(X1, Y1, X2, Y2)
140 P = P + FND(X2, Y2, X3, Y3)
150 P = P + FND(X3, Y3, X4, Y4)
160 P = P + FND(X1, Y1, X4, Y4)
170 PRINT "P="; P
180 RETURN
190 END
L5.3
P= 21.51527
P= 32.21612
P= 13.59524
1 CLS
5 PRINT "L5.4"
10 DATA 6.5, 3.4, 2.5
20 DATA 13.4, 8.3, 5.7
30 DATA 15.5, 8.4, 6.5
40 READ A, B, H
50 GOSUB 110
60 READ A, B, H
70 GOSUB 110
80 READ A, B, H
90 GOSUB 110
100 GOTO 140
110 S = (A + B) / 2 * H
120 PRINT "S="; S
121
130 RETURN
140 END
L5.4
S= 12.375
S= 61.845
S= 77.675
1 CLS
5 PRINT "L5.5"
10 DEF FND (X1, Y1, X2, Y2) = SQR((X1 - X2) ^ 2 + (Y1 - Y2) ^ 2)
20 DATA 2, 8, 8, 4, 14, 8, 8, 12
30 DATA 5, 6, 11, 2, 17, 6, 11, 10
40 DATA 0, 11, 6, 7, 12, 11, 6, 15
50 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4
60 GOSUB 120
70 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4
80 GOSUB 120
90 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4
100 GOSUB 120
110 GOTO 170
120 A = FND(X2, Y2, X4, Y4)
130 B = FND(X1, Y1, X3, Y3)
140 S = A * B / 2
150 PRINT "S="; S
160 RETURN
170 END
L5.5
S= 48
S= 48
S= 48
1 CLS
5 PRINT "L5.6"
10 DEF FND (X1, Y1, X2, Y2) = SQR((X1 - X2) ^ 2 + (Y1 - Y2) ^ 2)
20 DATA 2, 8, 8, 4, 14, 8, 8, 12
30 DATA 5, 6, 11, 2, 17, 6, 11, 10
40 DATA 0, 11, 6, 7, 12, 11, 6, 15
50 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4
122
60 GOSUB 120
70 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4
80 GOSUB 120
90 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4
100 GOSUB 120
110 GOTO 180
120 Lromb = FND(X1, Y1, X2, Y2)
130 Lac = FND(X1, Y1, X3, Y3)
140 Lbd = FND(X2, Y2, X4, Y4)
150 S = Lac * Lbd / 2
152 SNalfa = S / Lromb ^ 2
154 PRINT "Lromb="; Lromb, "Lac="; Lac, "Lbd="; Lbd
160 PRINT "S="; S, "sin(alfa)="; SNalfa
170 RETURN
180 END
L5.6
Lromb= 7.211102 Lac= 12 Lbd= 8
S= 48 sin(alfa)= .9230769
Lromb= 7.211102 Lac= 12 Lbd= 8
S= 48 sin(alfa)= .9230769
Lromb= 7.211102 Lac= 12 Lbd= 8
S= 48 sin(alfa)= .9230769
1 CLS
5 PRINT "L5.7"
10 DEF FND (X1, Y1, X2, Y2) = SQR((X1 - X2) ^ 2 + (Y1 - Y2) ^ 2)
20 DATA 0, 4, 2, 9, 8, 3, 6, -2
30 DATA 2, 7, 4, 12, 10, 6, 8, 1
40 DATA -1, 2, 1, 7, 7, 1, 5, -4
50 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4
60 GOSUB 120
70 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4
80 GOSUB 120
90 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4
100 GOSUB 120
110 GOTO 190
120 A = FND(X1, Y1, X2, Y2)
130 B = FND(X1, Y1, X3, Y3)
140 C = FND(X2, Y2, X3, Y3)
123
150 P = (A + B + C) / 2
160 S = 2 * SQR(P * (P - A) * (P - B) * (P - C))
170 PRINT "S="; S
180 RETURN
190 END
L5.7
S= 41.99999
S= 41.99999
S= 41.99999
1 CLS
5 PRINT "L5.8"
10 DEF FNV (X, Y) = SQR(X * X + Y * Y)
20 DATA 0, 4, 2, 9, 8, 3, 6, -2
30 DATA 2, 7, 4, 12, 10, 6, 8, 1
40 DATA -1, 2, 1, 7, 7, 1, 5, -4
50 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4
60 GOSUB 120
70 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4
80 GOSUB 120
90 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4
100 GOSUB 120
110 GOTO 210
120 Z1 = X3 - X1
130 T1 = Y3 - Y1
140 V1 = FNV(Z1, T1)
150 Z2 = X4 - X2
160 T2 = Y4 - Y2
170 V2 = FNV(Z2, T2)
180 C = (Z1 * Z2 + T1 * T2) / V1 / V2
190 PRINT " Косинус угла ="; C
200 RETURN
210 END
L5.8
Косинус угла= .4556711
Косинус угла= .4556711
Косинус угла= .4556711
124
Лабораторнвя работа L59
X 1 = B1 - A1; Y 1 = B 2 - A2.
X 2 = D1 - C1 ; Y 2 = D 2 - C 2.
скалярного произведения:
X 1 * X 2 + Y 1 * Y 2 = 0.
5 CLS
10 PRINT "L5.9"
20 DATA 2, 8, 14, 8, 8, 4, 8, 12
30 DATA 2, 8, 8, 4, 14, 8, 8, 12
40 DATA 0, 1, 12, 11, 6, 7, 6, 15
50 FOR I = 0 TO 2
60 READ A1, A2, B1, B2, C1, C2, D1, D2
70 GOSUB 90
80 GOTO 150
90 X1 = B1 - A1
100 Y1 = B2 - A2
110 X2 = D1 - C1
120 Y2 = D2 - C2
130 S = X1 * X2 + Y1 * Y2
140 RETURN
150 IF S = 0 THEN PRINT I + 1; " Векторы перпендикулярны "
125
170 NEXT I
180 END
L5.9
1 Векторы перпендикулярны
2 Векторы не перпендикулярны
3 Векторы не перпендикулярны
d -разность прогрессии. d = a 2 - a1 .
В примере арифметическая прогрессия: 2, 5, 8,…
5 CLS
10 PRINT "L5.10"
20 DATA 2, 5, 5, 7, 10
30 READ A1, A2
40 PRINT " Арифметическая прогрессия"
50 PRINT "2, 5, 8, 11..."
60 FOR I = 0 TO 2
70 READ N
80 GOSUB 120
90 PRINT " N="; N, "S="; S
100 NEXT I
110 GOTO 150
120 D = A2 - A1
130 S = (2 * A1 + D * (N - 1)) * N / 2
140 RETURN
150 END
L5.10
126
Арифметическая прогрессия
2, 5, 8, 11...
N= 5 S= 40
N= 7 S= 77
N= 10 S= 155
at 2
Выражение V0 t + можно оформить как процедуру, значения которой вычисляются
2
при t1 и t 2 .
1 CLS
5 PRINT "L5.11"
10 DATA 2, 3, 2, 5
20 DATA 10, -2, 1, 3
30 DATA 3.5, 1.5, 0, 10
40 DEF FNS (Vo, A, t) = Vo * t + A * t * t / 2
50 FOR i = 0 TO 2
60 READ Vo, A, t1, t2
70 S = FNS(Vo, A, t2) - FNS(Vo, A, t1)
80 PRINT "V="; Vo; "+"; A; "t"; " t1="; t1, " t2="; t2, " S="; S
90 NEXT I
100 END
L5.11
t1= 2 t2= 5 S= 37.5 V= 2 + 3 t
t1= 1 t2= 3 S= 12 V= 10 +-2 t
t1= 0 t2= 10 S= 110 V= 3.5 + 1.5 t
127
Лабораторная работа L512
Сумма членов геометрической прогрессии определяется по формуле:
a1 - a n q a1 - a1q n a1 (1 - q n )
S= = = ,
1- q 1- q 1- q
5 CLS
10 PRINT "L5.12"
20 PRINT " Геометрическая прогрессия"
30 PRINT "10, 5, 2.5, 1.25..."
40 DATA 2, 5, 10
50 DEF FNF (N) = A1 * (1 - q ^ N) / (1 - q)
60 A1 = 10
70 A2 = 5
80 q = A2 / A1
90 FOR I = 0 TO 2
100 READ N
110 S = FNF(N)
120 PRINT "N="; N, "S="; S
130 NEXT I
140 END
L5.12
Геометрическая прогрессия
10, 5, 2.5, 1.25...
N= 2 S= 15
N= 5 S= 19.375
N= 10 S= 19.98047
5 CLS
10 PRINT "L5.13"
20 DIM A(3)
30 DATA -3, 5, 6, 0, 1, 2, -5, 4, -7,1, 2, -11
40 PRINT " Массив А"
128
50 FOR K = 0 TO 3
60 GOSUB 110
70 A(K) = S
80 PRINT A(K)
90 NEXT K
100 GOTO 170
110 S = 0
120 FOR I = 0 TO 2
130 READ B
140 S = S + B
150 NEXT I
160 RETURN
170 END
L5.13
Массив А
8
3
-8
-8
5 CLS
10 PRINT "L5.14"
20 DIM B(2)
30 DATA 2, -1, 0, 3, 1, 3, 2, -5, 4, 2
40 DATA 1, 5, -3, 7, -4
50 PRINT " Массив B"
60 FOR K = 0 TO 2
70 GOSUB 120
80 B(K) = S
90 PRINT B(K)
100 NEXT K
110 GOTO 180
120 S = 0
130 FOR I = 0 TO 4
140 READ A
150 S = S + A
160 NEXT I
170 RETURN
180 END
129
L5.14
Массив B
5
6
6
130
131