|
|||||||||||||||||||||||||||||
Тема 4. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕТема 4. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 3 Продолжительность занятия – 2 часа
РАЗРАБОТКА И СОЗДАНИЕ БЛОК-СХЕМЫ АЛГОРИТМОВ Методические указания Существует несколько способов записи алгоритмов. Алгоритм может быть записан на: · естественном языке; · в виде блок-схемы; · на алгоритмическом языке. Однако блок-схемы, наверно, самый удобный и наглядный способов записи алгоритмов. Любая команда алгоритма записывается в блок-схеме в виде графического элемента – блока, и дополняется словесным описанием. Блоки в блок-схемах соединяются линиями потока информации. Направление потока информации указывается стрелкой. В случае потока информации сверху вниз и слева направо стрелку ставить не обязательно. Блоки в блок-схеме имеют только один вход и один выход (за исключением логического блока). Определение блок-схемы и перечень основных элементов Схема –графическое представление определения, анализа или метода решения задачи, в котором используются символы для отображения операций, данных, потока, оборудования и т. д.[1] Блок-схема –распространенный тип схем (графических моделей), описывающих алгоритмы или процессы, в которых отдельные шаги изображаются в виде блоков различной формы, соединенных между собой линиями, указывающими направление последовательности.
Блок-схемы (БС) используются в программировании, и создается переднаписанием самой программы, для описания алгоритма. Начинающие программисты очень скептически относятся к блок-схемам и не понимают для чего они нужны, однако по мере появления более сложных задач, смысл блок-схем начинает проясняться. К тому же, умея рисовать и читать БС, можно без труда (естественно при наличии знаний языков программирования) написать программу по нарисованной блок схеме. В создании блок схем используются несколько обозначений: – начало и конец программыиногда конец рисуют как перечеркнутый круг или овал. – обработка данных(выполнениекоманд), например, изменение значения переменной, объявление переменных, присваивание и т.д. – ввод и вывод данных, например, ввод значения какой либо переменной или вывод конечного результата. Так же может быть вывод какого-либо сообщения, например об ошибке. Обращается внимание, что и ввод и вывод обозначаются одним знаком. Чаще всего из контекста программы понятно ввод это или вывод, но бывают случаи, когда лучше это уточнить. Иногда вывод рисуют как комбинированную фигуру. – условие(выбор) используется вместе с конструкциями if иswitch(case). Внутри каждого из этих символов пишется то, что выполняет данный блок, а все блоки соединяются между собой стрелками. Есть еще несколько правил, которые нужно учитывать: 1. Из одного блока не может выходить более одной стрелки (исключение – условие при использовании конструкции switch) 2. К одному блоку не может подходить более одной стрелки. В случае если необходимо подвести 2 или более стрелок, они сначала соединяются в одну, а затем переходят в нужный блок. Базовые структуры алгоритмов Базовые структуры алгоритмов — это определенный набор блоков и стандартных способов их соединения для выполнения типичных последовательностей действий. К основным структурам относятся следующие: – линейные; – разветвляющиеся; – циклические. Линейныминазываются алгоритмы, в которых действия осуществляются последовательно друг за другом. Стандартная блок-схема линейного алгоритма приводится справа: Разветвляющимся называется алгоритм, в котором действие выполняется по одной из возможных ветвей решения задачи, в зависимости от выполнения условий. В отличие от линейных алгоритмов, в которых команды выполняются последовательно одна за другой, в разветвляющиеся алгоритмы входит условие, в зависимости от выполнения или невыполнения которого выполняется та или иная последовательность команд (действий). В качестве условия в разветвляющемся алгоритме может быть использовано любое понятное исполнителю утверждение, которое может соблюдаться (быть истинно) или не соблюдаться (быть ложно). Такое утверждение может быть выражено как словами, так и формулой. Таким образом, алгоритм ветвления состоит из условия и двух последовательностей команд. В зависимости от того, в обоих ветвях решения задачи находится последовательность команд или только в одной разветвляющиеся алгоритмы делятся на полные и не полные (сокращенные). Стандартные блок-схемы разветвляющегося алгоритма приведены ниже:
Циклическим называется алгоритм, в котором некоторая часть операций (тело цикла – последовательность команд) выполняется многократно. Однако слово «многократно» не значит «до бесконечности». Организация циклов, никогда не приводящая к остановке в выполнении алгоритма, является нарушением требования его результативности — получения результата за конечное число шагов. Перед операцией цикла осуществляются операции присвоения начальных значений тем объектам, которые используются в теле цикла. В цикл входят в качестве базовых следующие структуры: – блок проверки условия; – блок, называемый телом цикла. Существуют три типа циклов: · цикл с предусловием; · цикл с постусловием; · цикл с параметром (разновидность цикла с предусловием). Если тело цикла расположено после проверки условий, то может случиться, что при определенных условиях тело цикла не выполнится ни разу. Такой вариант организации цикла, управляемый предусловием, называется циклом c предусловием. Возможен другой случай, когда тело цикла выполняется по крайней мере один раз и будет повторяться до тех пор, пока не станет ложным условие. Такая организация цикла, когда его тело расположено перед проверкой условия, носит название цикла с постусловием. Цикл с параметром является разновидностью цикла с предусловием. Особенностью данного типа цикла является то, что в нем имеется параметр, начальное значение которого задается в заголовке цикла, там же задается условие продолжения цикла и закон изменения параметра цикла. Механизм работы полностью соответствует циклу с предусловием, за исключением того, что после выполнения тела цикла происходит изменение параметра по указанному закону и только потом переход на проверку условия. Стандартные блок-схемы циклических алгоритмов приведены ниже:
Программы линейных алгоритмов
1. Ввести два ненулевых числа. Найти их сумму, разность, произведение и частное. Вывести полученные значения.
2. Найти периметр и площадь прямоугольного треугольника. Ввести длины его катетов a и b. Вывести полученные значения.
3. Ввести длину ребра куба. Найти площадь грани, площадь полной поверхности и объем этого куба. Вывести полученные значения.
4. Найти длину окружности и площадь круга заданного радиуса R. В качестве значения Pi использовать 3.14. Вывести полученные значения.
5. Найти площадь кольца, внутренний радиус которого равен R1, а внешний радиус равен R2 (R1 < R2). В качестве значения Pi использовать 3.14. Ввести радиусы R1 и R2. Вывести полученное значение.
6. Ввести длину окружности. Найти площадь круга, ограниченного этой окружностью. В качестве значения Pi использовать 3.14. Вывести полученное значение.
7. Ввести площадь круга. Найти длину окружности, ограничивающей этот круг. В качестве значения Pi использовать 3.14. Вывести полученное значение.
8. Ввести длину и ширину прямоугольника. Найти его площадь и периметр. Вывести полученные значения.
9. Ввести два положительных числа a и b (a>b). Определить на сколько первое число больше второго и во сколько раз первое число больше второго. Результаты вывести на экран. Программы разветвляющихся алгоритмов
1. Написать программу решения квадратного уравнения. Проверять действительно ли уравнение квадратное (коэффициент при старшей степени не равен нулю). Примечание. Операция, обозначаемая символом «!=» между переменной a и нулём, есть формализованная запись проверки неравенства «≠». Проверка условия вида a!=0, есть формализованная запись проверки условия, являющегося математическим неравенством a≠0. 2. Выяснить, принадлежит ли точка с координатами (x, y) кругу радиуса r с центром в начале координат.
3. Дан номер некоторого года (положительное целое число). Вывести число дней в этом году, учитывая, что обычный год насчитывает 365 дней, а високосный – 366 дней. Високосным считается год, делящийся на 4, за исключением тех годов, которые делятся на 100 и не делятся на 400 (например, годы 300, 1300 и 1900 не являются високосными, а 1200 и 2000 — являются). Результат вывести на экран.
Примечание. Операция, обозначаемая символом «%» есть формализованная запись получения остатка целочисленного деления, например, 25%4=1, так как при целочисленном делении 25-ти на 4 в остатке получается 1. Проверка условия вида A%4=0, есть формализованная запись проверки условия целочисленного деления на 4.
4. Дано целое число, лежащее в диапазоне от –99 до 99. Вывести строку – словесное описание данного числа вида "отрицательное двузначное число", "нулевое число", "положительное однозначное число" и т.д. Примечание. Функция abs(A) есть формализованная запись функции выделения модуля |A|.
5. Арифметические действия над числами пронумерованы следующим образом: 1 – сложение, 2 – вычитание, 3 – умножение, 4 – деление. Дан номер действия и два числа A и B (В не равно нулю). Выполнить над числами указанное действие и вывести результат.
6. Даны действительные числа x, y, z. Вывести на печать максимальное из чисел x, y, z.
7. Даны действительные числа x, y, z. Вывести на печать минимальное из чисел x, y, z.
8. Даны действительные числа x, y, z. Вывести на печать минимальное и максимальное из чисел x, y, z.
9. Даны действительные числа x, y, z. Удвоить эти числа, если x>y>z, и заменить их абсолютными значениями, если условия не выполняются. Примечание. Операция, обозначаемая символом «+=»есть формализованная запись выражения присваивания с добавлением к имеющемуся, например, a+=b это a←a+b, то есть переменной a (той которой слева) к её имеющемуся значению добавляется значение b (то есть a+b).
10. Дано действительное число x. Вычислить z по одной из формул и вывести на печать: z = -x, если x<0, z=x, в противном случае.
11. Даны два действительных числа. Заменить первое число нулем, если оно меньше или равно второму, и оставить числа без изменения в противном случае. Знак, обозначаемый символом «<=»есть формализованная запись символа «больше либо равно» (≤).
12. Даны положительные действительные числа x, y, z. Выяснить, существует ли треугольник с длинами сторон x, y, z, и напечатать соответствующее сообщение.
13. Даны положительные действительные числа x, y. Выяснить, существует ли треугольник с углами x, y, и если существует, то является ли он прямоугольным. Напечатать соответствующее сообщение.
Программы циклических алгоритмов
1. Найти максимальный элемент из десяти целых чисел, вводимых с клавиатуры. Примечание. В блоке модификации запись условий через точку с запятой указывает на то, что первый цикл будет с номером 1 (i=1), повторять циклы до тех пор пока текущий номер цикла i меньше или равен 10 и присваивать очередному новому циклу номер на единицу большую предыдущего (i++ или i=i+1).
2. Найти номер первого минимального элемента во вводимой с клавиатуры последовательности чисел. Условие окончания ввода – ввод числа 0.
3. Найти номер первого минимального элемента из 10 вводимых с клавиатуры чисел.
4. Найти номер первого максимального элемента во вводимой с клавиатуры последовательности чисел. Условие окончания ввода – ввод числа 0.
5. Дана последовательность: 1/1,1/2,1/3...1/n. Составить программу c использованием цикла while (пока), выводящую на экран значение и номер члена последовательности, меньшего 0,5. Тест: n=3, p(n)=0,3333. Использовать цикл while.
6. Даны два целых числа A и B (A < B). Вывести все целые числа, расположенные между данными числами (включая сами эти числа), в порядке их возрастания. Использовать цикл for.
7. Дано вещественное число A и целое число N (> 0). Вывести все целые степени числа A от 1 до N. Использовать цикл for.
8. Дано вещественное число A и целое число N (N > 0). Вывести A в степени N: AN =A•A•...•A (числа A перемножаются N раз). Использовать цикл for.
9. Написать программу, вычисляющую факториал введенного числа. Использовать цикл for.
10. Найти сумму целых четных чисел, расположенных между вводимыми с клавиатуры числами A и B.
11. Найти сумму N первых элементов последовательности 1/N. Тест: n=5 s=2.2833
12. Написать программу, вычисляющую факториал введенного числа. Использовать цикл do..while.
13. Найти количество n первых элементов последовательности 1/n, сумма которых не превышает 2.0. Тест: n=3 p(n)=0.3333 s=1.8333
Контрольные вопросы 1. Каковы способы записи алгоритмов? 2. Кто и когда впервые ввел понятие алгоритма? 3. В чем заключаются основные свойства алгоритма? 4. Перечислите основные алгоритмические структуры и опишите их. 5. Каковы основные принципы разработки алгоритмов? 6. Чем объясняется разнообразие форм записи алгоритмов? 7. Охарактеризуйте словесно-пошаговый способ записи алгоритмов. 8. Охарактеризуйте табличную форму записи алгоритмов. 9. Что такое результат выполнения алгоритма? 10. Что такое исходные данные? 11. Что представляет собой графическая форма записи алгоритма? 12. Каков порядок составления блок-схем? 13. Охарактеризуйте основные блоки блок схем? 14. Для чего необходимо ветвление в алгоритмах? 15. Какие формы ветвления различают? 16. Для чего используют структуру "цикл"? 17. Какие виды циклов вы знаете? 18. Что такое тело цикла? 19. Какие циклы называют итерационными? Приведите примеры. 20. Что такое итерация?
Используемая литература: [1, 2, 3, 8,, 9, 10]
ИСПОЛЬЗУЕМАЯ ЛИТЕРАТУРА Базовый учебник 1. Информатика: базовый курс / под ред. С. В. Симонович. – СПб. : Питер, 2010.
Основная литература 2. Ивасенко А. Г. Информационные технологии в экономике и управлении : учеб. пособие для вузов / под ред. А. Г. Ивасенко, А. Ю. Гридасова, В. А. Павленко. – М. : КНОРУС, 2012. – 154 с. 3. Информационные технологии : учеб. для вузов / под ред. В. В. Трофимова. – М. : Высш. образование; Юрайт–Издат, 2009. – 624 с. 4. Чубукова С. Г. Основы правовой информатики (юрид. и математ. вопросы информатики) : учеб. пособие для студ. юрид. и иных высш. учеб. заведений / С. Г. Чубукова, В. Д. Элькин / под ред. М. М. Рассолова. – М. : Контракт: ИНФРА-М, 2011.
Дополнительная литература 5. Кокс Д. Microsoft Office Word 2012. Шаг за шагом : учеб. пособие / Д. Кокс, Д. Преппернау. – М. : Эком, 2012. – 544 с. 6. Ламберт С.Microsoft Office Еxcel 2012. Шаг за шагом : учеб. пособие / С. Ламберт, М. Доу. – М. : Эком, 2012. – 432 с. 7. Мельников В. П. Информационные технологии : учебник / В. П. Мельников. – М. : Академия, 2012. 8. Острейковский В. А. Информатика : учеб. для вузов / В. А. Острейковский. – М. : Высш. шк., 2012. 9. Советов Б. Я. Информационные технологии : учеб. для вузов / Б. Я. Советов, В. В. Целиховский. – М. : Высш. шк., 2012. 10. Степанов А. Н. Информатика : базовый курс для студ. гуманитарных спец. высш. учеб. заведений / А. Н. Степанов. – СПб. : Питер, 2011.
СОДЕРЖАНИЕ
Методические указания ........................................................................................ 3 Учебно-методический план................................................................................... 4 Тема I. ОСНОВНЫЕ ПОНЯТИЯ И МЕТОДЫ ТЕОРИИ ИНФОРМАТИКИ И КОДИРОВАНИЯ. СИГНАЛЫ, ДАННЫЕ, ИНФОРМАЦИЯ. Практическое занятие № 1..................................................................................... 5 Тема 3. ПРОГРАММНЫЕ СРЕДСТВА РЕАЛИЗАЦИИ Практическое занятие № 2.................................................................................... 11 Табличный процессор MS Excel........................................................................... 11 Табличный процессор MS Word.......................................................................... 46 Тема 4. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ Практическое занятие № 3.................................................................................... 91 Литература.............................................................................................................. 114
|
|||||||||||||||||||||||||||||
|