Программирование в Си++

Содержание

Слайд 2

Тема № 1. Основные элементы языка программирования Си++

Тема № 1. Основные элементы языка программирования Си++

Слайд 3

Введение. Историческая справка

Разработан в США сотрудниками фирмы Bell Laboratories в начале 70-х

Введение. Историческая справка Разработан в США сотрудниками фирмы Bell Laboratories в начале
годов, использован для разработки ОС UNIX.
Первое описание языка дано его разработчиками – Б. Керниганом и Д. Ритчи. После было разработано десятки реализаций языка Си, поддерживающий разный диалект.
В 1983 г. при Американском Национальном Институте стандартов (ANSI) образован комитет по стандартизации языка Си, в 1989 г. ANSI C или C89.
В 1999 г. стандарт пересмотрен в международной организации по стандартизации ISO (International Organization for Standardization) принят стандарт ISO 9899:1999 или просто «С99».
8 декабря 2011 опубликован новый стандарт для языка Си (ISO/IEC 9899:2011) или просто «С11».

Слайд 4

Особенности языка Си:

язык Си – язык программирования «среднего» уровня: поддерживает операции низкого

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

Слайд 5

Переход к Си++

Начало 70-х годов появилась новая концепция программирования объектно-ориентированное программирование (ООП).

Переход к Си++ Начало 70-х годов появилась новая концепция программирования объектно-ориентированное программирование

Суть процедурного программирования – программа (процедура) состоит из последовательности операторов, основной оператор присваивания, служащий для изменения содержимого памяти.
Объект= данные + методы (функции) для обработки данных.
80-е годы тенденция объединения стилей – в процедурные языки программирования вводятся объектно-ориентированные средства, например, СП Turbo Pascal v. 5.5, Си++.

Слайд 6

Язык Си++ появился в 80-х годах первоначально назывался «Си с классами», название

Язык Си++ появился в 80-х годах первоначально назывался «Си с классами», название
Си++ появилось в 1983 г. (в Си существует операция ++ (инкремент – увеличение на 1). Один из создателей Бьёрн Страуструп.
В 1998 г. принят стандарт языка Си++ ISO/IES 14882.
Следующий этап развития Си++ появление инструментальных средств визуального программирования на базе языка Си++ (Borland C++ Builder, Microsoft Visual C++ и т.д.)

Слайд 7

1.1. Алфавит языка Си++

прописные и строчные буквы английского алфавита: A,…,Z, a,…,z;
арабские цифры

1.1. Алфавит языка Си++ прописные и строчные буквы английского алфавита: A,…,Z, a,…,z;
0, 1,…, 9;
специальные символы:
пробельные символы: пробел, табуляция, перевод строки, новая строка, возврат каретки, новая страница, вертикальная табуляция,
разделители: , . ; : ? ‘ ! “ / | \ ~ _ ( ) { } [ ] > < # % & ^ - = + *.
Символы алфавита находятся в первой половине кодовой таблицы (первые 128 символов) кодировки ASCII.
Из символов алфавита строятся лексемы.
Лексема – единица текста программы, имеющая для компилятора самостоятельный смысл.

Слайд 8

1.2. Идентификаторы (имена) языка Си++

Идентификатор(имя) – это лексема, представляющая собой последовательность букв

1.2. Идентификаторы (имена) языка Си++ Идентификатор(имя) – это лексема, представляющая собой последовательность
английского алфавита, десятичных цифр, символа подчеркивания, начинающаяся не с цифры (в некоторых компиляторах разрешается внутри идентификатора использовать $).
Примеры идентификаторов: x, X, abc124, A_c3, x4er, x_, __d.
Неверные идентификаторы: 1c, 4sd.
Следует отметить, что большие и малые буквы в идентификаторах отличаются, т.е. x и X разные идентификаторы.

Слайд 9

1.3. Ключевые слова

Ключевые слова – это идентификаторы, зарезервированные для специального использования.
Названия

1.3. Ключевые слова Ключевые слова – это идентификаторы, зарезервированные для специального использования.
стандартных типов, управляющих конструкций, и т.п.
int double char float long …. if else for while do …. struct
Программист не может их использовать в качестве имен своих объектов.

Слайд 10

1.4. Константы (литералы)

Константа – лексема, представляющая собой изображение фиксированного числового, строкового или

1.4. Константы (литералы) Константа – лексема, представляющая собой изображение фиксированного числового, строкового
символьного значения.
Типы констант:
целые:
два типа:
тип int (по умолчанию) в MS DOS – 2 байта, в Win32 – 4 байта, примеры: 1245, 6, 175, 5, 1425;
тип long – 4 байта, если диапазон выходит за тип int, или явно указывается тип с помощью суффикса l (L), примеры: 12l, 14567L, 125234;
три формы представления:
в десятичной СС – 1234, 378l, 346;
в шестнадцатеричной СС – 0x10, 0x10acd, 0XFFFF;
в восьмеричной СС – 010, 070, 01237;
константы могут быть представлены типами unsigned int и unsigned long, для явного указания можно использовать суффикс u (U);

Слайд 11

вещественные:
три типа:
тип double (по умолчанию) – 8 байт, примеры: 12.5, .123,

вещественные: три типа: тип double (по умолчанию) – 8 байт, примеры: 12.5,
0.5, 1. ;
тип float – 4 байта, используется суффикс f (F), примеры: 10.5f, 0.123F ;
тип long double – 10 байт, используется суффикс l (L), примеры: 10.5l, 0.9L;
две формы представления:
форма с точкой, примеры: 10.125, 1. , .125 , 0.125 ;
форма со знаком экспоненты: 1e -5 , 12.23E4F ;
символьные:
односимвольные (занимают памяти 1 байт): это буква, цифра, знак пунктуации или специальный символ, заключенный в апостроф.
‘a’, ‘d’, ‘1’, ‘.’, ‘ ‘, представлены в памяти типом char;
- многосимвольные (до 4-х символов): ‘asdf’, ‘GR’, представлены в памяти типом int (первый символ – младший байт).
Последовательность литер, начинающихся с ‘\’ называется эскейп-последовательностью.

Слайд 12

‘\\’, ‘\’’, ‘\”’, ‘\n’ – перевод строки (новая строка) (код 10),

‘\\’, ‘\’’, ‘\”’, ‘\n’ – перевод строки (новая строка) (код 10), ‘\r’
‘\r’ – возврат каретки (код 13), ‘\a’ – звуковой сигнал (7), ‘\b’ – возврат на шаг (забой) (8),
Допустимо использовать коды символов от 0 до 255,
заданные в восьмеричной или шестнадцатеричной СС. ‘\127’, ‘\10’, ‘\xff’, ‘\xf’.
строковые константы – последовательность символов, заключенных в кавычки (не в апострофы), внутри строковых констант допускается использовать эскейп-последовательности. Пример:
“начало строки\nтекст с новой строки”

Слайд 13

1.5. Операции (операторы)

[ ] ( ) . -> ++ --

1.5. Операции (операторы) [ ] ( ) . -> ++ -- &
& *
+ - ~ ! sizeof / % <<
>> < > <= >= == != ^
| && || ?: = *= /= %=
+= -= <<= >>= &= ^= |= , # ##

Слайд 14

1.6. Комментарии

Два вида комментариев:
// комментарий до конца строки
/* Комментарий на
несколько

1.6. Комментарии Два вида комментариев: // комментарий до конца строки /* Комментарий на несколько строк */
строк */

Слайд 15

1.7. Структура программы на Си (Си++)

Основная программная единица текстовый файл с

1.7. Структура программы на Си (Си++) Основная программная единица текстовый файл с
расширением .c или .cpp . (.cc)
Программа может включать в себя следующие основные элементы:
директивы препроцессора;
указания компилятору;
описания;
определения.
Для того чтобы программа могла выполняться она должна содержать хотя бы одно определение – определение функции main (WinMain) (точка входа в программу).

Слайд 16

1.8. Последовательность обработки программы на Си (Си++)


Исходный текст
файлы с расширение

1.8. Последовательность обработки программы на Си (Си++) Исходный текст файлы с расширение
.c .cpp .h

Полный текст
(файлы .cpp .c)
Препроцессор

Исполняемый код (файл с расширением .exe или .com)
Компилятор

Объектный код
(файлы .obj)

Компоновщик (линковщик, редактор связей)

Исходный текст
файлы с расширение .c .cpp .h

Исходный текст
файлы с расширение .c .cpp .h

Исходный текст
файлы с расширение .c .cpp .h

Полный текст
(файлы .cpp .c)

Полный текст
(файлы .cpp .c)

Объектный код
(файлы .obj)

Объектный код
(файлы .obj)

Слайд 17

/---------------------------------------------------------------------------
#include - Заголовочный модуль
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[]) –

/--------------------------------------------------------------------------- #include - Заголовочный модуль #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused int main(int
Точка входа в программу
{ составляется программа разработчиком
return 0;
}
//-------------------------------------------------------------------------

Код программы

Слайд 18

printf
Синтаксис:
int printf (Формат, СписокПеременых) ;

Выводит на экран значения переменных. Формат вывода задается

printf Синтаксис: int printf (Формат, СписокПеременых) ; Выводит на экран значения переменных.
в строке форматирования, которая помимо спецификатора формата может содержать текст и управляющие символы. Значение первой переменной выводится в соответствии с первым спецификатором формата, второй — со вторым, и т. д.

Слайд 19

Спецификаторы формата (необязательный параметр n задает ширину поля вывода).
Заголовочный файл:
printf("Вычисление площади

Спецификаторы формата (необязательный параметр n задает ширину поля вывода). Заголовочный файл: printf("Вычисление площади прямоугольника\n");
прямоугольника\n");

Слайд 20

scanf
Синтаксис:
int scanf (const chsur* Формат, СписокАдресовПеременных) ;
Вводит с клавиатуры значения переменных, в

scanf Синтаксис: int scanf (const chsur* Формат, СписокАдресовПеременных) ; Вводит с клавиатуры
соответствии с указанным спецификатором формата. Первая переменная получает значение в соответствии с первым спецификатором формата, вторая — со вторым и т. д.
Заголовочный файл:

Слайд 21

Puts
Синтаксис:
puts(const char* Строка);
Выводит на экран строку символов и переводит курсор в начало

Puts Синтаксис: puts(const char* Строка); Выводит на экран строку символов и переводит
следующей строки экрана. В качестве параметра функции можно использовать строковую константу или строковую переменную.
Заголовочный файл:

Слайд 22

Gets
Синтаксис:
char *gets (chau:* s) ;
Вводит с клавиатуры строку символов. Вводимая строка может

Gets Синтаксис: char *gets (chau:* s) ; Вводит с клавиатуры строку символов.
содержать пробелы.
Заголовочный файл:

Слайд 23

Putch
Синтаксис:
int putch(int с);
Выводит на экран символ.
Заголовочный файл:

Putch Синтаксис: int putch(int с); Выводит на экран символ. Заголовочный файл:

Слайд 24

Getch
Синтаксис:
int getch(void);
Возвращает код символа нажатой клавиши. Если нажата служебная клавиша, то функция

Getch Синтаксис: int getch(void); Возвращает код символа нажатой клавиши. Если нажата служебная
getch возвращает 0. В этом случае, для того, чтобы определить, какая служебная клавиша нажата, нужно обратиться к функции getch еще раз.
Замечание
Функция getch не выводит на экран символ, соответствующий нажатой клавише.
Заголовочный файл:

Слайд 25

Cputs
Синтаксис:
cputs(const char* Строка);
Выводит на экран строку.
Цвет выводимых символов можно задать при

Cputs Синтаксис: cputs(const char* Строка); Выводит на экран строку. Цвет выводимых символов
помощи функции textcolor , цвет фона — при помощи функции textbackground.
Замечание
Для перехода к началу следующей строки вместо \n следует использовать символы \n \r , иначе курсор лишь переводится'на новую строку, но не возвращается к левой границе окна.
Заголовочный файл:

Слайд 26

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

Пример: Написать программу вычисления площади параллелограмма. Ниже приведен рекомендуемый вид экрана во
программы (данные, вводятся пользователем).
Вычисление площади прямоугольника
Введите исходные данные:
Длина (см) -> 9
Ширина (см) -> 7.5
Площадь параллелограмма: 67.50 кв.см.
Имя файла: Программирование-в-Си++.pptx
Количество просмотров: 250
Количество скачиваний: 4