Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольня работа по окп.docx
Скачиваний:
53
Добавлен:
01.04.2014
Размер:
60.59 Кб
Скачать

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

конец

Пример:

Возможные варианты решения:

  1. нет нечетных;

  2. нечетный элемент первый;

  3. нет положительных элементов после нуля;

  4. есть решение (максимальное четное до нечетного).

Введем массив из 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

Пример:

Возможные варианты решения:

  1. нет строки со всеми нулями;

  2. нет столбца с таким номером строки;

  3. есть такая строка и столбец;

Вводим количество строк 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;

Далее происходит вывод полученной матрицы.

Заключение

В ходе контрольной работы по курсу «основы конструирования программ» были изучены и раскрыты следующие вопросы:

Определение алгоритма;

Свойства алгоритмов;

Способы описания алгоритма;

Базовые структуры блок-схем;

Структурированные блок-схемы и их построение;

Линейные и разветвляющиеся структуры;

Циклические структуры. Типы циклов;

Предопределенные процессы. Рекурсия.

Также результатом выполнения контрольной работы являются создание блок-схемы к двум задачам: на одномерные и на двумерные массивы.

Список используемых источников:

  1. Н.Вирт. «Алгоритмы + структуры данных = программы»;

  2. Голицин О. Л., Попов И. И. Основы алгоритмизации и программирования. М.:ФОРУМ: ИНФРА-М, 2005.

  3. Аляев Ю.А., Козлов О.А. «Алгоритмизация и языки программирования Pascal, C++, Visual Basic: Учебно-справочное пособие». М.: Изд-во "Финансы и статистика", 2004.

15