ekaterinkat
?>

Программа обрабатывает одномерный целочисленный массив Dat: i 1 2 3 4 5 6 7 8 9 10 Dat[i] 70 80 90 100 80 40 40 70 80 90 Определите, какие числа будут выведены в результате выполнения следующего фрагмента программы: k := 1; m := dat[k]; for i := 2 to 10 do if dat[i] < m then begin m := dat[i]; k := i; end; writeln('m = ', m); writeln('k = ', k);

Информатика

Ответы

timsch12
Чертеж дан в приложении. E, F, K - это точки с задданными координатами., расположенные на серединах сторон треугольника ABC.
Для этих точек можно записать известные соотношения:
X_E=0.5(X_A+X_B); \ Y_E=0.5(Y_A+Y_B); \\ X_F=0.5(X_A+X_C); \ Y_F=0.5(Y_A+Y_C); \\ X_K=0.5(X_B+X_C); \ Y_K=0.5(Y_B+Y_C);
Приведем их к целочисленным коэффициентам.
2X_E=X_A+X_B; \ 2Y_E=Y_A+Y_B; \\ 2X_F=X_A+X_C; \ 2Y_F=Y_A+Y_C; \\ 2X_K=X_B+X_C; \ 2Y_K=Y_B+Y_C;
Сложим все три уравнения отдельно для X и Y:
2(X_E+X_F+X_K)=2(X_A+X_B+X_C); \\ 2(Y_E+Y_F+Y_K)=2(Y_A+Y_B+Y_C);
Теперь можно записать выражения для нахождения координат вершины А:
X_A=X_E+X_F+X_K-(X_B+X_C); \ X_B+X_C=2X_K; \\ X_A=X_E+X_F-X_K \\ Y_A=Y_E+Y_F+Y_K-(Y_B+Y_C); \ Y_B+Y_C=2Y_K; \\ Y_A=Y_E+Y_F-Y_K

Окончательно расчетные формулы:
X_A=X_E+X_F-X_K; \ Y_A=Y_E+Y_F-Y_K

var
  xE, yE, xF, yF, xK, yK, xA, yA: real;

begin
  Write('Введите через пробел координаты точки E(x,y): ');
  Readln(xE, yE);
  Write('Введите через пробел координаты точки F(x,y): ');
  Readln(xF, yF);
  Write('Введите через пробел координаты точки K(x,y): ');
  Readln(xK, yK);
  xA := xE + xF - xK; yA := yE + yF - yK;
  Writeln('Координаты точки А: ', xA:0:2, ' ', yA:0:2)
end.

Тестовое решение:

Введите через пробел координаты точки E(x,y): 45.67 67.89
Введите через пробел координаты точки F(x,y): 12.34 56.78
Введите через пробел координаты точки K(x,y): 90.12 34.56
Координаты точки А: -32.11 90.11

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

Заданы координаты середины сторон треугольника а(45,67; 67,89), в(12,34; 56,78), с(90,12; 34,56) в о

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Программа обрабатывает одномерный целочисленный массив Dat: i 1 2 3 4 5 6 7 8 9 10 Dat[i] 70 80 90 100 80 40 40 70 80 90 Определите, какие числа будут выведены в результате выполнения следующего фрагмента программы: k := 1; m := dat[k]; for i := 2 to 10 do if dat[i] < m then begin m := dat[i]; k := i; end; writeln('m = ', m); writeln('k = ', k);
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

drappaeva68
rytikovabs
Татьяна902
supercom-ru-marinaguseva4267
r682dm2011
stairov536
ilukianienko458
tenvalerij
egoryuzbashev
Светлана308
maxkuskov2485
Банова_Елена431
info7
bespalovaannaanna