Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите решитб задачу
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Андревка
Здравствуйте форумчане. Попалась такая задача, помогите разобраться.

Заданы три строковых массива a,b,c- фамилия имя отчество. Необходимо отсортировать массивы либо по Имени либо по Фамилии или Отчеству. Вывести оба массива.
Федосеев Павел
Покажи, что ты вообще знаешь.
Покажи, как ты сортируешь хоть один массив.
Для сортировки одновременно трёх - можно попробовать такой метод

.............................
procedure sort(var m: TMass; - это массив, по которому будет сортировка
var a, b: TMass); - над этими массивами будет проводится синхронная с m сортировка
...................................................
begin
...................
if надо переставить элементы массива then
begin
exchange(m[i], m[j]); - это нужно по логике сортировки

{синхронно переставляем элементы в других массивах}
exchange(a[i], a[j]);
exchange(b[i], b[j]);
end;
...................
end;

begin
sort(a, b, c); - сортировка по имени
sort(b, a, c); - сортировка по отчеству
sort(c, a, b); - сортировка по фамилии
end.


Если это получится, можешь попробовать улучшение - при сортировке перемещать не элементы массива, а значения в дополнительном массиве сортированных индексов.
Андревка
Спасибо за ответ! Я пытался решить эту задачу без процедуры, путем простого выбора одномерных массивов.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.