Цитата:
Сообщение от Ксюха
1 Даны действительные числа S,T.
Получить H(S,T)+H(S-T,S*T)-H(2.5, S/T),
где H(A,B)= A / (1+B²) + B/ (1+A²) -(A-B)³ описать в программе как функцию.
2. Описать процедуру, которая в том из векторов А, В или С, где больше всего отрицательных элементов (считать, что такой вектор один), все его положительные элементы заменяет на их кубы — если это вектор А или вектор В, и на обратные величины — если это вектор С.
|
Пожалуйста:
1.
VAR
S, T:REAL;
FUNCTION H(A,B:REAL):REAL;
BEGIN
H:=A/(1+SQR(B))+B/(1+SQR(A))-(A-B)*SQR(A-B);
END;
BEGIN
Write('S = '); ReadLn(S);
Write('T = '); ReadLn(T);
Writeln('Result = ', H(S,T)+H(S-T,S*T)-H(2.5, S/T));
ReadLn;
END.
2.
CONST
N=10;
TYPE
AR=ARRAY [1..N] of REAL;
PROCEDURE CHANGE_VECTOR(A_in, B_in, C_in:AR; VAR A_out:AR; VAR B_out:AR; VAR C_out:AR);
VAR
p_A, p_B, p_C, i:INTEGER;
BEGIN
p_A:=0;
p_B:=0;
p_C:=0;
FOR i:=1 TO N DO
BEGIN
IF A_in[i]<0 THEN INC(p_A);
IF B_in[i]<0 THEN INC(p_B);
IF C_in[i]<0 THEN INC(p_C);
END;
IF (p_A>p_B) AND (p_A>p_C) THEN
BEGIN
B_out:=B_in;
C_out:=C_in;
FOR i:=1 TO N DO
IF A_in[i]>0 THEN A_out[i]:=A_in[i]*A_in[i]*A_in[i]
ELSE
A_out[i]:=A_in[i];
END;
IF (p_B>p_A) AND (p_B>p_C) THEN
BEGIN
A_out:=A_in;
C_out:=C_in;
FOR i:=1 TO N DO
IF B_in[i]>0 THEN B_out[i]:=B_in[i]*B_in[i]*B_in[i]
ELSE
B_out[i]:=B_in[i];
END;
IF (p_C>p_A) AND (p_C>p_B) THEN
BEGIN
A_out:=A_in;
B_out:=B_in;
FOR i:=1 TO N DO
IF C_in[i]>0 THEN C_out[i]:=1/C_in[i]
ELSE
C_out[i]:=C_in[i];
END;
END;