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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2012, 21:48   #1
square
 
Регистрация: 14.12.2012
Сообщений: 3
По умолчанию Рекурсия и Массивы

Уважаемы форумчане! Буду очень признателен, если вы поможете найти ошибки в программах.
1) Составить программу для решения задачи, используя рекурсивные функции: Найти значение произведения X1*X2*...*Xn, где X1=const, а Xi=(Xi-1)+3.
2) Дан двумерный целочисленный массив. Упорядочить каждую строку массива по возрастанию.

Мои наработки(программы работают, но не правильно..)
1)var
itog:Real;
q,i,x:Integer;

function pr(n,x:real): real;
begin
if n=1 then pr:=x else pr:=pr(n-1,x)*pr(n-1,x+3);
end;

begin
{ TODO -oUser -cConsole Main : Insert code here }
writeln ('Vvedite q');
readln (q);
writeln ('Vvedite x');
readln (x);
itog:=1;
for i:= 1 to q do
begin
itog:=itog*pr(q,x);
end;
writeln('proizvedenie= ', itog:2:2);
readln;
end.

2)var mas: array[1..5, 1..5] of integer;
i,j,s: integer;
begin
{ TODO -oUser -cConsole Main : Insert code here }
randomize;
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
mas[i,j]:=random(100);
write (mas[i,j], ' ');
end;
writeln;
end;
s:=0;
for j:=2 to 5 do
begin
for i:=j to 5 do
if mas[i-1,j]>mas[i,j] then
begin
s:=mas[i-1,j];
mas[i-1,j]:=mas[i,j];
mas[i,j]:=s;
end;
end;
readln;
end.

Последний раз редактировалось square; 14.12.2012 в 22:34.
square вне форума Ответить с цитированием
Старый 14.12.2012, 22:15   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Первая программа

Код:
type tmass=array [1..25] of real;

var
itog:Real;
q,i:Integer;
x: tmass;

function pr(n: integer; a: tmass): real;
var tmp: real;
begin
  tmp:=a[n];
  if n>1 then tmp:=pr(n-1,a)*tmp;
  pr:=tmp;
end;

begin
{ TODO -oUser -cConsole Main : Insert code here }
writeln ('Vvedite q ');
readln (q);
writeln ('Vvedite x1 ');
readln (x[1]);
WriteLn('Massiv:');
Write(x[1]:2:2);
for i:=2 to q do begin
  x[i]:=x[i-1]+3;
  Write(', ',x[i]:2:2);
end;
WriteLn;
itog:=pr(q,x);
writeln('proizvedenie= ', itog:2:2);
readln;
end.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 14.12.2012, 22:21   #3
square
 
Регистрация: 14.12.2012
Сообщений: 3
По умолчанию

Sciv, спасибо!!
square вне форума Ответить с цитированием
Старый 14.12.2012, 22:36   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Сорри, из-за тормозов два раза один код выкинулся.
А вторая задача - обычная сортировка, пишешь функцию или процедуру для сортировки, в качестве параметра передаешь массив и номер сортируемой строки.

А в основном коде в цикле вызываешь эту процедуру. Только массив должен передаваться как аргумент var.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 14.12.2012, 22:42   #5
square
 
Регистрация: 14.12.2012
Сообщений: 3
По умолчанию

Sciv, Премного Вам благодарен за помощь.
square вне форума Ответить с цитированием
Старый 05.06.2013, 13:23   #6
zogi
Новичок
Джуниор
 
Регистрация: 05.06.2013
Сообщений: 4
По умолчанию

рекурсивная функция вычисления количества положительных нечетных элементов в целочисленном массиве {a[j]}, где j=1,2,...,n
funct (int a[],int n)
{int i;
if (n==0) k=0;
if (a[i]>0)&&(a[i]%2!=0) return k++;
else return funct (a,n-1)
}
что не так?
zogi вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ Рекурсия и массивы Deviver Помощь студентам 7 27.03.2015 11:20
Двумерные массивы(массивы указателей на массивы) krytishka99 Помощь студентам 1 29.12.2011 19:51
Рекурсия Надежда1286 Помощь студентам 3 27.11.2011 14:06
Одномерные массивы. Рекурсия.(язык С) ZinGoZol Помощь студентам 7 01.04.2011 21:45
Рекурсия Xeon332 Помощь студентам 5 16.01.2008 20:52