- •Этапы создания программного продукта.
- •Структурирование программы.
- •Этапы получения программного кода
- •Функциональная декомпозиция
- •Алгоритм программы
- •Линейные алгоритмы
- •Развилка
- •Комментарии
- •Базовые понятия языка Си.
- •Специфика присвоения имён.
- •Функция main
- •Блоки кода
- •Ключевые слова Си
- •Понятие lvalue и rvalue.
- •Типы данных.
- •Функции
- •Блоки кода программы.
- •Операторы языка c.
- •Логические операторы
- •Тернарный оператор
- •Базовые типы данных. Типы данных
- •1)Базовые
- •2)Производные
- •Файловый ввод - вывод.
- •Булевые переменные (тип bool).
- •Понятие, объявление и определение.
- •Ключевое слово typedef.
- •Виды компоновки программ:
- •Скрытие имени переменной.
Базовые типы данных. Типы данных
базовые производные
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));
float
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 ---область видимости имён параметров прототипа функции.
