Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Paskal [Win95/98]


Бегинер ©   (2002-09-24 02:53:00) 

В универе для зачета необходимо сделать несколько не очень простых программ....сидел вспоминал Paskal и наикнулся на проблему.....как нужно возвести число в степень, показателем которой служит переменная....пишу:
z:=b*2^(a-1);
Выдает ошибку.....курсор прыгает под знак ^....


MBo   (2002-09-24 06:16:00) [1]

К универсальному ответу Эндера добавлю, что для возведения двойки в целочисленную степень, что, несомненно, и требуется в данном случае, нужно выполнить сдвиговую операцию

2^N = 1 SHL (N-1)


Эндер   (2002-09-24 04:23:00) [2]

В системном модуле турбо-паскаля есть только функции exp(x:extended) - возвращает e в степени x - b ln(x:extended) - возврашает натуральный логарифм x. Исходя из этого,
function power(const x,y:double):double;
begin
if x=0.0 then
power:=x
else if x>0.0 then
power:=Exp(y*Ln(x))
else
power:=-Exp(y*Ln(-x));
end;


Бегинер   (2002-09-24 03:17:00) [3]


> Во-первых (24.09.02 03:07)
> Паскаль пишется Pascal. Во-вторых символ ^ служит в паскале
> для "разыименования" указателей, что явно не соответсвует
> твоей задаче. В третьих - по сабжу - речь идет о именно
> Pascal"e, но упоминание "сидел вспоминал Paskal и наикнулся"
> наводит на мысль, что "для зачета необходимы программы"
> на чем-то ином нежели просто паскаль.


Paskal - это, конечно, мой косяк....
А что значит "на чем-то ином нежели просто паскаль."?
Вообще задача сводится не к этому
зедание: В среде программирования Pascal написать программу переводящуу числа из десятичной СС в двоичную, восмеричную, HEX
(1 балл)
И наоборот (2 бала)

Моя поблема в том, как сделать наооборот, как правильно написать:
.......
z:=0;
for i:=1 to a do begin
b:=mas[i];
z:=z+b*2^(a-i);
end;

Это всем известный алгорит перевода из Bin в Dec, где а это сило символов двоичного числа


kex86   (2002-09-24 03:08:00) [4]

>Бегинер ©
Смотри выше


Во-первых   (2002-09-24 03:07:00) [5]

Паскаль пишется Pascal. Во-вторых символ ^ служит в паскале для "разыименования" указателей, что явно не соответсвует твоей задаче. В третьих - по сабжу - речь идет о именно Pascal"e, но упоминание "сидел вспоминал Paskal и наикнулся" наводит на мысль, что "для зачета необходимы программы" на чем-то ином нежели просто паскаль.


kex86   (2002-09-24 03:05:00) [6]

1. ^ - это указатель
2. могу порекомендовать
function power(Base, Exponent: Extended):Extended; в модуле Match


Бегинер   (2002-09-24 03:05:00) [7]


> ЮЮ © (24.09.02 03:02)
> ^ - это из Васика, в Паскале нет оператора возведения в
> стемень. Смотри фунции Sqr,Power

.......ага....точно из Basic"а....
Так что там насчет Power?


ЮЮ   (2002-09-24 03:02:00) [8]

^ - это из Васика, в Паскале нет оператора возведения в стемень. Смотри фунции Sqr,Power


Наверх

Титульная страница Поиск, карта сайта Написать письмо