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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2012, 10:55   #1
Студентос
Пользователь
 
Регистрация: 01.12.2012
Сообщений: 17
Смущение одномерные массивы в delphi 7

Ребят помогите с задачкой. Нужно на delphi 7 составить программу, отыскивающую среди пар элементов одномерного массива M те, разность между которыми есть величина, наибольшая для элементов данного массива.
Студентос вне форума Ответить с цитированием
Старый 06.12.2012, 11:25   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
max:=abs(a[2]-a[1]);
for i:=3 to n do
if abs(a[i]-a[i-1])>max then max:=abs(a[i]-a[i-1]);
Showmessage(FloatToStr(max));
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 06.12.2012, 11:38   #3
Студентос
Пользователь
 
Регистрация: 01.12.2012
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Mad_Cat Посмотреть сообщение
Код:
max:=abs(a[2]-a[1]);
for i:=3 to n do
if abs(a[i]-a[i-1])>max then max:=abs(a[i]-a[i-1]);
Showmessage(FloatToStr(max));
а можете скриншот программы прислать, я просто не знаю как она должна выглядеть. За код спасибо!
Студентос вне форума Ответить с цитированием
Старый 06.12.2012, 11:48   #4
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
а можете скриншот программы прислать
в асю стукни - я и ехе пришлю и исходники(после оплаты разумеется)
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 06.12.2012, 13:38   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

На мой взгляд, в примере Mad_Cat решается ДРУГАЯ задача: поиск расположенных рядом элементов с заданным свойством.

Где в условии задачи сказано, что пара элементов - это элементы расположенные непосредственно один за другим... Думаю, что нужно проверять каждый элемент массива со всеми оставшимися элементами массива на предмет поиска максимальной разности.

впрочем, переделать это не составит большого труда - два цикла (один вложенный в другой) и задача решена.


Цитата:
Сообщение от Mad_Cat
и исходники(после оплаты разумеется)
Mad_Cat, вымогаете деньги у бедных студентов?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.12.2012, 13:50   #6
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
в примере Mad_Cat решается ДРУГАЯ задача
Делов то
Код:
i1=1;
i2=2;
for j:=1 to n do
for i:=1 to n do
if abs(a[i]-a[j])>abs(a[i1]-a[i2])>  then begin i1:=i;i2:=j;end;
Showmessage(IntToStr(i1)+';'+IntToStr(i2));
Цитата:
вымогаете деньги у бедных студентов
я бы перефразировал
Предлагаю удаленно свои руки и голову "бедным" студентам
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 06.12.2012, 14:21   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

продолжаем разговор...

а модуль Вы для чего берёте? я в задании про модуль ничего не увидел..


Цитата:
Предлагаю удаленно свои руки и голову "бедным" студентам
Кому руки и голова программиста?! Недорого!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.12.2012, 07:29   #8
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
а модуль Вы для чего берёте?
Руки вперед головы бегут)
Код:
{.......}
uses Math;
begin
{.......}
i1=1;
i2=2;
for j:=1 to n-1 do
for i:=j+1 to n do
if abs(a[i]-a[j])>abs(a[i1]-a[i2])>  then begin i1:=i;i2:=j;end;
Showmessage(FloatToStr(max(a[i1],a[i2]))+';'+FloatToStr(min(a[i1],a[i2]));
{........}
end;
Цитата:
Кому руки и голова программиста?!
Ну программистом я себя не считаю( маловато знаний, да и не в той области я работаю) , скорее сочувствующий
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 07.12.2012 в 07:31.
Mad_Cat вне форума Ответить с цитированием
Старый 07.12.2012, 08:52   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov
а модуль Вы для чего берёте? я в задании про модуль ничего не увидел..
вчера форум у меня не открывался. ровно через пять секунд после того я отослал своё сообщение и понял, что можно и так, как Вы делать... иначе я бы стёр свой пост. Нормальное у Вас решение!

просто я бы написал вот так:
Код:
  for i:=1 to n do
     for j:=1 to n do
       if i<>j then 
          if (a[i]-a[j])>(a[i1]-a[i2])  then begin i1:=i;i2:=j;end;

 Showmessage('максимальная разность равна '+FloatToStr(a[i1]-a[i2])+' при '+
                      ' A['+IntToStr(i1)+'] ='+FloatToStr(a[i1])+
                      ' A['+IntToStr(i2)+'] ='+FloatToStr(a[i2]));
хотя, конечно, у Вас решение более оптимальное, т.к. меньше элементов в цикле будет перебираться..


p.s. а что это за знак ">" перед then ?! следы того, что Вы код набираете прямо в браузере?

Последний раз редактировалось Serge_Bliznykov; 07.12.2012 в 08:54.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.12.2012, 08:56   #10
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

модуль он еще и от
Код:
if i<>j then
избавляет
Но тема скорее интересна нам с вами чем ТС
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерные массивы в Delphi marmarina Помощь студентам 2 31.10.2012 21:40
Одномерные массивы Delphi! Kate23 Помощь студентам 0 22.01.2012 10:01
Delphi.Одномерные массивы,циклы,символы и строки. specnazkin Помощь студентам 1 12.01.2011 12:19
Одномерные массивы (на Delphi 70) matrix8325 Помощь студентам 2 02.05.2009 11:39