Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы си++.pdf
Скачиваний:
54
Добавлен:
09.04.2015
Размер:
455.01 Кб
Скачать

Лекция 1

 

Введение в С++

 

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

1

Функция как компонент структуры программы ...............................................................

5

Примеры простых программ ..............................................................................................

8

Вычисление значения функции в заданной точке.............................................................

8

Вычисление суммы и количества целых чисел, введенных пользователем с

 

клавиатуры...........................................................................................................................

9

Демонстрация работы со строками на основе использования класса string ..................

9

Представление программы и данных.............................................................................

10

Процесс компиляции программы ....................................................................................

10

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

11

Технологический цикл обработки программы.................................................................

12

Особенности внутреннего представления программы и ее исполнения.................

12

Организация памяти компьютера.....................................................................................

13

Сегментация программы...................................................................................................

14

Процесс исполнения программного кода.........................................................................

15

Структура текстового файла программы .......................................................................

17

Структура программы из двух текстовых файлов .......................................................

18

Пример более сложной программы на С++ ( сортировка строк)* ..................................

20

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

Программирование – процесс и искусство создания компьютерных программ с помощью языков программирования.

Язык программирования — формальная знаковая система для описания программы работы компьютера в форме, пригодной для трансляции и исполнения на компьютере. Язык программирования – это, прежде всего, инструмент деятельности, и на него в первую очередь оказывает влияние класс решаемых на нем задач. Хотя бы один язык нужно знать досконально, чтобы представлять многообразие имеющихся средств и иметь возможность сравнивать с другими. Для будущих специалистов в области компьютерных технологий, безусловно, необходимо изучение языка Си. Универсализм его не в том, что на нем можно написать все, а в том, что на нем можно написать все, на чем пишется все остальное, а именно: операционные системы, базы данных, трансляторы и т.п.

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

Язык программирования C++ был разработан Бьерном Страуструпом, сотрудником AT&T Bell Laboratories. Непосредственным предшественником C++ является С with Classes, созданный

1 Б.Страуструп определяет «обобщенное программирование» как «программирование с использованием типов в качестве параметров».

Программирование – лекция 1 (лекции Стрикелевой Л.В.)

1

 

тем же автором в 1980 году. Язык С with Classes, в свою очередь, был создан под сильным влиянием С и Simula. В определенном смысле C++ можно назвать улучшенным С, тем С, который обеспечивает контроль типов, перегрузку функций и ряд других удобств. Но главное в том, что C++ добавляет к С объектную ориентированность.

В 1998 г. вышел международный стандарт языка ISO/IEC 14882. С 2003г. действует вторая редакция этого стандарта ISO/IEC/ANSI /ITI. Стандарты языков программирования разрабатываются для того, чтобы компиляция одной и той же программы различными компиляторами давала одинаковый результат. Существует ряд организаций, целенаправленно занимающихся вопросами стандартизации. Это Американский национальный институт стандартов ANSI (American National Standards Institute), Институт инженеров по электротехнике и электронике

IEEE (Institute of Electrical and Electronic Engineers), Организация международных стандартов ISO (International Organization for Standardization).

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

В о тличие о т С #, Java и Visual Basic язык С++ позволяет создавать программы, для выполнения которых не требуется устанавливать на компьютер специальное программное обеспечение, создающее среду исполнения программ.

Важно понимание роли и места программирования. Что это такое: наука, искусство, ремесло (на современном языке – технология)?

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

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

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

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

программа,данные,язык программирования.

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

Определение программы дано в формуле: «Программа = данные + алгоритм». В ней данные и алгоритм являются двумя взаимозависимыми элементами:

Программирование – лекция 1 (лекции Стрикелевой Л.В.)

2

 

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

действий); программа в целом аналогична предложению, описывающему

последовательность действий

над заданными предметами с целью получения

результата;

 

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

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

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

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

средст ва описания данных, позволяющие программисту определять различные формы представления данных (типы данных) и переменные разных типов;

набор операций над основными типами данных (включая ввод-вывод), а также средства записи выражений;

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

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

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

Программирование – лекция 1 (лекции Стрикелевой Л.В.)

3

 

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

Рис.1.1. Структурная схема компьютерной программы

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

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

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

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

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

Рис. 1.2. Жизненный цикл программного средства

Программирование – лекция 1 (лекции Стрикелевой Л.В.)

4