А.А. Белеванцев, С.С. Гайсарян, Л.С. Корухова, Е.А. Кузьменкова, В.С. Махнычев - Алгоритмы и алгоритмические языки (1113416), страница 10
Текст из файла (страница 10)
а про| раммист сам адресовал иужиыс злемситы матрицы'. 1ИК "'О = пабг1х О сабе (и, и); /: ~з,з) -и злом.ит матрис,ы асса Р,'. " л -3,) Б стандарте Си-99 можно задавать цекоцсзаитиые размеры массивов. Тогда обработка матрицвб размен(еииой В дииамииеской памяти, Выгладит следующим Образом: кока па "сг1и иОВК (кис п, кис п1 ( Япс ( рп) пагт1К(п); /Т указатель на массмв ия и элемеитан Рп = па11ос (а'ЯОО1 (1пб) ': и к и); (П(-"'.! (3) .= 4; ' можно и*;Рсланнтв рп Б фу"икции пипа ~пгбд ( пас (Ом.
ра.. Лел б, 3. 1 ф» »т) ))р11 разыс1ДСНГН1 матрицы В дин;гминеской памяти.' можно гакжс использова1ь массив указателей, когда каждьгй А.1емс1п' массива прсдставлясз сОООЙ указ»1тсль на,"" соатветствующую строку матрицы.
ТО1 да гл1ачала в' Аннами'я".ской памяти сгжду1»т выдслить место под х1ассив' сказагслей на строки матрицы, а потом ыссзо ИСПО».)ЖДСТВСННО ПОД ЗЛЕМСНТЫ Мат)ЗИЦЫ. )1РИ»1ЕЫ МССЗО В памлзи под злемснты матрицы мол.ег быть выделено как;„ езиным блоком, так н ллл каждой строки матриць1 отдельно. ':.. 7.4.1. На стандартном потоке ввода задана», 11оследоватсльность строк, 11ризнаком кОпца' послсдоватсг!Ыюсти являстся и) стая ст)зока.
)».Оли»1ество строк не более 2)). )4аписать фрагмент пр»зграмм1,1, который, ВВОдит строки, )зазмг.щаст их в лииаын»1сской памятп и. формирует массив тказагелей на зтя строки. В ка1естве при»яака 1гоица массива испольювюь нулевой ) каза Гсльг »К 1) 7.4.2, Описать фуикцикз, которой в качестве параметра с)зсдается масснВ "каз111слси иа с'Г)зс1ки (п)зизньц» кОЙА массиВЙ вЂ” указатель 1»'3 Т): а) функция выводит на стандартный гю и к вывода. последннЙ симВол кая»дОЙ с ГрОки: Ь) функция вывод1п на стандартны11 потзк,1вода":; первые трн символа каждой строки, длина которой болыпс,' нля рав1ю 3) с) функция Выводит на стандартный поток выВода строкуп максимальноЙ длнпы; Й) фуНКЦИЯ ПОДО»1ИТЬНГЙСТ КОЛЯ*1ССТВО С-ГРОК» ЯВЛЯ1СЛЦИХСЯ 1а П1НЛ,1ОМВМИ. функция у1юрядОчиваст ст)1оки В лсксяког) афнчсском и'РОЯЛКС 7,4.3, Описать функцию, ко1орал выделает в ДянамПИССКОЙ ПЙМЯТИ МССТО ПОД ЦСЛОНИС»зснпу1О МЙТЙНЦ'» р1К1ЫЕр»В 13 '» Л1 П)ЗИ уСЛГ1ВИИ, ЧТО ПВМЯТЬ ПОД КВЖДКЮ СЦЗОКТ матрнпь1 выдсластсЯ отдельно, Функгц1Я возврйпвасз ККЗЗГГ1СЛЬ На МЙТРИЦУ ИЛИ ГЗ»»)".»»»."СЛН ВЫ)1ЕЛГГГЬ ПВМЯТЬ 1п ж1кл 0 разме)та н" удг»лось.
7.4.4. Описать функц1З1о» когорал освобоигдаст В ' дя»К1м1пв:скои памя~и м~ст~, ранее Выделенное цслонис.1снную матрицу размсра и»» Гй, прн условии. Ито: памяп» под злсмеить, матрицы Выделялась единым блоком; ПЛМЯП ПО13 1 аж»)Т1Г1 СТРОК»» МГПРИЦЬ1 В11ЗСЛЯ*1ЙС ОГДСЛЬНО. Ца сзан партноь1 погоьс Вво "1Й 31аданг1 нислг» ) . 1 1 г» 2 ) я 1лсменты .Грс». Ква;Ц1ат1зых цс»зо»игс11синг»1х матриц размера и» и .
ИСЦС1»зьзуя для размс1цения ма1)зиц дя11амннескую память, Ввести зги матрицы н распечат»зть ту нз ннх. В котор11Й болыцс пулевых строк Гснитатг»»»1тгз такал Ь1ЙГ)»и13В только Одна). б 1рукзуры. Ог1исаннс гигюв структур н переменных .1того О1гс)зации над сзруктураын. 011ьсдиненив. Зада»ги, 71) С).р»ук!урныЙ тцп потво))яет работать с совокупностьат( псскОльких псрсменных как с е.'пц1ым целым, 1!срсменныа»" яв;!Я10гцисся состаВиыми настями структуры. ИааыВГ00тсф'„'. йо.(2!(11(. ! !ОЛЯ СТРУК!уры М01'»''Г бЫТЬ ЛК)бОГО ТИ1КП :.'(С Ог(исац!!е структур!!Ого ти!Га выглядит 02!е;!у((»ц!Нм) Ооратохп а) к)20( (,цмл»цп(»»":»Р» к:»:»»О" »; 2 ) 1 ' со ~»200. ОЙ! ° ' ' ' ( ' 2-"е !сн!" > 1 гле -цмя тнпй стпуктуры> — иден(!!фика)О~).
3,:*" лальпей)цем можно ссылаться на Описанный ттн1 П1)и ИОМО1цп.: конструкции Вида аехцае <имл структуры; Эищ и(!Сити(рикатор может быт(» О!Г»гц!сн, В таком с!1учае': ОписыВВГО)тсЯ тОлько пег)емс!Пц»10 ацогц1мио(0 струклурнОГО,", типа, а после Описания ТВВссти нОВы(. перез(с)н!Ые !О(О ж~! типа уже неволмояон); сспнсок полей> — одно или более Описа!2!Тй) перех(снп !х яаля!012!Ихся (.'('( !'Ввнымц каста»и( структ'»»ря':: 'Эти описсц!Ня имс!От Тот жс синтаксис, '1'10 ц (2!ц!Са)!1(В:-„' ооыцных псременнь!х В Си: при атом им(.",на перемен!21,1х В"' :уп(х описаниях станоВятся нмснйми со(тг!)стс1вук2!Пих !!Олей стрткт»ры.
П()ля мр(мт Оып (цо(Тол о '!Нпа. Просто(о илн'. составцОГО, Вк(1к)чая массивы и 2(РУГнс структуры. )10л(Т!„, структуры не может бьп»ь Х(1.А-массивах(, <персмснныс — список Описываемых перемснн!»!х,(1 пгпом котОРых ЯВЛЯ(.тсЯ 10лько нт0 ОбъЯВленный» стр»ктурный тип. Ес)и( )то! список пуст, то 01(ис)*ц!Встсй. !олька структурный тип (В»тох( слу»гас имя типа струк)уры нс можст бь!Ть Опу*ц!Спс!. И~~на полей струк)ур!»1, а !Вкже имена типо~ структур: имслот отдельные области Видимости н могу» совпадать именами других объск)ов программы. ( )писанц1с с'!Ру:кт»Й)801'О типа ВссГда Описьгваст новый и цс СОВпадакццнй ни с каким ца ранее Описанных (да)ке список п(2.!Сй по)гное(ьпо совпадает со списком полон како~ 0-2!'(бо дру!'О!'(' 02 Рукгурно!"О 2'ипа описанн)"!Ь( Рансей ф~(0((»р l.
Огц)са((ие с(р»тктух)но(0 типа для»ранения ин(ЙОрма!(Ни 0 студснтс: Вбхцос з (12((е()с ПЗ)ае(Й)Й»). ': По;20 ПЗ»Л)з — МЗС "НЗ Я(=1 (' Й 01:З(НОЛОЗ (ОтрО»2(а ~ сй)ЗС СЙ '" ! ЙО ,' айк)20В 3( цйзос Ооцтас»(АТОС) 2 мз ('0(зв ца ЙРЙ (' Й)»ккл'»Р З'2(ПЗ Вбсооб В»2600! '" В ' у'."ззз тела Бз з». Гцс'С Б цос)22 (, П22(1(ер ', Описание стпуктурного типа н)я . Ранения кохп1 1ексного чнс)тсап ВЕСЦСС 0(»л»Р»10Х с!ООЬ н 2 О, тп(2 » 02".(2;2-2021, Я )(З)2220 !т*„-~и Оп(2(-ЗН)гя! ГГ)(п ". -ст'и»."Т~ОЫ Н ' 02)ИОЗ ЧЫ )ся(КЗ кио ПЕ)ООМННЦЫЕ аеецое 00)пр1ех х, у; /У х и у — пнб»рзмзнныз ""з 3 ' т по с сол)( '.Сх ; «а 111»лами с»руктурь1«в сво»о о«»средь, МОГут бы1ь друГие::, с Грук 1б рь1 „то есть возъю»кны ЯЛОькепиые С11»укту ры, Г)ад«перемспнымп ст)»уктуОБОГО Типа Оп)»еде.
СБЬГ слсдукнцис Оп««1»ацпн; ), Г)пс1»БЦБЯ БЗЯтня адГЯ>са ! а Ц/Опи)»Г»ванне и п)»исвапваиие 1ллЯ структур ОДБГ»тб'1 типа). 1)ри 11рисваиваии»1 копиру»отса значения всех полей;; ст)Б«кту)»ьь Г'Груктуры моякно Берелавать как параметры 1ПОЯ значс1пнс1) В фуикпи10.
ыожиГ» ВГГ1111»а»пать как рез'з»ьтйт„ функции. 3. Об»1»«зн»ение 11 0'«*,аелы»ому пОлю структуры. 111»и!) Об»1»ац»епия БспОльзуетсЯ 01те)»втор ', ' ГЗОчка) нь конст)»ъкцни Вида: Где <переменив н> - переменная структур1к»Го типа. С: по;юм ОГруктуры мо»кио вьп»олнять все действия, ко»торьГе опрепелены д.и ти1пь которому принадле»к1п:»то поле, 111»и Обрапцеинп к БОЛ10 структуры по указа»е»1ю на:; «:Г)»уктур; ь»ОБГБГ» Бспс»ль»1»в»тт»«оператпп " — > ' 1ОГре«з11а): з > *3 зквивалентБО Г Б; . Оь 1)риорит"ет ОГ1ера101»ов Обрапвения к полям ст)»уктур1ы 1 .
и —, ) --Наиболее выс1»кнй. 11риме)»ы Гс )истом п)нптедс1ьиых высне описаний) в-'».Овопр =- Гб'1 // ннанение пот»1 дт»пр вс" 01»у 1Б" 1 . С» ' «.'«', Г«»осква ) Г ,/»ГОББЛ»М»зсссл и »ГОАБ а С2 О) . Г»Т«ОПР'1'Ь; . 1" ВЕЛИБВБИ 1»ОЛЯ ОЕО1»О З'»еаэя«в»ае«п В «сь е,,'>с.1) . ->ГЗТОГГР«+4.
1 то «ке « "1«О я Б и«. Бдыд»«ЛГБГ»1 ОУРО«ксе У „ЛЕГ х, з.й; а= у, 3.:Г„ «лоскнт»ин ком»»лекснын нисе а х и 'и 1йпГакие Операции сравнения, а также арифметические БГБ1 ЛОГИ«1еские операции над структурамн Бс Определены: ' б; Х =.— у» ... // О«ЛЯ«101««1 .« ПГ»«»виль нее 1,1 Г Гн ГГ» '.,'. ББ .1 а х. »Оп — "'- у.
1«т«) + у» // ОЯЗГбка! х ь; / / алвабиа! Б. ЦКО'.11 = 11021 // Оь«Гибка! 3 ас»ГГБ»с Оол»О~'.БЯ БЕТ ПОЛЯ «Р«011О. БГ 1 =. Х« // ОЛ»НОКБ Г '»РГГОГ»«1»1ВЙГГГБЗ СТРУГГГЕ~ «» ,Оа знын Гс»ап«Г»В . Операто)» атзео!: «~~»я структуры во»арап»ает размер Гв Оайтах) Ооластн Памяти. Отводимой компилятором под хранение структуры. Размер структурь» в Оайтах всеГда Бе менынс суммы ра»меров всех ее полей 1мопкет быть болыпе); еобГБК100«. Сов«01ех) =взаеО 1К1 >== 11 ри Описании переменных-ст)»уктур возмотк1ГЯ их полнаЯ или частиниаЯ БББЦиализаЦнЯ 1как и в случае с массивамн): ГОСТ В1 ~1* ',ЕПГ ВТ 4 = 1 "Их ЗНЕ .,ПЗ Д.
Р';, " 1; 11с указьп1нмс В И11идиализьп1ии поля НОПЗП8107 нулсВОС значение В слунас, если ХВИО',::;, ини11иализир11ВВИО КОТЯ ом Одно ГТОлс структурм. Есдит 101нпнализп1111я ВО01пдс нс производнтся, 70, к11к н ДДИ! Обмпнмх псрсыснпмх. Глооальнмс структурм полунВЙ, ПУЛСВЬ1С ЗНВНСНИЯ, 3 ЛОКВЛЬНМС вЂ” НС бУДУЗ ИНИ11ИВЛИЗИРОВЙ11ЬВ! 301)ГВ10 1. Йспользух Описвннмн Вьп1ПВ тьп1 Б1 Гпсй, ' '-'-'-'р-''--'х 01'1'с"т' 111ункп1ПО ''1ля Вь""101"-н"" НРОнзвсдснид1 ДВУХ КОМПЛЕКСНЫХ ННССЛ. м. Го =- а->хе Ь->Ге — а->Зьп " Ь->1ПЯ1 м.1ГЯ =-. а->ге ' Ь->1п: ~ а->11В ' Ь->те; '1.',,"' ", ' 1зомьа р ам*исаа 1 ВторОЙ Вариьп1 т рс1нсния ООлсс Зффскти Вен: при ВМЗОВС 7ВКО11 фУНКЦИН НС ВЬПЗОЛНЯЕТСЯ КОПИРОВВННЕ с101сржиыОГО парймст~ъОВ а и Ь ~~~Д,уцп > Ц711 Оудс1 напьна1дно Г рсзульта.р*: ис1 1олнсння сдсдукз11ЗВ1 0 фратз1снта пр11ГОдым~Р ВозмОжнм дВВ Варианта рьп11снпй перпьпт ваоманв'1 1 е, Ьдама параыезроп ПО; впа1 менмю БС1 асс сомр .Ох ВЙ11 ' Б"..Г11сь со1пр.' ех а~; БЬ 'ОСЬ сожр1ех Ь1 Б1 ПОСС сотпр1ех %; Вохе -' а.
Ге Ь.т "* а. 1ьз Ь.1.Г11 т.ььз =- а. Пеьь.1з1 + а.1>з*Ь. е; !), хе1. Псп 1п; у ПОММЕО ВМЗОВВ," ЬЗ111 ( Х О1 у У,НЬГоро11 варма107 ° по реда иа па ~аьтетроп 1117 указа Гелм В ЬКПС1 СО1ВР1ЕХ ПГ01 ! БТ КОСЬ соьзр1ех *а,, ВСГПСЬ сомр1ех ~Ь,' Б1 1.пс' солб. 1ех Р; БСЗ11сЬ Б1- ( сЬЗГ " . 1 С1 ", ~.Б = ма1'о-11011 в Гору 1Ь1.Б, "Ие110 в'~ору 1'..1..Б, '*иог1а.~ "1; ~ паап ЛООХОльку при копирОВВнии ст~)указ иронсхОдйт побзй10ВОВ к01п1рованнс знансний их НОДВ11.
ТО В рсз1снтатс Вмп11лнсиия прысВВНВания с2=С1 скопиру10тся указатслн: п1111с С2. в будет указыВать на ту же область памятн, Кто н - ° в 1СВЫВ 061ГВС7ь ПДМХТИ СКОНИДОВЙНВ НС будет). В Р*-".ультатс ВМВсдстсЯ1 "КВИО зз ог1Й1 "1 1.) вбтпс1: БЬ 1 сЬас В~10); ору 1с ' в к 11е1.1.0 1 1;.' 3 <лзм <'.) ° 3 МОГТ«Ч1 1 Гп 1птоу«ез 1116 ппжЬВ Г; 'пзхппео' спак Ьм< ез 141 1 !11.)оп и «ПЬ Х; с<ООЬ 1«е й< <ЛР; 13 1<м1н<зм слу"1ае полем структурм ЯВПЯетсЯ масспВ ия А 10 симиол~а, и при присааиааннн содерькн"«<е пуде Г С1«пи<розаис, 13 реэуль'Гате 11*<Лед<".ТСЯ- "йе11О 61е11«1 ". Обьединеиия В Ои описыза<отся так Я<с, как й'." структу)зы, но ллЯ их Описа<и1Я используется клк1чеВОС слОВ6 Т< ж ОбъединениЯ име<О1 ОДно принципнальное Отличие От:.'!1 структур: Все пОлЯ Ооъедни«пиЯ ра<я<ОЛВГтпотсЯ В памяти',:!". начиная с одного и того Я<с базоиого адреса и.