Лекция 1

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

Искать суть бытия – пустой каприз...Здесь все правы: где, кто и что нароет...Ведь жизнь обычно тратится на жизнь...,Но на какую?.. Вот, что беспокоит.

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

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

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

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

Технология подготовки и решения задачи на компьютере. 5

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В результате изучения материала лекции необходимо знать.. 26

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

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

 

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

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

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

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

 

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

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

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

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

 

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

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

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

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

Как правило, под программой на С++ подразумеваютисходный текст, написанный на С++, набранный в текстовом редакторе и сохраненный в текстовом файле (одном или нескольких). Текстовый файл с названием вида имя_файла.cpp (cpp – принятое расширение для программ на С++) – основная программная единица.