| 
				
				Задачи 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  |  
| 
 | 
 |    |     
		
		 
 |