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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2012, 17:24   #1
BukTop2009
Пользователь
 
Регистрация: 16.06.2011
Сообщений: 55
Восклицание Запись со степенью

Господа добрый день!
Нужно вычислить функцию квадратов, я вложил файлик.
Проблема не с решением, а с записью на паскале данной формулы, у меня не получается то из-за кол-ва скобок, то из-за ошибки: операторы имеют неправильные типы, хотя поидее все REAL тип.
Заранее благодарю
Вложения
Тип файла: doc formula.doc (66.5 Кб, 14 просмотров)
No smoking!
BukTop2009 вне форума Ответить с цитированием
Старый 10.10.2012, 17:32   #2
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
у меня не получается то из-за кол-ва скобок, то из-за ошибки: операторы имеют неправильные типы, хотя поидее все REAL тип.
ну так кидайте свой неправильный код - поможем найти ошибки...
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 10.10.2012, 17:43   #3
BukTop2009
Пользователь
 
Регистрация: 16.06.2011
Сообщений: 55
По умолчанию

program summa;
uses crt;
var c,x,p,d:real;
begin
c:=2.9;
x:=6.5;
p:=((sqr(x)*x)/ln(c))+((sqr(c)*c-sqr(x)*x)/arctgc*sin(e^x);
if (0<(p/c)) or ((p/c)<10) then begin
writeln(p);
end
else
begin
d:=((2*x)/(c+p))+sqrt(3*x*mod(cos sqr(c)));
writeln(d);
readln;
end.
No smoking!
BukTop2009 вне форума Ответить с цитированием
Старый 10.10.2012, 18:14   #4
JIeIIIa
Пользователь
 
Регистрация: 21.12.2011
Сообщений: 54
По умолчанию

Скобки забыли arctan(c)
e^x нет. Есть exp(x)
Вы написали с^3-x^3, вместо c^3-x^2
Модуль в Паскале - это abs()
Параметры функции должны быть в скобках: вместо cos sqr(c) надо cos(sqr(c))

if (0<(p/c)) or ((p/c)<10) - если р/с=-10, то у Вас выполниться then, а по условию надо else (разберитесь c or/and)
Вычисления среднего арифметичекского с и х в коде не видно...

Попробуйте переписать код с учетом замечаний
JIeIIIa вне форума Ответить с цитированием
Старый 10.10.2012, 23:38   #5
BukTop2009
Пользователь
 
Регистрация: 16.06.2011
Сообщений: 55
По умолчанию

Цитата:
Сообщение от JIeIIIa Посмотреть сообщение
Скобки забыли arctan(c)
e^x нет. Есть exp(x)
Вы написали с^3-x^3, вместо c^3-x^2
Модуль в Паскале - это abs()
Параметры функции должны быть в скобках: вместо cos sqr(c) надо cos(sqr(c))

if (0<(p/c)) or ((p/c)<10) - если р/с=-10, то у Вас выполниться then, а по условию надо else (разберитесь c or/and)
Вычисления среднего арифметичекского с и х в коде не видно...

Попробуйте переписать код с учетом замечаний
program summa;
var c,x,p,d:real;
begin
c:=2.9;
x:=6.5;
p:=((sqr(x)*x)/ln(c))+((sqr(c)*c-sqr(x))/arctan(c)*sin(exp(x)));
if (0<(p/c)) and ((p/c)<10) then begin
writeln(p);
end
else
begin
d:=((2*x)/(c+p))+sqrt(3*x*abs(cos(sqr(c))));
writeln(d);
end;
readln;
end.

Ответ: 3.25596613769308

Честно говоря среднее арифметическое не совсем понял что от меня хотят. Это то что делает в MS Access функция AVG я подозреваю, как на Паскале осуществить не знаю.
No smoking!

Последний раз редактировалось BukTop2009; 10.10.2012 в 23:44.
BukTop2009 вне форума Ответить с цитированием
Старый 11.10.2012, 01:30   #6
JIeIIIa
Пользователь
 
Регистрация: 21.12.2011
Сообщений: 54
По умолчанию

Все равно намудрили со скобками. Вычисляя р на sin надо делить, а Вы умножаете.

Код:
program summa;
var 
   c,x,p,d:real;
begin
   c:=2.9;
   x:=6.5;
   p:=sqr(x)*x/ln(c)+(sqr(c)*c-sqr(x))/(arctan(c)*sin(exp(x))); 
   if (0<(p/c)) and ((p/c)<10) then begin {если условие выполнено
      Найти среднее арифметическое квадратов c и x
      среднее арифметическое двух  чисел = (число1+число2)/2
      }
      d:=(c*c+x*x)/2
      writeln(d);
   end else begin {иначе удвоить с и x - Вы это условие почему-то проигнорировали}
      c:=c*2;
      x:=x*2;
      d:=(2*x)/(c+p)+sqrt(3*x*abs(cos(sqr(c))));
      writeln(d);
   end;
   readln;
end.
JIeIIIa вне форума Ответить с цитированием
Старый 11.10.2012, 09:51   #7
BukTop2009
Пользователь
 
Регистрация: 16.06.2011
Сообщений: 55
Хорошо

Цитата:
Сообщение от JIeIIIa Посмотреть сообщение
Все равно намудрили со скобками. Вычисляя р на sin надо делить, а Вы умножаете.

Код:
program summa;
var 
   c,x,p,d:real;
begin
   c:=2.9;
   x:=6.5;
   p:=sqr(x)*x/ln(c)+(sqr(c)*c-sqr(x))/(arctan(c)*sin(exp(x))); 
   if (0<(p/c)) and ((p/c)<10) then begin {если условие выполнено
      Найти среднее арифметическое квадратов c и x
      среднее арифметическое двух  чисел = (число1+число2)/2
      }
      d:=(c*c+x*x)/2
      writeln(d);
   end else begin {иначе удвоить с и x - Вы это условие почему-то проигнорировали}
      c:=c*2;
      x:=x*2;
      d:=(2*x)/(c+p)+sqrt(3*x*abs(cos(sqr(c))));
      writeln(d);
   end;
   readln;
end.
Ааа.. Вот как! Я про удвоение забыл сначала потом вписал, среднее арифм. оказывается банальная до тупости весчь Теперь всё Ясно. Огромное спасибо Вам Алексей!

Ответ 4.96069820612616 таким получился.
No smoking!
BukTop2009 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сумма ряда с заданной степенью точности С++ ShFr Помощь студентам 0 05.10.2012 14:47
C массивы и прога со степенью Miles Помощь студентам 4 05.11.2011 18:15
Код со степенью kotopezzz Помощь студентам 1 22.02.2011 16:43
Задача со степенью Pascal Vkusnjashka Помощь студентам 1 25.10.2009 02:03
Последовательность чисел с степенью до N SEREG@ Помощь студентам 4 15.06.2008 22:41