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

Форум PHP

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

 

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

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

тема: Градусы и минуты - как с ними оперировать?
 
 автор: Dionisy   (16.04.2007 в 15:46)   письмо автору
 
 

Всем доброго времени суток.
Задача: есть заданные значения величин в градусах( с минутами) например
+6°23' - +6°56' . Надо в этом промежутке получить random- значение и сравнить его с третьим заданным значением ( например +6°43') , либо как всю эту билиберду перевести в радианы, сравнить и обратно?
Вывод программы обязательно должен быть в форме градусов с минутами. ( т.е. 6,43 -не допускается.)

   
 
 автор: CrazyAngel   (16.04.2007 в 16:07)   письмо автору
 
   для: Dionisy   (16.04.2007 в 15:46)
 

эм... а если перед выводом изменить тип в стринг и заменить точку на градус, а в конце добавить кавычку?

   
 
 автор: kzone   (16.04.2007 в 16:08)   письмо автору
 
   для: Dionisy   (16.04.2007 в 15:46)
 

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

   
 
 автор: Trianon   (16.04.2007 в 16:14)   письмо автору
 
   для: kzone   (16.04.2007 в 16:08)
 

регулярки-то здесь каким боком?

   
 
 автор: Trianon   (16.04.2007 в 16:11)   письмо автору
 
   для: Dionisy   (16.04.2007 в 15:46)
 

Работайте со значениями в минутах. Перед выводом преобразуйте в градусы.

   
 
 автор: Dionisy   (16.04.2007 в 16:25)   письмо автору
 
   для: Trianon   (16.04.2007 в 16:11)
 

ЭВРИКА!!!!

   
 
 автор: Unkind   (16.04.2007 в 16:22)   письмо автору
 
   для: Dionisy   (16.04.2007 в 15:46)
 


<?php
function random_degree($min$max)
{
if(!
preg_match("/(\-|\+)?(\d+)°(\d+)'/"$min$min_matches)) return false;
if(!
preg_match("/(\-|\+)?(\d+)°(\d+)'/"$max$max_matches)) return false;

$min_minutes $min_matches[2] * 60 $min_matches[3];
$max_minutes $max_matches[2] * 60 $max_matches[3];
    
if(isset(
$min_matches[1]) && $min_matches[1] == "-"$min_minutes $min_minutes;
if(isset(
$max_matches[1]) && $max_matches[1] == "-"$max_minutes $max_minutes;

if(
$min_minutes $max_minutes) return false;
$rnd rand($min_minutes$max_minutes);
return (
$rnd "+" "-") .(($rnd/60) % 60) . "°" abs(($rnd 60)) . "'";
}

$rnd random_degree("+6°23'""+6°56'");
echo(
$rnd);
var_dump($rnd === "+6°43'");
?>

   
 
 автор: Dionisy   (16.04.2007 в 16:33)   письмо автору
 
   для: Unkind   (16.04.2007 в 16:22)
 

огромное спасибо всем, кто напрягал мозг и помог выйти из тупика!!

   
Rambler's Top100
вверх

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