IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача на тему "Сортировки", Ребята, помогите сделать задание...
Garis
сообщение 6.10.2005 13:33
Сообщение #1


Гость






Ребята, всем доброго времени суток!
Прошу вашей помощи, т.к. сам с Паскалём можно сказать не работал (переписывал задачки с доски и всё). В общем мне дали задание, написать программу со всеми пояснениями и составить к ней схему алгоритма… Для меня это вообще что-то не реальное…(( Помогите, пожалуйста, кто чем может..)) Книжки читать времени совсем нету, а задание уже скоро сдавать.
Вот собственно само задание (оно по теме «Сортировки»):
Дана последовательность из «N» целых чисел, содержащая положительные, отрицательные числа и нули.
Получить три последовательности содержащие только отрицательные числа, только нули и только положительные числа в порядке их следования в исходной.
Ранжировать полученные последовательности по возрастанию и напечатать друг под другом с пояснениями.
Задокументировать исходную последовательность.

Вот такое заданьеце….((
теперь о том что я понимаю: т.е. задан массив, из него нужно сделать выборку, а затем эту выборку(три последовательности) разместить по возрастанию.

Заранее вам огромное спасибо!
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 6.10.2005 13:42
Сообщение #2


Гость






Ну, значит, так:
1. Проходишь по всему первоначальному массиву и делаешь следующее:
Var
arr: array[1 .. N] of integer; { сам исходный массив }

{ буферы для хранения полож. (positive) и отриц. (negative) чисел }
positive, negative: Array[1 .. N] of integer;

{ счетчики полож., отриц., и нулевых чисел }
i_pos, i_neg, i_zero: integer;
begin
...
{
устанавливаем счетчики всех последовательностей,
которые будем искать, в 0
}
i_pos := 0; i_neg := 0; i_zero := 0;

for i := 1 to N do { идем по всему исходному массиву }

if arr[i] < 0 then begin { число отрицательное ? }
{ увеличиваем счетчик отр. чисел и записываем само число в буфер }
inc(i_neg); negative[i_neg] := arr[i];
end
else
{ число = 0 ? }
if arr[i] = 0 then inc(i_zero) { просто увеличиваем число нулей }
else begin { число положительное ? }
{ увеличиваем счетчик полож. чисел и записываем само число в буфер }
inc(i_pos); positive[i_pos] := arr[i];
end;
...
end.

2. А потом полученные массивы positive и negative сортируешь любым способом, который есть здесь: FAQ: Методы сортировки
(нули сортировать не надо, для того, чтобы их вывести на печать достаточно просто знать их количество)
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 10:53
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"