- •Ввод и вывод числовых значений
- •Логические выражения
- •Знаки отношения
- •Логические операции
- •Построение циклов при помощи условных операторов
- •Оператор цикла for
- •Оператор цикла с постусловием
- •Лабораторная работа №5. Составить программу, выполняющую суммирование ряда:
- •Типы данных
- •Целые числа
- •Вещественные числа
- •Символы
- •Массивы
- •Двумерные массивы
Лабораторная работа №5. Составить программу, выполняющую суммирование ряда:
Типы данных
Важнейшими понятием любого современного языка программирования, в том числе языков Паскаль и С++, является понятие типа данных. Любая величина, встречающаяся в программе, относится к какому-то типу данных, либо заданному в данном языке, либо сконструированному самостоятельно программистом. Мы уже встречались ранее с двумя простейшими типами данных – целыми числами и вещественными числами. Однако даже для этих видов чисел существуют несколько вариантов их типов. Кроме того, существуют и многочисленные другие типы данных, также широко используемые при составлении программ. Рассмотрим их систематически.
Целые числа
Ранее мы рассматривали целые числа типа Integer. Кроме этого, существуют целые числа и других типов. Их главное отличие заключается в объеме занимаемой памяти и, соответственно, в диапазоне изменения.
Выбирая соответствующий тип данных, можно добиться оптимального объема памяти, занимаемой данными. Особенно это важно, когда мы имеем дело не с одиночными переменными или константами, а с большими массивами информации.
Приведем в таблице соответствующие данные для С++.
Целые типы. Visual C++
Название |
Длина, байт |
Диапазон значений |
byte |
1 |
–128…127 |
short |
2 |
–32768…32767 |
int |
4 |
–2147483648…2147483647 |
long |
8 |
–9223372036854775808…9223372036854775807 |
Вещественные числа
Вещественные числа представляются в виде мантиссы и порядка. Это обеспечивает им значительно больший диапазон изменений, чем у целых чисел, но одновременно приводит к тому, что все вычисления с вещественными числами выполняются с погрешностями. Мы уже видели, на примере суммирования степенного ряда, что эта погрешность может привести, в некоторых случаях, к совершенно бессмысленным результатам вычислений при правильно составленной программе. Приведем таблицу основных вещественных типов.
Вещественные числа С++.
Длина, байт |
Название |
Количество значащих цифр |
Диапазон значений |
8 |
Double |
15…16 |
5,0*10–324…1,7*10308 |
4 |
float |
7…8 |
1,5*10–45…3,4*1038 |
В Visual C++ основными вещественными типами данных являются float и double.
Символы
В языке С соответствующее описание будет:
char a,b,c;
Значениями символьных переменных являются разнообразные символы, которые, при явной их записи в программе берутся в одиночные кавычки:
c=’1’; (C)
Всего имеется 256 символов, которые пронумерованы от 0 до 255. Присвоить переменной символьного типа значение можно не только непосредственно, но также указав номер соответствующего типа.
В языке С оператор:
a=72;
автоматически преобразует значение числа 72 в символ с номером 72.
С наборами символов, применяющихся при программировании, можно познакомиться в справочных руководствах. Однако, во-первых, эти наборы могут отличаться для различных шрифтов, а во-вторых, с ними можно ознакомиться и непосредственно, при помощи компьютера. Составим соответствующие программы, позволяющие выводить на экран компьютера значения всех символов с номерами от 0 до 255.
Программа на С имеет вид:
#include<iostream.h>
void main()
{
char ch;
int i,j;
for(i=0;i<=255;i++)
{
ch=i;
cout<<"#"<<i<<"="<<ch<<"\n";
cin>>j;
}
}
Рассмотрим ее работу подробнее. Описаны две переменные – символьного и целого типа. Переменная целого типа i принимает в цикле по очереди все значения от 0 до 255. Соответствующие значения выдаются на экран.
Затем вычисляется символьная переменная с номером i. Это делается при помощи оператора присваивания:
ch=i;
Целочисленная переменная i автоматически переводится из целого значения в символьное.
Задержка при каждом прохождении цикла по i осуществляется при помощи оператора cin>>j;. Этот оператор останавливает программу, требуя ввода какого-либо целого числа. Данный ввод и присвоение соответствующего значения переменной j имеет формальное значение; введя любое целое значение и нажав клавишу Enter мы продолжаем выполнение программы.
Мы рассмотрели поиск символа по заданному его номеру. Возможен и обратный переход, т.е. поиск номера заданного символа. В С++ это выполняется так:
i=ch;
т.е. преобразование производится автоматически.
Обратим внимание на то, что автоматическое преобразование типов на С++, в данном случае перевод из символьного типа в целый и назад, чревато ошибками. Например, программист должен был записать:
ch=’7’;
а записал:
ch=7;
Транслятор с С пропустит такой оператор, хотя символьная переменная ch получит совсем не то значение, которое требовалось.
В Visual C++ также введены операции преобразования типов Можно записать:
ch=char(i);
и
i=int(ch);
Это не обеспечивает необходимой надежности программ. В Visual C++ явное преобразование не является обязательным; поэтому отсутствие такого преобразование не помешает транслятору запустить программу, т.е. отсутствует контроль со стороны транслятора над возможными случайными ошибками.
