Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lektsii_po_infe

.pdf
Скачиваний:
8
Добавлен:
29.03.2015
Размер:
2.2 Mб
Скачать

 

 

 

51

восьмецифрып(ри: 016мерычные

 

– десятичноезначение14,Шестнадцатеричные01).

константы – последовательностьшестнадцатеричныхцифр,которымпредшествуют

 

символых0илиХ0примеры( :хА0,Х00

 

F).

 

Взависимостиотзначенияцелойконстантыкомпиляторпо

 

-разномупредставитее

впамятикомпьют

ерат..(компприпишетконстантелятветствующийтип

 

данных).

 

 

 

Вещественконстантыые

имеютдругуюформувнутпредставленияннего

 

памятикомпьютера.Компиляторраспозтакиенпоихстантыаетвиду.Вещественные

 

 

констанформымогутимедветь

 

представления:фиксированнойточкой

 

плавающейточ.Видконстантыфиксированнойточкой:цифры[].[]примеры( :

 

 

5.7, Вид.конст0001,платочкойвающей41нты:цифры.[)][.цифры.][

 

E|e[+|-][цифры]

(примеры:05,.5 .11

-5,Е3)Взаписи5. веществе

нныхконстантм жетпускатьсялибо

целая,либодрчасти,бнаялибодесятточка,лпризнакчнаябоэкспоненты

 

 

показатстеп. енилем

 

 

 

Перечиконстантылимые

вводятсяпомощьюключесловаого

enum.Это

обычныецелыеконстанты,которымприпуниисаныкальные

 

удобныедляиспользования

обозначения.

 

 

 

enum {one=1, two=2, three=3, four=4}; enum {zero,one,two,three};

Есливопределеперечиконопуститьстантиилимыхзнакичисловые= значения,тозначениябудутприпумолчисываться.Приэтомсалевыйнию идентификполучитзначение0,каждыйторпослебуувдующеличиватьсяна1. й

enum {ten=10, three=3, four, five, six};

enum {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday};

Символьныеконстанты

 

– этоодинилидвасимвола,заключенные

апострофы.

Символьныеконстанты,состоящиеизодногосимвола,имеюттип

 

char

изанимаютв

памятиодинбайт,с мвольныеконстанты,состоящиеиздвухсимволов,имеют

 

 

целый тип

изанимаютдваб.Последовательностийта ,начинающиесясознака

 

\,называются

управляющими,онииспользуются:

 

 

 

• дляпредстасимволов,неимеющленияграфотображенияческогох,

 

например:

 

 

 

\a – звуковойсигнал,

 

 

 

\b – возврнаодиншаг, т

 

 

 

\n – перевстроки, д

 

 

 

\t – горизонтальнаятабуляция;

 

 

• дляпредстасимволов: ления

\ , ’ , ? , ” ( \\, \’ ,\? ,\” );

 

• дляпредстасимволовпомощьюленияшестнадцатеричныхили

 

восьмеричныхкодов(

\073, \0х F5);

 

Строковконстаянта

 

– этоп следовательностьсимво,заключенная

 

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

 

 

”\nНоваястрока”

,

 

 

”\n\”Алгоритмязыкпрограммированияческ””. е

 

13.ТипыданныхвC/C++

 

 

 

 

целочисленные

 

 

 

 

 

52

ТипыC/C++можразделинпроссоставные.Кпростымьыетипамотносят

 

 

типы,котохарактеризуютсяыеоднимачени.ВязыкеопределеноC м4,вC++

 

 

– 6

простыхтиповданных:

 

 

 

 

 

int (целый)

 

 

 

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

 

 

 

wchar_t (расширенныйсимвольный) (C++)

 

 

bool (логический) (C++)

 

 

 

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

 

 

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

 

 

Существуетспец4 и, фикаторапа

 

уточвнутреннееяющихпредставление

 

диапстандартныхтиповзон

 

 

 

 

short (короткий)

 

 

 

long (длинный)

 

 

 

signed (знаковый)

 

 

 

unsigned (беззнаковый)

 

 

13.1Тип.int

 

 

 

 

 

Значениямиэтоготипаявляютсяцелые. сла

 

 

 

Размертипа

int неопределяестандартом,завиот итя

 

компьютераи

компилятора.Для16

 

-разрядпроцподнессораготвобай2для, ит32ася

 

-

разрядного – 4байта.

 

short,топодчислоотвбайта2,дитсяесли

 

Еслиперед

int стоитспецификатор

 

спецификатор long,тобайколичества4.О отводимойп бъек

 

тпамятизависит

множестводопустизначений,к мтопринимаыхрыежетобъек: ть

 

 

 

short int – занимаетбайта2,следовательно,имеетдиапазон

 

–32768 … +32767;

long

int

занимабайта,сл4 едовательно,имеетдиапазон

 

–2 147 483 648 … +2 147 483 647.

 

long int

Тип int совпадаеттипом

short int на16 -разрядныхПКистипом

на32 -разрядныхПК.

 

 

 

 

Модификаторы signed и unsigned такжевлияютнамножестводопустимых

 

значений,котмопринимарыежетобъек: ть

 

int – занимаетбайта2,следовательно,имеетдиапазон0 …

 

unsigned short

 

65536;

 

 

 

 

 

unsigned long int – занимаетбайта4,следовательно,имеетдиапазон0 … +4

 

294 967 295.

 

 

 

 

 

13.2Тип.char

 

 

 

 

 

Значениямиэтоготипаявляютсяэлементыконечногоупорядмн жченногоства

 

 

символов.Каждо

 

мусимволуставитсясоответствиечисло,котороназываетсякодом

 

char может

символа.Подвел чинумвольноготипаотводибай1.Типтся

signed и unsigned.Вданныхтипа

использоватьсясоспецификаторами

signed

char можнохразначениявитьдиапазонеот

 

–128до127Прииспользовании. типа

 

unsigned

char значениямогутнаходивдиапазонетдо0ься255Для.

 

кодировки

используется код ASCII (American Standard Code for International Interchange). Символыс

кодамиотдо0относят31кслужебнымиимеютяам

 

остоязначениентовлькое

 

операторахввода

 

-вывода.

 

 

 

Велтипачины

char такжеприменяютсядляхраненичизуказанныхсел

 

диапазонов.

 

 

 

 

 

 

 

 

 

 

53

13.3Тип.wchar_t

 

 

 

 

Предлянразначаетсяботынаборомсимв,дляк дирлковтовкирых

 

 

 

недостбайта1, точнопример

 

Unicode.Размерэтоготикак, правило,соответствует

L:

типу short.Стркоковыенстакогоипазаписываютсяантыпрефиксом

 

L”String #1”.

 

 

 

 

13.4Тип. bool

 

 

 

 

 

Тип bool называетсялогическим.Еговеличинымогутприз аченияимать

 

true

и false.Внутренняяформа

true.

представления false

0,любоедругоезначение

 

интерпретируетсякак

 

 

 

13.5Типы.сплавающейточкой

 

 

 

 

Внутреннеепредставлениевещчислатвенногоостоитизчастей2:мантиссы

float занимаютбайта4,изкоторых

 

порядка.В

IBM-совмесПКвелтичиныпамых

 

одинразрядотводитсяподзнакмантиссы,разрядов8 подпорядок24

double занимаютбайт8 ,подпорядокманвтводятсяиссу11

– подмантиссу.

 

Велтипычины

 

 

и52разрядасоответственно.Длимаопределяетатиссыточность

 

чис,адлпорядкаина

 

егодиапазон.

 

 

double стоитспецификатор

long,топодвеличину

 

Еслипередименемтипа

 

 

отводится 10 байтов.

 

 

 

 

13.6Тип.void

 

 

void. Множествозначенийэтоготипа

 

Косновнымтипамтакжеотноситсятип

пусто.

 

 

 

 

 

14.Переменные

Переменнаяв C++ – именованнаяоблпамя,костьхранятсяоройданные определенноготи.Упеременнойа естьимязначение.Имяслужитдляобращенияк облпа,вкомястихраоройизн.ачиспользованиемитсяПередлюбаяпеременная должнабытьописана.

int a; float x;

Общийвидоператораописания:

 

[класспамяти][

const]тиинициализатормяп[ ];

 

 

Клпассмяти

определяетвремяжиобластьзнив димостиперем.Времянной

 

жизниможетбытьпостоянным

 

– втечениевыпрограолненияиливременныммы

– в

течениеблока.Обл

астьвидимости

- этчастьопрограммы,изкот ройжно

 

обратитьсякпеременобыч.Взнаымойзомвисимоотобластидей вия

 

 

переменнможетбытьлокиглобальнльня.Локальнаяпеременнаяйопределенай

 

 

внублокат.е(.внутриоператора

 

{…}),о бластьеедействотточкиопдосания

концаблока.Глобальнаяперемеопределенавблока,наяобласеедействияоточкиь

 

auto, extern,

описадоконцафайла.Клияп ссмяти

 

можетпризн:аченияимать

static, register.Есклпамятиасснеуказанявно,

токомопределяетиляторего

исхизкодянтекстаобъявления.

 

 

 

 

Классыпамяти:

 

 

 

54

auto – автоматичлокальнаяпер.Спемскаяецификаторнная

 

auto можетбыть

задантолькоприопредеобъектовл,напримерокаении,телефункции.Этим

 

 

 

 

переменнымпамятьвыделяется

 

привходеблокиосвобождапривыходизнего. тся

 

 

Внеблотапеременныекаиенесуществуют.

 

 

 

 

 

extern – глобальнаяпеременная, ходитсявдругомместепрограммыв(

 

 

 

другомфайлеилидолтекступо)Используется. длясозданияпеременных,которые

 

 

 

 

доступнывовсехфайлахпрограммы.

 

 

 

 

 

static – статичпер,онаесуществуменнаяскаятолькопределахфайлаго,т

 

 

 

гдеопределенапеременная.

 

 

 

 

 

register – аналогичны auto,нопамятьподнихвыделяетсярегистрах

 

auto.

процессора.Еслитакойвозможностинет,топеременны

 

 

еобрабатываютсякак

 

 

 

 

int a;

//глобальнаяпеременная

 

 

void main()

 

 

 

 

 

{

//локальнаяпеременная

 

 

 

int b;

 

 

 

extern int x;

//переменнаяхопределенавдругом

 

 

месте,

 

//памятьневыделяется

 

 

static int c;

 

 

//локальнаястатичпеременнаяская

 

 

a=1;

//присваивание

глобальнойпеременной

 

 

int a;

//локальнаяпеременная

 

 

 

a=2;

//присваивалокальпеременнойиеой

 

 

::a=3;

//присваиваниеглобальнойперем нной

 

 

}

//определениеинициализациях

 

 

int x=4;

 

 

Впримерепеременная

 

а опредвневсблокове.ленаОбластьюхдействия

 

 

переменной а являетсявсяпрогра,крометехстрок,гдеиспользуетсямалокальна

 

 

 

переменная а.Переменные b и с – локальные,областьихвидимости

– блок.Времяжизни

различно:памятьпод

b выделяетсяпривходеблок.(.поумоклпамятичаниюасс

 

 

auto),о свобождаетсяпривыходеизнего.Переменная

 

с (static)существует,пока

работаетпрограмма.

 

 

 

 

 

Еслипропределенииначальноезначепеременнезадаетсяиеявобразомным,

 

 

 

 

токомпиобнуляетг обальныеятористатичАвтоматическиепер. менные

 

 

 

 

переменные неинициализируются.

 

 

 

 

Имяперемедолжбытьуникальнымновсвоейобластидействия.

 

 

 

 

Описаниепеременнможетбытьвыполненоиликакйобъявление,иликак

 

 

 

 

определение.Объявлениесодержитинформациюклассепамятитипепеременной,

 

 

 

 

опредвмсэестеление

тойинформациейдаетуказаниевыделипамя.Впримереть

 

 

extern int x; – объявление,аостальные

– определения.

 

 

const – показыва,чтоэтупеременнуюизменятьльзяименованная(

 

 

 

константа).

 

 

 

 

 

Приописанприсвоитьможнопеременнойначальзначениеиниц( ое

 

 

 

иализация).

const num=10;

 

 

 

 

15.Выражения

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

 

 

 

55

Каждоевыражесостоитизодилиннесколькихиеого

операндов,символовопераций

 

ограничителей.Есливыражформирувещественноецелоилиние число,тоон

 

 

называетсяарифметическ.Па выраж,объимчоперациейендскихненная

 

 

сравнения,называетсяотношеним.Еслиим енулзнтиевое

ачение,тооно

истинно,иначе

– ложно.

 

 

16.Ввыводи данных

Вязыке C/C++нетвстросредстввводаинныхвы ода

– оносуществляется

помощьюфункций,типовобъектов,которыенаходятсястандартныхбиблиотеках.

 

Существуетдваосновныхспособа:

 

 

функцииCобъектыC++.

Длявво/выводанныхстCиспользуютлефункции,которыеописываются

вбиблиотфайлечном

 

stdio.h.

printf (форматнаястрока,списокаргументов);

форматнаястрока

строкасимво,заключенныхвкаов,котораяычки

показывает,

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

printf (”ЗначениечислаПиравно%

f\n”, pi);

Форстрмоатнаясодержатьжетка:

символыпечатаемыетекстуально;

спецификациипреобразования;

управляющиесимволы.

Каждоаргусоотментувспецифетствуетоя

икацияпреобразования:

%d, %i

– десятцелоечи; чнслое

 

%f

– чисплавающейточкой;

 

%e,%E

 

– чисплавающейточэкспоненциальнойформе;

 

%u

десятичнбеззнаковойчислов форме;

 

%c

символ;

 

%s

строка.

 

Вформстроктакжемогуттн ю

входитьуправляющиесимволы:

\n – управляющийсимволноваястрока;

 

\t – табуляция;

 

\a – звуковойсигналдр.

 

Такжевформатнойстриспользоватьсягуткемодификкоторыеформ, а

 

управляютширин,отводидляразймвывогоещениязначениядимого.

 

Модификаторы – эточисла,которыеуказываютминимальноеколичествопозицийдля

 

выводазначенияколичествопозицийлявыводадрчастибнойчисла:

 

%[-]m[.p]C,где

 

– задаетвыравниваниеполевомукраю,

 

m – минимаширинапо, льная

p – количествоцифр послезапятойдлячиселплавающейточкойи минимальноеколичествовыводимцифрдляцелчиеслиых(цифрелвчислеменьше, чемзначение р,товыводятсяначальныенули),

Сспецификацияформатавывода.

 

 

 

 

 

 

56

 

 

 

 

 

printf("\nСпецификацииформата:

\n%10.5d

- целое,

\n

\\

%10.5f

-

сплавающейточкой

\\n

%10.5e

\\

вэкспоненциальнойформе

\n%10s - строка", 10, 10.0, 10.0, "10");

 

Будетвыведено:

Спецификацииформата:

00010 – целое

10.00000 – сплавающейточкой 1.е+000100 - вэкспоненциальнойформе 10 – строка.

scanf (форматнаястрока,списокаргументов); вкачествеаргументовиспользуютсяадресапеременных.Например:

scanf(“ %d%f ”, &x,&y);

ПрииспользованиибиблиотекиклассовC++, используетсябиблиотечныйфайл iostream.h,вкотоопрстандартомеделеныпотокивводанклавиатурыныхые

cin ивыводанэкранных cout,атакжесоответствующиеоперации << – операциязаписиданныхвпоток; >> – операцчтенданныхизпотокаия.

#include <iostream.h>;

cout << “\nВведит еколичествоэлементов: ”; cin >> n;

17.ОператорыC/C++

17.1Баз. конвыеструктупрограммированияцииного

Втеопрограммириидоказано,чтопрограммудлярешенияваниязадачилюбой

 

 

сложностиможносоставитьизлькотрехструктур:линейной,разветвляющейся

 

 

циклической.Этиструктурыназываютсябазовымиконструкциямитурного

 

 

программированияРис(.22).

 

 

Линазываетсяейнойконструкция,представсобойпоследовяющаятельное

 

соедвухиблинениеоператоровлее.

 

 

Ветвление – задаетвыполнениеодниздвухгоперзависимостиров,

 

выпокакоголибусловиянения.

 

 

Цикл – задаетмногократноевыполнениеопе

 

ратора.

Следование

Ветвление

Цикл

57

Рис. 22

Цельюиспользованиябазк выхнструкцийявляетсяполучениепрограммы простойструкт.Такпрограммулегкоюрычитать,отлажпрнеобходимостивать вноситьнееизменения.Структурпрогранммированиекжеоеазывают

программированиембез goto,т.к.част оеиспользованиеператопереходазатрудняет пониманлогикработыпрограммыи.Ноеиногдавстречаютсяситуации,которых примоператоровпереходан,наоборотие,упрощаетструктурупрограммы.

Операторыуправлеработойпрограммыназывияупр ютвляющим и конструкциямипрограммы.Книмотносят:

составныеоператоры;

оператвыб; ораы

операторыциклов;

операторыперехода.

17.2Оператор. выражение« »

Любоевыр,зажениеканчивающеесяточкойзапятой,рассматриваетсякак

операт,выпколнениезаклютороговвычэтогоаетсяислениивыраже.Частнияым

; (точкасзапятой).

случаемвыраженияявляепусоператорсяой

 

 

i++;

 

a+=2;

 

x=a+b;

 

17.3.Составныеопера

торы

Ксоставнымоператотнособственоставныерамятоператорыиблоки.В

обоихслучаяхэтоп следовоператоров,заключентельностьфигурскобки.Блокаяые

 

отличаетсясоставноператораналичигопределенийв блокам.

 

 

 

{

 

n++;

//это составнойоператор

summa+=n;

 

}

 

{

 

int n=0;

 

n++;

//этоблок

summa+=n;

 

}

 

58

17.4.Оператвыбораы

Операторывыбора

– этоусловныйоператорипереключатель.

 

1Условный. операторимеетполнуюсокращеннуюформу.

 

ifвыражение(

-условие)оператор;

//сокращеннаяформа

Вкачествевыражения

-услмиспользовавиягутарифмевыражение,тьсяическое

 

отношениелогическоевыражение.Еслизначениевыражения

 

-условнуляотлотично

(т.е.ис),твыпиннооператорлняется.

 

 

 

 

if (x<y&&x<z)min=x;

 

ifвыражение(

-условие)оператор1;

//полнаяформа

elseоператор2;

 

 

Еслизначениевыражения

-условнуляотлоти,точновыполняетсяоператор1,при

 

нулезначениивыраженияом

-условиявыполняетсяоператор2.

 

if (d>=0)

{

x1=(-b-sqrt(d))/(2*a); x2=(-b+sqrt(d))/(2*a);

cout<< “\nx1=”<<x1<<“x2=”<<x2;

}

else cout<<“\nРешн”;етния

2Переключат. определяетмножвыбор. ственныйль

switch (выражение)

{

caseконстанта1оператор:1 ; caseконстанта2оператор:2 ;

. . . . . . . . . . .

[default:операторы;]

}

Привыполненииоператора

switch,вычисляетвыр,зажениепипослеяанное

switch,онод бытьлжноцелочислен.Получезначепоследовательноымиое

сравниваетсяконстантами,которыезаписследомзаны

case.Припервомже

совпадениивыполняютсяоператоры,

помечданнойметкой.Есливыполненные

оператонесодеоперпереходажыат,тодалееоравыполняютсяоператорывсех

 

следующихвариантов,поканепоявитсяоператорпереходаилинезакончится

switch,несовпалони

переклю.Еслизнавырчениеатель,з женияписанногопосле

однойконстантой, выполняютсяоператоры,которыеследуютзаметкой

default.

Метка default может отсутствовать.

#include <iostream.h> void main()

{

int i;

cout<<"\nEnter the number"; cin>>i;

switch(i)

59

{

case 1:cout<<"\nthe number is one"; case 2:cout<<"\n2*2="<<i*i;

case 3: cout<<"\n3*3="<<i*i;break;

case 4: cout<<"\n"<<i<<" is very beautiful!"; default:cout<<"\nThe end of work";

}

}

Результатыработыпрограммы:

1.Привводебудетвыведено1 :

The number is one 2*2=1 3*3=1

2. Привводебудетвыведено2 :

2*2=4

3*3=4

3.Привводебудетвыведено3 :

3*3=9

4.Привводебудетвыведено4 :

4 is very beautiful!

5. Привводевсехостальныхчиселбудетвыведено:

The end of work

17.5. Операторы циклов

• Циклспредусловием:

while (выражение -условие) оператор;

Вкачествевыражения<

-условия>чащевсегоиспотношениельзуетсяили

логическоевыражен.Еслионоист,..инравноеннот0,телоциклавыполняетсядо

техпор,покавыражение

-условиенестанложным. т

while (a!=0)

{

cin>>a;

s+=a;

}

• Циклспостусловием:

do

 

оператор

-условие);

whileвыражение(

Телоциклавыполняетсядотехпор,покавыражение

-условист. инное

 

 

do

 

{

 

60

cin>>a;

s+=a;

}

while(a!=0);

• Циклспараметром:

forвыражение(1; ние

-условие;выражение3)

 

 

оператор;

 

 

 

 

выражение1

и выражение3

могутсосизнесколькихоятьвыражений,

 

 

разделенныхзапятыми.

 

Выражение1

– задначаетусловиядляьныецикла

 

 

(инициализация).

Выражение-условие

определяетусловиевыполненияцик, с а

выражения3

 

онравноецикл0,выполняется,азат

 

емвычисляетсязначение

.

Выражение3

– задаетизменениепараметрац кладругихлипеременныхкоррекция( ).

 

 

 

Циклпродотехпорлжается,покавыражение

 

-условиенестанравноЛюбое0т.

 

 

выражениеможеттсутствовать,норазделяющиеих«дол; »

 

жныбытьобязательно.

 

1.

for ( n=10; n>0; n--)// Уменьшениепараметра

{

оператор;

}

2.

for ( n=2; n>60; n+=13)//Изменениешагакорректировки

{

оператор;

}

3.

for ( num=1;num*num*num<216; num++)//проверкаусловия

отличного

начислоитераций

//того,котороеналагается

{

 

оператор;

 

}

 

4.

d<150.0;d*=1коррекция.1)//спомощью

for ( d=100.0;

//умножения

 

{

 

оператор;

 

}

 

5.

for (x=1;y<=75;y=5*(x++)+10)//коррекцияспомощью

//арифметичвыраженияского

{

оператор;

}

6.

for (x=1, y=0; x<10;x++;y+=x);//использованиенескольких корреквыражений,тирующихелоциклаотсутствует

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]