Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сокращение натуральных дробей на PHP
 
 автор: rafonets   (23.03.2011 в 07:39)   письмо автору
 
 

<html><head><title>Математика</title></head><body>
<form action="./index.php" method="post">
Дискриминант<table><tr><td style="width:50px;">
A</td><input style="width:50px;" name='a' type='text' value=""><td style="width:50px;">
B</td><input style="width:50px;" name='b' type='text' value=""><td style="width:50px;">
C</td><input style="width:50px;" name='c' type='text' value="">=0</tR></table>
<input type="submit" value="Решить">
</form>
</body>
</html>
-------------------------
<?PHP

@error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( 'display_errors', false );
@ini_set ( 'html_errors', false );
@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );
//----------------------------------------------------------------------------
/////////////////Diskriminant
echo "<br />";
$a = $_POST["a"];
$b = $_POST["b"];
$c = $_POST["c"];
$bb = $b*$b;
$bb2 = -$b;
$ac4 = 4 * $a * $c;
$b4 = $bb - $ac4;
$d = sqrt($b4);
$x1 = -$b+$d/2*$a;
$x2 = -$b-$d/2*$a;
$a2 = $a*2;
$d2 = number_format( $d, 2);
$x1 = number_format( $x1, 2);
$x2 = number_format( $x2, 2);
$bbd2 = $bb2 + $d2;
$bbd1 = $bb2 - $d2;
$a2a = $a * 2;
echo $_POST["a"].$_POST["b"].$_POST["c"]."=0<br />";
echo "D=".$bb.$ac4."=".$b42."<br />";
if ($d<0){
echo "O Нет решения";
}else{
if($d==0){
echo "Один корень<br />";
echo "x=".$bb2."/".$a2;
}else{
echo "X<sub>1</sub>=".$bb2."+".$d2."/2*".$a."<br />";
echo "X<sub>1</sub>=".$bbd2."/".$a2a."<br />";
echo "X<sub>1</sub>=".$x1."<br />";
echo "X<sub>2</sub>=".$bb2."-".$d2."/2*".$a."<br />";
echo "X<sub>2</sub>=".$bbd1."/".$a2a."<br />";
echo "X<sub>2</sub>=".$x2."<br>";
echo "Ответ:";
}
}
?>

Проблема:
1) При решеним косяки то есть вмесо - показывает + и тому подобное но решение правильное решает правильно Но это ничего вы со вторым пунктом подскажите :)
2) В конце как можно сделать чтобы оставшееся дробное число округлилось
пример:
2
--
10
в
1
--
5
-------
Подскажите как это сделать код написан мной php учу 1 месяц постоянна дядя гугл и тетя яша помогали но не в этот раз
ЗА недочеты не пинать мне всего 14 лет и на форуме пишу первый раз может что то упустил в описании

  Ответить  
 
 автор: Tamplier   (23.03.2011 в 10:48)   письмо автору
 
   для: rafonets   (23.03.2011 в 07:39)
 

Честно говоря мало что понял, но для округления дробных чисел используйте

round()
ceil()
floor()


В зависимости от ситуации и требований к округлению

  Ответить  
 
 автор: rafonets   (23.03.2011 в 12:52)   письмо автору
 
   для: Tamplier   (23.03.2011 в 10:48)
 

Спасибо но это не то

  Ответить  
 
 автор: cheops   (23.03.2011 в 13:09)   письмо автору
 
   для: rafonets   (23.03.2011 в 12:52)
 

Тогда нужно больше подробностей по фразе
>2) В конце как можно сделать чтобы оставшееся дробное число округлилось
Вам нужно отбросить дробную часть, округлить до определенной цифры после запятой или сделать что-то другое? Приведите пример результата, который выводится сейчас и того, что хотите получить?

  Ответить  
 
 автор: DJ Paltus   (23.03.2011 в 14:23)   письмо автору
 
   для: cheops   (23.03.2011 в 13:09)
 

Сдается, товарищ не округлять хочет, а сокращать натуральные дроби...

  Ответить  
 
 автор: rafonets   (23.03.2011 в 14:44)   письмо автору
 
   для: DJ Paltus   (23.03.2011 в 14:23)
 

Верно

  Ответить  
 
 автор: cheops   (23.03.2011 в 14:49)   письмо автору
 
   для: rafonets   (23.03.2011 в 14:44)
 

Тогда возможно вам пригодится оператор %, который возвращает остаток от деления?

  Ответить  
 
 автор: rafonets   (23.03.2011 в 15:29)   письмо автору
 
   для: cheops   (23.03.2011 в 14:49)
 

можете пример показать я не совсем понял

  Ответить  
 
 автор: cheops   (23.03.2011 в 16:26)   письмо автору
 
   для: rafonets   (23.03.2011 в 15:29)
 

Если не сложно, опишите подробнее задачу, которая не получается: что вводите, что выводится и что хотелось бы получить?

  Ответить  
 
 автор: rafonets   (23.03.2011 в 17:04)   письмо автору
 
   для: cheops   (23.03.2011 в 16:26)
 

echo "X<sub>2</sub>=".$bb2."+".$d2."/2*".$a."<br />";
echo "X<sub>2</sub>=".$bb2."-".$d2."/2*".$a."<br />";

$bb2-$d2 / 2*$a
$bb2+$d2 / 2*$a
после $bb2+$d2 или $bb2-$d2 и 2*$a
получиться что то вроде $bb2d2 / $a2 надо чтобы потом это сократилось
пример
2/10=1/5

  Ответить  
 
 автор: cheops   (23.03.2011 в 17:09)   письмо автору
 
   для: rafonets   (23.03.2011 в 17:04)
 

Вообще по уму нужно бы поискать алгоритм поиска общих делителей. А практически нужно сохранить цифры 2 и 10 в отдельные переменные и проверить их на общие делители, ну или для начала хотя бы не делится ли одно число на другое.
<?php
  $fst 
2;
  
$snd 10;
  if(!(
$snd $fst))
  {
    
$snd /= $fst;
    
$fst /= $fst;
  }
  echo 
$fst." / ".$snd;
?>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования