QBasic (Информатика) - вопрос №27767

1) Массивы

Даны вершины треугольника А(x1,x2,...,xn), B(y1,y2,...,yn) и C(z1,z2,...,zn). Найти координаты точки D(d1,d2,...,dn)пересечения биссектрисы угла А со стороной ВС. zi=(( xi+H*yi)/(1+H)), где H= ((|AC|)/(|AB|)) и длину биссектрисы АД.

2) Матрица

В матрице 6х6 указать индексы всех элементов с наибольшим значением.

 

прошу помочь!!!!

Ответы

'Задача 1
REM Задан треугольник A(a1,a2,...,an),B(b1,b2,...,bn),C(c1,c2,...,cn)
REM Найти точку D(d1,d2,...,dn) пересечения биссектрисы угла A и стороны BC
REM Проверка на существование треугольника с данными координатами не производится

INPUT "Введите n: ", n

IF n < 2 THEN
PRINT "n должно быть не меньше 2"
END
END IF

REM Координаты точек
DIM A(1 TO n)
DIM B(1 TO n)
DIM C(1 TO n)
DIM D(1 TO n)

REM Вектора
DIM VBA(1 TO n)
DIM VCA(1 TO n)
DIM VDB(1 TO n)
DIM VDA(1 TO n)

REM Длины векторов
MODVBA = 0
MODVCA = 0
MODVDA = 0

FOR I = 1 TO n
PRINT "Введите координату"; I; "точки A:";
INPUT " ", A(I)
NEXT

FOR I = 1 TO n
PRINT "Введите координату"; I; "точки B:";
INPUT " ", B(I)
VBA(I) = B(I) — A(I)
MODVBA = MODVBA + VBA(I) ^ 2
NEXT
MODVBA = SQR(MODVBA)

FOR I = 1 TO n
PRINT "Введите координату"; I; "точки C:";
INPUT " ", C(I)
VCB(I) = C(I) — B(I)
VCA(I) = C(I) — A(I)
MODVCA = MODVCA + VCA(I) ^ 2
NEXT
MODVCA = SQR(MODVCA)


DIVABAC = MODVBA / MODVCA
DIVBCBD = DIVABAC / (DIVABAC + 1)

PRINT

PRINT "Точка D (";

FOR I = 1 TO n
VDB(I) = VCB(I) * DIVBCBD
D(I) = VDB(I) + B(I)
PRINT D(I);
VDA(I) = D(I) — A(I)
MODVDA = MODVDA + VDA(I) ^ 2
NEXT
MODVDA = SQR(MODVDA)
PRINT "), длина биссектрисы"; MODVDA


'Задача 2
REM В матрице 6x6 указать индексы всех элементов с наибольшими значениями

n = 6
m = 6

DIM A(1 TO n, 1 TO m)
DIM AI(1 TO n * m)
DIM AJ(1 TO n * m)

FOR I = 1 TO n
FOR J = 1 TO m
PRINT "Элемент в строке"; I;
PRINT "и в столбце"; J; "-";
INPUT " ", A(I, J)
NEXT
NEXT

PRINT "Исходная матрица:"

MAX = A(1, 1)
ij = 1

FOR I = 1 TO n
FOR J = 1 TO m
PRINT A(I, J);
IF MAX < A(I, J) OR (I = 1 AND J = 1) THEN
MAX = A(I, J)
ij = 1
AI(ij) = I
AJ(ij) = J
ELSE
IF MAX = A(I, J) THEN
ij = ij + 1
AI(ij) = I
AJ(ij) = J
END IF
END IF

NEXT
PRINT
NEXT

PRINT "Наибольший элемент"; MAX;
PRINT "расположен в индексах:"
FOR I = 1 TO ij
PRINT "Строка:"; AI(I); "столбец:"; AJ(I)
NEXT

24.10.10

Еva

от 100 p.
Читать ответы
Посмотреть всех экспертов из раздела Учеба и наука > Информатика
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store