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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2010, 16:41   #1
BaronVik
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 36
Сообщение Группа в одномерном массиве

Создать одномерный массив А длинной n.
Ввести числа с клавиатуры и переписать в начало массива группу,содержащую наибольшее число подряд идущих положительных чисел,т.е. например:

1 2 -4 1 -5 9 -3 2 5 -10 96 -2 1 6 8 5 6 -3 -4 -6 -7 -3 -2 -4 -6 -5 -3 8
наибольшая группа положительных элементов в этом массиве 1 6 8 5 6,получаем
1 6 8 5 6 1 2 -4 1 -5 9 -3 2 5 -10 96 -2 -3 -4 -6 -7 -3 -2 -4 -6 -5 -3 8

Всем заранее спасибо за оказанную помощь
BaronVik вне форума Ответить с цитированием
Старый 20.10.2010, 17:05   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Покажи как вводишь массив.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.10.2010, 18:46   #3
BaronVik
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 36
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Покажи как вводишь массив.
uses crt;
const n=10;
var i:integer;
a: array[1..n] of integer;
Begin
write('Vvedite zna4enie massiva: ');
for i:=1 to n do
read(a[i]);
end.

Я сделал так,но хотел чтобы n задавалась человеком.Не получается так сделать,пишет ошибку
BaronVik вне форума Ответить с цитированием
Старый 20.10.2010, 19:13   #4
DRAgon™
Форумчанин
 
Аватар для DRAgon™
 
Регистрация: 14.03.2010
Сообщений: 362
По умолчанию

uses crt;
uses crt;
const n=1000;
var i:integer;
a: array[1..n] of integer;
var n1:integer;
Begin
writeln('Vvedite zna4enie massiva: ');
readln(n1);
writeln('Vvedite V massiv: ');
for i:=1 to n1 do
readln(a[i]);
end.

Я сделал так,но хотел чтобы n задавалась человеком.Не получается так сделать,пишет ошибку[/QUOTE]
Чем больше моя слава, тем я больше тупею; и таково, несомненно, общее правило.(А.Эйнштейн)
DRAgon™ вне форума Ответить с цитированием
Старый 20.10.2010, 22:57   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

BaronVik
а скажите, какую помощь Вы ожидаете?
Полностью готовый код? Или описание алгоритма?
И ещё, Ваша задача чётко делится на несколько частей:
ввод данных
поиск самой длинной последовательности
перенос последовательности в начало
вывод полученного массива

Какая из частей Вам неясна?

p.s. для затравки вот пример кода, который находит самую длинную последовательность в массиве:
Код:
uses CRT;
const n = 100;
var
  i, n1, max, k, max_index : integer;

  a : array[1..n] of integer;

begin
  Randomize;
  n1 := 10;
  for i :=1 to n1 do a[i] := Random(15)-5;


  {вывести массив на экран}
  WriteLn;
  for i :=1 to n1 do Write(a[i]:1,' ');
  WriteLn;


  {собственно поиск самой длинной последовательности}
  max := 0;
  k := 0;
  for i := 1 to n1 do begin
    if a[i] >= 0 then inc(k)
    else
      begin
       if (k > max) then
         begin
           max := k;
           max_index := i - k;
         end;
       k := 0;
     end;
  end;

  {а это проверка, если самая длинная
      последовательность завершает строку}
  if (k > max) then begin 
     max := k;
     max_index := n1 - k + 1;
  end;

  if max=0 then WriteLn('Ничего найти ва-аа-аще не удалось!')
  else 
     WriteLn('Самая длинная последовательность длиной ',max:1,
                ' начинается с позиции ', max_index:1);

  Readln;

end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.10.2010, 05:58   #6
BaronVik
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 36
По умолчанию

Мне нужен был алгоритм поиска самой длинной последовательности. Спс за помощь
BaronVik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В одномерном массиве, состоящем из n элементов вычислить Rusat Помощь студентам 2 09.03.2010 17:04
Замена данных в одномерном массиве Jaroslav Microsoft Office Excel 2 09.06.2009 08:25
Нужно программу написать в одномерном массиве!!! Fylhtq Паскаль, Turbo Pascal, PascalABC.NET 8 03.06.2009 12:47
Поиск в одномерном массиве Joxter Помощь студентам 6 13.12.2008 14:19
Колличество четных элементов в одномерном массиве forsy Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 21.05.2008 15:01