Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ математические функции

Автор: MiH@N 21.01.2008 23:31

вообщем пример такой:Прикрепленное изображение
а мя как всегда не вовремя перемкнуло(решение не лезет в голову хотя проблема пустяковая wacko.gif adm.gif )

Автор: klem4 21.01.2008 23:39

не знаешь как в степень возвести или как модуль числа получить ? В любом учебнике по Паскалю это есть ... Да и на форуме тоже.

Хотя если возводимое число может быть <= 0, то стандартный способ возведения не прокатит.

Автор: MiH@N 21.01.2008 23:41

Цитата(klem4 @ 21.01.2008 18:39) *

Хотя если возводимое число может быть <= 0, то стандартный способ возведения не прокатит.


это меня и смущает...

не знаю как найти x^y/x и кубический корень из y/x

Автор: MiH@N 22.01.2008 0:55

вродь чёт нарешал но всё равно выдаёт ошибку...


del:=y/x;
if x>0 then st1:=Exp(del*Ln(x)) else
Function st1(n: integer) : Integer;
Begin st1:=(1 - 2*Byte(Odd(n)));
End;
if del>0 then st2:=Exp(del*Ln(1/3)) else
Function st2(n: Integer): Integer;
Begin st2:=(1 - 2*Byte(Odd(n)));
End;
rez1:=abs(st1-st2);
end;

Автор: Yevgeny 22.01.2008 1:00

а точно функции st1 и st2 типа integer? может real? попробуй, будь что будет... smile.gif

Автор: MiH@N 22.01.2008 1:47

а в этом чтото есть...эээ хотяч всё равно ошиба

Function st1(n: integer) : real;--- после function

Автор: volvo 22.01.2008 2:35

Бррр... Погоди, ты функцию описываешь прямо в теле программы? blink.gif Функция должна описываться перед основным блоком вообще-то... Причем у тебя st1 и st2 вообще выполняют одно и то же, зачем их две?

Автор: MiH@N 22.01.2008 2:50

акак примерно должно быть?

Автор: compiler 22.01.2008 2:54

Цитата(MiH@N @ 21.01.2008 21:50) *
акак примерно должно быть?
как нибудь так
function f(n: integer)  : integer;
begin f:=n+1; end;
begin
writeln(f(2));
end.

Автор: MiH@N 26.01.2008 16:48

сори что тута но не могу создать новую тему;условие задачи такое:определить сумму чисел от 3 до 99 кратных 3.подскажите где ошибка:


var
a : integer;
b,s : real;
begin
s:=0; a:=3;
while a<=99 do
begin
b:=(a)mod(3) ;
If b=1 then s:=s+a;
a:=a+1;
end;
writeln(s);
readln;
end.

(Р.S.выводит результат 1616)

Автор: Client 26.01.2008 17:03

If b=0 then s:=s+a;// а не 1