Теорема структуры и структурное программирование. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Теорема структуры и структурное программирование.



 

Структу́рное программи́рование — методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. Предложена в 70-х годах XX века Э. Дейкстрой, разработана и дополнена Н. Виртом. В соответствии с данной методологией

1. Любая программа представляет собой структуру, построенную из трёх типов базовых конструкций:

§ последовательное исполнение — однократное выполнение операций в том порядке, в котором они записаны в тексте программы;

§ ветвление — однократное выполнение одной из двух или более операций, в зависимости от выполнения некоторого заданного условия;

§ цикл — многократное исполнение одной и той же операции до тех пор, пока выполняется некоторое заданное условие (условие продолжения цикла).

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

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

3. Разработка программы ведётся пошагово, методом «сверху вниз».

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

Любую схему алгоритма можно представить в виде композиции вложенных блоков begin и end, условных операторов if, then, else, циклов с предусловием (while) и может быть дополнительных логических переменных (флагов).
Эта теорема была сформулирована итальянскими математиками К.Бомом и Дж.Якопини в 1966 году и говорит нам о том, как можно избежать использование оператора перехода goto.

 

20. Формальные и фактические аргументы.

 

Файлы. Работа с файлами.

Файл – набор данных размещенных на носителе; регулярная структура данных, состоит из записей.

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

 


Для выполнения своих функций по доступу к файлам ОС должна хранить информацию о тех файлах, с которыми она работает: она должна знать имя файла, устройство, на котором размещен этот файл, расположение в памяти буфера этого файла, направление операций ввода-вывода при работе с файлом. Такая информация для каждого файла хранится в виде спец табл, называемой дескриптором файла или управлением блоком файла. Процедура создания такой таблицы называется открытием файла.

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

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

3 способа представления файла:

1. Последующий файл – для доступа к определенной записи нужно иметь доступ к предыдущей записи.

2. Прямой

3. Библиотечный

 

3 способа работы с файлами:

1. Если нужно считать весь файл целиком, то надо использовать методы класса IO.

2. Если нужно работать только с одним файлом на чтение и только одним файлом на запись, то надо использовать перенаправление потока

3. Если нельзя применить два вышеперечисленных способа, то надо использовать универсальный способ работы с файлами.

Работа с файлами осуществляется из трех шагов:

1. Файл открывается.

Программа «захватывает» файл, и сообщает об этом ОС Windows, чтобы не возникало конфликтов, когда несколько программ хотят записать данные из файла обычно уточняется, что файл открывается на чтение либо на запись. Операция открытия файла возвращает некий идентификатор, который идентифицирует в программе этот файл.

Этот идентификатор запоминается в файловой переменной.

2. Производится работа с файлом. Данные либо считываются из него, либо в него записываются.

3. Файл открывается. После этой операции он доступен для других программ.

 

Основные понятия ООП. Классы.

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

Класс в ООП - это абстрактный тип данных, который включает в себя не только данные, но и функции и процедуры.

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

После того, как Вы объявили состав класса, необходимо определить (описать), что делает каждая функция-член (метод).

Существует 2 способа включения метода в класс:

1. Определение метода при описании класса.

2. Объявление метода при описании, а его описание - при вызове.

Методы, определенные внутри класса, являются неявно встроенными.

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

Объект - экземпляр класса.

Инкапсуляция

Класс представляет собой единство трех сущностей – полей, методов и свойств. Объединение этих сущностей в единое целое и называется инкапсуляцией. Инкапсуляция позволяет во многом изолировать класс от остальных частей программы, сделать его «самодостаточным» для решения конкретных задач. В результате класс всегда несет в себя некоторую функциональность. Например, класс TForm

black swan movie full

содержит (инкапсулирует в себе) все необходимое для создания окна Windows-программы, класс Tmemo представляет собой полнофункциональный многострочный текстовый редактор, класс TTimer обеспечивает работу программы с таймером и т.д.

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

Наследование

Любой класс может быть порожден от другого класса. Для этого при его объявлении указывается имя класса родителя: TChildClass = class(TParentClass)

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

Принцип наследования приводит от единственного родителя – класса Tobject. Этот класс не имеет полей и свойств, но включает в себя методы самого общего назначения, обеспечивающие весь жизненный цикл любых объектов – от создания до уничтожения. Программист не может создать класс который не был бы дочерним классом Tobject. Следующие два объявления индентичны:

TaClass = class (TObject)

TaClass

buy something borrowed the movie

= class

were can i watch the dilemma the movie

Принцип наследования приводит к созданию ветвящегося дерева классов, постепенно разрастающегося при перемещение от класса Tobject к его потомкам. Каждый потомок дополняет возможности своего родителя новыми и передает их своим потомкам.

Полиморфизм

Полиморфизм - это свойство классов решать схожие по смыслу проблемы разными способами. В рамках Object Pascal поведенческие свойства класса определяются набором входящих в него методов. Изменяя алгоритм того или иного метода в потомках класса, программист может придавать этим потомкам отсутствующие у родителя специфические свойства. Для изменения метода необходимо перекрыть его в потомке, т. е. объявить в потомке одноименный метод и реализовать в нем нужные действия. В результате в объекте-родителе и объекте-потомке будут действовать два одноименных метода, имеющих разную алгоритмическую основу и, следовательно, придающих объектам разные свойства. Это и называется полиморфизмом объектов.

Платформа.NET.

.NET Framework — программная платформа, выпущенная компанией Microsoft в 2002 году. Основой платформы является исполняющая среда Common Language Runtime (CLR), способная выполнять как обычные программы, так и серверные веб-приложения..NET Framework поддерживает создание программ, написанных на разных языках программирования.

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

Вторым принципом стало ориентирование на системы, работающие под управлением семейства операционных систем Microsoft Windows.

Программа для.NET Framework, написанная на любом поддерживаемом языке программирования, сначала переводится компилятором в единый для.NET промежуточный байт-код Common Intermediate Language (CIL). В терминах.NET получается сборка, англ. assembly. Затем код либо исполняется виртуальной машиной Common Language Runtime (CLR), либо транслируется в исполняемый код для конкретного целевого процессора. Использование виртуальной машины предпочтительно, так как избавляет разработчиков от необходимости заботиться об особенностях аппаратной части. В случае использования виртуальной машины CLR, встроенный в неё JIT-компилятор «на лету» (just in time) преобразует промежуточный байт-код в машинные коды нужного процессора. Современная технология динамической компиляции позволяет достигнуть высокого уровня быстродействия. Виртуальная машина CLR также сама заботится о базовой безопасности, управлении памятью и системе исключений, избавляя разработчика от части работы.

Среды разработки, поддерживающие.NET:

· Microsoft Visual Studio (C#, Visual Basic.NET, Managed C++, F#)

· SharpDevelop

· MonoDevelop

· Embarcadero RAD Studio (Delphi for.NET); ранее Borland Developer Studio (Delphi for.NET, C#)

· Zonnon

· PascalABC.NET

Приложения.NET также можно разрабатывать в текстовом редакторе, просто вызывая компилятор из командной строки.

 



Поделиться:


Последнее изменение этой страницы: 2016-08-15; просмотров: 1584; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.216.239.46 (0.017 с.)