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

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

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2013, 20:00   #1
Mariolka
Пользователь
 
Регистрация: 14.12.2012
Сообщений: 25
По умолчанию Реализация суммы в простом варианте.

Помогите пожалуйста с заданием.
Напишите программу вычисления при заданном х величины
продолжая вычисления до тех пор, пока очередное слагаемое не
станет меньше заданного е=0,01.
Как сделать я понимаю, вот только не могу понять синтаксис php.
Объявить переменные, затем через while пока сумма(s) больше е делать) потом переменная которая будет считать части p=(pow((-1),(n+1))*(pow(x,n)/n), потом s+=p(складывает все части). Но так как я еще не понимаю синтаксис прошу помощи.
Вот пример моего размышления:
<html>
<head>
<title>
</title>
</head>
<body>
<?php
$e=0.01; $x=2; $n=2; $p=1; $s;
while($s>0.01)
{
$p=(pow((-1),(n+1))*(pow(x,n)/n) $n++;
$s=$s+$p;
echo "$s";
}
?>
</body>
</html>
Изображения
Тип файла: jpg Безымянный.jpg (4.5 Кб, 78 просмотров)
Mariolka вне форума Ответить с цитированием
Старый 10.10.2013, 11:37   #2
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

PHP код:
<?php
$e 
0.01;
$x $local 1;
$result=0;
$divider=1;
while(
abs($local) >= $e) {
    
$result += $local;
    
$divider = ($divider 0) ? abs($divider) + : ($divider 1)*-1;
    
$local pow($xabs($divider))/$divider;
};
echo 
$result;
?>
Надеюсь, что я ничего не перепутал.

А, там в условии задачи есть ошибка. "Очередное слагаемое" x^2/2 будет меньше 0.01, так как оно отрицательное по функции.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?

Последний раз редактировалось Johnatan; 10.10.2013 в 11:41.
Johnatan вне форума Ответить с цитированием
Старый 11.10.2013, 11:27   #3
Mariolka
Пользователь
 
Регистрация: 14.12.2012
Сообщений: 25
По умолчанию

$divider = ($divider < 0) ? abs($divider) + 1 : ($divider + 1)*-1;
Как я поняла эта строчка значит если делитель меньше 0 то прибавляем к нему 1, иначе прибавляем 1 и умножаем на -1?
Mariolka вне форума Ответить с цитированием
Старый 11.10.2013, 12:20   #4
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Mariolka
Если меньше нуля, то берём число по модулю (без знака, то есть делаем число положительным) и прибавляем 1. Если больше или равно нулю, то прибавляем один и делаем число отрицательным.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 11.10.2013, 17:12   #5
Mariolka
Пользователь
 
Регистрация: 14.12.2012
Сообщений: 25
По умолчанию

И еще 2 вопросика) Зачем использовать дополнительную переменнуй local и как сделать так чтобы например мне нужно вывести 3 значения результат делитель и х)) как сделать так чтобы в php записывать следующее значение с новой строки? <br> и \n что то не помогают( или я их не туда ставила)
Mariolka вне форума Ответить с цитированием
Старый 11.10.2013, 20:06   #6
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

$local нужна, чтоб определять, больше она чем лимит или нет. Иначе как определить условие, при котором цикл должен оканчиваться? $local это "очередное слагаемое".

echo "Результат: ",$result,"<br />\n";
echo "Делитель: ",abs($divider),"<br />\n";
echo "x: ",$x,"<br />\n";

Где $x будет постоянным как бы.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 15.10.2013, 22:00   #7
Mariolka
Пользователь
 
Регистрация: 14.12.2012
Сообщений: 25
По умолчанию

А поможете с этой задачкей? никак не могу понять как сделать. То ли сначала посчитать вверхние а потом нижние. и разделить. То ли считать сразу все. и как определить шаг?
Изображения
Тип файла: jpg Безымянный.jpg (31.5 Кб, 44 просмотров)
Mariolka вне форума Ответить с цитированием
Старый 16.10.2013, 04:34   #8
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Цитата:
Сообщение от Mariolka Посмотреть сообщение
А поможете с этой задачкей? никак не могу понять как сделать. То ли сначала посчитать вверхние а потом нижние. и разделить. То ли считать сразу все. и как определить шаг?
Это задание с подвохом. Вам его не нужно решать, так как его решить невозможно. Вам лишь нужно выяснить почему именно это невозможно.

Совет: попробуйте решить это задание вручную с x = 1. Начните со знаменателя. Всё сразу поймёте.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 10.11.2016, 15:50   #9
ВиКтриЯ
Новичок
Джуниор
 
Регистрация: 15.05.2016
Сообщений: 2
По умолчанию

Помогите, пожалуйста, переработать ранее разработанный программный код по расчету значений функций с применением объектно-ориентированного подхода в PHP
ВиКтриЯ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывести результат суммы в словесном варианте Megastervochka Паскаль, Turbo Pascal, PascalABC.NET 1 11.05.2012 21:09
Определить, является ли next в простом предложении наречием. Jane_K Помощь студентам 1 25.02.2012 01:28
Реализация суммы,вычитания в p-ичной системе счисления DTroy Visual C++ 2 09.10.2011 06:17
Помогите найти ошибку в простом варианте DLL. vl1639 Общие вопросы Delphi 1 24.10.2009 18:20
Житейская задачка о простом копировании mephist Помощь студентам 11 16.05.2009 20:42