|
ПЕРЕМЕННЫЕ И ТИПЫ ДАННЫХ
Скажите, Вы любите порядок в своем компьютере? Чтобы музыка была систематизирована по альбомам и исполнителям, чтобы документы были в каталогах, а фотографии имели хронологический порядок? Порядок все любят! Но больше всего его любит сам компьютер. Для хранения и обработки данных в памяти компьютера используют переменные разных типов.
Один мой знакомый в своей книге «Дизайн и эволюция языка С++» пришёл к выводу, что система типов в языке Pascal не просто бесполезна – это смирительная рубашка, которая создаёт больше проблем, нежели решает, заставляя жертвовать чистотой дизайна ради удовлетворения причуд компилятора.
Хотите узнать, почему он так решил?
переменные - это данные, которые могут меняться в процессе выполнения программы. Обращаться к переменным нужно по имени, тогда программа понимает какую переменную нужно вызвать, чтобы взять из нее или положить в нее данные для оперативного хранения.
Программы оперируют с различными данными, которые могут быть простыми и структурированными.
Простые данные - это целые и вещественные числа, символы и указатели (адреса объектов в памяти). Целые числа не имеют, а вещественные имеют дробную часть.
Структурированные данные - это массивы и структуры; они будут рассмотрены ниже.
Переменные в программировании должны быть разные по типу, потому что для их обработки используются разные методы. Символьные, Целые, Вещественные (дробные) величины обрабатываются по разному. И мы должны научиться их правильно систематизировать и использовать.
Программы оперируют с различными данными, которые могут быть простыми и структурированными.
Простые данные - это целые и вещественные числа, символы и указатели (адреса объектов в памяти). Целые числа не имеют, а вещественные имеют дробную часть.
Структурированные данные - это массивы и структуры; они будут рассмотрены ниже.
Переменные в программировании должны быть разные по типу, потому что для их обработки используются разные методы. Символьные, Целые, Вещественные (дробные) величины обрабатываются по разному. И мы должны научиться их правильно систематизировать и использовать.
Есть некоторые негласные правила, т.е исполнения который является хорошим тоном, но делать это не обязательно:
1. каждое объявление переменных нового типа начинается с новой строки;
2. из названия переменной должно быть понятно зачем она и что в ней будет храниться (хотя иногда из-за таких вот информативных названий скорость написания кода падает, т.к некоторых заносит и они называют переменные целыми предложениями);
3. поэтому появляется правило: название переменной не должно быть слишком длинным;
4. после объявления переменной очень желательно в комментариях пометить зачем она;
5. необходимо разделять имена переменных пробелами.
1. каждое объявление переменных нового типа начинается с новой строки;
2. из названия переменной должно быть понятно зачем она и что в ней будет храниться (хотя иногда из-за таких вот информативных названий скорость написания кода падает, т.к некоторых заносит и они называют переменные целыми предложениями);
3. поэтому появляется правило: название переменной не должно быть слишком длинным;
4. после объявления переменной очень желательно в комментариях пометить зачем она;
5. необходимо разделять имена переменных пробелами.
В языке возможны глобальные и локальные объекты. Первые определяются вне функций и, следовательно, доступны для любой из них. Локальные объекты по отношению к функциям являются внутренними. Они начинают существовать, при входе в функцию и уничтожаются после выхода из нее. Ниже показана структура программы на Си и возможные места в программе, где определяются глобальные и локальные объекты.
int a; /* Определение глобальной переменной */
int function (int b, char c); /* Объявление функции (т.е. описание ее заголовка)*/
void main (void)
{ //Тело программы
int d, e; //Определение локальных переменных
float f; //Определение локальной переменной
...
}
int function (int b, char c) /* Определение функции и формальных параметров (по существу - локальных переменных) b и c */
{ //Тело функции
char g; //Определение локальной переменной
...
}
int a; /* Определение глобальной переменной */
int function (int b, char c); /* Объявление функции (т.е. описание ее заголовка)*/
void main (void)
{ //Тело программы
int d, e; //Определение локальных переменных
float f; //Определение локальной переменной
...
}
int function (int b, char c) /* Определение функции и формальных параметров (по существу - локальных переменных) b и c */
{ //Тело функции
char g; //Определение локальной переменной
...
}
В языке C++ также существуют перечислимый тип – enum, который является подмножеством целого типа, и пустой тип – void, который имеет специальное назначение. Он используется для объявления функций, которые не возвращают никакого значения, а также для объявления указателей на значение типа void. Такие указатели могут быть преобразованы к указателям на любой другой тип.
В языке С++ можно объявлять структуры и так называемые объединения.
В языке C++ нет специальных типов для массивов и строк ВАЖНО!!! В языке Паскаль для объявления постоянных величин потребуется служебное слово const, а для переменных var для пользовательских типов type, которые должны распологаться в блоке объявления данных, т.е между словами Program и BEGIN
Обычно программа на языке паскаль состоит из 4 частей:
В языке С++ можно объявлять структуры и так называемые объединения.
В языке C++ нет специальных типов для массивов и строк ВАЖНО!!! В языке Паскаль для объявления постоянных величин потребуется служебное слово const, а для переменных var для пользовательских типов type, которые должны распологаться в блоке объявления данных, т.е между словами Program и BEGIN
Обычно программа на языке паскаль состоит из 4 частей:
ПРИМЕРЫ
Оператор объявления переменных имеет следующий синтаксис: тип имя1[,имя2[,...]];
Примеры:
int a, b, c;
double x, y;
char ch;
Переменные в языке Си могут быть инициализированы при их определении: int a = 25, h = 6; char g = 'Q', k = 'm'; float r = 1.89; long double n = r*123;
Оператор объявления переменных с инициализацией имеет следующий синтаксис: тип имя1[=значение1][, имя2[=значение2][,...]];
Пример:
int a=26, b=032, c=0x1A;
double x=2.5e2,y=0x1.ffe-3;
char ch=’Z’;
Константы в С++
В языке С++присутствует три вида констант:
1. целочисленные,
2. вещественные,
3. символьные.
В языке СИ можно также создавать переменные, имеющие константное значение (их значение нельзя изменить). Объявление таких «переменных» имеет следующий синтаксис:
const тип имя1=значение1[,имя2=значение2[,...]];
Пример:
const unsigned int x=80, y=25;
const double pi=3.1415;
Оператор создания типов данных в СИ. Оператор typedef используется для создания пользовательских типов данных, синтаксис его использования:typedef имя_старого_типа имя_нового_типа;
Пример:
typedef unsigned int word;
Функция для определения размера типа, или переменной какого-либо типа: sizeof, она возвращает количество занимаемых байт в памяти. Пример:
sizeof(int) //вернет 4
sizeof(char) //результат 1
sizeof(double) // вернет 8
Примеры:
int a, b, c;
double x, y;
char ch;
Переменные в языке Си могут быть инициализированы при их определении: int a = 25, h = 6; char g = 'Q', k = 'm'; float r = 1.89; long double n = r*123;
Оператор объявления переменных с инициализацией имеет следующий синтаксис: тип имя1[=значение1][, имя2[=значение2][,...]];
Пример:
int a=26, b=032, c=0x1A;
double x=2.5e2,y=0x1.ffe-3;
char ch=’Z’;
Константы в С++
В языке С++присутствует три вида констант:
1. целочисленные,
2. вещественные,
3. символьные.
В языке СИ можно также создавать переменные, имеющие константное значение (их значение нельзя изменить). Объявление таких «переменных» имеет следующий синтаксис:
const тип имя1=значение1[,имя2=значение2[,...]];
Пример:
const unsigned int x=80, y=25;
const double pi=3.1415;
Оператор создания типов данных в СИ. Оператор typedef используется для создания пользовательских типов данных, синтаксис его использования:typedef имя_старого_типа имя_нового_типа;
Пример:
typedef unsigned int word;
Функция для определения размера типа, или переменной какого-либо типа: sizeof, она возвращает количество занимаемых байт в памяти. Пример:
sizeof(int) //вернет 4
sizeof(char) //результат 1
sizeof(double) // вернет 8
ВАЖНО!!! Я думаю, что нет смысла пока набирать эти примеры, ведь все равно мы ничего не увидим на экране. Объявление данных - это работа с памятью компьютера и подготовка его к вводу, выводу и обработке данных.
Для языка программирования Паскаль в имени переменной или константы можно использовать буквы латинского алфавита и цифры (первым символом должна быть буква);
Инструкция объявления констант выглядит так:
ИмяКонстанты = значение константы;
Пример:
const
min=1; {минимальное значение}
var
Инструкция объявления переменных выглядит так:
ИмяПеременной: тип;
k1: integer; {количество тетрадей}
k2: byte; {количество карандашей}
c1: real; {цена одной тетради}
st: string; {Предложение}
fam: string[30]; {Фамилия}
da1: boolean; {Согласие}
sim: char; {Символ}
fa: text; {Текстовый файл}
Инструкция объявления переменных интервального типа помещается в двух разделах type, var и выглядит так:
type
<имя типа>=(<константа1> ..<константа2>);
var
<идентификатор, …>: <имя типа>;
Пример:
type
days=1..31 ; {дни месяца}
var
rabotday: days; {рабочие дни}
vihodday: days; {выходные дни}
Инструкция объявления переменных перечисляемого типа помещается в двух разделах type, var и выглядит так:
type
<имя типа&g>
Инструкция объявления констант выглядит так:
ИмяКонстанты = значение константы;
Пример:
const
min=1; {минимальное значение}
var
Инструкция объявления переменных выглядит так:
ИмяПеременной: тип;
k1: integer; {количество тетрадей}
k2: byte; {количество карандашей}
c1: real; {цена одной тетради}
st: string; {Предложение}
fam: string[30]; {Фамилия}
da1: boolean; {Согласие}
sim: char; {Символ}
fa: text; {Текстовый файл}
Инструкция объявления переменных интервального типа помещается в двух разделах type, var и выглядит так:
type
<имя типа>=(<константа1> ..<константа2>);
var
<идентификатор, …>: <имя типа>;
Пример:
type
days=1..31 ; {дни месяца}
var
rabotday: days; {рабочие дни}
vihodday: days; {выходные дни}
Инструкция объявления переменных перечисляемого типа помещается в двух разделах type, var и выглядит так:
type
<имя типа&g>