Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/ac792ffd6cbd071329215755055f4080 to your computer and use it in GitHub Desktop.
Save anonymous/ac792ffd6cbd071329215755055f4080 to your computer and use it in GitHub Desktop.
Краткая характеристика дисциплины технология программирования

Краткая характеристика дисциплины технология программирования



Ссылка на файл: >>>>>> http://file-portal.ru/Краткая характеристика дисциплины технология программирования/


Технология программирования. Автор: Васильев Б.К., редактор: в авторской редакции
Технология программирования и основные этапы ее развития
Тема 1. Технология программирования (основные понятия и подходы)
























По материалам публикации "Е. Примерные ответы на профильные билеты. Опыт ведения реальных разработок и совершенствования имеющихся программных и технических средств постоянно переосмысливается, в результате чего появляются новые методы, методологии и технологии, которые, в свою очередь, служат основой более современных средств разработки программного обеспечения. Исследовать процессы создания новых технологий и определять их основные тенденции целесообразно, сопоставляя эти технологии с уровнем развития программирования и особенностями имеющихся в распоряжении программистов программных и аппаратных средств. Технологией программирования называют совокупность методов и средств, используемых в процессе разработки программного обеспечения. Как любая другая технология, технология программирования представляет собой набор технологических инструкций, включающих: Кроме набора операций и их последовательности, технология также определяет способ описания проектируемой системы, точнее модели, используемой на конкретном этапе разработки. Различают технологии, используемые на конкретных этапах разработки или для решения отдельных задач этих этапов, и технологии, охватывающие несколько этапов или весь процесс разработки. В основе первых, как правило, лежит ограниченно применимый метод, позволяющий решить конкретную задачу. В основе вторых обычно лежит базовый метод или подход парадигма , определяющий совокупность методов, используемых на разных этапах разработки, или методологию. Исторически в развитии программирования можно выделить несколько принципиально отличающихся методологий. В этот период отсутствовало понятие структуры программы, типов данных и т. Вследствие этого код получался запутанным, противоречивым. Программирование тех лет считалось искусством. Структурный подход к программированию представляет собой совокупность рекомендуемых технологических приемов, охватывающих выполнение всех этапов разработки программного обеспечения. В основе структурного подхода лежит декомпозиция разбиение на части сложных систем с целью последующей реализации в виде отдельных небольших подпрограмм. С появлением других принципов декомпозиции объектного, логического и т. Другим базовым принципом структурного программирования является использование при составлении программ только базовых алгоритмических структур см. Структурный подход требовал представления задачи в виде иерархии подзадач простейшей структуры. Проектирование осуществлялось "сверху-вниз" и подразумевало реализацию общей идеи, обеспечивая проработку интерфейсов подпрограмм. Поддержка принципов структурного программирования была заложена в основу так называемых процедурных языков программирования. Как правило, они включали основные "структурные" операторы передачи управления, поддерживали вложение подпрограмм, локализацию и ограничение области "видимости" данных. Дальнейший рост сложности и размеров разрабатываемого программного обеспечения потребовал развития структурирования данных. Как следствие этого в языках появляется возможность определения пользовательских типов данных. Одновременно усилилось стремление разграничить доступ к глобальным данным программы, чтобы уменьшить количество ошибок, возникающих при работе с глобальными данными. В результате появилась и стала развиваться технология модульного программирования. Модульное программирование предполагает выделение групп подпрограмм, использующих одни и те же глобальные данные, в отдельно компилируемые модули библиотеки подпрограмм , например, модуль графических ресурсов. Связи между модулями при использовании данной технологии осуществляются через специальный интерфейс, в то время как доступ к реализации модуля телам подпрограмм и некоторым "внутренним" переменным запрещен. Объектно-ориентированное программирование ООП определяется как технология создания сложного программного обеспечения, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного типа класса , а классы образуют иерархию с наследованием свойств. Взаимодействие программных объектов в такой системе осуществляется путем передачи сообщений. Основным достоинством объектно-ориентированного программирования по сравнению с модульным программированием является "более естественная" декомпозиция программного обеспечения, которая существенно облегчает его разработку. Это приводит к более полной локализации данных и интегрированию их с подпрограммами обработки, что позволяет вести практически независимую разработку отдельных частей объектов программы. Кроме этого, объектный подход предлагает новые способы организации программ, основанные на механизмах наследования, полиморфизма, композиции, наполнения. Эти механизмы позволяют конструировать сложные объекты из сравнительно простых. В результате существенно увеличивается показатель повторного использования кодов и появляется возможность создания библиотек классов для различных применений. Бурное развитие технологий программирования, основанных на объектном подходе, позволило решить многие проблемы. При использовании визуальной среды у программиста появляется возможность проектировать некоторую часть, например, интерфейсы будущего продукта, с применением визуальных средств добавления и настройки специальных библиотечных компонентов. Результатом визуального проектирования является заготовка будущей программы, в которую уже внесены соответствующие коды. Можно дать обобщающее определение: Упомянутые методы определяют, как объект взаимодействует с окружающим миром. Под методами объекта понимают процедуры и функции, объявление которых включено в описание объекта и которые выполняют действия. Возможность управлять состояниями объекта посредством вызова методов в итоге и определяет поведение объекта. Эту совокупность методов часто называют интерфейсом объекта. Когда методы и данные объединяются таким способом, создается объект. Применяя инкапсуляцию, мы защищаем данные, принадлежащие объекту, от возможных ошибок, которые могут возникнуть при прямом доступе к этим данным. Кроме того, применение этого принципа очень часто помогает локализовать возможные ошибки в коде программы. А это намного упрощает процесс поиска и исправления этих ошибок. Можно сказать, что инкапсуляция подразумевает под собой скрытие данных, что позволяет защитить эти данные. Однако применение инкапсуляции ведет к снижению эффективности доступа к элементам объекта. Это обусловлено необходимостью вызова методов для изменения внутренних элементов переменных объекта. Но при современном уровне развития вычислительной техники эти потери в эффективности не играют существенной роли. В итоге создаётся иерархия объектных типов, где поля данных и методов "предков" автоматически являются и полями данных и методов "потомков". Смысл и универсальность наследования заключается в том, что не надо каждый раз заново "с нуля" описывать новый объект, а можно указать "родителя" базовый класс и описать отличительные особенности нового класса. В результате новый объект будет обладать всеми свойствами родительского класса плюс своими собственными отличительными особенностями. Полиморфизм подразумевает такое определение методов в иерархии типов, при котором метод с одним именем может применяться к различным родственным объектам. Преимуществом полиморфизма является то, что он помогает снижать сложность программ, разрешая использование одного интерфейса для единого класса действий. Выбор конкретного действия, в зависимости от ситуации, возлагается на компилятор. В отличие от обычных объектов объекты-компоненты можно собрать в динамически вызываемые библиотеки или исполняемые файлы, распространять в двоичном виде без исходных текстов и использовать в любом языке программирования, поддерживающем соответствующую технологию. На сегодня рынок объектов стал реальностью. Это позволяет программистам создавать продукты, хотя бы частично состоящие из повторно использованных частей, то есть использовать технологию, хорошо зарекомендовавшую себя в области проектирования аппаратуры. Эти технологии используют сходные принципы и различаются лишь особенностями их реализации. Технология СОМ определяет общую парадигму взаимодействия программ любых типов: Таковы, вкратце, основные этапы изменения технологий программирования. Поскольку программное обеспечение на сегодняшний день используется в самых различных устройствах и сферах деятельности человека, то можно прогнозировать дальнейшее совершенствование технологий программирования. При решении новых задач можно попытаться воспользоваться ранее написанными программами. Алгоритм, ранее разработанный и целиком используемый в составе других алгоритмов, называется вспомогательным. Применение вспомогательных алгоритмов позволяет разбить задачу на части, структурировать ее. Вся программа условно может быть разделена на две части: В основной части производится простейшая обработка информации, организуется обращение к разным подпрограммам. Вспомогательный алгоритм тоже может вызывать другие вспомогательные, длина такой цепочки вызовов теоретически не ограничена. Вспомогательными и основными алгоритмы являются не сами по себе, а по отношению друг к другу. При использовании вспомогательных алгоритмов необходимо учитывать способ передачи значений исходных данных для них и получения результата от них. Подпрограммы могут быть двух видов: Обращение к подпрограмме может быть организовано из любого места основной программы или другой подпрограммы сколько угодно раз. При работе с подпрограммами важными являются понятия формальных и фактических параметров. Если формальные параметры получают конкретные значения, то они называются фактическими. Формальные параметры могут получить конкретные значения только в той программе, где производится обращение к данному модулю-подпрограмме. Тип и порядок записи, а также семантическое смысловое наполнение фактических параметров должны быть такими же, как и формальных параметров. В противном случае результат работы программы будет непредсказуемым. Подпрограмма с параметрами используется для записи многократно повторяющихся действий при разных исходных данных. Подпрограммы с параметрами можно разделить на два типа: При составлении подпрограмм с параметрами надо соблюдать следующие правила: Результат присваивается одной или нескольким переменным, которые находятся в списке формальных параметров. Но результатом могут быть, конечно, не только значения переменных, но какое либо действие, выполненное ЭВМ. Используем алгоритм нахождения наибольшего общего делителя двух натуральных чисел в качестве вспомогательного при решении задачи: Результат представить в виде обыкновенной несократимой дроби. Program Sub; Var A, B, C, D, G, E, F: Integer; Procedure Nod M, N: Как видно из примера, объявление и тело подпрограмм находится в разделе описаний. В заголовке подпрограммы содержится список формальных параметров с указанием их типа, которые условно можно разделить на входные и выходные перед ними стоит служебное Var. При обращении к процедуре указывается ее имя и список фактических параметров. Формальные и фактические параметры должны соответствовать по количеству и по типу. Вызов процедуры осуществляется следующим образом: По способу передачи фактических значений в подпрограмму в Turbo Pascal выделяют параметры-переменные, параметры-значения, параметры-константы. Есть и другие способы, которые менее актуальны Функция в отличие от процедуры всегда возвращает единственное значение. Покажем, как изменится подпрограмма из примера, если ее записать в виде функции. Function Nod M, N: Вызов функции будет следующим: При решении задач целесообразно проанализировать условие, записать решение в крупных блоках не являющихся операторами Pascal , детализировать каждый из блоков записав в виде блоков, возможно, по-прежнему не операторов Pascal , и т. Дано натуральное число n. Переставить местами первую и последнюю цифры этого числа. Program Integ; Var N: Можно заметить, что необходимо детализировать логическую функцию Possible, которая диагностирует, возможна ли перестановка, и процедуру Change, которая эту перестановку в случае, если она возможна выполняет. Здесь необходимо детализировать функцию Number, возвращающую количество цифр в записи натурального числа так как функция Impossible содержит ее вызов, то в разделе описаний функция Number должна ей предшествовать. Procedure Change Var N: Integer ; Var Kol, P, S, R: Создание таких подпрограмм является красивым приемом программирования, но не всегда целесообразно из-за чрезмерного расхода памяти ЭВМ. Найти максимальную цифру в записи данного натурального числа. LongInt; Function Maximum N: Digit; Begin If N Maximum N Div 10 Then Maximum: При создании функции Maximum было использовано следующее соображение: При написании рекурсивного алгоритма следует позаботиться о граничном условии, когда цепочка рекурсивных вызовов обрывается и начинается ее обратное "раскручивание". Иначе говоря, описание объекта должно предшествовать его первому появлению в других фрагментах программы. Это правило относится и к подпрограммам. На рисунке схематически показана структура взаимного расположения описаний подпрограмм в некоторой условной программе. Попробуем, используя эту схему, разобраться в вопросе об области действия описаний подпрограмм. Поэтому из основной программы можно обратиться к подпрограммам А и В. В свою очередь, в подпрограмме В могут быть обращения к подпрограмме А; а из А нельзя обратиться к В, поскольку описание А предшествует описанию В. Подпрограммы А1 и А2 локализованы в подпрограмме А и могут использоваться только в ней; из А2 можно обратиться к А1, но нельзя наоборот. Из подпрограммы В1 можно обратиться к А, поскольку ее описание является глобальным по отношению к В1, но нельзя обратиться к А1, поскольку область действия описания А1 не распространяется на блок подпрограммы В. Из подпрограммы В22 можно обратиться только к В21, В1, А. Таким образом, можно заметить, что все внешние описания по отношению к той или иной подпрограмме носят глобальный характер. Все, что объявляется внутри подпрограммы, локализовано. Понятие "локальный-глобальный" является относительным, поскольку одно и то же описание по отношению к разным подпрограммам основной программе может являться и локальным, и глобальным. Литература и другие источники Семакин И. Лаборатория Базовых Знаний, Введение в программирование, с. Информатика и информационные технологии. Учебное пособие для общеобразовательных учреждений. Понятие об алгоритмах, п. Понятие о программировании, с. Задачник-практикум в 2 т. Основы информатики и вычислительной техники. Учебник для классов. Мастерство, НМЦ СПО; Высшая школа, Вопросы, задания и контрольные работы для начинающих программистов. Средствами почтовой программы создать фильтр для автоматического распределения входящих писем по почтовым папкам в зависимости от темы письма Рассмотрим решение поставленной задачи в двух разных почтовых клиентах. Outlook Express Для того чтобы такое распределение было возможно, необходимо существование тех папок, по которым предполагается "раскладывать" письма или нужно создать такие папки в процессе формирования правила сортировки почты. Далее в диалоговом окне Создать правило для почты см. Таким образом, почтовый клиент будет автоматически сортировать часть почты. Аналогично можно сортировать почту по отправителю и т. Выбрать Добавить фильтр в список фильтров. Задание на подсчет полного набора символов мощности алфавита , используемого при кодировании информации Пример. Перед въездом в город стоят пять флагштоков. На флагштоках можно поднимать флаги желтого, зеленого и красного цвета. Какое количество различных сигналов можно подать при помощи этих флагштоков при условии, что не обязательно поднимать флаг на каждом из флагштоков? При условии, что не обязательно поднимать флаг на каждом из флагштоков, для каждого флагштока есть 4 возможности: Тогда общее количество комбинаций получается следующим: В стране лилипутов живут жителей. Доказать, что по крайней мере 3 из них имеют одинаковые инициалы, учитывая то, что алфавит лилипутов состоит из 40 букв, каждый из которых можно использовать для инициалов. Сколькими способами можно рассадить аллею, если у нас есть яблоня, береза, липа, сосна, елка и рябина. При этом сосну нельзя сажать первой, а яблоню нельзя сажать рядом с рябиной? Сколько можно составить пятизначных телефонных номеров из цифр от 0 до 7? На полке стоит 5 напитков. Сколько разных коктейлей из них можно составить? Номер машины состоит из 3 цифр. Сколько неправильных вариантов можно получить, угадывая номер? Сайт создан в системе uCoz.


Как написать благодарственное письмо семье
Старый арбат стихи
Подать заявление в загс без прописки
Технология программирования
Понятие о динамическом нагружении
Приказ об использовании бланков служебных писем
Карта самарской луки подробная со спутника
Учебно-методический комплекс по дисциплине технологии программирования
Strong 204 характеристики
Сколько стоит элидел крем
Основные этапы развития технологии программирования
Какой маникюр подойдет к синему платью
Как удалить историю посещений на компьютере
Костюмчик для новорожденной девочки крючком схемы
Билет 6
Заикание у взрослых можно вылечить
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment