Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
78
Добавлен:
17.04.2015
Размер:
47.18 Кб
Скачать

Лекция№4.Константы.

Содержание лекции.

    1. Понятие константы.

    2. Свойства константы.

    3. Примеры констант и переменных.

    4. Декларация и инициализация констант.

    5. Задание констант с помощью директивы препроцессора.

    6. Использование констант.

    7. Ввод вывод констант.

    8. Вопросы для самопроверки.

1. Понятие константы

Константа — это составная часть программы; объект, имеющий значение.

Понятие "константа" в программе аналогично тому же понятию, используемому в математических уравнениях. Это — неизменная величина. Для более полного описания сущности константы, используемой в алгоритмическом языке, обратимся к известным физическим и математическим константам.

Человечеством открыты такие константы, значение которых от нас не зависит. К ним в физике относится, например, ускорение свободного падения, равное 9,8 м/с/с, а в математике - число пи = 3,14. Константы такого рода не могут быть признаны аналогией константы в алгоритмическом языке.

В математических уравнениях также используется понятие константы. Например, в уравнении Y = 3 * X + 7 числа 3 и 7 являются константами. Значение таких констант в полной мере зависит от воли человека, составившего уравнение. Это - ближайшая аналогия констант, используемых в программах Константа (в виде значения) заносится программистом в код на этапе его создания. Константа характеризуется только своим значением, поэтому термины "константа" и "значение константы" являются полными синонимами.

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

37, 3.14, true, "Kazan"

Рис. 4. Константа в памяти компьютера.

2. Свойства констант

Свойством константы является её способность удерживать значение, заданное программистом, в течение времени работы программы и сообщать это значение программе при запросах программы (рис. 5). Для каждой константы, содержащейся в программе, компьютер отводит часть памяти необходимого размера. Значение константы не может быть изменено во время исполнения программы ни программистом, ни компьютером (рис. 6).

Значение константы всегда остаётся неизменным.

Рис. 5. Состояние ячейки памяти константы при сообщении значения программе.

Значение константы не может быть изменено в процессе работы программы.

Рис. 6. Изменение значения константы во время работы программы невозможно.

3. Примеры констант и переменных в программе

В программе константы и переменные встречаются в операторах. В данном тексте программы А и В являются переменными, а 7 и 3 - константами:

A = 7; // Строка 1

B = A + 3; // Строка 2

Проследим, как программа работает с константами и переменными. Исполняя эти строки, программа выполнит следующие шаги:

Первая строка:

  1. Константа 7 сообщает своё значение программе.

  2. Переменная А получает значение 7 от программы.

Вторая строка:

  1. Программа обнаружила выражение справа от знака равенства и стремится его вычислить.

  2. Константа 3 сообщает своё значение программе.

  3. Программа обращается к переменной А по имени.

  4. Переменная А сообщает своё значение (7) программе.

  5. Программа производит вычисления (7 + 3).

  6. Переменная В получает значение 10 от программы.

В процессе работы программы значение переменной может быть изменено. Например, в программе может встретиться строка, в которой написано следующее:

В = 33; // Строка 3

В этом случае при исполнении программы будет выполнено следующее:

  1. Константа 33 сообщает своё значение программе.

  2. Переменная В получает (новое) значение 33 от программы.

Легко заметить, что на некотором этапе выполнения программы переменная В получает значение 10, а в ходе дальнейших вычислений - значение 33. В результате этих событий название переменной В остаётся неизменным, а значение переменной изменяется.

На рис. 10 показаны константы и переменные в тексте программы:

Рис. 10. Константа и переменная в программе.

4. Декларация и инициализация констант.

Константы - величины, которые не меняются на всем протяжении работы программы. Константы могут быть того же типа, что и переменные. Для объявления константы, используется следующий формат записи:

const <тип данных> <идентификатор> = <константное выражение для иннициализации>

Например, следующий фрагмент кода позволяет создать целочисленную константу с идентификатором theConst и значением 25.

const int theConst = 25;

В выражениях для иннициализации констант не допускается использовать переменные. Помимо явного объявления, константы могут фигурировать и в выражениях, как правило, для иннициализации или вычисления значений переменных. В этом случае, компилятор пытается автоматически определить тип данных, но программист может помочь компилятору, указав тип явно.

5. Задание констант с помощью директивы препроцессора. Константа может быть определена до главной функции main. В этом случае можно использовать директиву #define. Например, для определения константы  можно перед фунцией main вставить строку

#define PI 3.141592653589793

Если в тексте программы будет встречаться имя PI, оно автоматически будет заменяяться значением 3.141592653589793. С использованием этой константы программа для решения задачи 1.1 может быть переписана так.

#include <stdio.h> #include <math.h> #define PI 3.141592653589793 int main() { float a,b,c, alf,bet,s; printf("A="); scanf("%f",&a); printf("B="); scanf("%f",&b); s=a*b/2; c=pow(a*a+b*b,0.5); alf=atan(a/b); bet=PI/2-alf; printf("\n A=%5.2f \t B=%5.2f \t C=%5.2f \n",a,b,c); printf("\nS=%5.2f \t alf=%3.0f \t bet=%3.0f\n", s,alf*180/PI,bet*180/PI); }

Мы совсем забыли про константы, а они играют отнюдь не последнюю роль. В языке Си константы принято писать полностью с заглавных букв:

#define SIZE 15

Использование этих условий в разы облегчит вам понимание собственного кода, позволит другим программистам легко сориентироваться в вашем коде. Так же проблема придумывания имен функциям, классам и переменным отпадет само с собой. Причем если слабо знаете английский язык, то можете писать английскими буквами русские слова, что б было понятно, что будет делать тот или иной объект.

И соответственно, чем больше размер вашей программы, тем актуальность стиля имен переменных в си возрастает. Не зря стиль программирования знает каждый профессиональный программист.

6. Использование констант

Константы есть и в Си, но их никто не использует, ибо они были кривые. Числовые константы в C делают с помощью #define, и это неплохо работает, хотя и имеет свои минусы. Константы всех остальных типов в Cи используют редко.

…А главное отличие — их теперь можно использовать! Например, можно написать так:

const int N = 10;

int A [N];

А раз константы можно использовать, отчего же этого не делать? Они многим лучше, чем #define:

они имеют тип, а значит, позволяют найти ошибки в вашей программе;

они могут быть не просто числом или строкой, но и какой-нибудь сложной структурой;

их имена можно использовать при отладке (хотя с современными средствами это почти не актуально);

они не имеют побочных эффектов и других классических проблем с макросами (отсылаю вас к предостережениям о директиве #define,написанных в любой хорошей книге по Си или Си++).

Константы обязательно инициализировать, например:

const int foo = 10; /* можно */

const int bar; /* нельзя */

Это логично, поскольку если мы не инициализируем её сразу, то вообще никогда не сможем ничего ей присвоить, поэтому в таком случае она окажется бесполезной.

7. Ввод-вывод констант

//Ввод вывод констант.

#include <stdio.h>

#include <stdlib.h>

#define pi 3.141592 //Задание констант с помощью директивы препроцессора.

int main()

{

const int i=10; //Декларация и инициализация констант.

printf("i= %i pi= %f\n",i,pi);

printf("konst= %i\n",5);

system("pause");

return 0;

}

// i=10 i=10

//konst=5

Резюме.

Декларация и инициализация констант.

int i=7;

Задание констант с помощью директивы препроцессора

#define pi 3.141492

Ввод констант не предусмотрен.

Вывод констант

printf(“konst= %i i= %i pi= %f\n”,5,i,pi);

konst=5 i=7 pi=3.141592

8. Вопроы для самопроверки.

    1. Понятие константы.

    2. Свойства констант.

    3. Задание констант.

    4. Ввод вывод констант.

Соседние файлы в папке Л№11.Константы .ИС