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

Разное

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

 

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

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

тема: Помогите с паскаль программой
 
 автор: include   (15.09.2007 в 21:19)   письмо автору
 
 

Для А, вводимого с клавиатуры вычислить В=А^10 за четыре операции.

Не пойму как ее решить.

   
 
 автор: kasmanaft   (16.09.2007 в 10:13)   письмо автору
 
   для: include   (15.09.2007 в 21:19)
 

Сорри за непаскаль, но и в нем аналогичные ф-ю присутствують..
Признаюсь, операции не считал, но думаю стоит попробовать :)

<?php
$a 
3;
echo 
exp(10*log($a));
?>

   
 
 автор: Киналь   (16.09.2007 в 10:34)   письмо автору
 
   для: kasmanaft   (16.09.2007 в 10:13)
 

>Сорри за непаскаль, но и в нем аналогичные ф-ю присутствують..
>Признаюсь, операции не считал, но думаю стоит попробовать :)
>

><?php
>$a 3;
>echo 
exp(10*log($a));
>
?>
>


Тогда уж проще pow($a, 10) ;)

Но в паскале, если не ошибаюсь, такого нет, есть только возведение в квадрат sqr(). Соответственно


begin
t := sqr(a); /*2*/
c := sqr(t);/*4*/
d := sqr(c); /*8*/
b := t * d; /*10*/
end.

   
 
 автор: kasmanaft   (16.09.2007 в 11:17)   письмо автору
 
   для: Киналь   (16.09.2007 в 10:34)
 

> Тогда уж проще pow($a, 10) ;)
> Но в паскале, если не ошибаюсь, такого нет
В том то и дело ;)
На паскале выйдет что-то вроде:
var a, b: longint;
begin
readln(a);
b := exp(10*log(a));
write(b);
end.

   
 
 автор: include   (16.09.2007 в 11:43)   письмо автору
 
   для: kasmanaft   (16.09.2007 в 11:17)
 

kasmanaft

Спасибо, но такого в паскале и правда нет.

   
 
 автор: kasmanaft   (16.09.2007 в 11:57)   письмо автору
 
   для: include   (16.09.2007 в 11:43)
 

Пришлось ставить паскаль :)
Логарифм там оказца через ln() считать надо:

var a, b: real;
begin
read(a);
b := exp(10*ln(a));
write(b:0:0);
end.

   
 
 автор: include   (16.09.2007 в 12:33)   письмо автору
 
   для: kasmanaft   (16.09.2007 в 11:57)
 

kasmanaft Огромное Спасибо!

   
 
 автор: include   (16.09.2007 в 11:40)   письмо автору
 
   для: Киналь   (16.09.2007 в 10:34)
 

Спасибо, но разве правильные результаты выдает программа?
2 - 1024 (2 - правильно!)
3 - (-)6487
4 - 0
5 - 761
и т.д.

   
 
 автор: Dimka31   (17.09.2007 в 10:37)   письмо автору
 
   для: include   (16.09.2007 в 11:40)
 

можешь смело винить только, паскаль. Возможно тип real просто не поддерживает большие числа, в чем я собственно и сомневаюсь, но если превышает то число будет считать заново например если ты задашь для типа byte значение 257 (а максимально число в данном типе только 255), то он примет значение 1, потомучто счетчик после 255 начнет считать заново то есть 254, 255, 0 ,1 итд. если exp не ругается на целочисленный тип, поставь вместо real тип longint он принимает до нескольких миллионов

   
Rambler's Top100
вверх

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