Предмет: Информатика, автор: Паша159

Есть код на паскале, который считает выражение и запрещает ввод букв. Нужно сделать проверку знаменателя на 0 обоих выражений, и вывести текст в случае нуля

PascalABC

program aip;
var
fltA,fltB,fltB2:real;
code:integer;
function ip(A:real):real;
var A1:string;
begin
write('Введите значение А= ');


//--------
repeat
readln(A1);
val(A1,A,code);
if (code<>0) then writeln('no');
until (A>0);
//-------
ip:=A;
end;
begin
fltA:=ip(fltA);
fltB:= ((1-2*sin(fltA)*sin(fltA))/(1+sin(2*fltA)));
fltB2:= ((1-tan(fltA))/(1+tan(fltA)));
writeln('Первая формула ',fltB:5:5);
writeln('Вторая формула ',fltB2:5:5);
end.

Ответы

Автор ответа: mirsaidmir
0
PascalABC

program aip;
var 
fltA,fltB,fltB2:real;
code:integer;
function ip(A:real):real;
var A1:string;
begin
write('Введите значение А= ');


//--------
repeat 
readln(A1);
val(A1,A,code);
if (code<>0) then writeln('no');
until (A>0);
//-------
ip:=A;
end; 
begin 
fltA:=ip(fltA);
if abs(1+sin(2*fltA)) < 0.000001 then begin
   writeln('Delenie na nol v pervoy formule');
end else begin
   fltB:= ((1-2*sin(fltA)*sin(fltA))/(1+sin(2*fltA)));
   writeln('Первая формула ',fltB:5:5);
end;
if abs(1+tan(fltA)) < 0.000001 then begin
   writeln('Delenie na nol vo vtoroy formulte');
end else begin
   fltB2:= ((1-tan(fltA))/(1+tan(fltA)));
   writeln('Вторая формула ',fltB2:5:5); 
end;
end. 
Автор ответа: Паша159
0
Считает все равно, нужно перевод сделать
Автор ответа: mirsaidmir
0
ip:=A; замените на ip:=A*3.14/180; вместо 3,14 можете взять более точное значение числа pi
Автор ответа: Паша159
0
Не работает :(
Автор ответа: Паша159
0
Делит все равно
Автор ответа: Паша159
0
Нужно сделать что бы он в градусной мере принимал значения
Похожие вопросы