Смекни!
smekni.com

Типы данных С++ (стр. 1 из 3)

Содержание

Введение

1. Структура программы

2. Комментарии

3. Переменные и типы данных

4. Константы

5. Перечисления

6. Преобразования типов

Выводы

Список использованной литературы

Введение

В начале 80-х годов сотрудник фирмы AT&T Bell Laboratories Бьярн Страуструп (Bjarne Siroustrup) разработал язык программирования С++. Этот язык был построен на базе языка программирования С и включал объектно-ориентированные конструкции, такие как классы, производные классы и виртуальные функции, заимствованные из языка simula67. Целью разработки С++ было «ускорить написание хороших программ и сделать этот процесс более приятным для каждого отдельно взятого программиста» (Б. Страус труп. «Язык профаммирования С++». -М., Наука, 1991).

Название С++, которое придумал Рик Маскити (Rick Mascitti) в 1983 году, отражает факт происхождения этого языка от С (вначале он назывался «С с классами»). В 1989 году Бьярн Страуструп опубликовал вместе с Маргарет Эллис «Справочное руководство но языку С++», послужившее основой для разработки проекта стандарта ANSI С++, разработанного комитетом ANSI X3J16. В начале 90-х годов к работе этого комитета подключился комитет WG21 Международной организации по стандартизации (ISO), и была начата работа по созданию единого стандарта ANSI/ISO С++. Результатом этой работы стал стандарт International Standard for Information Systems -Programming Language С++ (ISO/IEC JTC1/SC22/WG21), опубликованный в начале 1998 года. Большинство новейших компиляторов С++ сейчас в большей или меньшей мере соответствуют этому стандарту. И нет сомнения в том, что в ближайшее время все компиляторы этого языка будут приведены в соответствие стандарту.

Цель контрольной работы – ознакомиться с типом данных С++, а именно со структурой, комментариями, переменными и типами данных, константами, перечислениями, преобразованием типов.

Типы данных С++

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

1. Структура программы

Как известно, любая программа представляет собой некую последовательность инструкций машинного кода, управляющих поведением определенного вычислительного средства. Это может быть работа с дисплеем, средствами хранения информации, звуковыми устройствами системы, внешними устройствами (клавиатурой, мышью, принтером, модемом) и т.д. Для упрощения процесса разработки программного обеспечения (ПО) создана не одна сотня языков программирования. Каждый из них имеет сильные и слабые стороны и призван решать ряд определенных задач.

Все существующие средства программирования можно разделить на две основные категории:

■ языки программирования низкого уровня;

■ языки программирования высокого уровня.

К первой группе относят семейство языков Ассемблера (например, Turbo Assembler, Macro Assembler). Эти средства разработки программного обеспечения позволяют получить наиболее короткий и быстродействующий код (разумеется, при условии грамотного использования всей мощи, предоставляемой операционной системой). Однако следует отметить, что процесс программирования на языке низкого уровня - занятие весьма кропотливое, утомительное и занимает гораздо больше времени, чем при использовании языка высокого уровня. Кроме того, программы, написанные на Ассемблере, достаточно тяжелы для восприятия, вследствие чего вероятность возникновения ошибок в них значительно выше.

В свою очередь, этих недочетов лишены языки программирования высокого уровня, к которым относится и С++. Вместе с тем, данной группе языков присущи недостатки другого рода, например такие, как значительное увеличение размера и времени выполнения исполняемого кода. Связано это с тем, что при написании программ на языке высокого уровня результирующий машинный код генерируется из исходного текста компилятором и в исполняемом модуле может образовываться «балласт», состоящий из функций и процедур подключаемых библиотек, которые могут неэффективно использоваться самой программой. Другими словами, компилятор самостоятельно принимает решения (зачастую неоптимальные) по подключению библиотечных функций.

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

История появления языка С++ берет начало с 1972 года, когда Деннисом Ритчи и Брайаном Керниганом был разработан язык программирования С, сочетающий в себе возможности языков высокого и низкого уровня, позднее утвержденный Американским Национальным Институтом Стандартизации (ANSI).

В 1980 году благодаря стараниям Бьярна Страуструпа на свет появился прямой потомок ANSI С - язык С++, вобравший в себя положительные черты еще нескольких языков программирования. Необходимо отметить, что С++, в отличие от С, позволяет программисту разрабатывать программы (или приложения) с использованием как традиционного структурного, так и объектно-ориентированного подхода.

Программирование на С++ включает такие ключевые понятия языка, как идентификаторы, ключевые слова, функции, переменные, константы, операторы, выражения, директивы препроцессора, структуры, массивы и ряд других элементов.

Рассмотрим элементарную, ставшую классической, программу на С++, результат работы которой - вывод на экран строки Hello, World!

Первая строка приведенного на рис. 1.1 листинга (директива препроцессора #include...) подключает заголовочный файл iostream.h, содержащий объявления функций и переменных для потокового ввода/вывода. Имя подключаемого модуля указывается в косых скобках (< > - заголовочный файл находится в каталоге &bsol;INCLUDE&bsol; конкретной среды разработки) либо в кавычках (" " - файл находится в том же каталоге, где и включающий его модуль разрабатываемой программы с расширением *.с или *.срр).

Далее следует описание единственной в примере функции main().

Надо отметить, что любая программа на С++ обязательно включает в себя функцию main(), с которой и начинает свое выполнение.

#in clude<itream.h>
Подключение заголовочного файла
int main() Описание главной функции
{ Начало блока
cout<<"Hello,World&bsol; n"; Вывод строки символов
return 0; Возврат из функции
} Конец блока

Рис. 1.1. Пример программы Hello, World

Ключевое слово int указывает на то, что по завершении своей работы функция main() вернет операционной системе целочисленное значение. Помимо этого, в скобках могут быть указаны параметры командной строки, обрабатываемые в программе.

Тело самой функции содержит оператор консольного вывода последовательности символов cout << и оператор возврата из функции return.

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

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

В С++ стандартный поток ввода связан с константой cin, а поток вывода - с константой cout (для использования этих констант подключается заголовочный файл iostream.h). Таким образом, для вывода информации в стандартный поток используется формат

cout << выражение;

где выражение может быть представлено переменной или некоторым смысловым выражением. Например:

int variable = 324;

cout << variable; // вывод целого

Для консольного ввода данных используют формат записи:

cin >> переменная;

При этом переменная служит приемником вводимого значения:

int Age;

cout << "Введите Ваш возраст: "; cin >> Age;

Таким образом, переменная Ageпринимает введенное с консоли целое значение. Ответственность за проверку соответствия типов вводимого и ожидаемого значений лежит на программисте.

Одновременно (через пробел) можно вводить несколько значений для различных переменных. Ввод заканчивается нажатием клавиши Enter.Если введенных значений больше, чем ожидается в программе, часть вводимых данных останется во входном буфере.

В случае если в приемник должна быть введена строка символов, ввод продолжается до первого символа пробела или ввода Enter:

char String[80];

cin >> String;

Так, при вводе строки "Да здравствует С+ +!" переменная String воспримет только подстроку "Да". Остальная часть строки останется в буфере до тех пор, пока в программе не встретится следующий оператор ввода.

Ниже показано, как ввод одной строки с символом пробела "12345 67890" разделяется и заполняет две совершенно разные переменные - String 1 и String2.

#indude <iostream.h>

int main()

{

char Stringl[80];

char String2[80];

cout << "Input string: ";

cin >> Stringl;

cout << Stringl << '&bsol;n';

cout << "Input string: ";

cin >> String2;

cout << '&bsol;n' << String2 << '&bsol;n'; return 0;