Задачи QBasic
| |
sega-bbl | Дата: Среда, 02 Ноября 2016, 04:31 | Сообщение # 1 |
уже был
Сейчас нет на сайте
| Всем привет! Помогите разобраться в этих задачах. В коде хоть что-то поначеркано, а вот в блок-схемах вообще ноль. Никак не пойму как в схеме отразить проверку условия.
Задачи: Разработать блок-схему и написать программу на языке программирования QBASIC Задача первой группы: Дан массив А из 20 элементов. Заменить положительные элементы массива на минимальный элемент массива. Результат вывести на печать. Решение:
Задача второй группы: Определить произведение, сумму и количество элементов массива A(N.M), ЗНАЧЕНИЯ КОТОРЫХ ПОПАДАЮТ В ИНТЕРВАЛ (1.5;3.2). Результаты вывести на печать.
|
|
| |
Gudleifr | Дата: Среда, 02 Ноября 2016, 10:25 | Сообщение # 2 |
почти ветеран
Сейчас нет на сайте
| Цитата sega-bbl ( ) как в схеме отразить проверку условия. Ромбиком.
Цитата sega-bbl ( ) Помогите разобраться в этих задачах. В чем? Вы не можете их решить? Вы не знаете QBASIC? Вы не умеете запускать QBASIC-программы? В приведенных текстах бросается в глаза: 1. операторы BASIC в строке разделяются ":", а не ";" 2. INPUT "имеет в себе" PRINT 3. В первой задаче, наверное, подразумевалось использование DATA-READ, а не INPUT
Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
Сообщение отредактировал Gudleifr - Среда, 02 Ноября 2016, 10:26 |
|
| |
victus1961 | Дата: Среда, 02 Ноября 2016, 11:45 | Сообщение # 3 |
частый гость
Сейчас нет на сайте
| Попробуй задать вопрос здесь: http://www.cyberforum.ru/qbasic/ Они специализируются на этом.
|
|
| |
Gudleifr | Дата: Среда, 02 Ноября 2016, 11:52 | Сообщение # 4 |
почти ветеран
Сейчас нет на сайте
| Цитата victus1961 ( ) опробуй задать вопрос здесь: Там смогут ответить только на третий вопрос: "Как запустить?"
Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
|
|
| |
sega-bbl | Дата: Среда, 02 Ноября 2016, 14:30 | Сообщение # 5 |
уже был
Сейчас нет на сайте
| Цитата Gudleifr ( ) Ромбиком. Жесткий троллинг.
Цитата Gudleifr ( ) Вы не можете их решить? Ага, преподаватель не объяснял задачи такого типа, а они попались в задачах для КР
|
|
| |
Gudleifr | Дата: Среда, 02 Ноября 2016, 15:28 | Сообщение # 6 |
почти ветеран
Сейчас нет на сайте
| Цитата sega-bbl ( ) Дан массив А из 20 элементов. Заменить положительные элементы массива на минимальный элемент массива. Результат вывести на печать.
Цитата sega-bbl ( ) преподаватель не объяснял задачи такого типа Во-первых, для решения "подобной задачи" надо понять, чего требует преподаватель: "решить в его стиле", "показать свою эрудицию", "научиться думать самостоятельно" и т.д. и т.п. Для этого надо пообщаться с народом или с ним самим. Не "дайте списать юродивому!", а "мужик, ты меня уважаешь?" Без этого Вы рискуете попасть под нехилую раздачу: "Смотрите, что этот доходяга здесь понаписал!"
Во-вторых, сама задача. Когда возникает слово "массив", всегда надо начинать думать, как вытаскивать из него элементы. Всего есть три способа: выбрать элемент по известному номеру (это называется произвольным доступом), найти элемент по какому-то его свойству и тупо перебрать все по порядку. Понятно третий способ самый универсальный - он даст все элементы со всеми номерами и со всеми свойствами. Но, зараза, долгий.
Посмотрим условие задачи: * "Дан массив" - значит, ничего делать не надо, раз он уже дан. Все языки программирования как-то умеют работать с данными, которые уже "где-то даны", правда, обычно это сводится к "тупому перебору". * "Заменить положительные элементы" - т.е., речь идет о выборе элементов по свойству "положительный". Как мы можем их найти? Конечно, "тупым перебором"! Но это работает только, пока массив маленький, а выбранных много. Если бы мы знали, что из 64000 элементов массива положительных только 20, то имело бы смысл сохранить их номера где-то в отдельном массивчике. * "Минимальный элемент" - опять нужно выбрать элемент по его свойству, причем это свойство зависит от всего массива. К счастью мат.анализ говорит нам, что минимум существует и вполне определим "полным перебор".
Т.е. в худшем случае программа распадается на три цикла: 1. Тупо загружаем массив; 2. Тупо находим минимум; 3. Тупо заменяем положительные.
В лучшем: 1. Получаем массив и попутно заменяем положительные на текущий минимум. 2. Заменяем все замененные неправильно на окончательный минимум.
Чем определяется выбор числа переборов? Во-первых, это BASIC. Это значит, что вопросы "Как запускаем?" не может быть отделен от "решения задачи". Тупо: "Как и когда будем вводить, выводить?" Например, ввод массива, его вывод в исходном состоянии и нахождение цикла, вполне могут быть объединимы в одном цикле, а, может быть, и нет, если ввод будет мешать выводу. А окончательная замена вполне может быть объединена с выводом результата. Плюс, нам могут понадобиться промежуточные выводы для отладки или для красоты. Во-вторых, при любой оптимизации нас начинает напрягать математика - гарантируем ли мы правильность замены? Как мы отличим неправильно замененные от правильно незамененных? И т.д. и т.п. Программисты называют это "инвариантом цикла". Т.е. главное, не то "когда цикл закончится", а какое самое слабое условие гарантирует нам, что цикл еще не похерил все наши данные? Для цикла замены инвариант будет выглядеть примерно так: "все элементы левее курсора заменены правильно".
К счастью, решение такой элементарной задачи, программист находит, еще пока несет листочек с заданием к компьютеру. И сразу переходит ко второму - "как это записать на BASIC?" Поэтому не морочьте людям голову и спросите "Как это делается?" у одноклассников или учителя. Конечно, в любом учебнике по QBASIC все грамотно разжевано, но где гарантия, что Ваш педагог не учился по другому учебнику?
Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
Сообщение отредактировал Gudleifr - Среда, 02 Ноября 2016, 15:33 |
|
| |
|