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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2008, 22:11   #1
Sirega
Пользователь
 
Регистрация: 23.11.2008
Сообщений: 30
По умолчанию Одномерный массив

Пожалуйста, помогите написать прогу на задачу.
Дан одномерный массив состоящий из целых чисел. Вставить число Т перед и после всех элементов, который заканчиваются на данную цифру.
Заранее спасибо!
Sirega вне форума Ответить с цитированием
Старый 26.11.2008, 18:17   #2
Sirega
Пользователь
 
Регистрация: 23.11.2008
Сообщений: 30
По умолчанию

Помогите плиз! А то скоро сдача, а моих "познаний", чтобы набрать прогу - не хватает(((
Sirega вне форума Ответить с цитированием
Старый 26.11.2008, 18:40   #3
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

А в чем трудность? В цикле по I просматриваем все элементы массива, если последняя цифра (a mod 10) = нужной - вставляем T в массив в позицию I - 1 и I + 1.
Дополнительно надо рассмотреть случае, если I = 1 или I = последний элемент массива.
Удачи!
Arigato на форуме Ответить с цитированием
Старый 26.11.2008, 21:41   #4
Sirega
Пользователь
 
Регистрация: 23.11.2008
Сообщений: 30
По умолчанию

Спасибо, но у меня чот не сходится( Может я тебя не так понял....
вот
i:=1;
while i<=nn do
begin if a[i]=m then
begin
for j:=nn Downto i Do
a[j+1]:=a[j];
a[i]:=T;
n:=n+1;
i:=i+1;
end;
begin
for j:=nn Downto i+1 Do
a[j+1]:=a[j];
a[i+1]:=T;
n:=n+1;
i:=i+1;
end;
i:=i+1;
end;
Sirega вне форума Ответить с цитированием
Старый 27.11.2008, 07:11   #5
lexus_ilia
Студентик :)
Пользователь
 
Аватар для lexus_ilia
 
Регистрация: 29.09.2008
Сообщений: 84
По умолчанию

Arigato, вы немного не правы, т.к. надо не просто вставить элемент, а сдвинув все элементы на 1-ин вставить элемент, а это уже намного интереснее, т.к. например нашли мы наше число которое имеет позицию, ну например 5, значит, берём весь массив начиная с 5-ти и перемещаем на 1-цу вперёд (начинать предлагаю с конца), т.е. n-ый станет на место n+1, n-1 -ый на место n-го, так и образуем так сказать "дыру" в массиве, потом вставляем в эту "дыру" значение которе надо, потом надо так же сдвигать элементы, начиная уже с 7-го, т.к. на 5-ом наше число которое мы вставили, а на 6-ом то которое мы нашли, после того как сдвинули, вставляем наше число и продолжаем проверку изменив значаение (i-используется как позици обычно) на i+2, вот так вот...

Последний раз редактировалось lexus_ilia; 27.11.2008 в 07:14.
lexus_ilia вне форума Ответить с цитированием
Старый 27.11.2008, 07:31   #6
lexus_ilia
Студентик :)
Пользователь
 
Аватар для lexus_ilia
 
Регистрация: 29.09.2008
Сообщений: 84
По умолчанию

Короче лови...
Код:
Program xa;
const
 max=100;
var
 a:array[1..max] of integer;
 i,n,k,l,t,j:integer;
begin
 Writeln('BBedute KoLu4ectBo eleMeHToB');
 Readln(n);
 Writeln('BBedute Camu eleMeHTbl');
 for i:=1 to n do
 begin
  Write('A[' ,i, ']=');
  readln(a[i]);
 end;
 Writeln('BBedute L/uFPy');
 Readln(k);
 Writeln('BBedute BctaBl9Emoe 4uClo T');
 readln(t);
 Writeln('MaccuB do u3MeHeHUu');
 for i:=1 to n do
  write(a[i], ' ');
 readln;
 i:=1;
 while i<=n do
 begin
  if a[i] mod 10=k then
  begin
   for j:=n+1 downto i+1 do
    a[j]:=a[j-1];
   a[i]:=t;
   inc(n);
   for j:=n+1 downto i+3 do
    a[j]:=a[j-1];
    inc(n);
    a[i+2]:=t;
    inc(i,2);
   end
  else
   inc(i);
  end;
 Writeln('noLy4uBLLIeUc9 maccuB');
 for i:=1 to n do
  Write(a[i], ' ');
 readln
end.
lexus_ilia вне форума Ответить с цитированием
Старый 27.11.2008, 21:21   #7
Sirega
Пользователь
 
Регистрация: 23.11.2008
Сообщений: 30
По умолчанию

Спасибо большое!!! реально помог очень))))
Sirega вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
одномерный массив ldx Паскаль, Turbo Pascal, PascalABC.NET 4 06.06.2008 17:45
одномерный массив fatdog Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 23.02.2008 10:05
#Delhpi Одномерный массив forumu Помощь студентам 7 20.12.2007 22:36
Массив Одномерный flait111 Помощь студентам 3 15.12.2007 14:08
Одномерный массив SkyDreamer Помощь студентам 1 01.12.2007 21:22