| 
	
		
		
			| Задачи 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 (  )  как в схеме отразить проверку условия.
 В чем? Вы не можете их решить? Вы не знаете QBASIC? Вы не умеете запускать QBASIC-программы?Цитата sega-bbl (  ) Помогите разобраться в этих задачах. В приведенных текстах бросается в глаза:
 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 |  |  |  |  |  
 |