Даны натуральные числа от 35 до 87. Найти и напечатать те из них, которые при делении на 7 дают остаток 1, 2 или 5. Нужно всё на языке С++, желательно с блок схемой,
Чертёж дан во вложении. Пусть ΔABC - равнобедренный, АВ = с - его основание, АС = ВС = b - боковые стороны. По условию треугольник симметричен относительно горизонтальной оси, так что его основание АВ должно быть перпендикулярно горизонтальной оси и при этом АО = ОВ, а вершина С попадет на горизонтальную ось. Разместим ΔABC так, чтобы основание попало на вертикальную ось. Окружность, описанная вокруг треугольника, пройдет через все три его вершины. Точка М - центр описанной окружности, - лежит на пересечении перпендикуляров, проведенных из середин сторон треугольника. Поскольку ΔABC равнобедренный, то ОС - его высота и отрезок МС, равный радиусу окружности R, также лежит на горизонтальной оси. Найдем высоту ОС, обозначив её через h, по теореме Пифагора. ОС - это катет ΔAOC, AO ⊥ OC.
Площадь ΔABC находим по формуле
Для нахождения радиуса R = MC рассмотрим прямоугольные ΔAOC и ΔMDC, имеющие общий угол АСО = α
Теперь легко сделать необходимое построение. Для этого откладываем от начала координат по горизонтальной оси отрезок ОМ и проводим из него, как из центра, окружность радиуса R. Соединяем между собой три точки пересечения окружностью осей координат и получаем треугольник с длинами сторон, равными заданным.
Ниже приводится программа на языке Microsoft QBasic, позволяющая рассчитать длину отрезка ОМ (Mx - координату х точки М) и радиус описанной окружности R по заданной длине основания с и длине боковой стороны b.
INPUT "Основание: ", c INPUT "Боковая сторона: ", b h = SQR(b ^ 2 - (c / 2) ^ 2) R = b ^ 2 / (2 * h) Mx = h - R PRINT "Радиус равен "; R, "Координата центра равна "; Mx
Тестовое решение: Y:\qbasic>QBASIC.EXE Основание: 6 Боковая сторона: 5 Радиус равен 3.125 Координата центра равна .875
Чтобы продолжить, нажмите любую клавишу
gbelihina
25.12.2020
Const nx=30;mx=30; var i,j,n,m:integer;A:array[1..nx,1..mx] of integer;B,D:array[1..nx] of integer; begin write('Введите n');Readln(n); write('Введите m');Readln(m); for i:=1 to n do begin for j:=1 to m do вegin A[i,j]:=random(100)-20; write(A[i,j]:4);end;writeln;end;writeln; for i:=1 to n do begin for j:=1 to m do begin if (A[i,j] mod 3 =0) then begin B[i]:= B[i] + A[i,j];write(A[i,j]:4);D[i]:= D[i] + 1;end;end;writeln;end; for i:=1 to n do begin if (B[i]=0) and (D[i]= 0) then B[i]:= -10; write(B[i]:4);end;end.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Даны натуральные числа от 35 до 87. Найти и напечатать те из них, которые при делении на 7 дают остаток 1, 2 или 5. Нужно всё на языке С++, желательно с блок схемой,
;) ;0 :*
Объяснение: