Практическая
раборта № 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. Блок-схема поиска максимума
Циклические алгоритмы
Циклический алгоритм предусматривает
повторение одной операции или нескольких операций в зависимости от условия
задачи.
Из
циклических алгоритмов выделяют два типа:
1)
с заданным количеством циклов или со
счётчиком циклов;
2)
количество циклов неизвестно.
Пример:
В цикле вычислить значение функции z=x*y при условии, что одна из
переменных x
меняется в каждом цикле на единицу, а другая переменная у не
меняется и может быть любым целым числом. В результате выполнения цикла при
начальном значении переменной х=1 можно получить таблицу умножения.
Количество циклов может быть любым. Составить блок-схему решения задачи.
Решение:
В примере количество циклов задаётся. Соответственно выбирается алгоритм
циклов первого типа. Алгоритм этой задачи приводится на рис. 4.
Во
втором блоке вводятся количество циклов n и любые целые числа х,
y.
В
блок-схеме появился новый блок 3, в котором переменная i считает
количество циклов, после каждого цикла увеличиваясь на единицу, пока счётчик не
будет равен i=n. При i=n будет выполнен последний
цикл.
В
третьем блоке указывается диапазон изменения счётчика цикла (от i =1 до i=n).
В
четвёртом блоке изменяются значения переменных: z, x.
В
пятом блоке выводится результат. Четвёртый и пятый блоки повторяются в каждом
цикле.
Рис.4 . Циклический алгоритм со счётчиком
циклов
Этот
тип циклических алгоритмов предпочтителен, если дано количеством циклов.
Если количество циклов неизвестно, то
блок-схемы циклических алгоритмов могут быть представлены в виде рисунков 5, 6.
Пример:
Вычислить у=у-x
пока y>x,
если y=30,
x=4.
Подсчитать количество выполненных циклов, конечное значение переменной у.
В цикле вывести значение переменной у, количество выполненных
циклов. Составить блок-схему решения задачи.
Решение:
В примере количество циклов неизвестно. Соответственно выбирается алгоритм
циклов второго типа. Алгоритм этой задачи приводится на рис. 5.
Условие
проверяется на входе в цикл. В теле цикла выполняется два блока:
1)
у=у-х; i=i+1;
2)
вывод значений переменных i,
y.
Цикл
выполняется до тех пор, пока выполняется условие y>x. При условии
равенства этих переменных у=х или y<x цикл заканчивается.
Алгоритм,
представленный на рис.5, называется циклический алгоритм с предусловием,
так как условие проверяется в начале цикла или на входе в цикл.
Рис.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 и цикл повторяется.
Рис.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
|
2. При
заданном Х условие выполнется? Написать результат вычисления и ответ попадаем в
условие или нет.
Входные данные по вариантам
№
|
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
|
3. Написать
результат выполнения алгоритма с указанными входными данными
Входные данные по вариантам
№
|
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
|
4. Написать
результат выполнения алгоритма с указанными входными данными
Входные данные по вариантам
№
|
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
|
5. Построить
блок схему к задаче(по вариантам). Указать тип алгоритма, что дано и что нужно
найти.
№
|
Задача
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
16
|
|
17
|
|
6. Построить
блок схему к задаче(по вариантам). Указать тип алгоритма, что дано и что нужно
найти.
№
|
Задача
|
1
|
Дано двузначное число.
Найти: число десятков в нем;
|
2
|
Дано двузначное число.
Найти: число единиц в нем;
|
3
|
Дано двузначное число.
Найти: сумму его цифр;
|
4
|
Дано двузначное число.
Найти: произведение его цифр.
|
5
|
Дано двузначное число.
Получить число, образованное при перестановке цифр заданного числа.
|
6
|
Дано трехзначное число.
Найти: ачисло единиц в нем;
|
7
|
Дано трехзначное число.
Найти: число десятков в нем;
|
8
|
Дано трехзначное число.
Найти: сумму его цифр;
|
9
|
Дано трехзначное число.
Найти: произведение его цифр.
|
10
|
Дано трехзначное число.
Найти число, полученное при прочтении его цифр справа налево.
|
11
|
Дано трехзначное число.
В нем зачеркнули первую слева цифру и приписали ее в конце. Найти полученное
число.
|
12
|
Дано трехзначное число.
В нем зачеркнули последнюю справа цифру и при- писали ее в начале. Найти
полученное число.
|
13
|
Дано трехзначное число.
Найти число, полученное при перестановке первой и второй цифр заданного числа
|
14
|
Дано трехзначное число.
Найти число, полученное при перестановке второй и третьей цифр заданного числа.
|
15
|
Дано трехзначное число,
в котором все цифры различны. Получить шесть чи- сел, образованных при
перестановке цифр заданного числа.
|
16
|
Дано натуральное число
n (n > 9). Найти: число единиц в нем;
|
17
|
Дано натуральное число
n (n > 9). Найти: число десятков в нем.
|
7. Построить
блок схему к задаче(по вариантам). Указать тип алгоритма, что дано и что нужно
найти.
№
|
Задача
|
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
|
Дано трехзначное число.
Определить, какая из его цифр больше: вторая или последняя.
|
8. Построить
блок схему к задаче(по вариантам). Указать тип алгоритма, что дано и что нужно
найти.
№
|
Задача
|
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:
|
9. Построить
блок схему к задаче(по вариантам). Указать тип алгоритма, что дано и что нужно
найти.
№
|
Задача
|
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
|
Известны оценки по
физике каждого ученика двух классов. Определить среднюю оценку в каждом
классе. Количество учащихся в каждом классе одинаковое.
|
10. Построить
блок схему к задаче(по вариантам). Указать тип алгоритма, что дано и что нужно
найти.
№
|
Задача
|
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;
|
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.