Разделы презентаций


Программирование на ЭВМ Лекция 7. Основные методологии программирования

Содержание

Основные современные методологии программированияСтруктурное программирование;Объектно-ориентированное программирование;И другие 

Слайды и текст этой презентации

Слайд 1Программирование на ЭВМ Лекция 7. Основные методологии программирования. Модульное программировние
Доцент, к.

т. н. Исаев А. В.
avisz@yandex.ru
Ауд. 7 или 234

Программирование  на ЭВМ Лекция 7. Основные методологии программирования. Модульное программировниеДоцент, к. т. н. Исаев А. В.avisz@yandex.ruАуд.

Слайд 2Основные современные методологии программирования
Структурное программирование;
Объектно-ориентированное программирование;
И другие 

Основные современные методологии программированияСтруктурное программирование;Объектно-ориентированное программирование;И другие 

Слайд 3Структурное программирование
Структурное программирование — методология разработки программного обес­печения, в основе

которой лежит представление программы в виде иерархической структуры блоков. Предложена

в 70-х года XX века Э. Дейкстрой, разработана и дополнена Н. Виртом.
В соответствии с этой методологией, любая программа представляет собой структуру, построенную из трёх типов базовых конструкций:
последовательное исполнение — однократное выполнение операций в том порядке, в котором они записаны в тексте программы;
ветвление — однократное выполнение одной из двух или более операций, в зависимости от выполнения некоторого заданного условия;
цикл — многократное исполнение одной и той же операции до тех пор, пока выполняется некоторое заданное условие (условие продолжения цикла).
В программе базовые конструкции могут быть вложены друг в друга произвольным образом, но никаких других средств управления последовательностью выполнения операций не предусматривается.
Повторяющиеся фрагменты программы (либо не повторяющиеся, но представляющие собой логически целостные вычислительные блоки) могут оформляться в виде подпрограмм (процедур или функций). В этом случае в тексте основной программы, вместо помещённого в подпрограмму фрагмента, вставляется команда вызова подпрограммы. При выполнении такой команды (инструкции) выполняется вызванная подпрограмма, после чего исполнение программы продолжается с инструкции, следующей за командой вызова подпрограммы.

Структурное программированиеСтруктурное программирование — методология разработки программного обес­печения, в основе которой лежит представление программы в виде иерархической

Слайд 4Структурное программирование
Следование принципам структурного программирования сделало тексты программ, даже довольно

крупных, нормально читаемыми. Серьёзно облегчилось понимание программ, появилась возможность разработки

программ в нормальном промышленном режиме, когда программу может без особых затруднений понять не только её автор, но и другие программисты. Это позволило разрабатывать достаточно крупные для того времени (1970-е гг.) программные комплексы силами коллективов разработчиков, и сопровождать эти комплексы в течение многих лет, даже в условиях неизбежной ротации кадров.


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

Слайд 5Структурное программирование
Основные достоинства структурного программирования:
Структурное программирование позволяет значительно сократить число

вариантов построения программы по одной и той же спецификации, что

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

Структурное программированиеОсновные достоинства структурного программирования:Структурное программирование позволяет значительно сократить число вариантов построения программы по одной и той

Слайд 6Объектно-ориентированное программирование
Объектно-ориентированное программирование (ООП) — методология программирования, в которой основными

являются понятия объектов и классов.
Основные концепции объектно-ориентированного подхода:
Система состоит из объектов;
Объекты

некоторым образом взаимодействуют между собой;
Каждый объект характеризуется своим состоянием и поведением;
Состояние объекта задаётся значением полей данных;
Поведение объекта задаётся методами.
Кроме того, в современном объектно-ориентированном программировании часто большое значение имеют понятия события (так называемое событийно-ориентированное программирование) и компонента (компонентное программирование).


Объектно-ориентированное программированиеОбъектно-ориентированное программирование (ООП) — методология программирования, в которой основными являются понятия объектов и классов.Основные концепции объектно-ориентированного подхода:Система

Слайд 7Объектно-ориентированное программирование
Языки объектно-ориентированного программирования принято делить на объектные, в которых

существуют классы и объекты, и собственно объектно-ориентированные, в которых программист

может не только пользоваться предопределёнными классами, но и задавать собственные пользовательские классы.
Объектное и объектно-ориентированное программирование возникло в результате развития идеологии структурного программирования, где данные и подпрограммы их обработки формально не связаны.
Объектно-ориентированное программирование в настоящее время является абсолютным лидером в области прикладного программирования (языки Java, C#, C++, JavaScript и др.). В то же время в области системного программирования до сих пор лидирует парадигма процедурного программирования.
Объектно-ориентированное программированиеЯзыки объектно-ориентированного программирования принято делить на объектные, в которых существуют классы и объекты, и собственно объектно-ориентированные,

Слайд 8Модульное программирование
Модульное программирование – это организация программы как совокупности небольших

независимых блоков, называемых модулями.
Использование модульного программирования позволяет упростить тестирование программы

и обнаружение ошибок.
Основным принципом модульного программирования является принцип «разделяй и властвуй».



Модульное программированиеМодульное программирование – это организация программы как совокупности небольших независимых блоков, называемых модулями.Использование модульного программирования позволяет

Слайд 9Основные принципы модульного программирования
Основной принцип программного модуля сформулировал Д. Парнас

(D Parnas):
Для написания одного модуля должно быть достаточно минимальных

знаний о тексте другого

Таким образом, была выдвинута концепция скрытия информации (information hiding) в программировании. Для реализации этой концепции и были разработаны модули, основной особенностью которых является неподверженность влиянию глобальных переменных.

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

Основные принципы модульного программированияОсновной принцип программного модуля сформулировал Д. Парнас (D Parnas): Для написания одного модуля должно

Слайд 10Основные принципы модульного программирования
Общее количество модулей, используемых в программе, должно

определяться декомпозицией поставленной задачи на независимые подзадачи.
В предельном случае

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

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

Слайд 11Program primer;
Uses
modul1, modul2, modul3

{в программе
можно использовать
процедуры и функции, описанные

в подключенных модулях}
Unit modul1;
{описание процедур, функций}
Unit modul2;
{описание процедур, функций}
Unit modul3;
{описание

процедур, функций}
Program primer;Usesmodul1, modul2, modul3…{в программеможно использовать процедуры и функции, описанные в подключенных модулях}Unit modul1;{описание процедур, функций}Unit modul2;{описание

Слайд 12Место модулей в технологии разработки программного проекта

Место модулей в технологии разработки программного проекта

Слайд 13Модули в Pascal
Подключаемый модуль — это файл, содержащий исходный текст

на языке Pascal, имеющий определенную структуру, предназначенный для использования как

в главной программе, так и в других подключаемых модулях.

Модули в PascalПодключаемый модуль — это файл, содержащий исходный текст на языке Pascal, имеющий определенную структуру, предназначенный

Слайд 14Общая структура модуля
Общая структура модуля в Pascal:
unit ;
interface
implementation
end.
Структурно в

подключаемом модуле можно выделить три раздела:
1) Интерфейсный раздел interface (должен

быть объявлен, но может быть пустым);
2) Раздел реализаций implementation (должен быть объявлен, но может быть пустым);
3) Тело модуля, заключенное между словами begin и end. (может отсутствовать).

Общая структура модуляОбщая структура модуля в Pascal:		unit ;		interface		implementation		end.Структурно в подключаемом модуле можно выделить три раздела:1) Интерфейсный раздел

Слайд 15Модули в Pascal
Имя модуля должно совпадать с именем файла, в

который помещается исходный текст модуля. Если, например, есть заголовок модуля
unit

primer;
то исходный текст этого модуля должен размещаться на диске в файле primer.pas (или с другим расширением, в зависимости от типа компилятора Pascal).

Модули в PascalИмя модуля должно совпадать с именем файла, в который помещается исходный текст модуля. Если, например,

Слайд 16Общая структура модуля. Интерфейсный раздел
Интерфейсный раздел — область модуля, начинающаяся

с ключевого слова interface, которая может содержать:
- список подключаемых модулей;
-

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

Замечание 1: Переменные, объявленные в интерфейсном разделе, являются глобальными — то есть доступны в любом месте программы, к которой подключен данный модуль, в том числе в разделе реализации самого модуля.
Замечание 2: Как и в программе, вышеперечисленные секции (объявления констант, переменных и др., за исключением секции uses) в данном разделе могут быть расположены в любой последовательности и в любом количестве.
Замечание 3: Если в данном разделе объявляются прототипы (предварительные объявления, без подробного описания) процедур/функций, то их реализации должны гарантированно присутствовать в разделе implementation.
Общая структура модуля. Интерфейсный разделИнтерфейсный раздел — область модуля, начинающаяся с ключевого слова interface, которая может содержать:-

Слайд 17Общая структура модуля. Раздел реализаций
Раздел реализаций — область подключаемого модуля,

начинающаяся с ключевого слова implementation и заканчивающаяся телом модуля (если

таковое имеется) или ключевым словом end с точкой, означающим конец модуля.
Основное назначение раздела реализаций: реализация процедур и функций, описанных ранее в секции interface.
Замечание: при реализации процедур и функций, описанных в интерфейсной секции, их заголовки могут быть описаны в сокращенной форме (исключение — PascalABC: при использовании переменных).

Общая структура модуля.  Раздел реализацийРаздел реализаций — область подключаемого модуля, начинающаяся с ключевого слова implementation и

Слайд 18Общая структура модуля. Тело модуля
Тело модуля — необязательная область подключаемого

модуля, образуемая парой ключевых слов begin и end. В теле

модуля можно размещать программный код аналогично главной программе.
Если тело модуля отсутствует, то ключевое слово begin не пишется.
Основное назначение тела модуля: инициализация переменных модуля, выделение ресурсов, необходимых для его работы и т. д.

Общая структура модуля.  Тело модуляТело модуля — необязательная область подключаемого модуля, образуемая парой ключевых слов begin

Слайд 19Использование модуля
Использование модуля заключается в его подключении к программе или

другому модулю в разделе uses:
Uses ;

— список

модулей, с которыми устанавливается связь; имена модулей в списке перечисляются через запятую.

Если в программе (или в модуле) используются модули, то часть uses <список модулей> должно стоять сразу после заголовка программы , т. е. должно открывать раздел описаний основной программы.
В модулях Паскаля могут использоваться другие модули. В модулях предложение uses <список модулей> может стоять сразу после слова interface или сразу после слова implementation. Допускается и два предложения uses, т. е. оно может стоять и там, и там.

Использование модуляИспользование модуля заключается в его подключении к программе или другому модулю в разделе uses:	Uses ; —

Слайд 20Дополнительные разделы модуля
Компиляторы Free Pascal (используемый, в частности, в среде

Lazarus), Pascal ABC, Pascal ABC.Net допускают в описании модулей, помимо

перечисленных выше разделов, еще два раздела:
раздел инициализации (начинается со слова initialization)— область модуля, размещаемая после раздела реализаций implementation, заканчивающаяся разделом финализации finalization, если таковой имеется, или ключевым словом end с точкой, назначение аналогично телу модуля.
раздел финализации (начинается со слова finalization) — область модуля, размещаемая по окончании раздела инициализации initialization, если таковой имеется, или по окончании раздела реализаций implementation, и заканчивающаяся ключевым словом end с точкой. Основное назначение: освобождение ресурсов, выделенных для работы модуля.

Дополнительные разделы модуляКомпиляторы Free Pascal (используемый, в частности, в среде Lazarus), Pascal ABC, Pascal ABC.Net допускают в

Слайд 21Компиляция модулей
Каждый подключаемый модуль компилируется отдельно, а результат компиляции зависит

от используемого компилятора. Компиляция в Turbo Pascal.
Результат компиляции — *.tpu -

файл (Turbo Pascal Compiled Unit).
Компиляция в Free Pascal.
Результат компиляции — два файла: *.ррu — файл, содержащий интерфейсную часть модуля, и файл *.о — объектный файл, содержащий часть реализаций, причем последний необходим для компоновки приложения.
Компиляция в Pascal ABC. Net.
В отличие от перечисленных выше, Pascal ABC.Net в процессе компиляции модуля не генерирует код на машинном языке. Компилятор данной среды завершает свою работу после выполнения семантического анализа, сохраняя семантическое дерево модуля в промежуточный формат — *.рсu - файл, который в первом приближении можно считать результатом компиляции с обозначенными ограничениями.

Компиляция модулейКаждый подключаемый модуль компилируется отдельно, а результат компиляции зависит от используемого компилятора. Компиляция в Turbo Pascal.Результат

Слайд 22Ускорение компиляции программ
На этапе компоновки приложения компоновщик собирает исполняемый модуль,

принимая на вход объектные модули. Таким образом, имея уже откомпилированные

подключаемые модули, компиляция программ с их использованием ускоряется, так как они уже обработаны. Данное справедливо для Turbo и Free Pascal.
В Pascal ABC.Net ускорение компиляции достигается только за счет того, что отсутствует необходимость проводить синтаксический и семантический анализ.
Вывод: откомпилированные версии исполняемых модулей не совместимы между различными компиляторами.

Ускорение компиляции программНа этапе компоновки приложения компоновщик собирает исполняемый модуль, принимая на вход объектные модули. Таким образом,

Слайд 23Пример модуля
unit Mymatem;

Interface // интерфейсный раздел

function pwr(a,b:real):real;//объявляем «прототипы» подпрограмм модуля
function

tg(a:real):real;

Implementation // раздел реализаций

function power(a,b:real):real; //расписываем каждую из объявленных подпрограмм
begin

if (a=0) and (b=0) then power:=1 else
if a=0 then power:=0 else
if (a<0) and (not odd(round(b))) then power:=exp(b*ln(abs(a))) else
if (a<0) and (odd(round(b))) then power:=-exp(b*ln(abs(a))) else
if a>0 then power:=exp(b*ln((a)))
end;
function tg(a:real):real;
begin
if cos(a)=0 then writeln('Error!') else
tg:=sin(a)/cos(a);
end;

end. // конец модуля. Слово end. (с точкой) пишется в конце модуля, даже если перед ним не было слова begin!!!

Пример модуляunit Mymatem;Interface // интерфейсный разделfunction pwr(a,b:real):real;//объявляем «прототипы» подпрограмм модуляfunction tg(a:real):real;Implementation // раздел реализацийfunction power(a,b:real):real; //расписываем каждую

Слайд 24Пример программы, использующей написанный модуль
program project1;
uses
mymatem;//подключаем наш модуль к

программе
var
a,b:real;
begin
writeln('Vvedite a,b:');
readln(a,b);
writeln(power(a,b));//и используем

функцию из модуля!
writeln('Vvedite ugol v radianah:');
readln(a);
writeln(tg(a));//и используем другую функцию из модуля!
readln;
end.

Пример программы, использующей написанный модульprogram project1;uses mymatem;//подключаем наш модуль к программеvar a,b:real;begin  writeln('Vvedite a,b:');  readln(a,b);

Слайд 25Спасибо за внимание!

Спасибо за внимание!

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика