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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2012, 00:18   #1
netiv
Пользователь
 
Регистрация: 12.10.2011
Сообщений: 33
По умолчанию Напишите программу с использованием рекурсии для поиска наименьшего элемента массива

Помогите с алгоритмами.
Задание:
1. Напишите программу с использованием рекурсии для поиска наименьшего элемента массива.
2. Используя рекурсию написать программу перевода натурального числа из де-сятичной системы счисления в двоичную.

Без всяких там рекурсий могу сделать эти 2 задания в считанные минуты, а вот с рекурсией не понимаю. Вот пробывал сделать 1 задание но никак не выходит.

Код:
type
mas=array [1..1000] of real;
var
    a:mas;
    n:integer;
    min:real;
    
Procedure init(var x:mas;n:integer);
var i:integer;
begin
for i:=1 to n do begin
write('Vvedite[',i,']');
readln(x[i]);
end;
end;


procedure recurs (n:integer;x:mas;min:real);
begin
min:=x[1];
if n=1 then exit
else if x[n]<min then min:=x[n];
recurs (n-1,x,min);
end;

procedure print (x:mas;n:integer);
var i:integer;
begin
for i:=1 to n do
write(x[i],' ');
end;

begin
writeln('Vvedite kolichestvo elementov massiva');
readln(n);
init(a,n);
recurs(n,a,min);
print(a,n);
writeln('min:=',min)
end.
netiv вне форума Ответить с цитированием
Старый 17.02.2012, 00:29   #2
Katus
Форумчанин
 
Регистрация: 30.11.2011
Сообщений: 161
По умолчанию

Код:
fuction fmin(a: mas; i, n: byte): real; // a - массив, i - начальный индекс масива, n - конецный индекс массива
begin
if i<n then 
  if a[i]<fmin(a,i+1,n) then
    result:=a[i]
  else
    result:=fmin(a,i+1,n)
else
  result:=a[n];
end;
Если лень что-то делать, заставь это делать машину ... =,
Katus вне форума Ответить с цитированием
Старый 17.02.2012, 00:39   #3
Katus
Форумчанин
 
Регистрация: 30.11.2011
Сообщений: 161
По умолчанию

Код:
fuction dtb(dec: integer):integer;
begin
if abs(dec) div 2 < 2 then
  result:=abs(dec) mod 2
else 
  result:=dtb(dec div 2)+abs(dec) mod 2;
end;
если не ошибаюсь то должно работать...=. только для +чисел
Если лень что-то делать, заставь это делать машину ... =,

Последний раз редактировалось Katus; 17.02.2012 в 00:50.
Katus вне форума Ответить с цитированием
Старый 17.02.2012, 01:07   #4
netiv
Пользователь
 
Регистрация: 12.10.2011
Сообщений: 33
По умолчанию

Цитата:
Сообщение от Katus Посмотреть сообщение
Код:
fuction dtb(dec: integer):integer;
begin
if abs(dec) div 2 < 2 then
  result:=abs(dec) mod 2
else 
  result:=dtb(dec div 2)+abs(dec) mod 2;
end;
если не ошибаюсь то должно работать...=. только для +чисел
Вообщем код не работает в ответе при вводе 10 выдаёт только 1 цифру , вместо 4, да и при других числах тоже
netiv вне форума Ответить с цитированием
Старый 17.02.2012, 13:57   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
2. Используя рекурсию написать программу перевода натурального числа из де-сятичной системы счисления в двоичную.
а если так:
Код:
function dec2bin(dec : longint):string;
begin
  if dec=0 then dec2bin := ''
  else
    if odd(dec) then
      dec2bin := dec2bin(dec div 2) + '1'
    else 
      dec2bin := dec2bin(dec div 2) + '0';
end;

var N : longint;
begin
  Readln(N);
  WriteLn('Binary : ', dec2bin(N));
  Readln  
end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
метод наименьшего элемента sanya12345 Помощь студентам 5 31.01.2011 07:50
Напишите программу для вычисления корня n степени... pashqa Помощь студентам 1 20.12.2010 17:58
Подпрограмма поиска максимального элемента одномерного массива. Viktory.nvrn Помощь студентам 2 12.10.2010 23:50
3. Вывести номер строки наименьшего элемента в двумерном массиве zebatic Помощь студентам 1 11.06.2010 00:14
Исправьте программу для определения минимального элемента линейного массива Х Figushkin Помощь студентам 1 22.05.2010 09:23