Создайте свой модуль, реализующий математические функции - Turbo Pascal

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

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

Создайте свой собственный модуль, реализующий математические функции, которых нет среди стандартных функций языка Паскаль (тангенс, котангенс, обратные тригонометрические функции, возведение в степень и т.п.).

Решение задачи: «Создайте свой модуль, реализующий математические функции»

textual
Листинг программы
Program Test;
Uses CRT, RVP;
Var
    x,c:real;
    i,y,code,pcode,dcode: integer;
    s,z,v: string;
 
Procedure one;
 begin
      Write('Vvedite Tangens v gradusah: ');
      readln(z);
      val(z,x,PCode);
      If (pcode<>0) then writeln('ERROR! Vvodite 4islovie zna4eni9!');
      If (pcode=0) then Writeln('Tangens ',x:4:2,' = ',tan(x):4:4);
      Writeln;
 end;
 
Procedure two;
 begin
      Write('Vvedite ArcSin ot -1 do 1: ');
      readln(z);
      val(z,x,PCode);
      If (pcode<>0) or (x>1) or (x<-1) then writeln('ERROR! Vvodite pravil"nie 4islovie zna4eni9!')
          else
      If (pcode=0) then Writeln('ArcSin ',x:4:2,' = ',arcsin(x):4:2);
      Writeln;
 end;
 
Procedure three;
 begin
      Write('Vvedite ArcCos ot -1 do 1: ');
      readln(z);
      val(z,x,pcode);
      If (Pcode<>0) or (x>1) or (x<-1) then writeln('ERROR! Vvodite pravil"nie 4islovie zna4eni9!')
         else
      If (pcode=0) then Writeln('ArcCos ',x:4:2,' = ',arccos(x):4:2);
      Writeln;
 end;
 
Procedure four;
 begin
      Write('Vvedite Sinh: ');
      readln(z);
      val(z,x,PCode);
      If (pcode<>0) then writeln('ERROR! Vvodite 4islovie zna4eni9!');
      If (x>50) then writeln('Error!')
         else
      If (pcode=0) then Writeln('Sinh ',x:4:2,' = ',Sinh(x):4:2);
      Writeln;
 end;
 
Procedure five;
 begin
      Write('Vvedite Cosh: ');
      readln(z);
      val(z,x,PCode);
      If (pcode<>0) then writeln('ERROR! Vvodite 4islovie zna4eni9!');
      If (x>50) then writeln('Error!')
         else
      If (pcode=0) then Writeln('Cosh ',x:4:2,' = ',Cosh(x):4:2);
      Writeln;
 end;
 
Procedure six;
 begin
      Write('Vvedite Tanh: ');
      readln(z);
      val(z,x,PCode);
      If (pcode<>0) then writeln('ERROR! Vvodite 4islovie zna4eni9!');
      If (pcode=0) then Writeln('Tanh ',x:4:2,' = ',Tanh(x):4:2);
      Writeln;
 end;
 
Procedure seven;
 begin
      Write('Vvedite Log10 (tol"ko ''+''): ');
      readln(z);
      val(z,x,pcode);
      If (x<=0) or (pcode<>0) then writeln('ERROR!!! Povtorite vvod!')
         else
      If (pcode=0) then Writeln('Log ',x:4:2,' po osnovanijy 10 = ',Log10(x):4:2);
      Writeln;
 end;
 
Procedure eight;
 begin
      Write('Vvedite 4islo and stepen": ');
      readln(v);
      readln(z);
 
      val(v,c,dcode);
      val(z,x,pcode);
 
      If (dcode=0) then
      begin
       If c>0 then
        begin
             If (pcode<>0) then writeln('ERROR! Vvodite 4islovie zna4eni9!');
             If (pcode=0) then Writeln('4islo = ',Deg(c,x):4:2);
             Writeln;
        end
          else
       If c<0 then
        begin
             c:=abs(c);
             If (pcode<>0) then writeln('ERROR! Vvodite 4islovie zna4eni9!');
             If (pcode=0) then writeln('4islo = -',Deg(c,x):4:2);
             Writeln;
        end
          else
       If c=0 then writeln('Neopredelennost"');
      end
          else
      If (dcode<>0) then writeln('ERROR!!');
 end;
 
Procedure Menu;
 begin
      writeln('                    1 - Tangens     4 - Sinh     7 - Log10');
      writeln('       0 - MENU     2 - ArcSin      5 - Cosh     8 - Deg');
      writeln('                    3 - ArcCos      6 - Tanh     9 - EXIT');
      Writeln;
 end;
 
Begin
     clrscr;
     Menu;
     while i<>9 do
      begin
           readln(s);
           val(s,i,code);
           If (code<>0) or (i>9) then write('ERROR! Vvodite v diapazone 0-9: ');
           If (code=0) then
           begin
                Case i of
                         1: One;
                         2: Two;
                         3: Three;
                         4: Four;
                         5: Five;
                         6: Six;
                         7: Seven;
                         8: Eight;
                         9: Exit;
                         0: Menu;
                end;
           end;
      end;
end.

Объяснение кода листинга программы

Этот код написан на Turbo Pascal и представляет собой модуль, который реализует математические функции. Процедура one выполняет функцию tangens для заданного числа в градусах и выводит результат на экран. Если введенное число не соответствует ожидаемому диапазону (от -1 до 1), то выводится сообщение об ошибке. Процедура two выполняет функцию arcsin для заданного числа в заданном диапазоне (-1 до 1) и выводит результат на экран. Если введенное число не соответствует ожидаемому диапазону или является отрицательным, то выводится сообщение об ошибке. Процедура three выполняет функцию arccos для заданного числа в заданном диапазоне (-1 до 1) и выводит результат на экран. Если введенное число не соответствует ожидаемому диапазону или является отрицательным, то выводится сообщение об ошибке. Процедура four выполняет функцию sinh для заданного числа и выводит результат на экран. Если введенное число превышает 50, то выводится сообщение об ошибке. Процедура five выполняет функцию cosh для заданного числа и выводит результат на экран. Если введенное число превышает 50, то выводится сообщение об ошибке. Процедура six выполняет функцию tanh для заданного числа и выводит результат на экран. Если введенное число превышает 50, то выводится сообщение об ошибке. Процедура seven выводит сообщение о том, что введено некорректное значение для функции log10. Процедура eight выполняет функцию deg для заданного числа и выводит результат на экран. Если введенное число не соответствует ожидаемому диапазону (от 0 до 360), то выводится сообщение об ошибке. Процедура menu выводит меню с предлагаемыми функциями и ожидает выбора пользователя. В конце программы выводится сообщение с приглашением ввести значение для функции tangens.

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


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

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

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