Лабораторная работа №1
Тема: «Разработка простейших программ линейных структур»
Под работы:
Запись формул.
Контрольный расчёт для индивидуального задания.
Запись формул индивидуального задания на BASICе.
Блок схема алгоритма.
Программа.
Таблица результатов расчётов по заданию.
первый набор данных | второй набор данных | |
a | 7.5 | 0.918 |
b | 0.5 | 2.117 |
c | 10 | 3.219 |
начало
ввод a,b,c
y=…
y
конец
INPUT “Введите a, b, c”; a, b, c
y=(a+b)/c+(SIN(b)^2+a+0.25+0.2c)^(1/3)
PRINT “y=”; y
(SIN(x+b)^a(c^2+x^0.7LOG(a))^(115))/(SQR(x+a)+1)
((a^(x+m)COS(x)+SQR((LOG(a+b)/LOG10)^2)/(1+(x+a)^(1/3))
контрольный расчёт | первый машинный расчёт | второй машинный расчёт |
3.036 | 2.952986 | 2.307602 |
;
;
где: x=4, y=2
исходные данные для реального примера | |
x | 3.916 |
y | 1.612 |
a=(x^2+y+SIN(y/x))/(x+y^2)^(1/3)+x^y;
b=(x+6y)^(1/4)/SIN(1/y)
начало
ввод x,y
a=…
b=…
a
b
конец
INPUT “Введите x, y”; x, y
a=(x^2+y+SIN(y/x))/(SQR(x+y^2)+x^y)
b=(x+6y)^(1/4)/SIN(1/y)
PRINT “a=”; a
PRINT “b=”; b
контрольный расчёт | первый машинный расчёт | второй машинный расчёт | |
a | 1.02 | 1.026635 | 1.591904 |
b | 4 | 4.171659 | 3.302746 |
Лабораторная работа №2
Тема: «Разработка разветвлённых программ»
Цель: Изучение методов составления блок-схем алгоритмов и программ с разветвлениями на BASICе.
Ход работы:
Изучить основные сведения, необходимые для составления блок-схем алгоритмов с разветвлённой структурой.
Изучить операторы условной и безусловной передачи управления.
Изучить примеры, приведённые в описании данной работы.
Ответить на контрольные вопросы.
Составить блок-схему алгоритмов и программ на BASICе для решения следующих задач:
;
первый контрольный набор | второй контрольный набор | реальный набор | |
x | 4 | 6 | 4.576 |
y | 5 | 2 | 0.927 |
b=(ABS(x^3)+y)/(2y-x)
начало
ввод x,y
b=…
да
нет
x
a, b
конец INPUT
“Введите x,
y”; x, y b=(ABS(x^3)+y)/(2y-x) IF x a=x-b ELSE a=b-y END IF PRINT “a=”;
a PRINT “b=”;
b
в
остальных
случаях
начало
ввод
x,a
-50x-30
или
-20x-10
y=x-x
-2x
x=-5
или
1x10
y=LOG(ABS(x))
20x50
или
60x70
y=1/(x+a)
y=SQR(x+a)
y=…
y
конец INPUT
“Введите
x, a”; x, a IF x>=-50 and x<=-30
or x>=-20 and x<=-10 THEN y=x^2-x ELSE
IF x>=-2 and x<=-1 or x>=1 and x<=10 or x>=-5 THEN
y=LOG(ABS(x)) ELSE
IF x>=20 and x<=50 or x>=60 and x<=70 THEN y=SQR(x+a^2) ELSE y=1/(x+a) END IF PRINT
“x=”; x PRINT “y=”;
y
начало
ввод
a, b, c
a=x
a
a
a
a
b=x
b>x
b=x
b>x
b=x
b>x
b=x
b>x
b=x
c=x+x+x
c
y=…
y
конец INPUT
“Введите
a, b, c”; a, b, c a=x IF
a IF
a IF
a IF
a END IF b=x IF
b>xTHEN
b=x IF
b>x
THEN b=x IF
b>x
THEN b=x IF
b>x
THEN b=x END IF c=x+x+x IF
c END IF y=(2aa+3b-c)/(b+c) PRINT “y=”;
y Лабораторная
работа №3 М
(x;y)
y n=2
n=1
x
-1 +1 n=1
n=2 INPUT
“Введите
x, y, z”; x, y, z IF x^2+y^2>R THEN n=3 ELSE IF x+y>0 THEN n=1 ELSE n=2 END IF PRINT “n=”;
n
2x+1
e
3+1
a=2 b=6 n=20 INPUT
“Ввести
a, b, h, c, d”; a, b, h, c, d x=a
: y=-1E10
: y=1E10 DO IF x<=c THEN y=(EXP(x)(COS(x)^2) ELSE IF x<=d THEN y=(x^2)sin(x) ELSE y=LOG(x^2+1)COS(x) END IF PRINT “x=”;
x, “y=”; y IF
y>y
THEN y=y;
x=x IF
y x=x+h IF x>b THEN EXIT DO LOOP P
y=729.9988
x=5.9 y=9
x=2 PRINT
“y=”;
y,
“x=”;
x END
3-COS2x
a=
b=
n=20 INPUT
“Введите
a, b, n”; a, b, n h=(b-a)/n x=a
: y=1E+10 DO y=ABS(3-COS(2x) IF
y x=x+h LOOP UNTIL x>b PRINT
“x=”;
x END Лабораторная
работа №4 Тема:
«Составление
циклических
программ. Вычисление
сумм и произведений»
начало
ввод
L
P=1;
j=1
p=p(2j+L)/(j+2)
j=j+1
jM
y=p
y
конец INPUT
“Введите L”;
L P=1 FOR j=1 TO L P=P(2j+l)/(j+2) NEXT j PRINT “P=”;
P END INPUT
“Введите M,
N, L”; M,
N, L P=1 FOR k=1 TO m P=P((2k+L)/(L+k)) NEXT k S=1 FOR k=1 TO m S=S(k^2/(k^2+1)) NEXT k Z=0 FOR i=1 TO n Z=Z+(i^2+L)/(2Li) NEXT i y=P/(S+Z) PRINT “y=”;
y
Дан одномерный
массив
Найти среднее
арифметическое
элементов
массива, имеющих
чётные номера
и удовлетворяющих
условию
,
а также сумму
положительных
элементов
массива. Все
отрицательные
элементы исходного
массива разделить
на найденное
значение суммы. INPUT
"Ввод массива";
N FOR I = 1
TO N PRINT
"A("; I; ")="; INPUT
A(I) NEXT I S = 0: K =
0 FOR I = 2
TO N STEP 2 IF
A(I) > -10 AND A(I) < 5 THEN S =
S + A(I) K =
K + 1 END IF NEXT I P = 0 FOR I = 1
TO N IF
A(I) > 0 THEN P =
P + A(I) END IF NEXT I FOR I = 1
TO N IF
A(I) < 0 THEN A(I)
= A(I) / P END IF NEXT I IF K = 0
THEN PRINT
"Деление
на
0" ELSE SR = S
/ K END
IF PRINT
"Вывод нового
массива" FOR I = 1
TO N PRINT
"A("; I; ")="; A(I) NEXT
I PRINT
"Сумма положительных
элементов=";
P PRINT
"Средне арифметическое
значение="; SR N X1 X2 X3 X4 X5 -2 -5 P=8
удовлетворяет
условию
Дан одномерный
массив
Все элементы
с чётными номерами
и принадлежащими
интервалу от
А до В записать
в новый массив
Y,
а все отрицательные
элементы с
нечётными
номерами,
предварительно
заменив их на
модули, записать
в массив Z.
В массиве Y
найти наименьший
элемент, а в
массиве Z
последний
нечётный элемент. A B N X1 X2 X3 X4 X5 8 6 7 9
первый
контрольный
расчёт
второй
контрольный
расчёт
реальный
расчёт
a
4.5
11877
1262.429
b
11.5
-109
-35.54277
контрольный
пример
Реальный
пример
L=2
L=14
контрольный
пример
реальный
пример
P=2
P=1.5876
контрольный
пример
реальный
пример
N=3
N=12
M=2
M=14
P=3
P=4.6
контрольный
пример
реальный
пример
y=1.553957
y=4.346143
ИДЗ
№1
5
1
3
4
ИДЗ №2
INPUT "B="; B
X6
X7
X8
X9
X10
3
10
10
1
-4
-2
5
-1
-10
INPUT "A="; A
INPUT "N="; N
DIM X(N), Y(N)
FOR I = 1 TO N
PRINT "X("; I; ")=";
INPUT X(I)
NEXT I
K = 0
FOR I = 2 TO N STEP 2
IF X(I) > A AND X(I) < B THEN
K = K + 1
Y(K) = X(I)
END IF
NEXT I
J = 0
FOR I = 1 TO N STEP 2
IF X(I) < 0 THEN
J = J + 1
Z(J) = ABS(X(I))
END IF
NEXT I
IF K = 0 THEN
PRINT "Нет массива Y"
ELSE
MINY = Y(1)
FOR I = 2 TO K
IF Y(I) < MINY THEN
MINY = Y(I)
END IF
NEXT I
END IF
IF J = 0 THEN
PRINT "Нет массива Z"
ELSE
FOR I = 1 TO K
PRINT Y(I)
NEXT I
PRINT "MINY="; MINY
END IF
FOR I = 1 TO J
IF Z(I) MOD 2 <> 0 THEN
NPN = I
END IF
NEXT I
FOR I = 1 TO J
Y(N) |
MINY |
Z(K) |
Z(NPN) |
8,6,7,9 | 6 | 4,1,10 | 1 |
NEXT I
PRINT "Z(NPN)="; Z(NPN)
END
ИДЗ №1
Задана матрица В. найти минимальный элемент матрицы. Все элементы лежащие ниже главной диагонали, умножить на этот минимальный элемент.
INPUT "N,M"; N, M
DIM A(N, M)
PRINT "Ввод матрицы"
FOR I = 1 TO N
FOR J = 1 TO M
PRINT "A("; I; ")=";
INPUT A(I, J)
NEXT J
NEXT I
MIN = A(1, 1)
FOR I = 1 TO N
FOR J = 1 TO M
IF MIN > A(I, J) THEN
MIN = A(I, J)
END IF
NEXT J
NEXT I
FOR I = 2 TO N
FOR J = 1 TO I - 1
A(I, J) = A(I, J) * MIN
NEXT J
NEXT I
FOR I = 1 TO N
FOR J = 1 TO M
PRINT A(I, J);
NEXT J
NEXT I
END
ИДЗ №2
Вычислить определитель треугольной матрицы.
INPUT "Введите кол-во строк и столбцов матрицы"; N
DIM A(N, N)
FOR I = 1 TO N
FOR J = 1 TO N
PRINT "A("; I; ","; J; ")=";
INPUT A(I, J)
NEXT J
NEXT I
P = 1
FOR I = 1 TO N
FOR J = 1 TO N
IF I = J THEN
P = P * A(I, J)
END IF
NEXT J
NEXT I
PRINT "Определитель треугольной матрицы="; P
END
INPUT "Ввести M,N"; M, N
P = 1: S = 0
FOR I = 1 TO N
P = P * (I / (2 + I))
FOR J = 1 TO M
S = S * (I + J)
NEXT j
NEXT I
Y = P + S
PRINT "Y="; Y
ОДЗ №1
Задан одномерный массив. Найти среднее арифметическое элементов, делящихся на 3 без остатка и количество положительных элементов с чётными номерами. Найденное среднее вычесть из значения последнего элемента.
INPUT "Ввести массив N="; N
DIM A(N)
FOR I = 1 TO N
PRINT "A("; I; ")=";
INPUT A(I)
NEXT I
S = 0: K = 0: L = 0
FOR I = 1 TO N
IF A(I) MOD 3 = 0 THEN
S = S + A(I)
K = K + 1
END IF
NEXT I
FOR I = 2 TO N STEP 2
IF A(I) > 0 THEN
L = L + 1
END IF
NEXT I
PRINT "L="; L
IF K = 0 THEN
PRINT "Нет среднего значения"
ELSE
SR = S / K
A(N) = A(N) - SR
FOR I = 1 TO N
PRINT "A("; I; ")="; A(I)
NEXT I
END IF
ОДЗ №2
Задан одномерный массив X(N). Первый положительный элемент записать на место максимального с чётным номером.
-
N
X1
X2
X3
X4
X5
5 -1 2
-3 6
8
INPUT "Ввести массив N="; N
DIM X(N)
FOR I = 1 TO N
INPUT X(I)
NEXT I
NPOL = 0
FOR I = 1 TO N
IF X(I) > 0 THEN
NPOL = I
EXIT FOR
END IF
NEXT I
IF NPOL = 0 THEN
PRINT "Нет положительных элементов"
ELSE
MAXX = X(2)
FOR I = 4 TO N STEP 2
IF X(I) > MAXX THEN
MAXX = X(I)
NMAXX = I
END IF
NEXT I
X(NMAXX) = X(NPOL)
FOR I = 1 TO N
PRINT X(I)
NEXT I
END IF
Новый массив |
||||
-1 |
2 |
-3 |
2 |
8 |