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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2012, 22:16   #21
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

а с какой ошибкой?
temaps у вас все восьмиклассники решают задачу не читая задания?
здорово, что сказать!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303

Последний раз редактировалось Hacker19_90; 17.04.2012 в 22:19.
Hacker19_90 вне форума Ответить с цитированием
Старый 17.04.2012, 22:21   #22
temaps
Форумчанин
 
Регистрация: 15.05.2011
Сообщений: 160
По умолчанию

Я просто похожую сюда скопировал. удаление отрицательных ещё проще, чем одинаковых. Сейчас напишу
temaps вне форума Ответить с цитированием
Старый 17.04.2012, 22:24   #23
temaps
Форумчанин
 
Регистрация: 15.05.2011
Сообщений: 160
По умолчанию

Если до сортировки:
Код:
i:=1;
while i<=n then
begin
  if a[i]<0 then
  begin
  for j:=i to n-1 do a[j]:=a[j+1];
  n:=n-1;
  end
else
  i:=i+1;
Если после сортировки:
Код:
while a[1]<0 do
begin
  for j:=1 to n-1 do a[j]:=a[j+1];
  n:=n-1;
  if n=0 then break;
end;

Последний раз редактировалось temaps; 17.04.2012 в 22:27.
temaps вне форума Ответить с цитированием
Старый 17.04.2012, 22:24   #24
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

ну пишите! Если делать не чего!
лучше б сказали почему и с какой ошибкой вылетает программа с моим кодом?
Было бы куда полезнее!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 17.04.2012, 22:28   #25
mad_ded
Пользователь
 
Регистрация: 05.01.2012
Сообщений: 28
По умолчанию

я этого не проходил вот проблема((
а так все получилось спс большое завтра задам учителю вопросы и спрошу то что не понял и все будет ОК))

Последний раз редактировалось mad_ded; 17.04.2012 в 22:33.
mad_ded вне форума Ответить с цитированием
Старый 17.04.2012, 22:31   #26
temaps
Форумчанин
 
Регистрация: 15.05.2011
Сообщений: 160
По умолчанию

Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
ну пишите! Если делать не чего!
лучше б сказали почему и с какой ошибкой вылетает программа с моим кодом?
Было бы куда полезнее!
Это его программа с ошибкой вылетает. Лень даже смотреть. У меня, если ввести верхнюю границу диапазона, например, 10, то вылетает если верхняя граница 5, то нет. Почему - это уже вообще разбираться первоклашкам.
temaps вне форума Ответить с цитированием
Старый 17.04.2012, 22:35   #27
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Почему - это уже вообще разбираться первоклашкам.
ну да да!

Короче mad_ded
Вылетает она из-за вот этой строчки
Цитата:
Код:
for i:=1 to n do
write(a[m]);
readkey;
меняйте
на
Код:
for i:=1 to n do
write(a[i]:5);
readkey;
и внимательнее!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 17.04.2012, 22:43   #28
temaps
Форумчанин
 
Регистрация: 15.05.2011
Сообщений: 160
По умолчанию

Цитата:
Сообщение от mad_ded Посмотреть сообщение
я этого не проходил вот проблема((
а так все получилось спс большое завтра задам учителю вопросы и спрошу то что не понял и все будет ОК))
А ты в каком классе, если не секрет?
ЗЫ
Кстати, так как сделал уважаемый Hacker19_90, делать более правильно - это работает намного быстрее ибо это не в лоб :-) (сразу внимание не обратил):
Код:
repeat
  isFound := false;
  for i := 1 to n do 
    if a[i] < 0 then
    begin
      isFound := true;
      temp := a[i]
      a[i] := a[n]
      a[n] := temp;
      Dec(n);
      break;
    end;
until isFound = false;
Но я бы сделал так:
Код:
i:=1;
while i<=n do
begin
    if a[i] < 0 then
    begin
      p := a[i]
      a[i] := a[n]
      a[n] := p;
      Dec(n); {это эквивалентно n:=n-1;, но dec и inc работают намного быстрее}
    end
else
  inc(i);
end;

Последний раз редактировалось temaps; 17.04.2012 в 22:51.
temaps вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Методы сортировки и поиска juliya3 Помощь студентам 1 15.11.2011 00:07
Массивы методы сортировки kop Общие вопросы C/C++ 6 15.06.2011 12:08
Методы сортировки массивов!!! >>arty<< Помощь студентам 2 20.01.2010 18:39
Методы сортировки. Teddy Помощь студентам 1 16.10.2008 19:08