Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 328

/ вопрос открыт /

Здравствуйте! Приветствую вас уважаемые эксперты прошу помочь мне в написании некоторых программ ... на одну из них я прикреплю исходники там проблема в том что я не знаю в чем ошибка программы
1)Разработать функцию/процедуру проверки упорядоченности числовых элементов списка. Если список неупорядоченный, то заполнить его числами, последовательно уменьшающимися на 1, начиная с заданного числа X, и добавить полученный список в начало исходного, повторяя подобную вставку заранее известное число раз.
2)Разработать рекурсивную функцию или процедуру, которая позволяет вычислить
а) Наибольшую разность порядковых номеров наибольшего и наименьшего элементов массива;
б) Значение рекуррентной формулы
F(0) = 1; F(k) = F(k-1)/2 + 3k при k > 0.

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

Приложение:
  1.  


Примечание #1 (27 мая 2011, 18:03):
первая прога написана но не работает как надо ... а ошибку я понять не могу
Примечание #2 (27 мая 2011, 18:13):
часть первой программы в которой я думаю содержитьс ошибка

procedure TForm1.Button2Click(Sender: TObject);
var i,j,k:integer;
mas:PIntArray; {массив типа (3 2 1 )}
masIt:PIntArray; {конечный массив}
chislo:integer; {число с которого начинается отсчет }
kol:integer; {количество вставок}
nItems:integer; {количество элементов которое будет содержать конечный массив}
begin
j:=1;
Label1.Caption:='';
kol:=StrToInt(Edit3.Text);
chislo:= StrToInt(edit2.text);
nItems:=(chislo*kol)+NumItems;
GetMem(masIt,nItems*SizeOf(integer));
GetMem(mas,chislo*sizeof(integer));
for i:=chislo downto 1 do {задание массива который содержит типа отсчет до 1}
mas^[i]:=i;
for i:=1 to NumItems-1 do
begin
if Items^[i]<=Items[i+1] then
begin {проверка на упорядоченность}
Items^[i]:=Items[i+1];
j:=j+1;
end;
end;
if j < NumItems then
begin
for i:=0 to chislo-1 do {вставка первого повторения}
masIt[i]:=mas[i];
for k:=1 to kol-1 do {вставка последующих повторений}
for i:=0 to chislo-1 do
masIt[i+(chislo*k)]:=mas[i];
for i:=0 to NumItems-1 do {вставка исходного массива}
masIt[i+(kol*chislo)]:=Items[i];
for i:=0 to nItems-1 do {вывод готового массива на метку если исходный массив был не упорядоченный}
label1.caption:=label1.caption+IntToStr(masIt[i])+' ';
end
else
label1.caption:='массив упорядочен';

end;

Ruslan1993 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Ruslan1993 (статус: Посетитель)
Вопрос отправлен: 27 мая 2011, 16:54
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 4; последнее сообщение — 27 мая 2011, 20:20; участников в обсуждении: 2.
Ruslan1993

Ruslan1993 (статус: Посетитель), 27 мая 2011, 17:47 [#1]:

буду рад даже малейшей помощи.
Вадим К

Вадим К (статус: Академик), 27 мая 2011, 18:08 [#2]:

для последнего - там просто, что то вида
function F(k:integer):integer;
begin
if k < 0 then
  result := 0
else if k = 0 then
  result := 1;
else
  result := f(k-1)/2+3*k
end;
и где то в коде вызываем
x := f(10);
Галочка "подтверждения прочтения" - вселенское зло.
Ruslan1993

Ruslan1993 (статус: Посетитель), 27 мая 2011, 18:46 [#3]:

спсибо это я реализовал ... правда ввел маленькую поправочку на счет типа ... а так все работает отлично
Ruslan1993

Ruslan1993 (статус: Посетитель), 27 мая 2011, 20:20 [#4]:

а на счет первой задачи..... не поможете найти в ней ошибку

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:36
Выполнено за 0.02 сек.