Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КОНСПЕКТ 2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
241.66 Кб
Скачать

Лабораторная работа №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++ явное преобразование не является обязательным; поэтому отсутствие такого преобразование не помешает транслятору запустить программу, т.е. отсутствует контроль со стороны транслятора над возможными случайными ошибками.