Написать программу с двумя формами ветвлений – альтернативой и переключателем - Pascal

Узнай цену своей работы

Формулировка задачи:

Составить алгоритм и написать код программы, вычисляющей длину линии вертикального разреза фигуры y_razrez, значения площадей фигуры слева и справа от линии разреза s_left, s_right, по значениям аргумента x, введенным с консоли

Решение задачи: «Написать программу с двумя формами ветвлений – альтернативой и переключателем»

textual
Листинг программы
Program Variant_11;
Uses WinCRT;
Const r=1;
      t=0.5;
Var y_razrez, s_left, s_right, x, alfa, betta,z, h: Real;
Begin
WriteLn('Laboratornaya rabota#2');
WriteLn('Variant#11');
WriteLn('IS-12-2');
WriteLn('TTTT');
WriteLn;
Write('x='); {VVod ishodnyh dannyh}
ReadLn(x);
IF (x=0)
Then Begin
y_razrez:=1;
s_left:=(Pi*r*r)/4+(Pi*t*t)/2;
s_right:=(Pi*r*r)/4+(Pi*t*t)/2;
End;
IF (x<>0)
Then If (x>=0.5)
     Then Begin
     y_razrez:=z+h;
     z:=sqrt(r*r-x*x);
     h:=sqrt(t*t-(x-0.5)*(x-0.5));
     alfa:=2*arctan(z/x);
     betta:=2*arctan(h/(x-0.5));
     s_right:=(r*r/2*(alfa-sin(alfa)))/2+(t*t/2*(betta-sin(betta)));
     s_left:=(Pi*r*r)/4+(Pi*t*t)/2+(Pi*r*r)/4+(Pi*t*t)/2-s_right;
     End
     Else Begin
      y_razrez:=z+h;
     z:=sqrt(r*r-x*x);
     h:=sqrt(t*t-(0.5-x)*(0.5-x));
     alfa:=2*arctan(z/h);
     betta:=2*arctan(h/(0.5-x));
     s_right:=(r*r/2*(alfa-sin(alfa)))/2+(t*t/2*(betta-sin(betta)))/2;
     s_left:=(Pi*r*r)/4+(Pi*t*t)/2+(Pi*r*r)/4+(Pi*t*t)/2-s_right;
     End
Else If(x>=-0.5)
     Then Begin
     y_razrez:=z+h;
     z:=sqrt(r*r-x*x);
     h:=sqrt(t*t-(0.5-abs(x))*(0.5-abs(x)));
     alfa:=2*arctan(z/x);
     betta:=2*arctan(h/(0.5-abs(x)));
     s_left:=(r*r/2*(alfa-sin(alfa)))/2+(t*t/2*(betta-sin(betta)))/2;
     s_right:=(Pi*r*r)/4+(Pi*t*t)/2+(Pi*r*r)/4+(Pi*t*t)/2-s_left;
     End
     Else Begin
     y_razrez:=z+h;
     z:=sqrt(r*r-x*x);
     h:=sqrt(t*t-(abs(x)-0.5)*(abs(x)-0.5));
     alfa:=2*arctan(z/x);
     betta:=2*arctan(h/(abs(x)-0.5));
     s_left:=(r*r/2*(alfa-sin(alfa)))/2+(t*t/2*(betta-sin(betta)))/2;
     s_right:=(Pi*r*r)/4+(Pi*t*t)/2+(Pi*r*r)/4+(Pi*t*t)/2-s_left;
     End;
WriteLn('y_razrez=',y_razrez:0:6); {Vyvod dannyh}
WriteLn('s_left=',s_left:0:6);
WriteLn('s_right=',s_right:0:6);
readkey;
End.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы