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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 18.01.2012, 22:53   #1
Oksanka2012
 
Регистрация: 18.01.2012
Сообщений: 6
Лампочка Единомерные массыви Пскаль

Помогите написать программу.

Определить номера начального и конечного элементов самого длинного фрагмента массива X[1:N], элементы которого расположены в порядку возрастания.

Oksanka2012 вне форума
Старый 19.01.2012, 02:05   #2
Ghost of Night
Форумчанин
 
Аватар для Ghost of Night
 
Регистрация: 08.08.2010
Сообщений: 371
По умолчанию

что вы подразумевали под словом "фрагмент"?
Хакинг - не преступление, а способ выживания.
Ghost of Night вне форума
Старый 19.01.2012, 02:34   #3
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

как я понял промежутка.
Pein95 вне форума
Старый 19.01.2012, 07:22   #4
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

Для затравочки
6 2 3 1 0 -6 1 4 8 9 3 2 1 2
Самый длинный фрагмент - 0 -6 1 4 8 9
Соответственно ответ - 5 и 10
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума
Старый 19.01.2012, 15:48   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Zer0, Вы или ошиблись, или пытаетесь кого-то ввести в заблуждение!

Цитата:
Сообщение от Zer0
Самый длинный фрагмент - 0 -6 1 4 8 9
Цитата:
элементы которого расположены в порядку возрастания.
возрастания. а -6 явно меньше нуля...
ну, достаточно нолик в примере заменить на что нибудь, типа -10, как выделенная последовательность стала возрастающей...
Serge_Bliznykov вне форума
Старый 19.01.2012, 16:44   #6
Oksanka2012
 
Регистрация: 18.01.2012
Сообщений: 6
Подмигивание

Цитата:
Сообщение от Ghost of Night Посмотреть сообщение
что вы подразумевали под словом "фрагмент"?
То есть, если имеем массив:
9 8 7 6 7 8 9 9 1 2 3 2 -1 0 0
То под "упорядоченными за возрастанием фрагментами" я имею в виду
6 7 8 9, 1 2 3 и -1 0.
Из них нужно найти самый длинный фрагмент, определив номер элемента, которым он начинается, и номер элемента, которым он заканчивается.
То есть, 4 и 7.
Правильно понял Zer0
Цитата:
Сообщение от Zer0 Посмотреть сообщение
Для затравочки
6 2 3 1 0 -6 1 4 8 9 3 2 1 2
Самый длинный фрагмент - 0 -6 1 4 8 9
Соответственно ответ - 5 и 10
Просто сделал ошибку: не 0 -6 1 4 8 9, а -6 1 4 8 9.
И ответ не - 5 и 10, а 6 и 10.
Oksanka2012 вне форума
Старый 19.01.2012, 16:58   #7
Oksanka2012
 
Регистрация: 18.01.2012
Сообщений: 6
Хорошо

Честно говоря, сразу же после того, как создала тему, я додумалась и написала программу.
Но мне кажется, что ее можно написать проще.

Вот, посмотрите...
Program sdfm;
const n=15;
var A,C: array[1..n] of real; b,e,i,j,k: integer;
Begin
for i:=1 to n do
begin
____write('A[', i:1, ']=');
____readln(A[i]);
end; writeln;
k:=0;
for i:=1 to n do
begin
____j:=1;
____if A[i]<A[i+1] then
____begin
________C[1]:=A[i];
________while A[i]<A[i+1] do
________begin
____________j:=j+1;
____________C[j]:=A[i+1];
____________i:=i+1;
________end;
________if C[j+1]=0 then
________begin
____________k:=j;
____________b:=i-k+1;
____________e:=i;
________end;
____end;
end;
if b=0 then writeln('Fragment ne naiden') else writeln('b=', b:1, ', e=', e:1);
End.

Последний раз редактировалось Oksanka2012; 19.01.2012 в 17:05.
Oksanka2012 вне форума
Старый 19.01.2012, 19:51   #8
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
const n=15;
var a:array [1..n] of real;
i,im,k,km:integer;
begin
k:=1;
Km:=0;
im:=1;
readln(a[1]);
For i:=2 to n do
begin
readln(a[i]);
if a[i]>a[i-1] then
begin
k:=k+1;
end
else begin
if k>km then begin km:=k;im:=i-k;end;
k:=1;
end;
end;
if k>km then begin km:=k;im:=n-k+1;end;
For i:=1 to n  do
WRite(a[i]:8:3);
writeln;
Writeln('#',im,'#',im+km-1);
end.
Результат

Цитата:
1.000 2.000 3.000 4.000 5.000 6.000 7.000 8.000 9.000 0.000 1.000 2.000 3.000 4.000 5.000
#1#9
Цитата:
1.000 2.000 3.000 4.000 5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000
#1#15
Цитата:
15.000 14.000 13.000 12.000 11.000 10.000 9.000 8.000 7.000 6.000 5.000 4.000 3.000 2.000 1.000
#1#1
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 20.01.2012 в 11:48.
Mad_Cat вне форума
Старый 19.01.2012, 20:23   #9
Ghost of Night
Форумчанин
 
Аватар для Ghost of Night
 
Регистрация: 08.08.2010
Сообщений: 371
По умолчанию

Можно немного сократить код, но при n=15 это не особо повлияет на скорость.
Хакинг - не преступление, а способ выживания.
Ghost of Night вне форума
Старый 20.01.2012, 01:22   #10
Oksanka2012
 
Регистрация: 18.01.2012
Сообщений: 6
Радость

Спасибо вам Mad_Cat.
Но ответ правильный, только когда весь массив упорядоченный по возрастанию, а когда в нем есть меншый фрагмент упорядоченных элементов - программа выводит номера на единицу большие чем нужно. А вот когда такого фрагмента вообще нет - ответ 2 и 2.

Последний раз редактировалось Oksanka2012; 20.01.2012 в 01:52.
Oksanka2012 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
строки в Пскаль LastBreath Помощь студентам 0 12.05.2010 18:56
Помогите с задачей.(Пскаль).по теме программирование алгоритмов разветвляющейся структуры. svobodys Помощь студентам 6 12.10.2008 08:18