![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 02.03.2010
Сообщений: 1
|
![]()
1) Используя любое приложение или программу написать алгоритм сортировки, заданной последовательности чисел. Описание алгоритма: вводится (задаётся) последовательность чисел (целых, неотрицательных, т.е. от 0 и выше) и программа выводит на экран группы (отделённые друг от друга) чисел не повторяющиеся друг с другом, т.е. в отдельно взятой группе все числа должны быть разные – не равные друг другу (кол-во чисел в группе, которые не равны друг другу, должно быть не меньше заданного параметра, т.е. кол-во чисел больше или равно заданному кол-ву). ВАЖНО: Кроме того, в работе алгоритма должно учитываться: при обнаружении группы разных последовательных чисел, поиск новой (группы) последовательности начинается с повторного числа (подробное описание в примере). Числа в группах и сами группы должны идти в той же последовательности, что и в заданной (изначально). Рядом с каждой группой (также выводится на экран) должно быть указанно кол-во чисел в группе. Пример (процесс работы алгоритма): зададим кол-во разных чисел в группе – 15 и введём последовательность чисел -
12, 4, 65, 76, 44, 3, 98, 32, 65, 23, 7 , 10, 59, 4, 88, 13, 37, 88, 5, 38, 0, 9, 13, 3, 92, 84, 76, 70, 14, 63, 79, 19, 41, 90, 14, 70, 67, 82, 16, 70, 5, 33, 36, 33, 17, 25, 27, 54, 99, 32, 47, 69, 96, 42, 77, 88, 10, 47, 42, 10, 39, 50. “Считывание” последовательности чисел начинается с 12 (начало), до повторного числа у нас в группе 8 разных чисел (12, 4, 65, 76, 44, 3, 98, 32), при появление повторного числа 65 “считывание” начинается с 76, т.е. (76, 44, 3, 98, 32, 65, 23 и т. д.), так как (12, 4, 65) уже не могут входить в группу, где 15 чисел разных. Далее, до повторного числа у нас в группе 14 разных чисел (76, 44, 3 …….88, 13, 37), но следующее появляется повторное число 88, и мы начинаем с 13, т.е. (13, 37, 88, 5, 38 и т. д.). Далее аналогично, появляется 13, начинаем с 37, т.е. (37, 88, 5, 38 и т. д.). Так до тех пор, пока условие не будет выполнено (кол-во разных чисел больше или равно 15). Наконец, когда находится группа чисел, удовлетворяющая условию, мы начинаем “считывание” с повторного числа (как указанно в описании алгоритма - ВАЖНО), в данном случае с 14, т.е. (14, 70, 67, 82 и т. д.), а не с 63 (63, 79, 19, 41 и. т. д.). Далее всё по алгоритму, пока не найдём следующую группу – повторное число 70, начинаем с 67 (67, 82, 16, 70, 5 и т. д.), повторное 33 начинаем (36, 33, 17 и т. д.). Находим 2 группу, начинаем уже с 47 (47, 42, 10, 39, 50) и т. д. В итоге машина на экран выводит следующий результат: (37, 88, 5, 38, 2, 9, 13, 3, 92, 84, 76, 70, 14, 63, 79, 19, 41, 90) – 18* (36, 33, 17, 25, 27, 54, 99, 32, 47, 69, 96, 42, 77, 88, 10) – 15* *18 и 15 – количество чисел в группе. (Таким образом, используя эту закономерность, при помощи формул и команд - нужно составить этот алгоритм) ПРИМЕЧАНИЕ: Также необходимо, чтобы при вводе последовательности чисел была доступна команда “вставить”, чтобы можно было скопировать эту последовательность из источника, а не вводить вручную. Кроме того, должен быть доступен ввод 100.000 и более последовательных чисел. Обозначить номер каждой группы (слева). А также присвоить каждому числу в последовательности порядковый номер и в результате выводить рядом с группой чисел порядковый номер первого числа группы. 2) Если вы правильно поняли и составили алгоритм (1), то далее вам нужно его немного модернизировать (усложнить): ввести новый параметр, который тоже задаётся числом. Его функцию объясню на примере: кол-во разных чисел в группе – 15 числовой ограничитель – 3 (новый параметр) Алгоритм нахождения группы чисел остаётся прежним, только когда в процессе “считывания” выявляется группа из N (15) чисел (заданная переменная, см. выше), то следующие числа (16-ое, 17-ое, 18-ое и т. д. - по порядку в группе) сравниваются со всеми кроме первых трёх(числовой ограничитель-3) На пример последовательность – 49, 34, 96, 13, 8......54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 55, 89, 54, 61, 90......и т. д. При “считывании” с 54 по 68 у нас пока формируется группа из 15 разных чисел, далее идёт число 55, если бы числовой ограничитель имел значение 0, то у нас получилась группа из 15 чисел, а так (числ. огран. – 3) первые 3 числа в группе (54, 55, 56) не сравниваются и число 61 является завершающим, машина выдаст на экран: (54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 55, 89, 54) - 18 и. т. д. Подскажите пожалуйста какую хотя бы надо программу использовать при написании алгоритма? Паскаль подойдет? Или что-то другое? Если для вас этот алгоритм - как два пальца обосать, может поможете составить, хотя бы просто обычное нахождение групп?! |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 29.12.2009
Сообщений: 1,166
|
![]()
срок мин. - 2 дня, макс. - неделя - и программа будет готова, язык - любой из описанных ниже (если не важен, выберу сам), о цене можем договориться, писать на мыло
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть] |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
программа по вычислению последовательности чисел | crystalcat | Помощь студентам | 3 | 03.11.2009 22:59 |
Определить k-ую цифру последовательности Фибоначчи и последовательности натуральных чисел. | Med | Помощь студентам | 1 | 20.03.2009 11:40 |
какой язык выбрать для написания игрушки | алге | Помощь студентам | 7 | 09.02.2009 07:56 |
обмен чисел последовательности | maziLa | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 09.12.2008 00:15 |
вычисление суммы чисел, кратных 3 из последовательности, состоящей из 10 чисел, заранее заданных | Белка | Помощь студентам | 3 | 27.10.2007 11:53 |