Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Центр помощи > [C++] Задание с массивом(простое) |
Автор: inflex 11.10.2011, 14:46 |
Препод задал следующую задачу для С++ (Turbo C). Вроде сказал что простоя, но я в этом не шарю ![]() Задача следующая: 1. Объявляется одномерный массив целого типа не менее 15.Этот Массив необходимо заполнить с помощью генератора случайных чисел.Информация в массиве сортируется методом пузырька. (Желательно не пользоваться дополнительными массивами) Вот и всё как бэ задание. Заранее благодарю столь доброго человека кто поможет решить сие чудо...Если можно, скиньте кто решит программу и код. ![]() Желательно до завтрашнего утра помогите |
Автор: Al47 11.10.2011, 14:56 |
Так турбо си или си плюс плюс? |
Автор: Al47 11.10.2011, 15:44 |
Вот пример на VC++: http://sourceforce.ru/programmirovanie/c-c-c-java/c-metod-puzyrka/ В зависимости от среды что-то может быть другому, но суть одна. |
Автор: inflex 11.10.2011, 16:15 |
Наверно всё-таки Turbo C, а какое различие между ними? |
Автор: Al47 11.10.2011, 16:24 |
Если именно без плюсов, то это разные языки программирования, примирительно к моему примеру необходимо переделать вывод информации на экран, справитесь? Добавлено через 1 минуту и 51 секунду Да и ещё переменные в for() нельзя определять, придется где-то выше определять i и j. Если дадите ссылку на Вашу среду могу переделать пример для неё. |
Автор: inflex 11.10.2011, 16:29 | ||
Вставил след. код [code=nocolor]
Выдало вот это: http://s1.ipicture.ru/Gallery/Viewfull/6292081.html Это является правильным решением подскажите? |
Автор: Al47 11.10.2011, 16:35 |
Собственно говоря - да, был сгенирирован массив из случайных чисел и отсортирован по возрастанию. |
Автор: inflex 11.10.2011, 16:36 |
Спасибо за помощь) ![]() |
Автор: Al47 11.10.2011, 16:40 |
inflex, пожалуйста, обращайтесь. |
Автор: inflex 23.10.2011, 19:11 |
Извиняюсь, но забыл упомянуть следующий нюанс задания который забыл, нечётные числа отсортировать по возрастанию, а чётные по убыванию...а тут в программе по возрастанию вроде сортирует все только...Помогите ещё разок |
Автор: Al47 23.10.2011, 21:41 | ||
inflex, тут можно небольшую хитрость применить, сначала четные числа умножим на -1, а после сортировки умножим снова. ![]()
|
Автор: Al47 24.10.2011, 09:14 | ||||
Если посмотреть на генерацию чисел, то можно увидеть, что отрицательные там не получатся. Но пусть придет TC и скажет нужны ли ему отрицательные числа. ![]() |
Автор: Dov 24.10.2011, 14:13 |
Al47, дело в том, что алгоритм не должен зависеть от прихоти пользователя. Он должен работать с любыми числами. А пользователь потом будет генерировать числа в зависимости от своих нужд и потребностей. Это к алгоритму не должно относится. Возможно, что завтра кому-то понадабятся и отрицательные числа в массиве, так ты будешь всё переделывать? ![]() |
Автор: Al47 24.10.2011, 15:32 |
Dov, переделывать не много, и в общем есть же такая вещь как оптимизация алгоритма для конкретного случая. Я рассмотрел одних из возможных путей развития событий, если задача TC не входит в эти условия, помогу переделать по-другому. ![]() |
Автор: inflex 24.10.2011, 16:20 |
Спасибо за решение таким путём, думаю что решение подходит(т.к. взяты положительные числа). Если не составит труда, покажите ещё как можно составить алгоритм сортировки не зависящий от положительных/отрицательных значений в массиве. ![]() |
Автор: Al47 24.10.2011, 18:57 | ||
inflex, полностью писать и проверять не стану, если в данный момент нет нужны, но можно использовать конструкцию, на подобии этой:
Меняя условия и знаки в зависимости от условий, правда результат будет несколько иным нежели в предыдущем примере... Что бы отсортировать так же как там, на вскидку приходить решение только с дополнительными массивами. |
Автор: inflex 26.10.2011, 11:06 |
Добрый день. Теперь препод задал такой вопрос: а для чего мы домножаем на -1??? Как я не пытался на него ответить не получилось.Подскажите как правильно сформулировать ответ и что в нём сказать. |
Автор: Al47 27.10.2011, 15:31 |
inflex, для того что бы они сортировались в обратном порядке, например имея последовательность 4 6 2, наш алгоритм отсортировал бы их по возрастанию 2 4 6, если же умножить на -1: -4 -6 -2, тогда тот же алгоритм отсортирует следующим -6 -4 -2 (то же по возрастанию), но умножив обратно мы получим нашу первоначальную последовательно отсортированную по убыванию 6 4 2. |