Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 02.01.2012, 11:44   #1
maxwel6064
Пользователь
 
Регистрация: 24.03.2011
Сообщений: 28
По умолчанию Не сложная задача

Всем привет. Нужна ваша помощь в решении задачи на паскале. Вот условие:

Дана n последовательность натуральных 2-значных чисел. Ее нужно расположить таким образом: первые должны быть те числа, которые оканчиваются нулем, затем те, которые заканчиваются единицей и т.д. Например, у нас дано, что n=10; дана последовательность 58,98,24,54,18,28,64,25,26,12. Должен получиться такой результат:
12,24,54,64,25,26,18,28,58,98.

Заранее благодарен за помощь.
maxwel6064 вне форума
Старый 02.01.2012, 13:56   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Предлагается такой алгоритм:
1. Сортируем весь массив по возрастанию единиц - a[i] MOD 10.
2. Сортируем массив по группе членов с одинаковым значением единиц.

1. Сортировка методом выбора:
Код:
for i :=1 to n-1 do begin  {просматриваем массив}
   nmin := i;                   
   for j := i+1 to n do       {ищем мин. элем. в оставшейся части массива}
      if ((a[j] mod 10) < (a[nmin] mod 10)) then {единицы найденного числа меньше}
         nmin := j;        {сохраним номер элемента массива}
      buf := a[i];         {переставим элементы массива местами}
      a[i] := a[nmin];
      a[nmin] := buf;
end;
После такой обработки получим массив, упорядоченный по значению единиц.

2. Далее пробуйте сами ...
Как-то так, ...
ViktorR вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложная задача! Pashok6 Паскаль, Turbo Pascal, PascalABC.NET 10 02.01.2012 00:03
Сложная задача(( альбертоо Паскаль, Turbo Pascal, PascalABC.NET 1 07.12.2011 16:57
сложная задача!( sergsergserg Помощь студентам 1 09.11.2011 18:47
Сложная задача. ВДПУ Помощь студентам 4 07.11.2011 22:34
сложная задача ugradvizhok Помощь студентам 1 30.03.2011 23:30