Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Лекция 2





 

3. Введение в программирование

 

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

 

3.1. Алгоритмы и средства их записи

 

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

С вычислительными алгоритмами, ориентированными на архитектуру современного компьютера, связаны 3 основные понятия: данные, операции, управляющие структуры. Каждый алгоритм можно рассматривать как описание множества операций, которые необходимо применить к некоторым данным в заданной последовательности. Используемые в алгоритмах виды данных и операций определяются классом решаемых задач и технологией, применяемой для их решения. В качестве элементов данных могут использоваться константы, переменные, массивы, структуры (записи), множества, объекты. Операции бывают элементарные – арифметические, логические, операция присваивания, а также сложные – построенные на основе элементарных. Управляющие структуры задают последовательность применения операций к данным. В алгоритмах рассматриваемого типа применяются 4 основные управляющие структуры: цепочка, ветвление, цикл, процедура.

Цепочка задает последовательный порядок выполнения нескольких операций. Каждая операция в цепочке выполняется после завершения предыдущей. Ветвление указывает несколько возможных путей последующего выполнения алгоритма. Выбор одного из них (или нескольких параллельных) зависит от некоторого условия. Цикл задает последовательное многократное выполнение одной и той же операции с возможным изменением некоторых параметров, до тех пор, пока выполнено указанное условие. Наконец, процедура представляет собой объединение нескольких операций, рассматриваемое в алгоритме как одна сложная операция. Процедура описывается в алгоритме один раз, а обращение к ней как к операции осуществляется по ее имени. Заметим, что управляющие структуры могут быть вложенными, то есть одна структура может содержать в качестве операций другие структуры. Особым вариантом вложенности является рекурсия. Это случай, когда процедура в качестве операции содержит обращение к самой себе.

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

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

<картинка приведенного ниже примера>

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

действие1;

цикл пока (условие1)

если (условие2) то действие2

иначе действие3;

действие4;

 

3.2. Языки программирования и их классификация. Реализация языков.

 

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

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

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

Языки программирования высокого уровня можно разделить на 4 типа («парадигмы»): императивные, функциональные, логические и объектно-ориентированные.

Императивные (процедурные)языки выражают традиционный подход к процессу программирования, непосредственно ориентированный на запись вычислительных алгоритмов. Эти языки определяют процесс программирования как написание последовательности команд (операторов), при выполнении обрабатывающих данные для получения нужного результата. К таким языкам относятся Basic, Fortran, C, Pascal, Ada.

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

Логические языки программирования основываются на продукционных правилах вида «предпосылка – заключение». Заключение указывает действия, которые нужно выполнить в случае, если справедлива предпосылка. В таких программах не задается порядок применения правил, и система реализации языка сама должна выбрать нужную последовательность правил, приводящую к желаемому результату. Наиболее популярным языком этого типа является Prolog.

Объектно-ориентированные языки, реализующие методы так называемого объектно-ориентированного программирования (ООП), явились развитием императивных. В этих языках используемые элементы данных рассматриваются как активные объекты, содержащие совокупность данных вместе с процедурами их обработки. Такая концепция по сравнению с императивными языками, оперирующими пассивными данными, больше подходит для моделирования объектов реального мира и, следовательно, повышает уровень программирования. Одним из первых языков такого типа явился Smalltalk. Существуют также несколько языков, произошедших из императивных путем добавления объектно-ориентированных возможностей. Это C++, Java, C#, Object Pascal, Ada 95.

В настоящее время наблюдается тенденция к сочетанию различных парадигм программирования в рамках одного языка (например, Scala, F#, Python – «мультипарадигмальные» языки).

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

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

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

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

 

3.3. Этапы обработки программ. Среда разработки

 

В настоящем курсе будем иметь дело лишь с первым и наиболее распространенным в настоящее время методом реализации языка программирования – компиляцией. Машинный код, генерируемый компилятором при обработке файла программы, может выполняться непосредственно аппаратурой компьютера. Однако обычно требуется, чтобы он выполнялся вместе с другими программами. Этими другими программами могут быть части операционной системы, реализующие некоторые стандартные функции (например, ввод-вывод), предварительно откомпилированные пользовательские программы, находящиеся в библиотеках стандартных программ, части (модули) данной программы, параллельно разрабатываемые другими программистами. Поэтому прежде чем созданная компилятором программа на машинном языке будет выполняться, требуется найти и связать с ней другие необходимые ее части и программы. Такая готовая к выполнению объединенная программа называется загрузочным модулем, а сам процесс сборки и настройки ее внутренних связей называется редактированием связей (linking) и производится специальной программой – редактором связей (linker). Запись готовой программы в память компьютера для выполнения называется загрузкой (loading) и осуществляется загрузчиком, являющимся обычно частью операционной системы.

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

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

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

· Скрытые ошибки в алгоритме. Например, вместо плюса в арифметическом выражении написан минус. Обычно компьютер сам не распознает такие ошибки. Программа нормально выполняется и в некоторых случаях выдает неверные результаты. Ошибки такого рода наиболее трудны для исправления. Для их выявления проводится тестирование – выполнение программы с различными вариантами исходных данных, для которых результат известен заранее.

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

Среда разработки – это совокупность программных инструментов, используемых при создании программного обеспечения. Стандартный набор таких инструментов содержит обычно текстовый редактор (для подготовки текстов программ), компилятор некоторого языка программирования (их может быть и несколько) и редактор связей. Среда разработки может включать также библиотеки готовых программных модулей, дополнительные средства, поддерживающие единообразный способ общения с пользователем (интерфейс пользователя). Сюда можно отнести визуальные средства программирования, средства отладки и так далее. Мы будем иметь дело со средой разработки Visual Studio фирмы Microsoft, основанной на объектно-ориентированном языке программирования C++. Она содержит средства визуального программирования, мощную библиотеку готовых программных модулей, быстрый и эффективный компилятор, отладчик и поддерживает самые современные технологии программирования. Начнем этот процесс с изучения основ языка C++.

Date: 2015-11-13; view: 398; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию