Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.06.2011, 23:18
Dima170792 Dima170792 вне форума
Новичок
 
Регистрация: 02.04.2011
Сообщения: 61
Репутация: 10
По умолчанию В даной последовательности найти максимальную по длине последовательность

Ув.форумчане!обращаюсь к вам за помощью в решении задачи по информатике-язык программирования-Delphi7!задача состоит в следующем:В даной последовательности найти максимальную по длине последовательность так-чтоб елементы в ней были в возрастающем порядке!Заранее благодарен!
Ответить с цитированием
  #2  
Старый 16.06.2011, 00:16
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Берешь входной массив, проходишься по нему, на каждом шаге увеличиваешь некий счетчик C и сравниваешь каждый элемент с предыдущим. Если меньше - то если MaxC<C то MaxC:=C и MaxI:=I-1; сбрасываем C.
Код:
MaxC:=0;
MaxI:=0;
C:=0;
for i:=2 to n do
begin
inc(C);
  if a[i]<a[i-1] then
  begin
    if MaxC<C then 
    begin
       MaxC:=C;
       MaxI:=I-1;
    end;
    C:=1;
  end;
end;
Плюс надо еще запилить проверку если весь массив и так по возрастанию.

Чтоб выковорить последовательность надо
Код:
for i:=MaxI-C+1 to MaxI do ...
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 16.06.2011 в 00:23.
Ответить с цитированием
  #3  
Старый 16.06.2011, 00:31
Dima170792 Dima170792 вне форума
Новичок
 
Регистрация: 02.04.2011
Сообщения: 61
Репутация: 10
По умолчанию

Цитата:
Сообщение от Bargest
Берешь входной массив, проходишься по нему, на каждом шаге увеличиваешь некий счетчик C и сравниваешь каждый элемент с предыдущим. Если меньше - то если MaxC<C то MaxC:=C и MaxI:=I-1; сбрасываем C.
Код:
MaxC:=0;
MaxI:=0;
C:=0;
for i:=2 to n do
begin
inc(C);
  if a[i]<a[i-1] then
  begin
    if MaxC<C then 
    begin
       MaxC:=C;
       MaxI:=I-1;
    end;
    C:=1;
  end;
end;
Плюс надо еще запилить проверку если весь массив и так по возрастанию.

Чтоб выковорить последовательность надо
Код:
for i:=MaxI-C+1 to MaxI do ...
а можете проще обьяснить-потомучто уровень знаний у мяня-очень низок( а преподаватель требует по максимуму(
Ответить с цитированием
  #4  
Старый 16.06.2011, 01:09
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Проще уже некуда. Проверку можно сделать так: после цикла смотрим, если C=n значит вся последовательность и так по возрастанию.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #5  
Старый 16.06.2011, 06:01
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,088
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от Dima170792
а можете проще обьяснить-потомучто уровень знаний у мяня-очень низок( а преподаватель требует по максимуму(

Могу.
Кто хочет - тот узнает. Преподаватель не может оринтироваться на самых бестолковых - ему просто программа не даст этого (образовательная). Соответсвенно, материал дается в темпе как минимум среднего. Далее идет самообразование - почитать пару книжек да написать пару десятков программ.

Соответсвенно, и задание дается так, что бы при самостоятельной работе студент/школьник получил какие-то доп. знания.

Тем более, что я в этой задаче не вижу ничего сложного. Достаточно было просто нарисовать массив на бумажке и немного подумать головой.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:46.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025