Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2017, 19:16   #1
KekLol
Новичок
Джуниор
 
Регистрация: 12.02.2017
Сообщений: 1
Стрелка Решение уравнения в Pascal

Помогите найти ошибку.
Нужно написать такую формулу: х=Корень из((2а+sin|3а|)/3.56)
program х;
var x,a:real;
begin
read(a);
write(sqrt((2*a+sin*abs(3*a)/3.56)
end.

Ошибка:Program1.pas(5,19): Нельзя преобразовать тип function(x: real): real к real
Буду благодарна за помощь)
KekLol вне форума Ответить с цитированием
Старый 12.02.2017, 20:51   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Подсчитай количество открывающихся и закрывающихся скобок - они должны быть одинаковы... А ещё, название программы и переменной одинаковы... Короче, вот тебе заготовка:
Код:
Program URAVNENIE;
var a:real;
begin
  write('Vvetite a= ');
  read(a);
  write('x= ');
  write(sqrt(2*a));
end.
Твоя задача: вписать в неё своё уравнение. Только ты делай по частям, т.е. написал чуть-чуть уравнения - скомпилируй (тем самым проверишь что нет ошибок), потом ещё пару символов - и опять компиляция. Таким образом ты определишь когда появляются ошибки в формуле.

0_0.jpg

Последний раз редактировалось ura_111; 12.02.2017 в 20:55.
ura_111 вне форума Ответить с цитированием
Старый 12.02.2017, 21:55   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Кстати, здесь при некоторых a под корнем может быть < 0. Это тоже надо как-то предусмотреть.
Например:
Код:
 if t<0 
  then WriteLn(' no result ')
  else WriteLn(Sqrt(t));
type_Oleg вне форума Ответить с цитированием
Старый 13.02.2017, 11:04   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,551
По умолчанию

{ х=Корень из((2а+sin|3а|)/3.56) }
Эта строчка должна звучать примерно так:
Код:
write(sqrt((2*a+sin(abs(3*a)))/3.56)) ;
А еще лучше такие замудренные выражения разбивать на более простые, чтоб в скобках не запутаться.
Код:
   tmp := abs (3*a) ; tmp := sin(tmp) ; tmp := (2*a+tmp)/3.56 ;
  if tmp > 0 then  write(sqrt(tmp)) else write ('Bad argument') ;
И вообще это не решение уравнения, а вычисление выражения. Решение уравнения : F(x) = 0 ; x=?
Разницу улавливаете ?

Последний раз редактировалось digitalis; 13.02.2017 в 11:11.
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение уравнения в Pascal Navka Помощь студентам 5 08.02.2014 19:38
Решение уравнения методом Ньютона Pascal 2Dletti Помощь студентам 1 22.01.2013 22:44
[Pascal] Решение квадратного уравнения KateMM Помощь студентам 6 25.02.2012 18:29
Решение уравнения (Pascal) elbevel Помощь студентам 8 13.11.2011 15:43
Решение логарифмического уравнения Pascal Hita4 Паскаль, Turbo Pascal, PascalABC.NET 4 13.09.2011 14:42