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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2009, 16:23   #1
lerochka
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 16
По умолчанию Просьба в написании программы :(

Уважаемые пользователи етого форума помогите мне в написании программы в Delphi 7! Буду очень Вам благодарна) Вот задание: "Вычислить число в факториале Y=X!" Прошу Вас помогите...
lerochka вне форума Ответить с цитированием
Старый 13.06.2009, 16:37   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

попоробуйте это:
Код:
program a;
{Функция факториал}
Function fact(s:integer):real;
var i:integer;
begin
result:=1;
if s<=0 then break;
for i:=1 to s do result:=result*i;
end;

{Основной код программы:}
begin
writeln(fact(32));{Выводит результат на экран}
end;
и поищите на форуме, уже много раз задавалось вопросов, подобных Вашему.
P.S. Нашел этот код, кстати, поиском по форуму.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 13.06.2009, 16:41   #3
lerochka
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 16
По умолчанию

Уважаемый artemavd а можно подробнее обьяснить =) {Основной код программы:}
туда что вводить?
lerochka вне форума Ответить с цитированием
Старый 13.06.2009, 16:58   #4
DenisWilson
Новичок
Джуниор
 
Регистрация: 13.06.2009
Сообщений: 7
По умолчанию

Уважаемая, Лерочка. Код программа, который выше привел Артем состоит из двух частей:
1. функции fact, которая считает факториал,
2. и основного кода программы, в котором вызывается эта функция.

В фигурных скобках {} написаны так называемые комментарии, то есть пояснения Вам, чтобы Вы не перепутали, где функция, а где основной код программы.

Компилятор на такие строки не обращает никакого внимания (так как они написаны для Вас, а не для него).

Из всего этого делаем вывод, что ничего больше вводить не нужно (всё уже введено), а тем более в фигурные скобки, так как компилятор всё равно это проигнорирует.
DenisWilson вне форума Ответить с цитированием
Старый 13.06.2009, 17:00   #5
Олвин
Экспериментатор
Форумчанин
 
Аватар для Олвин
 
Регистрация: 16.04.2008
Сообщений: 218
По умолчанию

Так ведь там уже всё введено Одна строчка кода - программа выводит на экран факториал числа 32. {Только это слишком большое число для факториала!}
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс
Олвин вне форума Ответить с цитированием
Старый 13.06.2009, 17:01   #6
lerochka
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 16
По умолчанию

А куда именно писать етот код обьясните пжайлуста( У меня есть Delphi7 обьясните если можно в скринах, пожайлуста пожайлуста))
lerochka вне форума Ответить с цитированием
Старый 13.06.2009, 17:02   #7
Maxs
Заблокирован
 
Регистрация: 06.04.2009
Сообщений: 130
По умолчанию

Задачу то надо на делфи, а это
Код:
program a;
//-----
begin
writeln(fact(32));{Выводит результат на экран}
end;
надо убрать
Maxs вне форума Ответить с цитированием
Старый 13.06.2009, 17:05   #8
DenisWilson
Новичок
Джуниор
 
Регистрация: 13.06.2009
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Maxs Посмотреть сообщение
Задачу то надо на делфи, а это
Код:
program a;
//-----
begin
writeln(fact(32));{Выводит результат на экран}
end;
надо убрать
Или добавить в начало
Код:
{$APPTYPE CONSOLE}
DenisWilson вне форума Ответить с цитированием
Старый 13.06.2009, 17:06   #9
Maxs
Заблокирован
 
Регистрация: 06.04.2009
Сообщений: 130
По умолчанию

Полный код проги
File->New->VCL Form Application
тыкаешь 2 раза на форму- событие FormCreate. Появляется вот что:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin

end;
выделяешь, меняешь на

Код:
procedure TForm1.FormCreate(Sender: TObject);
var
X:integer;
Y:Real;
begin
X:=StrToInt(InputBox('Введите х:','',''));
Y:=fact(X);
ShowMessage(FloatToStr(Y));
end;
После
Код:
implementation

{$R *.dfm}
Надо вставить
Код:
Function fact(s:integer):real;
var i:integer;
begin
result:=1;
if not(s<=0) then
for i:=1 to s do result:=result*i;
end;
Все.
Это должно получиться:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
Function fact(s:integer):real;
var i:integer;
begin
result:=1;
if not(s<=0) then
for i:=1 to s do result:=result*i;
end;


procedure TForm1.FormCreate(Sender: TObject);
var
X:integer;
Y:Real;
begin
X:=StrToInt(InputBox('Введите х:','',''));
Y:=fact(X);
ShowMessage(FloatToStr(Y));
end;

end.

Последний раз редактировалось Maxs; 13.06.2009 в 17:21.
Maxs вне форума Ответить с цитированием
Старый 13.06.2009, 17:10   #10
DenisWilson
Новичок
Джуниор
 
Регистрация: 13.06.2009
Сообщений: 7
По умолчанию

Макс, а почему функция возвращает значение с типом real?
DenisWilson вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помощь в написании программы prog1 Фриланс 5 02.06.2008 19:50
Нужна помощь в написании программы. GhosT3Ds Паскаль, Turbo Pascal, PascalABC.NET 1 23.12.2007 07:45