Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Сортировка массива

Автор: alena 16.05.2007 21:05

у меня задание упорядочить по не убыванию массив, содержащий 15 вещественных чисел
прога есть, но почемуто не прально работает, можете помочь, пожалуйста.


Прикрепленные файлы
Прикрепленный файл  ZADMASSM.PAS ( 554 байт ) Кол-во скачиваний: 265

Автор: Rom1k 16.05.2007 21:11

т.е задание такое:
дан одномерный массив,упорядочить его по возрастанию?!

Автор: volvo 16.05.2007 21:15

Rom1k, с терминами поаккуратнее... Возрастание, и НЕубывание - разные вещи...

Автор: Rom1k 16.05.2007 21:41

я просто спросил у неё,как надо
.Я даже не знаю,что такое по НЕубыванию.
Если бы она объяснила на примере,возможно бы я понял...

Автор: alena 16.05.2007 22:03

Rom1k
в душе не знаю, задание именно так и звучит: упорядочить по неубыванию

Автор: volvo 16.05.2007 22:29

Rom1k, по неубыванию - это когда i+1-ый элемент массива НЕ меньше, чем i-ый. То есть он может быть равен, но меньше быть не может... Вот то, что отмечено курсивом - как раз и есть разница между неубыванием и возрастанием...

Автор: alena 16.05.2007 22:38

[code]Так у меня правильно задача составлена или нет? помойму он не правильно сортирует данные...помогите разобраться

Автор: -alena- 16.05.2007 22:41

"упорядочить по неубыванию массив, содержащий 15 вещественных чисел" - так сформулирована задача. Я если честно учу паскаль всего лишь месяц и не знаю как делать. Помогите пожалуйста! сроки поджимают....

Автор: alena 16.05.2007 23:01

Народ, помогите пожалуйста, я уже все перепробовала, в чем у меня ошибка? Лаба горит!

Автор: мисс_граффити 17.05.2007 3:35

1. Она не компилируется ;)
2. Вообще не поняла твой алгоритм. Поищи по форуму (хоть сортировку пузырьком - самое простое).

Автор: Lapp 17.05.2007 7:24

Цитата(alena @ 16.05.2007 20:01) *

в чем у меня ошибка?

Ты делаешь совсем не то. Ты проходишь по массиву, собираешь все его отрицательные элементы в массив b, а все неотрицательные - в массив c. А потом ты обратно закладываешь это в массив a (не совсем точно сказал - не закладываешь, а пытаешься закладывать, так как ты это делаешь с ошибками). При этом порядок следования как отрицательных, так и неотрицательных - сохраняется. Единственное "продвижение вперед" - это то, что отрицательные все же будут впереди положительных - не так уж много пользы, особенно если в массиве все элементы случатся одного знака.. smile.gif

В разделе Задачи есть подраздел FAQ. Там есть тема про сортировку, вот прямая ссылка на нее: http://forum.pascal.net.ru/index.php?showtopic=3065. Зайди и посмотри теорию. Что касается практики, то я сделал тебе простейшую сортировку пузырьком (про что говорила мисс_граффити) - разберись с кодом. Спрашивай, что непонятно.
var
a:array [1..15] of integer;
b,i, j, k:integer;

begin
randomize;
for i:=1 to 15 do begin
a[i]:=random(15)-8;
end;
WriteLn('Исходный массив:');
for i:=1 to 15 do write (a[i]:4);
WriteLn;
for j:=1 to 14 do for i:=14 downto j do if a[i]>a[i+1] then begin
b:=a[i];
a[i]:=a[i+1];
a[i+1]:=b
end;
WriteLn('Отсортированный массив:');
for i:=1 to 15 do write (a[i]:4);
readln;
end.