SHPORA.net :: PDA

Login:
регистрация

Main
FAQ

гуманитарные науки
естественные науки
математические науки
технические науки
Search:
Title: | Body:

Переменные, константы, строки

Переменные и именованные константы
Переменная - именованная область памяти.
–Отличительная особенность переменной состоит в возможности связывать с ее именем различные значения, совокупность которых определяется типом переменной.
–При задании значения переменной в соответствующую ей область памяти помещается код этого значения.
–Доступ к значению переменной наиболее естественно обеспечивает ее имя.
–Доступ к участку памяти возможен только по его адресу.
–Понятие переменной можно интерпретировать как пару "имя - значение".

Определение переменных
Каждая переменная перед ее использованием в программе должна быть определена. При определении для переменной выделяется память. Размер участка памяти, выделяемой для переменной, и интерпретация содержимого зависят от типа, указанного в определении переменной.
Форма определения переменных:
Тип <список имен переменных>;
Здесь
Тип – спецификатор типа,
<список имен переменных> - идентификаторы имен переменных(возможно с инициализацией), разделенные запятыми.
Инициализация означает, что переменной присваивается некоторое значение в соответствии с определением.

Примеры определения переменных
char symbol, ее;
unsigned char code;
int number, row;
unsigned long long_number;
float x, X, ссЗ=5.6, pot_8;
double e, Stop, B4;
float pi=3.1415, сс=1.23;
unsigned int year=1997;

Константы
Константа - значение, которое не может быть изменено.
Пять типов констант:
–символы (символ - лексема, которая состоит из изображения символа и ограничивающих апострофов), например, 'А', 'а', 'В', '8', '0','+', ';'
–константы перечисляемого типа,
–вещественные числа,
–целые числа,
–нулевой указатель ("null-указатель")

Константы целые
Десятичные целые определены как последовательности десятичных цифр, начинающиеся не с нуля (если это не число нуль), например, 44 684 0 1024.
Последовательность цифр, начинающаяся с 0 и не содержащая десятичных цифр старше 7,воспринимается как восьмеричная константа, например, 016 .
Последовательность шестнадцатеричных цифр (О, 1,...,9 ,А, В, С, D, Е, F), перед которой записаны символы 0хили 0Х, считается шестнадцатеричной константой, например, 0x16, OXFF -

Вещественные константы
Каждая вещественная константа состоит из следующих частей:
целая часть (десятичная целая константа);
десятичная точка;
дробная часть (десятичная целая константа);
признак показателя "е" или "Е";
показатель десятичной степени (десятичная целая константа, возможно, со знаком). При записи констант с плавающей точкой могут опускаться целая или дробная часть (но не одновременно); десятичная точка или символ экспоненты с показателем степени (но не одновременно).Примеры констант с плавающей точкой:
44. 3.14159 44е0 .314159Е1 0.0
Константы перечисляемого типа
-Целочисленные именованные константы можно вводить с помощью перечисления:
-enum тип_перечисления{список_именовапных_констант};
где enum - служебное слово, вводящееперечисление;
-тип_перечисления - его название -необязательный произвольный идентификатор;
-список_именованных_констант - разделеннаязапятыми последовательность идентификаторов или именованных констант вида: имякопстанты=значение константы
Примеры констант перечисляемого типа
enum {ONE=1, TWO, THREE, FOUR};
enum DAY {SUNDAY, MONDAY, TUESDAY,WEDNESDAY, THURSDAY, FRIDAY, SATURDAY);enum BOOLEAN {NO, YES};Замечание. Если в списке нет ни одного элемента со знаком '=', то значения констант начинаются с 0и увеличиваются на 1 слева направо. Таким образом, NO равно 0, YES равно 1, SUNDAY имеет значение 0 и FRIDAY имеет значение 5.
Строковые константы
Строковая константа определяется как последовательность символов (включая эскейп-последовательности), заключенная в двойные кавычки. Например:
"Образец строки"
или
"
Текст
разместится
в 3-х строках дисплея"
Определение именованных констант
Три способа определения именованных констант
с помощью enum;
const тип имя_константы=значение_константы;
const double Е=2.718282;
const long М=99999999;
const P=765;
#define имя_константы значение_константы
#define EULER 2.718282
Препроцессор заменит текст
double mix = EULER; d = alfa*EULER;
на
double mix = 2.718282; d = alfa*2.718282;
Строки.
Строка – это последовательность символов, заключенная в двойные кавычки “…”. Строка имеет тип char, а класс памяти static. Она инициализируется заданными символами. Все строки, даже если они занесены одинаково, различны. Компилятор располагает в конце каждой строки нулевой (пустой) байт O с тем, чтобы сканирующая строку программа могла найти ее конец. В строке перед символом двойной кавычки должна стоять обязательно . Кроме того, могут использоваться те же обозначения, что были описаны для символьных констант.
Примеры:
“Это строковая константа”
“A”

2. Организация работы с файлами: Открытие и закрытие.
Организация работы с файлами
Язык Си, кроме стандартного ввода данных с клавиатуры и вывода результатов на экран, предоставляет также возможность обмена при операциях ввода/вывода с внешними устройствами, в том числе, с файлами на диске.
В Си не предусмотрены никакие предопределенные структуры файлов (такие как последовательного или прямого доступа). Все файлы рассматриваются как последовательности, потоки байтов.
Поток- это источник или приемник данных. Его можно связать с каким- либо внешним устройством, например, с принтером, клавиатурой, диском и т.д.
В языке Си определены два вида потоков: текстовый и бинарный.
Текстовый поток - это последовательность строк. Каждая строка содержит нуль и более символов и обязательно заканчивается символом – терминатором новая строка '
'.
Бинарный или двоичный поток - это последовательность двоичных кодов (байтов), как правило, используемая для запоминания кодов машинного языка.
Когда программа начинает работу, то автоматически открываются три потока: stdin, stdout, stderr.
STDIN –стандартный входной поток (по умолчанию связан с клавиатурой).
STDOUT – стандартный выходной поток (по умолчанию связан с экраном монитора).
STDERR – поток стандартных ошибок (связан с экраном монитора).


Открытие файла
Для того, чтобы связать программу с файлом на диске, необходимо определить в программе переменную типа указатель на файл: FILE *fp;
где FILE – это структура, определённая в <stdio.h> с помощью средства typedef и содержащая некоторую информацию о файле.
После того, как указатель на файл описан, его можно связать с конкретным файлом в момент открытия данного файла. Открыть файл можно с помощью следующей конструкции:
fp = fopen (“ имя_ файла”, “ режим_ доступа”);
Константы в круглых скобках имеют следующий смысл:
имя_файла – это параметр, характеризующий имя и тип используемого файла на диске, например, “test.txt”;
режим доступа – это параметр, характеризующий как должен использоваться данный файл. Этот параметр может принимать следующие значения:
’r’ -файл открывается для чтения (файл должен существовать на диске);
’w’ - файл открывается для записи; если файла с указанным именем нет, то он создаётся; если файл существует, то старое содержимое файла уничтожается;
’а’ - файл открывается, либо создаётся для дозаписи в конец файла;
’r+’ – файл открывается для чтения и записи (файл должен существовать).
’w+’ – файл открывается для чтения и записи; старое содержимое, если файл существовал, теряется.
’а+’ – файл открывается, либо создаётся для чтения уже существующей информации и добавления новой в конец файла.
Обычно по умолчанию файл считается текстовым, однако можно явно указать с каким файлом будет работать программа: текстовым (t) или бинарным (b), например:
r + t, w + b, at, wt +, и т. д.
Операцию открытия файла можно записать и так:
FILE *fp = fopen (‘test. txt’, ‘w’);
Теперь указатель fp будет связан с файлом на диске с именем ‘test.txt’. Во всех операциях с файлом теперь следует указывать fp.
Закрытие файла
После того, как работа с файлом закончена, его следует закрыть. Операция закрытия файла имеет вид:
fclose (имя файла), например: fclose (fp);
Так как операции с файлами осуществляются посредством промежуточной буферизации, то операция закрытия осуществляет выталкивание содержимого буфера.
Если операции закрытия файла в программе нет, то по окончанию программы все открытые файлы будут закрыты автоматически. Следует, однако, помнить, что настройка среды ограничивает число одновременно открытых файлов, поэтому следует явно определять операцию их закрытия.