C++ Дан массив из N действительных элементов. a) Найти максимальный элемент второй половины массива и его порядковый номер. б) Упорядочить элементы массива в порядке возрастания, используя сортировку обменом.
Так как на большинстве версий "Паскаля" мы не можем установить шаг цикла в for, будем использовать цикл while для решения данной задачи.
Возьмём переменную i для хранения нужных нам значений, дадим ей значение равное 1001, запустим цикл while, который будет выполняться пока наша i <= 1025, в цикле у нас будет выводиться на экран значение переменной i, а затем переменная увеличиваться на 3.
Начнем с формул. Площадь треугольника: S = 1/2*a*b*sin C Отсюда: sin C = 2*S/(a*b); cos C = sqrt(1 - sin^2 C) tg C = sin C / cos C; C = atan(tg C) Теорема косинусов: c = sqrt(a^2 + b^2 - 2*a*b*cos C) Площадь: S = c*h/2; отсюда h = 2*S/c Теорема синусов: a/sin A = b/sin B = c/sin C Отсюда: sin A = a/c*sin C; sin B = b/c*sin C cos A = sqrt(1 - sin^2 A); cos B = sqrt(1 - sin^2 B) tg A = sin A/cos A; A = atan(tg A); tg B = sin B/cos B; B = atan(tg B) Периметр: P = a + b + c Теперь записываем в Паскале singam := 2*S/(a*b); cosgam = sqrt(1 - singam*singam); tangam := singam/cosgam; Gamma := atan(tangam); c := sqrt(a*a + b*b - 2*a*b*cosgam); h := 2*S/c; P := a + b + c; sinalp = a/c*singam; cosalp = sqrt(1 - sinalp*sinalp); tanalp := sinalp/cosalp; Alpha := atan(tanalp); sinbet = b/c*singam; cosbet = sqrt(1 - sinbet*sinbet); tanbet := sinbet/cosbet; Beta := atan(tanbet);
Так как на большинстве версий "Паскаля" мы не можем установить шаг цикла в for, будем использовать цикл while для решения данной задачи.
Возьмём переменную i для хранения нужных нам значений, дадим ей значение равное 1001, запустим цикл while, который будет выполняться пока наша i <= 1025, в цикле у нас будет выводиться на экран значение переменной i, а затем переменная увеличиваться на 3.
Алгоритм на языке Паскаль:
var
i : integer;
begin
i := 1001;
while i <= 1025 do
begin
write(i,' ');
i := i + 3;
end;
end.