| 
| 
 | Вопрос # 5 328/ вопрос открыт / | 
 |  Здравствуйте! Приветствую вас уважаемые эксперты  прошу помочь мне в написании некоторых программ ... на  одну из них я прикреплю  исходники  там проблема в том  что я не знаю  в чем ошибка программы 1)Разработать функцию/процедуру проверки упорядоченности числовых элементов списка. Если список неупорядоченный, то заполнить его числами, последовательно уменьшающимися на 1, начиная с заданного числа X, и добавить полученный список в начало исходного, повторяя подобную вставку заранее известное число раз.
 2)Разработать рекурсивную функцию или процедуру, которая позволяет вычислить
 а) Наибольшую разность порядковых номеров наибольшего и наименьшего элементов массива;
 б) Значение рекуррентной формулы
 F(0) = 1; F(k) = F(k-1)/2 + 3k при k > 0.
 К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса) Примечание #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 (статус: Посетитель)Вопрос отправлен: 27 мая 2011, 16:54
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 4; последнее сообщение — 27 мая 2011, 20:20; участников в обсуждении: 2. 
|   | 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 (статус: Посетитель), 27 мая 2011, 18:46 [#3]:спсибо это я реализовал ... правда ввел маленькую  поправочку на счет типа ...  а так все работает отлично |  
|   | Ruslan1993 (статус: Посетитель), 27 мая 2011, 20:20 [#4]:а на счет первой задачи..... не поможете  найти в ней ошибку |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |