 
        
        ОКП
.docМинистерство образования Республики Беларусь
Учреждение образования
«БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ»
Институт информационных технологий
Специальность ИСиТ(э)
КОНТРОЛЬНАЯ РАБОТА
По курсу “Основы конструирования программ”
Вариант № 10
Студент-заочник 1 курса
Группы № 282322
ФИО Скепко Сергей
Михайлович
Адрес ул. Стариновская 4-213
Тел. +375 29 751-23-85
Минск, 2012
Содержание
Вариант 10
1. Алгоритм – это набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное число действий.
2. Свойства алгоритмов:
- 
Дискретность — алгоритм должен представлять процесс решения задачи как последовательное выполнение некоторых простых шагов. При этом для выполнения каждого шага алгоритма требуется конечный отрезок времени, то есть преобразование исходных данных в результат осуществляется во времени дискретно. 
- 
Детерминированность (определённость). В каждый момент времени следующий шаг работы однозначно определяется состоянием системы. Таким образом, алгоритм выдаёт один и тот же результат (ответ) для одних и тех же исходных данных. В современной трактовке у разных реализаций одного и того же алгоритма должен быть изоморфный граф. С другой стороны, существуют вероятностные алгоритмы, в которых следующий шаг работы зависит от текущего состояния системы и генерируемого случайного числа. Однако при включении метода генерации случайных чисел в список «исходных данных», вероятностный алгоритм становится подвидом обычного. 
- 
Понятность — алгоритм должен включать только те команды, которые доступны исполнителю и входят в его систему команд. 
- 
Завершаемость (конечность) — при корректно заданных исходных данных алгоритм должен завершать работу и выдавать результат за конечное число шагов. С другой стороны, вероятностный алгоритм может и никогда не выдать результат, но вероятность этого равна 0. 
- 
Массовость (универсальность). Алгоритм должен быть применим к разным наборам исходных данных. 
- 
Результативность — завершение алгоритма определёнными результатами. 
- 
Алгоритм содержит ошибки, если приводит к получению неправильных результатов либо не даёт результатов вовсе. 
- 
Алгоритм не содержит ошибок, если он даёт правильные результаты для любых допустимых исходных данных. 
3. Способы описания алгоритмов:
Основные способы записи алгоритмов:
- 
словесный (родном языке); 
- 
с помощью схем (графический); 
- 
языком псевдокоде; 
- 
языком программирования. 
4. Базовые структуры схем алгоритма.
это определенный набор блоков и стандартных способов их соединения для выполнения типичных последовательностей действий.
К основным структурам относятся следующие:
- 
линейные 
- 
разветвляющиеся 
- 
циклические 
5. Структурированные схемы и их построение.
6. Линейные и разветвляющиеся с труктуры.
Линейными называются алгоритмы, в которых действия осуществляются последовательно друг за другом. Стандартная блок-схема линейного алгоритма приводится ниже:

Разветвляющимся называется алгоритм, в котором действие выполняется по одной из возможных ветвей решения задачи, в зависимости от выполнения условий. В отличие от линейных алгоритмов, в которых команды выполняются последовательно одна за другой, в разветвляющиеся алгоритмы входит условие, в зависимости от выполнения или невыполнения которого выполняется та или иная последовательность команд (действий).
В качестве условия в разветвляющемся алгоритме может быть использовано любое понятное исполнителю утверждение, которое может соблюдаться (быть истинно) или не соблюдаться (быть ложно). Такое утверждение может быть выражено как словами, так и формулой. Таким образом, алгоритм ветвления состоит из условия и двух последовательностей команд.
В зависимости от того, в обоих ветвях решения задачи находится последовательность команд или только в одной разветвляющиеся алгоритмы делятся на полные и не полные (сокращенные).
Стандартные блок-схемы разветвляющегося алгоритма приведены ниже:

7. Циклические структуры. Типы циклов.
Циклическим называется алгоритм, в котором некоторая часть операций (тело цикла — последовательность команд) выполняется многократно. Однако слово «многократно» не значит «до бесконечности». Организация циклов, никогда не приводящая к остановке в выполнении алгоритма, является нарушением требования его результативности — получения результата за конечное число шагов.
Перед операцией цикла осуществляются операции присвоения начальных значений тем объектам, которые используются в теле цикла. В цикл входят в качестве базовых следующие структуры:
- 
блок проверки условия 
- 
блок, называемый телом цикла 
Существуют три типа циклов:
- 
Цикл с предусловием 
- 
Цикл с постусловием 
- 
Цикл с параметром (разновидность цикла с предусловием) 
Если тело цикла расположено после проверки условий , то может случиться, что при определенных условиях тело цикла не выполнится ни разу. Такой вариант организации цикла, управляемый предусловием, называется циклом c предусловием.
Возможен другой случай, когда тело цикла выполняется по крайней мере один раз и будет повторяться до тех пор, пока не станет ложным условие. Такая организация цикла, когда его тело расположено перед проверкой условия, носит название цикла с постусловием.
Цикл с параметром является разновидностью цикла с предусловием. Особенностью данного типа цикла является то, что в нем имеется параметр, начальное значение которого задается в заголовке цикла, там же задается условие продолжения цикла и закон изменения параметра цикла. Механизм работы полностью соответствует циклу с предусловием, за исключением того, что после выполнения тела цикла происходит изменение параметра по указанному закону и только потом переход на проверку условия.
Стандартные блок-схемы циклических алгоритмов приведены ниже:

8. Предопределенные процессы. Рекурсия.
Предопределённый процесс-
 Символ отображает выполнение процесса,
состоящего из одной или нескольких
операций, который определен в другом
месте программы (в подпрограмме, модуле).
Внутри символа записывается название
процесса и передаваемые в него данные.
Например, в программировании − вызов
процедуры или функции.
 Символ отображает выполнение процесса,
состоящего из одной или нескольких
операций, который определен в другом
месте программы (в подпрограмме, модуле).
Внутри символа записывается название
процесса и передаваемые в него данные.
Например, в программировании − вызов
процедуры или функции.
Реку́рсия — процесс повторения элементов самоподобным образом. Например, если два зеркала установить друг напротив друга, то возникающие в них вложенные отражения суть одна из форм бесконечной рекурсии.
Рекурсия — вызов функции (процедуры) из неё же самой, непосредственно (простая рекурсия) или через другие функции (сложная или косвенная рекурсия), например, функция вызывает функцию , а функция — функцию . Количество вложенных вызовов функции или процедуры называется глубиной рекурсии.
9 .
 Задача №10. (одномерный массив) найти
номер последнего максимального элемента
среди элементов, лежащих в диапазоне[c,d]
и расположенных до первого четного
элемента.
.
 Задача №10. (одномерный массив) найти
номер последнего максимального элемента
среди элементов, лежащих в диапазоне[c,d]
и расположенных до первого четного
элемента.
 
	   k=1 
	   k=k+1








 
	 
 
 
	
 
 
 
 


 Нет
                     Нет
  
	       i=1

 
	 
 Да
                                                                     
                          Да
 
	   k!=i+1


 
	 
 
 
 
 
 Нет
                       Нет
Д max=a[i]
 
	 
 
 
 а
а
 


 Нет
                      Нет
 


 Нет		
      Да
                     Нет		
      Да
 max=a[i]
 
	 
 
 
 
 
 




 
Описание:
Задан целочисленный одномерный массив a из n элементов.
Начало программы, ввод элементов(n) в диапазоне[c,d].
10. Задача №10. (двумерный массив) Проверить, все ли строки матрицы упорядочены по возрастанию. Если нет, найти первую неупорядоченную строку и упорядочить.
 
	   f=false 
	  i=1
	j=1





















 
	 
	 
 
f:=true
	           m:=i







 
	
Нет



 
 


 Нет
                                   Нет
Да
 









 Нет
                                                                     
                                        Да
               Нет
                                                                     
                                        Да
 min=a[m,
	j] min=a[m,
	q]  c:=q
 
	 
 
 
 
 
 
 
	 
 
 
 
 
 



 Нет
                    Нет
Нет
 


 
                          
Да
  a[m,
	q]=a[m, j] a[m,
	j]=min


 
	 
 
 
 
 
 Нет
                                                     Да
                          Нет
                                                     Да




















 
Описание:
