КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Организация циклов. IF a+b>=c AND b^2>a THEN ?
INPUT a,b,c IF a+b>=c AND b^2>a THEN? “Верно” ELSE? “Неверно”
Другой пример. Для произвольных чисел А, В, С выяснить, правда ли что первое число самое большое, а последнее – самое маленькое. IF a>b AND a>c AND c<a AND c<b THEN? “Верно” ELSE? “Неверно” Еще. Правда ли, что среди чисел А, В, С имеется ровно одна единица. IF (a=1 AND b<>1 AND c<>1) OR (a<>1 AND b=1 AND c<>1) OR (a<>1 AND b<>1 AND c=1) THEN? “Верно” ELSE? “Неверно” Здесь скобки введены только для наглядности поскольку операция AND все равно выполняется прежде операции OR. & Тест. 2.3.1. Укажите результат, выдаваемый программой 1). 1, 2) 2. x=2: y=4: z=3 if x>y or y>z then print 1 else print 2 @ Контрольная задача. В устройстве ввода ЭВМ подготовлено четыре произвольных числа: A,B,C,D. ЭВМ должна ответить на вопрос: Правда ли что...? (вопрос берется из таблицы). Ответ ЭВМ должна вывести в виде текста: слова ”Правда” или ”Неправда”. Составить блок-схему, программы. Сделать проверку для произвольных аргументов.
В простых примерах, рассмотренных выше, вообще говоря, не требовалось привлечения ЭВМ и программирования. Все они достаточно быстро могли быть решены вручную или с помощью калькулятора. Сила ЭВМ заключается в возможности простыми средствами осуществлять многократное повторение заданных действий – циклов. ¶ИТЕРАЦИОННЫЕ ЦИКЛЫ. В случае, если количество циклов, необходимых для решения задачи, заранее неизвестно, такие циклы называются итерационными. Рассмотрим ряд примеров. Задача 3. Пусть для некоторого множества чисел Х нужно вычислить и отпечатать функцию 2/Х. Ввод и вычисления следует прекратить после обнаружения первого Х, равного нулю (деление на ноль невозможно).
Очевидна следующая блок-схема (рис. 2.4.1). Блоков ввода, вычисления, печати и анализа столько, сколько чисел в последовательности до первого нуля. Чисел может быть очень много и подобный подход, конечно, неприемлем, не говоря уже о том, что и количество их заранее неизвестно. Такие программы строятся по-иному. Обрабатывающая часть программы записывается только раз, но охватывается петлей возврата (рис. 2.4.2). Тогда одни и те же операторы будут выполняться многократно до тех пор, пока Х¹0. Задача 4. Пусть для аргумента Х, находящегося в диапазоне от 3 до 9, требуется вычислить и напечатать значение функции Y=(X–6)2, где Х изменяется с шагом 2 (рис. 2.4.3). Блок-схема алгоритма изображена на рис. 2.4.4. Справа от текста программы сделаны выкладки по проверке решения. В каждой строке вручную вычисляется и указывается значение соответствующей переменной. Выкладки по проверке выполняются сверху-вниз, слева-направо по ходу исполнения программы. Стрелки показывают связи между циклами. Видим, что заданная последовательность изменения Х (3, 5, 7,...) наблюдается и последнее значение Y вычисляется для Х=9. При следующем приращении Х оно становится равным 11 и пятый цикл не выполняется, поскольку при Х>9 программа завершается. Здесь следует отметить, что нет никакого технически простого способа предварительной проверки правильности написанных программ. Для этой цели программисту приходится вручную по тексту программы рассчитывать значения всех переменных и сличать их с желаемыми (известными из условия). Конечно, проверка выполняется не для всей задачи, а только для небольшого числа (например, трех) начальных циклов и при этом тщательно анализируется значение условия выхода из цикла (оператор IF).
Контрольная задача. Пусть дана функция Y=10–2X. ЭВМ должна вычислить и напечатать значения этой функции для последовательных значений Х: 0, 0.5, 1, 1.5, 2, 2.5,... и т.д. до тех пор, пока Y не станет отрицательным.
АРИФМЕТИЧЕСКИЕ ЦИКЛЫ. Если число повторений известно заранее – такие циклы называются арифметическими. Задача 5. Пусть в условиях предыдущей задачи 4 не известно предельное значение аргумента, но зато задано количество точек аргумента – 4. Поскольку в данном случае не задано последнее значение Х, признак окончания циклов придется формировать самим. Для этого вводится переменная, которая фиксирует число уже выполненных циклов, т.е. счетчик циклов (назовем ее I). В исходном состоянии (рис. 2.4.5) берем его равным 1.
После выполнения очередного цикла счетчик получает приращение, увеличиваясь на единицу (I=I+1). В начале каждого цикла в операторе IF делается проверка на достижение счетчиком последнего разрешенного значения (у нас 4). Если I<=4 программа продолжает вычисление функции, если нет (I>4) – счет прекращается. Ниже приведена программа и выкладки по ее проверке. Как видим, результат проверки совпал с результатом, полученным ранее. Исходное значение счетчика циклов и его приращения могут выглядеть по-разному. Главное, чтобы было выполнено заданное число циклов. В нашем примере был использован счетчик на возрастание I=1,2,3,... до N (N – число шагов). Можно начинать счетчик с нуля: I=0,1,2,... до N-1. Возможен счетчик на убывание: I=N–1,... 3,2,1 до 0 и т.д. Обычно, если нет оснований для другого, используется счетчик на возрастание с шагом единица от 1 до N. ЗАДАЧИ НА НАКОПЛЕНИЕ. В практике очень распространены задачи на накопление, т.е. на нахождение сумм и произведений последовательности переменных. Такие задачи могут встречаться как в формулировке итерационных, так и арифметических циклов. Задача 6. Пусть требуется найти сумму N произвольных чисел Х. Блок-схема алгоритма приведена на рис. 2.4.6, а программа ниже. Здесь сумма накапливается в переменной S с помощью оператора S=S+X. Начальное значение суммы берется равным нулю (S=0).
ЧИСЛОВЫЕ РЯДЫ. Типичной циклической задачей на накопление является вычисление числовых рядов. Задача 7. Пусть требуется найти сумму S для N членов геометрической прогрессии вида
Дата добавления: 2014-12-27; Просмотров: 528; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |