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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2012, 16:27   #1
Katus
Форумчанин
 
Регистрация: 30.11.2011
Сообщений: 161
Лампочка Уплотненный массив

дан массив 50 эл-ов. вывести на экран уплотненный массив исключив подряд идущие одинаковые элементы.
очень устал. не выспался и голова болит => не соображаю...

Сдла справки: уплдотненным называется массив не содержащий нулей

=.
Если лень что-то делать, заставь это делать машину ... =,

Последний раз редактировалось Katus; 09.02.2012 в 16:42.
Katus вне форума Ответить с цитированием
Старый 09.02.2012, 18:00   #2
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

Код:
  uses crt;
  const x = 50;
  type mas = array [1..x] of integer;
  var	massiv: mas;
	 j,k,s: byte;

  procedure find(massiv: mas; i: byte; var k: byte);
  begin
    k:=1;
    while massiv [i] = massiv [i+1] do
      begin
	inc (i);
	inc (k);
      end;
  end;

  procedure shift (var massiv: mas; i, k, s: byte);
  var z: byte;
  begin
    z:=0;
    repeat
      massiv [i]:= massiv [i+k];
      inc (i);
      inc (z);
    until s-k = z;
  end;

begin
  clrscr;
  s:= x;
  repeat
    inc (j);
    find (massiv, j, k);
    if k > 1 then 
      begin 
         shift (massiv, j, k, s);
	s:= s - k;
      end;
  until massiv [j] = 0;

  for j:= 1 to s do
    writeln (massiv [j]);
  readln;
end.
k - количество одинаковых подряд идущих символов
s - текущее количество символов в массиве

Должно работать, если что, то сам уже спать хочу...
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С# задан массив 5х5. сформировать массивы А и В. в массив А поместить элементы с четными индексами, в массив В с нечетны Koksa Помощь студентам 0 10.10.2011 11:26
Задан вектор X[20]. Положительные числа переписать в массив Y, а отрицательные в массив W leha_demi Помощь студентам 2 24.09.2011 18:12
Запись координат в массив в реал тайм, Как записать координаты в массив Dark19 Visual C++ 2 21.06.2011 18:45
Из массив А получить массив В, удвоив все нечётные элементы удвоены ( на Pascal) KARTER Помощь студентам 1 18.06.2011 19:58
Массив - Нужно написать массив и распечатать на экран с конца в начало(язык С++) econ Помощь студентам 1 29.05.2011 22:02