А.А. Белеванцев, С.С. Гайсарян, Л.С. Корухова, Е.А. Кузьменкова, В.С. Махнычев - Алгоритмы и алгоритмические языки (1113416), страница 3
Текст из файла (страница 3)
Такими точкамн в ПРОГраммс Яелгнотся: конец полно|.О Вы()аже««ия (т.е. Лля Вы()ажсння В О'О послс Вычисления ВссГО Выражения): Г«()и ВЬПЮЛНСНИИ ОПСРВЦИИ Х, У вЂ” МСЖДУ' ВЫЧИСЛСНИСМ Х Н У| прн ВыпОлнснин Опс()ац««и а «х,; у — мсжду ВЫЧИСЛСНПСМ Б И ВЫЧИСЛСННСМ Х ЛИЙО у: прн Вызоас функции —. перед Выполнеписз) сс т|",ла й ЛОслс Вычисления сс аргу))сизо)В; йрн Выполнсннн Оп|.'раций х ай у и х ( ( у -- мсясйу'' ВЫЧИСЛСННЕМ Х Н ВЬЯИСЛСПИСМ У. р(з-за наруи|ения семантики точек послсдоаатсльных,;;:: Вьнп1слснин Выра)ксн«)я типа ,'а=2,) «(а=2 «, '.«.~ ", +-«;,', Являются некорректными (ляажды мОднфицирустся переменная), ' аналогично и Вь«ражсния типа а =- Ь|-1 -' Ь (зпа1«синс Ь; читастся как для ОНРсдслспия БОВОГО ЗНВЧСНИЯ Ь, так и для;,~~| Вычислсния суммы).
Значснис таких Выражении нс Опрсделс1ю (««1«бе):зпес(|. 'Г,с. Стандарт Языка нс трсбуеч От "| |о)мпнлятора Сн получить какое-то конкретное значение.'. Позтому' для разнЫХ компилятороа нз-за Особснностси '; Выполняемых ими оптимизан|нй значения Та~из Выражений ' бтдут розан п«ь«. Йспс)лы|оаанис неон()|.деленных Вь| ражении 1срайнс нс рекомендуется: програмк«а с ними буд(:.т получа'Гь нс|«Хо|данн |с дчя програ)1' |ис"га рс')учьтаты илн ра«пыс рсзультать| В зааи~имости от с~учай~ЫХ факзх«()ОВ. Л01.ичсскнми Операциями ЯВля|0тся отрицание конъюнкц«)я *'аа" н днзън)нация "(('.
результатом зп|х,: Операций я алас Гся единица, если сООтВстстаую|цая логическая функция истинна, н ноль, если ложна. Дая ',.' н|,ь.. Опс()андоа (т.с. ПслОчнслспнь|х, Всп(сстасн««ых и ока«1ЯРН1~«х Гелей« нс Гинным считается лкя)ос нспулсаос зна~«синс, а указа'|еле ' ЛО)Ь . -|,Ю - |ГН1ПЬ 11ОЛЬ. блаГодаря тому, что послс Вычисления псраоГО анара| чнда Опсрациб« "а а" н " | | " находится 10~«ка |В)~лсдоаатсльных Вычислении, с| аиоаится Возможным 1|ВГюльзоаання яка)1)л)к«)й» лОГНХН. Операнды Вычис'|я10тся СЛСВЗ НВПРВБО, и ССЛН рсзулЬТЛТ ОПС()ацни уже изВССГСП Гзначснис перВОГО Опера«Ц|а раано 6 ДПЯ конъюнкции н 1 Для :)нзьнн«кц««й «, Вьнп1слспис ВтОрогО Операнда пс прОизаоднтся. Капример, В Выраясспин т 1 , 'и ! =.
6 й а Ь > а,|11", ДЕЛЕНИЯ На НОЛЬ ПЕ ВОЗннкнст, так как В '«Том слу 1аЕ Вьп«ислсния ВтороГО ОпсранДВ конъюню|нн нс будет. В друас«м примере ' б ( с '= ОСГО()ВГ |,''| , '! == БОЙ 3.Врет||с (0|1 Бызов Функции ..Врт ||Ь произоддст только В том слу~«ас, сели функция Йе ьоба |: Вернет значсннс, О|лй«нн)с От сзогб при ГОГОМ ГарантирустсЯ, что псрсмспнаЯ 0 будет «зкс изменена В холе Вычисления побоьп|ык зфф|)ктоа пс()ВО« о Операнда ко|гьюнкции. ')одй11 Й Каписать зканаалснтнос Выражение, нс содсржа|цсс Операции Отрицания ".'": Ь+ В| ! (ВС2 | ( а>61 ."'1 21««ЙН)«С, а« 61'' '= ' -4 «1) е>-2 аь а<:--.') Г'1 а:.—.
Ь ( ->=6 а|а>=-у за (Ь =2 (: >-=3:,. 110б1170вые, или порйзрйдныс, операции работйгот ийд111» двоичш 1м пгк»дстйвлсписм числй. Одиомссл Ными». побитовыми Оперйциями является инверсия или петбвгговезй:: 01рицаиис "., дВухмсстными — 1шбитОВОс И к, побитовой,.*:~ Вкл10чйьо1цес ИЛИ в1", порж1ряднос искл10ча1опгсс ИЛИ """„; побитовые сдвиГИ гиясво в«о и ВВЙВВО "»". Сдвиг пйв Отрицйтсльиос число бит или нй число, прсйжходя1цсс-': ширину псрй010 Операнда, не Определен.
Иужпо Отметип,» что при сдвиг».' вправо бсззнйкового ', Опсрандй ОсВООО1к,»дйклцисся Оиты заполняются нулями, тогда.;::, КВК ДЛЯ ЗПВКОВЫХ ОПСРВНДОВ ВОЗЫ01КНО ЗВПОЛНСИИС КВК'1-; иу»лами 1логи»1сский сдвиГ), тйк и значением знйкОВОГО Оитй,г (йрифыстичсски1Й1 СДВНГ) — йыбор точного поведсннЯ зйвисит:": рейдиайции. ПОЗТОМу ддя Поби1771ВЫХ ВЫ»1ИСЛСНИЙ; . рскоысил1)»ется ВссГда использОВйть беззийкОВыс типы, 77рььиеей, Пусть переменная х имеет тип цгай а згла 11,» Гпг.
Чтобы обнулить все биты х, кроме трех младших не~бходимо испол~а~~~~~ побитойу10 Опсрйциго а. Взяв В кйчсстВВ ВтОрОГО пйрймстра число. у котороГО лип1ь три млйдших бита ус.йиовлси1»1: зто число 7„т.с, Ответом яйляется йь1рйхгсние х к 7. Лийло1.ичпо, длЯ Обиу»лений Всех Сит, млйдгцих. Вторым пйрймстром побитового И 1 должно быть Ч~СЛ~ с установленными Всеми Ситами, кроме 1Рсх млйДших, то ОСТЬ "7. ВСС ВЫРйжсиис ссть х й " 7, Для установки диух младп1их бит использу»слсЯ Вклклчй10щсе ИЛИ: х 1 3, Исобходимукл коистйггту можно также ПОЛУЧИТЬ СДВИГОМ.
"ДЛЯ УСТйНОВКИ ПЯТИ МЛВДБ1ИХ ОИТ ВМССТО зйпоки1нйниЯ коистйиты 31 использук17 Вьплйженне х 1 117 ( 1 ТйпшиисгВО Операции задас7ся тйолицси приоритетов рис. 2) и, кйк прйвило, соопгстству»ст Ожида1пййм (См ПрОГР' ;ГРйа1ЫИСТЯ, ИЗОавлЯЯ С1'О 07 ИСООХОДимОсти 11ИСатЬ ЛНШНН1» коб101 В слсокиых Вырйжсниях.
АССОЦИйТИВИОЕТЬ гд»ева наой»вво 01 Вава Б»ииво '..лева наа1»вв Гаева язп1мво 'е»'а олог»во Слева м»щав»» 1»ева Ям»1иао Рис.2. Слеараеиислпйо операций В 1711, 11риоритст Опсрйций имсиойаииа памкти 1доступй к члсийь1 структ1»1зы, элементам массива, Вызова функции) нйивыслиий. Далее, приоритет однохеесг11ых операций Выше. чем дйухысс111ых. Приоритет двухместных Ь1УЛ1ПИПЛБККГИВИЫХ ОПСРйЦИЙ, В ТОМ ЧИСЛС ЛОГИЧССКПХ И Лоби ПЗШЯХ, ВЫШС„1ЕМ Саответетвуг01ЦИХ адд»ИТИВИ1 1Х: ПРВОРП'ГСТ», й" ВЫШС, »»СМ У Е вЂ” ": ВРИО,'ЗИТЕТ йа Выше Ч 1'*, а приоритет "ао Вьцпе.
чем """ и 1'1риоритет отношений 1о< е= »= =--- »=-о) ниже, Чем йрифмети Веских операций и сдвигов. Приоритет операции присваивги1НЯ, В том числе Ткорочсиных присВйивйниЙ, сйгп»Н1 низкий, зй искл10чснисм Опсрации запЯтаЯ 1!//ь ия.'. В Вырзжснии х =- 3»з + Ь/с >=. 6 скобки сстсстВснцо,- рао павляк»тся кйк х =-, ~3'а) ь (Ь/с! ) >::= а. 7'ем не менее;.
рекомснДустся употребля"Б скобки, если Они уззучц1ЗВЗТ,;. ЯСНОСТЬ и ЧИТЗСЫОСТЬ КОДЗ, ЛИОО В СЛУ~(ае СОЫНСИИМ:-"*; БрОГрйммиста, 2.5,1. Целой переменной к присвоить значение, равное: ТРСТЬС(! ОТ КОИ(ЗВ ЦифРС В ЗЗПИСИ ЦСЛОГО ПОЛОН(ИТ»Ч!ЬНОГО/ ЧИСЛй х. 2.5,2, Целой переменной К присвоить знйченис, рйвнос''' сумма цифр в зйинси целого поло>кизсльног»! трехзначного. 2.521. Цело!3( переменной и присвоит» зпйчсние, рйвное;: первой цифре Дробной част-и в записи ве»цествсниого, ПОЛОЖИТ( ЛЬПОГО ЧИСЛЗ х. 2.5.4. Опрслелить число, !Голучсннос !зыписыванисм в- Обрйтном пооядкс цифр зздйниого целого трехзнйчного-'! 2.5.5, Испол!зуя услоьч!уго Опсрйцикз "7, ийписйть'! ВЫРВЖСННЕ /ЫЯ ВЫЧИСЛСНИЯ: 3) МОДУЛЯ ЦСЛОГО ЧИСЛЗ Х, О) МЗКСИМУМй ДВУХ ЦГЗЧЫХ ЧИСС1(, и) МЗКСИМУМЗ ТРСХ ЦЕЛЫХ ЧИССЛ.
2.5.6. Пусть йпт а = 5, 1пс Ь = 7. Чему будет;: рйвно знйченис Вырйжсния и (Гобочныс зф»)!скты7 а) с б) --Ь / (ачч — 3) В) !а -=- з» ~ ' з7 / (!з — 7' г)ГЗ»= Ь) + ,'Ь ~=.: а! 2 (,7, Пусть 10( х = 16; 1Г»'. у =- 26; для привелснного Вырйжсния укйзйть СГО;и(йчснис и зб»,ч»сыс яффе пя»ссзи! Они (сть) ли00 О!Пибкй, »сли Выр»(!кение Оцц!60'!Ио й) х,= у, у ь= х, у, х 6) у +=- »х .—. 1) ь ',х =- 2,! х += ( ~,'у=1) Вй (у=-2) ) !) у В--- х / б Д) х ~ !' З.~.у С, 'х'.!х: у 25.8.
Пусть Опрсделень! Переменные и и х, иые!Он(ис Гнп 01»з»цпсо 10Ь. Счйтая, что В х наход!пся 'ТРСХЗНЗ'(ПОС ЧИСЛО. ВЬЬЛИГОИТС ПРИСВЗИВЗНИС, КОТОРОС п(зя(сстиз В к КГО числО В ((перевернутом» Виде, Например. если В х содсржйлось )23, то В 'к слсДУст поместить число 2.5.9. Пусть Определены переменные»йо»1Ь)с сП 1пс -'; Ъ кйжитс какие значения булут имсть псремсиньгс -' и Ц ПОСЛС ВЫЧИСЛСНИЯ ! ' (1 = 16/4; /Холцлсллс. Г) зйлйчйх 2.5.)бс2.5.15 считать. ~!ТО зип ццз.16(Г»и(( 101 зйнимйс! 320итй., йтнп 01»й,. -Зонт. .-,5. ) 6. (»Упаковать» чстырс симв0!Гй В 32-Оитнос беззнаковое целое, 2.0.)!.
Врйспаковать» 32-битное беззнаковое целое 1п! 2.5,)2. Реализовать операции для типа ((и!Кзжество» »От(збрй!Ясйис номсров злемснтов множества нй разрЯды кОличсстВО злемснтов множсстВВ зйдйн0 рйзмсром слова»: й) Объединение, пересе !снис, вычитание, дополнение, сравнение ы!!саксств; 6) д»збави Гь/удал»пь злемснт в/из множества: является ли множество пустым: в) выбрать лр»з!к!Вольный злемс!Гг из множества. 3.
ВЕ)ОД(ВЫВОД. ««и «) «)пе«! 2опо 2.5.13, Ие используя дополнителы)ых перемени поменять местами значения двух переменнь!х типа шк 2,5.14. Поменять знак переменной х типа 1пь 2.5.15. Инвертировать 5 младп)их битов перемениой-' ггп!Й ц))з((«з)е11 Вз! Остальнь)е биты Оставит) без изменения. Символьны(1 и фора)атны(1 ввод-Вывод данных:„' Операторы: Выражение-операзор, условный Операто ": оператор Выбора, операторы цикла„оператор переход ' составно)! Оператор.
Функции ввода-Вывода в 0н являк)тся стандартной библиотеки Языка, для их использования нужно подклк)чать заголовочный файл зсб' о. и (см. раздел 1). Ом разделе познакомимся с некОтОрыми функциями,; ОПЕРИРУК)1ЦИМИ СО СТЙНДЙРТНЫМИ ПОТОКЙМИ ВВОДЯ И ВЫВОД'. обычно связаны с клавиатурой н дисплеем) соответственно), Функции стандартной библиотеки,::.
предназначенные для работы с файлами, Описаны в разделе 9.'' Функциями Символьного Ввода-Вьгаода (т.е.:ь счнтывагощими и записывагощими один символ) являются",.' фуИКЦИИ Оексп«с Е И ро)той«ЗТ Со СлсдуИЩИМИ Объявлениями: аексйат(Мото)! и зпп рцкспаг1тп«с с) ! . 066'; функции Возвра)ца)от считаниын либо записанный символ" типа цпаздпег! Сгаг, приведенный к хгв«либо,': специальное значение еО~, если достиг)1ут конец потока Ввода лиоо произощла другая Ощибка Ввода-вывода.:1 06ратите Винмапне, чт0 из-за необхОДимости различать Верно) считанный симВОЯ и состОЯние Ощиоки функции не мОГу«т': Возвращать значение типа обаг нли ц1)азопоб спак«« , нел)ользустся щгачение типа =пс. '1'нпичньн1 Г1ик)1, Иоатом'«' —,)01ЦИ)1 ПО ОДНОМУ СИМВО)!У ИЗ СТЙНДЙРТНОГО ПОТОКЙ СЧИ!ТЫВ«ЗК)1 - Ввода йо-' д-) достижения его конца, Выглядит так: ыпзу«! «е! 01)ат ',' 1 1= ЕОЕ1 «'+ Обре о!«та'хь слелиц)део Бна чини«з Функции форматного ВВода-вывода всапб и рк(г«Ь 6 (С ПРО«ПП ИПЙМИ ч-агг!«-«Озт -ца' "бо'-чв 1 н '.
!И' Отзову.! ' «)Опав с«)а" *ГО!)гав~ « ... 1; ) мОГут с)гитьгаать и записывать данные л)обык Сазовых тнпОВ и 1;трокн согласно задщ)ной фора!О!аной сза зок!"., Которая ЯВЧЯется первым Йр1)«меп'10м функци(1. Форматная строка заДает количестВО н 'Гип зна«!сний«котор!«ье необходимо считать либо записать, «! Остальные аргументы являк)тся указателями на объекты памяти, куда нужно поместить считанные значения, либо Выражениями, вьнщслягощие з)га миня для записи. Формат Одного значения задает спецификатор Ввода-вывода, нйчинак)1цийся с снь!Вола Часто используемыми специфпкаторамн явл)потея; аа, а Ы.