Заблокирован
|
||||||
1 | ||||||
Перестановка элементов массива18.04.2014, 17:39. Показов 1603. Ответов 5
Метки нет (Все метки)
Я уже порешал немало задач на QBasic
И обратил внимание на некоторые ошибки, которые делаются в силу недостаточных знаний о QBasic. Приведу лишь некоторые. 1) перестановка элементов массива Вам не удастся так просто переставить элементы массива в цикле если вы не позовете на помощь другой массив. Привожу пример того, как НЕ НАДО ДЕЛАТЬ !!
2) ещё ошибка Если вы используете суффиксы, например пишет x%, то это надо применять везде переменная вида x - не пройдёт Это ошибка о которой QBasic не сообщает. 3) вот ещё коварная ошибка Ради бога, объявляйте типы переменных. В противном случае вы можете нарваться на такую неприятность. Допустим переменная x должна быть целой (как вы хотите), но она используется как вещественная переменная и тогда, предположим вы ждёт результат x=2, а получается x=2.000001. Вы скажете. Ничего страшного Как знать! Если такое случится в середине программы, то она выдаст вам на гора такое, что мало не покажется!! 4) Судя по программам, видно, что многие уже познакомились с тем, что кодировка DOS и Windows штука неприятная. Как писать?? По-русски или латинскими буквами. Тут я не даю совета. Кто хочет выучить QBasic, тот выучит!! Успехов всем!
0
|
18.04.2014, 17:39 | |
Ответы с готовыми решениями:
5
Одномерные массивы. Вставка, удаление элементов массива. Перестановка элементов массива. Сортировка массива методом пузырька Перестановка элементов массива без использования дополнительного массива Перестановка элементов массива Перестановка элементов массива |
1045 / 315 / 74
Регистрация: 13.07.2013
Сообщений: 1,270
|
|
18.04.2014, 18:37 | 2 |
А, собственно, почему? QBasic четко выполнил Ваш код. Просто не нужно опять менять местами элементы.
Не по теме: Если не понятно сказал:
1
|
18.04.2014, 19:09 | 3 |
Сообщение было отмечено Памирыч как решение
Решение1) Что подразумевается под словом переставить? Чтобы обменять любые 2 элемента существует оператор SWAP. Всё зависит от правильности алгоритма. К примеру в алгоритмах сортировки лишний массив не нужен, и тем не менее возможно переставить все элементы массива в разные места. 2) Способов типизации в QB много, вы как вижу очень любите через DEF. На этот счёт стандартов нет абсолютно никаких. Раньше я использовал суффиксы, сейчас нет, но этому есть причины - для того чтобы видеть какие переменные используются в алгоритме и быстро портировать программу на требуемый диалект. Но подчёркиваю каждый программист волен делать так как ему удобно. 3) Дефолтные типы диалектов надо просто знать. Пользоваться этим тоже никто не запрещает. 4) Каверзный вопрос. Могу дать совет - тут на форуме лучше использовать транслит. Надёжный вариант: использовать свои процедуры печати либо вручную программировать знакогенератор(для текстового режима относительно несложный вариант, для графики - читаем статьи с WASM, но я бы не советовал, мало у кого есть нормальный парк оборудования для тестирования). Программируя под DOS вообще проблем особых с кодировками не возникает(не беру в рассчёт DOSBox и запуск через NTVDM). Вот под Windows совсем другое дело, костылей надо много, потому что редакторы кода работают в одной кодировке, сам юзаешь другую, а программа и функции работы с файловой системой накладывают свои ограничения, получается тихий писец. Поэтому есть среды, где всё заточено под системный Unicode и там безусловно меньше проблем. Лично я за унификацию в этом плане.
2
|
1045 / 315 / 74
Регистрация: 13.07.2013
Сообщений: 1,270
|
||||||
19.04.2014, 15:39 | 5 | |||||
Сообщение было отмечено gehh как решение
Решение
Для чего же нужен третий Print? Он выводит получившийся массив, там хорошо видно (при вышеуказанной поправке), что массив повернулся верно. А Вы, прогоняя весь массив через 2-ой цикл, поворачиваете его 2 раза.
Добавлено через 12 минут Если же Вы до сих пор не верите, попробуйте данный код:
1
|
Заблокирован
|
|
19.04.2014, 15:45 [ТС] | 6 |
Вы компьютерный гений!! Я не боюсь признать своё заблуждение.
Да, я ошибся и очень крупно. Действительно сделав дважды перестановку, посчитал ее за одну. Ошибки надо исправлять. Однако я привёл правильный пример того, как не надо делать. Если бы я мог, то нажал бы кнопку "Спасибо" 1000 раз!! Спасибо! Это лучший ответ! Он будет мне уроком!
0
|
19.04.2014, 15:45 | |
19.04.2014, 15:45 | |
Помогаю со студенческими работами здесь
6
Перестановка элементов массива Перестановка элементов массива Перестановка элементов массива Перестановка элементов массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |