Главная страница

Программирование C++. Пензенский государственный университет введение в программирование на языке с лабораторный практикум пенза 2010 г 2


Скачать 1.47 Mb.
НазваниеПензенский государственный университет введение в программирование на языке с лабораторный практикум пенза 2010 г 2
Дата06.10.2022
Размер1.47 Mb.
Формат файлаpdf
Имя файлаПрограммирование C++.pdf
ТипПрактикум
#718990
страница1 из 10
  1   2   3   4   5   6   7   8   9   10

1 ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образования ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
____________________________________________________________ ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ С+ ЛАБОРАТОРНЫЙ ПРАКТИКУМ Пенза 2010 г

2
УДК 681.3 С 17 Рассматриваются базовые понятия программирования на языке С, необходимые для разработки сложных программ принципы взаимодействия программ и структура программных модулей основы структурной и объектно-ориентированной разработки программ работа в интегрированной среде программирования Microsoft Visual Studio. Приведены примеры программ и задания для выполнения лабораторных работ. Учебное пособие подготовлено на кафедре Математическое обеспечение и применение ЭВМ и рекомендуется для студентов специальности 23.01.05 Программное обеспечение вычислительной техники и автоматизированных система также бакалавров по направлнию 230200.62 Информационные системы. Составители
Л.В.Гурьянов,
Л.С.
Гурьянова,
Е.А.Дзюба,
Д.В.Такташкин Рецензент Д.И.Прошин, к.т.н., начальник отдела бизнес-единицы Программное обеспечение НПФ КРУГ
© Издательство ПГУ, 2010

3 СОДЕРЖАНИЕ Стр. ВВЕДЕНИЕ __________________________________________________________________ 1 Процесс построения исполняемой программы ___________________________________ 1 Библиотеки функций ________________________________________________________ 1 Заголовочные файлы С+ ____________________________________________________ 1 Главная программа __________________________________________________________ 1 Консольное приложение _____________________________________________________ 2 Первая программа ___________________________________________________________ 2 1. ОСНОВЫ. СИНТАКСИС, ЗНАЧЕНИЯ И УПРАВЛЯЮЩИЕ СТРУКТУРЫ ________ 4 1.1 Синтаксические элементы ______________________________________________ 4 1.2 Значения и типы ______________________________________________________ 4 1.3 Константы и переменные _______________________________________________ 6 1.4 Операции и выражения ________________________________________________ 7 1.5 Вводи вывод _________________________________________________________ 9 1.6 Управляющие структуры ______________________________________________ 11 1.7 Структура простой программы _________________________________________ 14 1.8 Примеры программ ___________________________________________________ 15 1.9 Задания для самостоятельной работы ___________________________________ 18 1.9.1 Составление простых программ 18 1.9.2 Программирование с использованием управляющих структур ______________ 19 2. ФУНКЦИИ. ОТ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ К МОДУЛЬНОМУ __ 21 2.1 Определение и вызов функций _________________________________________ 21 2.2 Глобальные данные и параметры _______________________________________ 23 2.3 Параметры по умолчанию _____________________________________________ 24 2.4 Рекурсия 25 2.5 Библиотечные функции _______________________________________________ 27 2.6 Перегрузка и шаблоны функций ________________________________________ 28 2.7 Задания для самостоятельной работы ___________________________________ 29 2.7.1 Разработка простых и рекурсивных функций ____________________________ 29 3. СТРУКТУРЫ ДАННЫХ. МАССИВЫ, СТРОКИ, УКАЗАТЕЛИ И СТРУКТУРЫ 31 3.1 Массивы ____________________________________________________________ 31 3.2 Строки – массивы символов ___________________________________________ 33 3.3 Указатели и ccылки __________________________________________________ 34 3.4 Указатели и массивы _________________________________________________ 36 3.5 Указатели и ссылки как параметры _____________________________________ 38 3.6 Передача массивов в качестве параметров _______________________________ 39 3.7 Структуры __________________________________________________________ 40 3.8 Примеры программ ___________________________________________________ 41 3.8.1 Стек как одномерный статический массив _______________________________ 41 3.8.2 Динамический двумерный массив ______________________________________ 43 3.8.3 Односвязный список _________________________________________________ 45 3.9 Задания для самостоятельной работы ___________________________________ 48 3.9.1 Разработка функций обработки числовых массивов и строк ________________ 48 3.9.2 Разработка динамических структур данных и функций их обработки ________ 50 4. КЛАССЫ И ОБЪЕКТЫ ___________________________________________________ 54 4.1 Конструкторы и деструкторы __________________________________________ 57 4.2 Перегрузка операций для классов _______________________________________ 58 4.3 Наследование и полиморфизм _________________________________________ 62 4.4 Примеры программ ___________________________________________________ 66 4.4.1 Класс Одномерный динамический массив _____________________________ 66

4 4.4.2 Класс Динамически размещаемая срока _______________________________ 69 4.4.3 Базовый и наследуемый классы для работы с линейным списком ___________ 71 4.5 Задания для самостоятельной работы ___________________________________ 77 4.5.1 Разработка классов для работы с динамическими структурами данных _______ 77 5. ДОПОЛНИТЕЛЬНЫЕ ЗАДАНИЯ __________________________________________ 81 5.1 Обработка числовых массивов и строк __________________________________ 81 5.2 Динамические структуры данных _______________________________________ 83 5.3 Классы для создания и обработки динамических структур данных ___________ 86 ЛИТЕРАТУРА ______________________________________________________________ 87

1 ВВЕДЕНИЕ Процесс построения исполняемой программы Процесс построения исполняемой программы файла) из исходной программы на языке С+ включает этапы компиляции и компоновки. На этих этапах широко применяются такие стандартные программные средства языка С как заголовочные файлы и библиотеки функций. Библиотеки функций Язык Сне содержит встроенных функций, например для операций ввода-вывода или математических вычислений. Все эти функции, а также функции работы со строками и многие другие функции, необходимые для разработки программ, включены в стандартные библиотеки функций языка. Имеется множество специализированных коммерческих библиотек функций для работы с графикой, базами данных, сетевыми ресурсами. Библиотеки функций являются составной частью Си позволяют значительно сократить время разработки программ. Заголовочные файлы С+ Заголовочные файлы содержат определения данных и функций, которые используется компилятором для генерации исполняемой программы. Заголовочные файлы содержат информацию, необходимую для выполнения пограммой математических операций, определения даты и времени, операций ввода-вывода и многих других операций. Включение в программу определений заголовочного файла осуществляется
Borland C++:
#include <имя_файла.h>
Microsoft Visual Studio C++:
#include <имя_файла>
using namespace имя_пространства_имен; Главная программа Каждая программа на С имеет главную программу,
main
– часть программы, которая всегда выполняется первой.

2 Консольное приложение Все примеры программ на С, рассматриваемые далее, ориентированны на выполнение в режиме консоли. Этот режим не требует создания графического интерфейса пользователя ив качестве устройства ввода даных использует клавиатуру, а в качестве устройства вывода – дисплей. В
Borland режим консоли устанавливается автоматически. В
Microsoft Visual следует задать этот режим –
Win32 Console Application
– при выборе типа создаваемого проекта. Первая программа Наша первая программа
Ex_001
выводит нечетные значения одномерного массива. Исходный код
Ex_001, представленный в среде
Borland C++ и Microsoft Visual показывает, что Сне так прост, как, например,
Pascal или Для обращения к элементам массива С позволяет использовать адресную арифметику –
m+i
. Да, это сложение, ноне двух целых чисел, а адреса первого элемента массива и смещения
i
. Разыменование адреса –
*(m+i)
– дает значение, которое храниться поэтому адресу. Впрочем,
С++
прекрасно понимает и обычную нотацию для обращения кому элементу массива –
m [ i ] Как видно из этих примеров в консольном приложении различие исходного кода заключается прежде всего в операциях ввода-вывода. В примере для
Borland C++ были использованы операторы языка
C

scanf, printf, а в
Microsoft Visual Studio
– операторы языка
C++
cin, cout. Сне только наследует выразительность и лаконичность языка С, но также включает всю мощь средств объектно-ориентированного программирования. Сегодня, С один из востребованных языков программирования и его знание является необходимой основой для разработки современного программного обеспечения.

3

4
1. ОСНОВЫ. СИНТАКСИС, ЗНАЧЕНИЯ И УПРАВЛЯЮЩИЕ СТРУКТУРЫ
Синтаксические элементы К синтаксическим элементам языка программирования обычно относят следующие набор символов – буквы и цифры (например, символы ASCII, американского стандарта обмена информацией, а также ряд специальных символов идентификаторы – имена объектов языка (типов, констант, переменных и других. Идентификатор состоит из последовательности букв, цифр и знака подчеркивания Идентификатор не может начинаться с цифры. Отметим, что
abc
и
Abc
– два разных идентификатора, те. заглавные и строчные буквы различаются символы (знаки) операций, ограничители и скобки – символы арифметических и логических операций, например
+, -, /, *, !, &, |
; символы операций отношения
!=, =,
>=
и другие символ ограничитель операторов парные ограничители
(

), [

]
и операторные скобки – {…}; ключевые слова – идентификаторы, используемые в качестве фиксированной части синтаксиса какой-либо конструкции языка. Например
int, char, if, while, выражения – конструкции языка для вычисления и изменения значений. Выражения включают символы операций и операнды (константы, переменные, функции и другие объекты языка);
операторы
– конструкции языка, необходимые для обработки данных и управления порядком действий. Оператор задает законченное описание некоторого действия. Различают операторы присваивания, ввода-вывода, операторы, реализующие управляющие структуры;
комментарии
– пояснения, включаемые в текст программы, ноне обрабатываемые компилятором. Комментарии в
С++
:
//
– однострочный
/* ... */
– многострочный, включающий несколько строк. Значения и типы Цель программы состоит в вычислении значений. Значение данных может представлять собой число, символ или указатель на другой объект данных. При этом компьютер оперирует с физическими представлениями значений, которыми являются совокупности битов, байтов или слов оперативной памяти. Одной из главных характеристик данных является тип. Тип данных определяет внутренне представление данных в памяти компьютера множество значений, которые могут принимать данные этого типа операции и функции, которые можно применять к значениям этого типа
В таблице 1.1 перечислены простые типы данных
С++
и приведены наиболее типичные диапазоны их значений.

5 Таблица 1.1. Встроенные типы языка
С++
Название Обозначение Диапазон значений Байт от -128 до +127 Байт без знака
unsigned от 0 до 255 Короткое целое число от -32768 до +32767 Короткое целое число без знака
unsigned от 0 до 65535 Целое число от – 2147483648 до + 2147483647 Целое число без знака
unsigned int
(или просто
unsigned
) от 0 до 4294967295 Длинное целое число от – 2147483648 до + 2147483647 Длинное целое число
unsigned от 0 до 4294967295 Вещественное число одинарной точности от ±3.4e-38 до ±3.4e+38 (7 значащих цифр) Вещественное число двойной точности от ±1.7e-308 до ±1.7e+308 (15 значащих цифр) Вещественное число увеличенной точности
long от ±1.2e-4932 до ±1.2e+4932 Логическое значение значения true (истина) или false (ложь) Пусто Не имеет значений. Используется для определения функций, которые не возвращают значения, для указания пустого списка аргументов функции, в операциях с указателями ив операции приведения типов Символьная информация представляется с помощью кодов (целые числа типа или
unsigned char
) стандарта
ASCII
Для английского алфавита и знаков препинания этот стандарт определяет коды от
0 до
127
. Для представления русских букв используется стандарт КОИ или
CP-1251
. В этих стандартах русские буквы кодируются числами от
128
до Для работы с китайским, японским, корейскими рядом других алфавитов одного байта недостаточно.Для символов этих языков используется кодировка с помощью двух байтов типа Преобразование типов в С выполняется с помощью специальных операторов приведения типов. Для приведения целых и вещественных типов при вычислении выражений используется оператор Например
float
f = 5.25;
int
i =
static_cast
<
int
>(f);
//i=5
int
first = 5, second = 10;
double
result=
static_cast
<
double
>(first)/second;
//result=0.5 Внимание
double result=first/second; //result=0!

6 Константы и переменные Константы – это данные, значения которых не изменяется при выполнении программы. Константы в языке С характеризуется типом, наименованием и значением
const int X = 240; константа
X
, тип целый, значение
240
const int Z = 0xF0; константа
Z
, тип целый, значение в шестнадцатеричной
// системе счисления При объявлении констант с помощью
const
обязательно укажите их значения При разработке программ в ряде случаев удобно объявить наименования констант с помощью перечисляемого типа
enum {Red, Yellow, константам, Yellow, автоматически будут
//
присвоены целые значения
0, 1, 2
соответственно
enum {EMPTY=-1, FULL=100}; константа имеет значение
-1, FULL – Переменные это данные, значения которых изменяется при выполнении программы. Вовремя выполнения программы c каждой переменной связана определенная область памяти, где хранится текущее значение переменной. Переменные в языке С характеризуется типом, наименованием, значением и областью действия. В программе перед использованием переменные необходимо объявить и, если требуется, инициализировать (присвоить начальное значение, например так
int a, b = 10; переменная
a
, тип целый, значение не определено переменная
b
, тип целый, значение
10
float f = -2.5; переменная
f
, тип вещественный, значение
-2.5
char c = ’A’; переменная
c, тип байт,
значение
65
(код символа в)
bool
b = true; переменная
b, тип логический,
значение истина (
1
). Описание переменной явно или по умолчанию задает ее область действия. Область действия переменной – это часть программы, в которой переменную можно использовать для доступа к связанной с ней областью памяти. В зависимости от области действия переменная может быть локальной или глобальной. Если переменная определена внутри блока (это часть программы, ограниченная фигурными скобками, она называется локальной, область ее действия – от точки описания до конца блока, включая все вложенные блоки. Если переменная определена вне любого блока, она называется глобальной и областью ее действия считается программа, в которой она определена – от точки описания переменой и до конца программы. Класс памяти определяет время жизни и область видимости программного объекта, в частности и переменной. Область видимости чаще всего совпадает с областью действия. Если класс памяти не указан явным образом, он определяется компилятором исходя из контекста объявления. Для задания класса памяти используются следующие спецификаторы
auto автоматическая переменная. Время жизни – с момента описания до конца блока. Создается при входе в блок. При выходе из блока область памяти, связанной с переменной, освобождается. Для глобальных переменных не используется, а для локальных задается по умолчанию
extern внешняя переменная. Переменная определяется в другом месте программы. Используется для создания переменных, доступных во всех модулях программы, в которых они объявлены
static статическая переменная. Время жизни – постоянное. Инициализируется один раз регистровая переменная. Аналогична auto
, но память выделяется по возможности в регистрах процессора

7 Пространства имен это поименнованные области, которые служат для логического группирования объявлений и ограничения доступа к ним. Формат описания пространства имен следующий имя_области{объявления} или имя_области; Например
namespace demo {
int i = 1;
int k = 0;
}
namespace std; объекты стандартной библиотеки ввода-вывода
std Доступ к постранству имен в программе осуществляется с помощью оператора
::
или оператора Операции и выражения Выражения используются для вычисления значений. Выражения состоят из операндов, знаков операций и скобок. Операнды задают данные для вычислений. Операции задают действия, которые необходимо выполнить. Каждый операнд является, в свою очередь, выражением или одним из его составляющих, например, константой, переменной иди функцией. Операции выполняются в соответствии с приоритетами. Для изменения порядка выполнения операций используются круглые скобки. В таблице 1.2 приведен список основных операций, определенных в языке Св соответствии сих приоритетами (по убыванию приоритетов, операции с разными приоритетами разделены горизонтальной чертой. В зависимости от количества операндов, которые используются в операциях, они делятся на унарные (один операнд, бинарные (два операнда) и тернарную (три операнда. Таблица 1.2 Основные операции языка
  1   2   3   4   5   6   7   8   9   10


написать администратору сайта