Docsity
Docsity

Подготовься к экзаменам
Подготовься к экзаменам

Учись благодаря многочисленным ресурсам, которые есть на Docsity


Получи баллы для скачивания
Получи баллы для скачивания

Заработай баллы, помогая другим студентам, или приобретай их по тарифом Премиум


Руководства и советы
Руководства и советы

Современные технологии программирования реферат по информатике , Сочинения из Информатика

Современные технологии программирования реферат по информатике

Вид: Сочинения

2016/2017

Загружен 12.04.2017

refbank20534
refbank20534 🇷🇺

3

(2)

12 документы

1 / 18

Toggle sidebar

Сопутствующие документы


Частичный предварительный просмотр текста

Скачай Современные технологии программирования реферат по информатике и еще Сочинения в формате PDF Информатика только на Docsity! РЕФЕРАТ ПО ИНФОРМАТИКЕ Современные технологии программирования СОДЕРЖАНИЕ 1 Понятие алгоритма и его характеристики. 2 Формы представления алгоритмов. 3 Основные алгоритмические структуры. 4. Структурное программирование. 5. Событийно-ориентированное программирование 6. Объектно-ориентированное программирование. 2. Формы представления алгоритмов Существуют различные формы представления алгоритмов: словесное описание алгоритма на естественном языке (вербальная форма); построчная запись алгоритма; схема алгоритма; запись на каком-либо языке программирования. Рассмотрим особенности первых двух форм на примере алгоритма Евклида - нахождения наибольшего общего делителя (НОД) для двух целых положительных чисел. Словесное описание имеет минимум ограничений и является наименее формализованным. Однако при этом алгоритм получается и наименее строгим, допускающим появление неопределенностей. Также в этой форме алгоритм может оказаться очень объемным и трудным для восприятия человеком. Например, если числа равны, НОД равен одному из них. В противном случае надо из большего числа вычесть меньшее, полученную разность запомнить вместо значения большего числа и повторить все сначала. Построчная запись алгоритма - это запись на естественном языке, но с соблюдением некоторых дополнительных правил: шаги (предписания) нумеруются; исполнение шагов происходит в порядке возрастания номеров шагов, начиная с первого (если не встречается никаких специальных указаний); типичными шагами являются чтение (ввод) данных; обработка данных (вычисления) по формулам; сообщение (вывод) результата; проверка условия; переход к шагу с номером N; конец вычислений. Пример: [1] Чтение А, В [2] Если А=В, идти к [8] [3] Если А>В, идти к [6] [4] В=В-А [5] Идти к [2] [6] А=А-В [7] Идти к [2] [8] НОД=А [9] Запись НОД [10] Конец Построчная запись алгоритма позволяет избежать неопределенностей в алгоритме, не требует, по существу, никаких специальных знаний и в то же время обеспечивает отработку навыков логически строгого изложения хода решения задачи (последовательность вычислений, возможных вариантов перехода к различным шагам алгоритма и т.д.) и облегчает последующее изучение алгоритмических языков. Однако построчная запись алгоритма воспринимается человеком очень тяжело и требует большого внимания при записи. Наиболее наглядный способ представления алгоритмов - их изображение в виде схем - последовательности блоков (рис.14), предписывающих выполнение определенных функций, и связей между ними [6]. Внутри блоков указывается поясняющая информация, характеризующая выполняемые ими действия. Конфигурацию и размер блоков, а также порядок построения схем определяет ГОСТ 19002 и 19003. Выполнение алгоритма всегда начинается с блока начала и оканчивается при попадании на блок конца. Порядок вычисление определяется стрелками. В блоке обработки данных содержится описание тех действий, которые должны быть выполнены над объектами при попадании на этот по входящей в него стрелке. Здесь вычисляются выражения и присваиваются новые значения переменных. Проверка условия изображается с помощью блока принятия решения, внутри которого записывается это условие. В результате проверки выбирается одна из двух стрелок, определяющая направление дальнейших вычислений. Внутри блока ввода перечисляются переменные, значения которых должны быть введены в данном месте схемы. Внутри блока вывода перечисляются переменные, значения которых должны быть выведены в данном месте схемы, или напечатан результат. Комментарии используются в тех случаях, когда пояснение не помещается внутри блока. Совокупность комментариев должна делать схему алгоритма понятной для любого пользователя. Нередко возникает необходимость применения уже имеющихся (может разработанных кем-то) алгоритмов. В этом случае можно использовать блок «предопределенный процесс». При большой насыщенности схемы блоками допускается прерывать стрелки, а затем продолжать их в нужном месте. В этом случае начало и конец удаленных участков обозначаются соединителями, внутри которых записываются для каждой прерванной стрелки одни и те же обозначения. Блок модификация задает условия для выполнения одной и той же последовательности шагов с изменяемой информацией. 4. Структурное программирование 4.1. Разработка алгоритмов «сверху - вниз» Для специалистов, решающих с помощью ЭВМ те или иные задачи, разработка алгоритма решения является важнейшим делом. Существуют различные методы разработки алгоритмов (и программ), но наиболее важным является метод пошаговой детализации (или метод разработки « сверху - вниз »). При этом методе первоначально продумывается и фиксируется множество данных и результатов алгоритма без детальной проработки отдельных частей. Задачу разбивают на автономные части, каждая из которых существенно проще. Может оказаться необходимым повторять процесс детализации многократно, но это определяется только сложностью решаемых задач. Конечным уровнем детализации алгоритма можно считать такой, при котором в алгоритме нет действий более крупных, чем: обращение к готовому алгоритму; вычисление арифметического выражения и присваивание значения переменной; сравнение арифметических выражений (или переменных); ввод (вывод) данных и т.п. Главным требованием к алгоритму, несомненно, является его работоспособность. Однако создавая алгоритм, необходимо помнить о дальнейшей работе над ним, об отладке программы, которая будет создана по этому алгоритму, а также о вероятных пользователях, которым, возможно, потребуется этот алгоритм. Поэтому одним из важнейших требований к алгоритму является его простота и понятность. Исходя из этих требований, особенно удобным представляется при разработке алгоритмов использование основных алгоритмических структур. Их важной особенностью является то, что они имеют один вход и один выход и могут соединяться друг с другом в любой последовательности. Это дает наглядную и простую структуру алгоритма, по которой легче составить программу. Одним из основных требований к программам является ее адаптируемость. Программа является адаптируемой, если она допускает быструю модификацию с целью приспособления к изменяющимся условиям функционирования. Адаптируемость означает, что внесение небольших изменений не потребует кардинальной переработки всего программного продукта. Адаптируемость определяется многими факторами, причем одним из важнейших является понимаемость исходного текста. Обычно при составлении схемы алгоритма процесс вычисления идет сверху вниз, возвращаясь назад только в циклах, что позволяет анализировать алгоритм как обычный текст, т.е. сверху вниз. Если технологию разработки алгоритмов «сверху - вниз » совместить с использованием только структурных схем, то получится новая технология, которая называется структурным программированием сверху - вниз, идея которого заключается в том, что структура программы должна отражать структуру решаемой задачи, чтобы алгоритм решения был ясно виден из 0 0 1 Fисходного текста. Для этого надо иметь сред ства для создания программы не только с помощью трех простых операторов, но и с помощью средств, более точно отражающих конкретную структуру алгоритма. С этой целью в программирование введено понятие подпрограммы — набора операторов, выполняющих нужное действие и не зависящих от других частей исходного кода. Программа разбивается на множество мелких подпрограмм (занимающих до 50 операторов — критический порог для быстрого понимания цели подпрограммы), каждая из которых выполняет одно из 0 0 1 Fдействий, предусмотренных исходным зада нием. Комбинируя эти подпрограммы, удается формировать итоговый алгоритм уже не из простых 0 0 1 Fоператоров, а из законченных блоков кода, имеющих опреде ленную смысловую нагрузку, причем обращаться к таким блокам можно по 0 0 1 Fназва ниям. Получается, что подпрограммы — это новые операторы или операции языка, определяемые программистом. Возможность применения подпрограмм относит язык программирования к классу процедурных языков. 4.2. Нисходящее проектирование Наличие подпрограмм позволяет вести проектирование и разработку приложения сверху вниз — такой подход называется нисходящим проектированием. Сначала выделяется несколько подпрограмм, решающих 0 0 1 Fсамые глобальные задачи (напри мер, инициализация данных, главная часть и завершение), потом каждый из этих модулей детализируется на более низком уровне, разбиваясь в свою очередь на небольшое число других подпрограмм, и так происходит до тех пор, пока вся задача не окажется реализованной. Такой подход удобен тем, что позволяет человеку постоянно мыслить 0 0 1 Fна предмет ном уровне, не опускаясь до конкретных операторов и переменных. Кроме того, появляется возможность некоторые подпрограммы 0 0 1 Fне реализовывать сразу, а вре менно откладывать, пока не будут закончены другие части. Например, если имеется необходимость вычисления сложной математической функции, то выделяется отдельная подпрограмма такого вычисления, но реализуется она временно одним оператором, который просто присваивает заранее выбранное значение (например, 5). Когда все приложение будет написано и отлажено, тогда можно приступить к 0 0 1 Fреа лизации этой функции. Немаловажно, что небольшие подпрограммы значительно проще отлаживать, что существенно повышает общую надежность всей программы. Очень важная характеристика подпрограмм — это возможность их повторного использования. С интегрированными системами программирования поставляются большие библиотеки стандартных подпрограмм, которые позволяют значительно повысить производительность 0 0 1 Fтруда за счет использования чужой работы по созда нию часто применяемых подпрограмм. Подпрограммы бывают двух видов — процедуры и функции. Отличаются они тем, что процедура просто выполняет группу операторов, а 5. Событийно-ориентированное программирование С активным распространением системы Windows и появлением визуальных RAD-сред широкую популярность приобрел событийный подход к созданию программ — событийно-ориентированное программирование. Идеология системы Windows основана на событиях. Щелкнул человек на кнопке, выбрал пункт меню, нажал на клавишу или кнопку мыши — в Windows 0 01 F генериру ется подходящее сообщение, которое отсылается окну соответствующей программы. Структура программы, созданной с помощью событийного программирования, следующая. Главная часть представляет собой один бесконечный цикл, который опрашивает Windows, следя за тем, не появилось 0 0 1 Fли новое сообщение. При его обна ружении вызывается подпрограмма, ответственная за обработку соответствующего события (обрабатываются не все события, их сотни, а только нужные), и подобный цикл опроса продолжается, пока не будет получено сообщение «Завершить работу», События могут быть пользовательскими, возникшими в результате 0 0 1 Fдействий поль зователя, системными, возникающими в операционной 0 0 1 Fсистеме (например, сообще ния от таймера), и программными, генерируемыми самой программой (например, обнаружена ошибка и ее надо обработать). Событийное программирование является развитием идей нисходящего 0 0 1 Fпроекти рования, когда постепенно определяются и детализируются реакции программы на различные события. 6. Объектно-ориентированное программирование. 6.1. Понятие объекта Развитие идей структурного и событийного программирования 0 0 1 Fсущественно под няло производительность труда программистов и позволило в разумные сроки (несколько месяцев) создавать приложения объемом в сотни тысяч строк. Однако такой объем уже приблизился к пределу возможностей человека, и потребовались новые технологии разработки программ. В начале 80-х годов в программировании возникло новое направление, основанное на понятии объекта. До того времени основные ограничения на 0 0 1 Fвозможность созда ния больших систем накладывала разобщенность в программе данных и методов их обработки. Реальные объекты окружающего мира обладают тремя базовыми характеристиками: они имеют набор свойств, способны разными методами изменять эти свойства и реагировать на события, возникающие как в окружающем мире, так и внутри самого объекта. Именно в таком виде в языках программирования и реализовано понятие объекта как совокупности свойств (структур данных, характерных для этого объекта), методов их обработки (подпрограмм изменения свойств) и событий, на которые данный объект может реагировать и которые приводят, как правило, к изменению свойств объекта. Появление возможности создания объектов в программах качественно повлияло на производительность труда программистов. Максимальный объем приложений, которые стали доступны для создания группой программистов из 10 человек, за несколько лет увеличился до миллионов строк кода, при этом одновременно удалось добиться высокой надежности программ и, что 0 0 1 Fнемаловажно, повторно использо вать ранее созданные объекты в других задачах. Объекты могут иметь идентичную структуру и отличаться только значениями свойств. В таких случаях в программе создается новый тип, основанный на единой структуре объекта (по аналогии с тем, как создаются новые типы для структур данных). Он называется классом, а каждый 0 0 1 Fконкретный объект, имеющий струк туру этого класса, называется экземпляром класса. Описание нового класса похоже на описание новой структуры данных, только к полям (свойствам) добавляются методы — подпрограммы. При определении подпрограмм, принадлежащих конкретному классу, его методов, в заголовке подпрограммы перед ее названием явно указывается, к какому классу она принадлежит. Класс — это тип данных, такой же, как любой другой базовый или сложный тип. На его основе можно описывать конкретные объекты (экземпляры классов). Объектно-ориентированное программирование базируется на трех 0 0 1 Fключевых кон цепциях — инкапсуляции, наследовании и полиморфизме. Объединение данных с методами в одном типе (классе) называется инкапсуляцией. Помимо объединения, инкапсуляция позволяет ограничивать доступ к данным объектов и реализации методов классов. В результате у 0 0 1 Fпрограммистов появляется возможность исполь зования готовых классов в своих приложениях на основе только описаний этих классов. Важнейшая характеристика класса — возможность создания на его основе новых классов с наследованием всех его свойств и методов и добавлением собственных. Класс, не имеющий предшественника, называется базовым. Например, класс «животное» имеет свойства «название», «размер», методы «идти» и «размножаться». Созданный на его основе класс «кошка» наследует все эти свойства и методы, к которым дополнительно добавляется свойство «окраска» и метод «пить». Наследование позволяет создавать новые классы, повторно используя 0 0 1 Fуже гото вый исходный код и не тратя времени на его переписывание.
Docsity logo