Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2011, 00:55   #1
artem611
Пользователь
 
Регистрация: 21.09.2010
Сообщений: 40
По умолчанию Не работает функция

Создаю функцию для подсчета степени
Код:
function pow(y,x:integer):integer;
var i,p:integer;
begin
p:=y;
if(x=0) then y:=1;
for i:=1 to x-1 do y:=y*p;
writeln(y);
end;

var k:integer;
begin
k:=pow(2,4);
writeln(k);
end.
И почему-то в первый writeln выводит все правильно 16, а вот когда в главном begin я присваиваю к функцию pow и вывожу к, он выводит 23660
В чем может быть проблема?
artem611 вне форума Ответить с цитированием
Старый 11.04.2011, 02:23   #2
Asinkrit
Пользователь
 
Аватар для Asinkrit
 
Регистрация: 02.04.2011
Сообщений: 48
По умолчанию

Посчитать то вы посчитали, а вернуть значение из функции?
Код:
function pow(y,x:integer):integer;
var i,p:integer;
begin
p:=y;
if(x=0) then y:=1;
for i:=1 to x-1 do y:=y*p;
result:=y;
writeln(y);
end;

var k:integer;
begin
k:=pow(2,4);
writeln(k);
end.
Так же, не самый красивый способ работать с передаваемыми переменными в функции, лучше так:
Код:
function pow(const y,x:integer):integer;
var
  i,p:integer;
begin
  p:=y;
  if(x=0) then Result:=1
    else Result:=y;
  for i:=1 to x-1 do Result:=Result*p;
end;

var k:integer;
begin
k:=pow(2,4);
writeln(k);
end.

Последний раз редактировалось Asinkrit; 11.04.2011 в 02:26.
Asinkrit вне форума Ответить с цитированием
Старый 11.04.2011, 02:51   #3
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

Примечание: в паскале слово result замените на имя функции без параметров, т.е. pow:=y;
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.
Sparkman вне форума Ответить с цитированием
Старый 11.04.2011, 10:10   #4
artem611
Пользователь
 
Регистрация: 21.09.2010
Сообщений: 40
По умолчанию

спсабо, что-то под ночь ступил)
artem611 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает функция keybd_event Hintman Win Api 31 05.06.2011 14:16
не работает функция Benderbej JavaScript, Ajax 2 30.08.2010 18:54
Функция авторизации не работает Tirendus PHP 8 29.01.2010 13:42
Не работает функция cin.get() dis Общие вопросы C/C++ 2 14.10.2009 18:40
Не работает функция gets()!!! Ilya'91 Общие вопросы C/C++ 1 28.07.2008 23:16