Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование4172 / Лекции / Лекция 1. Содержание дисциплины.doc
Скачиваний:
54
Добавлен:
12.03.2015
Размер:
122.88 Кб
Скачать

Содержание части 1 «Основы программирования»

В этой части дается классификация языков программирования, рассматриваются основные понятия: алгоритм, программа, система программирования. Рассматриваются способы описания алгоритмов, критерии качества программы.

Рассматриваются основные конструкции языка С (и С++) и базовая технология создания программ, отвечающих современным требованиям качества и надежности.

Чтобы программа была качественной и надежной, она должна иметь простую структуру, быть хорошо читаемой и легко модифицируемой. Структурный подход к программированию позволяет создавать такие программы.

Структурное программирование – это технология создания программ, основанная на использовании трех базовых структур: последовательности, ветвления и цикла. На структуры накладывается ряд ограничений, что позволяет упростить разработку алгоритмов и программ, облегчить отладку программ и при необходимости их модификацию.

На рис. 1.1 представлены базовые структуры структурного программирования. Каждая структура должна иметь один вход и один выход. Любой алгоритм строится только из этих структур, где каждый блок, изображенный в виде прямоугольника («процесс») может быть заменен любой из трех структур. Например, внутри цикла может быть последовательность, содержащая ветвление и внутренний цикл (рис. 1.2).

Рис. 1.2. Вложение базовых структур

Каждой структуре в конкретном языке программирования соответствует определенный оператор. Например, в языке С (С++) структура ветвления программируется с помощью условного оператора if, цикл с предусловием – с помощью оператора цикла while или for, а циклу с постусловием соответствует оператор do while. Если внутри цикла или ветвления содержится последовательная структура, то в программе пишется составной оператор – группа операторов, заключенная в фигурные скобки.

В структурной программе нет необходимости использовать оператор goto, который только запутывает программу. В программе нет беспорядочных переходов вверх/вниз, операторы выполняются последовательно. Такую программу легко читать (и понять), легко модифицировать.

Сложные программы разбиваются на отдельные части, которые оформляются как подпрограммы. Разбиение программы на подпрограммы позволяет облегчить процесс написания и отладки программы. Правила определения подпрограмм и их вызова тоже рассмотрены в первой части курса программирования.

Рассмотрен также вопрос разработки сложных программ по принципу «сверху вниз», когда разработка программы осуществляется поэтапно. На первом этапе разрабатывается главная программа, на втором этапе – подпрограммы, вызываемые из главной программы, на следующем этапе – подпрограммы следующего уровня и т. д. Этот метод, так же как и структурный подход, позволяет облегчить разработку и отладку сложных программ.

Часть 1 содержит различные примеры решения типовых задач числовой и символьной обработки, использования массивов, структур, примеры работы с файлами. Содержание части 2 «Методы программирования»

В этой части рассматриваются методы организации и обработки данных в оперативной памяти компьютера.

Любая задача, решаемая на компьютере, представляет собой обработку данных. Для решения задачи необходимо разработать структуру данных и алгоритм. Сложность алгоритма, его эффективность во многом зависят от того, какую структуру имеют данные в программе. В сложных программных системах могут использоваться данные разных типов, например, таблицы, очереди, стеки, графы, деревья, множества. Это так называемые абстрактные структуры (типы) данных – АСД. Как описать АСД в программе (и, следовательно, как они будут храниться в памяти компьютера), как реализовать операции над этими данными, должен знать любой программист. С этими вопросами вам и предстоит познакомиться во втором семестре.

Существующие методы хранения данных в ОП можно разбить на две группы: последовательное (сплошное) размещение данных и связанное (цепное) хранение.

При последовательном хранении все элементы структур данных размещаются в памяти последовательно, между элементами нет промежутков (участков памяти, не принадлежащих данной структуре). К таким структурам хранения относятся массивы.

При связанном (цепном) представлении данных элементы структуры данных размещаются в памяти в произвольном порядке, между ними могут быть промежутки. Чтобы отыскать в памяти отдельные элементы, в каждом элементе хранятся адреса одного или нескольких других элементов. К таким структурам хранения относятся списки (связанные) и сети. В списках обычно каждый элемент, кроме информационной части, содержит один указатель на следующий элемент списка. В сетях в каждом элементе может быть несколько указателей на другие элементы.

В лекционном материале второй части рассматриваются вопросы организации списков и сетей, программирования операций над списками и сетями на языке С (С++).

Далее рассматриваются различные абстракт­ные структуры данных. Дается их определение, перечисляются основные операции, способы их хранения и реализация операций на языке С (С++). Рассматриваются также основные комбинаторные алгоритмы.