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

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

Форум «Всё о Паскале» _ Задачи _ Помогите решитб задачу

Автор: Андревка 16.05.2014 13:23

Здравствуйте форумчане. Попалась такая задача, помогите разобраться.

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

Автор: Федосеев Павел 16.05.2014 23:14

Покажи, что ты вообще знаешь.
Покажи, как ты сортируешь хоть один массив.
Для сортировки одновременно трёх - можно попробовать такой метод


.............................
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.


Если это получится, можешь попробовать улучшение - при сортировке перемещать не элементы массива, а значения в дополнительном массиве сортированных индексов.

Автор: Андревка 19.05.2014 12:02

Спасибо за ответ! Я пытался решить эту задачу без процедуры, путем простого выбора одномерных массивов.