Практическая раборта № 1
Построение блок-схем алгоритмов(теория)
Предпочтительнее до записи на алгоритмическом языке представить алгоритм в виде блок-схемы. Для построения алгоритма в виде блок-схемы необходимо знать назначении каждого из блоков. В таблице 1. приводятся типы блоков и их назначение.
Таблица 1
№
| Блок
| Назначение блока
| 1
|
| Начало или конец
блок-схемы
| 2
|
| Ввод или вывод данных
| 3
|
| Процесс (в частности вычислительный)
| 4
|
| условие
| 6
|
| Цикл с параметром (for)
|
Алгоритмизация выступает как набор определенных практических приёмов, особых специфических навыков рационального мышления в рамках заданных языковых средств. Алгоритмизация вычислений предполагает решение задачи в виде последовательности действий, т.е. решение, представленное в виде блок-схемы. Можно выделить типичные алгоритмы. К ним относятся: линейные алгоритмы, разветвляющиеся алгоритмы, циклические алгоритмы.
Линейные алгоритмы
Линейный алгоритм является наиболее простым. В нём предполагается последовательное выполнение операций. В этом алгоритме не предусмотрены проверки условий или повторений.
Пример: Вычислить функцию z= (х-у)/x +y2.
Составить блок-схему вычисления функции по линейному алгоритму. Значения переменных х, у могут быть любые, кроме нуля, вводить их с клавиатуры.
Решение: Линейный алгоритм вычисления функции задан в виде блок-схемы на рис.1. При выполнении линейного алгоритма значения переменных вводятся с клавиатуры, подставляются в заданную функцию, вычисляется результат, а затем выводится результат.
Рис.1. Линейный алгоритм
Назначение блоков в схеме на рис.1:
Блок 1 в схеме служит в качестве логического начала. Блок 2 соответствует вводу данных. Блок 3 представляет арифметическое действие. Блок 4 выводит результат. Блок 5 в схеме служит в качестве логического завершения схемы.
Алгоритмы ветвлений
Разветвляющийся алгоритм предполагает проверку условий для выбора решения. Соответственно в алгоритме появятся две ветви для каждого условия.
В примере рассматривается разветвляющийся алгоритм, где в зависимости от условия выбирается один из возможных вариантов решений. Алгоритм представляется в виде блок-схемы.
Пример: При выполнении условия x>0 вычисляется функция: z= x+ y, иначе, а именно, когда х=0 или x<0, вычисляется функция: z=x2+y2.
Составить блок-схему вычисления функции по алгоритму ветвления. Значения переменных х, у могут быть любые, вводить их с клавиатуры.
Решение: На рис.2 представлен разветвляющийся алгоритм, где в зависимости от условия выполнится одна из веток. В блок-схеме появился новый блок 3, который проверяет условие задачи. Остальные блоки знакомы из линейного алгоритма.
Рис.2. Алгоритм ветвления
Пример: Найти максимальное значение из трёх различных целых чисел, введенных с клавиатуры. Составить блок-схему решения задачи.
Решение: Данный алгоритм предполагает проверку условия. Для этого выбирается любая из трёх переменных и сравнивается с другими двумя. Если она больше, то поиск максимального числа окончен. Если условие не выполняется, то сравниваются две оставшиеся переменные. Одна из них будет максимальной. Блок-схема к этой задаче представлена на рис 3.
Рис. 3. Блок-схема поиска максимума
Циклические алгоритмы
Циклический алгоритм предусматривает повторение одной операции или нескольких операций в зависимости от условия задачи.
Из циклических алгоритмов выделяют два типа:
с заданным количеством циклов или со счётчиком циклов; количество циклов неизвестно.
Пример: В цикле вычислить значение функции z=x*y при условии, что одна из переменных x меняется в каждом цикле на единицу, а другая переменная у не меняется и может быть любым целым числом. В результате выполнения цикла при начальном значении переменной х=1 можно получить таблицу умножения. Количество циклов может быть любым. Составить блок-схему решения задачи.
Решение: В примере количество циклов задаётся. Соответственно выбирается алгоритм циклов первого типа. Алгоритм этой задачи приводится на рис. 4.
Во втором блоке вводятся количество циклов n и любые целые числа х, y.
В блок-схеме появился новый блок 3, в котором переменная i считает количество циклов, после каждого цикла увеличиваясь на единицу, пока счётчик не будет равен i=n. При i=n будет выполнен последний цикл.
В третьем блоке указывается диапазон изменения счётчика цикла (от i =1 до i=n).
В четвёртом блоке изменяются значения переменных: z, x.
В пятом блоке выводится результат. Четвёртый и пятый блоки повторяются в каждом цикле.
1 2 3 4 5 6
Рис.4 . Циклический алгоритм со счётчиком циклов
Этот тип циклических алгоритмов предпочтителен, если дано количеством циклов.
Если количество циклов неизвестно, то блок-схемы циклических алгоритмов могут быть представлены в виде рисунков 5, 6.
Пример: Вычислить у=у-x пока y>x, если y=30, x=4. Подсчитать количество выполненных циклов, конечное значение переменной у. В цикле вывести значение переменной у, количество выполненных циклов. Составить блок-схему решения задачи.
Решение: В примере количество циклов неизвестно. Соответственно выбирается алгоритм циклов второго типа. Алгоритм этой задачи приводится на рис. 5.
Условие проверяется на входе в цикл. В теле цикла выполняется два блока:
1) у=у-х; i=i+1;
2) вывод значений переменных i, y.
Цикл выполняется до тех пор, пока выполняется условие y>x. При условии равенства этих переменных у=х или y цикл заканчивается.
Алгоритм, представленный на рис.5, называется циклический алгоритм с предусловием, так как условие проверяется в начале цикла или на входе в цикл.
1 2 3 4
5 6
Рис.5. Блок-схема циклического алгоритма с предусловием
Во втором блоке вводятся y=30, x=4.
В третьем блоке проверяется условие y>x на входе в цикл. Если условие выполняется, то переход к блоку 4, иначе на блок 6.
В четвёртом блоке вычисляется значение переменной у, подсчитывается количество выполненных циклов i=i+1.
В пятом блоке выводится результат:
значение переменной у, количество выполненных циклов i.
Пример: Составить блок-схему примера (рисунок 5), проверяя условие выхода из цикла. В этом примере условие задачи не меняется, и результат выведется тот же, но блок-схема будет другой.
Решение: В этом случае проверяется условие на выход из цикла: y<=x. При этом условии цикл не выполняется. Условие в блок-схеме следует перенести в конец цикла, после вывода на печать. Цикл выполняется до тех пор, пока выполняется условие y>x.
Алгоритм, если условие перенести в конец цикла, называется алгоритмом цикла с постусловием. Алгоритм этой задачи приводится на рис. 6.
Во втором блоке вводятся y=30, x=4.
В третьем блоке вычисляется значение переменной у, подсчитывается количество выполненных циклов i=i+1.
В четвёртом блоке выводится результат:
значение переменной у, количество выполненных циклов i.
В пятом блоке проверяется условие y<=x на выход из цикла. Если условие выполняется, то переход к блоку 6, иначе на блок 3 и цикл повторяется.
1 2 3 4 5 6
Рис.6 . Алгоритм цикла с постусловием
Индивидуальные задания к работе:
1. Найти результат работы алгоритма:
Входные данные по вариантам
№
| A
| B
| C
| D
| 1
| 0
| -1
| -2
| -3
| 2
| 1
| 0
| -1
| -2
| 3
| 2
| 1
| 0
| -1
| 4
| 3
| 2
| 1
| 0
| 5
| 4
| 3
| 2
| 1
| 6
| 5
| 4
| 3
| 2
| 7
| 6
| 5
| 4
| 3
| 8
| 7
| 6
| 5
| 4
| 9
| -3
| 7
| 6
| 5
| 10
| -4
| -3
| 7
| 6
| 11
| -5
| -4
| -3
| 7
| 12
| -6
| -5
| -4
| -3
| 13
| -7
| -6
| -5
| -4
| 14
| 9
| -7
| -6
| -5
| 15
| 8
| 7
| -7
| -6
| 16
| 5
| 5
| 8
| -7
| 17
| 5
| 2
| 4
| 5
|
При заданном Х условие выполнется? Написать результат вычисления и ответ попадаем в условие или нет.
Входные данные по вариантам
№
| X1
| X1
| 1
| 55
| 12
| 2
| 85
| 13
| 3
| 24
| 17
| 4
| 65
| 15
| 5
| 17
| 54
| 6
| 15
| 67
| 7
| 26
| 3
| 8
| 27
| 21
| 9
| 92
| 34
| 10
| 12
| 23
| 11
| 45
| 22
| 12
| 66
| 45
| 13
| 71
| 46
| 14
| 13
| 76
| 15
| 45
| 67
| 16
| 53
| 35
| 17
| 52
| 23
|
Написать результат выполнения алгоритма с указанными входными данными
Входные данные по вариантам
№
| S
| 1
| 1,5
| 2
| 1,8
| 3
| 2,4
| 4
| 1,6
| 5
| 1,7
| 6
| 1,3
| 7
| 2,6
| 8
| 2,37
| 9
| 1,92
| 10
| 1,12
| 11
| 1,45
| 12
| 2,66
| 13
| 2,71
| 14
| 2,13
| 15
| 1,45
| 16
| 2,53
| 17
| 1,52
|
Написать результат выполнения алгоритма с указанными входными данными
Входные данные по вариантам
№
| X
| 1
| -1
| 2
| 0
| 3
| 1
| 4
| 2
| 5
| 3
| 6
| 4
| 7
| 5
| 8
| 6
| 9
| 7
| 10
| -3
| 11
| -4
| 12
| -5
| 13
| -6
| 14
| -7
| 15
| 7
| 16
| 5
| 17
| 2
|
Построить блок схему к задаче(по вариантам). Указать тип алгоритма, что дано и что нужно найти.
№
| Задача
| 1
|
| 2
|
| 3
|
| 4
|
| 5
|
| 6
|
| 7
|
| 8
|
| 9
|
| 10
|
| 11
|
| 12
|
| 13
|
| 14
|
| 15
|
| 16
|
| 17
|
| Построить блок схему к задаче(по вариантам). Указать тип алгоритма, что дано и что нужно найти.
№
| Задача
| 1
| Дано двузначное число. Найти: число десятков в нем;
| 2
| Дано двузначное число. Найти: число единиц в нем;
| 3
| Дано двузначное число. Найти: сумму его цифр;
| 4
| Дано двузначное число. Найти: произведение его цифр.
| 5
| Дано двузначное число. Получить число, образованное при перестановке цифр заданного числа.
| 6
| Дано трехзначное число. Найти: ачисло единиц в нем;
| 7
| Дано трехзначное число. Найти: число десятков в нем;
| 8
| Дано трехзначное число. Найти: сумму его цифр;
| 9
| Дано трехзначное число. Найти: произведение его цифр.
| 10
| Дано трехзначное число. Найти число, полученное при прочтении его цифр справа налево.
| 11
| Дано трехзначное число. В нем зачеркнули первую слева цифру и приписали ее в конце. Найти полученное число.
| 12
| Дано трехзначное число. В нем зачеркнули последнюю справа цифру и при- писали ее в начале. Найти полученное число.
| 13
| Дано трехзначное число. Найти число, полученное при перестановке первой и второй цифр заданного числа
| 14
| Дано трехзначное число. Найти число, полученное при перестановке второй и третьей цифр заданного числа.
| 15
| Дано трехзначное число, в котором все цифры различны. Получить шесть чи- сел, образованных при перестановке цифр заданного числа.
| 16
| Дано натуральное число n (n > 9). Найти: число единиц в нем;
| 17
| Дано натуральное число n (n > 9). Найти: число десятков в нем.
|
Построить блок схему к задаче(по вариантам). Указать тип алгоритма, что дано и что нужно найти.
№
| Задача
| 1
| Определить максимальное и минимальное значения из двух различных веще- ственных чисел.
| 2
| Известны два расстояния: одно в километрах, другое — в футах ( 1 фут 0,305 м ). Какое из расстояний меньше?
| 3
| Известны две скорости: одна в километрах в час, другая — в метрах в секун- ду. Какая из скоростей больше?
| 4
| Даны радиус круга и сторона квадрата. У какой фигуры площадь больше?
| 5
| Даны объемы и массы двух тел из разных материалов. Материал какого из тел имеет большую плотность?
| 6
| Известны сопротивления двух несоединенных друг с другом участков элек- трической цепи и напряжение на каждом из них. По какому участку протекает меньший ток?
| 7
| Даны вещественные числа a, b, c (a 0). Выяснить, имеет ли квадратное уравнение с данными параметрами решение
| 8
| Известны площади круга и квадрата. Определить: уместится ли круг в квадрате?
| 9
| Известны площади круга и квадрата. Определить: уместится ли квадрат в круге?
| 10
| Известны площади круга и равностороннего треугольника. Определить: уместится ли круг в треугольнике?
| 11
| Известны площади круга и равностороннего треугольника. Определить: уместится ли треугольник в круге?
| 12
| Дано двузначное число. Определить: какая из его цифр больше: первая или вторая;
| 13
| Дано двузначное число. Определить: одинаковы ли его цифры
| 14
| Дано двузначное число. Определить: кратна ли трем сумма его цифр;
| 15
| Дано двузначное число. Определить: кратна ли сумма его цифр числу а.
| 16
| Дано трехзначное число. Определить, какая из его цифр больше: первая или последняя;
| 17
| Дано трехзначное число. Определить, какая из его цифр больше: вторая или последняя.
|
Построить блок схему к задаче(по вариантам). Указать тип алгоритма, что дано и что нужно найти.
№
| Задача
| 1
| Одна штука некоторого товара стоит 20,4 руб. Напечатать таблицу стоимости 2, 3, ..., 20 штук этого товара.
| 2
| Напечатать таблицу соответствия между весом в фунтах и весом в килограм- мах для значений 1, 2, ..., 10 фунтов (1 фунт = 453 г).
| 3
| Напечатать таблицу перевода расстояний в дюймах в сантиметры для значе- ний 10, 11, ..., 22 дюйма (1 дюйм = 25,4 мм).
| 4
| Напечатать таблицу перевода 1, 2, ... 20 долларов США в рубли по текущему курсу (значение курса вводится с клавиатуры).
| 5
| Считая, что Земля — идеальная сфера с радиусом R 6350 км, определить расстояние до линии горизонта от точки с высотой над Землей, равной 1, 2, ... 10 км.
| 6
| . Напечатать таблицу умножения на 7:
| 7
| Напечатать таблицу умножения на 9:
| 8
| Напечатать "столбиком" значения sin 2 , sin 3 , ..., sin 20 .
| 9
| Напечатать таблицу стоимости 50, 100, 150, ..., 1000 г сыра (стоимость 1 кг сыра вводится с клавиатуры).
| 10
| Вывести "столбиком" следующие числа: 2,1, 2,2, 2,3, ..., 2,8.
| 11
| . Вывести "столбиком" следующие числа: 3,2, 3,2, 3,3, ..., 3,9.
| 12
| Вывести "столбиком" следующие числа: 2,2, 2,4, 2,6, ..., 4,2.
| 13
| Вывести "столбиком" следующие числа: 4,4, 4,6, 4,8, ..., 6,4.
| 14
| Напечатать таблицу стоимости 100, 200, 300, ..., 2000 г конфет (стоимость 1 кг конфет вводится с клавиатуры).
| 15
| Составить программу вывода любого числа любое заданное число раз в виде, аналогичном показанному в предыдущей задаче.
| 16
| Напечатать таблицу умножения на 2:
| 17
| Напечатать таблицу умножения на 5:
|
Построить блок схему к задаче(по вариантам). Указать тип алгоритма, что дано и что нужно найти.
№
| Задача
| 1
| Даны числа а1, а2, а3...а10, . Определить их сумму
| 2
| Известна масса каждого из 12 предметов. Определить общую массу всего на- бора предметов.
| 3
| . Известны оценки абитуриента на четырех экзаменах. Определить сумму на- бранных им баллов.
| 4
| В ведомости указана зарплата, выплаченная каждому из сотрудников фирмы за месяц. Определить общую сумму выплаченных по ведомости денег
| 5
| Известна масса каждого предмета, загружаемого в автомобиль. Определить общую массу груза.
| 6
| Известно сопротивление каждого из элементов электрической цепи. Все эле- менты соединены последовательно. Определить общее сопротивление цепи.
| 7
| Известно сопротивление каждого из элементов электрической цепи. Все эле- менты соединены параллельно. Определить общее сопротивление цепи.
| 8
| Известны оценки по физике каждого из 20 учеников класса. Определить сред- нюю оценку.
| 9
| Известны оценки ученика по 10 предметам. Определить среднюю оценку
| 10
| Известны оценки по алгебре каждого ученика класса. Определить среднюю оценку
| 11
| Известна масса каждого предмета из некоторого набора предметов. Опреде- лить среднюю массу
| 12
| Известны оценки двух учеников по четырем предметам. Определить сумму оценок каждого ученика.
| 13
| Известны результаты двух спортсменов-пятиборцев в каждом из пяти видов спорта в баллах. Определить сумму баллов, полученных каждым спортсменом.
| 14
| Известен возраст (в годах в виде 14,5 лет и т. п.) каждого ученика двух клас- сов. Определить средний возраст учеников каждого класса. В каждом классе учатся 20 человек.
| 15
| Известно количество осадков, выпавших за каждый день января и марта. Оп- ределить среднедневное количество осадков за каждый месяц
| 16
| Известен рост каждого ученика двух классов. Определить средний рост уче- ников каждого класса. Численность обоих классов одинаковая.
| 17
| Известны оценки по физике каждого ученика двух классов. Определить среднюю оценку в каждом классе. Количество учащихся в каждом классе одинаковое.
| Построить блок схему к задаче(по вариантам). Указать тип алгоритма, что дано и что нужно найти.
№
| Задача
| 1
| Дано натуральное число. а) Верно ли, что сумма его цифр больше 10?
| 2
| Дано натуральное число. б) Верно ли, что произведение его цифр меньше 50?
| 3
| Дано натуральное число. в) Верно ли, что количество его цифр есть четное число?
| 4
| Дано натуральное число. г) Верно ли, что это число четырехзначное? Составное условие и вложенный условный оператор не использовать.
| 5
| Дано натуральное число д) Верно ли, что его первая цифра не превышает 6?
| 6
| Дано натуральное число. е) Верно ли, что оно начинается и заканчивается одной и той же цифрой?
| 7
| Дано натуральное число. ж) Определить, какая из его цифр больше: первая или последняя.
| 8
| Дано натуральное число. а) Верно ли, что сумма его цифр меньше a?
| 9
| Дано натуральное число. б) Верно ли, что произведение его цифр больше b?
| 10
| Дано натуральное число. в) Верно ли, что это число k-значное? Составное условие и вложенный услов- ный оператор не использовать.
| 11
| Дано натуральное число. г) Верно ли, что его первая цифра превышает m?
| 12
| Дано натуральное число. а) Верно ли, что сумма его цифр больше k, а само число четное?
| 13
| Дано натуральное число. б) Верно ли, что количество его цифр есть четное число, а само число не пре- вышает b?
| 14
| Дано натуральное число. в) Верно ли, что оно начинается цифрой x и заканчивается цифрой y?
| 15
| Дано натуральное число. г) Верно ли, что произведение его цифр меньше a, а само число делится на b?
| 16
| Дано натуральное число. д) Верно ли, что сумма его цифр больше m, а само число делится на n?
| 17
| Дано натуральное число. Определить: а) есть ли в нем цифра 3;
|
|