lektsii_po_infe
.pdf
|
|
|
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);//использованиенескольких корреквыражений,тирующихелоциклаотсутствует