Помощь - Поиск - Пользователи - Календарь
Полная версия: Сортировка записей
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
pank
Подскажите, пожалуйста, есть данные об автомобилях, технические характеристики (название, мощность, скорость, масса, вид кузова, рабочий объем цилиндра), цена. Нужно напечатать таблицу, расположив модели в порядке невозрастания мощности.
Я тут что - то написала, но думается мне такой вариант не пройдет.
Помогите, а...
klem4
В следующий раз пользуйся поиском и смотри FAQ

FAQ : как упорядочить массив записей по одному из параметров

Что не получится, спрашивай
pank
Огромное СПАСИБО!
Чмок - чмок - чмок.
Myasnik
что-то я FAQ всё облазил и не нашёл... такой вот мега простой вопрос:
вводим числа, не массив, а проста числа. и сортируем их по убыванию! как ж написать? если был бы массив - нет проблем, но без массива чота не могу догнать. wacko.gif
volvo
А, прости за глупый вопрос, КУДА ты вводишь числа? В космос? Ты обязан обеспечить хранилище для данных, правда? Вот и расскажи, ГДЕ у тебя данные хранятся...
Myasnik
Цитата(volvo @ 26.01.2006 1:41) *

А, прости за глупый вопрос, КУДА ты вводишь числа? В космос? Ты обязан обеспечить хранилище для данных, правда? Вот и расскажи, ГДЕ у тебя данные хранятся...

не в космос, а в программу blum.gif
Вот короч условие - прога вводит числа и после сортировки по убыванию выводит их на экран.
если это делается через одномерный массив - пристрелите меня. wacko.gif lol.gif
volvo
А "в программу" это куда? МЕСТО для данных ты отвел?

Так что, лучше сам: mega_chok.gif , это делается именно через массив... Ну, можно конечно и поизвращаться со списками разными, если охота smile.gif
Myasnik
гыгыгы =) пасиб. лучше через массив. гимор мне не нужен ибо он скоро появится и такие задачи у меня будут....ыыыы ypriamii.gif wacko.gif wacko.gif wacko.gif
Lapp
Цитата(Myasnik @ 26.01.2006 1:53) *

не в космос, а в программу blum.gif

Программа, как известно всем (почти smile.gif ), это алгоритмы+данные. Данные хранятся в специализированных структурах. Массив - одна из них, в некоторм смысле простейшая (если забыть про банальные скаляры). Именно об этом тебя спрашивал Волво. Ты бы еще сказал - в клавиатуру.. smile.gif. Вспомнился случай еще со школы.. Учительница физики нас спрашивает: "в чем измеряется температура?" Светка А. отвечает: "в градусниках!" smile.gif smile.gif smile.gif
Цитата(Myasnik @ 26.01.2006 1:53) *

если это делается через одномерный массив - пристрелите меня. wacko.gif lol.gif

Я только покажу один пример. Может, ты знаешь, что в командной строке (DOS) есть команда для сортировки строк файла? Вот пойди в командную строку и набери:
help sort <enter>
видишь? Эта сортировка использует большую память, и даже можно указать ей, сколько нужно использовать. Для чего, как ты думаешь? ага, для массива smile.gif. Более того, она даже пишет временные файлы на диск, если нужно..
Короче, это действие (сортировка) кажется простым, но на деле это совсем не так. Простые алгоритмы сортировки жрут много и времени, и ресурсов. Алгоритмов довольно много. У Кнута объемистая глава посвящена сортировке, если я не ошибаюсь. Да и не только у него.. Вот ты попробуй сам отсортировать что-нить ручками. Например, сд-диски на полке.. smile.gif
Myasnik
Ребят, спасите, мозк отказал нириально в такой простой моей задачке. не могу задачку решить. mega_chok.gif wacko.gif wacko.gif wacko.gif совсем крыша съехала...
плиз, выручите меня. стыдно просить чтоб решили такую простую задачу, но её 5 человек не смогли написать, которые рубят нормально в паскале wacko.gif
Myasnik
Цитата(klem4 @ 26.01.2006 21:14) *

я уже обсмотрелся в этой ветки фиг знает скока часов, но составить рабочую задачу так и не получилось. unsure.gif

даже в наглую скопировал из FAQ, но задача не работает.
Цитата


Type
arrType = Array[1 .. 10] Of Integer;
Procedure Bubble(Var ar: arrType; n: integer);
Var i, j, T: Integer;
Begin
For i := 1 To 10 Do
For j := n DownTo i-1 Do
If ar[Pred(j)] > ar[j] Then { < }
Begin
T := ar[Pred(j)]; ar[Pred(j)] := ar[j]; ar[j] := T
End;
End.
volvo
А ЭТА задача в таком виде и не заработает... Ты же данные для сортировки не передаешь...

А вот так:
Type
arrType = Array[1 .. 10] Of Integer;

Procedure Bubble(Var ar: arrType; n: integer);
Var i, j, T: Integer;
Begin
For i := 1 To n Do
For j := n DownTo i+1 Do
If ar[Pred(j)] > ar[j] Then Begin
T := ar[Pred(j)]; ar[Pred(j)] := ar[j]; ar[j] := T
End;
End;

const
A: arrType = (9, 3, 5, 7, 2, 6, 3, 12, 15, 11);
var
i: integer;

begin
Writeln('До:');
for i := 1 to 10 do write(A[i]:4);
Writeln;

Bubble(A, 10);

Writeln('После:');
for i := 1 to 10 do write(A[i]:4);
Writeln;
end.

?

P.S. Я бы попросил НИЧЕГО не менять в программах из FAQ... Они достаточно много тестируются, чтобы не содержать ошибок. Если хочешь гарантированно получать тот результат, о котором мы говорим - копируй программу БУКВА В БУКВУ...
Myasnik
Спасибо, выручил. Исправил знак и считает теперь как нада! good.gif smile.gif smile.gif smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.