Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СИ++(лекции).doc
Скачиваний:
23
Добавлен:
27.03.2015
Размер:
551.42 Кб
Скачать
  1. Процесс создания программы

До выполнения программы необходимо подготовить текст исходной программы, написанной на языке Си++. Исходный текст может состоять из одного или нескольких файлов, имеющих расширение .cppили .h. В файлы с расширением .h, которые называют заголовочными файлами, помещаются фрагменты программы, которые обычно вставляются в другие файлы. Схема подготовки исполняемой программы представлена на рис.1

*.cpp

*.cpp

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

  1. Основные типы.

Разговор о типах начнем с переменных. Переменную чаще всего определяют как пару “имя”-“значение”. Имени соответствует адрес участка памяти, выделенный переменной, а значение соответствует содержимое этого участка. Именем служит идентификатор, а значение соответствует типу переменной, определяющему множество допустимых значений и набор операций, для которых переменная может служит операндом. Для определения и описания переменных основных типов используются следующие ключевые слова:

  • char(символьный)

  • sort (короткий целый)

  • int(целый)

  • long(длинный целый)

  • float(вещественный)

  • double(вещественный с удвоенной точностью)

  • void(отсутствие значений)

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

char symbol=’y’;

floatpi=3.14159;

Употребляемые как отдельно, так и вместе с другими именами типов служебные слова unsigned(беззнаковый) иsigned(знаковый) позволяют для целого типа выбрать способ учета знакового разряда:

unsignedinti,j,k; // значения от 0 до 65535

unsignedlongL,M;// значения от 0 до 4294 967 295

При таком определении данные переменные могут принимать только положительные значения в указанных диапазонах. Применение отдельных служебных слов int,short,longэквивалентноsignedint,signedshort,signedlong, поэтому словоsignedобычно опускается. Переменные одного типа занимают в памяти одно и то же количество байтов. Их число может быть получено с помощью операцииsizeof.

Основные типы данных

Тип данных

Размер бит

Диапазон значений

Назначение типа

unsigned char

8

0…255

Небольшие целые числа и коды символов

char

8

-128…127

Очень малые целые числа

enum

16

-32768…32767

Упорядоченные наборы целых чисел

unsigned int

16

0…65535

Большие целые и счетчики циклов

short int

16

-32768…32767

Небольшие целые, управление циклами

int

16

-32768…32767

Небольшие целые, управление циклами

unsigned long

32

0…4294 967 295

Астрономические расстояния

long

32

-2 147 483 648…2 147 483 647

Большие числа, популяции

float

32

3.4E-38…3.4E+38

Научные расчеты (7 значащих цифр)

double

64

1.7E-308…1.7E308

Научные расчеты (15 значащих цифр)

long double

80

3.4E-4932…1.1E+4932

Финансовые расчеты (19 значащих цифр)

Пример программы, которая печатает размеры разных типов данных.

//Файл stdafx.h

#pragma once

#define WIN32_LEAN_AND_MEAN #include <stdio.h>

#include <tchar.h>

#include <stdio.h>

#include <iostream>

using namespace std;

//P1.cpp – Размеры типов данных

#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])

{

int i;

unsigned int ui;

long l;

unsigned long ul;

double d;

long double ld;

cout<<”\n sizeof(int)=”<<sizeof(i);

cout<<”\t sizeof(unsigned int)=”<<sizeof(ui);

cout<<”\n sizeof(long)=”<<sizeof(l);

cout<<”\t sizeof(unsigned long)=”<<sizeof(ul);

cout<<”\n sizeof(double)=”<<sizeof(d);

cout<<”\t sizeof(long double)=”<<sizeof(ld);

return 0;

}

Результат выполнения:

sizeof(int)=2 sizeof(unsigned int)=2

sizeof(long)=4 sizeof(unsigned long)=4

sizeof(double)=8 sizeof(long double)=10

Используя спецификатор typedef, можно вводить в программе удобные обозначения для сложных типов. Например,

typedefunsignedcharCOD;

CODsymbol;

введен новый тип CODи введена новая переменная этого типа, значениями которой могут быть беззнаковые числа в диапазоне от 0 до 255.

  1. Операции над числовыми объектами

Над целыми числовыми объектами определены следующие пять бинарных операций: сложение +, вычитание -, умножение *, получение частного / и получение остатка от деления %. Например: 7%4 дает 3, а 7/4 дает 1.