Расширенный символьный тип wchar_t



предназначен для работы с символами, для которых недостаточно 1 байта, например, для кодировки Unicod. Размер этого типа соответствует типу short. Строковые константы типа wchar_t записываются с префиксом L.(L”Gates”).

Логический тип bool

Величины этого типа принимают значения true(1) и false(0).

Типы с плавающей точкой float, double, long double

float – 4 байта, double – 8 байт, long double – 10 байт

Константы с плавающей точкой имеют по умолчанию тип double. Можно указать тип константы явно с помощью суффиксов F,f и L,l (1.82f).

Тип void и указатель типа void*

Множество значений этого типа пусто. Используется для определения функций, которые не возвращают значения.

Наличие указателя определенного типа предполагает известную организацию памяти, на которую он ссылается. Но в некоторых случаях фрагмент программы «не должен знать» или просто не имеет достаточной информации о структуре данных в этой области. Тогда указатель должен пониматься как адрес памяти как таковой, с неопределенной организацией и неизвестной размерностью указуемой переменной. Такой указатель можно присваивать, передавать в качестве параметра и результата функции, но операции косвенного обращения и адресной арифметики с ним недопустимы.

 

Перечисления enum

При использовании большого количества логически взаимо­ связанных констант удобно пользоваться перечислениями. Перечисления имеют вид:

enum Name { iteml [= def ], item 2[= def ], itemN [= def ]};

где

enum - ключевое слово (от enumerate - перечислять)

Name - имя списка констант

iteml, itemN - перечень целочисленных констант

[= def ] - необязательный параметр инициализации

Предположим, нам необходимо в программе описать рабо­ту светофора. Известно, что его цвет может принимать .тишь 3 значения: красный ( RED ), желтый ( YELLOW ) н зеленый ( GREEN ) Для обработки полученных от светофора сигналов заведем три константы с такими же именами - RED , yellow и GREEN , про инициализировав их любыми неповторяющимися значениями с тем. чтобы в дальнейшем проверять, какой из этих трех цветов горит.

Например, мы могли бы записать:

const int RED = 0; const int YELLOW = 1; const int GREEN = 2;

Используя перечисления, то же самое можно сделать в одну строку:

enum COLOR {RED, YELLOW, GREEN};

Константы перечисления обладают следующей важной осо­ бенностью: если значение константы не указано, оно на единицу больше значения предыдущей константы. По умолчанию первая константа имеет значение 0.

То же перечисление можно было проинициализировать дру­ гими значениями:

enum COLOR {RED=13, YELLOW=1, GREEN};

При этом константа GREEN по-прежнему имеет значение 2

Если в программе все операторы выполняются последовательно, один за другим, такая программа называется линейной. Рассмотрим в качестве примера программу, вычисляющую результат по заданной формуле.

Задача 1.1 Расчет по формуле

 Написать программу, которая переводит температуру в градусах по Фаренгейту в градусы Цельсия по заданной формуле:

 C=5/9(F-32)

Текст программы:

#include <iostream.h>

 int main(){

float fahr, cels;

cout << endl << "Введите температуру по Фаренгйту" << endl;

cin >> fahr;

cels = 5*(fahr-32)/9;

cout << "По Фаренгейту: "<< fahr <<", в градусах Цельсия: " << cels << endl;

return 0;

 }

В директиве препроцессора подключается заголовочный файл <iostream.h>, который содержит функции ввода–вывода стандартных объектов – потоков (cin и cout).

 

Напишем второй вариант программы:

 

#include <stdio.h>

 int main(){

float fahr, cels;

printf("\n Введите температуру по Фаренгйту\n");

scanf("%f",&fahr);

cels= 5*(fahr-32)/9;

printf("По Фаренгейту: % 6.2f, в градусах Цельсия: %6.2f\n", fahr, cels);

return 0;

 }

 

В данной программе используются функции ввода-вывода библиотеки С++, унаследованных из языка С. Вы можете выбирать для каждой программы наиболее подходящий способ ввода-вывода.

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

 

#include <iostream.h>

 float fahr, cels;

 int main(){

cout << endl << "Введите температуру по Фаренгйту" << endl;

cin >> fahr;

cels = 5*(fahr-32)/9;

cout << "По Фаренгейту: "<< fahr <<", в градусах Цельсия:" << cels << endl;

return 0;

 }

 

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

 

Рекомендации по написанию программы:

- Выбирайте тип переменных с учетом диапазона и требуемой точности представления данных.

- Давайте переменным имена, отражающие их назначение.

- Ввод с клавиатуры предваряйте приглашением. Для контроля сразу же после ввода выводите исходные данные на дисплей (по крайней мере, в процессе отладки).

- До запуска программы подготовьте тестовые примеры, содержащие исходные данные и ожидаемые результаты. Отдельно проверьте реакцию программы на неверные исходные данные.

- При записи выражений обращайте внимание на приоритет операций.

- В функциях Printf и Scanf для каждой переменной указывайте спецификацию формата, соответствующую ее типу. Не забывайте, что в Scanf передается адрес переменой, а не ее значение.

- При использованием стандартных функций или классов требуется с помощью директивы #include подключить к программе соответствующие заголовочные файлы. Установить, какой именно файл необходим, можно с помощью справочной системы.

- Не смешивайте в одной программе ввод/вывод с помощью классов (в стиле С++) и с помощью функций библиотеки (в стиле С).

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

- Данные при вводе разделяйте пробелами, символами перевода строки или табуляции.


Дата добавления: 2020-04-25; просмотров: 156; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!