Аватар
Информатика, опубликовано 2018-08-22 22:03:32 by Гость

Ошибка с синусом! Помогите пожалуйста!program calculator; uses crt; label beg,znak,mem,okr; var a,b,m:real;i,y,r,n:integer;c,o,f,h:char;cos,sin,tan:string; begin okr:writeln(Округлять ответ? Если да введите 2, иначе 1.); readln(o); while not((o=1)or(o=2))do begin writeln(Неправильное значение. Введите правильное.); readln(o); end; if o=2then begin writeln(До скольки знаков после запятой округлять?); readln(n); end; if c=n then goto znak; mem:writeln(|//////////////ПАМЯТКА:Cначала вводите первое число,потом знак,потом по необходимости второе число(Калькулятор зациклен,можно вводить знак и второе число много раз),Всегда читайте заданный программой вопрос прежде чем вводить!); writeln(|Доступные знаки:+,-,*,/,cos,sin,tan; а также:1-корень,2-степень,3-остаток от деления,c-поменять знак числа,n-опции округления результата,r-округление числа,t-отбрасывание дробной части,a-ввод первого числа заново,b-вызвать памятку,0-конец программы:ПАМЯТКА//////////////|); if c=b then goto znak; beg:writeln(Первое число?); readln(a); znak: for i:=0 to 999999999 do begin writeln(Знак?); readln(c); if c=n then goto okr; if c=0 then break; if c=a then goto beg; if c=b then goto mem; while not(c in[+,-,*,/,1,2,3,r,t,c,sin,cos,tan])do begin writeln(Знак не поддерживается! Введите правильный знак!); readln(c); end; if c=cthen a:=-a; if c=rthen a:=round(a); if c=tthen a:=trunc(a); if c in[1,2]then begin if c=2then begin writeln(В какую степень возвеcти желаете?); readln(m); a:=power(a,m); end else a:=sqrt(a) end; if c in[sin,cos,tan]then begin writeln(Радианы(r)или градусы(g)? Введите пожалуйста); readln(h); if c=sin then beginif h=r then a:=sin(a); if h=g then a:=sin(a*pi/180) end; if c=cos then begin if h=r then a:=cos(a); if h=g then a:=cos(a*pi/180) end; if c=tan then begin if h=r then a:=tan(a); if h=g then a:=tan(a*pi/180) end; end; if not(c in[r,t,c,sin,cos,tan,1,2])then begin writeln(Второе число?); readln(b); if c=3then begin while btrunc(b)do begin writeln(Второе число должно быть целым! Введите заново!); readln(b) end; if atrunc(a)then begin writeln(Округлить a(введите r) или оставить целую часть от a(введите t)?); readln(f); case f of r:a:=round(a); t:a:=trunc(a); end; end; r:=trunc(b); y:=trunc(a); y:=y mod r; a:=y end; case c of +:a:=a+b; -:a:=a-b; *:a:=a*b; /:a:=a/b; end; end; writeln([{}]); case o of 2:writeln(=,a:0:n); 1:writeln(=,a); end; end; end. Паскаль ABC. В строке 49(if h=r then a:={МЕСТО ОШИБКИ}sin(a);) выдает ошибку:Ожидалось имя процедуры или функции. Чем ему синус не нравится? Помогите пожалуйста!

Аватар
Ответ оставил Гость

Могу Вас обрадовать (или огорчить): программе не понравится также cos(a); и tan(a);
Вы сначала объявляете посредством
var a,b,m:real;i,y,r,n:integer;c,o,f,h:char;cos,sin,tan:string;
имена sin, cos, tan, как строки, а потом пытаетесь обратиться к ним, как к функциям, употребляя запись объявленных переменных в формате вызова функций с параметром.

Вопрос
Не нашли ответа?
Если вы не нашли ответа на свой вопрос, или сомневаетесь в его правильности, то можете воспользоваться формой ниже и уточнить решение. Или воспользуйтесь формой поиска и найдите похожие ответы по предмету Информатика.