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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2011, 18:18   #1
vadiprog
Пользователь
 
Регистрация: 24.09.2011
Сообщений: 96
По умолчанию Наименьшее расстояние между локальными максимумами

Определите наименьшее расстояние между двумя локальными максимумами последовательности натуральных чисел, завершающейся числом 0. Если в последовательности нет двух локальных максимумов, выведите число 0.

Вот код на C++ а надо на Delphi
Код:
  int prv, cur, nxt, pos = 0, prv_max = 0, min_len = 0, cur_len;
  int count = 0;
  if (cin>>prv && prv)
  {
    if (cin >> cur && cur)
    {
      if (cin >> nxt)
      {
        pos = 2;
        while (nxt)
        {
          if ((prv < cur) && (cur > nxt))
          {
            if (prv_max != 0 )
            {
              cur_len = pos - prv_max;
              if (min_len == 0)
                min_len = cur_len;
              else
                min_len = min(min_len,cur_len);
            }
            prv_max = pos;
          }
          prv = cur;
          cur = nxt;
          cin >> nxt;
          pos++;
 
        }
      }
    }
  }
  cout<<min_len;
vadiprog вне форума Ответить с цитированием
Старый 10.12.2011, 19:07   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Локальные максимумы это что?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.12.2011, 19:53   #3
vadiprog
Пользователь
 
Регистрация: 24.09.2011
Сообщений: 96
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Локальные максимумы это что?
Это если число больше чем то что идёт перед ним и то что идёт после него первое и последние число не может быть локальным максимумом
vadiprog вне форума Ответить с цитированием
Старый 10.12.2011, 20:44   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

С потолка:
Код:
var 
 a:array[1..3] of double;
 lmpos,i,m:integer; 
begin i:=1;m:=0;lmpos:=0;
 repeat
  readln(a[1]); if a[1]=0 then break;
  readln(a[2]); if a[2]=0 then break;
  readln(a[3]); if a[3]=0 then break;inc(i,3);
  if (a[1]<a[2])and(a[2]>a[3]) then begin
   lmpos:=i;
   if (i-lmpos)<m then m:=i-lmpos;
  end;
 until false;
И выводим М
end.
Не проверял.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
СИ Найти наименьшее расстояние между точками savra Помощь студентам 2 19.04.2011 10:16
Расстояние между символами. Meridian Помощь студентам 0 05.06.2010 15:58
Расстояние между раммкой Syltan Microsoft Office Word 1 14.11.2009 20:31
Расстояние между строками Kib Общие вопросы Delphi 5 30.06.2009 01:02