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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2011, 23:30   #1
Dima170792
Пользователь
 
Аватар для Dima170792
 
Регистрация: 04.04.2011
Сообщений: 76
По умолчанию В даной последовательности найти максимальную по длине последовательность

Ув.форумчане!обращаюсь к вам за помощью в решении задачи по информатике-язык программирования-Delphi7!задача состоит в следующем:В даной последовательности найти максимальную по длине последовательность так-чтоб елементы в ней были в возрастающем порядке!Заранее благодарен!
Dima170792 вне форума Ответить с цитированием
Старый 16.06.2011, 00:01   #2
Виталюкас
Пользователь
 
Регистрация: 26.04.2010
Сообщений: 39
По умолчанию

напишите задание понятней, последовательность уже дона или данную последовательность нужно отсортеровать и потом выплнить то что вы просите?
Виталюкас вне форума Ответить с цитированием
Старый 16.06.2011, 00:13   #3
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Нормально задание сформулировано - все понятно. Dima170792, если хочешь - могу на C++ решить, а на Delphi сам переведешь (или, если хочешь, я переведу, но уже не бесплатно).
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 16.06.2011, 00:28   #4
НЕМО170792
 
Регистрация: 12.06.2011
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Сtrl Посмотреть сообщение
Нормально задание сформулировано - все понятно. Dima170792, если хочешь - могу на C++ решить, а на Delphi сам переведешь (или, если хочешь, я переведу, но уже не бесплатно).
можете на С++=а там думаю справлюсь!
НЕМО170792 вне форума Ответить с цитированием
Старый 16.06.2011, 02:58   #5
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Код:
#include <iostream>
#include <vector>


int main(void)
{
	/* Создание основной последовательности (ввод с клавиатуры) */
	std::cout << "Enter seq size: ";
	std::size_t seq_size;
	std::cin >> seq_size; std::cin.get();
	std::vector<int> seq;
	std::cout << "Enter seq: " << std::endl;
	for (std::size_t i = 0; i < seq_size; ++i)
	{
		int buffer;
		std::cin >> buffer;
		seq.push_back(buffer);
	} std::cin.get();

	/* Поиск самой длинной возрастающей субпоследовательности */
	std::vector<int> longest_subseq;
	for (std::vector<int>::const_iterator iter = seq.begin(); iter != seq.end();)
	{
		std::vector<int> subseq;
		subseq.push_back(*(iter++));
		while (iter != seq.end())
			if (*iter > subseq.back())
				subseq.push_back(*(iter++));
			else break;
		if (subseq.size() > longest_subseq.size())
			longest_subseq = subseq;
	}

	/* Вывод результата */
	std::cout << "The longest incremental subsequence is: \n";
	for (std::vector<int>::const_iterator iter = longest_subseq.begin(); iter != longest_subseq.end(); ++iter)
		std::cout << *iter << '\t';
	std::cout << std::endl;
	std::cin.get();
	return 0;
}
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 16.06.2011, 10:52   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
(*

 даной последовательности найти максимальную по длине последовательность
 так-чтоб елементы в ней были в возрастающем порядке!

*)

program FindMaxLengthSeq;

{$APPTYPE CONSOLE}

const
  n=10;
  a:array[1..n] of integer = (2, 3, 1, 5, 1, 7, 0, 1, 3, 9);
var
  i, MaxLen, Imax, CurLen : integer; 
begin
  {выведем весь массив на экран}
  for i:=1 to n do Write(a[i]:1,' ');
  WriteLn;

  MaxLen := 0;  
  iMax := -1;

  CurLen := 1;
  i := 2;
  while i<=n do begin
    if a[i]>a[i-1] then Inc(CurLen)
    else begin
      if CurLen>MaxLen then begin
        MaxLen := CurLen;
        iMax := i-CurLen;
      end;
      CurLen := 1
    end;
    inc(i);
  end;

  {дополнительная проверка, если массив
     закончился максимальной по длине возрастающей серией}
  if CurLen>MaxLen then begin
        MaxLen := CurLen;
        iMax := i-CurLen;
  end;

  WriteLn('Максимальная длина последовательности = ',MaxLen:1,
          ' начинается с позиции номер ',iMax:1);

  readln;
end.


p.s. Сtrl круто! я бы лично не смог перевести это на Паскаль...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.06.2011, 21:14   #7
Dima170792
Пользователь
 
Аватар для Dima170792
 
Регистрация: 04.04.2011
Сообщений: 76
Радость

Всем спасибо! Особая благодарность-Serge_Bliznykov!!!
Dima170792 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С\С++ Дана последовательность чисел. Найти количество различных чисел в этой последовательности yuliyayuliya Помощь студентам 1 14.04.2011 06:30
Дана последовательность x1,x2,...,x20. Требуется расположить отрицательные элементы последовательности в Irisk Помощь студентам 2 23.12.2010 16:39
Найти наибольшую по длине последовательность простых чисел в массиве Лесная Эльфийка Помощь студентам 2 14.12.2010 16:24
заданы z и у - две последовательности чисел. Можно ли получить последовательность z путем вычеркивания эл alykaa Помощь студентам 11 05.12.2010 21:10
Си. Задано натуральное число. В нем выделить максимальную по длине группу подряд идущих четных цифр Veina Помощь студентам 20 23.11.2009 17:00