Вторник, 03 Декабря 2024, 20:25

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Задачи 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
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг