Расширенный символьный тип 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!