Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_-_szhatye (1).doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
514 Кб
Скачать
☆

Модификаторы типов

За исключением типа void, основные типы данных могут иметь различные модификаторы. Модификаторы используются для более точного управления ситуацией. Ниже приведен список модификаторов: signed unsigned short

Модификаторы signed, unsigned, long и short могут применяться к целочисленным типам. К символам можно применять signed и unsigned, long может применяться к типу double. Таблица показывает все допустимые комбинации стандарта ANSI С для 16-битных типов данных вместе с размером типа в битах и границами применения в Borland С++.

Тип

Длина в битах

Диапазон

char

8

от-128 до 127

unsigned char

8

от 0 до 255

signed char

8

от-128 до 127

int

16

от-32768 до 32767

unsigned int

16

от 0 до 65535

signed int

16

от -32768 до 32767

short int

16

от -32768 до 32767

unsigned short int

16

от 0 до 65535

signed short int

16

от -32768 до 32767

long int

32

от -2147483648 до 2147483647

unsigned long int

32

от 0 до 4294967295

signed long int.

32

от -2147483648 до 2147483647

float

32

от 3.4е-38 до 3.4е+38

double

64

от 1.7е-308 до 1.7e+308

long double

80

от 3.4е-4932 до 1.1e+4932

№ 7.2.

voidRemoveFigures(void** ppFigs, intcount)

{

intcounter = 0;

void* p = ppFigs[counter];

while(p != NULL)

{

Figures kind = *((Figures*)p);

switch(kind)

{

caseFCyrcle:

free((Cyrcle*)p);

printf("Cyrcle was removed. \n");

break;

caseFRectangle:

free( (Rect*)p);

printf("Rect was removed. \n");

break;

caseFTriangle:

free( (Triangle*)p);

printf("Triangle was removed. \n");

break;

default:

printf("Error in RemoveFigures!!! \n");

return;

}

ppFigs[counter] = NULL;

counter++;

if(counter == count)

return;

p = ppFigs[counter];

}

}

RemoveFigures(ppFigArray, realCount);

_CrtDumpMemoryLeaks();

return0;

}

№8.1.

Оператор if-else выражает процесс принятия альтернативных решений. Его формальный синтаксис таков:

i f (выражение)

оператор1

else

оператор2

Часть, начинающаяся со слова else, необязательна. Вначале вычисляется

выражение; если оно истинно (т.е. имеет ненулевое значение), то выполняется оператор!.

Если оно ложно (т.е. имеет нулевое значение) и присутствует блок else, то выполняется

оператор2. Поскольку в операторе if всего-навсего анализируется числовое значение

выражения, можно несколько упростить отдельные конструкции. Самый очевидный пример —

упрощение следующей конструкции:

if {выражение != 0)

Более краткая форма выглядит так:

if {выражение)

№8.2.

Реализация метода ввода фигур AddFigures представлено ниже:

// Метод для общего ввода фигур

intAddFigures(void** ppFigs)

{

intcounter = 0;

boolquit = false;

while(!quit)

{

if(counter > 3)

returncounter;

Основы создания программ в Си Page 26 of 37 printf("Enter Figure Kind: \n");

printf("1 - Cyrcle;\n");

printf("2 - Rectangle;\n");

printf("3 - Triangle;\n");

printf("e - Exit.\n\n");

intkey = getch();

switch(key)

{

case '1':

{ // блок для автоматической переменнойc

Cyrcle* c = CreateCyrcle();

if(c != NULL) // проверка что объект был создан

{

ppFigs[counter] = c;

counter++;

}

break;

}

case '2':

{ // блок для автоматической переменнойr

Rect* r = CreateRect();

if(r != NULL) // проверка что объект был создан

{

ppFigs[counter] = r; // добавление указателя на объект в массив

counter++;

}

break;

}

case '3':

{

Triangle* t = CreateTriangle();

if(t != NULL) // проверка что объект был создан

{

ppFigs[counter] = t;

counter++;

}

break;

}

case 'e':

case 'E':

printf("%d figures were created.\n\n", counter);

Основы создания программ в Си Page 27 of 37 returncounter;

break;

default:

printf("Enter correct number. Try again of Exit.\n");

}

}

printf("%d figures were created", counter);

returncounter;

}

№ 9.1