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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2011, 13:30   #1
vit1990
Пользователь
 
Регистрация: 19.01.2011
Сообщений: 34
По умолчанию

Разработка алгоритма и программы
1. Разработать алгоритм и программу для вычисления факториала с использованием рекурсивной функции
2. Разработать алгоритм и программу для возведения в степень целых чисел с использованием рекурсивной функции
3. Разработать алгоритм и программу для обработки массива с использованием рекурсивной функции. Варианты заданий по обработке массива приведены в табл. 1. Массив и диапазон чисел – произвольный.
Таблица 1
Найти сумму всех чисел в массиве в заданном диапазоне!!!!!!!!!!!!!!!!!!!!!!!!!! !

Первые два задание вреде это а вот с 3 помогите????

Код:
 function Factorial(N: Integer): Integer;
  function Stepen(Osn, Pok: Integer): Integer;
  function SummArray(M: array of integer; N: Integer): Integer;

var
 Form1: TForm1;
  Massiv: array [0..5] of integer;


implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  x, y: integer;
begin
  x := StrToInt(edit4.Text);
  y := Factorial(x);
  label1.Caption := IntToStr(y);
  end;
   function Factorial(N: Integer): Integer;
begin
  if N = 0 then
    Result := 1
  else
    Result := N * Factorial(N-1);
end;



procedure TForm1.Button3Click(Sender: TObject);

var
  a, b, c: integer;
begin
  a := StrToInt(edit2.Text);
  b := StrToInt(edit3.Text);
  c := Stepen(a, b);
  label3.Caption := IntToStr(c);
end;

function Stepen(Osn, Pok: Integer): Integer;
begin
  if Pok = 0 then
    Result := 1
  else if Pok = 1 then
    Result := Osn
  else
    Result := Osn * Stepen(Osn, Pok-1);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  i: integer;
  S: string;
begin
  memo1.Clear;
  S := '';
  for i := 0 to 5 do
  begin
    Massiv[i] := StrToInt(InputBox('','','0'));
    S := S + IntToStr(Massiv[i]) + '  ';
  end;
  memo1.Lines.Add(S);
end;

procedure TForm1.Button4Click(Sender: TObject);
var
  Summ: integer;
begin
  Summ := SummArray(Massiv, 5);
  label4.Caption := IntToStr(Summ);
end;

function SummArray(M: array of integer; N: Integer): Integer;
begin
  if N = 0 then
    Result := M[0]
  else
    Result := M[N] + SummArray(M, N-1);
end;

end.
Проверьте специалисты код и с 3 заданием помогите ???????

Последний раз редактировалось Stilet; 03.02.2011 в 07:10.
vit1990 вне форума Ответить с цитированием
Старый 10.02.2011, 17:19   #2
R_G
Форумчанин
 
Регистрация: 22.11.2010
Сообщений: 114
По умолчанию

icq 362306570. могу помочь с 3 заданием.
R_G вне форума Ответить с цитированием
Старый 10.02.2011, 19:16   #3
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Для функции возведения в степень я бы добавил еще несколько терминальных ситуаций
Код:
If Osn = 0 then Stepen:=0
Else
If Osn = 1 then Stepen:=1
Цитата:
Разработать алгоритм и программу для обработки массива с использованием рекурсивной функции.
Код:
implementation
Type
  Mas=array[1..5] of Byte;

{$R *.dfm}
function SummArray(M:Mas; N: Integer): Byte;
begin
  if N = 0 then
    SummArray := 0
  else
    SummArray :=M[n] + SummArray(M, N-1);
end;
procedure TForm1.Button1Click(Sender: TObject);
Var
  Ms:Mas;
  Sum:Byte;
begin
  Sum:=SummArray(Ms,5);
  Edit2.Text:=IntToStr(Sum)
end;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681

Последний раз редактировалось GetMax; 10.02.2011 в 20:14.
GetMax вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
прога на Делфи! designer Фриланс 3 06.12.2010 18:53
Pascal алгоритм вроди правильный, а прога не пашет tipson Помощь студентам 12 04.07.2009 15:50
прога на Делфи 7 Est Фриланс 7 29.11.2007 19:17