Logo GenDocs.ru

Поиск по сайту:  


Загрузка...

Алгоритмизация и программирование - файл 1.doc


Алгоритмизация и программирование
скачать (125 kb.)

Доступные файлы (1):

1.doc125kb.15.12.2011 11:32скачать

содержание
Загрузка...

1.doc

Реклама MarketGid:
Загрузка...
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ РОССИЙСКОЙ ФЕДЕРАЦИИ

ПЕРМСКИЙ ГОСУДОРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Алгоритмизация и программирование

КУРСОВАЯ РАБОТА
ПЕРМЬ 2009

Содержание




Введение_________________________________________________________3
Глава 1 Теоретические основы алгоритмизации и программирования___ 5

1.1 Алгоритм. Алгоритмическое программирование___________ 5

1.2 Языки программирования_______________________________8
Глава 2 Создание программного продукта__________________________17
2.1 Системы программирования___________________________ 17

2.2 Методы программирования____________________________22
Заключение______________________________________________________ 27

Список литературы________________________________________________ 29

Введение
Сегодня быть образованным человеком можно только хорошо владея информационными технологиями. День ото дня деятельность людей все в большей степени зависит от их информированности, способности эффективно использовать информацию. Для свободной ориентации в информационных потоках современный специалист любого профиля должен уметь получать, обрабатывать и использовать информацию с помощью компьютера, телекоммуникаций и других средств связи. Сегодня об информации говорят как о стратегическом ресурсе общества, как о ресурсе, определяющем уровень развития государства. Заложить фундамент информационной культуры призвана «Информатика», как базовая дисциплина, имеющая общеобразовательное и общечеловеческое значение.

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

Мы знаем, что программа - это логически упорядоченная последовательность команд, необходимых для управления компьютером (выполнения им конкретных операций), поэтому программирование сводится к созданию последовательности команд, необходимой для решения определенной задачи. Стоит ли говорить о том, что без программы не один компьютер работать не будет? Поэтому следует отметить, что программирование – инструмент, «ключ» с помощью которого перед нами открываются безграничные возможности во всех областях человеческой деятельности.

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

Данная цель предполагает решение следующих задач:

  1. Представить алгоритм как первый этап написания программы

  2. Рассмотреть языки программирования и их классификацию

  3. Дать представление о системе программирования

  4. Рассмотреть основные методы создания программного продукта

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

Без знания ключевых понятий невозможно дальнейшее изучение предмета, поэтому всегда будет вставать вопрос о необходимости и обязательности изучения его теоретических основ, как базы для дальнейшего практического применения во всех областях человеческих знаний.
Глава 1.Теоретические основы алгоритмизации и программирования
1.1.Алгоритм, его свойства, структура. Алгоритмическое программирование.
Управлять компьютером нужно по определенному алгоритму.

Алгоритм – это точно определенное описание способа решения задачи в виде конечной (по времени) последовательности действий/ 2 стр.569/.

Алгоритм – это формальное описание способа решения задачи путем разбиения ее на конечную по времени последовательность действий (элементарных операций)/ 2 стр.582/.

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

Под алгоритмизацией понимают сведение задачи к последовательности этапов, выполняемых друг за другом, так что результаты предыдущих этапов, выполняемых друг за другом, так что результаты предыдущих этапов используются при выполнении последующих/ 6 стр.44/.

Алгоритм должен отвечать определенным требованиям. Принято выделять следующие семь условий:

  1. Наличие ввода исходных данных;

  2. Наличие ввода результата выполнения;

  3. Однозначность – компьютер понимает только однозначные инструкции;

  4. Общность – алгоритм предназначен для решения не одной задачи, а целого класса задач;

  5. Корректность – алгоритм должен давать правильное решение задачи;

  6. Конечность – решение задачи должно быть получено за конечное число шагов;

  7. Эффективность – для решения задачи должны использоваться ограниченные ресурсы компьютера / 5 стр.22/.

Алгоритм обладает следующими свойствами: дискретностью, определенностью, результативностью, массовостью.

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

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

Алгоритм должен приводить к результату за конечное число шагов.

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

Теория структурного программирования доказывает, что алгоритм любой степени сложности можно построить с помощью основного базового набора структур/ 6 стр.45/.

К основным (базовым) структурам алгоритмов относятся: следование, разветвление и цикл.

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

Разветвление состоит из логического блока с проверкой некоторого условия. Разветвление может быть двух видов: полная условная конструкция и неполная условная конструкция (обход).

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

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

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

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

Переменные с указанием их типа можно вводить в программу с помощью специальных команд описания (объявления, декларации). Это позволяет компилятору организовать эффективное хранение и обработку данных и повышает ясность исходных текстов. Каждый тип описывается своим ключевым словом. Значения переменных разных типов допускается преобразовывать друг в друга в соответствии с соглашениями языка программирования. Такой процесс называется приведением типов /2стр.583/.

Переменные могут существовать на всем протяжении работы программы – тогда они называются статическими, а могут создаваться и уничтожаться на разных этапах ее функционирования – такие переменные называются динамическими. Все остальные данные в программе, значение которых не меняется на протяжении ее работы, называются константами или постоянными /2 стр. 583 – 584 /.

1.2. Языки программирования
Для предоставления алгоритма в виде, понятном компьютеру, служат языки программирования. Сначала всегда разрабатывается алгоритм действий, а потом он записывается на одном из таких языков. В итоге получается текст программы – полное, законченное и детальное описание алгоритма на языке программирования. Затем этот текст программы специальными служебными приложениями, которые называются трансляторами, либо переводится в машинный код, либо исполняется.

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

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

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

Разные типы процессоров имеют разные наборы команд. Если язык программирования ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком программирования низкого уровня / 2 стр.571/. Операторы такого языка близки к машинному коду и ориентированы на конкретные команды процессора.

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

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

Языки программирования высокого уровня значительно ближе и понятнее человеку, нежели компьютеру. Особенности конкретных компьютерных архитектур в них не учитываются, поэтому создаваемые программы на уровне исходных текстов легко переносимы на другие платформы, для которых создан транслятор этого языка. Разрабатывать программы на языках высокого уровня с помощью понятных и мощных команд значительно проще, а ошибок при создании программ допускается гораздо меньше.

Языка высокого уровня бывают четырех видов:

  1. Императивные (процедурные),

  2. Функциональные,

  3. Логические,

  4. Объектно-ориентированные.

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

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

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

Объектно-ориентированные языки упрощают программирование с использованием технологии объектно-ориентированного программирования (Java, C ++) / 5 стр.47/.

Языки высокого уровня – это:

^ FORTRAN (Фортран). Это первый компилируемый язык, созданный Джимом Бэкусом в 50-е годы. Программисты, разработавшие программы исключительно на ассемблере, выражали серьезное сомнение в возможности появления высокопроизводительного языка высокого уровня, поэтому основным критерием при разработке компиляторов Фортрана являлась эффективность исполняемого кода. Хотя в Фортране впервые был реализован ряд важнейших понятий программирования, удобство создания программ было принесено в жертву возможности получения эффективного машинного кода. Однако для этого языка было создано огромное количество библиотек, начиная от статистических комплексов и кончая пакетами управления спутниками, поэтому Фортран продолжает активно использоваться во многих организациях.

^ COBOL (Кобол). Это компилируемый язык для применения в экономической области и решения бизнес-задач, разработанный в начале 60-х годов. Он отличается большой «многословностью» - его операторы иногда выглядят как обычные английские фразы. В Коболе были реализованы очень мощные средства работы с большими объемами данных, хранящимися на различных внешних носителях. На этом языке создано очень много приложений, которые активно эксплуатируются и сегодня.

^ Algol (Алгол). Компилируемый язык, созданный в 1960 году. Он был призван заменить Фортран, но из-за более сложной структуры не получил широкого распространения. В 1968 году была создана версия Алгол 68, по своим возможностям и сегодня опережающая многие языки программирования, однако из-за отсутствия достаточно эффективных компьютеров для нее не удалось своевременно создать хорошие компиляторы.

^ Pascal (Паскаль). Паскаль, созданный в конце 70-х годов Никлаусом Виртом, во многом напоминает Алгол, но в нем ужесточен ряд требований к структуре программы и имеются возможности, позволяющие успешно применять его при создании крупных проектов.

^ Basic (Бейсик). Для этого языка имеются и компиляторы, и интерпретаторы, а по популярности он занимает первое место в мире. Он создавался в 60-х годах в качестве учебного языка и очень прост в изучении.

^ С (Си). Данный язык был создан в лаборатории Bell и первоначально не рассматривался как массовый. Он планировался для замены ассемблера, чтобы иметь возможность создавать столь же эффективные и компактные программы и в то же время не зависеть от конкретного типа процессора. Он во многом похож на Паскаль и имеет дополнительные средства для прямой работы с памятью (указатели). На этом языке в 70-е годы написано множество прикладных и системных программ и ряд известных операционных систем (Unix).

С++ (Си++). Это объективно-ориентированное расширение языка Си, созданное Бьярном Страуструпом в 1980 году. Множество новых мощных возможностей, позволивших резко повысить производительность программистов, наложилось на унаследованную от языка Си определенную низкоуровневость, в результате чего создание сложных и надежных программ потребовало от разработчиков высокого уровня профессиональной подготовки.

^ Java (Джава, Ява). Этот язык был создан компанией Sun в начале 90-х годов на основе Си++ путем исключения из него всех низкоуровневых возможностей. Но главная особенность этого языка – компиляция не в машинный код, а в платформно-независимый байт-код (каждая команда занимает один байт). Этот байт-код может выполняться с помощью интерпретатора – виртуальной Java-машины JVM, версии которой созданы сегодня для любых платформ. Благодаря наличию множества Java-машин программы на Java можно переносить не только на уровне исходных текстов, но и на уровне двоичного байт-кода, поэтому по популярности язык Ява сегодня занимает второе место в мире после Бейсика.

Особое внимание в развитии этого языка уделяется двум направлениям: поддержке всевозможных мобильных устройств и микрокомпьютеров, встраиваемых в бытовую технику (технология Jini) и созданию платформно-назависимых программных модулей, способных работать на серверах в глобальных и локальных сетях с различными операционными системами (технология Java Beans). Пока основной недостаток этого языка – невысокое быстродействие, т.к. язык Ява интерпретируемый.

С# (Си Шарп). В конце 90-х годов в компании Mikrosoft под руководством Андерса Хейльсберга был разработан язык С#. В нем воплотились лучшие идеи Си и Си++, а так же достоинства Java. Правда, С#, как и другие технологии Microsoft, ориентирован на платформу Windows. Однако формально он не отличается от прочих универсальных языков. Он предназначен для быстрой разработки .NET-приложений, и его реализация в системе Microsoft Visual Studio .NET содержит множество особенностей, привязывающих Си# к внутренней архитектуре Windows и платформы .NET.
Помимо алгоритмических языков существуют так же языки программирования баз данных. Они отличаются от алгоритмических прежде всего решениями задач.

Для управления большими базами данных и их эффективной обработки разработаны СУБД (Системы Управления Базами Данных). Практически в каждой СУБД помимо поддержки языка SQL имеется также свой уникальный язык, ориентированный на особенности этой СУБД и не переносимый на другие системы. Сегодня в мире насчитывается три ведущих производителя СУБД: Microsoft (SQL Server), IBM (DB2) и Oracle. Их продукты нацелены на поддержку одновременной работы тысячи пользователей в сети, а базы данных могут храниться в распределенном виде на нескольких серверах. В каждой из этих СУБД реализован собственный диалект SQL, ориентированный на особенности конкретного сервера, поэтому SQL-программы, подготовленные для разных СУБД, друг с другом, как правило, не совместимы.

Родоначальником современных языков программирования баз данных для ПК принято считать СУБД dBase, язык который был интерпретируемым. Затем для него были созданы компиляторы, появились СУБД FoxPro и Clipper, поддерживающие диалекты этого языка. Сегодня самой распространенной настольной СУБД стала система Microsoft Access.
С активным развитием глобальной сети было создано немало реализаций популярных языков программирования, адаптированных специально для Интернета. Все они отличаются характерными особенностями: языки являются интерпретируемыми, интерпретаторы для них распространяются бесплатно, а сами программы – в исходных текстах. Такие языки называются скрипт-языками:

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

Perl. Был разработан в 80-х годах Ларри Уоллом. Он задумывался как средство эффективной обработки больших текстовых файлов, генерации текстовых отчетов и управления задачами. По мощности Perl значительно превосходит языки типа Си. В нем введено много часто используемых функций работы со строками, массивами, всевозможные средства преобразования данных, управления процессами, работы с системной информацией и др.

РНР. Расмус Лердорф, активно использовавший Perl-скрипты, в 1995 году решил улучшить этот язык, упростив его и дополнив встроенными средствами доступа к базам данных. В результате появилась разработка Personal Contents Page/Forms Interpreter (PHP/FI). Уже через пару лет программы на его основе использовались на 50 тыс. сайтов. В 1997 году его значительно усовершенствовали Энди Гутманс и Зив Сураски, и под названием РНР 3.0 этот язык быстро завоевал популярность у создателей динамических сайтов во всем мире.

Tcl/Tk. В конце 80-х годов Джон Аустираут придумал популярный скрипт-язык Tcl и библиотеку Tk. В Tcl он попытался воплотить видение идеального скрипт-языка. Язык ориентирован на автоматизацию рутинных процессов и состоит из мощных команд, предназначенных для работы с абстрактными не типизированными объектами. Он не зависим от типа системы и при этом позволяет создавать программы с графическим интерфейсом.

VRML. Язык был создан в 1994 году для организации виртуальных трехмерных интерфейсов в Интернете. Он позволяет описывать в текстовом виде различные трехмерные сцены, освещение и тени, текстуры (покрытия объектов), создавать свои миры, путешествовать по ним, «облетать» со всех сторон, вращать в любых направлениях, масштабировать, регулировать освещенность и т.д.

XML.В 1996 году WWW-консорциум, ответственный за стандарты на Интернет-технологии, приступил к подготовке универсального языка разметки структуры документов, базировавшегося на достаточно давно созданной в IBM технологии SGML. Новый язык получил название XML. Сегодня он служит основой множества системных, сетевых и прикладных приложений, позволяя представлять в прозрачном для пользователей и программ текстовом виде различные аспекты внутренней структуры иерархически организованных документов.

Из универсальных языков программирования сегодня наиболее популярны следующие:

-Бейсик (Basic) – для освоения требует начальной подготовки (общеобразовательная школа);

-Паскаль (Pascal) – требует специальной подготовки (школы с углубленным изучением предмета и общетехнические вузы);

-Си++ (С++), Ява (Java), Си Шарп(C#) – требуют профессиональной подготовки (специализированные средние и высшие учебные заведения).
^ Глава 2. Создание программного продукта

2.1 Системы программирования
В самом общем случае для создания программы на выбранном языке программирования нужно иметь следующие компоненты.

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

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

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

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

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

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

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

Итак, для создания программы нужны:

1.Текстовый редактор

2.компилятор

3.редактор связей

4.библиотеки функций

5.отладчик

Как правило, в стандартную поставку входят как минимум п.2,3 и 4, но хорошая интегрированная система включает в себя и специализированный текстовой редактор, причем почти все этапы создания программы в ней автоматизированы: после того как исходный текст введен, его компиляция и сборка выполняются одним нажатием клавиши. Это очень удобно, так как не требует ручной настройки множества параметров запуска компилятора и редактора связей, указывания им нужных файлов вручную. Процесс компиляции обычно демонстрируется на экране: показывается, сколько строк исходного текста откомпилировано, или выдаются сообщения о найденных ошибках.

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

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

- Автономные приложения – работают на одном компьютере;

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

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

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

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

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

Частный случай компонентного подхода – доступ к серверным приложениям из браузеров через Интернет.

Сегодня наиболее популярны три компонентные технологии - CORBA консорциума OMG, Java Beans компании Sun и COM+/.NET корпорации Microsoft. Эти технологии будут определять развитие информационной индустрии в ближайшие десятилетия.

Для каждого из языков программирования сегодня имеется немало систем программирования, выпускаемых различными фирмами и ориентированных на различные модели ПК и операционные системы. Наиболее популярны следующие визуальные среды быстрого проектирования программ для Windows:

- Basic: Microsoft Visual Basic;

- Pascal: Borland Delphi;

- C++: Microsoft Visual C++;

- Java: Borland J Builder;

- C#: Microsoft Visual Studio .NET, Borland C# Builder.

Для разработки серверных и распределенных приложений можно использовать систему программирования Microsoft Visual C++, продукты фирмы Borland, практически любые средства программирования на Java.
2.2 Методы программирования
Проектирование алгоритмов и программ – наиболее ответственный этап жизненного цикла программных продуктов, определяющий, насколько создаваемая программа соответствует спецификациям и требованиям со стороны конечных пользователей.

Методы проектирования алгоритмов и программ очень разнообразны. Проектирование алгоритмов и программ, основанное на различных подходах:

- Структурное проектирование программных продуктов;

- Информационное моделирование предметной области и связанных с ней приложений;

- Объектно-ориентированное проектирование программных продуктов.

Типичными методами структурного проектирования являются:

+ нисходящее проектирование, кодирование и тестирование программ;

+ модульное программирование;

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

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

С активным распространением системы Windows и появлением визуальных RAD-сред широкую популярность приобрел событийный подход к созданию программ – событийно-ориентированное программирование.

Структура программы, созданной с помощью событийного программирования следующая. Главная часть представляет собой один бесконечный цикл, который опрашивает Windows, следя за тем, не появилось ли новое сообщение. При его обнаружении вызывается подпрограмма, ответственная за обработку соответствующего события, и подобный цикл опроса продолжается, пока не будет получено сообщение «Завершить работу».

Объектно-ориентированное программирование основано на понятии объекта. Реальные объекты окружающего мира обладают тремя базовыми характеристиками: они имеют набор свойств, способны разными методами изменять эти свойства и реагировать на события, возникающие как в окружающем мире, так и внутри самого объекта. Именно в таком виде в языках программирования и реализовано понятие объекта как совокупности свойств (структур данных, характерных для этого объекта), методов их обработки (программ изменения свойств) и событий, на которые данный объект может реагировать, и которые приводят, как правило, к изменению свойств объекта/ 2 стр.606/.

Таким образом, под объектом объектно-ориентированного программирования понимают совокупность свойств (параметров), методов (набора операций) и событий, определяющих состояние моделируемого процесса / 3 стр.9/.

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

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

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

Некоторые параметры объекта могут быть локализованы внутри объекта и не доступны для прямого воздействия извне объекта. Такая характеристика получила название инкапсуляция / 3 стр.11/.

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

При традиционном процедурном программировании имя вызываемой подпрограммы или функции однозначно определяет выполняемый код. В объектно-ориентированном программировании допускается использование одних и тех же имен методов для выполнения совершенно разных действий. Такая характеристика получила название полиморфизма / 3 стр. 11/.

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

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

Существуют различные объектно-ориентированные технологии и методики проектирования программных продуктов, для которых характерны следующие черты:

- объект описывается как модель некоторой сущности реального мира;

- объекты, для которых определены места хранения, рассматриваются во взаимосвязи, и применительно к ним создаются программные модули системы / 1 стр.664/.

Подводя итог сказанному выше, сформулирую преимущества объектно-ориентированного программирования:

- использование при программировании понятий, более близких к предметной области;

- сравнительно простая возможность модификации программы;

- возможность повторного использования кода за счет наследования;

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

- возможность создания библиотек объектов.

Эти преимущества проявляются при создании программ большого объема и классов программ. Однако создание объектно-ориентированной программы представляет собой весьма непростую задачу, поскольку в процессе добавляется этап разработки иерархии объектов, а плохо спроектированная иерархия приводит к появлению сложных и запутанных программ. Кроме того идеи объектно-ориентированного программирования не просты для понимания и в особенности для практического применения / 4 стр.166 /.

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

  1. Понятие алгоритма и алгоритмизации

  2. Каким требованиям должен отвечать алгоритм

  3. Какими свойствами он обладает

  4. Каковы базовые структуры алгоритма

  5. Понятие языка программирования и его уровни

  6. Виды языков высокого уровня

  7. Языка баз данных и их особенности

  8. Языки для Интернета и их особенности

  9. Компоненты для создания программ

10) Программная архитектура и группы

11) Системы программирования

12) Методы проектирования алгоритмов и программ.
Таким образом, задачи:

- представить алгоритм как первый этап написания программы,

- рассмотреть языки программирования и их классификацию,

- дать представление о системе программирования,

- рассмотреть основные методы создания программного продукта,

поставленные в самом начале работы, выполнены.

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


  1. Информатика: Учебник.- 3-е перераб. Изд. / Под ред. Н.В. Макаровой.- М.: Финансы и статистика, 2007. – 768 с.:ил.

  2. Информатика. Базовый курс. – 2-е издание / Под ред. С.В. Симоновича. – СПб.: Питер, 2007. – 640 с.: ил.

  3. Косякин С.И. Высокоуровневые методы программирования: учебно-методическое пособие/ С.И. Косякин. – Пермь: Изд-во Пермского государственного технического университета, 2008. – 145 с.

  4. Павловская Т.А. Паскаль. Программирование на языке высокого уровня: Учебник для вузов – СПб.: Питер, 2006. – 393 с.: ил.

  5. Немнюгин С.А. Turbo Pascal. Программирование на языке высокого уровня: Учебник для вузов. 2-е изд. – СПб.: Питер, 2006. – 544 с.: ил.

  6. Щапова И.Н. Информатика: учебное пособие / И.Н. Щапова. – Пермь: Изд-во Пермского государственного технического университета, 2008. – 115 с.




Скачать файл (125 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru