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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2009, 18:04   #1
darika
Пользователь
 
Аватар для darika
 
Регистрация: 25.03.2009
Сообщений: 47
По умолчанию помогите найти ошибку

составить програму вычисления функции y(x) используя описание ф-и пользователя:
..... /
....| 1.75 * sh(16.2*x^2 - 1.7x + 0.93, x>2,
y=< e^1.4x - sh(16.2x^2 - 1.7x +0.93), 0<=x<=2,
....| |x^2 +x-1| + sh(16.2x^2 - 1.7x +0.93), x<0
..... \


Program p1
uses crt;
var x,y,s:real;
function f(c:real):real;
var s:real;
begin
s:=16.2*c*c-1.7*c+0.93;
f:=(exp(s)-exp(-s))/2;
end;
Begin
writeln(' ‹ дана функция');
writeln('введем значение х');readln(x);

if (x>0) then y:= 1.75*f(x)
else if (x>=0) then y:=exp(1.4*x)-f(x)
else y:=(abs(x-x+x-1))+f(x);
writeln('Ответ: у=',y:4:2);

End.


выдает ошибку( где f задано

Последний раз редактировалось darika; 10.09.2009 в 18:06.
darika вне форума Ответить с цитированием
Старый 10.09.2009, 18:17   #2
Mr.Qwerty
Что? Где? Когда?
Форумчанин
 
Аватар для Mr.Qwerty
 
Регистрация: 14.07.2009
Сообщений: 220
Радость

Итак, darika, ваши ошибки:
1)
Цитата:
Program p1
-
Код:
 Program p1;
2)
Код:
function f(c:real):real;
var s:real;
- ? зачем переменную объявлять два раза?
3)
Код:
f:=(exp(s)-exp(-s))/2;
- естественно будет ошибка с f, т.к. у вас ошибки в процедуре
4)
Код:
uses crt;
- зачем объявлять модуль если вы его не используете?
5)
Цитата:
if (x>0) then y:= 1.75*f(x)
else if (x>=0) then y:=exp(1.4*x)-f(x)
- Мне не совсем понятен этот момент, обра кодабра..
6)
Цитата:
else if (x>=0) then y:=exp(1.4*x)-f(x)
else y:=(abs(x-x+x-1))+f(x);
извините, но увы, конструкцию if else else еще не придумали нормально применять
7)
Код:
if (x>0) then y:= 1.75*f(x)
else if (x>=0) then y:=exp(1.4*x)-f(x)
else y:=(abs(x-x+x-1))+f(x);
- как не пытался, все равно не понял эти "катакомбы"(

Уж легче будет если вы дадите задание, и по нему напишем код, чем исправлять "абычто".Без обид..я тоже был когда то таким..
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Mr.Qwerty вне форума Ответить с цитированием
Старый 10.09.2009, 18:33   #3
darika
Пользователь
 
Аватар для darika
 
Регистрация: 25.03.2009
Сообщений: 47
По умолчанию

а как записать тогда (e^x- e^-x)/2
задание же записано...

Последний раз редактировалось SuperVisor; 11.09.2009 в 08:30.
darika вне форума Ответить с цитированием
Старый 10.09.2009, 18:46   #4
Mr.Qwerty
Что? Где? Когда?
Форумчанин
 
Аватар для Mr.Qwerty
 
Регистрация: 14.07.2009
Сообщений: 220
По умолчанию

По определению, степень в программирование это экспонента натурального логарифма помноженная на степень, то есть X:=EXP(Ln(x)*Y);
К примеру, изобразить 2 в третьей степени, то есть будет так: = exp(ln(2)*3);
Если по вашему заданию, то а как записать тогда (e^x- e^-x)/2 -> {e^x ->exp(ln(e)*x) } {e^-x->exp(ln(e)*(-x)) либо e^-x->1/exp(ln(e)*x)}
Отсюда следует, что решением вашей проблемки будет:
(e^x- e^-x)/2 = (exp(ln(e)*(-x))-exp(ln(e)*(-x)))/2 или (exp(ln(e)*(-x))-(1/exp(ln(e)*x)))/2
Вот так вот) Если что не поймешь обращайся..объясню) Удачи)!
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Mr.Qwerty вне форума Ответить с цитированием
Старый 10.09.2009, 18:53   #5
darika
Пользователь
 
Аватар для darika
 
Регистрация: 25.03.2009
Сообщений: 47
По умолчанию

а можешь с задачкой помочь чуточку???Ведь по идее она должна работать
darika вне форума Ответить с цитированием
Старый 10.09.2009, 19:01   #6
Mr.Qwerty
Что? Где? Когда?
Форумчанин
 
Аватар для Mr.Qwerty
 
Регистрация: 14.07.2009
Сообщений: 220
По умолчанию

Ладно, darika, не буду тебя утомлять, вот код...если хочешь узнать что да как говори, я тебе объясню..
Код:
Program p1;
uses Crt; //подключение модуля
var x,y,s:real; //введение переменнызх
function f(c:real):real; //создание функции
begin
f:=16.2*sqr(c)-1.7*c+0.93; //присвоение формулы
end;
Begin
ClrScr; //очистка экрана
writeln(' ‹ дана функция'); //ввод данных
writeln('введем значение х');//ввод данных
readln(x); //чтение данных
if (x>2) then y:= 1.75*f(x); //условие_1
if (x>0) and (x<2) then   //условие_2
 begin
  y:=exp(ln(e)*(1.4*x))-f(x);
  end;
if x<0 then y:=abs(sqr(x)+(x-1))+f(x);  //условие_3
writeln('Ответ: у=',y:4:2); //вывод ответа
Readln;//ожидание действия
End.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Mr.Qwerty вне форума Ответить с цитированием
Старый 10.09.2009, 19:10   #7
darika
Пользователь
 
Аватар для darika
 
Регистрация: 25.03.2009
Сообщений: 47
По умолчанию

а если через процедуру то так?
Код:
var x,y,s:real; 
  procedure f(c:real);
  begin
    s:=16.2*sqr(c)-1.7*c+0.93; 
  end;

Begin
  ClrScr; 
  writeln(' ‹ дана функция'); 
  writeln('введем значение х');readln(x);
  if (x>2) then y:= 1.75*f(x); 

  if (x>0) and (x<2) then   
    y:=exp(ln(e)*(1.4*x))-f(x);

  if x<0 then y:=abs(sqr(x)+(x-1))+f(x);  
  writeln('Ответ: у=',y:4:2); 
  Readln;
End.

Последний раз редактировалось SuperVisor; 11.09.2009 в 08:33. Причина: [КОД][/КОД] =) Ну и так, красоту в коде навел.. ))
darika вне форума Ответить с цитированием
Старый 10.09.2009, 19:20   #8
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Да, так.
разница между функцией и процедурой лишь в том, что процедура не может возвращать значение.
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите найти ошибку lubafffka Общие вопросы C/C++ 5 16.06.2009 21:53
Помогите найти ошибку Manchester Помощь студентам 3 09.02.2009 22:26
помогите найти ошибку Максим_Леонидович БД в Delphi 4 20.08.2008 23:23
Помогите найти ошибку JOFRIF Помощь студентам 8 22.04.2008 14:22
Помогите найти ошибку KnDmPetr Паскаль, Turbo Pascal, PascalABC.NET 1 11.04.2008 15:48