
- •Оглавление.
- •Этапы создания программного продукта.
- •Структурирование программы.
- •Этапы получения программного кода
- •Функциональная декомпозиция
- •Алгоритм программы
- •Линейные алгоритмы
- •Развилка
- •Функция main
- •Блоки кода
- •Комментарии
- •Базовые понятия языка Си.
- •Специфика присвоения имён.
- •Ключевые слова Си
- •Понятие lvalue и rvalue.
- •Типы данных.
- •Функции
- •Блоки кода программы.
- •Операторы языка c.
- •Логические операторы
- •Тернарный оператор
- •Базовые типы данных. Типы данных
- •1)Базовые
- •2)Производные
- •Файловый ввод - вывод.
- •Булевые переменные (тип bool).
- •Понятие, объявление и определение.
- •Ключевое слово typedef.
- •Виды компоновки программ:
- •Скрытие имени переменной.
- •Инструкции условий.
- •Переключатель switch
- •Инструкции цикла.
- •Инструкции безусловного перехода.
- •Препроцессор. Заголовочные файлы. Директивы препроцессора.
- •Список директив препроцессора (все начинаются с #).
- •Предопределённые идентификаторы.
- •Диагностический макрос (микрокоманда) assert.
- •Указатели.
- •Инициализация указателя и оператор получения адреса объекта.
- •Арифметика указателей.
- •Массивы.
- •Объявление встроенного массива.
- •Инициализация массива.
- •Явная инициализация.
- •Обращение к элементу массива. Оператор [].
- •Связь массивов и указателей.
- •Двумерные массивы.
- •Оператор new и массивы.
- •Многомерные массивы.
- •Ссылки.
- •Объявление:
- •Инициализация:
- •Получение значений:
- •Функции.
- •Определение функции (реализация).
- •Вызов inline функции.
- •Способы передачи параметров
- •Использование “ , ” , формирование параметров.
- •Указатели на массивы в качестве параметров функции.
- •Значения аргументов функций по умолчанию.
- •Переменное число параметров функции.
- •Функции стандартной библиотеки
- •Виды возвращаемых значений и механизмы их формирования.
- •Проблемы при возвращении ссылки или указателя.
- •Ключевое слово const.
- •“Перегрузка” имён функции.
- •Возможный конфликт при использовании параметров по умолчанию.
- •Рекурсивные функции.
- •Структуры Си.
- •Структуры и функции.
Базовые типы данных. Типы данных
базовые производные
1)Базовые
целые bool void плавающие
char (1) short(2) long(4)
int (системно зависим) _int n (n=8,16,32,64) long long (8)
Плавающая точка: float (4) double (8) long double (8)
2)Производные
простые - указатель, ссылка
составные - класс(class), структура(structure), объединение(union), массив(array)
sizeof(_) либо выражение, либо тип данных sizeof(char) = =1 double d; sizeof(d) //= =8
y=300*sin(x)
int double Неявное приведение типов производит компилятор автоматически по правилу: ”Полученное в результате вычисления выражение приводится к типу слева от знака равенства.”. Явное приведение типов. y=300*(int)sin(x); //неверно!!!
y=(int)(300*sin(x));
f
loat
var1;
cin>>var1;
if(var1 != (int)var1)
проверка
на тип данных
{
//
не целое
}
Файловый ввод - вывод.
infile = fopen(“имя”, w); “Z:\\...\\myfile.txt”;
myfile.txt *.vcproj *sln ..\\ на уровень выше.
Булевые переменные (тип bool).
True =1 False=0 ex. : bool b=(x<=y); //b=5 – ошибка int n=b; (неявное приведение к типу int) Старый BOOL – 4 бита Сейчас BOOL – 1 бит
Понятие, объявление и определение.
Программист даёт имена переменным или функциям, а потом использует переменные в выражении или вызове функции. Когда компилятор встречает в тексте программы любое имя, он должен знать, что имеется ввиду под этим именем, поэтому в C использованию любого имени должно предшествовать описание его свойств.
Declaration Объявлений одного имени может быть сколько угодно, но они должны быть согласованы. Определение может быть только одно.
extern int iNumber; float var2; //объявление + определение double var3 = 3.14159, Один тип объявляется через ‘ , ’ : char var1, var2,var3, var4 = ’ y ’;
Ключевое слово typedef.
typedef тип синоним типа,
typedef unsigned char BYTE; BYTE var8; #if defined(_win32) typedef int int32; #else typedef long int 32; #endif int32 i=1 - 32 разряда памяти
Нельзя комбинировать имена, созданные с помощью typedef.
//typedef long int 32 MY; - НЕЛЬЗЯ for (int index…) { index }
Виды компоновки программ:
1) Внешняя external (все переменные определены вне {} без спецификатора static) int var1, int main {}
2) Внутренняя internal (объявление вне {}, но с ключевым словом static )
3) Без компоновки no linkage (не подлежат компоновке) {int var1; }
file.cpp int z; static int y; void f1() { int x; static int; } void f2() { использование y } void f3() { использование y, z }
file2.cpp extern int z; void f4(); { использование z; }
Автоматическая память – все переменные, которые были определены внутри блока, или параметры функции.
Область видимости.
{ … int i; } //i=1
File scope – область видимости для переменной не {} будет видна только в этом файле
#include… int z; void main() { z=10;
}
Область видимости переменной.
--- namespace; ---function scope; ---void f1(void) { label1: } void f2(void) { label1: } ---class scope ---область видимости имён параметров прототипа функции.