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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2015, 20:55   #1
Надина
Пользователь
 
Регистрация: 27.12.2015
Сообщений: 18
Печаль помогите решить. что делаю не так?

ЗаданиеРисунок1.jpg

Я составила программу, но в ответе приx=1 получается 1,42..., а не 1,78
Код:
program z2;
var x, y, a: real;
function Root3(a: Real): Real;
begin
  WriteLn('Введите x ');
  read (x);
  a:=x+(sqrt(x))+(Int(sin(x))/(Int(sin(x))*(sin(x))));
  if a = 0.0 then
    Root3 := 0.0
  else if a > 0.0 then
    Root3 := Exp(Ln(a) / 3)
  else
    Root3 := -Exp(Ln(-a) / 3)
end;
begin
  WriteLn('ответ =',Root3(a));
end.

Последний раз редактировалось Stilet; 27.12.2015 в 21:23.
Надина вне форума Ответить с цитированием
Старый 27.12.2015, 21:14   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,538
По умолчанию

В любой версии Паскаль есть функция возведения в степень Power . Обычно в модуле Math. Это я по поводу корня кубического. Хотя с отрицательными тоже надо как то хитрить.
Например так
Код:
if a<0 then y:=-Power(-a,1/3) else y:=Power(a,1/3);
.. или так
Код:
y:=Sign(a)*Power(Abs(a),1/3);
По поводу синусов. Непонятно само задание , почему в задании вместо Sin(x)/(Sin(x))^2 не написано просто 1/Sin(x) ?
type_Oleg вне форума Ответить с цитированием
Старый 27.12.2015, 21:19   #3
Надина
Пользователь
 
Регистрация: 27.12.2015
Сообщений: 18
По умолчанию

Я пробовала писать 1/sin(x) и упрощала программу без ветвлений, добавляла округления, еще по всякому, но в ответе никак не выходит 1,78 при вводе х=1. Почему? ПОМОГИТЕ!

Последний раз редактировалось Надина; 27.12.2015 в 21:26.
Надина вне форума Ответить с цитированием
Старый 27.12.2015, 21:26   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
В любой версии Паскаль есть функция возведения в степень Power .
Ошибаешься.
Цитата:
a:=x+(sqrt(x))+(Int(sin(x))/(Int(sin(x))*(sin(x))));
Int тут ни к чему.
Код:
a:=x+sqrt(x)+1/(sin(x);
Вот так я думаю можно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.12.2015, 21:30   #5
Надина
Пользователь
 
Регистрация: 27.12.2015
Сообщений: 18
По умолчанию

Код:
program z2;
var x, y, a: real;
begin
  WriteLn('Введите x ');
  read (x);
  a:=x+sqrt(x)+1/(sin(x));
  y:= Exp(Ln(a)/3);
  WriteLn('ответ =',y);
end.
Без ветвлений попробовала. Подставляю х=1, но все равно у не равен 1,78

Последний раз редактировалось Вадим Мошев; 27.12.2015 в 21:47.
Надина вне форума Ответить с цитированием
Старый 27.12.2015, 21:33   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

1.78 будет если корень квадратный из всего. Наверно в условии ошибка. А так и должно быть 1.47 (a не 1.42)
На калькуляторе проверить не приходила мысль в голову?
Код:
Power(x+Power(x,1/2)+1/sin(x),1/3)
подставь
Код:
Power(x+Power(x,1/2)+1/sin(x),1/2)
Но это для единички. Само собой нужно и на нуль в знаменателе среагировать и на минус под корнем
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 27.12.2015 в 21:37.
Аватар вне форума Ответить с цитированием
Старый 27.12.2015, 21:42   #7
Надина
Пользователь
 
Регистрация: 27.12.2015
Сообщений: 18
По умолчанию

Да да не 1,42, а 1,47 извините ошиблась. Огромное спасибо за помощь!

Последний раз редактировалось Надина; 27.12.2015 в 21:48.
Надина вне форума Ответить с цитированием
Старый 27.12.2015, 21:48   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
Да да не 1,42, а 1,47 извините ошиблась
в след. раз просто в маткаде проверь и всё.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 27.12.2015, 21:55   #9
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,538
По умолчанию

Похоже, вам подсунули задание с опечаткой. То ли в этой дроби с синусами что-то не то, то ли еще что ..
Кстати, если бы клубень был не кубический, а квадратный, то получилось бы 1.785607769. Но это ближе к 1.79.
type_Oleg вне форума Ответить с цитированием
Старый 27.12.2015, 21:56   #10
Надина
Пользователь
 
Регистрация: 27.12.2015
Сообщений: 18
По умолчанию

[QUOTE=min@y™;1566796]в след. раз просто в маткаде проверь и всё.
Я плохо знаю программирование. Мой мозг с вашим не сравнишь это верно
Надина вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что я делаю не так? Kot070 Общие вопросы C/C++ 6 15.04.2014 13:22
помогите Что я делаю не так? FaRRa Общие вопросы Delphi 5 22.09.2013 16:48
Что не так я делаю? volha_alina Паскаль, Turbo Pascal, PascalABC.NET 2 23.05.2012 13:05
Что не так делаю? L6go1as Общие вопросы C/C++ 5 28.10.2011 07:54