
- •Технология программирования Конспект лекций
- •Краткая характеристика1
- •Алфавит
- •Объявление переменных. Типы данных
- •Простые типы данных
- •Структурированные типы данных
- •Константы
- •Операции Присваивание.
- •Арифметические:
- •Логические (результат – логическое значение).
- •Функции
- •Директивы препроцессора
- •Указатели Обзор
- •Приведение типов
- •Типизированные и нетипизированные указатели
- •Операции над указателями
- •Массивы
- •Многомерные массивы
- •Указатели в качестве параметров функций
- •Функции работы с указателями и памятью
- •Строки.
- •Время жизни и область видимости переменных
- •Указатель на функции
- •Работа с файлами.
- •Форматированный ввод-вывод
- •Введение в объектно-ориентированное программирование
- •Часть 2. Введение в технологию программирования.
- •Этапы развития программирования.
- •Проблемы разработки сложных программных систем:
- •Жизненный цикл программного продукта.
- •Модели жц.
- •Экстремальное программирование
- •Оценка качества процессов создания программного обеспечения.
- •Процессы проектирования.
- •Требования, цели
- •Внешнее проектирование.
- •Проектирование модульной структуры. Модуль
- •Внешнее проектирование модулей
- •Модульная декомпозиция
- •Почему модуль должен компилироваться с первого раза?
- •Рекомендации по внесению ясности в текст программы:
- •Тестирование.
- •Документирование.
- •Пользовательский интерфейс
- •Организация двусвязанного списка.
- •Организация массива переменного размера:
- •3.2 Алгоритмы Быстрая сортировка
- •Поиск пути
- •Примеры программ
- •Список литературы
Алфавит
В алфавит языков С, С++ входят:
- прописные и строчные буквы латинского алфавита;
- арабские цифры;
- специальные знаки: “ { } , | [ ] ( ) + - / % \ ; ‘ : ? < = > _ ! & # ~ ^ . *
Некоторые среды разработки, например, Ms Visual Studio 2008, позволяют использовать национальные шрифты, например, кириллицу.
Из символов алфавита формируются следующие лексемы языка.
1. Идентификаторы – набор символов, используемый для идентификации объектов (переменных, функций, классов, типов данных и т.д.) Идентификаторы записываются в соответствии с правилами – это последовательность букв, цифр и символов подчёркивания, начинающаяся не с цифры. Идентификаторы в языках С, С++ чувствительны к регистру букв, в отличие, например, от ЯВУ Pascal.
Особым видом идентификаторов являются ключевые (служебные) слова – они зарезервированы для специального использования и не могут быть переопределены.
2. Константы.
3. Знаки операций.
4. Разделители.
Операторы заканчиваются символом «;»(точка с запятой) .
Существуют две формы записи комментариев: однострочные комментарии начинаются составным символом «//», многострочные заключаются между символами «/*» и «*/»;
Примеры:
// Комментарий должен уместиться до конца строки
/*
а между этими символами можно писать многострочные комментарии
*/
В качестве операторных скобок используются символы «{» и «}».
Объявление переменных. Типы данных
В языке Си среди простых типов присутствуют только числовые. Логический и символьный типы отсутствуют:
– в логических выражениях значению «ложь» соответствует целый ноль, значению «истина» – любое другое значение;
– символьные константы преобразуются компилятором в коды соответствующих символов;
– любое целое число может быть представлено как соответствующий ему символ.
В простейшем случае переменные объявляются следующим образом:
<тип_данных> <имя_переменной>
int x; bool flag; char s;
Несколько переменных, имеющих один тип данных, могут быть объявлены вместе:
int a,b,c; //объявление трёх переменных типа int
При объявлении переменным могут быть присвоены начальные значения:
int a=3, b=4, c; //Переменной «c» начальное значение не задано.
В языке «С» переменные должны быть объявлены в начале функции, до любых других операторов. В языке «С++» данное ограничение отсутствует.
Простые типы данных
Существуют три категории простых типов: целые числа, вещественные числа и пустой тип. Стандарт на язык «С++» не определяет диапазоны каждого из типов, но определяет, какой из типов имеет больший диапазон (или точность для вещественных чисел), а какой – меньший. Типы данных будут перечислены от меньшего к большему.
В языке С++ введён дополнительно логический тип, отсутствующий в С.
Целые числа: char, short, int, long, long long.
Вещественные числа: float, double, long double.
Пустой тип: void. Переменные данного типа не могут быть определены, он используется для описания функций, не возвращающих значения, и для определения нетипизированных указателей.
Логический тип: bool. Принимает одно из двух значений: true или false.
Целочисленные типы данных могут быть как знаковыми, так и беззнаковыми. Для определения, является тип знаковым или беззнаковым, используются ключевые слова signed и unsigned соответственно, которые записываются перед идентификатором типа данного. Если явно не указано, является тип знаковым или беззнаковым, он считается знаковым. Однако, настройки компилятора могут переопределять это умолчание.
Пример.
int x; // тоже, что и signed int x;
unsigned long t;
В таблице 1 приведены размеры памяти (в битах), занимаемые простыми типами данных в различных средах разработки.
Таблица 1.
|
Borland C/C++ (16 bit) |
Ms Visual Studio 2008 |
char |
8 |
8 |
short |
16 |
16 |
int |
16 |
32 |
long |
32 |
32 |
long long |
64 |
64 |
float |
32 |
32 |
double |
64 |
64 |
long double |
80 |
64 |
bool |
8 |
8 |