Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подстановка в массиве 
:(
    Опции темы
kent
Дата 15.7.2005, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 6.5.2005
Где: Russia

Репутация: нет
Всего: 1



Помогите решить задачу...
Дан массив размера N. Преобразовать его, вставив перед|после каждого
положительного|отрицательного элемента нулевой элемент.
Попытался решить (перед положительными), вот что пока получается:
Код

uses crt;
var a:array [1..1000] of Integer;
    temp:array [1..1000] of Integer;
    N,i,l:Integer;
begin
     Clrscr;
     Write('Input N:');
     ReadLn(N);
     Write('Input array N:');
     l:=0;
     for i:=1 to N do begin
        Read(a[i]);
        if (a[i]>0) then begin
          inc(l);{Количество положительных}
          temp[i]:=i;{Запоминаем индексы положительных элем-тов}
        end;
     end;

Дальше судя по всему нужно на место a[temp[i]], подставить нули а сами элементы сдвинуть, массив при этом увеличится на l элементов, но как это сделать я не знаю....
Или может вообще как то по другому надо делать?

Это сообщение отредактировал(а) kent - 15.7.2005, 16:41
PM MAIL ICQ   Вверх
volvo877
Дата 15.7.2005, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Перед положительными:
Код
uses Crt;
var
  X, a:array [1..1000] of Integer;
  i, index_a, N: integer;
begin
  Clrscr;
  Write('Input N:'); ReadLn(N);
  Write('Input array N:'); index_a := 0;
  for i:=1 to N do begin
    Read(X);
    if X > 0 Then begin
      inc(index_a); a[index_a] := 0; {0 перед элементом}
    end;
    inc(index_a); a[index_a] := X; {сам элемент}
  end;
end.

PM MAIL   Вверх
kent
Дата 15.7.2005, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 6.5.2005
Где: Russia

Репутация: нет
Всего: 1



volvo877, большущее тебе спасибо!

Вот доделал второй вариант:
Код

uses crt;
var a:array [1..1000] of Integer;
    b:array [1..1000] of Integer;
    X,i,N:Integer;
    index_1,index_2:Integer;
    all_1,all_2:Integer;
begin
     Clrscr;
     Write('Input N:');
     ReadLn(N);
     Write('Input array N:');
     index_1:=0; index_2:=0;
     for i:=1 to N do begin
        Read(X);
        if X>0 then begin
          inc(index_1); a[index_1]:=0;
        end;
        inc(index_2); b[index_2]:=X;
        if X<0 then begin
          inc(index_2); b[index_2]:=0;
        end;
        inc(index_1); a[index_1]:=X;
     end;
     all_1:=index_1;
     all_2:=index_2;
     for index_1:=1 to all_1 do begin
        Write(a[index_1],' ');
     end;
     WriteLn;
     for index_2:=1 to all_2 do begin
        Write(b[index_2],' ');
     end;
     Readkey;
end.

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0418 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.