1) |
Ввод (N,A) |
|
|
|
|
2) |
M:=N |
|
{M:=N |
- сначала весь массив } |
|
|
P:=1 |
{P – признак: P=1 – надо проходить; P=0 – не надо } |
|||
3) |
Пока |
P=1, повторяй |
|
|
|
|
<< P:=0; |
{если ни одной перестановки, то останется |
|||
P=0} |
|
|
|
|
|
|
< Для |
I от 1 до М-1 шаг 1 повторяй, |
{M-1, т.к. считаем пары |
||
чисел} |
|
|
|
|
|
|
если |
A(I) > A(I+1) , то |
|
|
|
|
< C:=A(I); A(I):= A(I+1); A(I+1):=C; |
{ Обмен данными через |
|||
|
|
|
|
вспомогательную ячейку} |
|
|
|
P:=1> |
|
|
|
|
M:=M-1 >> |
|
|
|
|
4) |
Вывод (А) |
{это уже упорядоченный набор чисел} |
|||
|
Здесь мы имеем ситуацию с так называемыми «вложенными цик- |
||||
лами». Для наглядности приняты обозначения: |
|
||||
|
Внутренний цикл: |
< Для I ……. |
P:=1> |
|
|
|
Внешний цикл: |
<< P:=0; < Внутренний цикл >; |
M:=M-1 |
||
>>.
Задание. Нарисовать блок-схему последнего алгоритма. Перечисленными выше структурами в начальном изучении огра-
ничивается знакомство с неформальным программированием.
Контрольные вопросы и упражнения
1. Записать формульно-словесный алгоритм вычисления следующих выражений:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x < 0, |
|
|
|
А |
2 |
+ В |
2 |
, |
если |
А ≤ В , |
|
|
, |
|
если |
||
|
|
|
|
|
y = А |
|
|
|
|||||||
а) |
y = |
|
|
+ В)2 , |
|
А > В |
б) |
|
|
|
|
|
х > 0, |
||
|
|
|
|
|
|
|
|||||||||
(А |
если |
А |
x , если |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
х = 0 |
|
|
|
|
|
|
|
|
|
|
|
А , |
|
если |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2.Какие типы алгоритмов вы знаете? Подберите пример алгоритма для каждого типа.
3.В каких случаях используются циклы с условием?
4.Что такое «тело цикла с условием»?
25
5.Может ли тело цикла с условием не выполниться ни разу?
6.Может ли тело цикла с условием выполняться бесконечное число раз?
7.В каких случаях используется цикл с параметром? Как он оформляется? Что происходит при его выполнении?
8.Может ли тело цикла с параметром не выполнится ни разу?
9.Чему равно количество повторений тела цикла с параметром, если параметр цикла принимает:
а) все целые значения от 1 до 10? б) все целые значения от а до b?
в) все нечетные значения от 1 до 20? г) все значения от 10 до 100 с шагом 7?
10.Как поменять местами содержимое двух ячеек памяти?
11.Есть 27 монет. Известно, что одна монета фальшивая (ее вес меньше). На чашечных весах можно сравнивать вес монет (весы показывают, какие монеты весят больше, меньше или вес одинаковый). Найдите фальшивую монету. Составить алгоритм решения этой задачи.
12.Нарисовать блок-схему алгоритма прямого вычисления выражения 4х3 + 3х2 + 2х +1 по заданному значению х.
13.Нарисуйте блок-схему с использованием циклического вычисления для выражения 4х3 + 3х2 + 2х +1 записанного в виде х(х(4х
+3) +2) +1.
14.В упражнениях 12, 13 использованы разные алгоритмы вычисления тождественных выражений. Почему алгоритм из упражнения 13 более рационален?
15.Решите задачу 8, используя цикл с параметром.
16.Решите задачу 9, используя циклы с условием.
17.Нарисовать блок-схему для вычисления выражения y
y = |
1 |
+ |
1 |
+ |
1 |
+ |
1 |
+ ... + |
|
1 |
. |
2 |
2 |
2 |
2 |
2 |
|||||||
2 |
3 |
|
4 |
|
5 |
|
15 |
|
|||
18.В чем заключается «нисходящее проектирование программ»?
19.Изложите суть методики построения алгоритма для вычисления сумм бесконечных рядов.
20.Для чего в алгоритме упорядочения массива (задача 11) использовано понятие признака?
21.Что такое «вложенные циклы»?
26
Пример контрольного теста по алгоритмизации
1.Строго определенная последовательность действий, необходимых для решения поставленной задачи, – это …
а) метод решения; б) алгоритм; в) блок – схема.
2.Алгоритм является …
а) последовательностью команд, которую может выполнить исполнитель;
б) системой команд исполнителя; в) математической моделью; г) информационной моделью.
3.Ниже перечислены основные свойства алгоритма. Некоторые из этих понятий не относятся к основным свойствам. Укажите, какие именно.
а) дискретность; б) определенность; в) актуальность; г) результативность; д) массовость; е) строгость; ж) секретность.
4.Свойство, означающее, что решение задачи, записанное в виде алгоритма, разбито на отдельные простейшие команды, которые расположены в порядке их выполнения, – это …
а) дискретность; б) определенность;
в) результативность.
5.Массовость алгоритма – это свойство заключается в том, что каждый алгоритм, разработанный для решения некоторой задачи, должен быть применен для решения задач данного типа при всех допустимых значениях исходных данных. Верно ли данное высказывание?
6.Какие Вы знаете способы записи алгоритмов:
а) описание с помощью слов; б) описание с помощью формул; в) математическое описание;
27
г) описание в виде блок – схем; д) описание с помощью графических схем;
е) с использованием алгоритмического языка.
7.Графическое описание алгоритмов как последовательности действий называется … . Вставьте пропущенное словосочетание.
8.Какая фигура в блок-схеме обозначает выполнение операции или группы операций?
1 |
2 |
3 |
4 |
9.Команда алгоритма, в которой делается выбор: выполнять или не выполнять какую либо группу команд, называется … . Вставьте слово.
10.В зависимости от особенностей своего построения алгоритмы делятся на несколько основных групп:
а) линейные; б) вычислительные;
в) разветвляющиеся; г) сложные; д) обработки данных;
е) циклические; ж) структурные.
Некоторые из этих понятий не относятся к основным группам алгоритмов. Укажите, какие именно.
11.«Линейным называется алгоритм, в котором все этапы выполняются строго последовательно». Верно ли такое высказывание?
12.Укажите правильный вариант ответа. Циклом называется:
а) участок решения задачи, выполняемый строго последователь-
но;
б) последовательность действий, выполняемых многократно, каждый раз при новых значениях параметров;
в) выбор одного из нескольких вариантов вычислительного процесса.
28
Заключение
Приведенные материалы будут способствовать формированию у учащихся компетенций, необходимых при решении задач на конструирование алгоритмов на практических занятиях, а в дальнейшем при написании программ, подготовке и сдаче лабораторных работ, компьютерных тестов и зачетов по рассмотренным темам.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1.Могилев, А.В. Информатика: учебное пособие/ А.В.Могилев, Н.И. Пак, Е.К. Хеннер. - М.: Академия, 2004. – 848 с.
2.Информатика: учебник / под ред. Н.В. Макаровой. – М: Финансы и статистика, 2008. – 766 с.
3.Окулов С. М. Основы программирования/ С. М. Окулов. - М.: БИНОМ, 2013. – 440 с.
4.Кудинов, Ю. И. Основы современной информатики/ Ю. И. Кудинов, Ф. Ф Пащенко. – М.: Лань, 2010. – 256 с.
5.Основы алгоритмизации вычислительных процессов: метод. указания по курсу «Информатика» / ВГАСУ; В. П. Авдеев, В. И. Гильмутдинов, А. Д. Кононов, А. А. Кононов. – Воронеж. –, 2005. – 41 с.
6.Информатика: учебное пособие / В. И. Гильмутдинов, А. Д. Кононов, А. А.Кононов, - Воронеж, 2010. – 56 с.
7.Хлебников, А. А. Информатика: учебник/ А. А. Хлебников. – М.: Феникс, 2013. – 443 с.
8.Информатика: учебное пособие / А. Д. Кононов, А. А. Кононов; ВГАСУ. – Воронеж, 2016. – 53 с.
9.Основы программирования на языке Паскаль: учебное пособие по курсу «Информатика» / А.Д.Кононов, А.А. Кононов; ВГТУ. – Воронеж, 2017. – 53 с.
10.Информатика: учебное пособие / А. Д. Кононов, А. А. Кононов.
–Воронеж: Изд-во ВГТУ. - 2018. – 100 с.
29