Помощь - Поиск - Пользователи - Календарь
Полная версия: Калькулятор
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Наська
Помогите! Ума не приложу как сделать икс в степени игрик?
мисс_граффити
FAQ читать не пробовала?
Общие вопросы по математике.
St@senk@
А почему Power не подходит blink.gif ?
мисс_граффити
Тогда надо подключить модуль math
З.Ы. Заходила из "обзора непрочитанных" и не обратила внимание, что тема в Delphi, а не в задачах...

Kirill_
Цитата(Наська @ 22.03.2007 21:55) *

Помогите! Ума не приложу как сделать икс в степени игрик?


А так не пойдет. Код написан на Паскале.
Код
var
   x1,x2,y,i:integer;
begin
write('x');
readln(x1);
write('y');
readln(y);
x2:=x1;
     for i:=0 to y do
         begin
              if y=0 then begin
                          x1:=1;
                          break;
                          end;
              x1:=x1*x2;
         end;
     x1:=x1 div (x2*x2);
writeln(x1);
readln;
end.

St@senk@
А если Y дробный?
Lapp
Kirill, твой код работает только для неотрицательных целых степеней (как уже заметил St@senk@), но если уж на то пошло, позволь дать совет.
Читай значение х с клавы в х2, а в х1 положи 1.
Цикл делай от 1 до y.
Тогда можно выбросить проверку на y=0 и деление после цикла.
Ок?
Kirill_
Понял как делать.
Сутра код выложу. Спать охота.
Наська
А как плюс/минус сделать??? blink.gif
St@senk@
Код

var a,b,res : integer;
...
res:=a+b; //сумма
res:=a-b; //разность
res:=-a; // изменение знака на противоположный
Гость
А факториал можешь? Срочно11111
мисс_граффити
Поиском пользуйся. 100 раз решалось!
St@senk@
 
Function Factorial(n:Integer):Integer;Assembler;
Asm
MOV CX,[n]
MOV AX,1
@@1:
MUL CX
LOOP @@1
End;


Вот это пожалуй самое быстрое из красивых реализаций факториала, которе я видел. smile.gif


Добавлено через 3 мин.
smile.gif кажется, я потихоньку научаюсь искать smile.gif
факториал
Если делаешь калькулятор, то неплохо было бы добавить сюда проверку того, что а>=0, и напомню, что 0!=1 smile.gif
Наська
Вот факториал

procedure TForm1.Button30Click(Sender: TObject);
var
ves,i,j: byte;
begin
ves := 1;
j := StrToInt(Edit1.Text);
for i := 1 to j do
begin
ves := ves*i
end;
Edit1.Text := IntToStr(ves);
end;

end.
St@senk@
smile.gif Вот видишь, у тебя получилось good.gif , поздравляю, но проверку я бы добавил.
Наська
А такой ряд, как посчитать 1!*2!"*3!*4!*...n! ???
Lapp
Цитата(Наська @ 26.03.2007 7:37) *

как посчитать 1!*2!"*3!*4!*...n! ???

Назовем такую функцию "супер-факториал" smile.gif
Если у тебя уже есть функция для вычисление обычного факториала, то наш супер-факториал вычислить можно так:
function Factorial(x:integer):LongInt;
begin
if x=0 then Factorial:=1 else Factorial:=x*Factorial(x-1)
end;

function SuperFactorial(x:integer):LongInt;
begin
if x=0 then SuperFactorial:=1
else SuperFactorial:=Factorial(x)*SuperFactorial(x-1)
end;
Оффтоп: держу пари, твой преп задал тебе этот "супер" после того, как ты принесла ему обычный факториал без рекурсии.. smile.gif
Наська
Да нет, она всем задала
Спасибо, это просто супер...суперфакториал cool.gif .
Наська
а можно еще один вопросик? а как его вывести
FloatToStr не хочет. как правильно-то,
St@senk@
inttostr попробуй
Наська
Чего-то не понимаю...где косяк? blink.gif


procedure TForm1.Button32Click(Sender: TObject); {кнопка результат} 
begin
Label8.Caption := IntToStr(SuperFactorial);
end;

Function Factorial(y: integer): Longint;
var
Edit1: TEdit;
begin
y := StrToInt(Edit1.Text);
if y = 0 then factorial := 1
else factorial := y*Factorial((y-1));
end;

Function SuperFactorial(y: integer): LongInt;
var
Edit4: TEdit;
begin
y := StrToInt(Edit4.Text);
if y = 0 then SuperFactorial := 1
else SuperFactorial := Factorial(y)*SuperFactorial((y-1));
end;


М
Теги, Наська, теги!! Lapp

Malice
Цитата(Наська @ 27.03.2007 9:11) *

Label8.Caption := IntToStr(SuperFactorial);

А где параметр у функции SuperFactorial ? Да и сами функции надо выше процедуры 1Button32Click написать.
Наська
В смысле параметр функции, что ты имеешь ввиду?
Чего дописать-то ё-птыч? unsure.gif
Malice
Цитата(Наська @ 27.03.2007 17:24) *

В смысле параметр функции, что ты имеешь ввиду?
Чего дописать-то ё-птыч? unsure.gif

Цитата
Function SuperFactorial(y: integer): LongInt; <- в функции есть

Label8.Caption := IntToStr(SuperFactorial(?)); <- а в вызове нет
Наська
Ой ! blink.gif
Точно-точно

спасибо
Наська
а знаешь, не робит dry.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.