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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2009, 03:38   #1
DsDevis
Пользователь
 
Регистрация: 21.03.2009
Сообщений: 35
По умолчанию Фунции (Pascal)

Еще раз здравствуйте. (Надеюсь, я не слишком назойлив?)
На данный момент осваиваю фунции, написал программу для расчета 1/n!
но она не компилируется. В чем я ошибся?
Код:
program funcii;
var n,y,z: real;
begin
write('Введите n ');
readln(n);
         function chisl (var n,s,k:real):real;
         begin
         s:=1; k:=1;
         while k<n do
         begin
         k:=k+1;
         s:=s*k;
         end;
write('Введите z ');
readln(z);
z:=chisl/1;
writeln
end.

Последний раз редактировалось DsDevis; 25.03.2009 в 03:49.
DsDevis вне форума Ответить с цитированием
Старый 25.03.2009, 04:19   #2
SeRhy
Форумчанин
 
Аватар для SeRhy
 
Регистрация: 19.10.2007
Сообщений: 168
По умолчанию

Код:
program funcii;

var n,y,z: real;

function chisl (var n:real):real;
var s1,k1 :real;
begin
  s1:=1; k1:=1;
  while k1<n do
  begin
     k1:=k1+1;
     s1:=s1*k1;
   end;
  chisl:=s1;
end;

begin
  write('Введите n ');
  readln(n);
  write('Введите z ');
  readln(z);
  z:=chisl(n)/1;
  writeln
end.
Для точности нужно задание...
А вобще пользуйся хелпом для начала.
SeRhy вне форума Ответить с цитированием
Старый 25.03.2009, 04:19   #3
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

В том, что function должно быть снаружи блока begin-end
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/
OCTAGRAM вне форума Ответить с цитированием
Старый 25.03.2009, 14:42   #4
DsDevis
Пользователь
 
Регистрация: 21.03.2009
Сообщений: 35
По умолчанию

Спасибо, разобрался.
DsDevis вне форума Ответить с цитированием
Старый 25.03.2009, 20:05   #5
DsDevis
Пользователь
 
Регистрация: 21.03.2009
Сообщений: 35
По умолчанию

Помогите пожалуйста еще раз. Вот код программы, выводящей на экран значения 2-х функций chisl и znam. (chisl:=n! znam:=(2^n)!)
Код:
program faktorial;
var n,x,s,s1: real;
function znam (var n:real):real;
var s1,k1 :real;
begin
  s1:=1; k1:=1;
  while k1<n do
  begin
     k1:=k1+1;
     s1:=s1*k1;
   end;
  znam:=s1;
end;
    function chisl (var n:real):real;
    var s, k: real;
    begin
        s:=1; k:=1; n:=(exp(n*ln(2)));
        while k<n do
        begin
        k:=k+1;
        s:=s*k;
        end;
    chisl:=s;
    end;
begin
write('Введите n ');
readln(n);
writeln(chisl(n):0:0);
writeln(znam(n):0:0);
end.
Проблема в том, что chisl и znam при любых вводимых n принимают значения (2^n)! Хотя znam должен быть равен n! Где я ошибся?

Последний раз редактировалось DsDevis; 25.03.2009 в 20:42. Причина: [B]Проблема решена.[/B]
DsDevis вне форума Ответить с цитированием
Старый 25.03.2009, 20:49   #6
Veselyn
Форумчанин
 
Аватар для Veselyn
 
Регистрация: 29.01.2009
Сообщений: 175
По умолчанию

Меня интересует в каком Pascalе можно писать сообщения на русском языке, типа
write('Введите n ');
Все люди делятся на 10 типов: те, кто понимают двоичную систему счисления и те, кто нет.
Veselyn вне форума Ответить с цитированием
Старый 25.03.2009, 20:54   #7
DsDevis
Пользователь
 
Регистрация: 21.03.2009
Сообщений: 35
По умолчанию

Veselyn
http://programmersforum.ru/showthrea...6887#post26887
DsDevis вне форума Ответить с цитированием
Старый 25.03.2009, 20:56   #8
Veselyn
Форумчанин
 
Аватар для Veselyn
 
Регистрация: 29.01.2009
Сообщений: 175
По умолчанию

Спасибо, я так далеко во времени ещо незалезал
Все люди делятся на 10 типов: те, кто понимают двоичную систему счисления и те, кто нет.
Veselyn вне форума Ответить с цитированием
Старый 26.03.2009, 07:57   #9
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

Veselyn
Ну и School Pak заодно. По моему, лучше.
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/
OCTAGRAM вне форума Ответить с цитированием
Старый 26.03.2009, 13:23   #10
DENCREAT
Пользователь
 
Регистрация: 20.03.2009
Сообщений: 32
По умолчанию

Цитата:
Сообщение от DsDevis Посмотреть сообщение
Помогите пожалуйста еще раз. Вот код программы, выводящей на экран значения 2-х функций chisl и znam. (chisl:=n! znam:=(2^n)!)
Код:
program faktorial;
var n,x,s,s1: real;
function znam (var n:real):real;
var s1,k1 :real;
begin
  s1:=1; k1:=1;
  while k1<n do
  begin
     k1:=k1+1;
     s1:=s1*k1;
   end;
  znam:=s1;
end;
    function chisl (var n:real):real;
    var s, k: real;
    begin
        s:=1; k:=1; n:=(exp(n*ln(2)));
        while k<n do
        begin
        k:=k+1;
        s:=s*k;
        end;
    chisl:=s;
    end;
begin
write('Введите n ');
readln(n);
writeln(chisl(n):0:0);
writeln(znam(n):0:0);
end.
Проблема в том, что chisl и znam при любых вводимых n принимают значения (2^n)! Хотя znam должен быть равен n! Где я ошибся?


поучити рекурсию и таких проблем у тебя больше не будет
DENCREAT вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal bpystep Фриланс 6 25.02.2009 22:44
Перевод кода из Pascal в Object Pascal zemskov77 Общие вопросы Delphi 1 03.01.2009 09:37
PASCAL Pavelhr Паскаль, Turbo Pascal, PascalABC.NET 1 11.11.2008 14:59