- •1 Порядок разработки программного продукта
- •2 Структура программы на языке с
- •Int age; // Поле age
- •Void main(void) // Основная функция
- •3 Типы данных языка с
- •Void main(void)
- •Int *iptr; // Объявление указателя
- •Void main(void)
- •Int *iptr; // Объявление указателя
- •Void main(void)
- •Void show_string(char *string)
- •Void main(void)
- •4 Операции языка с
- •Арифметические операции
- •Void main(void)
- •Void main(void)
- •Логические операции
- •Void main(void)
- •Операции отношения
- •Поразрядные операции
- •Побитовые операции
- •Void main(void)
- •Адресные операции
- •Операция “условие”
- •Void main(void)
- •Операция sizeof()
- •Void main(void)
- •Int size;
- •Void main(void)
- •Int *iptr;
- •Void main(void)
- •Int *list,I;
- •Операция вызова функции
- •5 Операторы языка с
- •Условный оператор if
- •Оператор switch
- •Void main(void)
- •Void main(void)
- •Оператор цикла for
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •Цикл while
- •Void main(void)
- •Цикл do ... While
- •Void main(void)
- •Вложенные циклы
- •Void main(void)
- •Void main(void)
- •Int I,j,score;
- •Int scores[line][column];
- •Оператор безусловного перехода
- •Оператор break
- •Void main(void)
- •Оператор continue
- •Void main(void)
- •If (I % 5) continue;
- •Оператор return
- •6 Организация функций
- •Int sum_vect(int V[], int n)
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •7 Библиотечные функции
- •7.1 Функции форматного ввода-вывода
- •Int printf(char*format[, argument,...]);
- •Void main(void)
- •Void main(void)
- •Int scanf(char *format[,argument,...]);
- •Функции для работы с файлами
- •Void main(void)
- •Int vect[line];
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •7.3 Графические средства языка с
- •Void main(void)
- •Initgraph(&gdriver, &gmode, ""); // Инициализация графического режима
- •Int maxX, maxY;
- •Void far initgraph(int far *driver, int far *mode, char far *path);
- •Void main(void)
- •Int driver, mode, errorcode;
- •Void far rectangle(int left, int top, int right, int bottom);
- •Void far setviewport(int left, int top, int right, int bottom, int flag);
- •Void far circle(int X, int y, int radius);
- •7.4 Функции для работы со строками
- •Void main (void)
- •Void main (void)
- •Void main (void)
- •Void main (void)
- •Void main (void)
- •7.5 Математические функции
- •Продолжение таблицы а.7
- •Продолжение таблицы а.7
3 Типы данных языка с
Данные, которые используются программой, называются объектами. Объект — это область памяти ЭВМ, которая может содержать: переменную, функцию, значение, метку. Тип данных определяет способ хранения объекта в памяти ЭВМ и набор операций, которые применяются к объекту.
В языке С предусмотрено четыре базовых типа данных : символьный (char), целый (int) и вещественный с обычной (float) и двойной (double) точностью. Отсутствие типа задается служебным словом void. В табл. 3.1 приведены базовые типы данных, размер области памяти в байтах и диапазон принимаемых значений. Размещение данных в памяти компьютера показано на рис. 3.1.
Таблица 3.1— Базовые типы данных
Тип данных |
Спецификатор типа |
Размер в байтах |
Диапазон изменения |
Символ |
char |
1 |
-128 — 127 |
Целое |
int |
2 |
-32768 — 32767 |
Вещественное |
float |
4 |
-3.4Е-38 — 3.4Е38 |
Вещественное двойной точности |
double |
8 |
-1.7Е-308 1.7Е+308 |
Тип отсутствует |
void |
используется при описании функций |
|
Рис. 3.1
Существуют модификаторы типа, которые помещаются перед именем типа по форме:
модификатор тип переменная;
Модификаторы unsigned и long изменяют границы значений переменных базового типа за счет использования знакового бита под размещение данных (табл. 3.2). Возможно их комбинирование.
Таблица 3.2 — Модификаторы типа
Тип данных |
Спецификатор типа |
Размер в байтах
|
Диапазон изменения |
Беззнаковый символ |
unsigned char |
1 |
0 — 255 |
Беззнаковое целое |
unsigned int или unsigned |
2
|
0 — 65535 |
Короткое целое |
short int или short |
2
|
-32768 — 32767 |
Длинное целое |
long int или long |
4
|
-2147483648 — 2147483647 |
Длинное вещественное |
long double |
10 |
-3.4Е-4932 — 3.4Е4932 |
Модификаторы типа signed и short делают программы переносимыми с 16-разрядных на 32-разрядные компьютеры. Они используются в случае, когда работа программы основана на эффекте переполнения (см. табл. 3.2).
Модификатор типа register предписывает компилятору воспользоваться для хранения переменной регистром процессора. Используется в тех случаях, когда к переменной программа обращается часто (например, счетчик). Модификатор register предназначен для ускорения работы программы.
Перед тем, как использовать объект в программе, его необходимо описать, присвоив ему имя (идентификатор) и задав тип данных, а также инициализировать его (присвоить начальное значение). Описание — это оператор, который вводит имя в программе. Описание задает тип этого имени. Может также инициализировать объект с этим именем. Инициализатор — это выражение, присваивающее начальное значение объекту.
// Описание (объявление) переменных
char ch;
int value;
float threshold;
double weight;
register count;
// Описание и инициализация переменных
char ch =’A’; // Два способа инициализации символьной
char ch=65; // переменной равнозначны
int age=44, weight, height=173; // Переменная weight
// не инициализирована
float radius=123.05; // Возможны другие формы записи:
// 0.123E03 или .12305E3
float Pi=3.14159; // Обычно используется в качестве константы
unsigned int a=42000 ; // Слово int можно опустить
long int one_million;=1000000;
short small_value=8;
unsigned long int very_large_value=150E6 // Расстояние до
// Солнца (км)
Производные типы данных : указатели, массивы, константы. Можно создать бесконечное число производных типов, применяя указатели и массивы к базовым типам.
Указатель указывает на объект заданного типа. Например, “указатель на целое” может указывать на любое целое число, используемое в программе. Объект типа “указатель” содержит адрес другого объекта программы. Указывать можно на любой тип (будь то переменная или функция), в том числе и на другой указатель. Форма объявления указателя:
тип *имя_переменной;
Тип указателя должен совпадать с типом переменной, на которую он указывает. Может быть указатель типа void. Прежде чем проводить действия с указателем, его необходимо инициализировать (примеры 3.1 и 3.2). Неинициализированный указатель указывает на нулевой адрес памяти ЭВМ, и действия с ним могут привести к краху системы.Основными операциями над указателями являются: & —“взятие адреса”, по которому расположена переменная, и * — “взятие значения”, расположенного по указанному адресу.
// Пример 3.1.
// Пример работы с указателем
#include <stdio.h>