
- •1. Определение алгоритма.
- •2. Свойство алгоритма
- •3. Способы описание алгоритма.
- •4. Базовые структуры блок схем.
- •5. Структурированные блок-схемы и их построение.
- •6. Линейные и разветвляющиеся структуры.
- •7. Циклические структуры. Типы циклов.
- •8. Предопределенные процессы. Рекурсия.
- •1.Составить блок-схему задачи на одномерные массивы.
- •2.Составить блок схему задачи на двумерный массив.
1.Составить блок-схему задачи на одномерные массивы.
Найти значение максимального элемента среди четных (по значению) элементов, Расположенных до первого нечетного элемента.
n

начало


i=0


i++

a[i]


i=0
i < n
i

i< n&&a[i]%2==0

i++

i

да нет
i==n
да нет
i==0
k= i,amax=a[0]
Нет нечетных
i=0

i < k
Нечетный элемент первый

да нет
amax>a[i]
amax=a[i]
i++

i


вывод amax
конец

Пример:
Возможные варианты решения:
нет нечетных;
нечетный элемент первый;
нет положительных элементов после нуля;
есть решение (максимальное четное до нечетного).
Введем массив из 5 элементов: 0, -2, 10 , 3 , 4.
Таким образом, сначала вводится размерность массива n=5. Далее i=0;
Далее, в цикле пока i<n происходит следующая последовательность действий:
a[0]: = 0;
i=i+1; a[1]= -2;
i:=i+1; a[2]=10;
i:=i+1; a[3]=3 ;
i:=i+1; a[4]=4;
Далее снова обнуляется i=0, после чего происходит поиск первого не четного:
i=0; a[0]%2==0; i=i+1; - и так далее донахождения нечетногочисла.
i=3; a[3]%2!=0; - следовательно происходит выход из цикла (или если нет нечетного до i==n).
Далее происходит проверка условия i==n. i==0, Т.е. условие не выполняется, следовательно следующей происходит нахождения максимального числа:
Далее снова обнуляется i=0;
И присваиваются значиния k= i,amax=a[0];
Далее выполняется цикл от i до k и проверяется amax больше ли текущего заначения a[i] :
i=0; a[0] = 0 0>0 нет;
i=i+1; a[1]= -2 0>-2 да;
i=i+1; a[2]=10 0>10 нет происходит присвоение amax значение 10;
Далее выполняется вывод amax и выход из алгоритма.
2.Составить блок схему задачи на двумерный массив.
Найти в матрице первую строку, все элементы которой равны нулю.
Все элементы столбца с таким же номером уменьшить вдвое.
1
Пример:
Возможные варианты решения:
нет строки со всеми нулями;
нет столбца с таким номером строки;
есть такая строка и столбец;
Вводим количество строк n=3, количество столбцов m=2;
Далее вводим элементы матрицы:
a[0,0]=4; a[0,1]=-2;
a[1,0]=0; a[1,1]= 0;
a[2,0]=3; a[2,1]=6;
ищем строку со всеми нулями:
i=0; j=0; a[0,0]%2!=0 следовательно выход из цикла и i=i+1;
i=1; j=0; a[1,0]%2==0 ;
i=1; j=1; a[0,1]%2==0 следовательно выход из цикла и присваивания k номер строки;
Далее проверяется условие есть ли такой столбец, в нашем случае есть, следовательно выполняется цикл деление всех элементов столбца на 2:
i=1: a[1,2]:=a[1,2] div 2; т.е. a[1,2]=-1;
Далее происходит вывод полученной матрицы.
Заключение
В ходе контрольной работы по курсу «основы конструирования программ» были изучены и раскрыты следующие вопросы:
Определение алгоритма;
Свойства алгоритмов;
Способы описания алгоритма;
Базовые структуры блок-схем;
Структурированные блок-схемы и их построение;
Линейные и разветвляющиеся структуры;
Циклические структуры. Типы циклов;
Предопределенные процессы. Рекурсия.
Также результатом выполнения контрольной работы являются создание блок-схемы к двум задачам: на одномерные и на двумерные массивы.
Список используемых источников:
Н.Вирт. «Алгоритмы + структуры данных = программы»;
Голицин О. Л., Попов И. И. Основы алгоритмизации и программирования. М.:ФОРУМ: ИНФРА-М, 2005.
Аляев Ю.А., Козлов О.А. «Алгоритмизация и языки программирования Pascal, C++, Visual Basic: Учебно-справочное пособие». М.: Изд-во "Финансы и статистика", 2004.