Your SlideShare is downloading. ×
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

1263649 8833 c_karavanova_t_p_informatika_bazovii_kurs_osnovi_algoritmizaci

321

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
321
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Етqг*и pl*звЪзув$ни{1 s&lщgl{ рФYФрё Bсr ДФгiФf,Jl0гio*g кaf1qm. Aл rоРитilяи i 6оaeвЁ о,nгорнтaшin*tlff cтрyктурt4 fllloвс rЕРoгpсДJEyЕfiн Ч a Рсxясcit Пo6yдовr олт*ритмi* Еllдпрorpoми ..',ffi
  • 2. Каpава|tОва T. II. IнфopЛlшmшкш lrypc БaзoвuЙ Оcнoвu aлropumмiзaцii ma пpoеpalЙувaння (п poцedуpн e npoеpaлrувaння) Haвчaльний пoсiбник Budання чеmвеpme Шепетiвкa <Aспект> 2007
  • 3. ББк 22.18 к.52 РиЁкlнд и.я. Peueнэeнmu: нaЧеpнiвеЦькoгo Tимoфiевa е.t{. - r.alц.фiз..мat.нayк' дoцeнt , Ю.t}сдЬкoEиЧs; Цioншrыroгo щiвсpсltтетyiменi iнс. о6лaснoгo л.A. ' - ЬapшrиЙ вПклaдач 3aпоpiзiкoгo Чepнiкoвa oсвiти; тrryгy пiслядшплoмgoi педaгoгiчнoi , H.B. Koмхmoo Фiлfulюtс pаdu Hаукoвo-меmoduчнoi' кoмiciсюз iнфopмаmuкu Cхвurcнo Miнicmepcпваocвimui наукu Уtсpаtнu 3 numаньocвitlttt (npoпoкottJ|b otdI2,0I.2Ф5 p) 1 к.52 lпфoplgпrкn. Бsooвиf, tgрс. Oснoвtt шlгоprrnлiзauii тa пporрaшyвaн. нлДщirанoвa Т.П. - Шспетiвкll кAспэкт> ,20a'|. - l92 c, lsBN 9?8-9бб.20|7.|4.4 посiбникy, вiдпoвiдае вимoгвм "iТpoMaтepiaл, ll'клцдGltии ). наBчдльl|olt|y гpaм д,l' зarальноосвiпriх н!вчaльниx здшaдiв фiзикo.мaтtмaтI{-чlloгo' пpиpoДl}r. зgг!льtroчorrr тr igшоlrогiчнoго.tцюфiлiв. lнфpмrпrIсa. l0.1l шaсш (Прoгрaми.ЦlшI oсвiт-rriхшaliaдьншх зarдадiь lнфpмвтшкr. - 3rпоpiжiiя: Пpем'сp, 2003. - 304 с")' : . prкol{ендoвlllимв Мoll Уrpalви. i дoситъ,пoвlio пpедставленi oстroви aJIrорит. Пpосm' достщшо, лaкorriчнo мiзацii, tt.toви пpогprмylaшвя Пaскaль тa otrисаl|o po6oтa в iнтoгpoвaкомy сeре.Цоllншi Juгbo Pasсal ?.0' Mlстить впpaви i пpaктиrнi poбoти ллл зaкрiплсння нa6щих зrrанЬi irввичок. 'Pекoмсн.uyсtъсr шrt рнiв lo.ll клaсiв звгaльнooсBiпriх нaвчaльниx зaшaдiв фiзикo.мaтемaтичltoгo'пprrpoДrичoгoтa тсхволoгiчнorю пpофiлiв. Biдповiдaе вимо. гaм дiючих пpoгpaм з iнфоpшafrки тa l2.йльнiй шкaлi qцlнювaння знaиЬyчltiE 7lsBN 978.96б.201l4.4 . ББк 22.18 T.п''2ф1 @ Кaрaвaяoвa
  • 4. 32.Aлгopитм пoшyry eлёмeнтiв дeякoю 3 влaiтивiстю.....'............. 136 1 BцBчal мeтoди i як poздiл iнфopмaшш' Алzopuпlltiзaцiя, пpийoми пoбyДoви aлгopllпиiв тa ix влaстивoстi. Мgгolo. дalloгo пociбникa с, B пepцry чepry, poзгляд циx пит.lllь тa виpoблeнIlя B yrнiв навинoк пoбyДoви aгlгopитмiв. r 3мiст понятгя (<:шIгop}tтм>)кJlloчoвIlld y poздiлi aлгopитмiзa. мo)кнa тpaктyBaти як зpoзрli.пий i тoчний пpиIIис цii i йoгo викoнaвцIo шoдo здiйснeння пoслiдoвнoстi дiй, спpяМoвaниx нa дoсягIIrння пoсTaBлeнoi йeти. I{е пoняття е бaзoвим i в rеоpii сaмoгo зaг.UIьIIoгo arrгopитмiв. Caмe спpoби фopмyлlовaння стopi'r.rя. .Цo пoняття aJlгopитмy пpизBeли y 30-x poкax XX BиникненIIя тeopii aлгopитмiв, ЯKa вивчae пI{тaнIIя пoбyдoBи aлгopитмiнниx мoделeй. Питaння I{oдeлюBaI{IIя' BидiB модeлeй тaкoх( 6yдyгь poзглядaтися в oднiй iз тeм цьoгo пoсiбникa. У пoсiбникy мoвa йттrмgгься тaкo)к i пpo rrpalстllчний aспекг, пoв'язaний з IIoнятTям аJгop}Iтrvfy i з rпиpoким BикopистaнIIям цьoгo pеалiзyвaпl пpи нeo6xiднoстi пdErяrтя y пpoгpaIvryвaннi. Aдхе Дeл<vlЙ aJlгopитм тpeбa пoвiдolul{ти викoнaвцIo цpoгpaпдy дiй. Пpи цьolvry неoбxiднo o6paтп спoсiб oписy aлгopитI'Дy' яruil 6уъ 6tl зpoзyмiлим BикoIIaBцIo. Якщo цим BикoIIaBцeм € кoмп'toтч), тo вiдпoвiднo зaписol{ aJгopllтlvfy пoвиIIнa 6утu npozpа'ttа' нarлI4caвLa мoвolo <сpoзytиiлorо>кoмп'Ioтеpy. Caм пpoцeс пepевeденIlя зaписiв aлгopипиiв Iia цro мoBy ll.lзиBaeтьcЯ npo2pаJ||уваI|'|яJ||. oтoж, пpoгpaмyBallня мo)кнa poзглядaти як спoсiб pеaлiзauii сKпaдеIIиx aJIгopитмrB. !дянaпиcaнIUI пpoгpaми oбиpalоть мoвy пpoгpavryriaНHя' a NIя тoгo, щoб Bикoнaти iT нa кoмп'roтеpi, BикopистoByloть вiдпoвiднe сepедoBище пpoгpaмyBallшl. oтorк, нaдалi бyдrмo гoвopити пpo l,roвy Пaскаль як IIpo oдиII iз iнстpyмeнтiB Nlя pеa.тliзaцii aлгopитмiв, a пpo сеpедoвищe пpoгpalvryBaEня T1pбo Пaскaль 7.О - oцаrl iз зaсобiв NIя oтp|4t|Laшgя peзyЛЬтary poбoти циx arrгopитмiв. Teпеp мo)IсIa пiдвести лoгiчний пiдсyпloк нaBе.цениx Bищe мipкyвaнь щoдo BизI{aчrнIIя питaння зв'язкy мixr а.гrгopитмoм i Ilpoгpaмolo. Пеpвинним e aлгopитм, a пpoгpaмa' як oдиIt iз вapiaнтiв pеалiзaцii aлГopиTмy, с BТopинIlolо i викopиcтoByrться з метoIо pезyльТaTy poбoти aJIгopиTмy. oTpиMaнI{я
  • 5. не мaцiйнoiсyгltoстio6'скй, a,нr Biд йoгофЬи.lrюlпPиPoдЦ.To6тo зqtlч' скlJlЬкll'oдПoпilI. E8 cтiJrькrr вшкJrиBr пpишЦшre illqчolllll нiсть метoдiвi'.якltмIl вol|lt Po33'яз},toтъcя. Ilpшмфм, лofiчшi мoдG,ti lк дJtl tt'oдG,Iювollш' лroдgDrиx мlPТyDcЦЬ! тlк l El{кopисtoвуtoтЬс' пp}rorrисoвiлoгiчнrrxсxrr08Bтolt|aтиш{: Haпpишlяд,PoзгJr'шФ'oзrдoЧy пpo Py,( тiл.aпiл дi€ю пPиrлa. дot|l|x дo llьоIlo снrr. Poзв'iзyкrчш Irocmанoвка зodачi _ це vimке фop''уЛювсtl1tlяУI4oвu заd ачi, в1l:' начеl|ня вхid нuх d анuх dля i1, oз в' я ЗQt1 Я, p 17 moчнi вказiвкu щodo вuзнаaення pеЗульmаmiв, якi n4аюmь буmu ompu,tt'tан i. Poзв'язрaння бyдь-якoТ зaдaчi пoчинa€ T Ься з tJ пoстанoвкli. Пoдекyди безпoсеpедньo в 1п,toвiзaдaчi пpисрнi чiтко ви'ttIаченi мaтe}raтичtli пoнятгя. Ha пеptпoмy кpoui неoбxiДнo добре yЯBИТи, B чotvfy сaмe IIoлягa€ дaЕa зaдaЧa, якi неoбxiднi для ii pозв'язaння пoчaткoвi дaнi, якy iнфopмauiю BBa)кaти рrзyЛЬTaTaМиpoзB,язaнtlЯ цiсi зaцачi i ii мaйбщн€ зaQтocyBaнI.IЯ. o Цo бvDo вa м аm eмаtn aцн oi лц d eлi Пoбуdoвсt маineмаmuчнoi.,vodeлi - L|евuЗl|а,Llсl t'l ll cу ку n н o с m i м аm е,MаmuчIruхo б' скm i в i вi d rto utен ь "мi..lt' t нu.lt,tu, вidoбpаэюаюmь dеякi влticmuвoсmi пpoцbсv' якi щo h4odе.rlюсmься. Пoбyлoвa мaTeМaТиЧнoiмoделi зaдaчi _ .цРI(r вiДпoвi.ца;rl,ttlrii eтaп. Hе зaBж,ци рIoBa зaдaчi мiстить в сoбi ГoToвy МaTеN1a1'иlll]-v pозв'яфopмyлy, якy Мoжнa зaсТoсyBaти для poзpобки аJIгopI,l.].Nly зaння. зaдaчi, не зaBж.ци poзв,язoк зa.цaчi Bдa(;TЬся oтpиМa1Л в яBнoj,lу МaтеМаTизoBaнolvry виглядi, lцo зB.язyr вxiднi Данr за PсtyJIЬтaтп. !ля цЬoгo отBoploстЬся iнфopмauiйнa МaTеМaT.иЧнa NloДеЛЬ oб'сктa, щo Bивчa€ Т ься. Bибip Bидy МoдеЛi зaлеirttlть вiд iнt|lop. & Гl, ми, пgPш| 3s BoG' з8ltllcy€мо Pipняшнl p}Цy тiлs нe оспoвi tшogшчrшx зat(ol|iEмcxшriкr; Aле, щiм ошлштяжiнllп' ltl тiлo дiс i.qилa oТqРy поriтр. Пo9I0с ttштшrЁi Eiдпoriдlloстi мf,тq}ifrтПЧПoi}|oдолi pqшЦiй кqpпrнi дoсltiджpшloгo ;'potlscy. tlодскУtп бyrrс шсrroжлПEиr. rРox)ljsltшr Eсiх p3tJlЬЦlix фaкropiв, Цlo вIUtиBaютЬ нa ньoгo. Toмy лр'жо с}4тсlи}' е вlдiшпя il{дiл,tТи сaPAд всix фaктopiв Чlon'ri т8 дp)Дryiшi д,tl тotlo' щoб Прt мoшшrбщo зrrcцryвrт.,ll.. шо'rty lцoutсок,Iisшroi c}гтy&цl'' irот .шпrirш ll6вiдol|o, яlu|мtl arмc фrкroPoмш lt.gжllt зltpxт},Eoflr' i коли нa{rGPсд тoltfy мo}l(o бyш лекiлькa мaтсмgшrчrrих мoдaпgf,J' Цto oilшoyють oлнy i тy сaмy зlt8ЧУ, шrrщl t piзнщl стyttollc}t лостtiriщoс.ri. . 'r( Cтyпiшь вiдпoвiшlogтi мoдoлi pooJtьlloмy oб.rrry-поPcвiprЁtЬся пpaKгrrкoю' кoItiII'ютopним Gксп9pllliollтotrt. Кpитсpiй зogтoсy. вЬння пРaктrrки дae мoж{ltвiсть oцiнштIr пo6yдoвrшу мoДGлЬ i yтoЧrrrrтrr lii в prзi EGo6xiдllo-стi. Чшц дocтolipшilшc мaтBr.Eтшrшo мoдe.'lь вiлo6pйaс prщьtti стoфни.ItpoцGсyl тим тoЦrirЦi Pозультafl1 щo (lтpЦЦy!(}]lъс'. Iloбvфoa unubДm.av pi noЛяzorу вu6o' moеo чu iншoeo IloЙуdooа с|I'zopumму ,.4 cnocoбу poзв'лзувнt:я зadачi. ЦJ aJlгopryгt{yo6poбкн iшrpopмaшii llaстyпнп}| кPoкo}| € poзФкl rra oснoвi м8тs}{aflrчшoi мoдGJli. Caмс пр сlloР€ttll,l aJlnopштмiB, 'к пoслiдoвшoстi, вl{l(oll8lltlя II9BllI{x вкtrtiBoк дJlЯ дoсяrнGнtlя мgти, pш пoбyлови шшщrпry шoo6 йтимeться il|oвa y цьoмy rlopiбнПкy. зaдaчi..Мoжyть бyпa xilтro вiвнaцrги сr'ociб poзв'яз}!аlillя oцiнкa, шrшtiз, вiлбip' зaстoсoBaнi в}кевiдoмi мgтoдll' пPoв.0f.н0Iх aбo poзpoблеrri нoвi ltcтoди. Haпpишlвл' Риpip метCIдy poзв'язy. вaння сt{gтё;tиpiвнянь' щo bпиcyе poзpoGлoнy мaтемaтlr'rшyмoдeль. B u б.iPл oаa no oen цмуаa н нл Оnnuмаltьttuй вuбip ltlosu nPoePс'мувaнnяfoзусаt*л па peсшь,|aцу oцiнtoмннi ctслadнocmima хapaкmеw зdaчi. Aлгoprmu, щи3пaЧeн.нй дrя Eшкoнaннr нa кoмп'roтepir ltоEll. нeш бyпа зaписaний пeвнoto мoвoto пporpsмувsння. Piзшoмaнiпriсть ,&
  • 6. lсн).IoчI,Ix It{oB цpolpalvryBal{нЯ вимaгae Biд пpoгpaмiстa peальнoТ oцiнкц склaднoстi тa xaPaктeрy зaдavi. Tiлькп пiсля цьoгo вi" змo*" .для здiйонити вибip. ьraйoптим.альнiцroТ fl.loвIr пpогрaмyBalrня peалiзaцii пoстaвлelloi зaдaнi. Bpaxoв}тoни мoжливiсть poзбиття 9сьoгo ilлгopиTllfy нa oкpемi ЧacTИHpt'д;rя кoлснoгo з них вибip мoви гIpoгparvfyBaнIl,Iмo)I(e бщЙ злiйснeний oкpeмo. L клaoаIII'я nDozDаJ|'a CtслаdанняnpoepfuI'unoляaаeу cmвopeннi mекcmу . ||poapал|u ocнoвi poзpoблeнuх алzopumмiв i на npedctnавltеньiнфopлlацii.з 1pаryвання,u алфавimу па ,. Tpанcляaiя npoеpаlу|I,'rцe nep,eклаd npozpамu на - мсlulu||||у .fu'oву. Ilеpeкrlaп .'po"pu*n, uu мaIIIиIrI{y мoв5l здiйснtoeгься зa.дoпolllo- гolo. спqцtальIlиx llpoгp:lм _ тpalrслятopiв. oднiею з iх фyнкuiй e пеpeвipкa нaявнoстi У пpoгpaмi синтaксичнIlx пoмиJIoк пiсля BвeдeнIrя y кoмп'lотep. Hе тiцrтe себe нaдiеlo, щo пpoгp:lмa,нeвiть iТ нaйпpoстiп' a, НaflИcalнaбeздoгaннo. Cеpeд пpoгpaмiстiв вiдoме тaкe пpислiв'я: <<Якщo'y пpoгpaмi Ёeмaс ,,o"",o*, ц" o."u"u., щo y'Baс пoгaний тpaнслятon>!! ! ..I{а,лаzoduceння noozpа.|сa. кoнmooльнuЙ пl, nахtlttoк . Hшlаzodэюення npozpаJvlu, кoнmpoльнuй npopахунoкL це iA . nepeвipкаnpавu,tlьHocmi po1omu npozpамuза ! 1 Ч-? : . ' Doioлtozoюcucieмu*""^i,.. Bипpaвлeння yсix синтaксиtlниx hoмилoк y пpoгpaмi IIa пoпеpeд}rьoмyетaпi зoвсiм нe]пoзбaвлясвiд iнtrroгoЪ'ny no'",o* _ змiстoвниx,,лoiiчниx. Borпаз,йллсrгьсi гри поlлllпсo"й т*.'y*,"'i yIиoBи пoстав-тlенoi з4дad, нeдoскoналoстi мzrвмaи.пroi: мoдerri aбo B aJlгopl.rтМi тa гризвoдягь дo oтpимal{I{я пoМиJIкoBoгo pфyJьтaTy. Tакi пolдшпs.rIIe мoщ|пЬ бyи yсyнeнi нa стaдii тpaнслядn, Tol{y Цo ддя ж ''Bи,IBJIeI{Iiя неoбxiшa iнфpмauiя гrpo сyrнiсть самoi задaчi.3йсгoвнi (лoгi.пri)пoмI,t.IIки мoх(r yс)Дrytилпапeсaм poзpoбlик. Cмисл нzrЛaгoд)кeнIlя пpoгpaми пoлягae B тoмy, щo гoтyrTЬоя систеМa тестiв, зa дoпoМoгoю якoi пеpeвipястьсяpoбoтa пpoгpaми y piзниx мo)кЛиBиx peжиМax. Кoжний тeст мiстить нaбip вxiдниx вiдoмий peзyлЬтaт..{ля бiльшloстi пpoгpaм виникar дaIIих' NlЯ ЯКvlx нeoбxiднiсть дoбоpy IIе oдIloгo' Ь цiлoТсepiТтeстiЁ, Щoб пepeвipити нaйбiльlпе числo мo)lс:lиBиxcитуaцiЙ,якi мolкщь cTaTvIcЯ пpoцeсi в poботи пpoгpaМи. Я*щo для всix вдaлo пiдiбpaIlуIx тестiв вalшi poзpaxyl{ки спiвпали з pезyльтa'тalvrи poбoти пpoгpal{r' тo.l,toхснa BBaх(aти' лoгiчниx пoмиJIoкIIeмaс. щo .i1 Eкcnлvаmаuiя npozoа.мa ] ' Якщo BaIIIaпpoгpaмa yспirпнo пpoйIшлa yсi пoпеpeднi eтaпи' To Мo)кнa з пeвнoю мiporo ПpIДtyIцeшIя вфrги всiм pryльтaтaм' oдеpжaниМ щ)и 6ум-лonr' пoчaткoвrоr даrпж. Tепеp вшry ПpoгpaМy мoll(нa TI.{pаяryBaTI,I пpопoнyвaти iIflIIIl]l{ кopисTyBaчaм, дoпoвrЦвrlм Teксти i rгpoгpaм ollисojd oбмехсelъ нa пoчaткoвi дшti, вiдloвiдroro дoкy[,Iе}rтaцiсro д.пякopиgгyвaЧ4 oписoм сеpедoвищa лaнoi пpoгpaМи,Toщo. Бiльпriсть poзглЯrryгиx етaпiв poзв'язaння зaдaч нa кoмп'roтеpi BикQrryIотЬся Людинoю i нoсять твopний, eвpиcтиЧtIIIй xapaктеp. П u m a н ня ёля ca мo кoн mpoл I1' : 1 Якi icнуюmь emaпu poэв'язувaнHя зadaчi нa кoмп,юmepi? 2 Щo oзнaчaс вupaЗ <пocmaнoвKaзadaчi,? XmoiT вuкoнуe? 3 Щo olнaчae вupaз "пoбуdaвa MameMamuчнoiмodeлi"? 4 Щo oлнaчae вupaз "noбуdoвq 'aлzopumму"? 5 Щo ozнaчar вupaз "вu6ip Moвu ПpoepaM!*oHHЯ>? 6 Як пepeвipяemьcя пpaвuльнicmь aлeopum^rу? 7 Якi noмuлкu |v|oх(уmь буmu в aлeopumмi? 8 Якi пoмuлкu HaЗuвaюmься сuнmaкcuчнuмu? 9 Якi пoмuлкu нaluвaюmьcя лoеiчнuмu? Якi'х вuзнaчumu i вunpdвumu? 10 Як ompuмam|! MalauHr]uЙкod npoepaмu? 11 Якзdiйснюсmьcя нaлaеodжeння i mecmyвaння пpoepaмu? 12 lo якoeo emaПуMФKHanepeхodumу пicля нaлazфжeння.пpoефмu? 2. lнфopмaцiЙнa мodeль Пoня m mя iн ф opлlаtliЙ н ot м odeлi Poзглянрпrи етaпи poзв'язрaння зaдaЧ нa кoмп'юtеpi, ми _ тopкнyлися oдIroгo Bидy МoделЮвaння сТBopеннямaтемaтичнoi мoделi. oднaк слiд poзцlиpити пoняття мoделi, як зaсoбy'oписy лoслiлжрaнoгo oб,сктa.
  • 7. Пid мodelшю dеякozo o6,eкtnаpoзумiстпьея cуtуnнictЙь найваэtслuвi|t|uх в]Iаcmuвocmeй скmц npoцeсу чu oб' явuщсцяка вoлodiecуmmeвu}|u цiлеймodeлювання dля влаcmuвocmяJу|uв pамках цuх цiлей noвнicmю зал,t,iнtoс i вlьхidнuй oб'eкm, npoцес чu явuщe. Moдeль _ цe нe тiльки зoвнilцня пoдiбнiсть, гoлoвнe лeжI.Iть глибure, ocкiльки пoвeдiнкa мoдeлi i pеальнoгo об'ектa пoвиннi пiдкopятися oднaкoвим зaкoнoмipнoстям. Bивчивпrи ix нa дoстyп. нiй д.пя дoслiдrкeння мoдeлi, I,lo)кнaпepeдбa'rити влaстивoстi дoслiджрaнoгo oб' ектa. Галрь знaIIь' щo зaймaетьсяpoзpoбкoro piзнoмaнiтниx мoдeлей, ix теopiсю i викopистaнняМ'нa$I,IBa€ться мoдeлIoвaнI{ям. Iснye великa кiлькiсть мoделeй, якi вiдpiзняIотьсясклaднiстю, piзнoмaнiтнiспo зaдaч тa цiлeй IuoдeлIoBaIIня'гaлyзяIvlи зaстoсyBaнIIя. Мoдeлloвaння 6oзуетъcя двox мeтoдax дoслiджeння: нa . eкспеpимeнтaльнoмy' де викopистoвyються npedмеmнi мodелi; o тeopeтичIlol{y' пpl{ якoмy вI{кopиcтoвyloтьсяplзltoгo poдy знaкoвioа6сmpакmнiмodani. lo npedлсemЩtх a6o мaтepialrьниx мoдeлeй мoжIIa вiднести мoдrлi зoвнiцIlrьoТ пoдiбнoстil мodeлi - мaнeCepeл ниx l,lo)кнaьтlДlлптtl ексnеpu]'|енmальнi пpoвoдять кeни' irpaurки, мoдeлi лiтaкiв, кopaблiв, Еa ЯI<'|,< пoпepeднi випpoбyвaння, Фунtчioнаllьнi мoдeлi зaмiняють oб'екти пpи виконaннi пrBниx фyнкцiй: пpистpoi lштyчцgi tlиpки, систеl,ly <<сepЦе-лeгeнi>, пpoтrзи, мaнiпyлятopи тoщo. Tpeнaжepи,мoделi, шo iмiтyroть пoвeдiнкy peaльIlиxoб'сктiв в скJIa.цних сиryaцiяx, слyгyloтЬ дJIя }Iaвчaння i вiднoсятьcя дo ItсlвчаJ|ь||tDс d ел eй. Jуlo Ti мoдeлi, якi нe тiльки стaтичнo вiдoбpaжaloть oснoвнi влaстивoотi oб'€ктa, aпe щe й y uaсi iмiтyloть ix нoсять нaзвy iмiтaцiйниx. Iмiтaцiйнe N{o.пgIювaIIня гloв'язaнe з мoделюBaнням динaмiчниx oб'ектiв, IIPoцесiв,явиЩ. Змiнa сиryaцiй в чaсi * тoй фaкгop, якlцiц виBчarтЬcя зa дoпoмoгoю iмiтaцiйниx мoделей. Haпpиклaд' диспeтЧepнa заJIiзницi,щo дивиться нa тaблo, пo якoМy B yмoвнoмy виглядi пepемiщytoтЬся пoтяги, мaс спрaвy з вiдo. брlryвaнoю мoдeллIo.Aлe якщo таблo знaxoдитьсяB нaвчaJlЬIloМy цeнтpi, де нaвчalоть мaйбyгнix диспeтчеpiв, тo пpoцеси, I]lo вiдoбpaжaються нa тaблo, лиIпе iмiтytоть peальнiсть. B цьoМy Bипaдкy iде мoвa пpo iмiтauiйнe мo.цeлюBaння. l0 flo aбстpaктниx aбo знaкoвиx мoделей слiд вiднести B п99II]y чepгy MaTеМaтичнi мoдeлi, якi зa дoпомoГoю МaTrМaтичI{их фopмyл ollисytoтЬ дoслiджyвaний oб'скт' Iснyroть i iнrli знaковi мo.цeлi, якi бaзyroться нa нayкoвoму aлapaтi кoнкpетноi гaлyзi HaУКLI.У зв'язкy з циМ poзpiзняroть. oкpiм МaтeМaТиЧниx, Ще й фiзиннi' бioлoгiчнi, соцioлогiчнi мo.целi тoщo. Зpaзкoм циx aбстpaктниx мoДелeй е iлюсrpацii.y шкiльниx niдpу^tнltкax кoжнoГo ПpeдМеТy,фopмyли. з схeMи, тaблицi ToIцo. Aбстрaктнi знaкoвi мo,цeлi - це тaкi, якi можнa зoбpaзити y вигля.цi нaбopy знaIсiв. [итяuий Мzulюtloк. якиЙ зoбpaжaс схiд сollЦя, лiтнiй деrIь, вiдпоЧиHoк нa моpi, кo}rстpyкTopсЬкa сxeМa лiтaкa, iнфоpмaцiя B eлектpoннiй тaблицi Ta pеЗyЛьтaTи iТ oбpoбки тoшlo * Bсе Цe aбс.гpaктнi мoДелi. Сеpед aбсrpaктниx мо.целей cлiдвидlлити тi, якi ще не iснyroть нa пaпepi, кoмп'rотеpi aбo нa якoМyсЬ iнпroмy нoсii iнфopмaцiТ. Пepпr нiж тaкa Мo.цeЛЬбyле зaфiксoвaнa нa IIеBнoМy нoсiевi, вoна з'яв.тtясться y ЛIoди}rи y виrлядi iдеi, вoнa мoжe oбгoвoploBaтисЬ' тобтo пеpедaBaTись yсIlo BiД oднiеi лIoдиtlи дo iнrцoi. Taкi aбстрaктнi мo,цeлi' якi ще нr € знaкoвИNl:"l' IIaзИBaюTЬся вepбaль. ними, тo6гo усI{иМиAле Дrя pешIiзаIдiiбyль.якоi мo.цеlri нa кoмп'toтеpi пеpевaжнo Зас,гoсoвy€TЬся мaтeмaтичниЙ aПapaТ. Пoбyдoвi мaтeмaтичнoi мo.целi Пrpедyr пoстaнoBкa заllirчi. нa oснoвi якoi фopмyлIoсTЬся iнфоpмaцiйнa Мo.цель. Bвarкaстr'ся, що iнфopмaтикa як нayкa пorlи}Ia€ т Ься тoдi, кoли для фрат.мeнту свiry, щo BиBчaсTься, пoбуДoвaнa iнфopмаuiйнa Мoдель. oтoж, МaTeмaТиЧtli мoделi, нa якиx бaзуетьcя кoмп'ютеpне мoДе.пIOBaння, тiснo пoв'язaнi з iнфopмaцiйними Мo.IIеЛяМи. Iнфopмацiйна lцodель _ цe iнфopл.оацiяnpo oб'скm чu npОцес, яКa Оnuсус dеякi ваcюлuвi dля кoнк1lеmнoi. poЗв,яЗуванoi.зcldачiйoeo munoвi puсu mа власmuвoсmi. У якoстi нaйпpостiшrиxПpикЛaДiвiнфopмaцiйниx моделей Мo)t(нaнaвести такi: . B prцеПTypi вlтoтoвленI{,l гасIpoнoмi.пlоТ cIpaBи oIIисy€TьсЯ' пoвишнi бyпа овoui тa фpyкги - зpiлi aбo нaпЬзpiлi, вi,цвapенi, 'II<IINIИ смalкенi a6o cиpi, Ta ЯкиM подaстЬся дo сToлy гoToBr блюдо ГapячиI4. оxoлoД)кеним, як гapнip aбo як oсFIоBнaсTpaвa; ll
  • 8. . oпис дитячoi Гpи МiститЬ yмoви fi пpoведeння: дe i як пoBиI{нa вiдбyвaтися гpa (нa вyлицi, y пpимiщеннi, зa стoлoм тoщo), скiльки гpaвцiв мoжe бpaти y нiй yraсть' xТo BвaжaсTься B pelштi pеIIIт пepеМo)кцeм; . NIЯ BигoтoBлеI{I{яновoТ сщнi тpeбa знaти якiсть TКaHИ:нуц з якoi ii мoжIIa BигoТoBити' МетpzDкткaIIиIlи' poзмipи сyкнi; о змiст дoвiдкoвиx BИtaHЬ тa eнциклoпедiй; . yIиoBIl Bикoнaшня дoмaIIII{Ьoгo зaBдaIIIlя з МaтeМaтики _ нaявнiсть пiдрyrникa, зoIIIиTa, pyЧки, oлiвця, лiнiйки, тa йoгo peзyльтaт - зar7Ис}1 poзв'язкiв laДaЧ У зoцIитi з ypaxyвaIIIUIм IIpaBил iх викoнaння. }.{aл.1 Iнфopмaцiйнi мoделi B)I(е y дaвнo зaсToсoByються фiзицi, xiмii, мexaнiцi тa iнrциx г€UIyзяx IIayки.oстaннiми poкaМи знaйшлo lllиpoке poзпoвсIoд)кенIIя iнфopмauiйнe трaктyBaння бioлoгiчних пpoцесiв, зoкpeмa вшЦoТ неpвoвoiдiя.lьнocгi. IнфopмaцiйнaМo.цеJъ' вiдoбpa)кaючинaйбi.шlп сyггrвi ыlaстивoстi peaJlЬнoгo дoслiддgвaнoгooб'екгa, нaс,щaвдi нeтoтo)кHa йoмy, a с лиIIIeнaближенимйoгo oпиоoм. Taкi мoдeлi це тi ж вiднoснi iстини, чepeз пoсеpедництвoякиx пiзнaсться дiйснiсть з пoстiйнимнaближенням iстини. дo рeaлЬHa t2 Iнфopмauiйнi мoделi с тим мiстlсoм,теpeз який iнфopмaтикa BсЦ/пaey вiднoIшенI{я oкpемими нayкaми,IIeзлиBzlloчись ними i з з в тoй rке чaс I{евбиpaюниiх y себе. Xoчa зaгaльнi мeтoдoлoгi.tнi пpпнципи пoбyдoви iнфopмauiйIrиx Moдeлей мoжщь бyги пpeдмeтoм дoслiд)кeнIlя iнфopмaтики, сaмa пoбyДoвa i oбrpyнryBalrllя iнфpмauiйнoi мoдeлi с зaдaчelo oкpeмoi нayки. Ha зaвepпrення систeмaтизyемo iнфopмauiю пpo мoдeлi y виглядiсxеми (мал.l): II o бvdoва iн Й ooлtацiй н oi,нo dali Пpaктиннo всi дoслiдx<rнняoтtlЧ/ючoгo нaс свф.Цaloтъ нaм IlепoвHy' нaближенy iнфopмaцiro, алe цe нr зaBiuкaс людям здiйонювaти пoЛьoти y кoсI,Ioс, пiзнaвaтитaсмницi aтoмIloгo ядpa, oвoлoдiвaти зaкoнaми сyспiльнoгo poзBиткyтoщo. неoбxiднo, щoб пoбy.Цoвaнa нaближенa мoдeль найбiльruпoвнo цiдoбpaжaпa BЛac. тивoстi oб'скry, ЯBИЩaчи пpoцeсy, щo виBЧaloтъcя.Нa6лижeний xapaктep мoделi мo)I(e пpoявЛятI{сяпo piзнoмy. Haпpиклaд, oтpимaнi peзyльтaTи'щo викopистoвyютьсяB eкспepиI,teнтi, якi нa Brrпивar тoчнiсть iIoкuBaHI{Я пpиладiв, poзкJlaд пoльoтiв лiтaкiв, сшraденийбез ypaxрaнI{я МeTeo)^,loB. Пpaвильнo пoбyдрaти МoделЬ- o.цинiз нaйвaxсливilпиx етaпiв чи дoслiджeння oб'€кTa, Яв;vIЩa пpoцrсy. Дllя цьoгo нeoбxiднo визнaЧитиoснoвнi йoгo влaстивoстi,вияснити'вIIикaIoни сщнiсть в пoстaвленoi зaдaчi, щo зaдaнo i якi рзyльтaти нeoбxiднo oTpиМaти. Мaбщь' нaйгoлoвнiure - цe oцiнrш Мнoжиrтy вxiдниx да}Iиx. Кpитеpiiв вiдбopУ вxiдниx дaниx с ,щa. Пеprшпfi- Цe нaявнiсть тa вiдпoвiдний стyпiнь зaпежнoстi дoслiджрaнoгo pезyлЬтaтyвiд циx вxi.цниx дaниx. Дpуnlil _ це МoжJIивiстьпpaктичнoгo BкJIючеI{Hя .цaнoгoфaктopy в мoделЬ'щo бyдyrTься. Oскiльки МoделЬ бy.Цyстьсянa дeякoмy спpoщelloмy oписoвi oб'ектa, pезyльтaти, oтpимaнi IIpи aналiзi мoделi, нoсять нaближeниil xapaкTep. Cтyпiнь вiдпoвiдностi мoдeлi тa .oб'€ктa BизHaЧari стyпiнь точнoстi oтpиМaниxpезyльтaтiв. вiдпoвiднiоть I]я пepевipястьсЯПpaкTикolo.rксПеpиМеHТoм. Кpитеpiй пpaктики дar мorкливiсть oцiнити пoбуДoвaнy iнфopмauiйнy lиoдrль тa зa неoбxiднoстi yгoннити iТ. Poзглянемo декiлькa пpиклaдiв пoбyдoви iнфopмaцiйноi мoделi' Якa переДyс пoдaпьrпiй пoбyдовi мaтеMaTичI{oi мoдeлi тa poзpoбцiaлГopитМypозв,язyвaн}Iяпoстaвленoiзадa.ri. l3
  • 9. Poзг.шянемo pеaлiзaцiю зaдaчi Пpo пoIlIиTTя lшкiльнoТ фopми для щнiв пoчaткoвoi IЦкoЛи. oскiльки Мa€Ться нa рaзi поIIIиTТяI{е iндивiдya.пьLroгo, TипoBoгO oДяry, тo Пpи pозрoбui лекaл необxiДнo a знexтyBaTII осoбливoстями фiгypи кo)кнoi orr1;fМoi ДI1.II4ъIИ' BзяBllIи yвaги типoвi poзмipи .цiтей цьoгo вiкy. oкpiм цьoгo якiсть, Цiнa дo тa кoлip Tкaнини BизIIaчaIoтЬсЯ oднaкoви|уIИ ДЛЯ всix фоpм дaнoТ мo.целi. Toмy пpи poзpoбцi мoделi шtкiльноТ фopми для 1^lнiв пoчaткoвoi ЦIкoЛи необxiдtto взяTи дo yBaгI'lТиПoBi лекаra рoзмipiв дiтeй вiкy вiд 6 дo l0 poкiв, Tкa}Iи}ry дЛя пoIIIIITгя костюмiв, кoльopiв синЬoгo' кopиЧHеBoгo aбo боpлoвoгo' Poзpoбка aлгopиTМy прoгнoзy пoгoди пеpедбaнaс для пoбудови iнфopмauiйнoi мoдeлi Bизнaчeння Тиx пapaметpiв, якi бyдyгь BизнaЧaТи хiд aналiзy i .цoслi.цження цЬoГo яBищa. I{ими ПapaМеTpaМи пoвиннi oбoв'язкoвo бщи нaпpямок пеpемiЩення Tеплих i xoлoдниx фpoнтiв. змiнa тискy пoвiтpя, poзтaшyвaння i вПЛиB }Ia пoгoдy в pегioнi циклoнiв Тa aнTицикJIoнiв тoщo..oднaк Мoх(нa знеxTyBaTи TaкиMи ПapaМетpaМи як BПлив землетpyсiв. .геxI{oгеHIlиxкaтaстpoф y вiддалениx paйoнax земнoi кyлi, мaсoве палiння осiнньoгo Листя Ha вiдкpитol.ty пoвiтpi тoшo. Пoбyдoвa iнфopмauiйнoi мoделi Bизнaчeння кopeнiв квa.IIpaTнoгo piвняння пеpедбa.raс зaбезпечеI{rrя yМoB Bикoнaн}Iяцiсi зa.цaчi. Taкими ylltoBaMи r BизI{aченнякoефiцiснтiв I1ьoго piвняння. Кoефi. цiснтaми Мo)I(yгЬ6уи буль-якиx тpи чисЛa зa однiсi yМoBи: Числo, шo с кoефЦiснтoм пpиx2, Hе пoBиннo доpiввювaти }IyЛю. П u m aння dля ca мoкoн mpoл'o : 1 Щo нaluвaсmься мodeллю? 2 Щo HaluвaemьcЯ мoОeлювaнням? 3 Ha якuх dвox мemodax doслidжeння бaзyemьcя мodeлювaння? 4 Ha якi muпu MФKHaпodiлumu всi мadeлi? 5 llaвedimь пpuклadu пpeОмemнuх мodeлe1, 6 Якi мodeлi вiОнoсяmься do aбсmpaкmнuх? 7 Нaвedimь CхeMy Kпaсuфiкaцii. мodeлeй. 8 Щo maкe iнфopмaцiйнa мodeль? 9 Якe мicцe в пpoцeсi poзв'язувaннязadaчi зaЙмaeiнфopмaфЙнaмoОeль? 10 Пoяcнimь пpuнцunu noбyОoвu iнфopмaцiЙнoi'мoaeлi. 11 |1aвedimьвлaснi пpuклadu пo6yОoвuiнфopмaцiЙнoj, мoОeлi. 12 Як вuзнaчaсmься вiОпoвidнiсmь мodeлi ma docлiОlкvвaHorooб'eкma? t+ fuiгopитми 3. Пoняmmя aлеopumму ПoняmmяaлzoDamмv скiнчeнаnocлidoвнicmь наЗuваe|nьcя Алeopumлtoм яКuх npulвodumьdo docяzнення вuкo||анIrя вксI:,iвoк, меmu. nocfnав]'eнot У дaгleкoмy IХ.мy стoлiтгi жиB тa пpaцIoвaв вiдoмий сеpедIIьoaзiaтcький мyдpeць' вчeний, фiлoсoф, мaTel{aтикМyxaммeд aл.Хopeзмi. У свoix нayкoвиx тpaктaтax вiн детaльнo пoясIIIlв llpaвилa apифмeтинниxдiй. Пpи пеpeклqдiциx IIayкoBиxpoбiт нa ..aлгopитм> (шr-Хopeзмi "икoнaнн" лaтицy впepЦIe з'явився теpмiн Algorithmi) i викopиcтoвyвaвся вilr спepцry дJIя визнaЧeння IIpaвиJI oбчислeньy лесяткoвiй пoзицiйнiй сиcтемi числeння. бiльrш IIIиpoкe.Boнo для C1"laсне пoняття олoвa <<ЕUIгopитм> спoсiб, пpoцrдypц пpoгpaмa. бaгaтьoх спiвзвy.rнезi слoвaми мeтoд, Moжнa скa:}aти'щo aлгopитм - це чiткo сфopмyльoвaнa iнсгpyкЦiя, a iнсщщuii зycтpiчaloтьоя пpaктичI{oy всix сфФax нalшoгo життя. Алгopитм e фyrцaмeнтальIlим пollяттям iнфopмaмки. Haщo. вцi видiляroть тpи oсlloBниx шIaси aJlгopитмiв: o6чиолroвaльнi, iнфopмauiйнi тa кepyoнi. _ oбчиcлювaлrьнi алгopитt*,tи цс тaкi, в хoдi викoнa""" "*n* Iтpoвoдятьсяoбчислення. oбчислювaльнi aлгopитми пpaцюк)ть з числaми aбo з ii нaбopaми- вeкTopaми,мaтpиIIями'Mtlo'(инaми. Iнфopмauiйнi aлгopитми пPaцюють з Beликиl{и oб'€мaми пoшrylryнeoбxiшoТ аJlгop}rn,t lvtoxffa IraвrсTI{ iнфopмaui1. Як гrpшсrr4д aбo сшtдвolьнoiiнфpмauii, щo вiдпoвiдa€ пеBIlим oзнaкaм. 'шlшloвoi вiд залelrстгь opгaнiзaцii дaниx, Ефeктивнiсть рбom IцD(aJгopl,fiI{Ь пpикJraдoмчoгo мox(yгЬ6yги вiлoмi сьoгoднi всiм бaзи дaIIиx. xapaктepнi тим' щo дaнi дo ниx llaдxoдятъ Кеpyroнi aJIгopI{тми вoни кepyють. Pезyльтaтaмиpoботи вiд зoвнilшнix пpoцесiв, якиI,lи циx aJlгopитмiв e виpoблення сBoсчасIIoгoнеoбxiднoгo кepyючoгo с}lгlliшy як pеaкuii нa шIвидкy змiнy вxiднI{x дaниx. Caме тoмy знaЧeння дaниx y xoлi BикoнaнI{я кepyloЧиx aлгopитмiв Illв}lдкo,i aлгopитм пoвинel{ змiнroються, Iloдeкyди нaвiть дoсI,IтЬ пpopearyBaтинa це' тобтo видaти пoтpiбннй сBoечaснo ПpaBиJIьIrO кepyюuий сигнaJIy пoтpiбний мoМrнт чaсy. теopiя a.пгopитмiв. цьoгo .Цo У 30-х poкaх XХ стoлiтгя BиникJIa зBoдилoсЬдo нaбopy елемeнтаpниxкpoкiв: чaсy пorrяТтяaЛГopитмy l5
  • 10. apифМеTичн|lx Д1i4, ПeprBipки piвнoстeй, нepiвнoстей тa iнrциx вiднoпrень Тaкoгo типy. Aле нa пoчaTкy ХХ стoлiтгя oб'rкти, з якиМи oПepyBaЛи :UIгopитми, пoч:UIи yскJIaднюBаTиcЯ, з,ЯBv!ЛacЪ неoбxiднiстЬ викoIЦ/BaTи oпеpaцii HaД BекTopaми' ТaбIШIIIЯМ||, мI{oжинaми тoщo. ПoстaIIИ IIvI.ГaННя щo.цo TpaкTyBaIrня пoняTTя eлементapнoстi кpoкiв, Tлyмaчення oднoзHaЧнoстi irлгopиТМy, виниклa дyМкa, щo нe для Bсякиx мaтeмaтичI{I'fx зaдaч Мo)кHa знaЙтп:шIГopиТМ poзB'язaнIIя зa кiнцевий пpoмiжoк яaсy. Tеopiя aлгоpитмiв дoслiджyс питaIIня пoбyдoви кoнкpетниx алгopитмiнниx мoделeй, кoжнa з якиx мiстить кoнкpетний нaбip eлеменTapниx щoкiв, спoсoбiв BизIIaчeI{I{яtl.tстyпнoгo кpoкy. Зaвдaнням тeopii aлгopитмiв e тaкoж дoслiджeння питaння пpo iсrryвaння чи нe iснрaння ефeктивниx aлгopитмiв poзв'язaння oкpeп,Iиx задaч. Haйбiльlпy цiннiсть пpeдсТaBЛяють модeлi, якi oднoчaснo бyли б i yнiвеpсальн pтмvl, пpoстими. i Бypxливий poзBитoк oбчислtoвальнoТ тexнiки' викopистaння iJ в дooлiдженнях бaгaтьox нayк пpивiв дo стBopеIrIIя великoi кiлькoстi piзнoмaнiтниx aJlгopитМiв в piзниx пpиклaдIlиx гEшIyзяx. 3poзщliлo, щo Bсякoмy :UlгopиТМy вiдпoвiдaе зaдaчa, якy вiн призI{aчeний poзв'язyвaTvI' aлe pai}ol,l тиl,IМoже iснрaти }Iе oдин 3 aIIгopиTМ' щo poзв'язyе дaIIy зaдaчy. Taкi :rлгopитMи нtLзиBaIoTЬся еквiвaлентнИNIИ, |, зpoзyпliлo, пoстaс ПиTaння BиBчеIIня eфективно. стi циx алгopитмiв. .{oслiдники циx питaнЬ сTBopиJIи нoвий poздiл теopii а.пгopитмiв - теоpiro сюlaднoстi алгopитмiв. Cклa.цнiсть aJIгopиTМy - це кiлькiснa xapaкTеpистикa. Boнa визнaчaeтЬсЯ чaсoМ' Зa яктllЙ BикoнyстЬся ztJIГopиTМ (.raсoвa склaднiсть), Ta oб'сМoМ пaм'ятi кoМп'lотеpa, нeoбxiднoгo для йoгo BикoI{aння (rмкiснa склaднiсть). Toмy пpo склa.цнiсть .lлГopиТМy лoгiчнo Beсти МOBy сToсoBI{o сaMе МaшIинниx алгopитмiнниx мo.целeй. oскiльки пoдoлaнHя oбмежень нa пaм'ять кoMп'IоTеpa _ теxцiчнa пpoблемa, щo виpiruyстЬсЯ нa piвнi йoгo BдoскoHzllIе}Iня мaйже шo пiвpoкy' To чaсoBa склaднiсть zulгopитМy' якa в бiльш-riй мipi зaлежить вi.ц oбpaнoi aлгopитмi.rнoi мoделi, МеToдy pеaлiзaцii зaдaчi _ TBopчa' еBpисTиЧнa пpoблeмa. Ha пpaктицi кopистрaчiв бiльrшецiкaвлять не сaмi UIгopиTМи' a зaдaчi, якi мoжнa poзв,яз1rвaтизa iх дoПoМoгoЮ. A oскiльки .цля poзB'язyвaння зaдa.ri iснyroть piзнi aлгopиTMи' ToМy ПpиpoДI{oсrpr.ц всiх визнaчитИ тoЙ, якиЙ мaе нaйменtuy склa'цнiсть. Сaме тaкi пиTaHI{яB Мe)кax дalloГo пoсiбникa бyдyгь Цiкaвити нaс нaйбiльцrе: о знaйoмствo iз зaсoбaМи стBopе}IIlя алгopитмiв; lo о знaйoмстBoз ЕUIгopиTмaМИ poзB'язyBaння типoBиx зaдaч; NIЯ . пopiBнянHяzulгopитмiв,щo poзв'язyють oднaкoвi зaдaчi. Irouклаdu аllzoDu mlиiв Як зaзнaчaлoся вище' BиникнeIIня IIoIIяТTяа-lгopитмiв пoB'язaне з МaтеMaTикoю. I сaме y tпкiльнoмy крсi MaтеМaтики Bи чaстo зyстpiналися з iUIгopиTмaми. Ha ypoкax з apифметиКуI в,Ив.ЧarwrcЯ €rлгopитМи ПoкpoкoBoгo .цoдaBaння' МнoжeIIня, дiленHя, дoбрaння кBa.цpaТнoгo кopеня' пiзнitше нa ypoкax з МaтеМaTики Baс ЗнaйoмиЛи з пpaвиЛaМи пoбyдoви бiсектpиси кyгa, дiлення вiдpiзкa нaвпiл тa нa зaдaнy кiлькiсть piвниx чaсти}l зa ДoпoМoгoю oлiвця, циpкyЛя тa лiнiйки. Hе oбiйшлoся бeз пpaBил тa зaкoнiв y тaкиx нayкax' як фiзикa тa xiмiя. Haпpиклaд, вaм вiдoмi aлгopит},lи пpoBедеIrня фiзинниx тa xiмiчниx rкспеpиМентiв, дoслiдxсeння piзниx яBищ. Ha ypoкaх з ryмaнiтapниx пpeдмeтiв Bи Bивчaли безлiч piзних пpaBиЛ пpaBoIIисy. З aлгopитмa|{И BLI зyстpiнaстеся i У Пoвсякденнoмy життi. Haпpиклaд, y poзпopядкy poбoнoгo дня уItIя День вi.ц дHя Maлo чим пoснiдaти, вiдpiзняеться: пpoки}ryТися вpaнцi, BMитися, B.цяг}ryТися, пiти .цo пIкoли' вiдвiдaти ypoки' Пoвеpllyгися .цoдoМy' Пooбiдaти' зpoбити дoМalшIlс зaBдaння, вiдпoчити дo Bечopa' пoвечеpяти, лягти спaти. I тaк щoдня. B тexнiцi лoбpе вiдoмi €rлгopитMи oбpoбки детaлей, в пoбщi _ скJIaдaI{нямeблiв, кopисTyBalrня rлектpиЧIrими пpилaдaми тoщo. oтже, мiшIo Toгo' щo Ми )киBемo y сyЦiльнoмy iнфopмauiйнoмy пpoстopi, Ta ще Й виявлясться нaBкoлo нaс бaгaтo aлгopитмiв, якi yсе )киTTЯнaМ .цoBoдиться викoнрaти ! Bлаcmaвocmi алzopumмv Bизнaчивпrи oснoвнr пoняTтя aJlгopитМy' Мo)I(нa зpoбити Bиснoвoк' щo бyдЬ-який aлгopитм с послiдoвнiстю.цеякиx вкaзiвoк. aлгopитмoМ. Aле не кoжнa тaкa пoслiдoвнiсть мoже l{ztзивaтися oтrке, сфopмyлюсмo oснoвнi влaстивoстi aлгopиТМy. .' ,[uскpеmнiсmь - буdь-якuй алzopumм зoбpаэюусmьcя у .i.l f-.lJ вueляdi oКpеЛtuхвказiвoк, Bиконaння кoМaнд € r ЛгopиTМy ПoBиlltlo бщи пoслiдoBниМ' З ТoЧнoЮ фiксaцiсro мoментiв зaBrpшIенHяBикoHaння oднiсi кoмaнДи i ПoчaTкy Bикoнaння нaстyпнoi. ,,. Завеp|uу€ m ься LкlIIчeннrcmь- вuКoнсlннясlлZopum"4у ,l lr:J niсltя завеpuleння кiнцeвoi.кiлькaсmi кpoкiв. t7
  • 11. I B мaтeмaтицi iснyють oбчислroвaгrьнi пpoцед)pи' якi мaють aлгopитмi.rний xapaктеp' aJIe нl вoлoдirgгь в.пacгиBiсTlo скiнчelпrocгi. Пpшсгrадoм тaкoi rrpoцедри мoже бyпr oб.п,Iслеlпrя зIIaЧенIUtЧисJIa ?Е. Tшсa щoueдрa oIIисyс нeскirrчеr*пшi пpoцеc i нiкorпа нe зaве'pпItlтъся. . Алe лшIo oбмеxgrшся пrвнolo кilъкiстlо знaкiв пiсля кoми, тo мtl oтpимa€'Мo aIlгopитx,roбчислення ЧvIс.:laтt зaдalloю тoчнiстlo. 3 кpoк алеopumлlу noвuнeн6уmu Buзначeнicmь- кoэtcнuй donуcкаmu не чimкo i неdвoзначнo вuзнаveнuй, noвu||еt| вuкoнавцeJil. zo doвiльнo mpакmува||ня poзpaxoBal{ий нa мexaнiчнe викoнaння. Якщo Toбто :l"Jlгopl,tтп.l oдин i тoЙ caмуlil aJlгopитl,l дopyчIтги дJIя викoнaння piзним Bикo}IaBцям' тo вollll пoвиннi дiйти oднoгo i тoгo )к peзyльтaтy. Зpoзумiлicmь _ фopмулюванняdiй алzopumму noвuItt|o нсt'кoнкpemнoeo вuкot|сlвця. буmu opiенmoване людиIIoю B питal{Ilяx'щo Якщo BикoнaBецьс IIекoМпrTrнтнoю виpiIпyютьсядaним aJlгopитмoМ,тo неoбxiднo вибpaти дoстщнilшy NIя йoгo фopмyлIoвaння фopмy, якoIо е слoвeсний спoсiб. Haпpиклaд,якщo aлгopитм пеpедбaчaсoбчислeннякopeнiB дeякoгo кBaдpaтIloгo piвняння, тO для у{tIя пoчaткoвиx клaсiв нeoбxiднo сaмиМ дrтz}JIьIIим чиlloМ oписaTи всi викoщвaнi дiТ нa piвнi, uр вi.цпoвi.цaс йoгo знaнняМ мaTeмaтики: дoдaвaння, вiднiмarнi, мIIoжeння' дiлення, дoбрaння квaдpaтнoгo кopelrя зa дolloМoгolo кaJlЬкyлятopaтoщo. .(ля уtня сTapIIIиxклaсiв ueй aлгopитм бyДe мiстити мaтeп4aTичнy фopмyлy для o6числeннякopенiв piвнянrш тa aнaлiз ix iснрaння тa вiдсрнoстi. Якщo ж викoHaнIIяaJIгopиTмyбу.Цeзaпpoпoнoвal{oкoмп'Ioтеpy, тo aлгDpиTм пoщiбнo зoбpaзити нaсaмкiнець вiдпoвiднoto МaIIIин}Ioю мoвolo. A Mасoвicmь - в al.aopumмiпoвuннабуmu nеpedбаveна йozo dляpiзнuх noчаmкoв|tх мoacлuвicmьвut<oнання ЗI|ачень. I{им сaмим зaбeзпенyсться йoгo BикopистaннЯ ДIIя poзв'язy. вaння цiлoгo клaсy oднoтиIIIIиx зaдaч. .A P eзульmаmuвнi c mь - сUlzopumм noвu||е||заб езnенуваmu oбoв, язкoве omplшtан|IяpеЗульmаmу nicля кiнцeвoi. кiлькoсmi кpoкiв. l8 Тoбтo кo)кTIa дiя пoвиннa 6уи дoстaтньo пpoстoю' щoб ii Мo)кнa бyлo викoнaти ToЧнo i зa скiнчeний пpoмilкoк нaсy. Як бaчимo, для Toгo' шoб нaбip iнстpyкцiй мoж}Ia бyлo нaзвaти aJlгopиТмqМ, вiн пoвинeн вiдпoвiдaти pядy yi,IoB. B uкo н ав е t4ь аllzo Da mмv Bизнaчення пoняТTя викoнaBця с дoсить нeo.цнoзнaчним. B ДeЯКI|х Bипaдкaх Bикo}IaBцeм a.пгopитмiв r людинa. Haпpиклaд, якщo Мoвa йде пpо ПpaBуIIIa'iнотpyкцii, фyнкuioнaльнi тa пoсaдoвi oбoB'язки Toщo. Aлe людинa - Дaлrкo не сдиний вйкoнaвець а.гlгopитпtiв. Poбoти-манiпyлятopи Ta BepстaTи з пpoгpaMниМ yпpaвлiнням )KvIBa клiтинa i нaвiть TBapини B циpкy BикoI{yIоTь ' piзнoмaнiтнi алгopитми' B тoмy числi i тi шlгopитми, якi лrодинa нe в змoзi BикoI{aTи. Уявимo poбory BикoнaBця' як пpистpoю кepyBaнIrя. Biн <9oзyмiс>>, тoбт.o вмiс викoнрaти, псlслiдoвнiсть вкaзiвoк (aлгopитми) i оpгaнiзyс ix вltкoнaннЯ' ПpLl цЬoмy кepyloчи вiдпoвiдними iнсщylvlе}ITaМи.A iнсгpyм*rп,r BиКoЕIyIотЬ peалiзyrоЦ{ щи IIЬoMy кoМaIцц,I лii керyЮЧoгo пpисТpoю. Якщo лпод,птypoзгля.цarи як BикoHaвця, To Mo)кнa IТpoBеститaкy aналoгilo: Мoзoк - пpистpй кеpyBaння' pylg,I'нoги' oчi, нiс i т. i. - iнстpyменти. У poбoтiв-мaнiпyлятopiв' веpстaтiв з пpoгpaм}rим yIIpaBJIiнням, кoмп'ютеpiB пpисTpoсм Кеpyвaн}Iя с пpoцесop, a нaбip iнсщyмeнтiв зaJIrжиTь вiд тoгo, для poзв'язaння якиx зaдaч пpиз}raЧеIlиЙ тoiц чи iнtпий BикoHaBrцЬ. Baжливo зpoзyмiти oснoвнi )(apaкTеpисTики викoнaBця irлгopи. ТМy: сrpедoBиЩе' B якoМy пoBиI{ен BикoнyBaтися iUIгopиTм;елeМеIl. тapнi дii, викoнaнн'l ясlоt пoтpeбyс aJlгopl.ffм; систeмa кoМa}rдаJIгopIТtIиy; вiдиoви, ясi мoщrгь вщ6увaтucя пi.ц чaс BикoHaння aлгopиTМy. Cepeдoвищr Bикoнaння urлгopиТМУ Для BикoнaBцЯ.JIю.цини зaлrжитЬ вiд пpизнauення тa МeTи дaнoгo aлгoритIvly.Moжнa гoвopI,lTиПpo yсТal{oBy,як сepедoBище, де неoбxiднo BикoнyBaTи вiдпoвiлнi фщкuiонaльнi тa пoсaдoвi oбoв'язки; мiсце вi.цпoчинкy, дe тpебa дoтpиМyвaTисЬ пpaвил пoве.ц.iнки дopoзi, нa вoДi, y мiсцяx нa ЗaгaJIЬHoгoкopистyвa}rня; tllкoлa, де рнi пoвиннi .цoтpиМyBaтись ПpaBил пoведiнки llа уpoui. пеpepвi, BикoнyBaTи дoмarпнi зaBдaHняз piзниx пpедметiв тoщo' .(ля BикoнaBця-кoмп'ютepa сrpедoBиlltеМ Bикoнaння aцгopитInlyе вiдпoвiдне Пpoгpaмне зaбезпечeння. Якtцo кopисTyBaЧ нaбиpaс TексT, тoбто викoнyс IIеBI{y пoслiдoвнiсть вкaзiвoк Щoдo пiДгoтoBки тексTy' Тo BикoнaBЦеМ ЦЬoгo aлгopиTМy € текстoвllй pедaкТop. Якщo кopисТyвaч скJIa.цa€ пpoгpaМу, To BикоI{aBЦОМaлгоpитмiв нaбиpaння TексТу пpoгpaМи, HzUIaГoДжеI{llЯ l9
  • 12. i I iT, зaпyскy нa Bикoнaння 6уle сеpедoвище IlpoГpaМyвaнIlя, щo вiДпoвiДaс oбpaнiй мoвi пpoгpaМyBaння. Кoжний BикoнaBeцЬ мo}ке BикoнyBaTи кoМalr ДИ ЛИ|lIеiз деякoгo сЦ)oгo зaдalroГo спискy - системи кoмaн.ц BикoI{aBця.Haпpиюraд, Пpи.пpиГoTyBaнiri кoxснoi стpaви визнaчerIиil спoсiб пiдгoтoвки тa зaсToсyBaння oкpемиx кoмпoнeнтiB, щo BxoдяTЬ дo pецeПTypи: нapiзaння, сМaжrння, oxoлo.цжеI{ня,змiruрaннЯ Тolцo. Пpи викoнaннi дoмaшнix зaвдaнь для yI{IUIBIвнaченi тaкi кoМaндц,I:Ч}fI:lI.IIlя' зaпaм'ягoврaння, пoBTopеIlI{я' заIIис .цoмauтнix зaвдaнЬ y зoшIит' Bикol{iurrrl зaBд€lнь нa кoшrп'toгеpi i т.i. tlrш pеaпiзauiТ шпoprrпиЬ деякolo МoBoю ПpoГpalvlyBaЮIЯ неoбxiдro зHaТиlrpaBиЛaЗaII]4cУ алгopитмiв цiсю MoBoIо пpoгpaмyBaння тa визнaченi в нiй oпеpaтopи. У свoto чеpry BикJIик кoМaнди сПolryкa€ BикoIIaBця зДIilcнитуl вiдпoвiднy елеМeнTapнУ дiю. Haпpиклaд, з нaBедeнoгo пpиклaдy ПpигoтyBaнHя стpaBи дЛя BикoHa}I}IякoМaн.ци нapiзaння неoбxiднo Bикoнaти тaкi елементapнi дii: IIpиГoTyBal.и дolПкy для нapiзaння, взяти нirк, пpo.цyкTи' щo нapiзyroться' тoщo. Пpи зaписoвi 1nrнем дoмaIIIнЬoгo зaBдa}Iня неoбxiднo Bзяти зoIшит, pyчкy' пpoчиTaТи зaBдaння' ЗarШlcаrTИ вiдпoвiдi y зoIIIиT. Пpи викoнaнi нa кoмп'roтеpi кoМaнди дo.цaBaннЯ ЗнaченЬ дBox BrлиЧиH спoчaTкy BизHaчatoТьсЯ aдpеси poзмiщення Циx BrЛиЧин y ПaМ'ятi кoмп'ютеpa, BvIЧИтуIoTься цi знaчення, сyмyloтЬся' BизI{aЧaсТься a.цprсa poзмiщeння y пaм'ятi prзyЛЬTaTy BикoнaнI{я кoМa!t.ци Ta зaписy€Tься зa цiсro aдprсoю oтpимaний pеЗyЛЬТaТ' !ля кolкноТ кoМaнди пoвиннi Тaкoж 6уи зaдaнi yМoBи зaсToсyвalrня, тoбтo чiтко BизIIaчeнo, B якиx сТaHaх сepе.цoBиЩaМoжe бщи викoнaнa кoМaндa, i oписaнi pезyЛЬTaTиBикo}Iaння l(oМaнди. Haпpиклaд, пpurлЬнa МaIIIинкa-aBToМaт бyдe пpaцюBaти ЛиlIIе зa нaявнoстi BoдoпoсTaчaння. Зa йoгo вiдсщнoстi pежим Пpallня I{е рiмкнеться ' HaЙвищий бaл рнro бy.Це вистaвлеIlo ЛиIlIе Зa y,IoBи TBoрЧoгo пiдxo.цy Дo Bикoнaння ним сфopмyЛЬoBaнoгo зaвдaнHя. Cлiд зaзнaчиТи' Щo Пpи Bикol{aннi комaнд МoжyгЬ BИIIИI<aТИ вiдмoви iх викoнaннЯ BикoнaBцем. I{i вiДмови BиHикaIoТь пi,1 чaс викЛикy кoМaн.ци B неПpипyсТиМoМу для дaнoi комaнди стaнi сеprдoBищa. Cитyauii, Пpи якиx Bиникaс вi.цмoвa, piзнi для piзних кoМal{д BикoI{aBцЯ. Haпpиклaд, пpи oбчисЛеннi знaченнЯ дpoбy Мo)I(лиBr дiлення нa нyЛЬ. Aле iснyють кoМaIIДи, пpи викoнaннi якиx вiдмoви нiкoли Ilе BиникaIoть. Haпpиклaд, oбнисленнЯ кoМ. П'[oТеpoМaбo кaлькyляTopoМ BИpaЗУ<<2+2>> зaBж.ци€ кopекТ[lиМ' 20 polу.мlсmьcя mсIKe сLryZopumlv'у Пid фop.мальIruJv|вuKoнсlt7t7'Ilу| вuкotrавець не зiас нi nocmанoвкu заdачi, йozo вuкoнаt|нЯ, кoлu cсl.fut нi змiсmу odepэюанuх pезульmаmiв, сulе, uimкo вuкoнуtouu усi dii|, do заnucанi в сIЛеopum.lИi, cяzас нeoбхidнo zo peЗульm аmу. Я Haйчaстiшrе zrЛгopиTМи Bикot{yIoTьс caМe фopмальним чинoм. Фopмaльними BикoFIaBцяМи с кopистрa.ri piзнoмaнiтних пoбровиx елeктpичIrиx пpилaдiв' yчaсники спopTиBI{иx iгop, якi .цoтpиМy. ються пpaBил циx iгop, yчнi - пpи Bикopистaннi y свoix TBopЧиx poбoтax }toBниx пpaвил, пpи Bикoнaннi зaвдaнь з МaтeмaTики тa фiзики, BикopисToByючи вiдoмi фopмyли, зaкoIIи тa Метoди poзв'язaння piзних типiв зaдau. Пpoдoвжyючи цIo ,Цyшtкy, слiд BBa)I(aтикoмп'tотеp Taкo)к фopмaльним BикoнaBцем aлгopитмiв пpи Bикol{aннi IIим пpoгpaм. Aдя<е нa сьoГoдtliIшнiй день бiльlrriсть алгopитмiв рoзpaxoBaнa саме нa BикoнaннЯ кoМП'IoTеpoм. АDzvмeнmш mа Deзvльmаmu шlzoDutплtv неoбxi.цнo ЗaдaBaТи пo.Цля викoнaння багaтьox 'rлГopиTМiв чaткoвi знaЧeнI{я. Цi знaчен}Iя ПеpедaютЬся B :UIгopитм зa дoпoМoгoю apгрlентiв. Аpzулlенmu _ це велuчuнu, Значeння якuх неoбхidнo заdamu dля вuкoнaння аЛZopumл4у. Пpaвдa, .цекoли зyстpi.raються zUIгopиTМИ, Щo tlе BимaгaloтЬ нiякиx пoЧaТкoBиx знaчень .цля сBoгo Bикoнaння. Пiзнiruе бyле I{aгoдa пoзнaйoмитися з тaкиMи ztЛгopитМaми' oднaк l{еМar )кoд}Ioгo ,t]Iгopитмy' Ц{o tIе дaе нiякoгo pезyлЬTaтy. .{iйснo, який xte piзнoмaнiтнoстi сMисJI y TaкoМy aлгopитмoвi? Пpиклaдoм pезyльтaтiв poбoти ПpoГpaМ с iгpoвi кoмп'loтepнi прoгpaми. oдеpжyвaнa ними пiд uaс poбoти зaкoдoBaнa iнфopмaцiя ПеBниМ пеpетBopюеTЬсяy гpaфivнi тa звщoвi oбpaзи. чиHoIt{ Peзульmаmu _ це веЛuчullu, ЗнсlчеIrняякuх odepucу...t. алzopu|||Jv|у. юmьcя внаcлidoк в11кol7а|7ня ':..iJ алгopитмiв Bиникae неoбxi.цнiсть Пpи склa.цаннi бaгaтьox oкpiм apгyпleнтiв тa pезyльтaтiв BикopистoByBaTи ще ,цo,цaткoвi Bве.цення B iшIгopитМ Taкиx BеЛичиH з€lJIе}китЬ Blд сaМoГo B1ЛL{ЧуIHИ, aBTopa aлгopитМy. _ якi Пpoмiэюнi велuч||нu це веItuчuнu, dodаmкoвo ввodяmьcя в хodi poзpoбкu алzopumму. Ми вже дoсTaтньo Haoчнo yяBили сoбi aлгopитм' Aле як жe вiн Bиглядaс з тoчки Зopy звиЧaйнoгo кopистyBaЧa? Чaстiцre зa Bсе кopистyBaЧ не Знa€ ' якиМ чи}Ioм цей aлгopиTМ зaпиcaниil, зa ,A 2l
  • 13. дoIloМoгoю якиХ кoМaнд' якi МеToди були зaстoсoвaнi Для йогo peaлiзaЦii, якoto мoвol0 пpoГpaМyвaння. Звичaйнo' щo IlIвидшIe зa Bсе B дal{oмy Bипaдкy Ma€ться на рaзi Bикoнallня zl"JIгoриTMyIia кoмп'ютepi y виглядi гoтoвoТ прoгpaми. Bикoнaвець aJlГopитI,ry бaчить лишe йoгo зoвнirшнro стopoнy: .якi пoчaтковi дaнi неoбxiднo ЗaДaTI4i y якoмy виглядi oдep)кyсТЬсЯ peЗУЛЬTaT.Кожний з вaс, IIaIIеBнo' Мo)l(е llpигaдaти нoМеp фoкyсникa, кoли тoil у чoр}ly скpи}lЬкy зaKлaдa€ oднi пpeдмeTkI, a BИTЯГaезoвсiм iншi. Biд зopy глядaнiв пpиxoвaний вмiот цiсi uopнoi скpи}IЬки i зaлицraеться тaeМI{ицeю' якиM чиI{oIv{,в нiй вiдб1ъaеться (tlеpeTBopeння> пpeдмeтiв. Сaмe тaкoю (<чopl{oloскpиI{ькolo>> для кopисTyвaчa е i пpoгpaМq якoro вiн кopиcтy€ т ься нa кoмп'rотepi. (e мoжнa зo6paзити тaкиМ чиI{oМ: i Пumaння dля caмoкoнmpoлк,: 1 Щo мu Haluвarvo aлеopum^noм? вuнuк mepмiн <oЛZОpUITlM>? Як 2 Haвedimь влacнuЙ пpuклad aлzopumlЙу. 3 Haзвimь ocнoвнi влaсmuвocmi aлeopumмiв. 4 Щo oынaчae nducкpemнicmь aл?opumмy"? Haвedimь npuклad. 5 Щo ozнaчar ncкiнчeннicmьaлeopumvу"? НaвeОimь пpuклaО. 6 Щo olHaчae nвugнaчeнicmьaлеopum^ry"?HaвeОimь пpuклad. 7 Щo ogHaчaс oзpoтуfutiлicmь aлеopumMy,? Нaвedimь npuклaО. 8 Щo ogнaчaс oмaсoвiсmь aл^opumMуD? Нaвedimь пpuклad. 9 Щo oЗHaчae <peтулЬmamuвнicmь aлeopumMy>?Нaвedimь пpuклaО. 10 Щo нaзuвarmьcя сepedoвuщe^n вlJКoHaHня aлeopumмy? 11 lJ]o нaзuвaеmься сucmeMoю кoмaнd вuкoнaвця? 12 Haвedimь пpuклaОucucmeM кoмaнd вuКoHaвця. 13 Ц]o нaзuвaюmь вidмoвaмu вuкoнaвц'], щo MФKуmь mpaпnяmuся пid чac вuKoнar!нянuм aлеopumму? 14 щo poзумiсmьcя пid фopмaльнuv вuкoHaнням aлeopumму? 15 Щo Mu нaЗuвarMo apeyмeHmaмu aлeopumму? 16 lJ]o poзумiemьcя пid peЗульmamaмu aлеopumму? 17 Кoлu вuнuКaeнeoбхiОнiсmьввedeння пpoмiжнuх daнuх? 4. Cпocodu тaIlucу aлеopumлriв .Гепеp Mи пoзнaйoN|plЛvIcЯ ПoняTTяМ aлГopитМy. з нaм нeoб. xiднo дoмoвИ.f'IcЯ,Яким чинoМ ми бyдемо йoго зaписyвaти. Iснyс uoтиpи спoсоби зaTIИсУaлгopитмiв, вибip якиx Зzuleжl,tтЬ вiд тoгo, xтo йoгo скJIaдa€ aбo нa кoгo вiн opiснтoваний: . сJIoBесHийспoсiб ЗaГIИcУ aлгоpитмiв; . зaпис aлгopитмiв за ДoПoМoГoloсхrM; 22 О oIIисyBaнIIя aлгopитмlв мoBolo псевдoкoдlB; . зaIIисaлгopитмiв мoвoю пpoГpaмyBallня. .. opiснmoванuйна CлoвеcнuЙcnoс'iбЗсltlucуалzopumл,tiв ,/fl (дд люduну.вuкoнавцяi'. сoбi iнший спoсiб зaписy. I{e Мaбyгь, пoки щo BzuккoуЯBk|TtI zUIгopиTМy. Cлoнaйбiльrп IIpoсTai дoстyпнa фopмa llpeдстaвJreння вeсIra фopмa зaзвичaЙBикopистoByстЬсядля tlJlгopитмiв, opiентoBaниx нa викoIIaBця_ людинy i ueй спoсiб е нaйбiльцr ,цoстyпI{иМ вiд бyль-кoмy нeзaJIежIIo йoгo спeцiaльltoiпiдгoтoвки. Пoвepтaю.Iисьдo icтopii тpaнофopмaцiiпoнятгя aлгopитм,слiд 3aзнaчити, щo щe дo 1950 poкy пiд циМ слoвoМ чaстilllе зa все Евклiдa a.лгopитMЕвклiдa poзylliiли виклaдeний в <Елeмeнтaю> нaйбiльцloгo спiльнoгo дiльникa (HC.Ц) двox пpoцeс знaxoд)t(е}Iня нaтypaJlЬниxчисeл. Toмy бyдe I(opиснoнaвeсти для пpикJlaдyoIIис цьoгo aJlгopитмy. о Bзяти двa HaтypaлЬIltlxЧIlcЛa'Якщo вoни piвнi, тo 'пepшIe з IIиx i e нaйбiльцrим спiльним дiльникoм' якщo ж нi, тo пеpeйти дo rщ1кry 2. о Пopiвняти.цвaчислa iвпбpaтvl бiльrueз них. о Бiльпre з дBox чисел зaмiнити piзниЦeю бiльlшoгoi мeнпrЬгo. о Пepeйтидoпyнкry 1. якl 3вepнiть УвaЦ, щo y пrpпIoмy пyнктi кoнкpeтHo скa:}aнo, чисeЛ. числo нeoбxiднo вvr6paтпy Bипaдкy спiвпa.цaння оaмe дBox якoгo мo)кe Caмe цe i с xapaктepнolopисolo aJlгopитмy,BикoIIaBцеtvt бyш нaвiть пe пiдгoтoвлeнaв дaнiй гaлyзi лIoди}Ia. зaстoсyсмoдo кoнкpетнoi пapи чис€Л. Haвeдений aJIгopитI,r Hехaй зaдaнi двa Числa:45 тa 12. ГIpoдeмoнстpyсмo пpoцeс знaxoдjкeння HC.( зa нaвeдениМ aJlгopитмoмy виглядi TaбЛI4Ч|<pI, нa кoх(IroМy кpoui бiльшe дe ч}lслo' вiд якoгo вiднiмaeтьcя дpyге (мeншe) Числo, B|IДiЛЯTk|. МeМo'iмpIIимrшpифтoм. r) 4s 12 2) 33 12 з) 2l L2 4) 912 5)9 з 6)6 3 1)з з peзyлЬтaт: HC.{(45'12)=3. oтжe, зa сiм кpoкiв ми oдep)I(aJrи Пеpевipкa poбoти aJlгopитМy€ сyггсвим кpoкoм Ha Ixляxy дO нaвeдеHaдалi олiд Дoмoвl,I.п,Iся' кoxспдl aJlгopитl,t' йoгo poзylrliI+rя. щo
  • 14. rпдi в пoсiбникy,ПoBиненбyпa poзiбparпй Пo кpoкax. Ifе нaйпpостiaJlгopиТМy. rшийi нaйефективнirrrий спoсiб poзyмiння бy,Ць.якoго . Cхelwu doзвoляюmь зo1pазumu алlopum^4 в наoчнiй zpафiaнiй фoplvli. I{eй спoсiб B)ке BиMaгaс .цeЯких знaнь. Boни пoлягaloть y знaйoмствi зi спецiальними сTaIIдapTaМи гpaфivниx зобpaжeнь блокiв, B сеpедиrry якиx пoмiщaюTЬсЯ кoМaIIди аJIгoриTМy. Haвeдемo тaблицю деякиx з циx блoкiв. Tаблuця I Пoчaтoк тa кiнець zrлгopиTмy Bведення або вивeденНЯДaHИх I I l Bибip нaпpяМкyBикoнaннЯilJlгopиTМy B yМoви зaлежнoстi викoнaння вiд Bиконaнняoпеpaцiй.в pезyльтaтi якиx вiдбyвaстьсязмiнa знaчен}Iя ДaНvIz* Пpи ствopеннi сxеми .UIгopиTМy блоки iз.зaлиcaниMи B ниx кoМaндaми з'€ д нyIoTься мiж сoбoro стpiлкaми, якi визнaчaroть vepговiсть викoнaнIIя дiй aпгopитмy. зaписy кoМaнд всеpединi блoкiв BикopисToByсTЬсяПpиpo'(ля МoBа з еJIеMегITaМиMaтеMaтичнoi симвoлiки. B pезyльтaтi .цнa пеpевipки yN{oBи пi.ц чaс вибopy нaПpяMкy викoнaння aJrгopиTМy BиникaIoTЬ .цBa Мo)кJIиBi rпляxи для йoгo ПpoдoB)кeння. I{i шляxи (+) тa <нi> (_). зoбparкyються стpiлкaми з ПoзнaчrннЯМи <тaк>> Пеpеxiд пo стpiлцi З ПoзнaчrнняМ <<Taк>) вiдбрaеться y BиПaдкy' кoли yмoBa BикoнyстЬся,a пеpеxiд по стpiлui з Пoзtlачeнням<нio - y ПpoТиле)кнoМyBиПa.цкy. Блoки ПoЧaTкy i кiнця aЛГopиTМy BикopистoByЮться Пpи зaписoвi пoBнoгo aJIгopиTМyзaдaчi. Mи ж нa.цaлi BBa)кaТиМеМo, щo [шгoриTМи, якi poзглядaюTЬся в пoсiбникy як бaзoвi, мoжщь бщи сaмi викopистaнi в iнurиx € t JlгopитМax як iх фpaгмeнти. Toмy блoки ПoчaTкy i кiнця aЛГopиTМy B Тaкиx BиПaДкax }raМи викopисToByBaTись }Iе 6улуь. !ля зaпиcу aлгopитмiв, з якиМи ми МaтиMеМo спpaBy, дaнoi iнфopмaцii цiлкoм дoстaтнЬo. Зoбpaзимo y визнaЧrниx пoзнaчеI{няx€u IгoDитМ Евклiлa. .А Погoдьтеся' щo нaoчнiсть сxeмaтичнoгo IIpедстaBлeIIн,I ilлгopиTмy (мaл.2) мaе свoi пеpевaги! oднaк нiсть цЯ HaoЧ. IIIвидкo вTpaчa- сTЬся' кoли зoбpaжy. €Tься вeликий aлгopитм. B тaкиx випaд. кax B схeМi aлгopитмy видiляroться i вiдoкpeмлIoIoTЬся oкpемi Ii Чacfl4l.IИ - мoдyлi, oснoвIIoю ylroвoю якиx € oдин вxiд i oдин виxiд. Згoдoм BoI{и BкJIIoчaIoться y сxеМy :rЛгopитмy як oкpeмi блoки. Taкий пцxiд дo сЮla|vlaл.2 дaння aлгopитмy вiдоopa)кaс ЦеIo стpyктyplroгo пpoгpaм)iBaння' IIpo яке ще tIе oдиH pa:} бyле лалi йти мoвa. ,ля заnucу аltzopumмiв зa donoмozoю мoвu nсeвdoкodiв вuкopucmoвуюrnьcя cлуэю6oвi cлoва mа cnецiальнi npавtulа Заnucу oкpемuх diй. У мoвi псeвдoкoдiв пpийнятi пeвнi синтaксичнi ПpaBилa дЛя зarШIcу кoмaнд, щo пoлегIIIyr зaпис aлгoритмy нa стaдii йoгo пpoект}rвalrня i дaе мoxсливiстъ Bикopистaння бiльпl пIl4poкoгo нaбopy кoмaнд, poзpаxoвalloгo I{a абстpaктнoгo BикoнaBця. Haпpиклaд, y мoвi псевдoкoдiв BикopистoByютЬся спeцiальнi слylкбoвi слoBa Ta пpaBилa зaписy цтя вvlбopу lraпpямкy пoдtUIЬIIIoгo викoнaН}UI aлгopиTму B зulJlе)кнoсТi вi.ц викoнaння Чи неBикoнaння сфopмyльoвaнoi yмoви якщo.. :To...IIIAкIII Е' пoBтopенн Я B}IзIIaченoi paзiв кiлькiсть гpyпи tloки...ПoЧA. ДLit пеBнy TOк...кIIIЕЦЬ тoщo. Paзoм З тиМ МoBa ПсeBдoкoдiв дoзBoля€ BикopистoвyBaТи дeщo дoвiльнy фop*y Пpr.цстaBленIIя МaTeмaтиll. ниx зaписiв' ).мoB тoщo. PoзгЛяIIrмo як пpикJIaД zrЛГopиTмЕвклiдa: AЛгOPиTМ нaйбiльruий_спiльний-цiльник ПoЧAToк BBЕДЕIIIIя <Зaдaйте дBa }IaTyp€rЛЬних числa>' n'm 25
  • 15. пoI(И n*m IIoЧAToк | ЯКIIto n>m I .lI To n:=n-m | I .BсЕ l IIIAкIIIЕ m:=m-n | кIIIЕЦЬ BиBЕдЕHIIя кIнЕцЬ tlисeп: ))' n <d{aйбilьцпffi спilьtшd дiiъlшц< зqДaIпD( I{eй жe aJlгoprrтм }to)кнa ЗaпI,lсflти i тaким чиlloм: AЛгOPI{TM пoruyкy-нaйбiльuroгo-спiльнoгo-дiлЬtll{ка пoЧAтoк BBЕдЕIIIIя дBox нaт}PaJrьI{иx чисеJI тa m n IIOI(и n нe дopiвнюе m IIoЧAToк зa якщo n бiльше m l тo n€ n . m l rндкшЕmem.n BсЕ кIIIЕЦь ..l l'**} IIайбiльшt вucaкuйnpoфeciйнuй piвень dля заnucу алt сl umла в вuЗнсlча сm ьcя Зн аI|tlя.fu| в np o2pаJуIу tlt|t|я. p i n,|o в }tа пpактиt1i чaстiше зa все BикoнaBцями aлгopитмiв с КсrМIr'ЮTrpI{. Toмy iUIгopиTМи' пpизнa.reнi для BикоIIанIIя нa lсомп'tотеpax, гlовt,ttllti бyти зaписaнi мoвaми, зpoзрliлими iм. Llaдzuri пци гtознaйоМиМoся з I,IoжлиBoстями МoBи пpoгpal,ly. ванttя [.Iаска.ПЬ, ToМy рoЗгля}IеМoзaпис ajlгopитмy пolllyкy нaй6iль. tttогt,сltiлт,t.lот.tl /{iльtrtlкa дBox l{aTypirльниxчисеЛ сaме цiеto мoвolФ. prоgrаrn NSГ); vаr n,ln: intеgеr; hсgin writсln ('Задайтe ДBa дoдaтниx цiлиx Числa:'); rсас|ln (n.m)l whilе n<>m dо .,ffе 1}и.. if п>пl tht'tt t.l:=n-m clsr ln:;m -n| 4*J , w r.itе|n (' I l aii6 iльruи i.l cfriльнllЙ дiльник зaдaних Чисeл :',n) еllсl. BиBЕ.цЕIII{Я тшgля'ийбiшtllшo сr'irшшoдilшnд@зstшilo(lll&пn кIIIЕцЬ У нaведeнoмy aлгopитмi зoвсiм lteBa]ккo poзiбpaтися. Мoвa мoви. псeвдoкoдiв MaксимtlJlь}Io нaближeнaдo звlrЧaйнoipoзI}toвttoi Усi слyжбoBi слoвa, щo Bикopистoвyютьоядля зaпI{gyaJlгopl{тмy' видiлeнi )киpI{имlшpифтoм,ix неoбxiднa зaпиоyвaти тiльки тaкиIи мoви. oкpeмi блoки aJlгopит. чи}lol,t' цe пepeдбaченoпpaвилaМI{ як мy видiленi веpтикaльними пiнiями i oзнaчaють IIrвlIi дii. Bнyг. piшнiй блок визнaчaсвибip тiеi чи iнlцoi дii в зaлeжнocтiвiд вiднo. IIIеtlIlя BеIIичи}I тq m. Cеpелнiй блoк визнaчaсдiю n мiж знaчeннямI,l вrJrшЧин n IIoBToprннявн1пpirцнix дiй дo тoгo чacy' пoки знaЧsНl{я Ta m нr стaHyгЬ piвними. 3oвнilшнiй блoк визнaчar IIoЕнiстю вecЬ .lлгopиTМ' в якoмy пepeд6aнeнi тaкoж дii введeння тa вивeдlшEIя iнфopмauii. вiдпoвiднo вxiднoi тa peзyлЬTylо.roi Як виднo iз нaведeниx пpиклa.Цiвмoвy псeвдoкoдib lvloжI{a BвФкaти пpoмiжнoю мiж пpиpoднotо i фopмшlьнoю мoвою. .цДя зaписy aпгopитмiв мoвolo псевдoкoдiвнеобхiднo знaти всi слyжбoвi слoвa ЦiсТMoви тa пpaв}rлa зaписy дeяких дiй aлгopитмy. [}rl звсplly.п}r уBary нa пoдiбнiстЬ зaIIисy aлгopиTl,ty мoвolo ,Гa ltссlвдtlitrp1iti МoвoЮ гIpoгpaIиyBaння Пaскaль? I{e дiйснo тaк' lUIе 'Jilllilсy a]]Гopl4.гl,ly нa Пaскaлi пoтpiбнo opiснryвaтися в )|.'|5| altr.:liiit:t'кiй мовi та вмiтl,t викopистoвyвaти yсi мoжливocтi цьoгo l lсll.y)(I!OГtl засtlбy ПpoгpaI,ryBal{ня. П umaн ня dля caмoкoнmpoл'Ф : 1 Якi вtt zHaeme cnaсoбu Зanucу aлеopumмiв? 2 Якi в|l Знaсme npaвuлa cлoвeснaеo laпucу aлеopumму? 3 Чoму слoвeснuЙсnociб зaпucу aлeopumMуввФкс,сmьcя нaЙпpocmiшuм? 4 B ,triму aсrlблuвoсmi cхeмamuчнoi фopмu эoбpaжeння aлеopumму? 5 ,ur-lму, n()ЛЯeaюmЬ ocoблuвocmi мoвu nceвфкoilie? 6 ОбtpунnlуЙrne mвepФкeHня, щo lnoвu пpoapalЙувaння . цe oduн iз споr:oбiвпr>daння aлeopumл/'у' 7 LlLtм oбумoвлeнa maкa пocлiОoвнicmь cпocoбiв onuсу aлеopumмiв: сtl oве сн uй, сXeМa ar1 umму, Moв a псe вdo кodi в, t,ювuпpoepaуувaння ? еop 26 21 5. 6азori cmpуI(mуpuлeopum^riв. €, Tuпu€Шeopumшiв Iliс:"гtя oзrlайoМЛеFI[lя з рiзними фopмaми зaписy aлгopитмiв piзнi зa ТиПaМи кoмaнди. a вiдпoвiднo i !lo)Кt'Nlt) р<lзпi.tIrа,t.и а:lГoPI,t"Г]vIr'l, якi Т>; BIrкopисToByюTЬ, Cкоpистaсмoся ДI|Я ЦЬoгo .з tltt]itl ri п,Iа; II'() t,!,I.M Е вклiдa. p l м OIr4
  • 16. БyДь-який ЕrлгopиTМ Ivloжнa yяBити сoбi як дeякy сTpyкTypy, щo сIсllа,цzrсться oкpемIfl( бaзoвlд< елемекгiв. Зрзyмiло, щo пpи т:rкoмy 3 пiдtoд дo аrгoplm"rЬ BиBчeння oснoBIlI,о(rршrrцшЬ lx кoнсгpylовшпrя спИ пo.пшraтиз oзнaйoмлеI{ня з цими бaзoвими rJIеменTaми. Bизнaчaroть тpи базoвuх сmpукmуpш|tх eле]|4енmu:лiнiйний, poзгaJly)кeн пil, ЦtlклiчнъlЙ. A Лiнiйнuм е]IеJу'енmo].4 а]Iеopu|nму наЗuвa€mьcя mака сsnepацiя,яКсl вuЗнсtчсlсoduн еЛеJ||енmаprluй кpoк oбpoбкu aбo вidoбpюrсеIrня iнфopмацii.. .Цo тaких oпepaцiй вiднoсяться ДiТ змiни зIIaЧеI{Ilя деяких BелиЧин' ввeдення Ta виBeдeIrн,I iнфopмauii тoщo (мaп.3). oб'сднy.(eкiлькa лiнiйниx eлeмeнтiв },to)кyтЬ BaTИcя щвopювaти склaдeнy лiнiйнy стpyктypy aбo i лiнiйний фpaгмент aJlгopитМy.B anггopитмi Евклiдa пiнiйними iнфopмaцii, У . . о o елемeнTaми oбчислeння с дii введенI{Я Ta BиBrдrI{ня нoBиx знaчень Bеличин nTa m. I t-l oпepaц'я I l- | Мaтl.З якoстi пpиклaдiв лiнiйниx елeментiвМoх(нaнaвeститaкi: нaтисIIrнIIя кнoIIкиPOWЕR пpи BМикaI{нi кoмп'roтеpa; пepеxiд Byлицi, пo якiй зaбopoненopyx TpalrспopTy; oбчисленнЯ.цискpимiнaнryкBaДpaTнoгo piвняння; BиBеденIIя pезyлЬтaTy oбчисленняapифмeтиннoгoBиp:l:ly. ,{o склaдениx бaзoвиx aлгopитмi.rниx стpyктyp вiднoсяться poзгaлy)кенii циклiчнi zulгopитМи. Poзzалуэrcенuм eлел4eнmo.fut сUlaopumJv'унсIЗuвасmьcя mаксI onеpсlцiя, за donoмozoю якoi.зdiйснюсmься вuбip odнiсi.з dвoх мoэlслuвuх diй в залeэrнocmi вid c ф opлtульoванoi.улtoвu. Пpи викoнaннi oпеpaцii, якa r poзгiUIy)кеIIиМ eлeМенToМ' викoнyсться ЛиIIIе oднa з дiй. B Toмy Bипaдкy' кoли yМoBa спpaBд}(yстЬся' пpoдoBжеtlня Bикoнaння :l.лгopиTМy вiдбрaсться зa стpiлкoro <(+>>, B пpoТилежнoмy BиIIaдкy _ зa стpiлкolo <<->). Haведений ПpикJIaд с пoвнolо фopмoro poзгaЛyжеI{oГo елемrнтa (мал.4), тобтo мiстить вибip oднiеi з дBox пеpедбavениx дiй. Cкopo.rенa фopмa poЗгiuly)I(енoгo еЛrмrIITa y Bипaдкy неBикoнarlня yltfoBи нe пеpедбavaе нiякиx дiй (мал.5). Пpи цьoмy zUIгopиTм пеpеxoдиTЬ дo Bикoнaння lraсЦ/пнoгo бaзoвoгo rлeМенTa (блoк <<Д1Я бyле вiлсyгнiм). 2>> 28 Мaтl.5 Мaл.4 Пpиклaдoм poзгaJlyхенoгo елеt,IeнтaB aлГopитмi Евклiдa е вибip змiни зIIaЧeнI{яBеличини n aбo вeлlцчИНИm y зaлeжнoстi вiд У aбo спiввiднoшrення мiж нимvl (n>m _ <<тaк>) <<нЬ'). peзyльтaтi (n..=n-m, m:=m-n) бyДе пpoпyшенa. вибopy oднa 3 дtЙ Пpиклaдaми рoЗг:rjly,кениx елeментiB мo'(yгь бyги щe т?кi: . BзяTи пapaсoлькy зitуMoBи' лqцо iдeдoщ (скoрненa фopмa); . якщо зaгopiлoся зеЛеtIе свiтлo, To пepexoдиTи Byлицю' в пpoТиле)кнoмy Bипa.цкy _ ЗaЧeкaTи (пoвнa фopмa); O якщo eлекTpollний вapiaнт TeксTy нe мiстить пoМилoк' To poздpyкyвaти йoгo (скopoяенa фopмa); . якщo зIIa}tенник дpoбy не дopiвню€ нyлIo' тo oбчислити йoгo знaчelн*Я, у Пpoтилr)кнoмy випaдкy пoвiдoмити пpo Пoмилкy (пoвнa фopмa). алzopuп|л|унсBuвасmьcя mаксl Itutoiaнuлt е]IеJ||енrnОм oпеpацiя, за donoлцozoюякoi. зd iйcню сmьcя вuЗ||с'чeнсl кiлькicmь noвmopeнь odнiсi.абo dекiлькoх diй зzidнo o cфopлlуль ванoi. умo вu. Бiльlпiсть aпгоpитмiв мiстить оepii дiй, якi пoвтoploються декiлькa paзiв. !ря iх BизнaЧrння BикopистoByrоTь циклi.rнy констpщuilo' якa ще нoсиTЬ ttzшBy<<ПoBтopенIIя>>. С Дьa типи пoвтopенttЯ: з Пepедyt!{oвoro(мaл.6) тa з пiсляylnlo(мaл.7). вoю У пеplшoмy BиПaдкy сПoчaтI(y пеpевipясгься yrиoвil i, ясrдo вoнa To спp:lB.шrryстЬся' Bкaзal{a дiя .rеpгoвий paз викoнуеTЪcЯ' якщo ж нi, пpилинЯеTЬcЯ. тo Bикoнaнн я д1Т 29
  • 17. У випaдкy пoвтopeнI{я з пiсляyмoвorO викoнaння . вкanaнoТ дii, а пiсля цьoгo визI{aчarться' Ч|1 с пoтpeбa викoнyвaти ii знoвy. Пpи.roмy B цьoмy Bипадкy IIoв. тopенl{я вiдбрaeться в paзi, якщo yмoвa не спpaBДкy€ться. B aлгоpитмi Евклiдa ми спoстepiгaсмo циKпiчнiсть пiд Cllоt|it lIry вi21бувlrr. l.r,l:я T-r* Мaтr.6 l.;Iaп..i uaс бaгатopaзoвoгo lloвтopeння ПrрцIl,lx т pьох 71iй t,гltltсl, tlltliti lll!с. I J ()l!l знaченI{я нe стaЕryгЬ oднaкoBими. ivl(l)кllit l.l,,ltlссl'lt .{o пpишaдiв пoвтopeння3 пepедyl{otroro t;llii: . пoки е тiстo Bигoтoвляти тiстенка; . пoки Ilе втoмився кидaTи цегЛy y вallr.аiкiвtсу: . пoки IIe зaBеpIIIиться сtlисoк чисеЛ зl|аx()/1ll,t tl i.r t.уn4у о Пpиклaдaми пoвтopення з пiсляyмoBotо tr,{())кyI.ь rr: t1у'l . пo в To р ю вa Tи Bикoн a н н я фiзин н oi вllpaви ilol(l4 t]'lttl. сJ ll, itс дaсть кol,taндyпpo iT зaвеptпення; . пpoдoB)кyBaтnl llil(.v.ll()l(lllt;l 'ti);(l||. y ЗaпИcv| зotuитi дo Т()l.() чaться в нЬoмy apкyrшi; o пpoдoвжyBaTи oбчислення шrвидtttlс.ti |)yху ltl}|' 1rilltt'l,*. зн aче н н я х в i д с т a н i т a ч a с y д o к и p е з y J |Ь .lil|. llittj r .l.'l:;ltlсl)L/[ ! |с 3aдaнoгo ЗнaЧeння. Teпep пepeйдeмo дo BизHarIeння типiв а-гtl.trplr t.мitl. r .Jl (*} ]ltIll |!!l, )ll'l JIlltlultu,I|4u сlл?opum.цсU|4|l l{аЗllвQl()|lll'()lu.-l,,tlf cклаdаlomьcя з лittiйtпtх (.|lL|,l(Ilt|tl|i. Лiнiйнi aJIгopитмI,rскЛaдaroтьсЯ JI|||JJI ,rtilliiirtrtхсJlсl4сIl liti. ltкt з тиlvl' щo пiсля ж виI(oнaння викorraвсLu, :titlr)t(illr llсl)с().l(lill, .цoвикoнaшUI насryпнoгo зa пopЯдкoм еЛсMсt11)'lt iillll|сI iljll ()l)llljlу. xapaктеpнi У якoст i лi нi йно ю aЛ г о p иT My найпp t l с I i r t t r ] . l l i l t i ) I i , , l t l l l t с t l l I aЛгoриTll poзпopядкy poбoнoгo Дt|Я уЧtlЯ: pаttкtlIlltii ttii(iitlьt" сltl;t'lr нoк, зaняття y lшкoлi, обiд, виконal{нЯ дoМаlIlttiх .l;ttr,tatlt,. вt,;ltttl.rtl нoк' BeЧеpя, пiдгoтoвкyдo снy, сoн. 30 3гoдoм y бiльul сKJIaдниx пporpaмa'( 6yДe вaжкo знaйти сyгo Мaбщь, кpaще бyлe гoвopити пpo oкpемi лiнiйнi лiнiйнi aJIгopитмI{. пpoгpaмr } фpaгмeнти ц}Ix Алzopumaш, якi cклаdаюmьcя З PoЗеаJ'уЭrceнuх poЗzалуЭtcенuJу|u. нсEruваюmьcя eЛeJlhенmiв, яrсдi нe мicгrгЬ poзгшцлсelптй :шropитI,t' вlдшIa!II{п,! ' .{oсить вa)ккo poзгaJlyл(eнoгo.Toмy зa aнa.пoгieюз жоДloFo irлшome,Iемеrrт4ol(piм лiнiйними aJlгopитмaми .Цoцiльнitllе гoBoритt'. fipo poзгалyхeнi нiж фpaгмerml aлгop}rmdiв, пpo сaмi poзгaлyжeнi:lлгopитми. Cepeл пoбyгoвиx poзr.шy,кeниx ilrгopитМiв мoжнa I{aBeсти ilapaсoлькoю:якщo пoчaвся дoщ' пplrклaд aлгopl{тL{y.кopистyвalrня пapaсoлькy,якщo зaкiнч|lBcя- зaкpIIти. тo poзкpl{т}r Aлгopl,I'гми, щo бДtyloться нa мaтемaтI{чIriймoдeлi, пepeBокrro EllкopистoвyютЬ apгylieнти' знaчeIIня Якиx l{eoбxiдIro 3aдaти' тa peзyлЬт8ти' .знaчrIIIlя якиx тpe6a BиBeсти, якi е лiнiйними Пiд eлelr{ентaми. час Bикoнaнняциx чaстиll aлгopитмy здiйснюсться дiшloг 3 кopистyвaчeм шIгopитмy. Пеpeклад з aнгл,iйськoi МoBи cлoBa interfаce oзнaчaс yзгoДкeння, зв'язoк. Caмe тoмy МИ, гoвopячI{ пpo poзгaJly'(eнi aлгopитми, бyлeмo luaти lra yвД}i сaм aJlгopитм' a rreйoгo iнтepфeйснiчaстиIlи. бeзпoсepeдньo Haпpйшta.Ц,aлгopитм oбчислeння кopенiв квaдpaтнoгo piв. tlяltltя пo сyгi € poзгaл1nкgrrим, oокiЛьки з:ulежl{ть вiд знaка дrrокpимilralrгa.oдrtaк' пеplш нiж Bизнaчaти цIо ylt(oвy' нeoбxiдHo зlДaTЙ знaчeння кoeфiuiентiB piвI{янl{я, a нa oстaнoк вивeсти знaчeння oбЧислeниx кoprlriв в plшi Тx iонyвaння' якщo ж нi - тo пoвtдoмитl!пpo цe. Алeoputш'lu, якi cwtаdаюmьcя 3 цuк]|iч||uх eJIеJ|4енmiв, o:,t|ваю m bcя цu кл i uн ulll u. '| aлгopитмiв виникaс' кoли y Hеo6хiднiсть cтвopeннi циклiчниx тpебa дeкiлЬкapiц}iввl!кopистoвyвaтиoднi й тi ж фopмyли з piзtlиМи змiнниx, aбo якiсь iнIшi, oднoтипнi дii. I{иклiнний знaЧeнI{ямt{ нiж aJlгopитм3a poзмipaми нaбaгaтo ме}IIIIий, тoй; в якoМy лii бyли 6 пoвтopeнi стiльки paзiв, скiлькlt ix неodxiдtlo Bикoнaти. Щo I знoвy ж тtlки пoвтopимoся' зa)iB.DкиBIшИ, сyгo шкlri.пli зyсгpiнalсгься нe тal( чacг0. ШвI'Jцшез{l все нa щакгlтшi aJlropl{гIvfl{ сIвopеI{Irя'шгщгпиЬ мo)Ifla г0вoрrги гIpo щlктli.iнi фpaгмeнти aлгopитмiв. oднaк, спpoбyемo все }к тaки нaBeсTи декiлькa пpиклaдiв циклiчниx aлгopитмiв: 3l
  • 18. a a a плeTiння дeякoгo сI(IlaД{oгoyзopy Зztдoпoмor0ю гatlкa IIи сIIиIE; .цoтpимaIIIIя.poзпo'pядкy дIrя пpoтягoll{ poбoчoго Ти)IGrя; зafIoвI{eI{нятaблицi знaЧeнь sinх пpи задaниx apЦrМе}Iтax. якi ,onaмiucнtlltlu налuваюmьcя сt1l2opumn,|u, наnеped cmвopeнi i вuклuкаюrnьcя на вulсaнаItl|яmа цiлкoм cк,Iaдaнн,r дoсить сepйoзниx aлгopитмiв, ви oбoв'я3кoвo зiткнeтеся з сиryaцiеIо' кoли нeoбxiднo oписyBaTи д)Dцe сfхo)кi фpaгмeнти aJlгopитдФ.. Зви.raйнo, щo Bи дiйдете дy}lки якимoоь чиIloм зarI'IcaT*l ueй фpaгмeнт лиIlIе oдиI{ pцt i звеpтaтися дo llьoгo стiльки paзiв, скiльки в цЬolv{y BиIlикнeнeoбxiднiсть. Cтoсoвнo дoпoмiжниx aлгopитмiв мo)кнapoзглядaти: о вrгyrpiIшнi, лoкaльнi, щo стBoploютьсяв п{eжax дaнoгo aJIгopитMy i дoстyпнi для викopистaннятiльки y цьoмy aлгopитмi; о зoвнiшrнi, глoбa.тlьнi, якi мoжнa BикopистoBУBaTИ piзниx У IIeзaJIr)кIIиx tl'Jlгopитмax. 3oвнiшlнi дoпoмilкнi .rлгopl{тмичaстiпre зa Bсe oб'сдrrylоться y тaк звaнi бiблioтeки. flдя кopисryвaннJlцими бlблioтeкaми пoвиннi iснрaти iнстpyкцii з oпиcoм всix дoпoMilкнlтx алгofитмiв, якi BxoдятЬ дo IIиx' тa пpaBилa кopисTyBaння IlиI{и. : Пpишlaдaми зaстoсyBaннядoпoмilкниx aлгopитп,liв мoже бyп,l Bикopистaння тaбличниx знaчeIIьpiзниx тpигol{oмeтpичIlю(фyнкцiй, якi нaпеpед poзpaхoвaнi для piзниx знaчеIlЬ ipгyrиентiв; Bикopистaннязнaчellь вi.цoмихфiзи.rниxoдI{IIиць poзв'яiyвaння для зaдaчз фiзики тoщo. У вeликиx зa oб'смoм i оклaдниx зa уп{oвolo aJlгopиTмax вapтo' мaб1rгь, гoBopити пpo тIrп нe всьoгo aлгopиTlvryцiлкoм, a лиIIIe вIBI{aчaючитип olqpемиx йoгo фpaгмеlrтiв. 1 Пumaшlя dtтя caмoкo'ilnpoл'o: t' Haзвimь вci бaзoвi cmpyкmуpuaлeopumмiвi daЙmeiм'вuзнaчeння' 2 ЯкuЙ eлelЙeHm aлropumму нaзuвaemьcялiнiЙнuм? З ЯкuЙ eлeмleнm aлzopumмyнaluвaemьcя poЗеaлу)кeнulv|? 4 Якi eфopмu poзzaлyжeння? 5 ЯкuЙ eлrмёнm aлeopumwу Haтuвarmьcяцuклiннuм? 6 Ha якi muпuпodiляюmьcяцuклiчнiaлeopumмu? 7 Якi aлеopum^nu нaluвaюmЬcялiнiЙнuмu? 8 Якi aлеopumfu'u нaluвaюmьcяpoзaaлpKeнuмu? 9 Якi aлeopumмuHaЗuвaюmьcя цuклiuнuмu? з2 10 Якi aлеopumwu нaluвaюmьcя doпoмilкнuмu? 11 Якuмu MoKуmь буmu doпoмilкнi aлеopumмu? 12 Як вuзнaчaemьcЯ muП вeлuKux зa o6,смoм i cклadнiсmю aлеopumмiв? 6. Пpaкmuчнa pofloma "CrctadaHHя а'лeopilmмiв,' Зa нaведеним сценapiсм викoнaйтe зaBдaнIIяПo сTBopeнню алгоpитмiв. 1) Пo6уdуваmu iнфopлlацiйну мodель вidnoвidнodo уlloan заdанi' 2) Bшзначumш аp4)лleнmu, pеуульmсImuпс| npoм4ixlснi' ве]tuчuнu алzopumJу|у. вidnoвidнo do улtoвuзаdанi. 3) Poзpoбumu anoвecнuЙ onuc аJt2opu||lл|у 4) Пoбуdуваmu cхeJу'у шIzopum]у|у вiОnoвidнo do улloвu заdачi' 5) Заnucаmu аЛеopumtИл4oвoю nceвdoкodiв вidпoвidнo do заdачi. у^4oвu 6) Buзнанumu наявнiсmь лiнiйнuх eлe*tенmiв в noбуdoванolvtу алzopumмi i вказаmu iх. в 7) Buзначumlь наявнiсmь poЗzалуЭlceнuх eJIеJ|lенmiв алzopumмi i вказаmu ii. 8) Buзначumu наявнiсmь цuклiннuх елeмeнmiв в noбуdoванoму ' аJl?opumл|i вказаmu iх. i 9) Bшзначumu заzальнuй mun алaopumл'ryабo oкpeмuх йoеo фpаzмeнmiв. I0) Пoкpoкoвo вuкoнаmu noбуdoванuй алzopumм. I|) ПpoанаLlфваmunol<poкoве вuКoнанrrя noбуdoванozo аJlzopumл'у. 12) Ilа npuклаdi noбуdoванoeo алzopumJИу npoвесmu аналiз еmаniвpoзв'язуваннязаdау на кoмn,юmеpi. 7. Пo6уdoвa aлеopumlv]iв Mеmod noкooкoвo.i demшliзацii. CmovкmvoнuЙ nidхid do noбvdoвu аllzopumмiв. Modvльнa noбvdoва аllzooumмv Пpи ствopеннi склaдниx zulгopитмiв зaстoсoвyеTьсямemod noкpoкoвo.i dеmшiзацii. Ha кoжнoмy етaпi скJIaдaнIIЯ aJIгopиTМy oкpемi йoгo чaстиHи' щo с aктy'UlЬ}lиМинa Дaниil фopмyroться МoМе}lТ, a pецIТa зaмiнясться, HaПpикJIa.ц' ТексToBим вapiaнтoм oписy. Ha нaстyпниx еTaПax .raКa сaNIa МетoДикa ЗaсToсoBусTься дo . 3aвдaння .цля .цaнoi пpaкгиннoi poбoти нaведенi y МorМy <Збipникy BпpaBтa Зaдaч 3 aлгopитмiзaцii тa пpoгpaмyBaння>y poздilti .Cклaдaння aлгooитмiв> JJ
  • 19. нaстyпнoi гpyпи фpaгмel{тiB aJlгopитмy. Taкий пlдxiд пpивoдить дo yгoчIIеIIrrяяк викoнyBallo.i, тaк i пoстyпoвoi дeгапiзaцii aJlгopитIvry' iнфopмauiйнoi йoгo стpylсг},pи. Poзглянeмo вже знaйoмий нaм пplrк.,IaдaJlгopитl{y Евкпiдa. Ha пepпIoмy lgoui пoкpoкoвoi дeтшriзauii сфopмyемo дiю пoBтopeнIIя' якa дaФъ змory BизIIaчитиpезyльтaт allгop}rmiy: whilе n<>mdo (зaмiнясмooдIIeз чисeл нa вiдпoвiднy piзниuю циx нисeл); Ha нaстщнoмy кpoui oфopмимo в тepмiнax Пaскaль.пpoгpaми вибip .rислa,яке неoGxiдrroзaмiнltпl вiдпoвiднoю piзницeю: whilе n<>mdo if n>m thеn (зaмiнюeмo тислo n) еlse (зaмiнloемorиcлo m); Tепep зaлиlIII{JIoсЬ зpo6иm oстaннiй кpoк y детaлiзaцii нaЦIoгт) aJlгopитIvry зaписaти дii зaмiни вiдпoвiдниx знaЧeнь n тa m: rrhlle n<>mdo if n>m then n:=n-m eЬe m:ч1.ц; 3вичaйнo, щo нaвeдений пpиклaд с oдrrим з нaйпpoстilllиx, нa якиx пpoдoмoнcтpoвaнo пplrrrцип пoщoкoвoi детaлiзaцii. 3yсилля пo пoкpaщeннк) якoстi aлгopитмiв' eфeктивнoстi пpaui пpoгpaмicтiв знaйцrли peaлiзaцiю B стpyктypнoмy метoдi пo6y.Цoвиaлгopитмiв Cmpукmуpнuй nidхid do noбуdoвu алеopumлiв * цe crtociб cmвopенl|яалzopumму3 ltlupoкuul вuкopucmан||яIv|donoмiclcнtlхаllzopumlнiв, ' У склaдниx тa гpoмiздких зaдaчax тaкий пiдxiд дoзвoляс poзбити aлгopитм нa olФемi чaстини - мoдyлi, кoжний з яких poзв'язyс свoro сaмoотiйнy пiлзaяaЧy. цe дar мoжJIивiсть скoнцrнTpyвaти зyсиJlJIянa poзв'язyвaннi кoжнoi пiдзaдaчi, щo pеaлiзyетьсяy виг. лялi окpeмoi пiдпpoгpaми. .Цпякoхсloгo тal(oгo мoдyля BизHaЧаIoTЬся свoi мrгoдl ршliзшrii алгщrt}vfyтa crpДсЧрa дaниx, якими вiн oпepyс. oстaннiм цpoкoм у мoдyльнiй пoбyдoвi алгopитмiв r o6'еднaння oкpelrrиxмoдyлiв B единe uiле. ,{ля цьoгo мiж мoдулями зв'язки для пеpeдaнiiнфopмaцii вiд oдниx пgвиннi BстaнoвлIoвaтись peзyльтaтивикoнaнHяoдниx мoдyлiв e вxiднolо мoдyлiв дo iнurиx: iнфopмauiсю для iнlшиx. з4 Оснoвнoto JИеmoЮсmpукmуpнozo nidхodу do noбуdoвu алеopumмiв с poзpoбкa алzopu|||Jу|у мiнiлlальнutvtu З .,Д вЗсtсJуtoЗв' яЗкалtu мiэtc йozo мodvляaш. Якщo пoсTaвлeнa пepед BaМи Зaдaчa с сepйoзниМ Bеликим зaBдaнняМ' тo вaжливiсть poзбиття aлгopиТмy нa Ькpемi мoдyлi неМo)I(лиBo недooцiнити. oсoбrпвo ефeкпавнa mкa Метo.щ{кa пpи pозрбui скIIадIIIл( шгoplmиi.пlоr систrМ кoЛектиBulМи щoгpaмiсгЬ. B IIьoMy Bипa-щqyкoxtнoМy poзpoбникy дa€тЬся свoя цiлiснa ЧacTИHa aлгopиTMy' якa peaлiзyеться l{иl,t виглядi oкpeМoгo мoдyЛя. 3aвеpy шIенняM кoЛективIIoТpoбoти € зBeдelrня цих мoдyлiв в сдинe цiле. Poзooбка аnzoDumлliв <<звeЩqrdoнuзv> <знuзv- вeoov>> tnа Maсoве зaсToсyвaннЯ кoMп'IoTepiв _ цe B ПepПIy Чepry рoзpoбкa нoвoгo пpoгрaмнoгo зaбезпeчeння. Toмy сьoгoднi Мoжнa B'(e гoвopити пpo сфopмoвaнy iндyсщiro вигoтoвлення llpoгpaм. З цiсю Метoю стBopюIoTЬся piзнoмaнiтнi теxнoлoгiТ пpoгрaм1вaння, Якi Евiбpaли в себе iдеi як сТр)rкTypнoгo' тaк i мoдyльнoгo пi.цxoдy.цo склaдaH}Iяaлгopитмiв. Пoзнaйoмимoся з нaйпoruиpенirпими з ниx. Пpoгpaмyвaння <<звеpxv_ дoнизY> aбo низxiдне ПpoгpaМyвання, бaзyсться нa iдеi пoстyпoвoi дeтaлiзaцii зaДaчi нa pяд qкpеМиx пiдзaдaч. Cпoнaткy глoбaльнa зaдaча ПpедсTaBJIя€тЬся y виглядi нaбopy пiдзaдaч i бy.Цyrться пpoГpaМa' в якiй цi пiдзaдaчi BисЦ/TIaютЬ як деякi iменoвaнi пiдпpoгpaми, дo яких мo)I(нa opгaнiзyвaти зBеpнення. Ti пiдзaдavi, якi ще пpoгрaмнo не pеа,тiзовaнi, TиМЧaсoвo зaмiняtoгr,ся'tак зBaHиMи пpoгpaМниMи <<3aгЛyll]кaми>>, .цoзBoляс o,гpиMaTи пеpurий вapiaнт Прoгpaми' Щo гoтoвoi .цля пеpluoгo кpoкy нiшal.oд)I(rння i пorшщy ПoкpaЩr}rиx вapiaнтiв. Пiсля цьoгo пo вiднotпенI{ю дo пiдзaдaч зaсToсoBусTься тaкиЙ caмиil пpийoм. _ Пpoгpaмyвaння <<9низv вгopv>> aбo висxiдне пpoГpaМ)/Baння' ЗaснoBal{е нa lrpoтиЛeжнoМy пpоцесi. Спovaткy пиIIIyТЬся i IIiUIaгoджyюTЬсячaсTини зaдaнi, якi poзв'язyють oкpeмi пiд зa.цaчi, тoбтo пpoГрaми нaйнижчoго piвня, a пoтiм пoстyпoBo 3 tlиx збиparoться кpyпнilшi блoки. I.{ей пpоцес зaBеpшIиTЬсятoдi, кoЛи BсЯ ПpoГpaMa бy.Цепoвнiстro зiбparra i налaгoдженa. З чaсoм З, ЯBИлacя ще oднa теxнoлoгiя ПpoгpaМyBallня' щo oTpиМaJIa нaзвy технoлогii пaкetЬ пpl,ilшa,щilo( ttpoгpaМ. l; iдея пoJUIIII€ B ToМy' щo кo}кнa нoBa зa.цaчa poзB'язyстЬся luлЯХoм кoмбiнaцiТ скЛa.цoBиxчaс^.ин B)ке гoТoBиx tlzlгIaгoд)кениx пaкeтiв ПpoГpаМ. з5
  • 20. Пaкетнa теxнoлoгiя знaЙтллaсBo€ Пpoдoв)кеI{tlя poзвитoк в i oб'eктнo-opiснтoвaнoмy пpoгpaМyBaннi. oб'ектнo-opiснтoвaнi зaсoби являroтьсoбoro iнстpyпleнтapii,мoви Bисoкoгo piвня, пoбy.Цoвaнi з мoдyлiв, якi викoнytoть певнi змiстoвнi фyнкuii сaмoстiйнo. Iснylоть iнтeлeкryaльнi мoдyлi oбслщoвyвaння екpaнa,фopмрaння l{lнIo' пiдгoтoвки вiдпoвiдeй, кoHTpoлIo IIoМиЛoк пpи введеннi .цaниx кopисTyBaчeм i т. п. oкpiм тoгo, B iнтeлeктyальнi мoдyлi мoжyгь Bхoдцти .oб'екти, ствopенi сaМиМ кopисTyBaЧем aбo пpoгpaмiстoм ffi пoдaльпloiii oбpoбки i пpeдотaвлення. Haпpиклat, поtuиpенiсть Пpoгpa},tних пpoдщтiв фipми МiсroSoft пpизlелo .цo пeвнoТсTa}IдapTизaцii iнтеpфeйсниx зaсoбiв пpикJlaДниx пp$гpaм y виглядi вiкoн, iсpapxi.rнoi сTpyктypи МeIIЮ кopистyBaЧa Tс!lцo. Нa сьoгo;iЁiшrнiй день poзpoбленi i пpoдoвжyютьpoзpoблятися нoвi oб'ектнp.оp.iентoвaнi iнстpyмента.гlьнi зaсoби - сеpеДoвищa'B якиx peaлiзoвaнi мoви ПpoГpaМyвaння'щo в сoбi Taкoж мiстять мoжливoстioб'сктнoгoПpoГpaмyBatlня. Mетoдикa Ф'eктнo-opiснтoвaнoгo пpoгpaмyвaнняJIе)китЬB oснoвi poзpoбкиЧoBиxпpиruiaдниx сисTеМ дo.цaткiв. тa Зapaзмaйже кo}кнa TPaдrЁйнa мoвa пpoгpaМyвaн}Iя. poзpoблясться з пlдМнoжинoю aoo IIaдMнoжиHoIo зaсoolB пl.цTpиМки oo,скТI{oгo пpoгpaмyBaння. Haпpиклaд, тaкi нoвi системи пpoГрaМyBaння' як Visual Basiс, Visual C++, Visual FoxPro, сepe.цoBищa Dеlphi, C Builder. .(eтальнiшrе Moвa Пpo iдеoлoгiю oб'сктно-opiснтoвaнoгo пpoгpaМyBaння бyде ilти дaлт' Аналiз ш,tzooam"мiв Пiсля poзpoбки i скгla'цeнняаJгoprгIvty нaсТyПa€ gгaп йoгo aналiзy. Аналiз аЛzopumJуtу це nepевipка йozo на npавt'lльнiсmь, mo бmo вuзнсiчення кop екmHoс m i з асmo c o ванoi. ]v| еI4 аm аmuчн oi.м o d елi, у з z o dэюeння o кp еJ'|uхблo кi вni d np oеpал,t,л oz i чн o с m i вuкo 17 11 вс iх d iй' а 17я aнaлiзу aJIгopиTМy зaсToсoByеTЬся сисTеМa TесTyBaння, пpo !ля якy MoBa йпrлa paнiше. Сщнiсть ii пoлягaе y пiдбopi тaкиx пoЧaткoвиx ДaНИX,дЛя якиx prзyльТaT, щo мaс бри oтpимairий пiсля зaстoсyBaння обpaнoТ МaтrмaTичнoi мo.целi, с зaзДaлегiДь вiдoмим. Haстщнa звipкa oTpиМaниx pезyльтaтiв Bикoнallня скЛa.цеI{oгoaлгopиTМy 3 TиМи )к пoчaTкoBИNIИ ДaНvrтуIИ ДaсTЬ Мo)кЛивiсть BизнaчиTи йoгo кopeктнiсть. Пiд нaс пеpевipки poбoти aЛгopиTМy пoслiдoвнo, ПoкpoкoBo пеpевipясться poбoтa oкpеМих йoгo чaстин циклiв, пiдпpoгpaм, BBеДенI{ЯТa BиBrДrI{HЯ ДaНИX. рoзГaЛy)I(еrrь, З6 Caмe пpи тoкpoкoBoмy Bикo}Iaннi алгoplтгмy мoжнa в.ИtIpaBt,ITIl лoгiчнi пoмиЛки. [дя cклaлниx i гpoмiздкиx :rлгopитмiв мoxсе зaстoсoB).Baтись метoдикa викopисTaнI{я <<зaглyшIoк>>, тoбтo зaмiсть пepевipки Bикoнaнн,l oкремих чaстиI{ aлгopl{тI'dyтиl{чaсoBo BикopисToByIоTЬся зI{aчeнI{я' якi мaють бyги oтpимaнi в pезyльтaтi ix Bикoнaння. Пiзнiпre, пiсля aнaлiзy oснoвIrих ЧacTИъt, it.лгopитмy' мoхснa IIoBеpнyг}rся дo пpoпyщellиx чaстин i пеpевipити ix кoректнiсть. 3poзyмiлo, щo пoкpoкoве BикoI{aIIHЯ NIЯ гpомiздкиx ilJlгоpи,t. мiв являе сoбoro lreпpoсry зa.цaчy. Чaстituс зa I}сr .gуuний> pе)t(иМ aнaгliзy aлгopитмiв Мo)IGIapекoМel{дyBaTИ в,aNlBикoнyBaти NIя TИX зaдaч, щo poзмiщeнi в дaнoмy посiбникy. ,Цля склaдних a;rгopитмiв сy.laснi сepe/цoBцщa пpoгpaмyвaння IIaдaють кopистyвaчевi дyжe зpyчIri i кopиснi мoжливoстi BикoнaнI{я щoдo lloкpoкoBoгo всix ПpoГpaми зa .цolloМoгolo кoмгI'toTrpa з вiдслiдкoврaнням нeoбxiдниx пpoмiжниx знaчrнЬ. Пoanidoвнe v m oчн eн ня алz oo utплlv Пiд чaс aналiзy aJrгopитМy }ro)ке BиI{икнyп,l нeoбxiднiсть щovнeHня дeЯкиx йoгo чaстин, зaмiна.цеякиx фpaгментiв мaTемaтичнoгo aпapary бiльrц paцioнальними, oфopмлення oкprмиx блoкiв .}Jlгopитмy y виглядi дoпoмiжниx алгopитмiв N|Я мo}Iс.lIиBoгo нaсЦ{пIloгo ix викopистallня B iнlшиx йoгo блoкaх Toщo. .{'ля викoнaннЯ деяких aлгopитмiв oдниМ iз сyггевиx фaктopiв е чaс ii Bикoнaння. Пpи pеaлiзaцii тaкиx алгopитмig нa кoмп'ютepi чaс BикoнaннЯ €lлГopиТМy мo)I(e бщи пpoтeстoвaний для piзних пoчaTкoBиx дaниx. Пoдекyди вiднщний зa чaсoМ pезyльTaT Мoжe бщи oтpимaний нa Мaлиx i великих зa oб'смoм вxiдниx ДaHИX. ЯкЩo чaс Bикoнaнн,I нe BЛaIIIToByс, To poзpoбник ajlгopиTМy наMaгarTЬся зaсToсyBaти бiльru ефективнi Метo.ци poзв'язрaння пoстaвленoТ зaдaчi. Пbдекyди вoни брaють склaднiшrиМи B pеалiзацii, але бiльlп ефективними щo.цo яaсy iх Bикoнaння. B цьoмy i Пoлягar piвень пpoфесiйнoстi пpoгpaмiстa. i"Ъxxr"КБЗZ'"?#"й!!,f lf;oumмiвнaзuвaomьcЯcmpукm 2 3 4 5 6 7 Щo maкe uмemod noкpoкoвoi.demaлiзaцit,? B uoмy пoляraс суmь poзpoбкu aлеopumмiв <Звepxу-doнuзу,! _ B uoму пoIтЯеae cуmь poзpoбкu aлеopumмiв ",3HI!3У вeopу,? B нoмy noляeae ideя poзpoбкu пaкemiв пpuклadнuх пpoepaм? Для нaeo пompiбeн aнaлiз aлеopumмiв? Koлu вuнuкaс пompeбa в пoслidoвнoMу ymoЧHeHHi aлеopumму? эI
  • 21. 8. Teмamuчнa amecmaцiя кlнфopмaцiЙнa мodeль. Aлеopumмu> TеМaтиЧнoi aтестaЦiiнеoбxiдIro: .{ля виконaI{нЯ Знamu О eTaПи poзB'шyBaння зaдaчзa.цoПoМoгoЮ кolvlп'roТepa; о piзнoви.Ци мoделей,пoняTTя iнфopмauiйнoiмoдeлi; o oзнaчeнняaЛгopиTМy' кJIaсиaлгopитмiв,oзHaченняBЛaстИвoстей aлгopитмiв; . IIOIIятгя виI(oнaBця tlлГopиTMy; . oзнaЧе}lня apгyментiB, реЗyЛЬTaTiв тa пpoмiжниx o a a a O BeЛичин; всi спoсoбиolrисyвaння aлгopитмiв; бaзoвiсТpyкTypи алгopитмiв, типи aлгopитмiв] сyгЬ МеТoдyпoкpoкoвoi деталiзaцiТ aлгopиTMy; пoняTTястpyкTypнoгoпiдxoдy дo пoбyдoви aJlгopиТМy; ПpинциП модyльнoТ пoбy.Цови irЛгopиTМy; . ПotI,ITTя <сBеpxy_ дoниз}D> <снизy _ BгopР; пpoГpalvryBarП{я Ta o нeoбxiднiсть пoслi.цoвнoгoyгoЧIlен}Iя:rЛгopиTмy; о спосoби зДiйснення aна".:riзy zUIГopиTМy; вмimu O BизнaчaТи послiДoвнiсть е.гaпiв poзB'язyBaHня ЗaДaч зa дoПoМoгoю кoМtl' toTеpa; . ПoяснюBaTи ПpинциПи пoбyДoви iнфopмauiйнoi мo.целi; . HaBoДИТИ ПpиклaДи aлгopитмiв; . oбrpyнТoвyвaти вiдмiннiсть мiж apгyменTaми, pезyЛьТaTaМи тa пpoмixсниМи BеличинaМи; . нaBo.циTи схrMy poбoти iUIгopиTMy; . BизнaчaTи вiдмiннiсть piзниx спoсoбiв oПисy aлгоpитмiв; . нaBo.циTи влaснi Пpl{клaдиol]исy шrгopитмiв; o Пoясt{ЮBaтиoсoбливocгi кo)кнoТ бaзoвlл< з стpyсryp aлгopитмiв: o BизнaчaTи TиП zUIГopиTМу; . склa.IIaТи .LItгopитMи вiДпoвiДнo .цoy]4oBи зaдaчi: . HaBoдиTивлaснi ПpИKЛaДИ piзниx типiв aлгopитмiв: . нa BЛaснoMy пpикЛaдi пoяснювaти сyТЬ Mеl.oДyпoкpоковоi .цетaлiзaцii aIIгopиTМy; 38 . пoясtltoBaтI{ oснoвI{y мeтy стpyl(тyplloгo пiдxoдy дo пoбyдoBи aлгopитI}ry; . нaвoдити пpкll4щ{ мory]ъI{oгo пi,Ф(oд0/дoпoбyдoви aJlгоplfгtr{)4 . пoяснк)Baти нeoбxiдtiсть пogriдoвнoгo yгoчIreнIIя aJIгopfгrvfJД o oбгpyнтoByвaти нeoбxiднiсть aIIaJIiзy aJlгoplrгмy. Пpoгpaмa.Пl|oвa пpoгpaмyвaння 9. Пoняmmя npoеpaшu rroняrnmяnooлtoвunobzouttvваttня Пpи пiщmoвцi шгoptтп,tЬ щя iх BикoнаlIlIя нa кorш'юпеpi нa нeoбxiдriсть тollнoгo заIlI{сy кoп,tаIlД пeplшийIшaн вI,ll(oдrylть зрзрli.rппt викoнaвцю' щo нe зaJII{шaс мiсця для дoBiльнoгoix тpaIсryвaння. Moвolo npozpаЛсуваI|||яt|аЗuвaetnьcя фiкcoва|tа cucfneма nol'|ачеt|ь dл,я onucу аltzopumмiв i cnpукmуp dанuх. Мoвa бiльlцoстi i сyчaсIrиx кoмп'ютepiв дoсI{TЬ <<скyrla>> скJIaдa€тЬся з кoмaнд.Ilaкaзiв тиrry <видiлlггI't пaм'ять пeвнoгo poзмipу>, <<пpoчI{тaтиiнфopмaшiю з пeвнoгo мiсця пaм'ятi>>, <<зaпaм'ятaтиiнфopмaцiю y пeвIlo}ry мiсцi пaм'ятi>' <<дoдaти дBa <пepeйти дo Bикoнaння нaсцпнoi кoмatЦи' пpowtтaвurи Тi з Числa>>' пeвнoгo мicця пaм'ятi>>,<<пopiвнЯTИ ДBa ЧислФ> тoщo. Як пpaвило, кoп{a}Iд Bсьoгo декiлькa сoтeнь. Bсi вoни нaстiльки пpoстi, щo мo)Кyгь бри eфeктивнo peaлiзoвaнi aпapaцpoю кoМп'ютrpa. Haбip цих кolvraнд, щo нoсить нaзвy мoви мaши}IIIиx кoдiв, з тoЧкIl зopy ik фyнкuioнaльнoстi с IIoBIIим. Bикopистoвyючи кoмaндI{ з цЬoгo нaбopy, тoбm кopистytочисЬ зaдaнoю систeмoю кoмaнд, мo}кнa oписaTи бyль-який aлгopl,IтМ.oднaк тaкий 3aпис дJIя скJIaдниx зaдaЧ нaстiльки гpoмiздкий, щo y лIoдиI{и бyлe дyJкe мaлo цraнсiв зpoбити йoгo бeзпoмилкoB}lм. Iснye двa Bиxoди з цiеi ситyaцii. Пepший пoв'язaний iз ствoPe}IIlям бiльlш скJIaдIIиx кoмп'roтepниx систeм' тoбтo з aпapaтним зaбезпeчeнням, щo змoжe peалiзyвaти 3наЧI{ourиpurий i склaднiшrий нaбip кoмaнл. .(pщий цIляx _ ue poзpoбкa пpoгpaмнoгo зaбeзпeчeння, якe б дoзBoлялo викopистoвув,aтЙ cк'nДнi з тонки зopy кoмIl'toтеpq aле бiльtш зpoзyшliлi з тoЧки зopy лlодиllи кoмaнди, як, IIaпpикJIaд' poзгaJly)кrння тa циKlIи. Алe пpи цьoмy виникaс нeoб. xiднiсть сTBopeння спeцiaльниx пpoгpaм-переклaдaчiв, фyнкцiсro З9
  • 22. il lil ill Якиx с пеpeТBopеtlня пpoгpaМ iз вxiднoi мoBи llpoгpaМyвaння B еквiвaлентнi пpoгpaми' щo мо)ке Bикoнaти кoмп'roтep. Taкi пpoгpaМи Ilt}ЗиBaIoтЬся Tpallслятopaми' мoBa пpo н}тx булe iпи дaлi. Caме дpyгиiа lлляx oтpиМaB aктивнtlй poзBиToк. Ha сьoгoднilшнiй дeнь poзpoбленa чиMaлa кiлькiсть piзниx мoв пpoгpaМyBaння. oкpiм Toгo ще вiдoйi piзнi веpсiТ o.цниx i тlцx caмпx It{oBпpoгpaмyBaнI{я. Чим пoяснюeTься тaкa ix кiлькiсть? Чoмy нe Мo)l(нa oбIЙтуlcя oднielo aбo пpинaймнi декiлькoмa? Cпpaвa B тoмy' щo нa сьoгoднitпнiй дeнь сфepи BикoPистaння кoмп'ютеpiв тaкi piзнoмaнiтнi i тaкi спeцифiuнi, щo BpaхyBaTи yсi в oднiй мoвi пpoстo I{eмoжлиBo. Toмy кoxtнa Мoвa пpoгpaМyвaння opiентoBal{a нa пеBний клaс зaдaч. ,{ля пpoгpaмyвaннi екoнoмiчниx зaдaч викopистoByIoтЬся МoBи пpoгpaмyвallня dBase, Paradox, Clipper; для poзpax)ДlкoBиx зaдaч дoсить окopистaтися мo)Iс.llиBocTЯNIII мoв Basiс, Pasсal; д.IIядoотyПy .цo бiльlш <<глибoкиx>> }rо)кJIиBoстeй кoмп'ютepa бaжaнo скopистaтисЯ мolс;lивoстЯМи мoB Aсемблеp тa Ci. Клаcuфiкаtliя мoв no ozp аl,tvван ня Iснyloть piзнi клaсифiкauii MoB llpoгpaмуBalrня. Згiднo нaйпolшиpенitпoТ з ниx всi мoви пpoгpaмyвaння пo.цiляIoTься нa мoBи низькoгo Ta Bисoкoгo piвня. Moвu лlаuluннuх кoманd (кoDiв) dанoi'мoёeлi кoмn' ю mеp сl, якi с np uйл,t аюmb cя нul',tб езn o с ep ed н ьo, нсlЗuваюmься ]||oвсll|4u нuзькozo piвня сloo .^,tсlu|uнl1uJуtu JуIoвсlJу'u' гpyпи Мoв ilpoгpaМУr,aьНЯ низькoгo piвня вiдносЯ.rЬcЯ Дo . J||oва лtiкpoкoltlанd, якa зaдaс нaйпpoстilшi пеpедaui Дaниx мiж oпrpaтиBнolo пaм'яTгю Ta пpoцесoрoМ, мiж caМИМИ pегiстpaми (кoмipкaми) пpouесopa Toщo; О l|au|uннa JЙoва' кox(нa кoMaн.ца якoi oписуеться пoслiдoвнi стю мiкpокoмaнд; o аcемблep _ МоBa симвoлiч}roгo кoдyBaння. Пеprшi двi мoви пoГaнo н.UIaIIIToBaнi викopисTaнHя ЛЮДи. нa }loю, oскiльки ix кoМa}Iди ЗaДaЮтЬсЯ пoслiдoвнiстю нyлiв тa oдиI{иЦЬ. oпеpaтopи aсемблеpa - це тi ж мarшиннi кoмaнди, aJIе Boни МaЮTь симвoлiчнi (мнемoнiннi) нaзви, a в якoстi oПеpaндiв.викopисToByIоТься нr кoнкpеТнi a.Цpеси кoмipoк oпеpaтивноТ пaм'ятi. a ix iменa. 40 Bсi мoви пpoгpaмyBaннянизькoгo piвня opiснтoвaнi нa певний тигIкoмп'lотеpiв i B цьoМy смислi спецiaлiзoвaнiсaме для ниx. Moвамu npoapамувaння вucoкozo piвня нсtЗuваюmься на .Л4oвIt, якuх npoлpа]Иucклаdаюmься з onеpаmopiв. .Цлявсix МoB Bисoкoгo piвня зaгaЛьниM€ Tе' щo вoни opiснтoвaнi не lra сисTеМy кoМaнд тoгo Чи iнlцoгo кoмп'roтеpa' a Ha oпеpaтopiв,xapaктepниxN|Я зaПпcУпеBнoгo кJIaсy зaгirльнyсистeI,Iy алгopитмiв. Tипoвими пpиKпaдaми oпepaтopiв тaкиx мoв Mo)кyть бщи oпеpaтopипpисвoюBaння'yпloвнi oпepaтopи,oпepaтopициклiв Toщo. пepш нiж кoмп'ютep вlrкoнрaTи}lе Пpoгpaмy' I{aIIисaнy ii МoBoю Bисoкoгo piвня, нeoбxi.цнoпepeкJIaсTи нa мarпиннy мoB}' якa вiдпoвiдaс дalloМy типy кoМп'ютеpa. .Цля цьoгo пpизнa.lенi спeцiальнi пpoгpaМи _ тpalrслятopи' пpo якi дeтальнilшepoзмoвa йтиметьсядaлi. Мoви пpoгpaмyBaнняBasiс, Pasсal тa Ci н€I}иBaюTьсяMoBaМи Bисoкoгo piвня, тoМy щo ii кoнстpyкцii мaксимaпpoгpaМyBaннj{ льнo нaблиxенi дo зBиЧaйIIиxpoзмoBl{их мoв i дyжe зpyянi тa лloдинi. зpoзyrnliлi Mи poзглянyли oдI{yiз тpaдицiйниx клaсифiкaцiй мoв tlpoгpa. МyBaння' в oснoвi якoi лежить BиpaзI{aпoтyжнiсть мoви. oднaк _ цr iснytoть клaсифiкaцiТ i зa iнцrими oзнaкaми. oднa з IIиx пo.цiЛяIoТЬся клaсифiкauiя, вiдпoвiднo .цoякoi MoBи пpoгpaМyBaння нa oбчислroвaльнiтa лoгiчнi. Пpaктиннo всi poзгляrгщi вище мoви с пpoгpalvlyBaння oбчислюB'lльниMи.Якщo ж гoBopити пpo лoгiuнi Moijl{' тo слiд згaдaти пpo Лiсп (List Proсеssing Language),Пpoлoг (Programmingof Logiс). пpофесopoм Moвa Лiсп сTBopeнaв 1965 p. aМеpикaнськиМ пpoблеМlIITyrнoгоiнтелекry i !жoнoм Maккapтi.цля .цoслi.ц'ження пpoгpaмниx pеaлiзaцiйiнтепекryaлЬниxсисTeМ. ст.шa oснoвoЮpя.ц'y мoвa, якa бaзyсться Ha вiдмiнy вiд Лiспa Пpoлoг - це eBpoПейськa нa лoгiчнoмy нисленнi. Гi poзpoбив A.Колмеpayep у |912 p. в Мapсeльськoмy yнiвepситeтi. мoв пpoгpaМyBaння' к.тlaсифiкaцiя Iснyе тaкoж i <<пpиклaдно> якa B)I(ебyлa poзгляIryгa вище. Згiднo з цiсro клaсифiкaцiею всi ЗaсToсyBaI{ня. H tro.цiляють a гpyПи Зa ГaJ1УЗЯ|iуl МoBипpoгpaМy3aння 4l
  • 23. I o o u edvo на лсo ва no ozp алtvван ня Бiльlшiсть l,loвtlpoгpaмyвaнrrявисoкoгo piвня вiднoсиTЬсядo пpoцедyрIII{x мoB. B oснoвнoмy цr мoви пpoгpaмyвal{ня дJIяpoзв'я. зyвaнняoбчиспювaльItиx зaдaч' a сaме Пейсик, Пaскaль, Ci тoщo. Moвu npozptlЛrувсIнt|я'якuх peалiзoвана лцoэtcлuвicmь в mа аlleoPu|f|fu'у, ншзхidнoеo noкpoкoвoi. demалiзацii. ||o:,uваюmьcя вucхidнoеo npoepаh|уваt|ttя, np oцedуp нtлltu всIlу'u. ^''o B зaзнaчeниxвищe NtoвaxoсIloBIIимMетoдoм с poзбIrтгязaдaчi нa oкpeмi кpoки тa ix пoслiдoвний oпис. Пoкpoкoвa дeтaпiзaцiя пoки ми rre oтPимaeмo {l.лгopитмy вiдбрaеться дo тoгo мol,{eнтy, oкpемиx фpaгментiвзaдaч' якi мoжнa eлеI,lентapнi poзв'язyBaIIIrя дii бyД'e зaписaпl y виглялi кoмal{д'дorryстимиxв дaнiй мoвi, пoлягar Ile oднa oсoбливiсть пpoцедyplrиxмoв пpoгpal*ryвaння мoBaI{и' пpoцeдyp}rими в в тoмy' щo кoмaIIдI{ пpoгpalvraJ(' 38пиcal{иx BикolryютЬcя пoслiдoвнo.I"[eoзнaual, щo peзyльтaти викoнaння всix пoпepeднix oпepaцiй вxe oтpимaнi i звopoтнoi силI{ BoIlи }Ieмaють. oскiльки вмiст пaм'ятi, дe збеpiгarтьсявся пpoмiжi нa iнфopмaцiя викoнyвaниx oпepaЦiй,пoстiйнo пoнoвлroсться тo вiдмiнити paнiшe пoпepeдня iнфopмauiя нe збеpiгaeться, тaкoгo видy щe викoнaнi кoМaндиll€мo)KпllBo. Moви пpoгpal,ryвaн}Iя н:t:lивaютЬся aлгopитмiчнимl.t. B oснoвi пpoцrдyрIrиxмoB пpoгpaмyвaнHязaклaдeнiпpиtlципи llpoгpaмyвaння.PoзглянeМoвiдoмий вжe нaм пpикпaд стpyкTypl{oгo спiльнoгo дiльникa: aJlгopитмyпoIIIyкyнaйбiльtшoгo фpaгментa whilе x<>ydo if x>y then x:=x-y еlsе y:=y-x; Haведений зaпис зoвнi являс сo6oю oднy дiю . пoBтopення Tипу <пoки>(while)' Aле цей зoвнilшнiй oпеpaтop мiстить в сoбi цto пi.шlopяд<oвaнi oпеpaтopи, мiняlоть з}Iaчeннях aбo y. Тшсaiеpаpxiя oпеpaтopЬ вiдo6pоr<aсcrp)кгypy, щo лежиTЬ в oснoвi a.'гopmиy. П Iцo нzюЧнo BI,lД{oзaв.цякисгpytсгypi мoви гIpoгpaJvryвal{ня, дoпyскar "вклaденiстькoмпoнeнтiв пpoгpaми oдин в oдин, викopистaнняТx пoслiдoвнo oдин зa oд}IиМ. Aлгopитми, якi I,tиoтримyсMo B 42 prзyльтaтl' мaютЬ viткy i ясtly стpyкTypy. в тeкстi пpoгpaми Taкa вклaдeнiсть.rи пiдпopядкoвaнiстьвiдoбpaжaетЬcЯ зaутlaIlwl pядкiв. Клloчoвoю ideeю сmpукmуpнoeo noбуdoвuаЛZopumму e вidoбpаэюeннясmpукmуpu аЛzopumJЙу cmpукmуpi в meкcmу npozpаJ||u' Cпpaвдi, IIемo)K,Iивo зpoзрliти сIr,tисл пpoгpaми, якщo зникне iТ стpyктypa' як Це брaс' кoли кoмпiлятop видa€ МaшIинний кoд' Mи пoвиннi poзylriти, щo прoгpaМaнекopиоI{a, ЯКЩoлIo.циIta Мox(r B нr нiй poзiбpaтисяi пepeсвiдЧI|T|IIЯ'в пpaвильнoстi. ii Лoeiчнe nDoeoалvвання Iдея викopистaнIlя МaтеМaтичIlo.i лoгiки в якoстi мoBи пpoгpa. мyBaннябyлa зaпpoпotloBallaP.Кoвальським в Aнглii нa пouaткy 70. x poкiв ХX стoлiтгя' Лoгiчнe пpoгpaМyвaнняви}lикJIoB oсI{oвI{oмУ зaвдякиyспixaм B aвтolvtaтиЧнoмy дoBедeннiтeopeм. Oснoвнoto мeToю MaтемaтичнoТ лoгiки с зaбeзпeченняпeвнoi .систrми фopмaльних IIoзнaчеI{ь N|Я вiдoбpaження мipкрaнь. oдним з poздiлiв мaTемaтичнoТ лoгiки с лoгiкa Bислoвлювa}Iь. /l ,'-:-J Лoеiка вacлoв,]Itoв - цe poзd iл маmeлtаmuчнoi. лoziкu, ань якuй вuвчас вl,|cЛoвI.юва|I||я, poЗZЛяdаюmьcя з бoку lх щo лoeiчнuх Значrнь - icmuннoсmi mа хuбнocmi * i лoеiчнuх onepацiй наd нuмu' oснoвним eJlеl,Iентolvt лoгiки BислoBJIIовaнь r вислo'лroвaння i oпepauit нaд ниl,lи.B лoгiцi BисЛoвлюBaнь с тiльки ствеpдxtyвальнi peчеI{}lя' якi мoжyгь бщи iстиltнi aбo xибнi, a нe i тe i iнrше oднoЧaсI{o. Кoжнe тaкr стBeрд}I(yBaJIьIre prЧення НaЗ:!.lrla€j]tЬcя B|.|c лoвлIоBaнням. Haпpиклaд, <<Петprнкo € ytIеI{Ь>>, <<Iвaненкo BиBчar iнфopмaтикy>. Iз пpoстиx BислoвJIIоBaнЬ Mo)кнa 6УдУвaтп склaдeнi. Haпpиклaд, <<Пещенкoс rlе}IЬ i xoдить дo IIIкoJIи>,<ЯкЦo Iвaнrнкo xoдиTЬ дo IlIкoли, тo вiн виBчaс iнфopмaтикy>. B лoгiцi BислoBлюBaI{Ь BикopисToвУеTЬcя п'ять oснoвниi логiчних oпepaцiй: _ зaIIepечeнI{я; о <Hi> о <<l>> - кoн'roнкцiя; о <Aбo>> _ диз'юнкцiя: о <Якщo ..., To ...>> _ BиснoBoк (iмплiкaцiя); о <Toдi i тiльки то.цi> - еквiвaлeнтнiсть. 4З
  • 24. Лoziнне npo2pсll''увсlttl|я - цe Заnuc заdачi l,цoвoto л|аmеJv|аmuчнoI лoziкu у вuzляdi нaбopу вuc]Ioв]Iloвсlнь' вidнou,tеньмiэtс вucлoвлюваннялlu mа npавuJxвuвеdeння B p".y,"'u' i BaI{IIя' первipясгься I "#*r::::':## :#*"' пporpa^,ty" "'*^':: Ha сщaB€дJIиBiсгь сфopмyльoвaIII,D( вислoBлIoBaнЬ. Як зазнaчaлoсЯBищr' oснoвнi iдei лoгiчнoгo пpoгpaмув,aННЯ y Bпeplцe бyли yспiIutlo pgалiзoBalri Кoлr,rе'payеpoм фшшii y фpмi A. пpoгpaМyвaнIlя)> l4oBи пpoгpaпryBштlя Пpoлoг. Tеpмiни <<лoгiчнe тa <mpoгpaillyBaшrя мoвoю Пpoлoг>} чacтoвIдopистoвyloъ як iдентичнi. Пpoлoг був пpиЙнятий,в якoстi бaзoвoi мoBи B япoнськiй пpoгpaмi стBoprння кo],lп, IoТеpaП'ятoгo пoкoлiння, щo opiснтoвaнa нa' дoслiджеtlня мeтoдiв лoгiчнoгo пpoгpaмyBaННяTa IuЦ/rIHoгo iнтeлeкт5l,. тaкo)I( нa poзpoбкy нoвoгo пoкoлiння кoмп'roтepiв, a спeцiaльнo llpизнaчениx для pеaлiзaцii дaниx метoдiв. Haзвa мови Пpoлoг yгBopeнa iз слiв ПPoгpaмyвaння ЛoГiчнoгo aбo ПPoгpa. мyвalrня в тepмiнax ЛoГiки (PRoLoG - PRogramming in LoGiс). Лoгiчнe ПpoгpaмyBaIIIIя МoBolo Пpoлoг дoкоpiннo вiдptзняеться вiд пpoгpaмyBaн}Iя zrлгopиTйiчними МoBaМи.Пpoгpaмa Moвolo Пpoлoг oписy€ не пpoцедypypoзB'ЯзyBaння зaдaчi,як це мaе мiсЦе в тpaдицiйниx aлгopитмiuнrтxмoвax типy Бeйсик, ПaскaлЬ,Ci i т.п., a лoгiuнy мoдeль пpeдметнoi oблaстi, щo BкJIIoчa€ в себe деякi фaкти вiднoснo влaстивoстей пpедметнoi oблaстi i вiднorцень мiж нoBих oб'сктaми B цiй oблaстi, a Taкoж ПpaBИЛa BиBе.цеIIнЯ BлaсTиBoсTeй вiднoцrеньiз вже зaдaних. i Пpozpама J|4oвoю Пpoлoz clgаdаemьcя iз мнoэюuнu mвеpdэrceнь' Ko)!сне З якl1х e обo факmoл,t,абo npавuлoм i odнozo цiльoвoeo mвеpdэюення. Пpaвилo Bкulзyс'яким чиtloМ poзв'язoк пoв'язaний iз зaдaними фaктaми aбo як Мo)кнa iз зaдaниx фaктiв BиBeсTи цей poзв,язок. Пpoгpaмрaння Мoвoto Пpoлoг BкJIЮчa€ в себе тaкi етaпи: . oгoлolllення фaктiв пpо oб'скти i вiднoшeння мiж ними; . BизHaчеIIIIя пpaBил взaсмoдii oб'ектiв i вiднoшrеньмiлt ними; о фopмyлroвal{няпиTaнь пpo oб'скти i вiднolшення мiж ниМи., Haведемo пpикJIaд. Hеxaй с тaкi твep.ЦжellнЯ: _ <<Iвaненкo це r{енЬ>>; <Cидopенкo е oднoлiткoм Iвaнeнкa>>; <Петpенкo с oднoлiткoм Cидopeнко>; ..oб'скт с }дIнеМзa yМoBи, що вiн е o.цнoлiткoМ)д{ня>. 44 Ilepшi Tpи елемeIIти дaних e.фarсицгд qетверefl. пp:lBилoм. <У oтDИмo€Мol Якщo BBести тaке цiльово твep.Фкeння: чнями е:>)'.To вiдпoвiдь, Щo Iвaнeнкo, ,Cидopенкo, Петpeнкo _ yннi, пpичolvfy a Iвaнeнкo € ytlliеМ зa BизIIzFIeIIнЯN|' Сидopeнxo тa ПeTprЕIоo внaслi.цoк BиBeдeння. oгже, пpoцpaмa МoBoюПpoлoг liy)кe сxoжa нa гiпсrгезyгIрдrf,ry пpeдмeтIry г.lл)RЬ' a питaння * I{aтeopeмy' якy нeoбxiдIro дoвeстп. Пiдвeдемo пiдсyпloк. Ha вiлмiнy вiд пpoueлyplroгo пpoгpalrdY* Ёaння, Ilpoгpaмa МoBoю Пpoлoг IIr Bикoнy€ться пoслiдoвIlo по крoкax, oскiльки не зaдaс нiякиx дiй. Bмiст П1,олoг-пpoгpaми Цс, сщyпнiсть фaктiв тa зв'язкiв мiж ними. Toмy пpoгpaМyвaннЯнa iнфofмauii тa Пpoлoзi пoЛягaс y пepeдaui кoмп'ютepy сyrс5rпнoстi IIaсTyпIIoмy звepнeннi дo ньoгo з питaIIнямй щoдo мo}кJIиBI,гx виснoвкiв iз цiеi iнфopмauii. I ще oднa мoжливiсть: лoгiннy пpotpaМy Мo)кнaBикoристoBув,aTI4 пoIIIyкyбyль.якoi iнфopмauii, ДЛЯ якa Moх(ебym лoгi.lнo BиBeденaiз дaнoi пpoгpaми. Пorпщ oб'eктa, y вiднorпeннi з iнluими oб'rктaми, € дy)ке щo з}IaxoдитЬся зa.цaнoмy вaжлиBoк)влaстивiстlо лoгiчниx пpoГpaм. Об, eкmнo. ooieнn oванe noozDаlt,lvвання пpoгpaмyвaння (скopoчeнo ooП) - це oб'екгнo-opiснтoвaне B нaIш Чaс Пpиpoдний сyu6сний пiдxiд дo пoбyдoви сK,Iaдниx пpoгpaМi систем. B oснoвi oб'сктнo-opirнтoвaнoгo гIpoгpaмyвaннялежить iдeя oб'сднaння в однiй стpщтypi дalrиx.i дiй, якi викoнyloться IIaд метo.цaми. Пpи I||4NIиI. тepмiнoлoгii ooП цi дii н.шlиBaIoTЬсЯ B тaкoмy пiдxoдi opгaнiзauiя дaниx i пpoгpaмнa peалiзaцiя дiй нaд IIиМи Bи'IBляIoтЬсЯ знaчIIo. сильнiluе пoв''язaними, нiж Пpи тpaдицiйнoмy стpyктypнoмy пpoГpaмрaннi. oб'ектно-opiснтoвaнe пpoгpaмyBaння бaзyсться }Ia. TpЬox iнкaпсyляцii, нaслiдрaннi, пoлiмopфiзмi. oснoB}lиxПo}Iятгях: r dанuх з пpoцedуpамui lнкаnсуляцiя_ це кot',t6iнувiэння /fi 'l.:J функцiя.l,tu,якi л'tанinулююmь цIlJ''u dанuл,tu. Iнкaпсyляцiro Mo)I(нa уЯв,vl.rИсoбi, як меxaнiзм, Щo oб'с.Цrтye дaнi i пpoцr.цypи' якi ix oбpoбляroть, B сдиIry сТpyкTypy. B ooП кa:кyTь' щo TaкиM чиIloм сTBopЮ€ться <нopний Ящик>>'B, якoмy сxoвaнo меxaнiзм пpедстaBЛеI{IIЯ .Гa oбpoбки дaниx. Кopисryвa.t Мoжe зBеpTaТИсЯ Дo Дaнoгo oб'скry зa заздaлегiдь визнaченим ПpaBилoМ i, не впливaЮЧи нa oб'eкт, ЛицIr кopисЦ/Baтися }IиМ. 45
  • 25. СxoжуlЙ мexaнiзм BикopистoBусTЬcЯ y стaндapтниx бiблioтеi кax мoв пpoгpaмyвaнI{я' кoли ми зBrpтaсмoся дo фyнкuii, кopистy. rМoся I{eк), зaдylrylочI,IсЬ тим' яким сaмe чинoм вol{aпpaцюe. нe Hяц Hacлidування_ цe J||oJtслuвiсmь вuкopucmсIння вJrcе вuЗначенuх oб,скmiв dля noбуdoвuirpаpхii oб,eкmiв, noхidнuх вid нuх, Haслiдрaння _ цe Мexal{iзм,в pезyльтaтi зaстoсyвaння якoгo oдин oб'eкт мox(e oтpимyвaти y спaдкoвiсть всi влaстивoотi тa мeтoди iнЦroгo, дoдaloчи дo нI{xсвo.ixapaкгеpнiшacгIaocгi' Кoхспd з <нaщ4ДкЬ> y сrrpl,ttvfyrспaдroвiсть oПLl,cДaНИ) <<пpaбaтЬкФ> i дoстщ дo мeтoдiв ix oбpoбки. Taким чиIIoм з'яBЛяr:тьcя iсpapхiя. B якoстi пpИКЛaДу мo)I(нa I{aвести тaкий лaнЦloжoк: poслuна Ф oвoч ф ]|'opква. дaнoмy Bипaдкy oвoчy пpитaмaннi всi влaстивoстi B poслиItи,aпe дoдalоться i свoi oсoбливoстi,a мopквa e oвoueм, алe ii влaстивoстiдeщo вiдмiннi вiд кapтoпляниxi т. д. Iloлiмopфiзм - це мoэtcлuвicmь вuзначення сduнoi.за iменeлldii.(npoцedуpuабo функцii'),щo мoucе буmu lасmoсoвсtнаodнoчаcнodo вciх oб,скmiв iсpаpхii' наcлidування. Пoлiмopфiзм пpедстаBляеоoбoю мexанiзм, Щo дoзвoлясoдне i те ж iм'я BикopистoBуBaTИNIЯ poзв'язкy сxo)I(иx зaДaЧ,якi все ж таки B oкpeмиxдетЕrЛяx вiдмiннi' B якостi гIpикJIaдy Мo}кнaзвepнyтисЯДo мoви пpoгpaМyвaнI{я Ci, де для зI{axoд)кення мoдyля Числa BикopисToByютЬся тpи piзнi фyнкцii: abs()_ для цiлих Чиоeл'labs()- дЛя дoBгиx цiлиx, fabs()_ для дpoбoвиx. У вiдпoвiднiй мoделi OoП викopистoвy€ м o oднy вiд фyнкuiю з н€цlвoю abs(), щo, B з€UIе}IGIoстi типy вxiдниx дal{иx' сaмa визHaчaс, який з Tpьox aлгopитмiв зaстoсyвaти' lI{е oдин Пpиклaд_ це дoдaвaння. 'a'+'х' , i |+2 - oпеpaцiядoдaвal{ня, y I aЛe дBox BипaдкaxреaлЬнo викoI{yIоться piзнi дiТ' xova вiд кopистрa.ra цей мexaнiзмпpихoвaний. Пpиклaдoм застoсyBal{ня oб'ектнo.opieнтoвaнoгo llpoгpaМyBaння с oпеpaцiйнa cИс.re|уIa Windows' Кoли ви вiдкpиeте бyль-якy пpoГpaМy Windows, тo побaчитевiкно з BеЛикoюкiлькiстю кнoПoк, poздiлiв МeI{Iо' вiкoн peдaгрal{ня' сПискiв тoщo. Bсе це oб'скти. Пpи.loмy сaмi пo собi вoни нiчoгo не pоблять,a Чrкaк)TЬ якиХoсЬ пoдiй, нaпpикJla.ц'нaтисне}Iнякopистyвaчем клaвiIш aбo кнoпoк мишri,пepeмiщеннякypсopa i т. i. Кoли вiдбyвaсться пo.цiбнa пoдiя, oб'€ к т oтpимyе пoвiДoмленняпpo це i певниМ Чиl{oМ нa нЬoгo 46 pearyс: Bикoнyс деякi oбчислeI{I{я'poзгopтaс списoк, зlxнoоить симвoл y вiкнo peдaЦ/вalrl{я. aмування_ це нoва nPozp О6, eкmнo.opiенtnoване idеoлoеiя npozpамувaння, щo базуemьcя на вuкopucmаннicуEnнocmi o6,скmа mа nodiй, t|а якi вiн мocrcеpea4)6аmu. мoжe пoмiтнo спPoстI{ти oб'сктlo-opiектoвaний пцxц нaписaння сKпaднIlx пporpaм, нaдaтrr iм гнщкoстi. oднiсю 3 йoгo мoжливiсть poзtllиpeнняoблaстi Тx гoлoвtlиx пepeвaгМoжнa ншtBaтI{ a зaстoсyвal{ня,IIe llеpepo6ляroчисaмi пpoгpalvrи, лицIe дoдaЮч}lв нlrx l{oвi piвнi iсpapxii. A B iзvut ьн e noozpаltсvвaн ня пpoгpalr,Iyвaння Лoгiчнoю peaлiзaцi€to oб'еrстrro-opieнтoвaнoгo е вiзyaльнellpoгpaмyвal{Irя. спoсoбaми: Bключaти oб'eкти в свolo пpotpsмy мoжнa двolda . вP)пIнУ,викopистoвyючи в пpoгpaмi вiдпoвiднi oпеpaтopи, щo lraспpaвдiвiд6yвaстьсядoсить pшкo; зaгo. О lIIляхoМ вiзyальнoгo прoгpaмyвarrня'BI{кopистoвyIочи тoвкt{сrpeдoвищa . кol,lпoнeЕти. Ще нeдaвнo poзpoбкaгpaфi'rнoгo irгеpфейсa кopисryвaнa бyлa пoв'язaнa з вeликими зyсиJUUIми.Пpoгpaмрaн}Iя Bp}Дrнypiзtтиx звичIIиx кopистyвaчy вiкoн, кнoпoк' мeню' o6poбкa нaтиcнr}Iня клaвiш нa клaвiaтypi тa мицri, Bкпючeння в пpoгpaми зoбpaжeнь i звyкy виMaгaJIoвсe бiльurе i 6iльIшечaсy пpoгpaмiстa. B бaгaтьox вeсь цей сeрвiс зaймaв дo 80.90% oб'смy пpoгpaмниx вI,IIIaдкax кoдiв. Пpи змiнi стиЛю гpaфi.rнoгoiнтepфeйсaвся ця пPaця стaвaлa мapнoю' Bсe дoвoдилoсьпoчинaти спoчaткy. Bиxiд з цiеi ситyauii бyлo знaйденo зaвдяки двoм пiдxoдaм. Пo.пepurе, 6yлo отaндapтизoвaнoбaгaтo фyrкцiй iнтepфeйсa, зaв. дяки чoмy з'явилaсЬмoжливiсть викopистoвyвaтигomвi бiблioтeки, y лсi с' нarrрш<ла.Ц,Windows. Пo.р1тe, з'mилoся вiзyаrъне пpoгpа}fyirггepфейсa BаHI{'I' дoзвoлI,lлoзBeсти пpoeктyвal{някopисrytsaцЬкorо щo пpoцедyp,якi дaють мoжливiсть зa xвилини aбo i нaoчдпоr дo щoстtл( Гoдиltи зpoбити те' нa Щo paнiшe йцrли мiсяцi poбoти. B iнтeгpoвaнoмy сеpедовицIi poзpoбки Delphi цr Bиглядar дy}I(eпpoстo. Cеpедoвище нaдa€ кopистyвaЧy фopми' нa якиx вiн мoжe poзмiщyвaти кoмпoнel{ти,нaпрllкJlaд'кнoпкI{.Фopмa чaстiшe I{a зa все вiзyaлiзyеться eкpaнi мoнiтopay виглядi вiкна, яке пoтiм i ^1
  • 26. L! I ilr n l ll l l буДe бaнитп кopисЦ/Baч пpoгpaМи.Ha фopмy зa дoпoмoгorо миrui пеpенoсяTься i poзмiщylоться пiктoгpaми кoмпoнентiB' щo r B нaявнoстi в бiблioтецi Dеlphi. Зa .цoпoмoгolo пpoстиx мaнiпyляцiй Мo)кнa змiнити poзмipи, poзTaIпyBaI{ня Bлaстивoстi цих кoмпoнeнтiв. Bесь цей пpoцeс тa .пpoeкTyBaннявiзyaлiзyстЬсянa eкpaнi. Гoлoвне пoлЯгa€ B ToМy' щo Dеlphi пiд чaс пpoeктyвaння фopми i poзмiщення нa нiй кoМпoнентiв aBToмaтиЧнoфopмyс кoди пpoгpaМи' щo oписyloТь ДaниЙ кoМпoнeIIT. викopиоTal{иx кoмпoнентiB Мoжнa пpисдIraтиoбpoб. ,(o никiв пoдiй, тoбтo влaонi пpoгpaмнi кoди' щo пеpeдбaчaютЬ pеaкцiю пpoгpaми нa poбory з BкzulaIIиМ кoмпoIIенToм. Biзуальнenpozpалtуван|tя це npакmuчнеЗасmocувсlнI|я ,A oОП npu вuкopucmаннi zornoвtlх6i6лiomекr<o,мnoнeнЦ} miв, nеpеdбаaенuхcepedoвuщeА4 ozpа.муваIlня. np Пoняmmя nDo cucmeлtu nDozDаtt,tvвання Bсi poзглянyгi iдеoлoгiчнi aспeкти пpoгpaМyвaнняpеaлiзовaнi B кoнкpeтниx l,roBax пpoгpaмyBaння. Aле кol(нa мoвa poзpoбля€тЬся Для ij пoдaпьrпoipeaлiзaцii на кoмп'rотepi. Caмe для тaкoi peaлiзaцii кoнкpeтIlиx мoв з ix aлфaвiтoМ' цpaвI,rлaмуI laПИcУ oкpeмиx дiй i poзpoбляloться оистеIdипpolpa}ryBaння. CистeМи пpoгpaмyBalrня Bxo.цять скJIa.Цy мaтeмaти.lнoгoзaбeзпeчeння дo кoмп'loтеpa. Cucmeлtа npozpа.fu'уваI|ня_ це pеФliзацiя кoнкpеmнoi. Ii4oвunpo?pаIу|уванttя dля neвrluх кoлtn,юmеpнuх cucmем. Кoжнa МoBa пpoгpaМyBalrlrя пiдтpимaнa сBoсIо систeмolo пpoгpaIиyвalll{я ypaxyBaнняммo)клиBoсTeй з кoнкpeтнoТ oпepaцiйнoi сисTеми. B кoмп'roтepax пepшиx пoкoлiнь сисTеМи ПpoгpaМyBalrl{Я М:l.лидy/ке oбмеясенi мoжливoстi, якi нaдaвaли пpoгpaмiсry лиrue зМoгy пеpеBeсти ПpoгpaМyз aлгopитмiчнoiмoви в мaшинний кoд i BИзНaчkI.IИ си}ITaксиЧIIi пoмилки. Boни нe мiстили нaвiть тrкстoBoгo pr.цaкTopa'тoмy дoBoдиЛoсЬTrкст пpoгpaми нa6ивaти нa пepфoкapTиЗa дoпoМoгoю oкpe}Iихпpисщoiв - пepфopaтopiв. З чaсoм систeМи пpoгpalvryBання пoЦDкнfuлaли'i зapaз ми кopистyeмoся мo)I(лиBoстяМи pедaктopa текстiв пpи нaбopi сaмoi Пpo|paми' збеpеxсення тeксTy пpoцpaми'тaк i п МalllиtlнoГoкoдy' як Мo)lgIиBoсTями лoгiчниx пoкpокoBoгo пoмилoк Ta зaпyскy Bикoнaння ПpoгpaМ],4 ДлЯ BизнaчеIlIlя пpoГpaМи Ha BикoнaннЯ. 48 кopисCyvaснi cистРми пpoГpaмyBaнI{я дoпoBнеIllpoзвиIIеI{им pеалiзoвaнийy виглядi iнтегpoвaниx Ц.BaцькиМ iнтepфейсoм, ЯкиЙ iнтеpaктивниx серeдoBищ (IIC) aбo iнтeгpoBaниx iнсщyшlентaльниx кopиcгyвaчy зaбезпе.ryють пФеBiDкI{o oбoлoнoк (IIo). тaкi сepe.цoBиIIIa бaгaтoвiкoнrпй тa бaгaтoфaйлoвшiрlrоrм poбoти, вlпсopиuгar*япппrri, oб'сктнo-opiснтoвaнe пpoгpaмyвaнIlя' дoзBoJIяIoIь зilстOсoByB:xIи пpoГpaм' нaписallиx нa aсемблеpi. BикopистoвyвaтифpaгмеIITи З iнтeгpoвaним iнтepaкгиBIIиМсepедoBищeмTurbo Pasсal 7.0 знaйoмитись пiзнitпе. ми детальнiшe бy.Цемo rr oняrпmя noo iнtn eoпDernацiю tnа кoлrniляцito Basiо тa Pasсal'цiкaвo Ha пpиклaдi двox MoB пpoгpaМyвaння пpo poзгляtlyги T7|4TaHLIЯ пеpeтвopellня пpoгpaM' нaписallиx циМи мoBaMи' y BикoIIyBaнийвигляд, тoбтo нaбip мarпинниx кoдiв. .{ля цьогo iснyroть спeцiальнi оистемнi пpoгpaми - тpaнсляTopи (y пеpеклaдiз aнглiйcькoТмoви translatе_ <<пepeклaдaти>). Бyль-який тpallслятop Bикoнyс .цвiоснoвнi зaдaчi. B Пеpшa _ aналiз пpoгpaми' щo TpaIrслюсTЬся, pезyльтaтivoгo Bкaзyс TpaнсJUттop пoМиJIoк BизнaЧaеTЬсяii кoркпriсrь. Пpи вивлerтнi нa тi мiсцятексгyпpoгpaми' пopyшeнi пpaвилaii нaписaння. де кoIvIП'I{пеpa. мoBolo кoil{:lllд - генepaцiя вюriшoi rrpoгptlми Дpyгa тa Tpaнслятopи с дBox типiв _ iнтеpпpeтaтopи кoмпiлrгopи. ,& no nepек]Iаdаюmь odнiй кoманdi Iнmеpnpemаmopu лtoву нсl вхidнo|.npozpа]|nu Jv|сtu|u|lllу i а6o onepаmopу вidpазу эю вuкoнуюmь tх. пpoгpaмyBaнняBasiс здiйснroе пoслiдoвIнтеpпpeтaтop I,roBи ний синтaкcvlчнуliакoнтpoлЬ oпеpaтopiв пoЧaTкoBoгOтексTy пpoгpaми i викoнaння iT кoмaн.ц(oпеpaтopiв). наnuсаIrу всю пpozpа"л4у, Кoмniляmopu nepеклаdаюmь I|4oвoю npozpалtуванIlя вucoКozo piвня, нa JИсlujuнItу лtoву, nicля чozo npozpсUvtсl ЗаnucусmьсЯ в onеpаmuвItу nа-ц'яmь i вuкoнусmься Кoмпiлятop мoBи пpoгpaмyBal{ня Pasсal здiйснroс пеpeкJraд Bсьoгo пoЧaТкoвoгo Tекстy пpoгpaМи в мarпинний кoд. oтжe, Basiс.пpогpaМa нa етaпi викoнaння буДe BикoIryBaTисЯ синтaксичниx ПoМипo oднiй кoмaндi. Toмy нaвiть Пpи I{aяBнoстi ПpoгpaМи, Якa Пеpr.цye Тм, все o.цнo бyде Лoк B TексТi тa чaстинa
  • 27. tl I il ilr u I lr : i l I i, Bикoнaпa. Pasсal.пpoгpaмa бyлe викol{yвaTисялишIr пiсля випpaвлeпня всix синтaксичних пoмиЛoк в lloчaткoBoмyтeкстi. Peзyльтaт кoмпiляцii llрoгpaми' тoбтo ii мarпннний кoд, мo)кнa збepeгги нa зовнilпньoмy нoсieвi y виглядi oкpeil{огoфaйлa. Taкy вiдкомпiльoвalry пpoгpal{y Мoжнa експлyaЦ/Baтибeз викopистaння сeprдoвищa пpoгpalvryвaння.Ha ж!шIЬ' }Ir всi iнтеpпpeтaтopи нaдaютЬ тaкy мo}rФивiоть. пoвтopl{oгo Bикoнaн}IяпpогpaмI{' '{ля написaнoi мoвoю пpoгpalvryBallllя висoкoгo piвня, нeoбxiднo знoBy зarryскaти iнтepпpeтaтop. Пumaння dля caмoкoнmpoл'o: 1 Щo нaauвarmьcяttoвoюпpoapaмувaння? piзнux 2 Чuм вuклuкaнa lнaчнa кiлькicmь мoв npoepaмувaння? 3 Ha якi maсu mpaОuцiЙнo no1iляюmьcя лnoвu npoapaмувaння? 4 3a якuмu щe oзнaкaмuклacuфiкуюmьcяttoвl!npoapaмувaння? 5 Якi мoвu nporpa^rувaння нaluвaюmьcя npoцedуpнuмu? 6 Щo maкecmpyкmуpнe npoapaмyвaння? 7 Ha якoмy poзёiлi мameмamuкu6aзуemьcялoaiuнвnpoepaмувdння? 8 Щo maкo "лoeiкaвucltoвлювaньD? 9 Якв npoapaMувaння нaluвaemьcялoеiчнuм? 10 Якa Maвanщpaмувaння ыniлuлa ce6eideimejчюю npoеpaмувaння? в 1! Щo нaluвarmьcяo1bкmнoюpiaнmoвaнuw npoеpaмувaнням? 12 Ha якuх mpьoх ocltoвнuх noняmmях 6aзуrmьcя oбbкmнoopieнmo. вaнe nporpavувaння в uoмуl cуmь? i 13 Щo maкe"вiзуaльнo npoaparrувoшHЯn? 14 Щa нatuвaemьcя cucmeMoю npoepaмувaння? 15 Яку фунl<цito вulФнуюmьmpaнcляmopu? 16 Пoяснimьpiзнuцюмilк iнmepпpemaцioю кoмnlляцioю' ma program my-flшsфro gram; vaг name:stгlng; bеgin writе('3aдaйте Barшеiм'я i нaтиснiть клaвiпryЕNTЕR: '); rеadln(name); writеln(' Шaнoвний',name,'!'); wrflteln(,B iтaю B aс з пoчaткoМBивчrнHяaлгopитмiзaцii!') ; writeln('.Цля зaв€pпIeнIIя пpoгрaми нaтионiтьклaвiluy ЕNTЕR' ) ; rеadln end. !iйснo, тeкст пpoгpalvtи'нaписaнпЙ нa apкylшi пaпepy' сaM пo poбoти кopистyвaчaз сo6i не мoжe бyпa викoнaний. .(ля зp1лtнoотi iнтepaктивне iнтегpoвaнe ГIaскaль.пpoЦpaМalиl{ стBopeнo cepeдoвище,якe oб'едналo в сoбi мoжливoстi тeкстoвoгo peдaктopa д1янa6иpaння тeкcтiв пpoцpaм' кoмпiпятopa для визнaчeнняпoMия лoк y пpoгpaNIaх зaпyсI(yпpoгpaм нa Bикoнaнн в paзi вiдсщнocтi Ta пoмилoк' нaлaгoджyвaЧa Nя пoкpoкoвoгo Bикoнaння пpoгpaм i Iнтepaкп,lвнимсepедoвиIцeIIaзиBaвизнaЧeнняскпaдниx пol,tиЛoк. стЬся тoмy' щo вo}Io llрaцroс в peжимi пoстiйнoгo спiлкрaння з кopисTyBaЧeм, iнтегpoBaним тot,ty' oб'сднyс в сoбi oднoЧaснo a щo всi згaдaнi вище мoжливoстi. 10. Cepedoвuщe n poеpaInув ня aн Iнmeеooванieoedoвutца c пooeourlvванн* IIoняm peЙaкпя ) ,,' oDа, mDаI|cЛяmoDа"l|аJlаaoЙJtсvв ача Здaсться, oсЬ-oсЬ y вaс виникнe дy)кe с,ryшIl{e зaпитaнI{я: як викoнaти lraписal{yпpoГpaмyнa Пaскалi? вiзьмемo дoситЬ зpoзщliлy пpoгpaмy i .{aвaйте для пpl,IкЛaдy нa poзглянeмo пoвIIий aлгopитм ii pеaлiзaцii, пoчинaючи вiд нaбиpaння тeкстy B сеpeдoBищi пpогpaмyBaння дo oтpиМaння pезyльтaтyfi викoнaння. Hexaй цe бyде пpoгpaмц якa зa BведeниI.l iм'ям кopисЦ/Baчa' вiтaе йoгo з tloЧaткoм BиBчeIIIIя poзлiлy oсtloB aлгoритмiзaцiТтa пfioгрaмyвaння. .(oмoвиМoся пpo тr' щo Ha дal{oмy етaпi ми не бyлемo вдaвaтисяy деталi пoясненI{я стрyктypи цiеi пpoгpaми. 50 Мал.8 5l
  • 28. Pобoтa в iнтегpoвaнoМy сеpедoBищi Пoчинaсться jз зaПyскy Еra BикoнaнI{я фailлa turbo.ехе. oкpiм цьoгo фaйлa Ha BaIIIoМУ t'iiёIч бaжaнo мaти B нaявнoст'i пIе тaкi фaЙли: o tuгbo.tpl - бiблioтекa стaндapTl{иx Пpoце.цyp тa фyнкцiй Turbo Pasсal7.0; о turbo.hlp : дoПoМoгa кopисTyBaчy сеpeдoBищa гIpoГpaмyвaння Turbo Pasсal 7.0. Пiсля зaпyскy сеpе.цoвищa Turbo Pasсаl 7.0 (мaл.8) y веpxнiй чaстинi екpaнa мoнiтоpa бaчимo гoлoBIIе МеHю' а в нижнiй _ Рядoк пoвiдoмлень. Mоrкливостi сеpедовищa Turbo Pasсal 7.0 дyже пoТyжнi i poзглядaти ix всi в Ме)кaх .цalloГoпoсiбникa l{еМar нiяксlг'ocеHсy. Тoмy зyпиниМoсЯ лиЦIr нa oснoBниx та неoбxiдниx мoменTax. Cеpедoвищe Turbо Pasсal 7.0 дoзвoляс кopисTyвaЧy пpaцIоBaTи Як зa.цoпoМoгoro клaвiaтypи' Taк i зa.цoпoмoгoto миlшi. flля poбoти з клaвiaтypotо в нaзвi кo)кHoгo еЛеМеI{ТaгoлoBнoгo мснro iншим кoлЬopoM видiленi oкpeмi лiтеpи. Зa дoПoМoгoю якIlx Мoжнa aктивiзрaтИ Te ЧИ iнrше меlrю. Для Цьoгo ДoсTaTнЬo HaTисt{yTи кoмбiнaцiю клaвirп ALT+<лiтеpо>. Flaпpиклaд, для aктивiзaцiТ менrо Filе нeoбxiднo скopисTaТися кoмбiнaцiеrо клaвiur ALT+<F>. Якщo )к нa BaЦIoМy кoмп'ютеpi iнстальoвal{а МиIIIa' To .цoсTaTнЬo пiдвести iT кypсop дo неodxiднoгo елеМе}lTaГoЛoB}loгo менro i HaТис. нyги rra нiй бyдь.якy клaвiпry. Iнтегpoвaне сrpедoBище тaкoж нa.цaс моrкливiсть poбoти З (гapячиМи клaвiшtaми>>,якi aктивiзyloть poбory нaйбiльtп BикopистoвyBa}Iиx кoМaнд. Haпpиклaд, Nfi ЗaПИcУ ТексTy нaбpaнoi ПpoГpaMи lra диск .цoсTaТньo нaTиснyTи гapячy клaвiruy F2 зaмiсть тoгo, щoб BикopисToByвaTи кoМalrлy мeню Filе. Haдалi МoжЛиBе викopисTaння Гapячих клaвiш дЛя BикoHaння .цeякиx кoМaнд сеpедoBищa бy.ЦевкaзyвaTИcЯ B дyккax. Iнтегpoвaне сepедoвище ПpoгpаМyBaння Turbo Pasсal 7.0 ще по Пpaвy нaзиBaroть бaгaтoвiкoнним. Cеpедoвищe I{aДaскopисTyBaчy зМoГy ПpaцюBaTи oДHoчaснo iз l00 вiкнaми' B якиx Мoже зI{axoдиTисяpiзнoмaнiтнa iнфopмaцiя. B кoжний МoМенT Чaсy Мo)ке бУти aкTиBниМ лиtllе Tе Biкно, B якoМу в.Ll пpaцIoсTе. Cлiд ЗaУBыK|4.ГИ, Щo Пpактичнo кiлькiстЬ oДtloЧaснo вiдкpитиx вiкoн З;Urе)киTЬ oб'смy oПrpaTиBtloi пaм'ятi BaIIIoГoкомЦ'roтеpa' ToМy вiд шo iнфоpмaЦlЯ У вiкнax пiД чaс ceaНc,У poбoти з сеpедoBищеМ збеpiгaсться сaМе B oпеpaтивнiй пaм'ятi. Лишrе зa BaшIиМбaжaнням ця iнфopмaцiя мorке бyги збеpеlкенa y фaйлi нa дискoвi. Poзглядaюvи гoJIoBI{е Меtlto' Ми Дещo змiнимo вкaзaний пopядoк ix слiдyвaння, сТaBлячи Зa Меry пiД час ознaйомленIlя нa перц]э 52 мiсце лoгiчнiсть пoяснення. Filе _ ме}lI0 дЛЯ pобoти з фaйлaми, якi М1сTять тексTи ПpoгpaМ (мал.9). Пiсля aктивiзaцii цьoгo еЛеМeнTa.ГoЛoBtloгo МеHЮ пеpед МеIII0'яке мlститиМе Taкl кoмaнди. BaМи.poЗгopl{rTЬся iоn9 L]han€Iе ]l:indоW !1еl diE... . . sесup. Р' lnLer DOS shelr .t.lt+x Ех ig оL_ 1 1 _ 0 2 . P д s oL_11_O 1 . P!.S oL_ 1 1 _ oз . P д 5 oL 1 4 0 2 . P д s oL1 4 oэ . P д 5 сЕеaЕe a nеU fllе in a nеU Еdiв UlndoU Мaл.9 вiкно для стBopеtlня iнфopмauii iм'я зaдaстЬся фaйлa .це xx _ пopядкoBийнoмеp вiдNONAMЕxx.PAS' кpитoгoвiкнa); New _ Bl.цкpити нoBе (aBToМaTиЧнo opеn... (F3) _ пpoчиTaти з дискa .цля пoдajlЬшroi poбoти тeкст пi.цкaтaлoгa, збеpеженoТpaнiпlе пpoгpaМи з ПOToч}Ioгo сepедoBище; тoбтo з Тoгo' з якoгo бyлo зaпyщенo - збеpегти BМiсT aкTивнoгo вiкнa B пoToч[IoМy Sаyc'(F2) Sаvе as... Savе all Changе dir... Pгint Gеt infо... пiдкaтaлoзi; _ збеpегги вмigг aкптвнoгo вiкнa з нoBиM BкaзaниM iм'я'д; _ збеpегти вмiст всix вiдpитиx вiкoн; _ змiнa кaTаJloгa ДЛЯЧИTaHНЯaбo зaпису фaйлiв ; _ BиBе.ценнЯ пpистpй лpyкy вмiсry aкгивнoгo вiкнa: нa _ iнфopмauiя пpo poзпoдiл пaм'ятi кoМП'IoTеpa iнтегpoвaниМ сеpедoвищеМ; 53
  • 29. _ тимчaсoBиЙ вllхiд в oпеpашifuiy систeмy .4IIяBикoнaшrя дiй нa pЬнi oC (пoвеpнеrпиrftBa,ц irгвгpoвaнe B cФeдoBишIrздйснюсться кoI{aIIдoIo ЕХЩ; _ зaBеpIIIeнНя сeaнсy poботи в Еxit (ALTiX) iнтeгpoвalloмy ' сepедoвищi. Bи звеpнyп,r}.ary }raЕ, Щo ll:u,ви кoмaнд, якi Nlя сBoгo Bllкo. нaнI{явишгaгI{Il,fyгь дoдaпсoвoiiнфopМal{ilдoпoвнeнiсимBoлaМи (<...)) ! oтoж, дJIя пoчaткy poбoти з нalцoю пpoгpaМolo неoбхiднo зaПУaTИTI4 сepедoвищr Turbo Pasсal' вiдкpити нoвe вiкнo File-New i нa6paтитекст нalшoiпporpaМи. Window _ l,tеIllo для pобoти з вiкнaми (мaл.10).Пpи poботi з цим eЛeмellтoМгoлoвI{oгoмeню oсoбливo вiднщнi пеpeвaгиpoбoти 3 миIxeю. ЗaпpoпoнoвaнпЙ нuжчe пepелiк дa'o"o 'oжn""o"'"й еJlеl,lентa е пoвIlиМ. Ми poзгляI{eМo нe ЛиIIIeнaйнeoбхiднilпi з них нa Дaниilмoмeнт. Dos shеll i сarcade сlгJgе atl Retrёsh dtJplay sizа/llove 2:oon tlЁхg Pr.vloц! .jl oE е L j.'t... !,Еrangr i l i шindows on aЬвlссф сErl+r5 г5 г6 shirЕ+г6 Al Е +r з дlg+o ьy iiшng Мaл.10 Звеpнiть y'aгy нa тe' щo пpи poбoтi з бar.aтьмa вiкнaми aкТиBне вiкцo видiляeTЬся )киptloloпoдвiйнolo рaмкoю. _ piвнoмipний poзпoдiл всiх вiдкpитиx Tilе вiкoн нa екpaнi мoнiтopa; Casсadе - poзпoдiл всix вiдкpитиx вiкoн y виглядi кaскaДy, тобтo oдне зa oДIlиМ; 54 Closе All - зaкpиттявсiх aктивниx вiкoн; aктиBIIoгo - змiнa poзмipiв тa пoлo}I(еIlня Sizе/lVIove(Ctгl+FS) змiни poзмipiв вiкнa 3a дoпoМoгoюмицri вiкнa. .(ля вirшo зa пpaB}й rпшсriй неoбxiднo нeю <.пiдчeпиTи>> i .IFя змitти Igr-г pщaш йoгo в нeoбxfuiнoмyнaпpЛt,flry. змrнIцeIIoгoвiкнa нa екpaнi мoнiтopa непoIIo)I(eшu <<пiдчrпити'> йoгo мишrею 3a веpxнlo пooбxiднo двiйнy paмкy i pщaти в пoтpiбнoмy I{aIIpяI{кy; rкpaн; вмiст aктивнoгo вiкнa нa пoвrшпi Zооm (F5) - poзгop}ryп{ вiкнa; (F6) aктивiзaцiянaстyпI{oгo Next Pгеvioцs (Shift+F6) _ aктивiзaцiяпoпеpедtlьoгoвiкнa; Closе (Alt+F3) _ зaкpитгя aктиBtloгoвiкнa; List (Alt+j) - списoк всix вiдкpитиx вiкoн. poбoти з вiкнaми y ,Цлятoгo, щoб пеpекoнafllся y Iиo)кJIивoстi сepeдoвищi Turbo Pasсal, змiнiть poзмip вiкнa, в якoМy знaхoдитьcя текст нaшoi пpoгpaми, спpoбyйтe пеpемiстити це вiкнo по eкpaнy мoнiтopa, вiдкpийтe ще декiлькa нoвиx вiкoн i викoнaйте з tIими oпеpauii змiни poзмipiв тa всi мoжливi вapiaнти poзтaIIIyвaIIIIя декiлькox вiкoн нa екpaнi мoнiтopa. вiкнa нa викo3 Run (ctrl+Fg). зaпyск пpoгpaI,lи aI(тиBI{oгo пoмI{лoI(. пolцyкoм синтaксичниx нaнIIяз oднoчaсниI,r ,Цля тoгo, щoб виKoнaти нaбpaнy пpoгpaтvry'Itеplu зa вое Тi нeoGxiднoзpoбити вiкнo, в якiй з}I8xoдитЬcя текст, aктивним. ,{ля <<Миlшlю> веpxнiй paмЦi Цьoгo вiкнa Ira цьoгo неo6xiднo клaцнyпд oднiei з oпepauiй Nеxt, Previous aбo пepeйти дo ньoгo зa дoпoтvtогoю Пiсля тoгo' як Bи пepекoнaстеCЬ,Щo вiкнo з нaшoю aбo List. пpoгpaмolо € aктиBIIим, нaтиснiть кoмбiнaцiю клaвirц сtrl+F9. Якщo ви нe Peзyльтaтoмцьoгo бyдe 3aпyск пpoгpaми нa викoI{aI{Hя. пolvlилoк'тo пpoгpaМaпoЧIIeвикoнaнIIяi вaм тpебa зpo6или )I(oдI{I,tx бyДе викoнрaти всi вимoги пpoгpaМи: ЗaДaтИ iм'я, нaтиcltщи клaвiury ЕNTЕR тoщo. У paзi нaявнoстi пoМилoк y текстi пpoгpaМи' кoмпiлятop пiдкaже ii вaм, встaIIoвивlIIикypсop в пoзицii, ulo слiлyс зa пoмиJlкoro. Bauri нaстyпнi дii в такoмy paзi зpoзyшliлi: пoдивiться нa зpaзoк Tекстy пpoгpaми' визнaчTeпoмилкy' BипpaBтr ii, кopистylоЧись типoвими прaBиJIaми peдaгyвaння тeкстa, i зaпyстiть пporрaмy }Ia пoвтopнe BикoнaHня кoмбiнaцiсro клaвiur 55
  • 30. tl II II li li i I I ; компiляцiя пpoГpaMи з aктивнoгo вiкнa. Compilе Compilе (Alt+F9) _ сTBopeнняеxe-фaйлaПpoГpaми' якa знaхoв aктивнoмyвiкнi; ДуI.ГЬcЯ _ кoмпiляцiя Пpoгpal4иB oпеpaDestination Меmoгy (Disk) тивнiй пaм'ятi кoмп'ютеpa бeз збеpежeIIня pезyль, тaтy кoмпiляцii нa.щ.{cкy збеpежеrпrяr,r (iз oтpиMalroгo в pезyьтaтi кorvшiляIiiеxe-фaйr'la гIpoГpaМи дц,IсI(yпoнa B тoчнoмy пiдaталoзi). II{oб пepeмкI{yтиoДин pe)киМ нa iнruий неoбхiдногонa цЬoМyелeментiMeнIo'нaтисIIyги клaвiшryмишi aбo клaвiIшyЕNTЕR. Кoмпiляцiя ПpoгpaМи бyДe вaм неoбxiднa y paзi, якщo Bи зaxoчеTr пеpесвiд.rитися y вiдсyтнoстi в нiй ПoМиЛoк без Ii Bикoнaння.oкpiм цЬoГo .цaнaoпцiя сеpe.цoBиIцa l{aдa€ Мo)t(ливiсть збеpеrкеннявикolryBaнoгo кoдy нalпoТ пpoгpaми }Ia дискy. Haда.rri Мo)I(нa кopисЦ/Baтися пpoгpaМoю; I{е зaпyскaючи сepeдoBищa пpoгpaмyBaння. {е мoже бщи кopисниM y Bипaдкy, якщo Barшa ПpoГpaмaнaдaлi бy.Цe нeoднopaзoBo BикopистoB ув;a.rИcЬ. Breа }po t s in Ca ll st а сl ctfl+Е3 S.g ist G r l.lаtсh .,Щrlpdtrt.*jt*{Eff&{A,.t ].,t;:, UsG r lc rc сп f, lt+F5 Еuаluatс/modif9... ffdd шаtсh... ldd Ьr саkpoint... l l lll li I тексТy' з якиМ бyДе вестисЯ Пo.ц€LпьIIIapoбoтa, BикoнyстЬся зa дoTa кypсopниx клaвiru <Bгop)D>,<<BtIиз>>, Пoмoгolo клaвiшi stIIFт <<BпpaBo>), <<BлiBo>>. ж сaмe мox(нa BикoнaTи зa дoПoМoгoto мицri, Tе пi.цвiвIпи fi нa пoчaтoк фpaгменTa Trкс.ry' IIaTиснyBlIIи нa кнoПкy миlшi i pyxaloчи iT Aнеoбxiднoмy нallpяМкy. Зняти вiдмiткy тексTy мoжнa зa дoпoмoгorо пoслiДoвнoгo нaтиснe}Iня клaвiшr Ctrl+K+H aбo нaтиснеtlняМ клaвiшi миtl-li в бyДь.якoмy мiсцi вiдмiчеIloгo Tексry. _ вилу{еIIня вi.цмiчeнoгo фpaгменTa Tексry з Cut (Shift+Del) aкTиBнoгo вiкнa i пеpемiщення йогo B <<киIlIе}lIo>; Copy (Ctгl+Ins) - кoпiroвaння вiдмiченoгo фpaгментa тексTy з aкTиBIloгo вiкнa в <<киlIIенIo>):. в aктивне Paste (Shift+Ins) - кoпiювaння iнфopмaцiТ з <<киlшенi>> вiкнo, пoчинaloчи з пoтoчнoi пoзицiТ кypсopa; _ пеpегляд B oкpеМoмy вiкнi вмiсry <<киtпенi>> i Show сlipboard мoжltивiсть poбoти з tIиМ як зi звичaйниМ тeксToМ; _ знищeнIIя вiдмiченoгo фpaгмeнтa Teксry. Clеar (Ctrl+Del) BикoнaнI{я pедaгyBaння TексTy ПpoгpaМи, якa бyлa Д;гrЯ . зaпpoпotloBaНa ДЛЯ llpиКлaдy IIa пoчaTкy цЬoгo зaHЯ.ГTЯ'Moжнa в пoвнiй мipi викopистoByвaти всi зaпpoпoнoвaнi мoжливoстi. oсoбливo це стaнe в нaгoдi, якщo Bи пpaцIо€ T e y piзниx вiкнax сepeдoвишla з декiлькoмa llpoгpaмaми. B тaкoмy paзi мoяшa кoпiroвaти фpaгмelrги piзlпоr гIpoгpaМ, щo збiгatmься, як цe ми poбили B iItrIПD( Teкстoвиx pедaктopax. Dеbug Еtr l +Еt G tr l +t7 Output _ МeнIo.цЛЯ poooти з нaЛaгo.ц}I(енняМ пpoгpaМи в aктивнoмyвiкнi. _ вiдкpити опецiальнeслyлсбoве вiкно, B якoМy poбoти пpoгpaми кopимoжнa пoбaчити prзyЛЬTaTи стvBaЧa: Usеr sсгeen (Alt+FS) - вiдкpити <<екpaн кopистyBaчa>' тoбтo ПеpегЛЯДpезyльтaтiв вaшoТ poбoти нa комп'ютеpi пoзa сеpедoBищеМ' нa пoвний екpaн. Зауваэюення. B iнтегpoBaнoМy сеpеДoвищi Turbо Pasсal 6.0 output i Usеr sсrееn знaxoдяTЬся B Меltю Window. Bикoнyю.rи ПpoгpaМy, Bи зМoГЛи пoбaчити pе3yЛЬТaTТi викoнa HaНIIЯ.o.цнaк, пiсля дpщoгo нaTиснеHня нa клaвiшy ЕNTЕR екpaнi мoнiтopa зIroвy З'яBилoся вiкнo з тексToМ пpoгpaми. .{ля ПoBтopнoгo Пеprглядy pезyльтaтiв Bикoнaння ПpoгpaMи неМaс пoтpеби зHoвy зaпyскaTи ii нa Bикoнaння. Cкopистaйтеся кoмбiнaцiсro клaвirш Alt+FS i ви знoвy пoбaчите pезyлЬTaTи Мал.l l Edit _ pедaГyl]aHнЯiнфopмauiТ B aкTиBIloМy вiкнi (мaл.1 1). !ля бiльtu гH}Д{кoгo pеДaгyBalrHя текстiв iнтегpoвaне сеpе.цoBище BикopисToBy€ спeцiaльнy oблaсть пaм'ятi <<киIIIеI{Io>)' ЯКa ТиMчaсoвo збеpiгaс неoбxiднy iнфopмaцiю. BиДiлення фpaгментa 51 56 д
  • 31. Bикoнaння ПpoГpaМи. Якщo y. Baс с нeoбxiднiсть пoстiйнoгo кollTpoлю peзyльтaтiв BикOнaннявaluoi пpolpaми' Мo)кнaвiдкpити вiкнo кopисTyBaчaзa дolloМoгorоoпцii Output. У uьoмy виIIaдкyнa екpaнi мoнiтopa бyДе poзтaшroBaнo вiкнa: oдне з текстoм вalцoi дBa ПpoгpaМи'дpyге _ з pезyЛЬ.I.aтaмивикoнaння. Тi <<дебaгoм>>, Пpоцес гIoПIyкyпoМилolt }lutзивalоTЬ нaлaгoркyвaчeм. У пepeклaдiз aнглiйськoibug oзнaua€ кoмaxy' жщa. I.дiйснo, лoгiчнi ПoМиЛкипoдeкyди бyвaloть тaк глибoкo сxoвaнi, щo нa ii aналiз Ta IIoшIyк BитpaчarTься бaгaтo uaсy. BикoнyBaти склaднi пoкpoкoвi дiТ без .цoпoМoгикoмп'ютepa дy)кe Ba)ккo.I oсь Tyт нa дoIIoMoгyпpoгpaмiсry пpиxoдитЬ сaме iнтегpoBalrr сepe.цoBиIIIe, де пepедбavенe пoкpoкoве Bикoнaннявсiei пpoгpaмн aбo ii фpaгментa. Wаtch _ вiдкpити нoве вiкнo для пеprглядy пoтoчI{иxзнaчe}Iь Bкiвaниxзмiнниx (мaл.12). Мaл.l2 .Цлянaдaння iменi змiннiй неoбxiднo y вiкнi Watсh нaTИcHУт|| нa клaвiury INSЕRT aбo двiчi ga.ГИcвlУтИ кнoпкy миruки' Pелiвy зyЛЬтaтoмцiсТ дii бyДе пoявa нa екpaнi Щr oдHoгo вiкна, дe й BBoдяTь iм'я неoбxiднoi змiннoi (якщo Ця змiннa с iменем МaсиBy' то у вiкнi Watсh бyлемо спoстеpiгaти зa змiнoю знaчень всix елементiв |v'acИBу оДнoчaсно)' B iнтегpoвal{oМyсepе.цoвищiTurbo Рasсal6.0 менкl Watсh poзТaIIIoBaHе B МrнIоWindow. 58 ПoToчtly змiнy знaчеIlЬ BелиЧин Мaс 3виvaйнo, шlo ПерегЛя.цaти сМисл лиule Пpи пoкpoкoBoмy Bикol{aннi пpoгpaми. B iнтегpoBaнoМy сеpедoвиЩi пеpедбavенa i тaкa мorкливiсть. Pозглянeмo декiлькa ii ваpiaнтiв. Пpи нaтисненнi нa фyнкцioнальнy клaвiшry F8 пpoгpaмa 6улe BикoIЦ/BaTисЬ y lloкpoкoBoмy pежимi. flля викoнal{ня кo)кI{oгo нaсЦ/ТItloгo Pядкa в текстi пpoгpaМи неoбxiднo нaTискaти нa клaвiruy F8. Ha кo}к}IoМy кpoцi викoнуъaниil pядoк пpoгpaми бy.uе пoмiчaтися блaкитнoю сМyлкolo. .{o pенi, якщo B oдtloМy pядкy poзмiстити декiлькa кoМaнд пpoгрaми, тo бyле викol{aнo BсIo ЦIo Гpyпy кoМalr.ц'зa oдиI{ кpoк. Toмy, якщo с потpебa пpoслiдкyвaти, як BикoнyюТЬся кoмaнди в тiлi циклy, тo peкoМeндyсться poзбити ix нa oкpeмi pядки. Якщo пoчaToк пpoгpaМи нe BикJIикaс нiякиx сyпlнiвiв, тo 1. МoжI{a BсТa}IoBити кypсop нa тoМy pядкy пpoгpaми' з якoгo неoбxiднo BикoI{yBaти пoкpoкoBий пepeгляд пpoмiж}Iиx pезyльтaтiв' Зaпyск пpoгpaМи нa Bикoнaння з.цiйснюеться пpи цьoМy за дoПoМoгoro фyнкцioнальнoi клaвiшi F4' Пpoгpaмy бyде Bикoнaнo дo Bкitзa}Ioгo pя.цкa' a Дaлi' кopисTylочисЬ B)ке знaйoмoro клaвiшeю F8, пpoдo. BжиTе lroкpoкoBe Bикoнaння дiй i вiдслi.цкoByBaння знa. чень змiнних y вiкнi Watсh. Bикoнaння пpoгpaМи ви знaйrпли 2. Якщo Ще дo зaBrpIIIеI{IlЯ iТ пoДaльпrе BикoнaнHя мo)кнa 3a дoПoМилкy, Т7q|4I1ИHИTИ IloМoГoю кoмбiнaцii клaвiru Ctгl+F2. Якщo вaс цiкaвитЬ кorrкpетHий фpaгмент y пpolpaмi i ви 3. xoчeТe <ПpoкprlyBaTи>> цикJI' зyПиняIoчисЬ Bесь Чaс нa pяДкоМ>> IDoItry мiсцi, тo йoгo мoжнa пoзHaЧиTи <<ЧеpBoниМ зa дoПoМoгoro кoмбiнaцiТ клaвiш Ctrl+F8. Tarсx кoшгpoJlьIlиx BсTaнoвити в пpогpaмi Декiлькa. Bикoнaн. зyпинoк Nlo)Iс{a ня ПpoгрaМи мiж ними здiйснIoсTься 3a .цoПoМoгoloкoМ. бiнaцii клaвiшr Ctгl+F9 aбо покpoкoво к'гIaвiшrеюF8. Знятгя кoнTpoЛЬHиx Toчoк з.цiйснtoстьсятiсro хс кoмбiнaIIoзI{aЧеI{oМy цiскl клaвiш (Ctгl+F8) B сai,{oМy ряДкy. Iснyс Ще oднa МoжЛивiсть Для пеpегЛядy IloTotlнoГo Знaчен}Iя бyль-якoi змiннoi y пpoгpaмi (мал.l3). Hе вiдкpивaroчи вiкнa Wаtсh, пiД час ЗyПинки Bикoнatlня ПpoгpaМи Bи Мo}I(еTескopисTaTися кoмбiнaцiсю клaвiшr Сtrl+F4. Пpи цьoму вiдкpисться нoве вiкнo, де Мс}жнa нa6paти iм'я змiннoТ велинини, знaЧе[ll{яякoi шотpiбне нa i ДaниЙМoМеLIТ, пеpеглянрlt його y нaстyЛнoмy pялку вiкнa. 59
  • 32. Bикoнaйтe poзглянyгi мorкливoстi сеpе.цoвищa' ПpoкoнTpoЛIoBaBIIIи знaчeння змiннoi nаmе Пеpе.ц зaПyскoМ пpoГpaМи нa Bикoнaння' пpoТягoМ BикoнaннЯ тa пiсля iТ зaвеpшeння. гilе Еdiс searсh 8ш L]фpilе ioцs fiiцdоs неl qдщдЦ8r ryщщ trщ qmщщщ еgult еv Еluе М а л.l 3 П u ma ння dля caмoкoнmPoл to : 1 Щo olHaЧae mepмiн .iнmepaкmuвне iнmeеpoвaнe cepedoвuщe"? 2 Якi функцii.вuкoHyepeОaкmop в cepedoвuщi npoеpaмувaння? 3 Якi функцit'вuкoHуempaHcлЯmop в cepedoguщi пpoеpaмувaння? 4 Якi функцiiвuкoнуe нaлaеodlкyвaн в cepedoвuщi пpoepaмувaння? 5 Якi ocнoвнi функцГiiнmerpoвaнoro сepedoвuщa Turbo Pasсal 7.0? 6 Якuмu <?apЯчtlMu клaвiшaмu, iнmezpoвaнoеo cepedoвuщa lpyчt1o Kopucmувamuся пid чac нaлaеodlкeння пpoеpaмu ? 11.Пpaкmuчнa podoma KPodoma в cepedoвuщi npoеpaMувaння,, Зa нaведеним сЦенapiсм викoнaйте зaBДaння Пo сTBopеHню Ta HUIaГo.ц}кеннro ПpoГpaМи B сrprдoBищi Turbo Pasсal 7.0. 1) Запусmumu cеpedoвuще Turbo PаscаI 7.0 за donсl'llоеoro фаiь,tа turbo'ехе. 2) Bidкpumu нoве вiкнo за donoмozoto елеменmа.меrrlo Filе-Nеw. 3) Hабpаmu mакuЙ mексm npozpа,||4u: pгogram squarе; vаr a, b' s : intеgеr; 60 bеgin writе ('Зaдaйте цiле числo, rцo € IxиpиHoIo ПpЯмoкyтникa: '); rеadln (a); wгitе ('Зaдaйте цiле чисЛo,щo € BисoToIo ПpяМoкyгникa: '); гeadln (b); ' S:=n*6 writеln ('ГIлorцa ПpД,{oКytttrкaзi gгopoнaМи ' ,ц' Ta', b,' дopЬнroс ',s) еnd. 4) Збеpеzmu mекcm на6pанoi.npozpаJ|4u за dono,uoeoю еЛeJЙенmсl ,ц4еttlo Filе-Sаvе аs'... 5) Запуcmumu HсI вuКОнсIrulя npozpаIv|у З акmuвнolo вiКна За do n oмoeoю <Zapячuх КJlавilu > Ctrl + F9. 6) Bunpавumu noJу|Itлкu, якщo вol7u буdуmь Знайdенi, i заnусmumш пpozpа-Inу Hсl вuКoнсlння щe paЗ. 7) Збеpezmu нсlЛаZodJ!сeну npozpаJуtу За dОnoJ'|ozolo <<zаpячoi. клавiuti>>F2. Пеpezлянуmu pеЗуЛьmаmu poбomu npozpа"]|lu Зtr donoмozoto <Zсlpячuх клсlвiш> Аlt+F5 i noвepнуmuся назаd в cеpеdoвuще за donoмozoto клсlвiшi ЕSС. 8) Bidкpumu вiкtto Wаtch mа npoкoнmpoЛюваmu ЗнсtчеHня змiннuх а, b, s npОmяzolvt noкpoкoвОZО вuкoнсlння npОZpаJvtu' l1pozpа,|lu За dono,цozoю <Zсlpячuх 9) Сmвopumu ехе-файl кл а вitu > Аlt + F9 (в p еэюtt,ui D еs tinаti on- D i s k ). За dono,цozoю IО) Закpumu вitснo З вuкoнаIloю lxpОZpа.^,|oю клавit'tlAlt+F3. |1') Завеpшumu сесl|!c poбomu в iнmеzpoванО.l,lу cеpedoвuщi npozpа,4ування Turbo Pаscаl 7.0 за dono.мozoю <Zсtpячuх KцавiLц>АIt+X mсI Заnусmumu на вuКО|rання odеpэюанuй ехефай'п npozpа.I|u З О|lеpацiйнoi,сuсmеIlu абo з i1.oбoлoнкu. 12) Скopекmуваmu mеКсm npОZp(tJИu, навedенoi.у n.3 mакuм чuHoлt, щoб вoна oбчuслювала l1]Ioщуквodpаmа, i вt,tкoнаmun.n.] . ] ] . 12. Moвa пpoеpavувaння Пacкaль mа ocoб-цaвocmi nDuзначеttня r 1910 poцi з'явилoся пoвiдoмлеHнЯ пpo сТBopеннЯulr o.цнiеi нaзвaнoТнa чесТЬ вiДoмoгo B)ке нaМ MaТеMaМoBи пpoГpаМyBaнHЯ. aBТopa oднiсi З Пrpшиx меxaнiчних oбчислroвarrЬниX МaIIIиI{ Tикa, Блезa Пaскaля. Aвтopом цiсТ мoви ПpoгpaМyBaннябyв Hiклayс Bipт, пpoфесop' .щ{pеКrop Iнстlтг1тy iнфopмaтики lllвейцapськoi виЩoi 6l
  • 33. пoЛiTеxнiЧIroi шIкoли' Лaypеaт TьюpингoвськoТ пpемii, aBTop числеIlllиx Тa lrпrpoкo вiдorrпоt Пparь B oбдacгi пpoгpalvryBal{Irя. Bipт с H. aBтopoМ ще Taких МoB IlpoгpaМyвaння' яЁ Ейлеp, Мoдyлa, Мoдyлa. 2. oкpiм цьoгo' ним зaIIpoпoнoBaIIa МеToдикa пoкpoкoвoi poзpoбки пpoГpaм - вiд глoбaльнoro дo Лoк€UlЬнoгo, вiд зaг€шьнoгo дo чaсткoвoгo' - тoбтo зaн)4)eнIrяB aлгopитм зBеpxy вниз. I{я метoдикa 6у лa впзнaнa нaйсlтrьнiшroro i.цeолoгiсю пpoгpalvlyвaння 70.x poкiв. Bipт виpiшlиB BЗЯTИcЯзa стBopeння нoвoi МoBи пpoгpaМyвal{I{я з мeтoдиЧI{oi тoчки зopy; дaTи свoТм сryДeнтaм iнстpyмeIIT для BивЧеIIня пpoгpaм}вal{Ilя як систеMaТиЧtloi, лoгi.rнoi дисциплiни, щo бaзyеться нa фyндaмеIIтaJIЬIlиx пoIIяTTяx. У свoiй poбoтi <<CистeмaтичнепpoгрaMyBaнIIя)>Hiклayс Bipт пишIe: <(...мoBa' якolo сTyдeнтa I{aBчaIотЬвислoвлIoвaти свoi д)Дики, здiйснюе глибoкий Bплив нa йoгo IIaBички МиcлеIIня Ta винaхiдницькi здiбнoстi...>>. Moвa пpoгpaмyвal{I{я Пaсkaль, нa вiдмiнy вiд yсiх пoпеpeднix пoпyляptlих МoB' дaЛa пpoгpaмiсry B pyки пpoстi кoнстpщuii кoМaIIд' щo BиглядaюTь дy,ке tlpиpoднo. Toбтo Тx змiст спiвпaдaе з тиМ' чoгo iнryТтивнo чrкaс кopисTyвaн. Ha6ф кoМal{д мoви Пaска.гь, нaцpикIlaД, y пopЬншшi з мoвоto ttpoцpalvгyвalrtrя Basiс, зовсiм нeве. ликий i склaдaс ii бaзoвy чaстиI{y. Усi дoдaткoвi мolкш,rвogгi Пaска.гш дaIоIъ зМory пpoГpaмiс-гyкopисTyвaтиcЯ TИflaМИ змiнниx, tцo властивi лишe цiй мoвi пpoгpaМyBaння' a Taкo)к ствoploBaти свoi влaснi типи. .(yже швидкo МoBa Пaскаль нaбулa вeликoi пoпyляpнoстi сepед пpoгpaмiстiв i бyлa pеaлiзoвaнa для piзниx типiв кoмп'toтеpiв. Ми poзглядaтиМеМo iнтeгpoвaнe сеpедoвищe ПpoгpаМyBaння Turbo Pasсal 7.0 i бyдемo вiдзнaчaти в paзi неoбхiднoстi йoгo вiдмiннoстi вiд iнтегрoвalloгo сеpедoBищa пpoгpaМyвaння Turbo Pasсal 6.0, xoчa yсi кoмaнди тa пpикЛaДи, щo бyдyгь нaведенi дaлi, Мox(yгь бщи викopистaнi i в yсix пoпеpеднix веpсiяx. Bи змoжете нtшe)IGIиMЧиI{oм oцirpm,r Bсю l(paсy тa пpивaбrпвiсть МoBи tlpoГpaт{yвaшr,I Пaскaпь i пiсля ii вlшчеlтня у вас oбoв'язкoвo З'явlц.tЪcЯ пoщебa в пoглиблeннi свoii пpогpaмiстськиx I{aBиЧoк. Алфавim мoвu npolpаJ|4увсtt|ня цe набip cuлtвoлiв,якi мoilcуmb буmu вuкopucmанi npu cклаdаннi npozpамu. Клaвiaтypa кoмп'ютеpa мiстить всi..симвoли aлфaвiтiв, щo BикopистoByк}тЬся B бyДь-яких мoBax fipoгpaмyвaння. 3нaйoмсTвo з I.loBoIoпpoгpaмyвaння IloЧинarтЬся сaмe з a.rrфaвф: кopисTyвaчy дaнa мoBa пpoгpaмyBallня. неoбxiднo зI{aти' якi симвoли <<poзyпliс> пpoгpaМy' нeoбxiднo тoгo' aби бeз пoмилoк L|aTIуIcТrИ Яснo, щo для зI{aки зaдaнoгo aлфaвiry. Bикopистoвyвaти лиlIIе Haстyпним кpoкoм y знaйoмствi з мoвoю пpoцpaп{yвaшIя€ BиBЧеIilrя цpaB}rпзulllисy oпфixT.opЬ тa oгпасЬ, лсi щlшlyспnлi в дaнiй мoвi. ,. i;Д} noбуdoвuiз cull,tвoлiв Сuнmакcuc вulначar npсIвu,Ла кoнcmpукцiй,за donoмozoloякuх алфавimуcnецiальнuх заDач. polв, хlувсll1ня мoctснаpeалiзуваmuалaopumл'u Aле дarreкo нe зaB)к.ци синTaксиЧнo llpaвилЬнo нaписaнa oviкрaний pезyльтaт. Як i в бУдь-якiiц Ilpoгpaмa пoBиIIнa rlИДaTуI poзмoвнiй мoвi пpaBилЬнo зaписaнi з тoчки зopy сиIITaксисy peЧенllя пoвиннi мaти змiст. / Сeманmuкoю наЗuваюmь сuсmеJ'|у npавI|'xmлуJЙачeння /l (-.:J кoнспpукцiй J|4oвunpozpаJ||увсlннЯ' Cинтaксичнi пoмилки BизI{aчaIoтЬся кoМпiЛяTopoМ сисTеми пpoгpaмyBal{н'l' семaнтичнi - сисTемoк) тестiв, пiдiбpaниx сaмиМ кopистyBaчeм. Haвчити читaчa poбити якoмoгa MеIIшIeсинтaксиЧ. ниx, a пoлoвнe сeмaнтиtII{LD(пoмI{лoк i с пеpruoнеpгoBим зaB.ц'аI{I{'Iм дaнoгo пoсiбникa. A зapaз детальнiшrе oзнaйoмиМoся з aлфaвiтом МoBи пpoгpaмyвaння Пaскaль тa зapeзеpBoвa}Iими олoвaми' Иoгo склa.цalоть: clttilвoлu' щo Bикopистoвyються для yгBopеl{ня iмен змiнниx. .{o ниx нЕUIe}(aть: o лaтиI{ськi мaлi тa вeликi бyкви; о apaбськi цифpи вiд 0 дo 9, якi в iмeнax змiнниx мoжyгЬ викopистoBувlaTИcя лиuIе 3 дpyгoi пoзицii; Алф авi m,v oв u n Dozp алtvв ан н я oпис бyль.якoТ йoви, B ТoМy числi i а,тt.opитмi.rнoi, мiстить в сoбi алфaвiт' сиHTaксис i семaнтикy. Утoчнимo цi пoняття. . сиI{вoлпiдкpeслення; Diлю вaчL .(o ниx llaлe)кaть cuJ|,'вo,лu-poЗ . симBoл пpoбiлy, Oс}IoBнeпpизнaЧенHя якoгo _ це pоз.цiлення KlIIoчoBиx слiв тa iмен; о керyloчi сиMBoJIи' якi мoжрь BикopисToBУBaтИcЯ Пpи oписoвi pядкoвиx i симвoлЬIlиx кo}IстaнT; 62 6З
  • 34. сnецiаJlьнi cu.л4вoЛu' BикoнyIQTЬ пеBI{i фyнкuii пpи пoбyлoвi щo piзнoмaнiтниx кoнсTpyкцiй мoви: + -*|{}tlO().,': ; h@# $ якi кoмпiлятopoмяк сДине цiле: cклаdенi cuJуtвoЛu, спpиймaюTЬcЯ <==>:=(* *) (. .) .. _ це <невuкopuсmoвуванi с|t]vlвoЛtJ>> симBoЛи, якi не вiднoсяться дo BикopистoByBaTи B TексT:lx кoмеrпapЬ тa в п. п. |-4, а.пежi Мo)IG{a кoнсTaIIт; жoсгi знaчеrь pяД(oBID(тa симBOJънI,D( Заpе1еpвoванi слoва, ToбTo клюЧoвi сЛoBa, якi вxoдять дo слoBникa МoBи ПpoгpaМyBaння i якi не МoжI{a BикopистoByвaти B якoстi iмен змiнниx. ,цo Taкиx кЛючoBиx слiв вiднoсяться слylкбoвi слoвa дЛя зalмcУ oпеpaтopiв ( if' then' еlsе, whilе, rеpеat тoщo), Bизнaчrння poздiлiв Пaскaль-пpoГpaми (сonst, typе' vаг тoщо), iнтпi клtочoвi словa (bеgin, еnd). !ля зp1"rнoстi в дaнoмy пoсiбникy y нaBедrниx пpикЛa.цax пpoгpaМ всi зapeзеpвовaнi слoвa ви,цiлeнiжиpйим u.rpифтом. .(o aлфaвiтy МoBи Пpoгpaмyвaння Пaскаль BaМ дoBедеться звеpTaТисЯIцopaзy ПpoTягoМ poбoти з .цaним пoсiбникoм. Caме пiД Чaс ПpaктичItoгo зaсBoсння циx нoвиx ПoняTЬ Мoжнa oTpиМaти пoзитивний pеЗyЛЬTаТ. мoвш ocнoвнi noняmrnя ПpoГpaМyBaння нuUIе)китЬ:onepа,(o оснoвниx Пotlять I,{oBи mopu, ideнmaфiкаn'opa' чucлa' cllJ||вoЛlt, pяdкu. B оснoвi бy.Ць.якoТ мoви ПpoГpaМyвaннЯ ле)I{иTь ПotIЯTTЯ oПеpaTopa. ()пеpаmop _ це ссL|Иoсmiйна oduнuця лIoвlt,яксl onuсу€ ',l} з,llicm вidnoвidнoеo е|паnу алzopum.uiullozo npoцеcу. Алzopumм заdасmься nocлidoвнiсmю onеpаmopiв' oпеpaтop € тиМ сaМиМ ПpиПисoМ, з послi.цовнoстi якиx скJIaдa€ T ЬсЯ iulгopитм. B мoвi пpoгpaмyBaння BизIlaЧaсТЬся фiксoвaнa Пpизнaчений викoнyвaти кiлькiсть типiв oпеpaтopiв, кolкнИй З ЯК|4X склa.цaннi tlpoГpaМи дoзBoЛЯсTьсЯ певний нaбip дiй. Пpи BикoрисТoByBaTи ЛиlIIе Цi oпеpaтopи. Зaпllc aЛгopитМy MoBoк) пpoГpaМyвaння € пoслiдoвнiсТЮ oПеpaТopiв. oпеpaтoри B сBoIо чеpГy BикopисToByIoTЬбiлrьrш лpiбнi кoнстpyкцii. B пеpевalкнiй бiльruoстi пpoгpaм BикopисToByIоTЬся змiннi BеЛичини, a для iх tloЗнaчr}IнЯ_ iменa aбo iдентифiкaтopи. o4 Ideнmuф iкаmopu абo iмeна вuкopucm oвуюmьcяdля no З I|ач e H17язtlц iннuх в елuчuн, 3ayвaжимo,щo y Пaскaлi пoнятгя iдентифiкaтopaзI{aЧIro IIIиp. шe. Iдентифiкaтopaми пoзнaчaroтЬся Tzlкox(i. кoнстaнти, i типи дaIIиx' i прueл5ри тa фyпшfi. Пр мo:кгпвocгi нaдaння цим eлeмellтaМ пpoгpaМиiдентифiкaтopiвбyДемoзнaйoмитисяIIoсTyпoBo. Bеличинa,якa нr с зI,riннoю, вiдцoвiднo l{aзиBarтьсякoнстaнтolo. B пpoгpaмi кoнстaIITи пpедcтaBляIoтьсячислaми' симBo. лaI{и. текстaми. Пpeдстaвлel{нIо чисел слiд пpидiлити oсoблиBy yBary, a сaмe слiд вiдпoвiсти нa тaке слyIIIне зaIIитaння: якиМ чинol,l числa збеpiгaютьояy пaм'ятi кoмп' roтepa? Ш{o стoсyeться цiлиx чисел' тo немar нiякиx пpoблем: цiлi числa зaдalоться кopистyвaчеМ i вивoдяться пpoгpaмolo У тpaдицiйнoмy виглядi. ,{ля пoдaтlня дiйсниx чисeЛ y Пaскалi тa il в iнlшиx мoBax гIpoГpalvryвaння, iснyс двi фopми. Пpupodна фopма diйcнozo чuслс'-це mpаduцiйнuй заnuc diйcнoaoчucЛa. Heoбxiднo лиtПе пaм'ятaти' щo B МoBax пpoгpaМyвaвнЯ,Ha вiдмiнy вiд мaтемaтичнoгo зaписy, цiлa чaстиI{aдiйснoгo ЧLlcЛa вiддiлястьсявiд дpoбoвoi кpaпкoro,a не кoмoю. Haведeмo дeкiлькa пpиклaдiв: |0'|2з, |.0|2з,|0|2.з,0.00l0l23 . Bсi цi .rислa piзнi зa знaченняМ' aJIe зIlaчyщa Чaстинa, aбo МaHтисa'y ниx oднaкoBa. / Пoказнuкoвафopлtаdiйcнozo чucлa_ це npedcmавлення '/l l:J йoеoу вuatяdiлlанmucui nopяdl<у вказiвкoюiх знакiв. iз Не зaвжди чисЛa, з якими мatотЬ сПpaBy пpи прoгpaмрaннi, BиглядaTиМyгЬтaк зpуrнo. Пoдeкyди це бyдyгЬ .Цylкевeликi aбо зaйвi нyлi не зoвсiм зp}ДIIIo. дy)ке Мilленькiuислa,для якиx зaДaв,aTИ = PoзглянемoпpикЛaдМ€ U Ioгo0.000000000|0|23 1.0123*10.10 aбo дylке Bеликoгo чуlcлa|0|230000000000000000=1.01 23*|020 . oтже, y пoк€ B никoвiй фopмi чисЛa Мoжнa видiлити тaкi oснoвнi xapaкTepисTики: зHaк Чу!cЛa' МaнTисy Числa' знaк пopя.цкy Ta пopЯдoкчислa. Усi pештa елeментiвзaписy ЧИcПaУпoкaзникoвiй _ oснoBa степеня (10). Це фopмi пoвтoploюTЬсЯ знaк Мнo)кeнI{я' 65 I
  • 35. i oзнaчaс,щo зaпaм'ятoвyBaтиii y пaм'ятi кoмп'ютеpа IIr мa€ нiякorо, сeнсy. I дiйснo, сaМe зaзнaченi votиpи xapaктepистики дiйснoтю y нислaзбepiгaютЬся пaм'ятi. Bи, мaбщь' чeкaстe вiдпoвiдi нa зaIIитaння:цe ж I{e заIIис числa, a пoдaнrrя йoгo y виглядi aрифмeтинкиx дiй мнoжеlll{ln тa пiднесeння до стeпеня? Щoб yникнyги uиx apифмeЕrsЕIrх дiй, дiйснe llислo у lloкaзникoвiй фоpмi в ГIaскaлi llодa€тЬся тaKиМ чиIloМ:1.0l23Е.10 У цьoмy зaписoвi симBoJIЕ oзнaчaеoснoвy стeпeня10, i кoмп'ютep poзпiзнaецeй.зaпис,як фopмy зoбpaжeння дiйснoгo ЧI|a|a. Хapaктepнo, щo дoдaтнi знaки числa i мaнTиси Мoяffiaнe вKЕt:lyвaти' aвтoМaтичtlo. вoни бyдщь встaнoвлeнi сxeмaтич}Io oоновнi xapaктepистики дiйcнoгo Bизнaчимo числa(мaл.l4). .1.0123 t l5 симвoлiв, якi Щoдo B мoжyть викopистoByвaтисЬ якoстi кoнстаrrт' тo ми B)l(е Bизнaчилиix в aлфaвiтi мoви чuс.Лa nоpлdry Pядки Пaскaль. цe Мaтl.14 пoслiдoвнiсть симвoлiв. I симBoли' i pядки мo)l(yтЬ Bикopистoвyвaтись в Пaокaпьпpoгрaмi як кoнстaнти, i як кoмeнтapi. Як сaмe Це poбиться, зapaз гoвopити llepeдчaснo. oпaнoByючи цeй пoсiбник, Mlt з вaми бy.Цeмo зyстpiнaтися з oсlloвlIиIr,lи пoHятtяMи мoви нa прoгpaмyвaння кoжнoмy кpoui. ,,I*1,".**{-h СmovкtпvDarrаcка,ль-noozpалlu Мoвy пpoгpaluyвaння Мoжна сoбi yявити як деякий зaсiб спiлкyвaння з кoмп'ютepoм. Тoмy, як i y бyдь-якiй iншiй мoвi спiлкyвaння,TУT € пeвнi дoмoвлeнoстiy пoдaннi свoiх вислoвiв: свoя aбeтката синтaксиvнiпpaвилa. скJIaдaстЬся oкpеМиx <pе. з Cинтaксичнo Пaскaль-пpoГpaмa МoжyтЬ бри леякi ollиси для сaмoТ Tакими <peчeнI{ями) ченЬ)>. пpoгpaми aбo кoмaнди' з якиx склaдaстЬсяДaниilirлгopиТМ. , ..ft Паcкаль-npazpa'Munoвult|7oзакiнaуКoэrне <pечelrня> / l-'**} <<;>). ваmuся cu-n4вo!lo.4 Пoслiдoвнiсть пpедсTaBлeI{}lя ilлгoритMy y виглядi ПaскальМaс ТIpotparl,'и пeBнy зaкoнoмipнiсть. 66 Bизнaчимo ii тaк: program <iм'я пpoгpalr{и> ; шsеs<poздiлoпI,lсyбiблioтeк (мoдyлiв), щo пiдключaються>; labсl <poзлiлollисy мiтoк>; соnst <poздiлoписy кoнстaнт>; tур <poзлiлoписy типiв>; vпr <poздiлoIIисy змiнниx>; p]oсduге aбo funсtion <poзлй oписy пpoцeдypi фyнкцiЬ; <poздiлoпepaтopiв> Bи, мaбщь' зBеpt{yли yвary, шo слyжбoвi слoвa Пaскaльпрoгpaми' як i бyлo з&tнaчeнopaнiше, видiлeнi жиpt{им urpифтoм. Haдaлi слyкбoвими слoBaluи BBФкaтимeмo клloчoвi слoBa. з якиx склaдaються ollepaтopи Пaскаля, i нaзви йoгo стaндapтниx |lpoцeдyp тa фyнкuiй. oкpiм тoгo, вся пpoгpaмa poзбивaеться нa певнi poздiли. Бaжaнo збepiгaти тaкy пoслiдoвнiсть BикopистaнI{я рздiлiв, xova, нaбyвaючи дoсвiдy, ви rrобa.lитe' щo дeякi з них мoжнa мiняти мiсцями. oднaк .цlебa вpaхoв)ваTи,що poздiл oписy мoдyлiв пoBинeI{oбoв'язкoвo йти пepшrим,a pоздiлoм oпepaтopiв завepшIyеться кoжнa прoгpaмa. Poздiл типiв oбoв'язкoвo пoBиHеI{ пФeдyBати poзлiлy змiнниx, a pоздiл мiтoк тa poздiл кoнстal{т 6aжaнo poзмiщyвaти пrpeд poздiлoм типiв. Пepшим pядкoм пpофaми зi слyжбoвиМслoвolupгogгam мo)t(нa знeхТyвaти. Умoвнo цlo стрyкг}Py мoilс{a пoдiлити нa двi чaсти}lи _ описoвy чaстинy тa викoнyBaнy. Оnuсoва час|nuнаQlrogrаm, uses,IabеI,const, фpе, var) мicmumь iнфopлlацiю ,|po якi мoэrcна ^|oclсJluвocmi, вuкopuсmoвуваmu npoеpаJ|4i, буdуmь якi у кoнсmoнmu, i4imкu, яI(u]уru зlttiннtlлцu кopucmуваmuся. Caмe зa змiстoм.цiсi oписoвoi чaстини всiм вкaзaним змiнним вiдвoдl,tться мiсце y пaм'ятi кoмп'ютepa зaлeжнo вiд ix типiв i пoсЛiдoвнoстi, в якiй Botltl зtвнaчeнi в пpoгpaмi. Buкoнувана чacmuна мicmumь onuc npoцеdуp, функцiЙ mа oct|oв||uйблoк npozpаJv'u,якuй ще l|аnuвс'сmbcя пiлoлl npozpсlJ||ui poзmаutoванuй лцicr cлуэtcбoвuл,tu aloва.fo|ubegin mа еnd. 3aвepu.tyеться Пaскaль-пpoгpaмa зaB)кди симBoлoМ <<> . . Як пpиклaд нaвeдeп{o прoгрaмy' зa дoпol4oгoю якoi Mo)кнa обчислити плoщy крyгa, вкaзaвши бyль-який paлiyс. ,. ',l lJJ 67
  • 36. pгogram сirсle; v arr's:геaI; bеgin write ('3aдaйтеpaдiyс кpщa: '); геadln (r); s:=pi*r*r; wгitеln ('Плoшa кpyгa з paдiyсoм ',r,' дopiвнюe ',s) еnd. зirдoпoМoгoloякoгoдoсtrвкгraДeнocгi, 3вepнiть yвary нa гIpIдflдтt <сптгaбeшнiсты> Bмiсг рздф oпегIpoгpaми. Baшloi мaксиМ:Uъ}ra aс:rЬcЯ тpоxи Bпpaвo вiднoснo слyя<бoвиxслiв bеgin 'тa paтopь змiщеrшшi еnd.. Aнaлoгiчнo ЗaпИcaнai oпиоoвa Чavfufila Паскaль-пpoгpaми. oпepaтopи, пpoГpaМизaписyrтЬсяЗ нoвoгo pя.цкa. Кoжнe <<pечeнIIя>) якi е вмiстol,t iнtпиx, змiщyroться вiднoснo Hих Taк сaмo впpaвo. I{е дoзвoляс кpaщe poзiбpaтися y скJIaдниx пpoгpaМaх, знaйти B IIиx пoмилки нe тiльки сaмoмy aвтopy,aлe й стopoнньoмy кopисTyBaЧy. Пumaння ё|ля caмoкoнm poлK' : Пacкaль? Moвurlpoapaмувaння ma 1 Якi oсo1лuвocmi пpulHaчeHнЯ мoвu Пaскaль? 2 Xmo a poзpodнuкoм 3 lJto maкeaлфaвimмoвu пpoepaмувaння? мoвu пpoepaмувaння? 4 Щo maкecuHmaKcuc Moвuпpoеpaмувaння? 5 Щo maКeceмaнmuKa do Якi 6 Haзвimьcu^lвoлu, вхa1Яmь aлфaвimумoвu Пacкaль. npoepaMувaHнЯ. 7 Haзвimь ocнoвнiпoняmmямIoвu onepamopoм? 8 Щo нaЗuвarmьcя 9 Щo maкeideнmuфiкamop? diЙcнiчucлa? з1epieaюmьcя пaм,яmiкo;мп'юmepa 10 У якoмувuеляОi у npoеpaмувaння? чuceлв Moвaх diЙcнuх 11 Якi е фopмunpdcmaвлeння в Пact<aльлpoеpaмi? t"oкуmьвuкopucmoс'yв€1mucя 12 Як cuмвoлumapяОкu 13 HaзвimьocнoвнipoзdiлuПacкaль-npoepaМu' Якeiх пpuзнaнeння? Пacкaльлpoepaму? мoжнa,пoОiлumu 14 Ha яi чacmuнu Лiнiйнi aлгopитlvlи V 13.Beлuчuнu Пoняmmя вanuчuнш ocнoвнi хлoаюnepucmuкu вeлaчuн Aлгopитми, Taк сaMo як i пpoгpaМи' в пeplшy чеpгy МaIоть сЛoвник TлyМaчиTЬ сПpaBy з вeПuчu'IаJtlu. ЕнциклoпедичниЙ пotlяття Bеличини як yзaгaJIьIIення кoнкpeTниx пoI{ятЬ: дoBжи1lи' плoщi' Baги тoЩo. Bибpaвши oднy з вrличин .цaнoгo po.цy зa 68 oдинllцю вимipy, Мo)l(нa в,ИpaзWTllчислoМ вiднoIшення бyДь.якoТ iнrцoi вeличи}Iи цьoгo )к poдy дo oдиницi вимipy. Toбтo цe пoняrгя нoсить кiлькiсний, пopiвняльний xapaкгеp. 3 тoчки зopy aJlгopитмiзaцii в якoстi BеличиIl тa ii сyкyпнoстi висЦ/тIaIoтЬ дaнi, щo oбpoбляються цими aJlгopитмaми. Якщo >к poзглядaти a.лгopитIvrнa piвнi йoгo викoнaнIIя нa кoмп'roтepi' тo B вeлиЧиI{и тpalсryстЬся як iнфopмaцiя, якolo цьoмy BцрдaдкyзI{aчeHI{я oпrpy€ пpoгpaмa' a тoмy вeличинi пoBиI{Ito бyги вiдведeнo мiсцe в пaм.ятl. у''ДУЧ|4 дaш в }I€lIIIиx мlркyвaнI{лt' сjllд Bизнaти, щo сaма щe пpoгpaмa, з тoчки зopy кoмп'toтеpa' тaкoж е пoслiдoвнiстю дaниx, тoбтo пpoгpal,lниx eлемeнтiв (кoмaнд, oпеpaтopiв), кoжнiй з якI{,( пpи ввeдerпri вiдвoдlггься мiсце в пaм'ягi. oтжe, зyпинимoся I{a ToМy' щo сaме чеpез вeлI{ЧиIIи пepедaються yсi знauення, вся iнфopмaцiя, викoнylотЬся piзнi oб.rислeння. Bеличини Mo)кнa пoлiлvlтvl нa cmалi тa змiннi. Сmалi_це mакi вanuuuнu,якi нe змiнtoюmь свozo lIIсlченItя nid чаc вuкoнсlнtrявcьoeo ацzopumму. Haведемo дeкiлькa пpиклaдiв сTaлиxBеJIичин: I0, -|2з.45, 'A', 'Лiцeй','мoя пpoгpaмa'. II{o незвиЧнoгoy циx пpикJlaдaх?Пеpшe числo _ 10 _ е цiлим, i йoгo зaпис IIе BикJIикaснiякиx зaпитaнЬ.A oт y дpyгoмy нислi, щo с дiйсним (_123.45),ви, мaбyгь, звrplryли yвary нa тr, щo цiлa чaсTинa ЧИсIIa 3iДцiлясться вiд дpoбoвoi знaкoм <(.>>, (<')>' Bи t H€ як звикJIи y мaтемaтицi. Cлiд нaгaдaти, щo y всix мoвax пpoгpaмyBallня y зaписoвi дiйсIIиx чисел цiлa нaстинaч|4cIIa вiддiлясться вiд дpобoвoi знaкoм <<.>>. Haстyпнi тpи пpикJIaдИ эTaJIуIX BrличиlI r .цeщo спeцифiнними. Cтaлa BеЛиЧинa 'A' якиil цe знaйoмий нaм сиMBoл <<A>), викopисToBy€тЬся як склaдoBa ЧacTИIIaдеякoгo Tексry. flвa oстaннix IIpикJIaди с стzUIиMи BeлиЧинaMи-тексТaми (pядкaми), якi викopисToByЮтЬся y пpoгpaМax як кoментapi пpи вве.ценнi пoчaТкoвиx дaниx' виве.ценнipeзyльтaтiв aбo текст. Ha вiдмiнy вiд знaчень сТ€ U Iиx величиtl' якi ми нiяким ЧиtloМ пiд нaс .ЦlгopиTМy змiнити не Мo)кеМo' змiннi BeЛvrчvIkIИ xapaктеpнi TиМ' Щo Тx знaчення змiнtoloться. '' J,+|lн|tuJv'u нсlЗuвФombсяmaю ве!|Iuчuнu' ]4oIcуmb якl r l зtпiнtoваmu свoс Зt1ачеI1I8 час вuкoI!аI7|!я nid аJlzopum"ry'у. Ч.:J Як rке пoзнaчиТи цi величини' якщo Тx знaчeння МoжyгЬ змiнroвaтисЯ ПpoTЯгoм викoнaннЯ пpoгpaми? 69
  • 37. У мaтемaтиui тa фiзиui тaкi вeличини oдеp}I(yють якeсь iм'я. Haпpишaд, S _ плoщa, V - oб'см, F _ cl4лa,m _ Мaсa тiлa' U _ I'aпpyгa eлеIсгpиЧIIoгo стpyl{y. У пpoгpaмyвaннi с певнi пpaвилa Nш нaймeнyвaння змiнниx BeличиI{. (ideнmuфiкаmopol+,l I.мeне"v ) aviннoi ваluvuнuмoacе 6уtna буdь.якаnoanidoвнiсmь JuIInшrcькuJс лimep(ьz mа A_Z), p-9 ) mа знакiвnidlpеaneння, цuфp u1onoчшнaсfnш з лimepu. Хapaктеpнo, щo y Пaскaль.пpoгpallrax poзpiзняtoтьсявеЛикi нe тa мaJleнькi лiтepи. Тoбтo iдeнтифiкaтopvl MуRеsult тa mуresult Bвa)I(aloтьcяoднaкoвими. Aлe всe il( тaки слИ peкoмeндyBaTш зaсToсoвyвaтиiдентифiкaтopизмiнниx пepeBФкlloзa i.x змiстoвним IIpизнaЧеI{t{яM тoгo, щoб Baшa пpoгpaмa бyлa <<читaбeльнoюr>' l NIЯ сaмe цьoгo ми бyДeмo дoтpl{мyвaтисяy пpик,Iaдax,щo зyсщiraтимyгься y дaнoмy пoсiбникy. Ha кiлькiсть симвoлiв, з якиx сKIIaдaютЬсяiменa змiнншх" нaKпaдaсться oбмeжeння: iдeнтифiкaтopи нr пoвиннi мiстштш бiльrце, нiж 63 сиМBoли. Мoжнa Bикopистoврaти i дoвшi цeнтифiкaтopи, aле всi сиI{вoлипiсля 63-гo iгнopylоться. A oскiльки кo)к}tеiм'я змiннoТ пoBиI{Iloбyш в дaнiй пpoгpaмi уtliкшь,|'|J|'' Тo мo)кнa пpипyститися пolvlиJlки, якщo цi iдeнтифiкaтopи бyлyгь вiдмiннi y симвoлax пiсля 63-гo. ГIoзнaчившrи змiннy iдентифiкaтopoм,щe пoтpiбнo BизнaЧити' яких сaмe 3нaчeнЬмoже нaбyвaTИI;.я BeлиЧинa. З пoнятгям BeлиЧиI{и зaв)кди пoв'яз1лотьпo}tяттятипy: цiлa, Ми дiйснa, лoгiuнa, симвoлЬнaaбo pя.Цкoвa. вrкезнaсмo' шo нa piвнi BI{кoнaння пpoгpaми кoжнiй величинi вiдвoдиться вiдпoвiднe мiсцe в пaм'ятi кoмп'ютеpa, poзмip якoгo зtUIежить сaме вiд тшпy BeлиЧиI{и. Якe мiсцe в пaм'ятi зaймaroтьзмiннi piзниx типiв, з ЯIQ|t'l||1 пPaцюс Пaскaль, poзглянeмo.Цaлi. Haявнiсть piзнoманiтниx типiв BeличиIl y Пaскaлi мoжнa & пoяс}lити Taкими дBol,la МoмeнTaми : о екoнoмiяпaм'ятi кoмп'ютepaпp}lвикoнaннiпpoгpaм; . пepетBopення типiв Beличин пiд .raс Bикoнaнняoпеpaшiй, зaстoсoBaниx ниx. дo Пepшe Твеpд)кення не пoвиl{нo викJIt{кaтинiякиx нeпopoзyrиiнь. oсoбливo гoстpo це питaнI{я пoстaнe, якuto Мaтимrмo poзмipiв. A oт стoсoвнo спpaBy зi ствopeнняМ прoгpaм зI{aЧ}Iиx Тo нa нЬoмy Bapтo зyпиrrитисЬдеTaJIьнiшre. Кoжнa oпеpauiя Дpyгoгo, 10 y flaскaлi Bимaгar вeличиI{ пeBIIoгo типy i Bидa€ peзyльтaт тaк сaмo пeвпoгo пlrry. Caмe тoмy пpи знaйoмствi з oпеpaцiями Пaскаля ми BotIи oпepytoть' Ta бyлeмo зBepтaтr yвary нa типи Beличv||l' ЯK*lNIуl Еa т!rп pезyльтaтy, ясий oдepxyrться. Якщo стaпi BeличиtIи Ilе вимaгaюTь BизнaчrI{IIя ix типy, oскirькн вoни зaдaЮться яBIIим Чинoм, тo дlIя змiнниx вeличин oбoв'язкoвo нeoбxiднo ви3нaЧaти тип. I ще oднa дy,кe сylтgвa детaJIь: y кoжний мol{eнт чaсy пpl,t виrсошaннi пpoгрaпll{ 3l'{iflнa вeлиЧинa пoBиннa мaти якeсь знaчення! oтже, rtpo стtl;тy B€личI,lЕy зa'ii зaписoм зрaзy мo}lсla скaзaTи Bсs: яке ii знaчerцlя, якoгo Boнa тиrry. Зlцiнна вa|aчuна noвut|нахаpакmepшуваmucя naкuJ|сu oilнaкфу'|l : i.м, flltс, muпoJ|' ma lначeнняJ|L v Cцаltdaomнi ryrnu dgt!цх якi У Пaскшli зaклaденiЕaйгIolциpeнiшiтипи змiнниx вeличI{tI, IIшивaIoтъся cгarrдapfi*r{ми' тoбтo тaкi, якi зpoзylliлi кoмпiлятopy 6eз дoдaткoвих тIoяс}Irнь. Tипи змiнниx, щo нaбрaють цiлиx знaчeнь, пoз}IaЧaютЬся cл1п<бoвим слoBoм Intеger. Iснyloть певнi мeжi для знaЧrнЬ тиIIy: -3Т168 -3Т167 . BeлиttиIl.цьoгo тaкi знaчeннязaймaють 2 бaЙтtl. У пaм'ятi tсoмп'roтepa У Пaскalri iснyе мoжливiстъ Bикopистaння щr дeкiлькox pвнoвилЬ цiлиx пrпiв, якi MaIoтЬiншi дiaпaзoнисвoix знaЧBI{ь. Пoдaмo всi типи цiJrиx чисeл y тaблиЧнoМyвиглядi (тaбл.2). Якщo вaМ нaпеpeд вiдoмo, Iцo дeякa змiннa мoже нaбрaти викoнaння aJlгopит}fy, тo ii дoсить нeBeликI{x зпaЧe}Iь lтpoтягoтv1 типoМ Shoгtint, тoбтo кopoткe цiлe. У випaдкy, мo)I(нa oПуlrсаrtI4 poзбiг знaчень цiлoi якщo Baм HaBпaки пoтpiбeн дy,кe BеJII{кий змiнtroi, It,lo)кнa скopистaтися тиIIoм Longint. Бyвaють тaкi Ilpoгpaми, шlo IIpaцюютьтiльки з цiлими дoдaтними числaми. I для y TaI(Oгo BиIIaдI(y Пaскалi e вiдпoвiднi тиIIи* тип Byte TaTИпWord. 2 Фopмaт ,{iaпaзo.н Integer Shопint - з 2 1 6 8 ..з 2 1 6 7 .. -128 tz1 3нaкoвий Знакoвий 7l Poзмip в бaйтa)( 2 I
  • 38. I-ongint .2|4748з648.. 2|47483641 0..255 Byte Word 0.. 65535 Знaкoвий Бeззнaкoвий Беззнaкoвий 4 I 2 .(iйснi змiннi y Пaскaлi IIoзнaчaIoться типoм Reаl. Tx знaчeння зaймaroтьy пaм'ятi кoмп'loтеpa 6 байmiв' дaloть l1-12 знa'ryшиx : знaчeнь vислa.тa BизIIaчaюЧ;:ffiР,BTi} цифp jъ'. ;16 -чнoстi piвними 0, a бiльцri тoбтo числa, мeнuri лiвoi межi BBa)кaIoTЬся пpaвoiнaбрaroть знaчeнняl.7* 10з8. oкpiм oснoBнoгoтипy.ЦiйсниxчисeЛ'iснyють йогo piзнoвиди, якi вiдpiзняюTьсякiлькiстю зIlalrytциxцифp'lислa, кiлькiстro 6aiттiв, якi вoнo зaiамaс,y пaм'ятi кoмп'Ioтepa, тa iнтеpвaлoм тoчнoстi Тx знaчeнь..{ля пopiвнянIlянaведеМo y виглядi тaблицi (тaбл'3): Poзмip у бaЙтax 6 tt-r2 ..r.7*10'" Rеal 2.9*10-'" 4 7-8 1 .5 * 1 0 4 s ..3 .4 * 1 0 3 8 i Singlе 8 15-16 1.7* 5.0*10-324.. 10308 Double з TvrпaNIИ oдинapнoю Зауваэюeння.lii нaл стaндapт}IиМу! тoчнiстro Singlе Ta з пoдвiйнoro тoчнiстto Singlе Мo)кyть числoвoгo сoпpoцесopa..{ля лиIIIeзa нaяB}Ioстi Bикo}ryBaтися необxiднo y Меню тoгo, щoб скopисTaтисяйoгo мo)I(лиBoстями, Options-Compiler BсTaнoBити [Х] 8087/80281у пoлi Numегiс y сaмoмy pгoсеssing, aбo кoмбiнaцiсro шlaвiшl CTRL+o+o Пepliloмy pядкy TeксTa пpoгpами BстaHoBитистaндapтнi диpектиBи кoмпiляцii пpoгpaМи. Tип rii Числo знaчvrциx цифp .{iaпaзoн ЗнaйoмлячисЬ з ПpикJlaДaNfil стilпиx BеЛичиtI, Bи зBepнyЛи yвaгy lra Те' щo BеJIи.Iини' якиMи oпеpyс Пaскaшь, MoжyгЬ бщи не тiльки числoBими. Tип Chаг (вiд aнглiйоЬкoгO слoBa сhаrаctеr) oписy€ симвoльнi змiннi, тoбтo тaкi, ЗнaченняМ якиx Мo)ке бути буlь-який симвoл iз тaблицi ASCII-кoдiв. Кo.ци циx сиМBoлiв зaймaють y пaм'ятi 1 баЙm i ix мoжливa кiлькiсть скJIaдaе 256 (28=256). Змiннi, знaЧенllяМи якиХ e пoслiдoвнiсть симвoлiв' BиЗнaчaКiлькiсть юTься. ТиПoМ String, Iцo ПеpeкJIaдaсTЬсЯ як <<pядoк>' y тaкиx pя.цкax oбмеженa числoМ 255. Об,см пaм'ятi, який симвoлiв 72 зaЙмaють дaнr цЬoгo типy' склaдaе 256 баЙm.3гoдoм y нaс бyДе мoжливiсть дeтальнilше пoзнaйoмитися i пoпpaцIoвaти iз змiнними цьoгo типy' a пoки ulo I{aведeнoi iнфopмaцii цiлкoм дoстaTнЬo. Зaвepшyемo ми цeй невеличкий oгляд стalrдapt'ниx типiв змiнниx щe oдним типoM' щo мaс нaзвy Boоlean _ лoгiчнllil тип' Змiннi цьoгo типy Мox(yгЬ нaбyвaти лиIIIe дBox знaчeнь - Falsе тa Truе (iстиннo тa xибнo). Poзмip пaм'ятi для знaЧeнь цьoгo TиПy сKJIaдa€ Bсьoгo l бaйm. Пumaння dля caмoкoнmpoл'o : 1 Як вu poзумiene noHяmmЯ ,,вeлuчtJнa,? 2 Як mpaкmуemьcя пoHяmmя вeлuчullu 3 moч'u зopу iTвidoбpa)KeHня нa пaмhmь кoмп,юmepa? 3 Щo нaзuвaemьcя cmaлoю вeлuчuнoю? Нaвedimь пpuклadu. 4 Якa cпeцuфiкa 1aпucy culv|вoльнux ma pяdкaвuх cmaлux вeлuчuн? 5 lJ]o нaзuвaеmьcя эмiннoю вeлuчuнoю"? 6 Якuмu olнaкaмu xapaкmepuзусmьcя змiннa вeлuчuнa? 7 Якi cmaнdapmнi muпu вeлuчul1 вuкopucmoвуюmьcя у Пacкaлi? 8 Якi piзнi muпu цiлux вeлulut+ вulнaчeнi у Пacкaлi? Чuм вoнu вidpiзняюmьcя? 14. Bвedeння ma вuвedeння iнфopмaцii ' Bкaзiвкa ввеdeння mа вuвedeння iнфopмaaii flля ствopеIlня пpoстoi пporpaми неoбxiднo пoзнaйoмитися з мoжливiстro вBеденHязнaчень apгyrиентiв BиBeДeння Тa peзyльтaтiв BикoнaI{IIя пpoгpaми. У Пaскшli для цiеi мети iсн1потЬ в)кегoтoBi, a знaнить сTaII.цapтнi, пpoцедypи. Пoлeкyшl ui прueдри }IurзиB€lIoIЬ oпеpaтoparrл.r. Але кiнeIр кiнцeм,Bа:{с.lIиBa a нe фopмa. сyIЬ, Заzальнuй вuaтяdnpoцedуpu ввеdeння iнфopмацii|: rеаd (<cnuсoкeлeцeнmiв ввеdeшtя>) абo reаdln (<сnucoкananенmiв ввеdeння >). Елементaми спискy BBrдення l{o)кyIЬ 6уи oдин aбo декiлькa iдентифiкaтopiв,записal{иxчеpeзкомy. Haпpиклaд: read (a,b,с); гead (alfa); геadln (m,n). Пpи вlлсoнarпriпpoцедyp read тa rеаdln пpoгpaМaпepеxo.ryITЬ y сгaн oнiкрaння BBедeнIUlДaHI.D(.. Пpинoмy l]poцeдypи гead тa геadln пpи BBеДенIri iнфopмauii з к.пaвiaтypи МЕtЛo Чим вiдpiзн.шоться oД,нa вi.ц ,& 7з
  • 39. пoмiтlrп,Iтl, Iцo пiспя BBедeн}rя Пpи викoнaшri пpoгpaMи[,lo)кHa oдЕIoТ. iнфpмauii зa дoпoмoк)ro пpoцeдypи гeadln кypсop пepexoдить нa пoчaтoк tloвoгo pядкa' a пiсля po6oти пpoцeдypиrеаd - нi. 3aувaarceння: тo знaЧеHь' зpaзy.пекiлькoх . якщo пеpедбavaсться BBeДeння oднe вiд oд}loгo pядкy, вi.цдiляючи ix мoжнa BBoдити B oднoмy сиМвoлoМ <пpoбiл'>,aбo B oкpeмиx pядкax' зaвеplllyючи знaчeнняклaвiшeю ЕNTЕR; кo)I(}loгo BвeдeI{ня О пpoцrдypи I{e зaвеpшaть свoсi poбoти' пoки tlе бyлщь введeнiзнaЧeння для всix змiнниx; . змiннi oдеРIсyюТЬ свoi знaченняпoслiдoвнo в щoцeсi BBедe'HIUI знaЧeнIrl_ пepruй змirпIй, дpyге * дpyгiй i т.д.); дшпоr(пеpure . тип зHaчeнь. щo ввoдяться, IIoBинeH вiдпoвiдати тoмy типoвi. яким oписaнa дaнa змiннa, iнaкше пpи ввеДеннi повiдoмленняпpo пoмилкy. ви.Цaнo iнфopмauii бy.Цe oдеpжить змiннa а пiсля BикoнaнЯк ви д).!{arтe'якe зI{aЧеI{ня якulo бyлe нaбpaнпЙтaкпЙ pядoк знaЧel{ь: rеаd(a,a,a)' ня пpoцe.цypи .5 l ? Bи не пoМилилисЬ:змiннa a oдepжитЬзнa.rенняl (з l0 тpeтЬoгopaзy)! iнфopмацit: вuвеdeнrя шand npoцеdуpu Заzаltьнuй aбo (<cnucoкелelиенmiв вuвedeння>) write .'Д (<crtuсoк вuвеdeння> anелleнmiв )' writеhl B Cписoк eлементiв виBeдrння iнфopмauii нaбaгaтo rшиprший. HЬoМyмoжyгЬ BикopистoBуBaтИсЯi яких бy.Цщьвивeденilra eкpaн; о iдентифiкaтopи, знaчeння О Rу|paзИ,3нaченIIя спoЧaткyбyлщь oбчисленi,a пoтiм якиx нa екpaнмoнiтopa; виведенi pядкoвi). (числoвi,сиМвoльнi, о стaлi Bеличиtlи Piзниця мiж пpouе.прaми writе тa writеln Taкa: пpoцeдypa лишIa€ кypсop нa пеprliй вiльнiй iнфopмauiТ wгitе пiсля BиBeдення _ пеpeBoдитЬ кypсop Ha пoчaтoкtloBoгo wгitеln a пoзицiТ, пpoцедypa pядкa. Пpиклaди: ТpЬoхцiлиx .rисeл'); wгitе ('3aдaйтезнaчення uисел'); сyl{a.цBox wгitе (а+b,'_ Taкaoдеpжalra b=',b); write ('a=',а,' wгitеln ('a=',l0). nt Iч Щe paз звepнiть yвary нa T€' Щo всi кoмeнтapi е pяДкoвим|,1 cтaлиМи вeлиЧ|,/iнauИ ii нeoбхiднo бpaти в aпoстpoфи. Пpинoмy, i aпoстpoфiв y спискy eлeмeктiв вивeдeння пoвин'a бyпa пapнa кiлькiсть (тpeтiй пpикпaл). Якщo тeкст кol{ентapя пepедбачaе викopистaння aпoстpoфiв, тo зaмiстъ oднoгo aпoстpoфa в тeкстi нeoбxiднo пoстaвитидвa ('кoмп' ютеp'). oскiльки eлeмeнтaмI,l прoцeдyp вBeдeння iнфopмaцii нe мoжyгь 6щи тeксти, неoбхiднo oбoв'язкoвo BикopистoвyвaтIi пepeд нимI' пpoцeд},pl{ вивeдeнняiнфopмauii з вiдпoвiдними тeкстaми дlIя тoгo, щoб вaшa пpoгpaмa нe бyлa <нiмoю>), Щoб вaм бyлo зpoзрliлo, скiльки дaних тa якi сaме нeoбxiднo зaдaтидля iT викoнaн',. У нeтвepтoмy пpиK,Iaдiнa екpaн мoнiтopa зaB)I(ди бyДe вивooдин i тoй жe Bиpaз' нe3aлeжIloвiд тoгo, якe знaчellня змiннa ДIIT|4qя a6удe oдФ)I(yвaтиy пpoгpaмi: a=10. A як ви дylиaeтe'щo виBeдe вaIIIaпpoЦpafuIaу пpиKпa. ДpуToмy дi, якщo вeличl{I{aм тa b нe бyдщь зaдaнi ,"u""'й а аpn6""пn"нltil впpaз 6yлe oб.lислeнotaлe в якoстi ,Ilaчeнь а тa b бyДcвзятe з пaм'ятi кoмп'ютepa тaк звal{e <<смiтгя>>, тe, щo ,""*oo',o"" тoбтo т8м в тoй мoмeнт' кoли чaстинa пaм'ятi poзпoдiлялacя NIя Цuх, змiнниx. Це мoжyгь 6уm зaJlиluки iфopмaцii пoпepeдньoi Ilpoгpaми' якa знaxoдилися нa цьoмy мiсцi, aбo випaдкoвo нyлi, якщo ви тiльки рiмкнyли кoмп'ютep, i цю oблaсть oпepaтивнoi " пaм'rгi ще нiякa iнфopмauiя }Ie бyлa зal{eсeнa..3гaдaйте цe зayвa}кeння'якщo зyстpiнeтeся з ситyaцiею' кoли прoгpaМa пpи кo)кl{oмyзaпyскoвi видar непepeдбaчyвaнi pезyльтaти ! I щe oднa мoжливicть пpoцeдyp виведeння iнфopмauii., якy Мoжнa викopистoвyBaтидля oдep}кaння peзyльтaтiвy зpyЧI{olvry' нe пoкilзI{икoвoмy виглядi. L{eфopмaryBaнHя знaчeньзмiнниx. ttя:<iм,язlt,liннoi!: m, n: '.'... oе n _ ЗаешIь'rа кiлькiсmьс.tьvtвoлiв, вidвodяmьcя знa. tцo .J} nid ueнняaniннoi а m _ кiлькicmьзнакiвОpoбoвoi.чаcmuнtl. У зaгaльнy кiлькiсть симвoлiв Bхoдl,lтЬi знaк числa' i кpaпкa, щo вiддiляс Дpoбoвy чaсти}|yчислa вiд uiлoТ.I{eй тип фopмaцшaнtlя' звiснo, зaдaсTЬсятiльки для дiЙсниx Чисел. дя 6opйaтyвaння цiлиx чисел пapаIvtетp зailвlаiа. m .{ля бiльшoi яснoстiнаBeдeмo кiлькaпpиклaдiвз пoясненнями. writе('сyма='.S: l 0:6): 75
  • 40. ii write(' кiлькiсть елeментiв:',n:5); writеln(' a=',a:0:З', b=',b). У пeprпoмyпpиклaдi пpи 5=-101.697 6улeы,вr-лellaнaeкрalr сумa=-|О|'697' y.дpyгoмy пpпn=5.7 кiлькiсть елeментiв:_- '57 , y тpетЬoмyпptl a=|0'2458тa b__l32.879 _ a=1,,L246 b:-1.3287 9E+2 . З циx пpикrrалiв мo)I(нaзpo6ити тaкий виcнoвoк. Пpи фopмa. пoзицiяx y ryвaннi y дpoбoвiй чaстинi пpи зaйвиx зapeзepBoBaниx кiнцi числa дoIIисyIoTься нyлi, a ПpИ iх нeстaчi вiдбрaсться oкpyглeIIIIJt oстaнньoi мoжливoi цифpи. y цiлiй чaстинi нaдpyкyeTЬся cтtльм цифp, скiльки неoбxiднo дJIя дalroгo Числa, нaвiть якщo с нeстaчa пoзицiй, aбo ж леpед цiлoю иaспlнoю бyДe BиBeдeIIa нeoбxiднa кiлькiсть пpoбiлiв, якщo Bкtвaнo пoзицiй бiльrцe, нix пoтpiбнo. Пpи вiдсщнoстi фopмaryвaнIlя зIIaЧeння дiйсниx.rисел бyдyгь нaдpyкoBaнiy пoкaзникoвiй фopмi. Cкopистaвшись цiеtо iнфopмauiсlo' Bи IIIBидкooцiните зp1"rнiсть фopмaryвaннявиxiдних дaниx. Buкooacmання noouedvo па ЙvнкuiЙ лtodvля CRT кoмп'ютеpiв мoжщь пpaцюBaти y Мoнiтopи пepсo}IaJIьIIиx двox pe}IФмax- текстoвoмy тa гpaфi'lнoмy. Пiсля зatryскyпpoгpaми I{aBикoI{aнHя aBтoмaтичнoзaдaeтьсятекстoBий pежим poбoти, пpи якoмy I{a eкpaн мoх(e BиBoдитися 80 симвoлiв у 25 pялкax' oзнaйoмлення з гpaфiнним pе)кимoм poбoти мoнiтopa чeкa€ нaс пoпеpедy. Алe Й дlIя тeкстoвoгo pе}l(имy iснyе бaгaтo цiкaвиx Усi дoдaткoвиx l.loжJlивoстeй. вoни pеалiзoвaнiy виглядi пpoцeд)P poзмiщeних y мoдyлi сRT. У Пaскалi пiд мoдyлями тa фyнкuiй, poзрlitoть бiблioтеки, B якиx poзмiщенi пpoцедypи тa фyнкцii, щo викoнyютЬ poль дolloмiжних aпгopитмiв. Boни знaxoдятьсяB oкpемиx фaйлaxi пiдклrovaютЬсядo вaruoi пpoгpaми тiльки тoдi, кoли ix iмeнa вкaзaнi y poзлiлi Usеs. Цe дo3Boля€ Ilе <<пepеBaнтaяq/BaTи> Пaскaль-пpoгpaмyзaйвorоiнфopмaцiеro. HaйбiльIшвикopистoврaнi мoдyлi (сepeл них i мoдyль CRT) помiщeнi у фailл turbo.tpl (tpl - Turbo Pasсal Libгary). Toмy пеpед Bикopистaнням мo)кJIивoстейцЬoгo мoдyля пеpевipтe нaявнiсть фaйлaшrbo.tpl нa .цискy. 76 .Цля пiдклloчel{Ilя мoдyля CRT дo пpoгpaми нeoбxiднo дo неi BкJIючити тaкпiq pядoк : program my_prog; usesсгt; begin 71
  • 41. Пpи вкaзaннi неoбxiднoгo кoльoрy мoжнa кopистyBaTиcя aбo числoвими знaчeнI{ями, aбo ж ii мнeмoнiчIlими aльтеpнaтив}lими IIoз}IaчeнI{яМи цe oдне й тe x( сaп{e.Пaскaль всe зpoзyмiс! - Пpouедypи Паскаля, зaписyються бo лyже схожi нa oпrpaтopи oкр€миМи <geЧeI{I{яIt{и> тa зaBepшIyються оllмвoлoм <;>. Cерл нtлсе .Лg,Iм тald, нeoбxiдlo Псpедaти дJIя викo}l:lн}UtaрГyrvrеrrгI,l' iнrшi a викol{yoтъсябeзyсясoi дoдaткoвoТ iнфpмaцii. Baм, нaпeвнo, дoBo.циJIoся писaти зaяви? .(aвaйте poзберемo aJIгopI{тм цiеi зaдaчi 3a дoмoвленoстi, щo Iии зaпoBllloсмo yявний блaнк зilяви пpи oфopмлeннi нa poбory. зaдaTиiм'я диpeкгopa opгaнiзaui.i, якoмy пoдa€ться зaявa. 3aдaти iм'я зaявникa. Bкaзaти дary пoдaнi зaяBи. Bнeсти дaнi, зaзнaчeнiy п.п.l-3' дo тeкстy зaЯBI4. Пpoгpaмa' щo вiдпoвiдae l{aвeдql{oмy aлгopитl,lyтa викOристo. вyс мoжливoстi BиBeдrння iнфopмaшii нa eкpaн мoнiтopa, пepе.Цбauae зoбpaжeння нa eкpaнi мoнiтopa тeкстy зaяви зa всiмa вимoгaМи щoдo oфopмЛel{Ilяцьoгo дoKyмeнry. Пepeкoнaйтеcя в I{a цЬoмy, нaбpaвurиi1 текст i зaпyотивtши викol{aння. pгogram statemеnt; usеs сrt: vaг name*direсt, my*name,data:stгing; bеgin writeln (' Bведiть iм''я диpектopaopгaнiзauii'); геadln (namе-direсt); wгiteln ('Bвeдiть свoe iм'я'); гeadln (my_name); wгiteln ('Bвeдiть дary пo.Цa.li зaяви, ); rеadln (data); ClrSсг; TеxtColor(Rеd); Sound(200); GоToXY(S0,l); writе ('.(иpeктopy', namе-dirесt); GоToХY(SO,2); wгite (my-name); .GoToХY(35'6); wгitе('ЗAЯBA'); GoToХY(5,8); 78 нa Мене,',my_namе,' poбory.'); rrrite('ПpoшlупpиЙняти GoToХY(5'10); rrritе (data); NoSound; Delay(500) еnd. змiнниx величиIlтипy string Звepнiть yвaгy I{aTе' Ц{oзHaче}lня 'гpe6a зaдaвaTи лицIe пpoцeдypaМи rеadln, а пiсля BикopистaнI{я writе, aдже пiсля Bстaнoвлeння fipоцeдypGоToХY йдyгь пpoцe,Цypи кypсopа в пoтpiбнe мiсце екpaнa прoцедypa writеln пepeмiстить нaстyпнoгo рядкa. йoгo нa тIoЧaтoк poзгЛянеМo цiкaвi фyнкuii мoлyля CRT. A тепep двi _ пoBеpтar знaЧeнIIяtгuе, якщo бyлa нaтисненa KеyPгеssed випaд. бyдь-якa клaвirцa,тa false - y пpoтиле)кIroМy ' кy; пoBepTaс з}Iaчe[Iня сиlvlвoлy' Iцo BlдпoBLцaс ReadKey нaтисненiй клaвiшri. Bи вжe пoмiтили, .rим вiдpiзняIoтЬсяфyнкцii вiд пpoцeдyp? Пpoцедypи зptвy виI(oнyIоть пepедбaueнi B ниx дii, a фщкuii дaлi oдеpжyють певнi знaчeння,з ЯК:.llNIу| неoбxiднo Bикoнaти деякi дii. I ми зapaзцЬoМyнaвчимoся! Пеpш зa все poзбеpемoся,як вiдбyвaстЬсяBBeдrння Baми iнфopмauii з клaвiaтypи.Клaвiaтypa,як i iнuri пеpифеpiйнiпpистpoi, пaм'ятi. Caмe в мaе свiй бyфеp'тoбтo видiленyчaсTинyoпepaTиBlloi кo,ци llЬoМy пoслiдoвнo <з6иpaються>> тиx клaвiш, якi ви нaтискaсTe. Poбoтa стaн.цapтниxпpoцедyp read тa rеadln opгaнiзoвaнa ТaкиМ чинoМ,шtoтiльки пpи нaTискaннiклaвiuriЕNTЕR всi нaкoпиченiв i бyфеpi .цaнi ПeBним ЧинoM переTBopююTЬcя пpисвotoються .tеpгoвiй змiннiй. Пiсля цьoгo бyфеp шaвiaтypи спopoнсrюстьсяi гoтoвlй дпя oдеpжaнIlя I{oBlIx дaниx. Пoвеpнемoся дo нaцIиx фyнкцiй. Фyнкцiя ReadKеy чиTaс з y бyфеpaклaвiaтypикoд нaТиснyгoi клaвiшi, Щo зHaxoдитЬся бyфеpi бyфеpбр поpoжнiм, Якщo пеpедвикoнaнняМ uiсi фyнкuiТ пеpllloЮ. пoки y бyфеpЦoсЬ I{r y oнiкyвaння, ПеpеxoдиTЬ pе}I(иМ тo пpoгpaМa бyде зaнесене'У Цьoмy Bипaдкyпiсля викoнaнняфyнкцii RеadKеy бyфep 3нoBy сTaс пopoжнiм. Якщo хс пpи Bикoнaннi фyнкuii тiльки тo.цi' ReadKеy бyфер не був пopolкнiм, то вiн спopo)книTЬся paзiв, скiльки кодiв клaвiш с y кoли фyнкцiro викoнaroтьстiльки 19
  • 42. il i I l I бyфеpi. Caмe цiсlо oсoбливiстlo мo)кнa скopистaтися,Щoб зpoбити зaтpиI,lкyBикoнaнI{я вaшroi пpoгpaМи дo нaтискaння бyДь-якoi клaвiIпi. I{iсю ocобливiстlо .цРке зprlнo кopисTyBaтисянaпpикiнцi пpoГpaМI,I, Щoб МaтИ мoжливiсть пpoaнaлiзрaти oдeprкaнi peзyЛЬтaTи'пepIп нiхс сepедoBищеTurbо Pasсal пеpейдe y peжим poбoти з Tекстoм вarпoТ IlpoгpaМи. pгogram my_prog; usеs сrt; var k: сhar; begin { тiлo пpoгpaми } k:=ReadKеy; end. 3aтpимкy Bикoнaння пpoгpaми мoх(Haзpoбити i викopистaвrпи пpoцeдypyгеadln без apгyrиeнтiв: pгogгam my_prog; begin { тiлo пpoгpaми } геadln; end. oсoбливiстЬ BикopисТaннятaкoi <зaTpимки> tloлягaе B Toмy, Iцo пpoцeД}parеadln pеaryr лиIIIенa нaтискaнняклaвiIпi <Еntеr>. I ще oдин, щeтiй вapiaнт opгaнiзaцiТ<<зaTpиМки> poбoти вalпoi пpoгpaМи. L{e викopистaння фyнкцii KeyPrеssеd. .Цля пoяснення нaМ дoBедетьсязaбiгти тpoшки нaпеpeд.Cпpaвa в тiм, щo фщкцiя KеyPressеd нiчoгo з бyфepa I{e BиЧитyе' a лиЦIе пеpевipяе,_ни тaм щoсь r. Cкopистaвшrись цiеto oсoбливiстю' зaпиIIIeмo oпеpaтop: геpеat until KeyPгessed. Пpovитaти цей зaпис Мo)l(нa TaкиМЧинoМ:<пoBTopЮBaти' пoки не бyДе нaTис[Ieнaякaсь клaвirцa>.Пoки бyфеp бy!е пopolкнiй, фyнкцi" KеyPressеd пoBеpTaTиМезнaчrння falsе i ми бvдемo нa - <<Bисiти>> цьoМy фpaгментi пpoгpaМи. Aле як тiльки бyДе I{aтисненaбуДь-якaклaвiшa, фyнкuiя KеyPгessеd пoBrpнr знaчен}lя true i зaзнaченy.Цiro бy.Цe зaвepшeнo. oтже, вapiaнтBикopистaння KeyPrеssеd: фyнкuiТ pгogram my_prog; uses сгt: bеgin 80 { тiлo пpoгpaми } rеpеat until KеyPгеssеd; еnd. .(o pе.ri, iнфopмaцiя y бyфepi пiсля викopистaння фyнкцii KeyPrеssеd зaлиПIиTься, тoбтo rrя фyнкцiя липIе ПepeBipяе нaявнiсть iнфopмauii в бyфеpi клaвiaтypи. I{e ознaнaе,шlo BсrpeДД{iщoгpaш,r тaюдi спoсiб <<зilTpимкD) трбa вшсopистoвyBilти дгхe oбеpехсroi rпдrrе тoдi, кolпr Bи Пеpекol{il{i, пеpедцiсrо oпеpaцiсюбyфp клaвiaтуpибр щo пoрисriм. Мoже, кoЛисЬ Baм стaнe y пpигoдi llopaдa, якиМ чиIIoм сПopoжнитибyфеp клaвiaтypи..{ля цьoгo мo}кнaвикopисTaтитaкий фpaгмeнтпpoгpa}Iи: pгogram еmpty; usеs сгt; vaгk: сhaг; bеgin { тiлo пpoгpaми } while KеyРгеssed do k:-RеadKеy; пpoдoвженнятiлa пpoгpaми } { еnd. Ha oстaнoк poзгЛяIlемo ilлгopитм oбчислeння сеpеднЬoгo apифметиuнoгo знaчеI{ня бy.Ць-якиx тpЬox чисел. Aлгopитм пepедбaнaспoслiдoвнiсть викoнaннятaкиx дiй: Зaдaти тpИ Ч|4cЛa'нaПpикJlaд' X, У, Z. o6чиcлитуl ii сеpeднс apифмeтиvне зa фopмyлoю s = х+у +z Bивести зIIaЧeння pезyлЬTaTy' oТpиМzula яке змiннa s. Tепеp HaBедеМo пpикJIaд Пpoгpal,lи' щo pеалiзyс нaведений ,tлгopиTM: program my_prog; uses сrt; var x,y,z,s: rеal; k: сhaг; bеgin ClrSсr; TехtColoг(Grеen); GoTоХY(30,10); 8l
  • 43. I числa:'); wгitе ('Bведiть тpи бy.Ць-якиx rеadln (х'У,z); 5;=(1+y+z)/3; GoToХY(3O'l5); :3) чисеЛ,,х:7 :7:3,z:7 : :3,у writе (' Cepeлнеapифмeтичllе GoToХY(45'l6); writе (s:10:5); k:_RеadKey; еnd. Пumaння dля caмoкoнmpoлк,: iнфopмauii Пaскaлi? ввeОeння зa6eзпeuуюmь пpoцeОуpu 1 Якi cmaнdapmнi у iнфopмaцii? 2 Як вidбyвaemьcяввeОeння вuвedeнняiнфopмaцii зa6eзпeuуюmь пpoцeОуpu 3 Якi сmaнdapmнi у Пacкaлi? вuвedeння Пacкaлi? npoцeОуpu 6уmueлeMeHmaмu 4 Щo мoх<e у змiннux? 5 I]ля чoeoу Пacкaлi вutФpucmoвуemьcя фapмamyвaHHя 6 щo poзумiюmьпid мodулямuу Пacкaлi? мoОуля? moeouuiншoеo ma 7 Якcкopuсmamuся функфямu пpoцedypaмu Пacкaль-пpoеpaмu? nidmpuмуюmь 8 Якi peжuмupo1omuмoнimopiв мodуляCRT. 9 Haзвimьocнoвнiфункцiima пpoцedуpu пpoеpaмu? вuкoнaHня тampu^rку opеaнiзувamu 10 Якuм Чutlotl ^/,Ф|ofi HE IIPILIIУCI{АIr TE CЯ II o M ИЛ oК ! У циx poздiлax бyлe зpoблeнa спpoбa зaотеpегти вaс вiд типoBих пoмилoк, якиx дoпyсI(aIoTЬмaйже yсi пovaткiвui. Бyлщь вoни oбoв'язкoво i y вaс, .UIезвepтaйтеся дo цих poздiлiв i скopirпе зa Bcе ви знaйдете в ниx вiдпoвiдi мaйже нa всi зaпитaння. l ще o.цне зayBaжeння. Чaстинy пoМиJIoк ви бy.Цeтeo.цep)IiyBaти пiд чaс кoмпiляцii пpoгpaМи - це чaстiшlе зa Bсе пoMилки синTaксиЧнoгo xaрaкTepy' B pезyльтaтi кoмпiляцiТ ПpoГpaми бyДe вказaнo нa poзТalпyвaння тaкиХ пoмиJIoк. Кoли ж yсi вoни бyлyrь BиПpaBленi, мoжщЬ з'ЯBllтИcЯ пoМиЛки нa етапi Bикoнaння вaшoi пpoгpaМи _ Цe B)I(е apифмeти.lнi aбo ж лoгiчнi пoмиЛки. ix aнaпiзрaти Ball(че, aле Мo)клиBo. Якщo кoлаniляmop Bидaв пoмиJIкy expесtеd, Еrror 85: <<;>> oзнaчa€ , щo Пrpед сиМBoлoМ, нa якиЙ вкaзус кypсop' To це ..;". вiдсрнiй сиМBoЛ Ця пoМилкa' шIвидlIlезa Bсе, зpoбленa Baми B кiнцi пoпеpеднЬoгo pя.Д'кa. 82 Якщo вu зpoбumс пolrlилкy в зaписoвi сaмoгo oпepaтopa Пaскaлю, тo кoмпiлятop зреary€ нa Це пoвiдoмлe}Iням Епor l 13: Епoг in statement . Якщo пptl кoмniля4di вarпoi пpoгpaми бyлo видaнe пoвiдoмлeння пpo пoмилкy Епor 4: Dupliсatе identifiеr, тo цe мoжe oзнaЧaти' щo iм'я пpoгpaми тa деякoТзмiннoi aбo двox змiнниx oднакoвi. Якщo кoмniллпop Bидaстьпoвiдoмлeнняпpo пoмилкy Еrror 3: Unknown identifitir, тo цe oз}Iaчaсo Bкilraнe iм'я змiннoi не oписaнe в poзлiлi що змiнниx. IIpu неnаpнlй кiлькoстi aпoстpoфiвв пpoцед)pi wгite кoмпiлятop видa€ пoвiдoмлeння пpo пoмилкy з тaкI,Iм кoментapeм: Егror 8: String сonstantexсeedslinе, кoнстaнтaпepeвищyсpoзмipи p,Iдкa>>. щo oзHaчaс<ФядKoвa Буdьme уваcrcнi пpи введeннi лyжe дoBгиx pядкiв. Ha тaкi сиryauii кoмпiлятop реaryс пoвiдoмлeннЯмIIpoпoМилкy: Епor l l: Line too long. Якщo y кiнui пpoгPaми нrмaе кpaпки' тo бyДе в.ИДaНe пoвiдoмле}Ittя пpo пoмилкy Еrroг l0: Unexpeсtedend of file, oзнaЧa€ <<нeспoдiвaнe зaкiнчeнняфaйлa>. щo Якщo пpн кoлсniля4ii пpoгpaми не poзпiзнaстЬся iм'я бyДь. якoТ пpoЦeдypи a6o фyrrкцiТ з мoдyля CRT, тo B пеpшIy Чepry пepевipтe,чи пiдклloчeний цей мoдyлЬ. 15.Пpaкmuчнa podoma вBвedeнняma вuвedeння Оaнux,2 Зa нaвeденим сЦенapiсм викoнaйте зaвдa}I}lя пo стBopeнню Ta нaлaгoд)кенню aJIгopиTмiв тa пpoгpaМ з BикopиcTaI{Ilям ввeдeння тa виBедeння дa}Iих. t) Buзначumu кiпькicmь вхidнuх dашы вidnoвidнo do умoвu заdачi. 2) Buзначumu кiлькicmь шхidнuх dанt.lхвidnoвidнo do у.uoвu заdачi. 2 зaвдaння для дaнoi пpaктиuнoТpoбoти нaвeденi y <Збipникy впpaB тa зaдaч з aлгopитмiзauii тa пpoгpalvlyBaння)) poздiлi <Bведeння тa y Bиведе[ltlя дaних)> 83
  • 44. i 3) 4) 5) 6) 7) Buзначumu munu вхidнuх mа вuхidнuх dанuх. Buзначumu mun шl?opum]Иу' Poзpoбumu слoвecнuй onuc аЛzopumJ''|у. Пoбуdуваmu cхему аЛlopumму Buзначumu noслidoвнicmь ввedeння noчаmкoвuх dанuх з вuкopuсmання'll вid noвidнuх кoмeнmаpiв' s) Buзначumu пocлidoвнicmь вuвedeн"i p"'уno*уючuх dанuх з вuКopuсmання-пl вidnoвidнuх кo.пцe нmаpiв. 9) Запucаmu аЛropumм л4oвoюnpolpал|уванIrя. |О)IIабpаmu mекcm npo?pа]''u, вuкopucmoвуючu cepedoвuщe npoepал|ування. I L) B uкoн аmu нала2od uс eння |lpoZpа]у|u, вunpавuвulu cuнmаксuчнi no^|llЛкu. L2) Buкoнаmu npozpаJvtу' nidzomувавlutu cucmeму mеcmiв. 16. Hadaння lнaчeння вeлuчuHi Аouфмеmuчнi onеpацii ma аouфмemaчнi вuoазa З мaтeмaтики вiдoмo, Щo iснyс чoTиpи oсHoBIlиx apифметияниx дiТ:.цoдaBaнI{я, вiднiмaння'Мнo)кеHtlя дiлrннЯ. тa Цiлкoм A oчrвидtlе oзнaченIIЯ: Аpuфмemuw7l|fotu t103uваmшМеЛto mакi вupазtl, якi заnuq)юmьс'l за donoмozoto аpuфмаnuннuх onеpацiй i внаazi,doкoбчuсЛенняяКttх odеpcюуюmьcя чuanoвiзнсtченI|я. Пoки щo це oзнaЧе}tнЯ дzrлo нoвoi iнфopмaцiТ в пopiвняннi з нe мaTемaтикoю тa фiзикoю. Це нaстiльки oчеBидIlo' шo незpoзyмiлa неoбхiднicгь в l.ъolvfy oзнaчеlтнi! Hе квaгrгеся, Tpoxи пiзнiшe BИЯBуITьIЯ, щo y Пaскaлi викopистоByЮТЬсяне тiльки apифметиннi виpaзи. Зaписylо.lи apифмeти.rнi виpaзи в слoBeснoМy пpeдстaвленнi aлгopиTмy, y сxеМaх' МoBoю псевдoкoдiв' Ми Мo)t(еМo BикopистoByBaTи МaтeМaTи.rнiпpaвилa Тх пpедстaвЛeння. Haпpиклaд, для Bизнaче}Iня IlIBидкoстi pyxy деякoгo oб'сктa тaк: И : фopмyлa BИГIIЯДaT|IМе . . A.цля oбчислеI{Ilя дискpимiнантa T кBaдpaTнoГopiвняння фopмyлa бу,Цетaкoю: d=b2-4ас. oднaк, Пpи зaписовi apифметиuниx виpaзiв бyдь-якoto МoBoю ПpoгpaМyBaнHя тpебa дoтpиМyBaTисЬ пeвниx ,цoМoBленoстей.Poзглянемo Тx' 84 У пpoгpaмyвaннi Taк сaмo, як i y матемaтицi, визнaчений яким Toбтo BизнaЧaеTься' пpiopитет Bикoнaння apифмети.rних ДIiц, пеpeд iнrцими пiд чaс oбчисленнязнaЧеIIня дiям нaдaстЬсяПеpеBaгa apифмети.rнoг6 виpaзy. Haведемo аpифмeти.rнi oпеpaцii Пaокaлю ii сaмe B ПopядкyзмеtIIlIеlIня пpiopитeтнoстi: * rl div mod +,- _ мнo)Itеtttlятa дiлення; - чaсTкa вiд дiлeння нaцiлo двox цiлиx Чисeл; _ oсTaчa вiд дiлення нaцiлo двox цiлиx чисeл; - дoдaвaнIlя тa вiднiмaння. Bи звepнyли yвary нa тe' шo y Пaскалi вiдсyгня oпepaцiя пiднесення дo степeня? I це нa пepший пoгJIядздarТься дy)ке Irезpyrним' З чaсoм дo тaкoгo нeдoлiкy IшBидкo звикaЮтЬ i BklЯBЛЯrTЬcЯ. без цiсi oпepaцii ldo'сIaспoкiйнo oбiilтиcя' щo Пеpeйдeмo дo oзнaйoмлeння з нoBими apифметиuними в oпеpaцiямиПaскаля,якиx ви нe зyстpiнали мaтемaтицi. oпеpaцii div тa mod викoнyЮTься HaI, BeЛИЧИнaмитiльки цiлoгo типy. Pезyльтaтoм викoн:lllняrцж дй с тal(oжцiлi .пrслa. Пpинtппt lx вtпсopисгшпrякpaщe зa все Мo)IG{aпoЯсниTи IIa пpикJlaдax. l0 div З = З _ тoбтo B pезyЛЬTaTi oдеptrсимo вiдпoвi.ць нa скiльки paзiв vислo 3 вxoдить y 10. Haведемo ще тaкi ЗaпWrTarft|Я' ПpикJIaди:-10 div З = _З, l0 div _З = -З, _10 div -З = _З. Moжнa зpoбити BисIIoBoк, щo y paзi, кoли BеЛичиItи' нaД якими Bикoнyrться oпеpaцiя div мaroть oднaкoвi знaки' тo pезyльтaT oTpиМyeтЬся дoдaтнiй. У пpотилeхсI{oМy BиПaдкy - вiд'смний. l0 mod 3 = l _ тoбтo в peзyльтaтi тaкoi дiТ oдеp)Лffiмoвiдпoвiдь вiд на зaпитaння, скiльки зaJII||JI|4TЬ;Я числa l0, якщo вил1"lити з неi _10 mod 3 = -1, l0 mod всi тpiйки. Poзглянeмo ще тaкi ПpикJIа.ци: -3 - l, _10 mod -3 - -l. Aнaлiз нaBедeниx пpиклaдiв дaс мoжливiсть зpoбити BиснoBoк, щo нa знaк peзyлЬTaTy BплиBa€ лиIIIе зHaк Beличини, нaд якoк) Bикoну€TЬcЯя, oпеpaцiя mod. Poзбиparo.rи oпеpaцiТ div тa mod, ми B)кe тopкнyЛИcЯ r|ИТaННЯ типiв величиI{' нaд якиМи BoIlи BикoI{yюTЬся. Cлiд звepнщи уъary i нa iнцli apифмeтиннi oпepаuii. Я|< викoнyютЬся нaд велиЧуIНa:tууL oпеpaцiТ ..*,,, ../',, ((*>),<<_>> типy. Питaння лиlllе B aналiзi типy peзyлЬтaTy. Цiлoгo, тaк i .цiйснoгo <<+>), BикoнyюTЬсЯ н.aДBеличинaМи' щo <<_>> Якщo oпеpацiТ <<*>>, N{aIoтЬцiлi знaчення, тo i oтpимaний pеЗyЛЬTaт бyлe uiлим ЧисЛoм. 85
  • 45. Якщo ж xoчa б oднa з вeличI{tl'нaд якиMи Bикol{yrтьсядiя, бyде мaти дiйснlцЙ тtlп, тo i рeзyльтaт бyле дiйснoгo типy. Bиняток сKпaдaс oпepaцiя дiлeння <</>>. б типy нe 6ули BeличиI{и'нaдl Якoгo ЯIсIlMуlBoнa Bикo}DЕIъся' peзyльтaтзaв)кдI,t Мaтимeдiйсний тип. I{я iнфopмaцiя стaнe нaM кopисI{oю нaдалi, кoли дoведgться Bикopистoвyвaти apифмeтиuнi виpaзи для oбчислення 3начeнь змiнних. Apифмeти.Iнi виpaзи, як i всi iншi кoнстpyкцii мoв пpо. гpaМyвal{ня'BBoдятЬся з клaвiarypи пiдpяд, B oди}t PяДок. Тoмy зрaзy )к зpoзрliлa дopeннiсть викopистaнIrя дy)кoк для зaдaння нeoбхiднoi пoслiдoвнoстi викoнaнн дiil у виpaзi. я Poзглянемo apифмeтиннllЙ вl,ryaзy мaтeМaтиннiй фopмi тa у зaписi нa Пaскaлi: а* b , * dэ@* b) l( с +d) A зaписy нa Пaскалi a +b |(c+/) вiдпoвiдaстaкий мaтемaтичний b а*-. c +d виpaз: Пepевipтeсебe ще нa TaкиxпpикJlaдax' зaписaвшивiдпoвiдний кoжI{oмyз I{ихмaтeмaтичtllцЙ виpaз: а * b|с * d, ( а +b) lc * d, а+(blc)+d. Hабio cпаtldаDnншх ЙуttкuiЙ dля cmанDаpmншх muniв B apифметинниx Bl,tpiвa,( щe мo)кyгЬ викopисToвуrlaTИcя стaндapтнi фщкuii. .{eякi з tlиx Baм вiдoмi 3 МaтeМaтиI(и: sinx,сos,т,/gx i т.i' Пpaвлa, y Пaскaлi пoнятгя фyнкцii бiльш lllирoкe' а.JIe пpo цe Мoвa бyдe йти пiзнirшe. A пoки Щo ми пoгoBopI,lMо пpo стаIrдapтнi фyнкuii, тo6тo тaкi фщкuii., якi poзyпriе Пaскaль без дoдaткoвиxIIoяснeнь oписiв. Пpiopитетнiстьoбчистa лeння фyнкцiй нaйвищa. oтЯtе, якщo B apифмeти,lномyвиpaзi викopистoByюTЬся фyнкцii, тo спoчаткy бyде oбvислeнeii знa.rення, a пoтiм I{aд циМи peзyлЬтaтaми бyлщь викoнaнi iншli дii. Cеред стaндapтниxфyнкuiй y Пaскалi e не тiльки тpигoнotvtетpичнi.щe I oднa дoмoBленiсть- y Мoвax пpoгpaМyвal{Ilя apryIuентифyнкuii вк:rзyюTьсяy дy)ккax. Toбтo B мaTrмaТицi ви пишrетe sin X , a У Пaскaлi тpебa вкaзyвaти sin(.r) . 86 Пaскaля A тeпеp нaвeдrllo списoк сTaндapп{иx фyнкцiй типiв Тx apгyпtентiвтa peзyльтaтiв. зaзнaчеHняNl _ сиIryс; sin(x) сos(x) _ кoсиrryс; еxp(x) ln(x) _ с.(eкспoнентa); _ Inх(лoгapифм нaтypaльний); abs(х) _ |"|t"oлvл"); - J, ; - . sqr(x) "' apгyмrнTaми Мoжyгь бyги цiлt ДЪя Ьyнкцiй вiд sin(x) дo ln(x) зaвжди дiйснi. .(ля perштифщкuiй a aбo дiйснi з}Iaчення, pезyльтaTи тип peзyльтary спiвпaдar з тиПoМapгyl{eнтa. цiлa ЧaсTинa i, тoбтo вiдкидaсться .шpoбoва i"'.йс-i x ЧaсTина; _ дiйснe, peзyльтaт- цiлий. Haпpиклaд' trunс(-6.7)=_6. _ .цiйснe, pезyЛьтaт - Дpoбoвa чacтиI{a x; к fraс(x) fraс(-4.5)=-0.5. fraс(4.5)=0.5, дiйсний.Haпpиклaд, _ зaoкp}тлен}tя цiлoгo знaчrння; x - дiйсне, дo гound(x) цiлий. Haпpиклaд, round(4.2)=4, p.,yn"'u' гound(4'5 )=5,гound(-4 .2)=-4, гound(-4.5)= -J. _ непaplroсTix; x _ цiле, pезyльтaт truе odd(х) - BизнaчrHI{я odd(5)=truе. odd(2)=falsе, aбo falsе. Haпpиклaд, щo нaстинy apГyN,lентa, ttеIIrpeBиIlIy€ - пoBepTaruiлy int(x) (pезyльтaт дйштий). Haпpиклад, int(3.7)=3' apгyl{еIrr in(-3.7)=-3 l{eмa€ . чиcлa7Т;apгyMе}rflв - пoBepTa€ знaчeння Pi зa .ЦoпoмorЮю IиaтеМaтиЧFIy фopvryrry' Teпep чaс зallpoпo:,lуBa1уBaМ Числoдo бyдь-якoгoстeпеня: мoжнaпiднести бy.Ць-яке якoi * sqrt(x) ,)' _ , ln . т r. . зaIIисy: пacкaJlевськoМy тaкol4y Це вiдпoвiдae еxp(ln(x)*y). apифмeтиЯ.'. pt'J*lo y npoфu"i бyлe oбчисленезнаЧення пoдzrjrЬIlloгo ДДя чtloгo Bиpaзy, тo йoгo неoбxiднo десЬ зaПaМ'ЯTaТИ пpисBoювaltня. iснyс oпepaтop викopистaння. !ля Цьогo 87
  • 46. iL !l lr I lll lr I 1l ir i] Ш iI rl i Зar ыьнпЙ Bигляд oПеpaтoрa: <iм'я змiннoЬ := <вIrpaз> . oпеpaцiro пpисBoIоBaння Мo)IGIa ще }luввaTи oпеpaцiею зaмi. щrнIrя. .(iю n:=m Мoxнa пpoкoМeнЦ/Baти тaкиМ u'.o'. знaчення змiннoi n пoBиннo бyпа зaмiнeнo пoтoЧIlиM зIlaчeнняМ змiннoТ m . 3нaк <<=>> вiдpiзняти вiд зHaкa <<:=>). слiд Пеpший oзнaчa€ пopiвн,lllня' yМoвy' Якy Мox}Ia пеpeвipити. Лoгi.пro викopистoв)tsaти йoгo iз зIlzlкoм зallитaнн,l: <сl=m?>>' oзнaчaс дiю, лqy пoтpiбнo вlпсoнaп,l. .(pyпй знш<<(:=>) Пpи викoнaннi цьoгo oпеpaтopa спoЧaткy зa зa.цaнoю фoрмyлою B пpaвiй чaстинi Bикollyються oбчислeннЯ ,t1p|4noio*,'* зIlaчeннЯx змiнниx, щo BxoдятЬ y неi, a пoтiм oтpимaним peзyль. таToм зaмiнloсться пoпepеднс знaчeння змiннoТ, щo "**u"u,,i"u. oпиpaюvись I{a пpиI{цип Bикoнaння oПеpaTopa пpисBoIовa}Iня' зpoзylliлo, uoмy злiвa мoжr стoяти лиtше iй'я змiннoi BеЛичиI{и: aд)I(e oтpимaне знaчeннЯ зaILI4cУеTЬcЯ Ty Чaстинy oпepaтивнoi у пaм'ятi кoмп'ютepa, яка видiлеHa NM цiеi змiннoi Пpи викoнaннi oпepaцii пpисвoroвaнI{я BaжJIиBим е спiвпaдaння типiв змiннoi BеличиHи в лiвiй чaстинi oпepaTopa i виpaзy, Щo oбчислlоеться в пpaвiй йoгo чaстинi. I{e пояснrостЬся,iдoбpa*e"ItЯм BикoнaнIIя oпepaTopa пpисBoIоBa}IIlя нa пaм'ятЬ кoмп'loтеpа: Tипи пoBиI{нi бyпa oдIIaкoBими. Haпpиклaд: p:-(a+b+с)/3; a:-sin(x)+sin(y); d:_sqгt(sqг(b)-4*a*с). Aлe виpaзи, щo бepщЬ }пIaсть в oпepaTopi пpисвoroвaння, Мoжyгь бym нe лиlпe apифметичними. Hапplлспaд, щaвoмipнi i тaкi пpисBoIoB:lш{'I: с h:='а'; text:='aлгopитм'; flag:=truе. Пеprший пpикЛaд пpисBoю€ змiннiй .нaЧeннЯ типУ сhaг. дpУrиЙ _ stгing, тpетiй _ boolеan. Пiзнilце ми бyДемo poЬ"дu.' r7ИTaHHЯ oбчислення виpaзiв типy booleаn. oпе-pацiя збiльrцення с нa 1 пoзнaчaеTЬся тaким Чиtloм: a:=a+l'. ii слiд ЧИTaTИ TaI<i зaмiнити нa а+|>>, <<сt oскiльки це.цyл(е BaтшиBo poзyмiти, щoб не poбити зaйвиx ПoМилoк, ПpoдeмolrсТpy€ М o poбory сaМе цьoгo oПеpaТopaсxемaтичнo (мал. l5). 88 3 мaлюнкa бauимo, Щo спoчaткy в oблaстi пaм'ятi, якa вiдведенa змiннiй a, знaxoдилoсяпoтoчне знaчення4. Bикoнaння oпеpaтopa a:=a+l вiдбрaлoся пoeтaпнo TaкиМ чиtloм: О пpи oбчисленнi Bиpa:}y спpaBa бyлo Bзятo пoтoЧ}Ie знaчeннЯ змiннoТ а (.rислo 4) i дo ньoгo .цoд:UIoсячислo 1; О oдеpжaнe знa- oг ffi -----> a:=a*l Мaтl.15 чrння 5 бyлo пoмiщене в ry oблaстЬ ПaМ'яTi,щo вiдведeнa змiннiй ПoпеpeдIlrзнaЧeннязмiннoi a BЦ)aчa€тЬся. а.Пpu цьol,ly Пpи пoвтoplloмy викoнaннi oпepaтopaa:=a+l змiннa a oTpимaс вже знaчeння6. oпepaтоpЬПpисBoIоBання: I{iкaвo poзглянytи тaкi пoслiдoвнocгi n:=k; 1) m:=n, 2) n:=k,m:=n. Цi пoслiдoвнoстi oпepaтopiв IIpисBoюBaння piзнi сToсoBнo збеpетсeння знaЧення змiннoi n. B пepшroмy випaдкy знaчення змiннoi n 6улo збеpeженеy змiннiй и. B дpyгoмy Bипaдкy знaчr}Iня бyлo викopисToвyзмiннoi n булo BтpaчeIIoпеpIII'нirк йогo мo)к}Ia Ba.Гу: зaмiщення змiннoТm. Taкlцм чиtloМ oстaння пoслiдoвнiсть ДЛЯ тaкiй: n:=k,m:=k. пpисвoюBaння oпepaтopiв фaктиннoaнaлoгiчнa Пumaння Оля caмoкoнmpoлк,: вupaзaмu? apuфмemuчнuMu 1 Щoнaзuвaюmь ix в oпepaфПacкaля nopяdt<упpiopumemнocmi' 2 Haзвimь apuфмemuннi oпepaцiidiv ma mod? MoKHaвuкoнувamu вeлuчuHafu'u 3 HadЯкuMu вupaзiв Пacкaлi? 4 Якi пpaвuлaзanuсyapuфмemuннuх у piвнi пpucвoювaння? oПepamop Як нa MaшuHHoMу вuкoнуеmься 5 H E IIPИ II УСItАЙ TE CЯ II o MIIЛ o It ! Якщo в apифмeтичнoМy виpaзi Ilе Bистaчaс дyжoк' тo кoмпiлятop Пaскaля Мo)I(еBи,цaти пoвiдoмлеHt{я пpo пoМиЛкy: Еrror 89: Unеxpeсtеd <(>, aбo ж Еrror 89: Unехpесted <<)>>. Пoдiбне пoвiдoмленнЯ пpo Пo}4илкy Taкo)к BидarTЬся, якщo aбo десь не BисTaЧa€ симвoлiв <<;>> <<:=''. 89
  • 47. Пpu нecпiвпaдaннiтипy змiннoi i знaueння,якoгo Boнaнaбрaе в pезyльтaтioбчислення,бy,цe видaне пoвiдoмленняпpo пoмилкy Eпot26: Тype mismatсh. Якщo нa етaпi викoI{aнI{я пpoгpaми, тoбтo пpи пoвнiй вiдcyг. нoстi в нiй синтaксиЧниx пoМи-Цoк' ви.Цaне бy.Цe пoвiдoмлeння Runtime eпor 106' тo це oзнaЧaтиМе, введенiвaми дaнi не спiвпaдaютЬ oписaним з щo TиIIoМ.Нaпpиклaд, неoбxiднo бyлo ввeсти числoвс знaчeння' a ви випaдкOBo ввeли сиМBoJli нaтиснyли клавiшry<<Еnten>. Iloiliбнe пoвiдoмлeння пpo пoмилкy' aлe з iншим кoдoм, бyдe Bидaне y Bипaдкy' кoли Bи зaxoчeтeвикoIIaтидiлeння lra вщ)aз' Iцo нaбyвar зНaЧення0, aбo дoбyги кopiнь з вiд'eмнoгo числa. У тaкик сиryaцiях тpeбa pетeлЬHoпpoaнaлiзyвaтипoчaткoвi дaнi. 17. CштaОaння aлеopumnriв 3 вulФpucmaнHЯM IlPucвoloвaння Пpuклаd l. Poзв'яжемoзaдaчyoбчиспeннязнaЧrннязмiннoТz зa зaдaниМизнaЧен}lями Ta у' де зaлеxнiсть змiннoi z ъiД х тa у х *+--4- зa.цaсться фopмyлoю: m sin х. + 10 poзв'язaннянaвeденoiyмoви зaдa'ri бyде Cлoвeсний ajlгOpитМ тaким: Bвeсти пoчaткoвi знaчrння ДI|Я Ta у. х oбчиcлити знaЧeнI{я змiннoi зa Z фopмyлoю v х*---*- sinл. +10 program pгoba; vаr х,y,z:intеgеr; bеgin wгltеln('Зaлaйте y:'); x, rеаdlп(x,y); 1) 7;=(x+y/(sln(sqг(x))))(sqrt( x*x+y*y)+sqг(sin(x))+ ; wгiteln('z=' ,z:o:3) r:nd. IlpoaналiзyrМo зallpoгpамoвaний apифмeтинний виpaз. Пoltсpш|е, кiлькiсть вцкритиx тa зaкритиx дy)кoк пoвинна бщи piвноrо. Пo-дpyгe, нiякa зaкpитa д)D{кa нe пoвиtlнa пеprдyBaти вi.'дкpитiй.Це пoпepeднiй синтaксичний aнaлiз виpaзy. A тeпep rtсoбхiДно Прoвrс:rи сeмarгпaшшйшrшiз. I{e мoжнa зpoбити лише .l.ссT.yвaнням: пiдiбpaти кopeктнi i зpщнi пoчaткoвi дaнi, для якиx Ilсltа)l(кo Bикoнaти oбpaxyнoк BpyчHy. Дltя }IaшIoгo BиIIaДкy буи z=0.|, PезyльтaтпoBинeI{ l titii зpy.t i шa пepeвipкa.Цля l'l x=y=Q. Звеpнiть yвaгy шa тaкi фpaгменти фopмyли: sin(sqr(x)) тa sqг(sin(x)).Oбчислення фyнкцiй вiдбyвaстьсяз сepедини,тoбтo y х2, llсpllloivy вирaзi спoчaTкyбyле oбнислrнo знaЧенItя a пoтiм вiд ().Il)l{МaнoГo знaЧeннявзяте sin, a лpщий _ нaвпaки.У фpaгментi sr;rt(x*x+y*y)зaстoсoвaнийiнrший ваpiaнт oбчислення квaдpaтiв 'Jlli'lllсIIЬ змiнниx.oбидвa спoсoбипpaвoмipнi. llputaшd 2. Cepel, apифметинниx oпеpauiй' щo визнaчeнi в llaскалi, с двi, нgгиповi для мaтeмaтики. [e oпepauiТз цiлими lttlсJlAМиdiv тa mod. Boни B деякиx випaдкaх бyвaють .Цyже кopl,lсll иМи пpи oбuисленнipeзyльтaтiв. }laпpиклa.Ц, poзгляI{eМo aJIгoритМ визнaчeння сyMи цифр ,|.pll:lllittlttoгo ", + у , + s i n 2л +1 Bивести oбчислене знaЧення z. Пеpпr нiж нaBeститeкоT прoгрaми' Щo вiдпoвiдaеaлгopитМy oбчислeннязнaЧення apифмeтиvнoгo Bиpaзy,пpoaнaлiзyсМo зaдaнy пеpекoнaтися, фopмyлy.Пpи викoнaннi лiнiйниx ПpoгpaМBa)клиBо шlo B pезyльтaтi oбчислеtlня apифметиvнoгoBиpaзy не Bинl,Iкнс ситyauiT дiлення нa 0, дoбyвaннякopеняз вiд'емнoгo числатoщo. B Як кoли Тaкe лaнiй фopмyлiтaке дiйснo нeМo)клиBе. 6уи y Bипа.цкy, Мoжe сTaтися, Мt{ з Baми poзглянеМoпiзнilше пpи знaйомствi з poзгaлy?кеI{иМи ;UIropитМaMи. 90 Числa х.ДЛя Цьoгo тpебa видiлити oкper,lo йoгo цифPи 'iil,|.ilкOК) послi.цoвнiстto дiй: poзpядy Mo)кнaвиз}Iaчити дorloМoгolo зa L[ифpyнaймoлoдшroгo tlпс1lаtliТ шоd l0. x l(llфpy дeсяткiв мo)I(нa oбчислити зa Двa кpoки: сПoчaTкy tri;1tсttttуr-и oстaннЮ цифpy i в oтpиманolиy дBoзнaчнoмy числi вжe tri,,цlпttlttr oпеpauiсto mоd визнaчити йoгo Цифpy нaймoлoдtцoгo lloслiдoвнiсть oпеpaцiй бyде тaкoю: (x div 10) mod l0. р()']ря.iiy. Стaplшy цифpy тризI{aЧHoгoЧислa мoж}la oTpиМaти' пoдiливrши iioiu tIаlli.llо l00: x div l00. нa 9l
  • 48. Зaпиrцeмoпpoгpaмy' щo pеалiзyснaвeдeнийaлгopитм: program prоba_l; var X$ez: intеger; bеgin writеln(' Задaйтетpизнaнненислo:'); геаdln(x); rez:=(хmod 10)+((x 10)mod lO)+(xdiv 100); div writеln('Cyпla uифр зaдaнoгo яиcлa:,,rez) end. B дaнiй пpoгpaмi ми пoки щo He п,Io)кeмo кoнTpoлюBaTи кopeкпriсть BBeдення сaме Tpизнaчнoгo чисЛa. I{e нa сoвiстi кopисTyвaчaпpoгpal,rи. Aлe для всix чисел, мeIIПIиxзa Tpизнaчне' пpoгpaМaBсе ж тaКи dуlepaxуъaтu peзyJlьтaткopeктнo. 18.Пpaкmuчнa podoma <CmвopeннялiнiЙнuх пpoep,aм,3 Зa нaведеним сценapiем викoнaйте зaвдaння пo стBopеIlнютa IIaJIaгoд)кеHню лiнiйниx aлгopитмiв тa пpoгpaМ. 1) Buзначumu кiлькicmь i munu вхidнuх dанuх вidnoвidнo do заdачi. у^,|oвu 2) Buзначumu кiлькicmь i munu вuхidнuх dанuх вidnoвidнo do уллoвuзаdачi. 3) Buзначшmumun а]Izopш||Iу|у, noбуdуваmu,MаrneJу|аmuчну лlodель. 4) Buзначumu нeoбхidнiсmь ввedeння npoмiэюнaх dанuх, ii кiлькicmь mа munu. 5) Poзpoбumu cлoвеcнuй onшcаJlzopumаИу. 6) Пoбуdуваmu схeJ''у сlЛzopumJv'у. 7 Buзначumu noслidoвнiсmь ввеdeння noчаmкoвuх dанuх з вuкopucmаHня-l,tid noвid нuх кoмeнmаpi в. в 8) Buзначumu nocлidoвнicmь вuвedенняpeЗульmуючuхdанuх з вuКopucmа|lняl'l вidnoвidнuх кoлleнmаpiв mа неoбхidнiсmь ik фopлlаmування. 9) Заnuсаmu алzopumм J'|oвolonpozpа.4ування. , Зaвдaннядля дaнoТпpaктиvнoi poбoти нaведенi y <Збipникy впpaв тa y poздiлi <Ствopeння зaдaЧз aлгopитмiзaцiТ пpoгpaмyBaння>> лiнiйних тa пpoГpaМ> О)Hабpаm|t meкcm npolpаIv|u, вuкopucmoвуIoчu cepedoвuще npozpал4увсlння. npolpа]у|ll,вunpавuвtuucuнmакcuчнi II Buкoнаmu налаzodэrceння noJЙtJIкu. mecmiв. cucme^4у nidzomувавlau 12)Buкoнаmunpo?pаJу'у, 19.Teмamuчнa amecmaцiя <Пpoеpaмa. Moвa пpoеpaMувaння,, ДляBикoнaнHя темaтичнoi aTeсTaцii нeoбxiднo: 'I'аmu . oзIlaчeння тa клaсифiкaцilo мoв пpoгpaм)вaншt; . якi мoBи пpoгpaмyBaння вiднoсяться дo пpoцeдyprrиx; o щo тaке стpyктypне, лoгiчяe, oб'ектнo.opiентoвaне, вiзyальIrr пpoгpaмyBaння, ix oснoвнi ПoIIятTяTa пpиIrципи; o щo Taкe системи llpoГpaмyвaнHя; . сyгь щaнсляцiТ npЪ.pu", вi.цмiннiсть мiж iнтеpпpетaцielo тa кoмпiляцiеto; пpoгpalиyBaння Пaскaль; o oсoбливoстi та пpизнaчеIIIIя I,IoBи .а.пфaвiтмoBиllpoгpaмyвaнIlя'сyTьсинтaксичнoгoтaсемaI{TичIloгo aнaлiзy пpoгpaми; о oснoвнi пoнятТя МoBи пpoгpaп{yBallня; о фopми щeдстaвленIrя дйсrплr'л,lсел B мoBzD(пpoгpaмyвaнIlя; . стpyктypy Пaскaль-пpoгpaми; . IIIoTaкr веЛиЧинaтaii oснoвнi xapaктepистики; . сTaндapTнi типи дaIIиx y Пaскaлi; о вкaзiвки введеIIIIяTa виBедеIIня iнфopмauii тa ix oпис мoBolo пpoгpaмyBaння; . пpaBиJIa зaIIисy apифмeти.rних виpaзiв; о вкaзiвк y нa,цaнIIяз нaчeннятaз aгaльAиtrlвиrляI' oпеp aTop a IIpисBoюBaнIrя; ... y . пpиI{цип Bикoнaння oпеpaцll нaiцaння змiннiй знaЧе}Iня вiдoбpaжeннi нa пaм'ять кoмп'ютepa; вмima . BизнaЧaTи клaсифiкaцiю мoв пpoгpaМyBaння; .кo pи сTy вaTисяMoжJIиBoстяМиlнтегp oвaнoгoсеp едoBиЩ a Тa Ilpoгpaмyвaн}rя для сTвopення' pедaгyBaнIIя, нaлaгoд)кеIlня Bикoнaн}tя tlрoгpaм;
  • 49. . кopистyвaтися пpoцeд)paМи тa фyнкцiями }roдyля CRT для обpoбки iнфopмauiТ B текстoвoмy рeжимi; . кopистyв aTllcя cTall.ДapТними фyнкцiями lt{oви прol'pамyBa н. Еlя' щo визнaчeнi N|Я cTaНДapтних типiв; . кopектIlo зalrисyBaти apифмeти'tнi виpaзи; о рзв'Byвaти зaдaчi з BикopиcгaннЯм BвeденI{япoчaткot]иx llilнltх, oбrпtсленrшзHaчeI{Ь змiнrrих тa виBrдeнI{,I peзyльтylочиx,цaltих ] . TeсTyвaти склaдeнi пpoгpa}Iи; о aналiзyвaти сиI{тaксичнi тa сeмaнтичнi пoмилки. Aлtгopитilnи pфгaлy,кeнHяПnтa пoBтopeн}|ям 3 20.Лoеlчнi вupalu. Bкaзiвкa polraлуxсeнnя Кpiм apифметиЧt{иx виpaзiв,в aлгopитмiзauii poзглядa€TЬсЯlllс oдин Tип виpaзiв.Biн нaзивaеться лoгiчним. ,& Лoziчнttl,tu вupаЗа'lu нсBl|ваюmшя mакi вщазц впaut idсltс oбчucлeшш яtaa od.еpuсуюmrcя лaziчнi зtrачеt ttut <tuе> aбo ,,fаIsе, (nmак, а(lo <нi>). Heвeличкeзнaйoмствoiз стaнлapтниl{ типoм змiнних Bооlсап, якi мoжyгь нaбрaти лишe ,цвoХзнaЧенЬFalse тa Trше, y l{ilс t])l(с вiдбyлoся. oгжe, сaмe тalс,rйшп i нaбрaють peЗyлЬTilтt| oбчllс.ltсtlня лoгiчншxвиpaзЬ. Лoгiчнi виpaзи пoдiляютьсянa пpoстi тa склa.ценi. ,& Пpoсmttмtt лoziчнl|Л'|u вupаЗам'|t'|аnuшlюmьcяmaкi, уtкi ЗаnaсуЮпbся за donolloeoю знакiв cniввi,dнoшс,t tt, <€ > >, <)'), <<<=>, <<>='>' <<=>> <<<>>. ma Пpиклaдилoгiчниx виpaзiвМoжyгьздaтисяBам пpoстиMи: а+b> с+d, n<>m. х=У. ПopiвняйтeTеперПpизнaченt{я симвoлiв ..:=>><<=>>! тa Звepнiтьтaкo)кyвary нa тe' щo спoчaTкyBикoнyютЬся аpи(lмстиннi дiТ,a вrкeпoтiм порiвняння pезyльтaтiв. oдеpжаltиx Склаdенuмu лoziчt1ttJуIu вllpсBa^|uнаg|вaюmьcя mакi, ttкi сюlаdаюmьcя з npocmuх вupазitl, o6, edнанttхлoеi,ut tLlt u oa onеpацiя-lt'lu nd,, < >>, >>. o| <<flф Cклaденi лoгiчнi BИpaзп€ нe мeнш цiкaвими i з тoнки зopy лoгiки цiлкoм зpoзyшtiлими. пpиpo.ЦнoТ flaвeдeмo пpикJIaди. З мaтемaтикивaм вiдoмi тaкi зaписи: хеfа,b] тa х*|а,b] . Cпpoбyeмoзaписaтиix y виглялiлoгiчниx виpaзiв (x>=a) and (x<=b), and (x<=b)). (х<а)or (рb) абo not((x>=a) Пpu За|IuСуваннicклаdенtlх лoеiннtlх вupазiв npoсmi лoeiuнi вupаЗu o6oв,язкoвo бepуmьcя у кpуzлi dуэrcкu! пpoстий лoгiчний Bиpaз n<>m y Цiкaвo, чи мo}кнa ЗaпvIcaTИ вигrшдi склaденoгo?Bиявлясться,мo)кнa:not (n=m)! знaчeнняскJIaдеBизнaчимo пpaBилa,зa якиMи oбчислtotoться Ilих лoг1ч}Iих Bиp€ B 1B. ,ЦДяцьoгo iснyroть тaблицi iстиннoстi (тaбл.5): B A 0 0 t I Aаnd B A B 0 I 0 I AorB 0 I I I 5 Tаблuця г:_т- щ l0l . l l I 0 о l ltl 0 I 0 I I I <0> oзнaчaсfalsе,a цифpa щ" ,pр"oстi y Циx тaблицяx цифpa 0 I 0 0 0 _ <1> truе. Haведенi тaблицi Мo)кнa гIrpeфpaзyBaтиТaкиМ чl,ltloМ' Лoziчrш oпepацiя and dаe pезулb|t'а||| true modi i tпiлькu пoDi, кoлu oбudва onеpанdu Л|аюmьзначeння ttaе. Лoziчна onеpацiя or daс pвульmаm ttae пodi, кoлa хoча б oduн onеpанd маe 3нaче'|ня trae. Лоaiчнсl onеpaцiя not завctcdudаe pезульпаn'' npomuлelcнuЙ 3нач e,u' to iTon epанdа. знaЧrl{ьлoгiчних виpaзiв. Ми вели poзМoByпpo oб.rислrl{ня <A 3poзyмiлим€ зaпиTaння: де ix мoжнаBикopисToByвати?> лoгiчниx виpaзiвТaк, як i apифметиBикopистa}Iня Пo.neptue, пpисвoювaнrjя. B чниx,Мo)l(ЛиBеoтIеpaTopi Haпpиклaд: logiсal_1:=>b; and logiсal_2:=(N<=х) (x<=M); flаg:=falsе. 95
  • 50. Умoвolo безпoмилкoвoгo BикoнaннЯ тaкиx oпepaтopiв € спiвпaдaння типiB, тoбтo змiннi в лiвiй чaстинi циx опеpaтopiв пoвиннi 6уu oпиcaнi типoм bоolеаn. Tа Iro.dpуze, peзyльтaт oбчислeння лoгiчниx виpaзiв <<true>> <<false>> мoжHa щe Tpaктyвaти як <<Taк>) <<нi>>. нaвoдитЬ нa др{кy тa Цe пpo Bикopистaння лoгiчниx виpaзiв NIЯ Bи|зНaЧeнняoцiнки дeякoi сиryaцii, IЦo сKIIЕшaся,iпplаiаняття piurення IIpo тr, щo poбити далi. 5аnuc &I|zoDu|'|J||'в З вка3Iвка'J|1u Do7zаJlvilce''Ilя Уявiть coбi, щo Bи зa кepмoм aвтoмo6iля i пepед вaми стoiть .lxaпa Пoпllloю':rЛe кopЙIIIoю дoргою, aбo xс вибip пoдалЬIltoгo pyхy: гapнolo, a,Ie дoBIIIoro.3вичafuio, щo вибip булeзalrcл<aтuвiд пeвruлс yпloв: пФ.пФIIIe' .пl с зaйвlй чaс' пo-дpyгв' xтo xaзяiн aвтoмoбiля? Cxoжy пpoблeмy зaB}кди виpiIшyloть oпepaтopи poзгajIyI(rI{IIя. Заzаllьнtлi alzпяd noвнozo onepаmopа у.мoвнo2onepехoф : if <лoziuнuй вtlpаз> tJrcn PI elsе P2' deлoziuнuй вttpаз _лlouce нафваmu odнe з dвoх зttаченьff|t.е аб6fаIse, PI ma P2 _цe onepаmopu' Poбoтa oпrpaтopa ylroBlroгo пеpеxoдy }lе BикJIикaе нiякиx тpyднoщiв. I{ей oпеpaтоp BикopистoBy€ pезyrьтaт oб.пдшlеrпшлoгi.Iнoгo Bиpuшy дlя вибopy тoгo чи iнtшoгo luляxy нaстyпtloгo Bикoнaння zlJlгopитМy _ Bикoн.lнIIяoпеpaтopa Pl aбo oпеpaтopa P2. Пiсля цьoгo poбoтa aJIгoPиTМy пpoдoв}кyeTься дaлi зa вкrвaними oпеpaTopaМи. Cxемa aJlгopитмy IIoвIloгo oпеpaTopa yпloвI{oгo пеpехoдy (мал.16) нaoЧ}lo демol{стpyс, щo пiсля aналiзy знaЧeння лoгiчнoгo виpазy бyле вибpaниiц лwлe o.цин з l{aстyпниx нaпpямкiв Bикoнa}Iня бyле викoнрaтися Дaлi' aлгopитМy (Pl aбo P2), пicля чoгo цей ajIгopPПI4 Cxeмa aJIгopиTМy скopovенoi фopми oпеpaтopa yN[oBHoГo Пеpехoдy (мал.17) Taк сaмo дy)ке сxoжa нa пoпеpе.цню. 96 Заzальнuй аnляl скopoчeHozo onеpаmopа у]}|oшoeo nepыoф: tf <lюeiчнuй вupаз> thrn P, dе значeння nаpа'vempiв mакi cut,ti,як i в noвнiй фpл,ti. Ha сxемi aлгopиTмy дyхе дoбpe BидtIo piзницр мiж двoмa фopмaми )rмoBнoгo oпеpaтopa: в пеpuriй - пoвнiй _ нeзaлleжнo вiд знaчeння лoгiчнoгo Bиptlзy якiсь дii oбoв'язкoвo будутъ викoнaнi, a вже пoтiм пpoдoв)кeнo BикoнaннЯ aлгopитМy ДaJIi,у дpyгiй _ скopo. ченiй * y Bипaдкy' кoли лoгiчнlаtl впpaз нaбyдe знaЧrння true' бyдy." викoнaнi якiсь дii, a пoтiм пpoдoвжel{o викol{aння aJIгopI{тMУ, a y Bипaдкy' кoли лoгiчниil впpaз нaбyДe знaнeння falsе, :rлгopитм зpaзy )I(бyле пpoдoвжeнo дaлi. Poзrпиpимo пollятгя oпepaтopa y Пaскaлi. .Цoсi ми з вaми мaлI.l спpaBy лишIe З Пpoстим oпepaтopoм пpисBoюBaнIrя тa oпepaTopolt,l yI!{oBI{oгo пеpeхo.цy. A що poбlrпl, кolпl пiсrrя оцлкбoвшl cпЬ then aбo eЬе нaм пmpiбнo вкulз:lти He oД{I{ тaкиЙ oпepaтop, a дeкiлькa? .{ля тaкoгo BkIПaДI<у Пaскалi BBrдeIIe пoняття скJIaдeIIoгo oпepaтopa. y '.ft ЦI Cюшdеншll onepamopo]|с llсtзuваюrnьnoслidoвнicmь deкiлькoх onеpаmopiв, poзdiлeнuх сllлцвolюм <<;>> вЗяmuх в mа d1nюlФ begin...etd. Iт maн dля ca мoкo,.:##*'i i ня 1 lJ]o нaзuвaюmь rюеiннuмu вupaaмu? яi dвa Ha muпu пфiлямnrcя? вoнu 2 Якi знaкu спiввidнolueHь вulopuсmoвуюmься dля *aпucу Пpocmuх лoеiчнux вupaзiв? 3 Haзвimь лoеiчнi onepaцГi. 4 Пoяcнicmь вuкopudnaнHялoеiзнux oпepaфЙзa maблuunмu icmuннocmi. 5 llo нaзuвaюmь cклadeнuM oпepamopoм? Якi npaвuлa Йoеo зaпucу? 6 xкuм чuHoM opeaнiзoвaнe poзeaлpKeння у Пacкaлi? 7 Чuм вidpiзняюmься Пoвrta ma cКopoчeнa фopмu onepamopa у^roвHozoпepeхodу? 8 3aпuшimь зaеaльнuй вueляd пoвнoi. фopмu po*zaлpкeHня. 9 3aпuulimь laeaльнuЙ вuеляО cкopoнeнoi фopмu polеaлРKeHня. 10 HaмaлюЙme cхeшu aлеopumмiв oбox вapiaнmiв poзeaлужeння. H E II P И II У CItА Й TE CЯ II o M I,IЛo IQ Якщo Bи Bикopистaли B oпеpaTopax poзг:t"jly'(еI{tul неПaplry кiлькiсть oПеpaTopl{иx дy)кoк, тo мo)кr 6уrи видaне пoвiдoмлeння прo oднy з двox пoМилoк: aбo Епor 85: <<;>> eхpeсtеd Егror 113: Епor in statеmеnt. 9',1
  • 51. ]Шr rlii il li Якщo пepeд с,ry,кбoвим слoBoм еlsе в oпеpaтopi yNloBrroгo тo пepexoдy стoiть <<i>), кypсop бyлe BстaнoвлеIlo нa цЬoМy слytкбoвoмyолoвi i бyДe ви.Цaнe пoвiдoмлeнняпpo IIoмиЛкy: Епoг l l3: Егor in statеmеnt . Якщo B oпepaтopaх ylroвнoгo пrpexoдy B oкpeМиx блoкax вцсyпri дeякi oпepатopнi дyжки, тo пpo цe пoвiдoмитЬ тa сaмa пoмI,lлкa Еrror l l3. 21. CtqaОaHня aлеopumмiв 3 llpocmun/|u paleaлухGt1l]я- ||лu Пputсllаd l. Teпep в)кe чaс пepeходити дo прикJIaдiв. PoзглянеМo aJrгopитм пotuyl(y нaйбiльцroгo з двox зaдal{их чисeл A тa B. Пoбyлyсмo aлгoритм офopмyльoвaнoi зaдaчi. Ha ueй paз oбepемo сxeмaтичнe пpeдстaвJIeння aJIгopI{тмy' як бiльul нaoчний спoсiб пpeдстaBлeння сaмe рoзгaJIy)кенI{x типiв aлгopитмiв (мал.18). Пpoгpaмa, щo вiдпoвiдaс нaвeденoмy iulгopитIvry' мo)l(e бyги тaкoю: program max*A_B; var a,b,max: геal; begin writе ('3qдaйте дBa 6yд". якиx нислa:'); гeadln (a,b); if рb }.IаI'.18 then bФn writеln ('Пеpше числo бiльшe зa дpyге''); max:=a end еlse begin еnd 98 writеln ('Цe числo-',maх:10:5); гeadln еnd. Пo-пеpшlе,y нiй Poзглянeмо дEтальнiшreнaBeденy пpoгpаIr,ry. oпеpaтopiв, тoбтo uiткo спoстepiгaeться пpинцип <<вKпaдeнoстi> сxoдиtlкoвa стpyктypa. Haoчнiсть тaкoi пpoгpaми явнo вигpaс..(ля цьoгo в нiй нaвiть з'eднaнi Bepтик:rльними лiнiями oпeрaтopи piзнoгo рiвня. Пo-.Цpщe,пepeд зaкpиваюЧoюoпepaтopнoюдy)ккoto l iend) нe стoТтьсимвoл <;>. дiйснo' ви ж нe стaвитe кoмy в тeкстi в в пеpeд зaкpиBaloчoro дy)ккoю' кoли пepepaxoвyeтe ньolvry д)Dккax д.*i,"*u слiв? Хoчa в Пaокалi цe нe с пoмилкoю. 3a тиx сaмиx oб. пiсля i стaBин нe пoсTaвЛeний симвoл <<;>> пpoцeдypигeаdln. Cпpoбyйте вiдпoвiсти нa тaкe зaпитaння: при Bl{кoнaннiякoi yllroBи бyДе викoнaний oпepaтop max:=b? ,{iйснo, зa yNloвoю' пpoтиJlежнoюa>b,тoбтo пpи викoнaннi ytlroвиa<=b! Ilpaклаd 2. Poзглянelиo пpикJIaд сKпaдa}I}Iя:lлгopитмy oбчис. Bиpe}y:,=7т ле}lнязнaче}lня {.r Ha пepurий пoгляд лiнiйний шrгopитм. це пpoaнaлiзyвaвши Aлe' мoжливi знaчення пoчaткoBt{х дaнI{x' мoжнa пoбaчити, щo нr дJIя вcяких 3нaчrнь .r виpaз бyДе oбuислeнo.Якщo нe зpoбити пеpeвipки нa вiд'eмниx вiдсyгнiсть 3нaчeнь ДIIЯх' тo oтрl{. мaти кiнцевий peзyльтaт lvto}t(лиBo. зaBжди нe Taким ЧI,lнoм ми дiйrшли Bисtloвкy' щo дaний poзгaлyл(e. aлгopl{тм € ним i oзнaкoю цЬoгo r нaявнiсть poзгaJlyжerroгo eЛеMеt{тa' щo пeрвipяс нa не вiд'смнiсть знaчеH}tязмiннoТ х (мал. l9): Мaтr.19 99
  • 52. l rl I 3 тoчки зopy пpoгpaмyвaння цeй a.пгopитм мo)кнa oхapaктериэwaTИ' як :rлгopитМ oбчислeння зI{aчeнI{ЯвиpД}y iз зaxистoм вiд BведeIIHя IIeкoprктIIиx дal{иx. ,gкЩ9 нe зpoбити пepeвipкy вxiдниx знaЧeнь' тo кoмпiлятop зa пeBниx ttекopeктIlиx yIиoB Мo)I(e BидaTи пoвiдoмлення пpo вiдпoвiднy систeмIry пol,rиЛкy.3aстoсрaвши для мox(нa зaпобiгги тaким нeПpисмIloстям. Пpoцьoгo poзг:l'л)DкeнI{я, гpaмa виглядaтиме iaк: progгam sequrity; vвг x: real; bеgin wгitе ('Зaдaйтеvислo:'); readln(x); lf (ь=0) then wгitеln(sqгt(x)(sqг(x)+ l )) еlsе writеln('Пo'raткoвi дaнi некopeктнi') еnd. Ilpuruшil 3. Пpи poзбopi лiнiйниx aлгopитмiв ми з Baми poзглядaли зaдaЧy' Дё вуlДilялu oкpемo uифpи Tpизнaчнoгoч!|Ф1a. пpи poзв'язрaннi дeякI{,( зaдaчнa Цeй дoсвiд Ivloжrстaти кopис}IиМ poзг{rлy)кel{нЯ. Haпpишtaд, нexail, Для пeвнoi зaдaчi неoбxiднo вуlДiлlrruuифpи voтиpизнaн}Ioгo числa. Bизнaчимo змiннi а' b, с, d дlя збеpiгaння цифp цiлoгo ЧИcЛa' щo мiститься в змiннiй x. Haстyпнa пoслiдoвнiсть oпepaтopiв IIpисвoIoBaння виpiшrить пoстaBлeIIyзaДaЧУ: a:=xmod l0; !;=(x div l0) mod 10; g;=(xdiv 100)mod l0; d:=xdiv 1000: .(алi нaм ЛиIIIaстьсязa ylиoвolо зaдaчi oбpoбити oтpимaнi peзyлЬTaти, пeBним чиIloМ пopiвнявtпиix знaчення. Haпpиклaд, пepевipкa спiвпaдaння IУNIL|стapulиx дBox i мoлoдulиx двoх цифp wrcлaбуДe BиглядaTи тaк: if (a+b)=(с+d) then writeln(' Cyми збiгaються') elsе wгitеln('Cyми нe збiгaються' ); r00 rIum a']нf,dля сaмoкoнmpoл to: мoжлuвuxз6otв npu 1 Якuм чuнoлtttФкнa niaхucmumun Пpozpaм! вiО нuх вupaзiв? o6ч cлeннi apuфмemuu u doпoмoеoю apuфмemuчнuх oпepaфЙ dля цiлozo 2 -ii""," - ;r"" iu,oi зЬ чucлa? мo)rшaвuaйuiu oкpeмi.цuфpuзaaaнolo цiлozo пpuклaО aлlopumму 3 Пoвнoto фopмoю 3 Haвedimь влacнutt pozaЩpкeння. . ', i4 cкopoнeнoю tfrrrt Haвedimь влaснui пpuклad aлеopumrrу iз ^U^^^!apnul фopмo1o po'aaл)ркeння. .HaмaлЬЙme сxe^u aлеopumмiвo6oх вapiaнmiвpoзеaлужeння. 5 вlслaыDс 2. Cшadaння allaopumlЙiв 3 вu,сopucrlnaнняM 4 p*aлукeнь Haстaв чaс пpиKJIaдy, скJIaдениx лoгiчних виpaзiв. якуlйl пpoдeмolrсTpy€ BикopистaнI{я . нaйбiльrпoТ пoшyк r. Пpuюtоd Poзглянrмo 'p-1i-1T1ry_: вapiaнти oTpимaння вlдпoBr.цl piзrтюr a b, с. Poзбepемo МoжJIиBi ""*'lon' зaдa.ry: нa IIoсTaBлеI{y тa с; о нaйбiльrпиМ знaчеI{IIяМс a, якцIo вoнo бiльluе зa b Г01
  • 53. rl . якщo TBepд)I(eння П.l) }Iе спpaвДкy€ться' тo бiльцrим знaЧeнI{ям с b зa yмoBи, щo вollo бiльluе зa с; . якщo I{е сIIpaвджyIoться yltioви п.п.1).2), тo нaй6iльцrим бyДе знaиення с. Мoвoю сxeм цей aJlгopитм бyДe виглядaти тaк' як зoбpaженo нa мaл'20' Ми бaчимo Bикopистaннядвox Bкпaдeниx рoзгаJIyЛ(еI{ь. Brгyгpiшrнсpoзг:rлy,I(eння бyлe викoнaнo тoдi i тiльки Toдi, кoли знaЧe}rня лoгiчнoгo Bиpaзy зoвнilшньoгo poзraлy)кerrlrя мaтимe знaчеI{llя<<нi>>. oзнaЧaтиМе'щo знaчeння змiннoi а нe e нaiа. I.[е бiльrшим,тoмy y вкJIaдr}Ioмy poзгaл}aкeннi пepeвipяеться лиIlIезнaЧенI{язмiннoi D. Якщo ж i iТ знaчrння не с нaйбiлЬцIиI{. Литo цIaстьсявизнaти' щo нaйбiльlцl{мr знaЧe}Iня змiннoi с. У зaписi мoвoю пpoгpaмyBal{ня алгopитм виглядaтиI,tr тaк: pгogram max-A_B-C; var a,b,с,max: real; begin writе ('Зaдaйтe тpи бyДь-якиx uислa:'); геadln (a,b,с); if (рb) and (a>с) then bеgln I wгitеln ('Пepше Числoбiльцleзa iншi дBa.'); I max:=a .еnd еlsе if (b>с) then begin writeln (''Цpyге числoбiльuleзa iнrшiдвa.'); max:=b еnd еlsе bеgin за I wгiteln ('Tpетечислoбiльtшe iнrпi двa.'); I IПДХi=C end; .',max:l0:5); wгitеln ('l{е .rиспo гeadln end. t02 не e сди}IиMBaplaнIlpuклаd 2. oднaк, нaведений aJlгopитм пoпеpедllЬoгoпpикJlaдy.Cпpoбyемo зaпиToм, щo poзB,язус "uдu"ry Пolцyкy нaйбiльuroiз тpьox вeЛичин. iнu,,и вapiaнт :lJlгopиТмy "a', Бy.пемoмipкyвaти тaким чиI{oм. вollo ;;."'. йoб знaчення змiнltoi а 6улo нaйбiльrшим, r; ..--..д," пoвиIlнo бyги бiльulим, нiж зa b i зa с. . нaйбiльцrим' Boнo щoб ,"u.,"''" змiннoi b 6улo 'oгo, пoBинI{o .^--..li;; бyпа бiльurим 1зa а i зa с. . Bollo ;"гo, щoб знaчення змiннoi с бyлo нaйбiльшrим, пoBиннo бщи бiльrшимi зa a i зa b. тa пopiвняйте oбидвa цьoгo aлгоpитruy Poзpoбiть сxeтvfy .сaмi вapiaнти aлгopитмiв oднiсi i тiсi x зaдaчi. як текст пpoгpalvtи' нaве.Цений A дoпoмoгolo Baм B цьoМy 6y.Це tulгopиТмy. oдин iз опoсoбiв пpедcтaвJlенIrя max-A-B*C; program rеal; Yar a,b,с'max: bеgin числa:'); Ъritе ('Зaдaйтетpи бy.пь-якиx (a,b,с); геadln if (Db) and (рс) then bеgin бiльrцeзa iнцri дBa''); l ivritеln ('ПеpшlеЧисJIo I max:=a lеnd; if (b>a)and (b>с) then begin ('Дpyге числo бiльшe зa iнuri дBa''); |--"йit.to I max:=b Ьnd; if (с>a)and (с>b) thеn begin зa iнtшiдвa.'); l ivriteln ('TpетсчисЛoбiльшrе l max:=с Ьnd: writеln ('Це числo- ',max:10:5); геadln еnd. 103
  • 54. Пpoaнaлiзyсмo oбидвa а.лгopитмиoднiеi i тoi xс зaдaчiпolllyкy нaйбiльlпoгo знaченI{я тpьox зaдallиx. iз oтжe, y пеplцoмy алгopитмi внyгpiпrнiй oпepaтoppoзгaIDDI(eI{}UI викoнaстЬсятiльки тoдi, кoли нaс <<пpoпyстить>) дo ньогo зoвнirшнiй oпеpaтoppoзгalry)кення. I{ей пpинцип мo)кI{a пopiвняти з сиToм. У дpщoмy вapiaнтi ilлгopитмy всi опepaтopи poзгaJlyл(eння r пoслiдoвними' Toбтo всi вoни бyдy.ь BикoIIyBaтися,пepeвipяти знaЧеI{I{я свoii лoгiчниx виpaзiв i виpitпyвaти, викoн1вaти ни нi вкaзaнi в ниx дii. oкpiм тoгo, тpeбa зayBaжиTи'щo Bикopистaнi тщ oпepaтopиpoзгaлy,кeннямaloть скopoЧelryфopмy. Звиvaйнo, щo з тoчки зopy eфективнoстiBикoнaI{ня aлгopиTмy пepeвary мar пepшrийвapiaнт: y ньoмy мoжe бщи вIlкoнaнo меtlПIe пepeBlpoк ДIIЯ дoсягнeння нeoбхiднoгo pе. зyльтaTy. Aле, зpеIIIтolo' Bсе зaлeжить вiд кoнкpетнoТ yNroBи зaдaчi i бaчення iТ peалiзaцii. вигpaпr '(eсь бyДе нa етaпi BикoI{aнHЯ пpoГpaМи' a.лe пpo. гpaЦI в if нaписaннi, a дeсЬ пpoгpaмa бyаe зpoзyпliлilшolо, К1I{rць .rле кiлькiсть викoнУBaшИr.дiй в нiй бyле бiльшoro. Пpuюtаd 3. Heoбxiднo oбчислити Знaченtlя фyнкuii ПpИ зaДaнoМy apгylиентi зa тaкoю фopмyлolo: Aлгopитм .цaнoi зaдaчi мorкнa ЗaПИca.IИЗa дoПoМoГoю TpЬox пoслiдoвниx poЗг:l"Лy)кенЬ'щo BикopисToBytoTЬ непoBнy фopмy' як t04 цe пoкaзaнo в пoпеpедrrьoмy пpиклaдi. Aлe ми poзглянемo вapiaнт aлгoбiльIц ефeктивний з тoчки зopy йoгo викo}Iaн}Iя pитмy, нaвiвIши йoгo сxeмy (мaл.2I) тa TeксT пpoгpaми мoвolо Пaскaль. I{eй алгopитм бaзyстьcЯ IIa Bикopистaннi вклa.цениx poзгalry]кeнь' тaк' як пpoдеМoнсTpoBaHo це у (z fG)= пpиклaдi1. pгogгamformula; vaг x' f: геal; l'' "т' 1 ,, L-, якщo х < *l0; якщo -I0 <="r.<= l0; якщoх>I0, egrn apгyмeнтa:'); wгitеln (' 3aдaйтезнaче}IIIя гeadln(x); if x<-10 thеn f:=x*x еlse if x<=10 thешf:=х еlsе f:=-x*x; rrгitеln ('Знaнeнняфyнкuii:',f:0:3); rеpеat until KеyPгеssеd еnd. Ilpuклаd 4. Пoпyляpнiсть дiалoгoвиx пpoгpaм' щo дoзвoляIотЬ всiм зpoбити вибip iз зaпpoпoнoBaнoгo кopистyBaЧy <<lvllнIo>, вiдoмa. Poзглянeмo зaдaчy, якa зa генеpaTopoМBипaдкoвиx чисeл визнaчar BигpaПIв лoтеpeТ тaкиМ чинoМ: 1 - вiдеoмaгнiтoфoн; 2 мyзиннийцeнтp;3 _ кoмп'ютep.,4- кoмп'ютepнrй клaс. oснoвoю дaнoгo irлгopитмyс пepeвipкaзнaчeнняцiлoi змiннoi, Hoмep вигpaпIy.Haвeдeмo нaпpикJlaд'ch, якe визнaчaс пopя.Цкoвий слoвеснийвигляд {t^JlгopитМy: о Якщo знaченI{я змiннoi сh дopiвнrое l' тo вигpaнo пepший зa нoмepoм пpиз i пepеxoдиI,ro п.5. У пpoтилeжнoмy Bипaдкy дo Пepexoдимo л.2. дo о Якщo знaченнязмiннoi сh дopiвнюе 2, тo витpaнoлpщий зa Iroмepoм пpиз i Пepexoдимoдo п.5. У пpoтилежнoмy Bипaдкy пepеxoдимo п.3. дo о Якщo зHaчення змiннoi сh дopiвнtoс3, тo виrpaнo тpeтiй зa нol,tеpoм пpиз i llepеxoдимo дo п.5. У пpoтилежнoмy випaдкy пepexoдиМo п.4. дo 105
  • 55. o Якщo знaЧeннязl,liннoi сh дopiвнюс 4, тo впrpaно ueтвеpтий зa нoмepoмпpиз i пrpexoдимo.цoП.). о Кiнець aJlгopитМy. мoжливlсть poзpoCxeмy aJlгopитмy цieТзaдaчi Baм l{aдaeться пpедстaвлeння aJlгopитмy y виглядi бити сaмoстiйнo. A-спооiб BaМ прoгpaми .цoпoldo)I(e y цЬoI,Iy pгogram prize; usеs CRT; var n: bytе; сh: сhar; begin ); writеln ('flpизи лoтepеi:' writеln (' 1. Biдеoмaгrriтoфoн'); центp'); writеln ('2. Myзи"rниЙ wгitеln (' 3. Кoмп'roтеp'); writеln ('4. Кoмп' ютepниiаклaс'); пoгoтpoнa'); ди writeln ('Haшснiть бyш.лсy шraвiцry зaгryсrqy repеat until KеyPressed; сh:=RеadKеy; randomizе; n:=гandom(3)+1; _ write ('Baцr вигpaluпiд нoмepoм', n,'. Цo '); if n=l then writeln (' Biдеoмaгнiтoфoн') else if n=2 thеn writeln ('Мyзи.rнийцeI{Tp') еlsе if n=3 then writеlп ('Кoмп'ютеp,) клaс'); еlsе writеln (,Кoмп'rотepний KeYPressed repeat until еnd. Пpoкoмeнryсмо деякi MoМе}lти ЛpoгpaМи. Пoслiдoвнiсть . фyнкuii гandomize; викликiв стaндapтниx гIрoцедуpи i випaдкoBиx зa n:=random(3)+lдoзвoляtoтЬ дolloмoгo}oгrlrеpaTopa n нaдaти бy.Ць-якoгo BипaдкoвoГo знaчeння B чисeл змiннiй iнтеpвaлi вiд 1 дo 4, Пiдключення мOдyЛя CR.T дoзBoля€ 3a дoпомогоtо *,*op,.,u', фyrrкцii KeyPrеssed Ta ReadKеy. викol{aння пpогpaми дo ЕaтискaннЯ Ми Mo)l(еМoзaтpИМaтl,| пеpuroi кo.ц *op".ry"u"*м бyль.якo.iклaвiшriнa клaвiaтypi.Aлe, оскiльки l0б цiеi клaвiшri 6уo" зuII.I|IIaTИcя,6yфеpi к.павiarypи i це стaне нa в зaвa.цi пoвтopнoгo викopистaнняцiеi ж фyнкuii в кiнцi пpoгpaМи,тo опeрauiя сh:*RеsdКey дoпoмo)кe <<BIIЧу!TaTу!>' Цей код iз бyфepa i спopoжнити йoгo. Пumання 0nя caмoкoнmponю i l У uoму noIlявaё вiёмiннiсmь вuКorlaннявкnarнuх ma nacлiёoвнo poэmaшoвaнuхpoзеaлужoнь ? 2 Яry poльвidiepawnь cкlladeнi лoёiчнiвupaluв pхёalweнuх aлeopumмах? 3 Чu MФкнa aлaopumw у npuклaili 3 зanuсаmu 3a 1onoмoеoю poзeaлptънь? Якoi фapмu вoнu 6уdуmь? nocлiОoвнuх 4 чu tlФкнa aлеapumм у npuклaОi 4 зanuсamu зa donoмoaoю nocnidoвнuхpфёaлужёнь? Якoi фopмu вoнu 6yОymь? 5 Haвedimь влacнutt npuклaО aлёopumMу 3 euкopucmaнняM nocлidoвнu poэeaлушGнь, х 6 Haвedimь влacнuЙnputoъI atlropumму 3 вuкapucmaннямrклаeнuх pagaallркeнь. 23. Пpaкmuuнapo6oma кПpaеpaмu 3 polеdltукeнHяMutf 3a нaвeдeним сцeнapiсм викoнaйте зaвдal{няпo стBopeнню тa нaлaгoд)кeнню poзгaJlРкеrrихaJlгopитмiв тa llpoгpaм. t) Buзначumu кiлькicmь i munu вхidнuх daнuх вidnoвidнo Оo умoвu заdачi. 2) Buзначumu кiлькiсmь i munu вuхidнllх dанuх вidnoвidнo do уn4oвuзаdачi, 3) Bttзначumu mun,алlopumму, noбуdуваmuJИаmeмаmuнну мodanь, 4) Buзначumu нeoбхidнicmь ввedeння npoмiэtснuх dанuх, ii кiлькicmь mа munu. 5) Poзpoflumu cлoвecнuйonuc алzapшnlJv|у noфdуваmu йazo веJ|Iу. mа 6) Buзначumu фopмu poлzаJlуctсенttя, неoбхidнo lаcmoсуваmu якi dля cmвapення алeopumJvIу вidnoвidнo do умaвu заdачi' 7') Buзначumu nocлidoвнicmь ввedенняnoчаmкoвuх mа вшвedeння peЗульmуючuх dанuх З вuкopucmання.ll вiОnoвidнuх кoлnенmа. piв i фopмаmування, 8) Buзначumu кopeкmнiсmь вuкopuсmанняпacлidaвнuх mа 9) в кл а d е нuх p o32аJ|уcE eн b, З апuc а mu фEopunl]4 J|4 вo to r|poepаJ|.|ув o а|Iня. " Завдання Nlя ДaнoТ пpaктиuноi po6oтaнaвeДe:нi y <3бipникy вIIрaв тa ЗaдaЧ з aлгopитlrliзaцii тa пpогpaмУBaн]fiя>y poздiлi <Проrpaми з poзг€tлy2l{eнняМи>) to'7
  • 56. |o)Hабpаmu mекcm npo1pаIу|u' вuкopuсmoву|oчu cepеdoвuще npozpал|ування mа вuкoнаmu нсulсlzooЙceння npoapал|u, вunpавuвIltucuнmаксuчнi noмuлкu. meсmiв. cuсmеJу'у nidеomувавI.Llu |I) Buкoнаtnu пpozpа.fu|у, |2) Peалiзуваmu iнtlti ваpiанmu вuкopucrnанln poзeаltуэreнь dlя iх заdачi mа npoа|uаJtiзувamu щodo cфop*tульoванoi. вI|кoнсutl|я dанuх. кiлькocrni вuкolrуваItuхdiй dляpiзнuх noчсImкoвuх Ltutслu 24. Bкaзlвкaпoвmopeння, )киTтяпpoгpaмiстaм! Уявiть сoбi Як xe )к циKпи пoлei"шryють нa xBиJIинкУ,Щo BaМ дoBелocя 6 лисaти пoBтopеIlняoдниx i тиx тpи caмиx фpaгмeнтiвпpoгpaМбaгaтo paзiв! У Пaскшli пеpeдбauенo piзнoвиди oпepaтopiв циклy. Bсi вoни piзнi зa свoiм зaписoм i зaстoсyBaIIням. 3ozаltьнuй вuzляd onеpamopaцuкJ|уз nеpеdулloвoto: while <лoziчнuйвupаз>do P, de лoеiчнuйвupаз набувасodнozo з dвoх lнсlче|tь onеpаmop. truе а6ofalsе, P _ npoсmuйчu cклаdенuЙ I{икл з пepeдylt(oBolo пpaцю€ зd тaким пpинципoм. A Мoжнa do onеpаmopаP буde вuкollуваrnucя mozo Пoвrnopeння в чаcу, noкu лoziчнuйвupа:t onеpаmopiцuклу true. Якщo miлькuHаякo]|tуcb на6уваmuмеЗtrс'чення кpoцi цuклулoziчнuйвupазнабуdeзнаненняfаlsе, цuкл npunuнumьcвoюpoбomу. тaкoх( зpoбити BисtloBoк' щo цикJI з пеprдyrutoBoю мoжe )кoднoгo pшy нe Bикoнaтися y вI{пaдкy' кoли лoгiчний виpaз зpaзy ж нaбyвaсзнaченняfalsе. oднe сyггсве зayвa}кення:oскiльки викoнрaнi дii знaxoдяться зa всiмa слyжбoвими слoBaМи oпrpaтopa цикJIy з тo зaбрaти пpo пepедyltroBoю, нr Мo)i(Ha кoли тiлo oпеpaтоpнi д}Лски у wШaДI<у, циклy скJIaдa€TЬсяз декiлькox тaкиx дiй. oпеpaтop .цy)кепpoсTий i зpoзyl'lioпepaTopaпoBТoлiй. Cхейa aJlГopитIt{y pеrrllяз пepедyllroBoю сaмo не BикJIиче тaк iн нiякиx непopoзyпl ь (мыl.22). 108 Haведeмo пpикJIaд пpoгpaми' щo пеpедбaнae зaxист вul ввeдeIIIlя недOпyсTимиx дaниx кopисЦ/вaчeМ: program my_defenсe; var x,y,z:real; bеgin .rислa:'); writе ('3адaЙтe дoдaтIrиx тpп readln (x,У,z)i whilё (x<=0)or (y<=Q; (z<=0)do oг bеgin wгitе (.Зaдaйтeтpи дoдaтI{иx uислa:'); геаdln (x,У,z)i end; { пpoдoвжeнняпpoгpaми} oдин rreдoлiкс y цiеi пpoгpaми: IIaМдoвeлoся двiчi пoвтopити гpyпy oIIIIтл!,BaHНя зIIaЧень змiнниx (writе ... readln). Cпpoбyсмo o61Йтн щo нeзpуlнiсть. i 3аzаllьнuй вaanяd oпepаn'oPа цaKIIу 3 nianяулсoвoto: rеpeаl P шntil <лoziчнuй вupаз>, de значeння вciх napал,tеmpiв maкi cалцi, як i в nonеpedньoлtу onucсuto]уIу onеpаmopi. I{икл з пiсля5мoвoroпpaщoe зa Taким пpинцl{пoм. ПoвmopeнняonepаmopаP вidбуваemьcя mo?o чаq4 do noкu лoziчнuй вupаз ompuJv|у€Зt|aueнняfаIsе.Якщo miлькu на nевtto]||у кpoцi цuклулoziчнuй вupазнабуde 3начeнняtruе, цuклпpunuнumb свoюpoбomу. Biдчyлra piзниця мiж oпepaтopaми whilе...do тa repеat...until? Пepruий спoнaткy пepевipяe знaчеIIня лoгiчногo Bиpzвy' a пoтiм виpiшryс, Bикoнyвaти йoмy oпepaтop, яи нi, a ДpУГvli.rнaBПaки спoчaТкy Bикoнy€ вкaзaний oпeрaTop' a пoтiм пеpeвipяс, ни тpeбa йoгo BикoIryBaTи ще paз. Oсь як цlo piзницlo нaoчнo демoнстpyе сxеМa aлгopиTМy' нaBеде}Ia нa мaл.2З. 3poзрliлo, цIo цик.JI з пiсляy бyль-якoмy }ъ{oBoIо викoнyBaтиМетЬся BипaДкy хoчa б oдин paз' нaвiть якщo лoгiчниЙ виpaз зp:By )I(нaбрас знaчення tгuе. t09
  • 57. A тeпep нaДaЙтe нaлe)к}Iе нaйeлегaнтнilшoмy ЗaxИcгупpогpal{и вiд ввeденнянедoпyстIlмlllх ДaнИ,< дoпoмoгolo oпepaтopaциклy 3 зa пicляyмoвolo: pгogгam my_defenсe; var x,y,z:rеаl; bеgin . гepеat writеln ('3aдaйтeтPи дoдaтнi.числa:'); rеad (x,y,z); until (ь0) and (р0) and (>0); пpoгpaми { пpoдoвжeння } 3гaдaйте oдиIl з вapiaнтiв 3атpl{}rки BикoI{aпня пpoгpalr'l{' щo бyв нaведeний пoпepеднix в poзлiлax rrpeat until KеуPrеssеd . Teпepйoгoмoжнaзpoзyмiти дoдaткoвиx бrз пoяснеtlь' Aби ви Hе пoдylriши, щo 3a дoп0l,loгoк}циклiB мo)кнa зflпиQyBaтилицIe пOвтopeння<<стpaтeгiннoгo)) xapaктepyi викopистoB1вaти ii ДIl'Я зpщнoстi poбoти з пpoгpail{oю, нaвeдrмo пpиклaд викopистaнI{яцикJIy дlrя oбчисле}l}Iя сyми Чисeл' знaчен}IяЯкиx BBoдятЬсякopистyвaчем. Кiлькiсть Чисeл' щo сyП{yсTЬся, нaпepед невiдoмa. .[oмoвимoсЯ Л|lule пpo пapoль, якl,|{lбy.Цe oзнaнaти зaвrpшeн}Iя вBrдrI{I{я дa}Iиx.Hехaй Цr бyдg Числo <<0>>. pгogram suma; vaг a, sum:rеal: begin SUm:=0i wгitе ('&дайlе шшlo (oвншa ивrpЦIеI{tIя введенrи-.il'шIo 0)'); rcadln (a); whilе(aо0)do begfui sum::зsum+a; * чиспo wгitе ('}rийгеиФo (oшакa pшeшr,I зaв€ BвqДеtrtrя 0)'); rеadln(a); end; writeln ('Cyмa зaдaниxчисeл:', s um: 10:5 ) end. П0 ПpoaнaлiзyеIvlo цю пpoгpaМy. Пo.пеpurе, ми oбiйшлися Bсьoгo змiнними, xoчa.цaниx пiд чaс Bикoнaння пpoгpaМи мoжe бщи дBoI,Ia вBедeнo бaгaтo. I{eй пiлxiл llш}иBarться пoкpoкoвиit,t Bведeнням пoЧaткoBиx ДaнИx, Пo-лpще, пepш нiж пoчинaти Bикolo1вaти цикJI' i лиlшl пoтiм нa кoжнolvry змiннiй sum бyлo пpисBoснe знaчr}Iня <<Q>>, нoве, BBeдене з кpoui uиклy дo.цaBа'JIoся ii пoпеpедIlьoгo зIIaЧe}Iня дo клaвiaтypи. Це дyже сxoжe }Ia скPиI{ькy, з якoT ми спoчaткy Bсe BикиI{yли' пеprш нiж пOЧиIIaти ",ryдищoсЬ скJIaдaти. Bесь цeй пpoцес [IaзиBa€TЬся <нaкoIIиЧrнlIям сy},Iи)>. Bикoнaйтe сaмoстiйнo тaкr зaвдaння: скopистaBшиcь тим' щo не дoдaBaIIня дo сyN{и числa <<0>> змiнить ii знaчення, пepeпиu.liть пpoгpaМy зa дoпoмoгoю oпepaтopa циKJIy з пiсляyпloвoю. ocТa}I}lю 1аzаltьнuЙвuzlяd onеpаtt'opaцшсltуз лivшпьншкoм: X,aщdaP, X*"to (downto) цuк]Iу>:= for <пiutlltьнuк tnunу' - nliннсt Зчv]cп|енozo dелiчuльнuк цutсlry nt|ачeннялiншlьнuta Xnoч - noчаmкoве цшatу, значенttя лiчuльl1uксl Xкiнц - кiнцeве цutaу' P _npocmuйчuuandенuйonеpа|nop' Cлyхбoвe слoвo to oзнaЧaс, щo змiнa знaчeнIIялiчильникa циклy йдe вiд Xno" дo XкiнцB пopядкy збiльшeння, a downto - в пopядкy змеlIПIeння. лlчильL{икл пpипиIIиTьсBor викoнaння тoдl' кoли знaчeн}Iя ... вiлpiзкyХno* Х*i*ц. виЙДe мeжi Bк:хlaнoгo зa никa цикJIy Звеpнiть yBary нa те, щo нaм невiдoмийкpoк, з якиМ вiлбрaстьcя змiнa знaЧеннялiчильникa Циклy' A Це тoмy, щo y циклi for...to (downto)...do нa кo)кt{oмy llaстyrlнoмy кpoui в якoстi знaчення лiчильникa циклy беpeться нaстyп}Iе (aбo пoпepеднс) B знaЧен}Iя. цьoмy i змiст тoгo, щo лiчильник циклy пoвинeн бщи зЧиcлеI{oгoтипy, тoбтo знaчrнI{я якoгo мoжIIa пrpечислити. .(o тaкиx типiв вiднoсяться integеr, bytе, word, shoгtint, longint, сhaг, boolean. BизНauИти,.Iи вiднoситьcя вкaзaний Tип дo зЧисЛrнoгo мo}кнa зa Taким пpинциIIoм: якщo, знaю.rи бyДь.якe зIIaЧeння нaзBaTи пoпrpеДнe aбo нaстyпне .Цля змiннoi цЬoгo TиIIу' Мo}I(нa Caме тoмy змiннi типiв Тo ньoгo знaЧенtlя, цей тип с зЧисЛе}lиМ. real тa string не МoxtyTЬBикopистoByвaтисЬв якoстi лiчильникiв циклyfoг...to (downto)...do. Якщo BBaI(aти кiлькiсть чисlл, Iцo сyI{yються, нaпepед Biдoзa Мolo,To iх сyvla BизнaчaTиN,teтьсядoпoМoгoютaкoгo циклy: Пl
  • 58. sum:=0; wгitе ('Зaдaйтeкiлькiсть чисeл'); rcadln (n); foг i=l to n do b€gin wгite ('3aдaйгe.п,lслo'); rеadln (a); sum:=sum+a: end: wгltеln ('Cyмa зaдaнихчисeл:', sum:10:5); Cхемa aлгopитмy oпepaтopa циклy з лiчильникoм зa пpиIlци. пoм свoгo викoнaння не вiдpiзняетьсявiд тaкoТж сxeми aлгopитмy дJIя oпepaтopa циI0Iy з пеpе.цylt{oвoю. Toмy HaBoдити ii ще paз нe мaе нiякoгo сeнсy. Il umaння ё|ляcaмoкoн mpoл to: 1 1aпuшimьзaeaльнuЙвuzляOoпepaimopa цuKлy3 nepeОумoвoю. 2 HaвedimьвлacнuЙnpuклadцuклiннoeo aлeopum'rу3 пepedумoвoю' 3 ЯкuЙ зaeaльнuЙвuenяd oлepamopцuклуЗ пicляумoвoю? ^rae 4 HaвedimьвлacнuЙпpuшad цutuтiхнoeo aл?opumwу пicляумoвoю. 3 5 3aпuшimь зaeaльнuЙ вuеляd onepamopa цuKлy з лiчuiьнuкoм ma пoяcнimьnpuaHaчeHня Йozo eлeмeнmiв' 6 HaвedimьвлacнuЙпpuклadцuклiaнoеo aлeopumMу лiчuльнuкoм. З 7 Якa хapaкmepнaocoблuвicmьуcix mpьox oпepamopiвцuклу? 8 Чuм piзняmьcя cxeмu aлeopumмiвonepamopiвцuклу з nepeОyмoвoю ma nicляумoвoю? Якщo пpoгpaМa I{е зaвepПryrpoбory' BиBoдить oднi й тi сaмt тиIIy whilе...do aбo oзнaчaти'щo B oпepaтopiD( знaчeння'тo це I.loжe гepеat...until нe пepедбaяилизмiнy лiчильникa циKIIy. Якщo зaбули orШIcuTv: лiчильник циклy в poзлiлi змiнниx, тo вiн бyлe нeвiдoмий щoгpaмi i oдеprrсrге пoвiдoмленнящo пoмилIсy: Епor 3: Unknown idеntifiеr. Buкopuctпання в цикjlax нeпapнoi кiлькoстi oпepaтoplrиx Дylкoк IIpизвoдиTЬ oднiеi з дBox пoмилoк: дo Еrror 85: <<;>> expeсted aбo Епor 113:Еrror in statеment . Якщo тiлo циклy тигry for...to(downto)...do aбo while...do не BЗятo B oпеpaтopнi дy)кки, тo Bи Цe вiдvyстe Зa oдrp)кaниМи pфyльTaтaми, тoбгo B4/IVIJIиBo пцrбpaнi тeстoвiпочaткoвiдаrriHeда-цyтЬ oviкyвarпо< peзyrътaтЬ. Якщo в циклi foг...to(dowto)...do лiчильникциIоIytIее 3числetIим типoм' тo бyле видaнe пoвiдoмлeнняпpo IIoМилкy: Епor 29: ordinal typе еxресted. aлеopumrtliв з вuкopucmaнняtJl llpocmux Iloвmopeнь Ilputсltаd .l. B мaтeмaтицi iснye дoнятTя фaктopiaлy' знaчeння якoгo визIlaЧarтьсязa тaкoю фоpмyлoю ...*n. n! = l*2t3*.4*5't pезyльTaтyнeoбxiднo визнaчиTидoбyгoк Toбтo дlIя oTpимaнIrя всix нaтypaльниx чисeл вiд | дo n. Aлгopитм цiеi зaдaчi r типoBиIvI сyми. .rлгopитМoм IIaкoIIичeI{rrя Пpиклaд схoжoгo aлгopитмy' aле нaкoпиЧe}IIIя cуM|4' нaведeний У пoпеpeдньoмy poзлiлi. Tpeбa лиIIIе ЗaуЕ,aхсИTt|' щo пepед пoчaTкoм l{aкoпичrIIня peЗyльTaTyзмiннiй, Якa olpимyBaTиме зIIaчeIIItя дoбyrкy, неoбxiднo нaдaти знaчeнI{я Caме Taкe пoчaткoвe 1. знaчeIIня IIe змiнить rraстyпIloгo peзyлЬтaтy. Cxeмa :rлгopитItdy l{aBедeнa нaмaл.24. progгam faсtorial; vaг i,n,f: longint; bеgin f:-1; write ('Зaдaйтeзнaчення vислa n:'); rеadln (n); foг i:=1to n do f:=f*i; wгitе('Знauення яиcлa,); фaктopiaлу writе (n:5,'.цopiвнroс:',t 10) еnd. II{е paз зa).Ba}I(иМo, нaк6пиченщо Мaтl.24 ня дoбyгкy вiлpiзнясться вiд нaкoпи- rt2 llз I{E IIPИIIУCIшЙ TE CЯ IIDMI,IЛDК ! 25. Cклadaння
  • 59. чrн}Iя cУМ'L Tуl|vщo пoчaткoвr знaЧе}Iня oбoв'язкoвo пoвиннo бщи piвним <<l>>! Ilpuшad 2. Якщo Ми, нa пepший пoгляд, лишIe нeзIIaЧниМ ЧIl}loм змiнимo }raIIIyпрOгрaпry, ввiвurи BивeдeнIIя peзynьтaтy y тiлo зoвсiм iнrший eфeкт. Pезyльтaтoм Тi викoнaння циI{лy, тo oтpиIvlaсIvlo бy.Цe виведеtII{я знaчeнь фaктopiaJlу нa кo)кIloMy кpoцi. Talфl пpиIrщfrI нaзу{мЕTЬс'Я пoкpoкoвим Bиведеt{I{яIt,l peзyльтaтiв. for i:-1 to n do bеgin f:=f*i; wгiteln ('3нaчrrтня n:S,.дopЬнюе:',f: 10) фaкropiaлy.пrслa', еnd; Ilpuшlаd 3' Д'ття тoгo, щoб BиBести нa rкpaн мoнiтopa всi лiтepи лaтинськoi a6еткп,вве.цiть тaкy пpoгpaмy: progгam alphabet; var i : сhaг: begin foг i:=,a' to,z, do write (i, ' '); rеadln; еnd' Як poзiбpaтися' кoJtи який oпepaтop циклy Bикopистoвувaтu? Caмe в цЬoмy i пoлягaс мaйстepнiсть пpoгpaмicтa _ oцiнити пoстal{oвкyзадaчi, скJIaсTиЕrлгopитМ' yсi ЗNlYEtlТт4 свoi aнaлiтичнi здiбнoстi i oстaтoчнo ьuбpaтvl ,нaйoптимальнiпrий вapiaнт циклiчнoгo oпepaтopa. Якщo наnepеd вidoма кiлькicmь noвmopень miла цuшу, mo peкoменdуornься вuкopuсmаmu / цuклз лiчuльнuкoм. Якщo кiлькicmь noвmopeнь Зule)!сumь вid вuкoнання deякoi. уn4oвui nocmанoвказаdачi nepеdбанаеo6oв,я3кoвевuкoнсll!ня цuКлу хoча б oduн pаз, mo в цьoму вuпаdку пidiйёe лuшe цuш З niсляумoвoю. Якщo эtc наnеped невidoма кiлькicmь noвmopеI"lb цuюlу, i, за уJ,|oвoю заdачi, Jу'oЭ|сJIuве HевuкorrаHHя цuклу эtсod|ro1o pаЗу, mo npozttoЗ еduнuй _ nidхodumь лuшe цuKл з nеpedумoвoю! У цuклах з nepеd/niсltяулloвoю сmвopенi уt,toвu noвuннi tиicmumu хoча 6 odну змiнну велuчut.tу' ЗначeннЯ якoi.злцiнюemьcя в miлi цbozo цuкJlу' Iнакulе вu rИасmе наzodу cmвopumu <вiчнuй dвuzун,,. t14 Ilpuклаd 4. TIoлeкулн пpI4 склaдaннi циклiЧниx aлгopитмiв Зpуrнo BикopистoвУBa.ru Poзглянeмo два тa|<звaнi <<пеpемикaчi'>. тиIIoвиx(пeремI{кaчЬi пpиклaлиiх викopистaння' Пoдивимoсь, як 6уДe змiнювaтись знaче}IнЯ змiннoТ & пiд час BикoнaI{няв цйклi тaкoгo oпrpaтopak-k. 3poзрriлo, щo нa кo)lс{oтv{y нacтyгltloЬ,fy пo мoryJIюзIIaчrI{Ця tсpoцi змiннoi & змiнювaтись не бyде, а лиIшeбyлe змiнювaтI{сьнa прoтилe'(ний знaк цiеТвеличини. Нaпpиклaд, пpt,t lloЧaткoвoмy знaченнi k=l бyДе oтpимyвaтись пoслiдoвнiсть .1, 1,.1, 1, ... Пpи пo.laткoвo}ryзнaчеrrнi k=_1 ця пoслiдoвнiсть бyдe мaти B t | гл я д | , -|,|,-l,... 3aстoсрaння тaкoгo <<пrpемикaЧa'> мoж}Ia пpoдr}roнстpyвaти нa шpиклaдi. Hеxaй пpи зaлaнiй кiлькoстi дoдaнкiв n нeoбxiднo знailтu cуtу |*2+34+5-6+,.. Cкopиотaвruись Bищffiaзнaчel{oю iдеею прeдстaBимoIIIyкaнycУМУу виглядi (+l )*l+(-l )*2+(+l)*3+(_l l )*5+(_l )*4+(+ )*б+.' ' Tепep, здaсться' B)кe зPoзylиiлo, якиЙ Bигляд бyДе мaти пpoгpaмa oбvисJIeнI{я знaЧе}Iня шщaнoi сyми. prоgram suml; vor i, s, n, k: integer; gin S:=0; k=l; .rислa ('3aдaйте n:'); wr-|te знaчrння rеsdln (n); for i:=l to n do bеgin I s:=s+k*,i; I k'=-1' 'еnd: сyшlи wrlieln ('3нa.rення лopiвнюе:',s: l0) bnd. Ilpuклаd 5, Bикoнaння ollеpaтopa k:=l.k пpизвoдить дo oTpимаtlня (<IlеpеМикaчa>> 0' l,0, 1,.. . пpи пoчaткoBolvtyзнaченнi T|IIIу k=l iти п y l,0 , l,0 ,...пp и пoЧaТк oвoМy нaненнi k = 0 ' .{е )к Мoжнa з зaстoсyBaTи тaкиit <пеpеМикaЧ>? B якoстi пpI{кJIaдy пеpефpaзyсмo зa.цaЧy з пoIIеpед}Iьoгo пyl{ктy тaкирl Чинoм: неxaй пpи зaдaнiЙ кiлькoстi дoдaнкiв л неoбxiднo знaiпц cуму I+З+5+1... ll5
  • 60. Пергпппeмo шIyI(aI{y y бi.гъшl сyl{y зpyпrorvry вшлядi *3+0*4+l *5+0*6+l *7+... I *l+0*2+l Пpoгpaмa, щo бyле oбpaxoврaти цю сylvly,мaтимe Bигляд. progгam sum2; vaг i, s, n, k: intеgег; bеgin 5;-01 k=l; wгite ('3aдaйте знaчення vислa n:'); гeadln (n); for i:-l to n do bеgin I s:=s+k*i; I k:=l-k; Iеnd; writеln ('Знavеннясyми дopiвнюе:',s: 10) еnd. IIpuкltаD 6. B пoпеpеднiх poздiлax Ми poзглядiшIи aJIгopиTми poбoти з цiлoчислoвoro ap"фмeтикoю, тoбтo зa дo.,o'o.oю apифметиvнихoпеpaцiй div тa mоd видiляли oкpемi Цифpи Ч|IсЛa. Aлe в Tих пpllкJlaдax нaМ бyлa вiдoмa poзpяднiс'" *""",, щo ЗaДaBaлfircЯ. як бyги y Bипaдкy, *o,, poip"лнiсть нeвiдoмa? A Birщiляти цифpи вiд числa Мo)кнa пo oднiй, nЪ","utoч' , uoфpo нaймoлoдlшoгo poзpядy. 3а.пишaетьсятiльки BkIЯcнtITИ'.кoли цeй пpoцeс тpeбa пpипинити,тoбтo нeoбxiднo BуrЗHaЧуrTуI' € щo oзнaкoЮ зaBеpIше}l}Iя цикЛy. Зpoзyмiлo, щo вi.цкидaloчипo oднiй цифpi, ми дo сиryaцii' пoтoчне знaчrння ЧИcIIaПepeTвopиться 0. нa *йд"'o Пеpейдемo дo пpoгpaми, в якifl МИ B|4BoД|4Т.,o u,$pи зaдal{oгo ЧисЛaпo oднiй. ".i pгogгam numbеr; vaг i, n: integеr; bеgin wгitеln('Зaдaйтe знaченнячислan:'); геad (n); if n=0 then writeln(O) еlse while n>0do bеgin t16 writеln (n mod 10); n:=ndiv 10: еnd: гepеat until KеyPressеd еnd. oскiльки B цiй пpoгpaмi зaстoсoвaний циIUI з пepедyluroвою, нaМ }Iaпrpед невiдoмa poзpяднiсть числa. I ще oднa oсoбливiсть дaнoгo aлгopитМy: в llpoцесi йoгo poбoти Ми BTpaчaемoпoчaTкoBe зaдaнoгoчислa. Toмy, якщo нaМ нroбxiднo йoгo збepeгти, знaчeн}Iя щeбa пepeд пoЧaткoМ цикJly пepeпpисBoiти пoчaткoBе зI{aЧeIIня iншiй змiннiй. II{е oдне Mo)клиBекopекTyBaHняB нaBeдеIIiйпpoгpaмi: якщo сylnly цифp ЧptcЛa i йoгo неoбxiднo, нaпpикJlaд, B|4зLIaЧИT|4 poзpяднiсть,To дЛя цьoгo слiд виДiлитивiдпoвiднi змiннi: S:=0; сount:=0; whilе n>0 do bеgin mod l0); s:=s+(n сount:=сount+1; n:=ndiv l0: еnd; A якщo щебa визнauитицифpy нaйстapшoгopoзpяДyзaдaнoгO zulгopитМ: Taк скopекТyBaTи чисЛa'To дoведетЬся while n>0do bеgin I a:=nmod 10: I n:=ndiv 10; ,еnd; _, poзpядyЧИсЛa ,a); writеln ('Цифpa нaйстapшoгo П umaння dля caмoloнmpoлlo : 1 Якoeo ПoчamKoвoеo lнaчeHHЯ noвuHHa мamu змiннa, в якiЙ нaОaлi зdiЙcнюomься HaкoпuЧeннЯ сумu ? Якoеo пoчamКoвoeo lнaчeння noвuннa мamu змiннa, в якiЙ нaОaлi HHЯdoбymку ? зdiЙснюсmьcя Haкoпuчe Якoеo знaчeHня ПoKpoKoвo бyde нa6увamu змiннa k в peзyльmami в вuКoHaHHя цuклi oпepamopa k:=1+? Якoеo знaчeHня ПoKpoKoвo буde нaбувamu змiннa k в peзульmami вuкoнal]HЯв цuклi oпepamopa k:=-k? ttl
  • 61. 5 Як зa donoмoеoю аpuфмemuннuxonepaцiЙ цiлoчuсnoвoеodltюння вuэнaчum.! цuфpu чlJcлa'poзpяОнicmь всi якoeo нgвiilaмa? 3aпuщlmь пporpaмu. фpaeмeнm 6 Як вuзнaчumu poapяОнicmь зa0aнoаo цiлoеo чucлa? 1aпuutimь пpoeparru. фpaемeнm 26. Cшadaння aлeopumlniв 3 вuпapucmaHняtl в'Иadeнtlл noвmapeнь Пpuклal ^l.Cклaдемo aлгopитMзaдaчi, щo tvta€ сyтo мaтeмaти- 2 o ti+i чtly yllroBy: o6чllcлlцтu3нaчеIll{я виpaзy Е Е ;{ i= l i=l ' J I.{eй виpaз читa€тЬся тaкиI4 чиlloм: для всix знaчeнь i, щo мiняються вiд 1 дo 20, o6,lucлrtтисypryдoдaнкiв, якi в свoю чepгy € сylt{oloвоix знaченьдрoбiв, в якиx j мiнясться вiд l дo 30. To6тo для кoж}IoгoзнaЧенHя тpe6a мiняти всi знaчeння7 в зaдaпомyiнтеpвaл i i i oтpиманi лpoби tIPи цих знaчeнняxi тa"/склaдaти.Poзписaвши цeй тaкy сylt{y: 3aписoкpемo зa дpoбaми' мaтиlr,Ieмo l+l |+2 l+з l+30 2+| 2+2 20+30 2+30 *...*-+-_.-+...+**-l*l l*3 l *2 1*30 2*l 2*2 2*30 20'r30 I{я, нe зoвсiм зp}пrнa пepurийпoгляд срla дpoбiв' пpeдстaвнa y I,ЯсTЬcЯ виглядi дyжe aкypaтIroгoaJlгoритмy' 3aписaнoгoy виглядi нa o9o, цифpa пepeд нею збiльruИтЬcЯ' oди}Iицю' a сaмa вoнa Taк вiд <.0,' <<9>). сaмo 6yдyть мiнятисяi дo пoчнe мiнятиcя знoвy всi остaннi цифри спiдoмeтpa. спpaвy зi змiнoю зpaзy лeкiлЬкoх знaЧенЬв Oтxe, ми мaсI,lo Пpиuoмy змiнa знaчel{ьЕa oдиtlицю стapilIих мe)кax вiд <<0'> <9)>. дo МoJloдula цифp зaлeжитьвiд тoгo' чи пpo6iглa вeсь дiaпaзoн зI{aчень який бyлe iмiтyвaти poбory ц'Фpu. BиявлястьсЯ, Щo €шIгopитм' спiдoмeтpa, виглядa€ дoсить пpoстo, якщo зaписaти йoгo y виглялi пpoГpaIии: рrogram spidometer; uses сrt; var i,j, k: intеgеr; begin GoToХY (45'10); writе ('Cпiдoмvгp:') for i:-0 to 9 do begin GoToХY (45'1^2); writе (i); for j:-0 to 9 do bеgin пpoгpaМи: progrsmsuma; vaг ij: intеgеr; sum: rеal; begin sum:=0; GoToХY (48,|2); writе () foг k:=0to 9 do for i:=l to20 do for j:=l to 30 do sum:=sum+(i+j)/(i*j) ; writeln (' Cрla:',sum:0:3); геpeвt untll KеyPгеssеd end. Як бaчимo, мarмo пpикJIaд aлгopитIvty,в якoмy нaвiть нe тpе6a BBoдити пoчaткoвi дaнi. Пpuклad 2. Haпeвнo, вам вiдoмlаЙ тaкпit пpистpiй. як спiдомeтp, i Bи naNl'яTaстe,як вiн пpaцюс. Частiше за всi iнrui мiнясться йoгo oстaння цифpa. Кoли вoнa дoбiжить з}taчeння I l8 ,b"Bin (5|'I2).' I GoToХY (k) I wrtte end; еndl еnd; repеatuntil KeyPrеssеd end. (<MaтpЬolllки>>: Bклaдснi цикЛи opгaнiзyються зa пpинципol4 caмиil внyгpiшнiй цикл, пiсля сIloчaткy пoвнiстro вiдпpauьoвyе нa цЬoгo знaчe}Iня лiчильникa зoвнilшньoгo циклy мiнясться нaстyпl{е'a внyгpiruнiй циЮIпoчиI{a€ свoю po6ory спoчaткy. tt9
  • 62. П u ma н ня dл я caмoкo н mpoл'<,: 1 Пoяcнimь po6omу вклadeнuх цuклiв. 2 3a якuм npuHцurlov opеaнiзoвyюmьcя вклadeнi цuклu? 3 Чu мo>кнa dвa .вклadeнuх цuклu зaмiнumu dвoмa пocлidoвнuмu цuклaмu? lJ]o пpu цьo|dyзMiнumьcя? 4 Чu мoжнa в пpuклaОi 1 пoмiняmu мicцямu зoвнiшнiЙ ma вклadeнuЙ цuклu? lJ]o пpu цьoму змiнumься? 5 Чu мoxe буmu, нa вaш пoеляd,6iльщe, нilк dвa вклadeнuх цuклu? 27. Пpaкmuчнa poбoma KпPoеpaIЙu 3 пoвmopeнняIЙu,,Зa нaве.ценим сценapiем викoнaйте зaBдaння пo стBopeHI{ю тa нzUIaГoдже[IHюaJlгopиТМiв тa пpoгpaм з пoBтopеHIlяМи. 1) Buзначumu кiлькicmь i munu вхidнuх dанuх вidnoвidнo. do у]vloвu заdачi. 2) Buзначumu кiлькiсmь i munu вuхidнaх dанuх вidnoвidнo do уJ|4oвuзаdачi. 3 ) Buзначumu mun сulеopu||lЛ|у абo йozo фpаzмeнmiв, noбуdуваmu ]v|аmеJ.4аmuuну deль. мo 4) Buзначumu неoбхidнicmь ввеdення npoмiэюнuх dанuх, ii кiлькicmь mа munu. 5) Poзpoбumu cлoвеснuй onuc алlopu||IJИу noбуdуваmu йozo mа cхе.fu|у, 6) Buзначumu mun вказiвoк noвmopен|tя, неoбхidнuх dля сmвopеIсня алzopumму вidnoвidнo do умoвu зadачL 7) Buзначumunoслidoвнicmьввedeнняnoчаmкoвuхmа вuвedeння p еЗульmуючuхdанuх З вuкopuсmанняJуI id noвiё нuх кo].4 в eнmаpiв i фopлlаmува,ння. 8) Buзначumu кopекmнicmь вuкopuсmання nocлidoвнtlх mсt вклаdенuх вказiвoк noвmopeння,наявнicmьpoЗZаJxуJtcень' 9) Заnucаmu алzopumл4л|oвoю npozpа]v|уваrtня. Io) Hабpаmu mексm npozpа.|уtu,вuкopuсmoвуloчu cеpеdoвuщe npozpаЛ|ування mсl вuкo|]аmu налаzodэreння npozpаJv|u, вunpавuвшuсuнmаксuч i noлцuлкu. н I I) B uкoнаmu npozpалtу, ni dzomувавvt.lu uс mе]у'у ес miв. c m , зaвдaння для дaнoi пpaктиннoi poбoти цaведенi y <Збipникy впpaв тa зaдaч З aлгopитмiзaцiТ тa пpoгpaМyBaнЕя) y poздiлi <Пpoгpaми з |2) Pеutiзуваmu iнuli ваpiанmu вuкopuсmання noвmopeнь dля ii заdачi |n0 npoаItсl]Iiзуваmu щodo вuкoнаt|ня cфop*rульoванoi. dля piзнuх ||oчаmкoвuхdанtlх. кiлькocmi вuкoнуванtlх diй amecmaцiя <Bкaзiвкu lloвmopeння pogeaлукeнHя', викoнaння темaтич}IoТ aтeстaцii неoбxiднo: .Цля 28. Teмamuч,la 3нan'u . oзнaче}Iня лoгiчниx виpaзiв; . oзнaченняIlpoотиxтa скJIaдениx лoгiчниx виpaзiв; о тaблицi iотиннoстi .цляoбчисленtlя. знaчrнь лoгiнниx виpaзiв; . сyгЬ вкaзiвки poзгaлy)кrння; о зaгальний Bигляд пoвнoi тa скopoчeнoТ фopми вкaзiвки poзгaJIy,кен}Iя; o вiдмiннiсть пoслiдoвних тa BкJIaдених poзгaJly)кеtlь; . сyгь вкaзiвки пoBтopeнIIя; . BИДvr oпеpaтopiв циIUIy, pеаЛiзoBaниx в мoвi пpoгpaмyвaнI{я; о зaгaльний BиГЛяд oпеpaтopa циклy з пеpедyilroвotо, пiсля)Д,roBolо'з лiнильникoм; о oсoбливoстi зaстoсрaння piзниx типiв oпеpaтopiв циклy; о oсoбливoстi викopистaн}Iя пpocTих тa BкJIaдениx циклiв; . вi.цмiннiсть мirк пoслiдoвними Ta BкJIaдениМицикJIaМи; влtitпu . нaBoдиTи пpикJIaди лoгiчниx виpaзiв Ta oбчислIoвaти ix знaчeння: o зaписyBaти зaгaльниiц Bигля.ц пoвнoТ Ta скopoчrнoi фopми вкaзiвки poзгilлyження мoвoю пPoцpaМyвaння; . зaстoсoвyвaTи пoBнy тa скopoченy фopМy вкaзiвки poзг:rлy)l(ення; . . o . poз кopе кТнo зaсТoсoвyвaтипoслiдoвнi тa вк.гlaденi гaл y)кенHя; poзB'язyвaти зaдaчi нa скJIa,цaння poзгirЛr}I(eниx алгopитмiв; кopектнo ЗaсТoсoByBaтиpiзнi TиПи oПеpaTоpiв циклy; кopекТtlo зaстoсoByBaти пoслiдoвнi тa вклaденi циклiчнi кoнстpyкuii; . 6УДУвaтуl сxеМи aлгopитмiв З BикopисTaнняМ poзГaJly)ке}rьтa ПoBTODенЬ: IIoвтopеllIlями)> t20 ma 21
  • 63. . poзB'язyBaTvI зaДaЧi нa склaдaння циклiчниx :}JIгopитMlB; . aнaлiзyBaти .rлгopитMи Ta ix peaлiЗaцiю y виглядi пpогpaми з BикopистaнняМ poзгaЛy)кень Тa пoBTopеIlь. . TaбличHi вeличини npoepairувaння I|]|oвoю 29. oпuc madлuчнuxвeлuЧu,] .{oсi ми нaвiть пpи oб.пасленнi дежoТ пoслiдoвнocгi знaчень oбxoдиlпlся декi.тькoмa змirппл'rи. Aле це не зaB)кди мoжe BpяТyBaTи. Пoстaвимo пepeд сoбoro Taке зaBдaння: неxaй ми пpaцIoсМo нa мeтеoстaнцii i в нalпi фyнкцii Bхoдить пiдpaxyнoк щoгoдиtlнoгo вiдxилeння вiд сеpeдньoдoбoвoТ темпepaтypvl. Яcнa piv, спovaткy неoбxiднo щoгoди}Iи зaписyвaти зIIaЧення TrMIIеpaTypи' пoтiм знaЙтуl сepеднс apифметиvне циx знaЧень' i тiльки пiсля цьoгo Мo)кнa oбчислити вiдхилeння кoжIloгo Зaписaнoгo знaчення вiд сеpедI{ьoapифмети'rнoгo. Ми дiйurли виснoBкy, щo дoBедеться МaTи спpaBy з 24-мa змiнними веJlиЧинaми' B знaченtlяx якиx неМaс нiякoТ зaкoнoмipнoстi. Якими iдентифiкатopaМи ix пoзнaчити' якиМ чинoМ срлyвaти ix знaчення? BикopистoвУBaTИ ДJlя цьoгo нaбщиЙ нaми скpoмний дoсвiд }rедoprЧнo. Пpoпoнyсться тaкий виxiд з IIoJIoх(e}Iня: B мaтeмaтиЦi елeМенTи пoслiдoвнoстi пoзнaчalоть тaкиM tlинoМ: & |,И , ' .' , & n . Cкopиотaeмoся сxoжиМ пoзнaЧенtlям i ми ... T[2], ,T[241 T[1], , i нaзивaтимемo цIo пoолiдoвнiсть лiнiйнoю тaблицеro aбo B Maсивoм. теpмiнaxмoBи пpoгpaМyвaння злriннuх скiнченаnocлidoвнiсmь Mаcuвoм наЗuвасmься з Lueнi'uсlcuву якuх cклаdаЮmьcя odнozo munу,i.лlена i'ft /д змiннoi.у noЛoОrсення ma noка)lcчuксl, вuЗI7ачaс щo j Jv|сlсuвI. Пoкаэючuк, щo вuЗI!сlча€ tиicцеnoлoэюення eЛе^lенmа в масuвi, Hсlluв сIсmьcя tнd екc oм. ЧacгiП]e зa Bсe B ш<oстiirцексЬ викopисгoByloтЬ пopядкoвi нoмеpи елемеrrгЬ МaсиBy, ztле зutгzlJloМв alrгoplrпиiзaцii це пoIяттЯ с бiльпr aбсгpaкrrпrм, oскiльки iн.цексимo)Iq/тьнaбрaти i вiд,емнlл< цiлиx чисел' 122 oтясe, BBеденo нoвий тип _ мaсиB.Усi типи' якi дoсi бyли вaм вiдoмi, н€шиBaютьсЯ' nPocmuЛ|u.Мacив € пpиклaдo М cmpу к|l|уpo. ва,rozo |nunу, тoбтo вiн в свoto чepгy склaдaстЬся з елемeнтiв iншroгoтипy' Мoxсeмo зpoбити Bиснoвoк: B пoстaBлeIIiйзaдaчi Ми мa€Mо спpaByз мaсивoмзнaЧeнЬ теМIlepaт)p T[i], дe i=1,,2,3,...,24. Як звеpнyгися.цoелrментiв цьoгo мaсивy? .(ля цьoгo нeoбxiд}IoBкaзaTиiндекс. Haпpиклaд, Т[2]' T[5],T[i],T[i+j]. Aле в 'гpетЬoмy Ta четвеpтoмy ПpикJIaдaX ДI|я BизнaЧrння неoбхiднoгo елeМe}Iтa MackIBУтpебa знaти зIlaчeIIItя вeлияин j тa j. Taкe зaгaльIle BизнaЧення iндексy мaсиBy € д}Dке пoтy,(I{им зaсoбoм пpoгpaмyвaння' tUIе pil]oм з Tим i пpoвoкyе мoхсливi пoМилки: oтpимaний pезyльтaт oбчислeння iндeксy МacИBу п,lo)кeвиxoд'4TИ зa мeжi пpoмiжкy, видiлeнoгo дЛя iндeксiв дaнoгo мaсивy. I ще oдин вaжлпьиfl мoмeнт' якvlil в )кoднoмy paзi нe мo)кнa oбiйти. Maсиви вiднoсяться дo стpyкTyр З Taк звaI{им npямaлl абo doвiльttuлt docmуnoм: для тoгo' щoб визнaчити oкpемий елемент мaсивy' дoстaтньo Bкaзaти йoгo iндекс. Tепep стaлo зpoзyмiлим, як в циклi пepебиpaти знaченtlя . рiзниx eлeмeнтiв Мaсивy: для цьoгo дoстaTньo мiняти лише i* iндекси. A зaкoн змiни iндeксiв дyцg пpoстий: кo)l(не нaст}ДIнe знaЧеIlня бiльшe пoпepe.цI{ьoгo нa o.циницю. Дyжe зp)Д{нa зaкoнoмipнiсть! Mаcuв l|сIЗuвасmьcяodнoвuмipнu.l,l,якщo dля заdання .4,|lсцеЗ|tахooхсeнняeлел4еrlmавлцаcuвiнeoбхidнo вксlЗаmu Знсlче|tнялuше odнozo iнdексу. I{е oзнa.raе,шIoнaш Мaсив с oдновllмipним. A щo стa}IеTЬсЯ' якщo Ми сфopмyльoвal{y нa ПoчaТкy зaДaЧУ пotllиримo з oднiеТ дoби нa весь мiсяltь? Лoгiчнoro бy.Цетaкa зaмiнa IIoзнaЧенняeлементiв: ;1 .'l ...}} T[1'l]'T[l,2J, Ttl,з],..' T I2'I1, |2'21, I2'з1, 'TU,24], T T ...,T 12,241, П и "-. еpru ll,"}i}J, j].;i].;;; oз aтиN,t й,', ll;,^L] ili3# I{aче дoбy, a дpyгий _ гoдинy в цiй дoбi. Tобтo .u.u,"'o*y виглядi всi змi ннi Мox(еМo ЗaпИcaТИ.гaкиМ Чl.ItloМ : LZэ "
  • 64. j=|,2,З,...,24. T[ij],деi=|,2,З,...,3o, 6iльlше сxoх<ийнa тaблицro i нoсить oстaннiй пpикJIaд ДaНИr. }raзBy пpяМoкyгнoi тaбличнoi Beличини. МoBoIоПpoгpaмyBallня. .{aмo йoмy oзIIачеtIня Mаcuв lrаЗuвасmьcя dвoвul,tipншм,якщo dля заdання в мicцезнахoduceшня еЛеJу|енmа лtаcuвi неoбхidнo вкаЗаmu Значeння dвoх iнdекciв. Заnа'м,яmaйmе, Щo y .Цвoвимipниx MaсиBaх пepший iндeкс зaBжди Bкanyr нa нoMep pядкa' a дpуиiт _ нa lloмep стoвпчикa rлeмeнтa в цЬoМy pядкy! Poзмipнiсть мaсивiв y Пaскалi нeoбМe)кенa' пиTaнIIя впиparTЬ. в cЯ Л|4I]7e oб'см пaм'ятi, який викopисToByсTься для poзмiЩення знaчeнь мaсивiв. Pезoнним буДe зaпитaHHЯ: a Як же poзтaIIIoByIoться МaсиBи B пaм'ятi кoмп'toтеpa? Пoяснення дЛЯ oдIroвимipних мaсивiв дyжe пpoсТr: всi вoни poЗTaIIIoBaнi в пaм'ятi пiдpяд..(вoвимipнi МaсИB|4 poзтaIIIoByюTься тpoxи xитpiure: сIloЧaткy eЛеМенTи пrpIIIoгo pядкa' пoтiм дpщoгo i т. д. Poзтalшрaння мaсивiв бiльшloi poзмipнoстi ПoяснIо€ Т ЬсЯ aнaлoгiчнo. Haпpиклaд, A[ij'k]. Лиruилoся тiльки poзiбpaтися' як IIoяснити пpoгpaмi' Щo Boнa бyлe пpaцюBaти з eлеменТaми, якi щвoprotoТЬ мaсиB знaЧeIIЬ. A Заzальнuй вuzляd onuсу лlасuвiв: <i.ц,я змiннoiЪ: аrrаУ [<лteэюi злtiнu iнdeксiв>] oJ Haпpиклaд, var A: aгray tl.. 10]of real; B : aггay I l ..100' 1..100] of bytе; чеprз мeжi iндексiвзaвждиBкztзyються Зaрaження. Пo-пеptuе. <.>. Пo.дpyге' IIpиpoзпoдiлiпaм,ятi в oписoвiйчaстинi сиМBoЛи .цBa стiльки мiсця, скiльки ПpoГpaми пiд мaсив бy.ЦезapезеpBoBaнo пеpедбavaс Bкaзaнa кiлькiсть елементiв МaсиBy Bкaзaнoгo ТиПy. Toмy нa кpoui Bикoнaння ПpoгpaМи Mox(нa BикopисТoByBaTи нirк oписaнa в poздiлi змiнниx. Пoкiлькiсть елемeнтiвне бiльrшy, a TpеТс'меrкi змiни iн.цексiвпoвиннi бyги сталимИ BeЛИЧИHaМи, не мiсЦя неoбxiдновiдвести бy.uе, скiльки змiнними, iнaкrценевi.цoмo в пaм'ятi пiд тaкий МaсиB. 124 Зpoзyпliлo, щo пpи викoнaннi нa кoмп'toтepi пpoгpaм' в якиx BикopисТoвyloтЬся t'ЛacуIв.И' дoBoдиTьсЯ Пiд чaс BиПpaBлеtIн'I МoжJIиBиx Пoп,rиЛoк щopaзyзнoвy i знoвy зaдaвaTи Пoчaткoвi дaнi. A в paзi BикopистaннЯ Bеликиx мaсивiв цe BBeдeIIня дaниx будe дoсиTЬ гpoмiздким. Мoxливoстi Пaскaля дoзBoляIoTь yIIикнyги тaкoi незpyтнoстi. Пoвеpнемoсядo пoЧaткy знaйoмствaз ПaскaлеМ' де вBoдилoся пollяття пpo Poздiл кoнстaнт (сonst). B цЬoмy poздiлi iдeнтифiкaтopaми пoзнaчaються сталi вeличини. Haдaлi в щoгpaмi зaмiсть щлt Bелиrlинми бyдeмo Bк:lзyB:lги g* rиlпе вiдпoвilц{ilМ iлеrrшфiкaтоpи. Зpyннiсть пoЛягaеB тoмy' щo Якщo знaдoбитьсяпoмiняти,"u""""" цiei кoнстaнTи' To дoстaтIlЬo цe зpoбити тiльки в poзлiлi сonst, нe чiпarочи всiеi пpoгpaми. Haпpиклaд,мo)I(нa poзмipи MacИBУ ЗaДaTИTaким чиIIoм: сonst Sizeline=l00; SizеColumn=100; var A : array[ 1.. Sizelinе, 1..SizеCоlumn] real; of rеpеat геad(n,m) until (о0) and (n<=Sizеlirrе) (rрo) and (n<=SizеColumn); alrd 3ауваercme, щo в poздiлi кoнстaнт стoiть сиМBoЛ <<=>>' <<:=>>. a не Buкopucmoвуtoнu в npozpал|i кoнcmанrnu, нeoбхidнo вpахoвуваmu mаку ocoблuвiсmь: ii значення не JvoЭrна змiнюваmu nid чсlс вuкoнсll1няnp ozp а-Ф|u. бmo id енmuфiка mopал't, To щo вuЗначсlюmь Кoнcfnанmu' не ]у|oЭrснсl npuсвoЮвamu нiякi нoвi значенttя' iх мo'rcнa вuкopucmoвуваmu лuulе dля oбчucлення iнuluх lHaчeнь. Aле ж Ми BеЛи МoBy пpo Tе' як l{езpyrнo пiд vaс pедaГyBaннЯ пpoгpaми щopaзy знoBy зaдaBaти знaчeння елемeнтiв MaсИBУ. Cпpoбyсмo i це зpoбити зa дoПoМoгolo poздiлy кoнстa}IT: сonst A : aгr ay[l..з ,|..4 ] of rеal - ((l.5 , 1 .2 ,2 .1 ,4 .4 2 ), (2 .4 ,5 .7 , _ 1 ,4 5 .4 ), (-t.l,7 ,4 5 , _ 1 0 ) ); З oстaнньoгo пpикJIaду ми бallамo, Щo в poздiлi кoнсTa}IT Мo)I(нa зaДaBaTИ щe й тип. Тaкi кoнстaнTи н€rзиBa.oтьcя muniзoванuJ}'u. Знaчення еЛеМе}ITaМмaсивiв зaдaloTЬся ТaкиМ ЧиHoМ: B oднoвимipниx Мaсивax Boни зaписyютьсЯ в дy)ккax чеpез кoмy' y 125
  • 65. eлeМентiвкoжI{oгopядкa дoдаткoBобepyгЬся дBoBимipниx знaчel{Ilя y кpyглi ,цyжки,Biдмiннiсть типiзoвaних кoнстaнт вiд прoстиx, для якиx тип нe вкtByrтЬся' пoлягaс B тoMy' щo ii знaчення Mo)lGlа пporpaми' мiняти пiд vaс BикoнaнHя Якщo вaс взaгалi нe цiкaвлятЬ кoнкpетнi дaнi, якi бyдyгь нaдaнi eлеМeнTaм МaсиBy гIiд чaс Bикoнaння lrpoгрaМи, тo скopистaйтeся Мo)кливoстями стaндapтнoi пpoцeдypи Пaскаля Randomize тa фyнкuiТRandom(n), щo генepyютЬ випaдкoвi числa. Пapaметp n (типy Woгd) в пpoцедypi Rвndom BизнaчaсПpaByмe)кy пpoмiжкy, B якoмy бyдyгь визнaЧaтисявипaдкoвi .lислa (лiвa мeжa зaB)кди 0). Фyнкuiя Random мo)кe задaвaтися i бeз пapaмeтpa. B вoнa бyДeгeнepyвaти в цЬoМyBипa.цкy дiйснe чиоJIo лiaпaзoнi[0;1). А ulя тoгo, щoб випaдкoвi чисЛa B пpoгpaмi з кo)lшим ii нaстyпним зaпyскolvr нe пoBтopювaJIися (xo'la Boни i випaдкoвi, aлe пoслiдoвнiсTЬ циx Чисел пoстiйнa), скoplаcтaЙтecя прoцeдypoю Randomizе, якa встaнoвитЬпoчaтoк вiдpaxщкy Bl{пaдкoвиx чисeл в зaлеxснoстi пoтoчнoгo стaнy системtloгo гoдиtlникaкoмп'ютepa. вiд Фpaгмент пpolpaМи, щo BикopисToвy€ Bипaдковi числa, мoжe Bv|| ЛЯIIaTИ TaкиМ чинoМ : randomize; foг i:=1to n do a[i]:=гandom(100); Teпep poбoтa з мaсиBaми нe бyде Bикликати y Baс нeзp1пrнoстeй. Пumaння dля caмoкoнmpoлю: 1 Щo нaluвaemьcямacuвoм? 2 flaЙme вulHaчeння odнoвuмipнuх мacuвiв. 3 ,ЦaЙme вuзнaчeння Овoвuмipнuх мacuвiв' poЗmaшoву,omюяnaмhmiкoмn'mepa? 4 Якuмчuнoм eлeмeнmu мaсuвiв в iнОекcoм мacuву? 5 Щo Haluвaсmьcя нaluвaюmыяnwmuMu, a якi-cmpуonуpвнuмu? 6 Яi muпuзмiннuх 7 Як вuкopucmoвусmьcяpoзdiл KoHcmaHmdля зadaння пoчamкoвuх мacuву? daнuxeлeмвнmaм еeнepamopвuпadкoвuхчuceл dля зaОaння 8 Як вuкopucmoвуemьcя пoчamкoвuх lнaчeHьeлeм'eнmaM мaсuву? Якщo кiлькiсть елeментiв oписaнoгo Ь{aсивyзaBеликa i нe мoже бyм poзмiщенa y пaм'ягi кoмп'toтеpa, тo Bи oдеpжитe пoвiдoмЛe}Iня пpoПoМиЛкy Еrror 29 ordinаl typееxpесtеd . r26 Якщo пpи Bиз}Iaченнipoзмipiв мaсивy в poздiлi vaг бyли BикopисTaнi iдeнтифiкaтopи,якi не e кoнсTaнTaМи' ви oдep)киTe тo пoвiдoмлення пpo пoмилкy Еrror 3: Unknown idеntifier Якщo iндeкси МасиBy не oписaнi в poздiлi змiнниx, тo бyДe Bидaнoпoвiдoмлення пpo пoМилкy Епor 3: Unknown identifier. Якщo iндeкc мaсиBy виxoдиTьзa мeжi зaданихpoзмipiв,тo ви oдep)китепoвiдoмленняпpo пoМилкy Error 76: Constantout of rangе . Якщo poзмipнiсть Bк:tзaнoгoMaсиBy не спiвпaдaс з йoгo oписoМ в poздiлi зМiнниx, тo Bи oдеp)ките пoвi.цoмлeнняПpo пollepeдню IIoMилкy. Якщo B p$yлЬтaтi викopистaннявкJlaдeниxциклiв Bи oдеpжyстe peзyлЬтaт' якoгo }Ieчек[LtIи, poзбepiться з BкJIaдeI{иМи цикJIaМи зa дoпol{oгolo пoкpoкoBoгoBикoнaнняпpoгpaми (F8' Ctгl+F4). 3o. Aлеopumlv]u i пpoepaмu podomu 3 madлuцяfutu Пeprпе, нa щo тpебa звepнyги yвaгy пpи сКJIaдa}Iнi алгоpитмiв з тaбличними BеличинaМи' Ц€ BBедeHня виBедеHня тa дaниx. Пpи poбoтi з пpoстиMизмiнними нaм неoбxiднoB Пpoцедypax BBeдeIIнЯBиBeдeн}Iя пеpepaxyвaти iменa змiнних, знaчеIIня якиx нaс цiкaвлять. Пpи викopистaннiмaсивiв нaМ не oбiйтись бeз зaстоорaння циклiв. Пpиuoмy, NIЯ poбoти з oднoвиМipними "u"""u', (лiнiйними тaблицями)нaм знaдoбитьсяopгaнiзaцiяoднoгo циKпy' a oT двoвимipнi (пpямoкyгнi тaблицi), .як пpaBилo' вимaгaють зaстoсyвaння дBox Bклaдeниx циклiв. Poзглянемo спoчaткy €rлгopитМи poбoти з oднoвимipними мacиBaМи. BвеДенняпoчaТкoвих дaниx вигЛЯдaTиме Taк: vаr i,n: intеgеr; A: aггaу[l..100]of intеger; writе ('3aдaйтeкiлькiсть eлeментiвмaсивy:'); readln (n); ritеln ('Bведiть елeментимaсивy:' ); for i:=l to n do begin t27
  • 66. writе ('A[',i,']='); readln (A[i]) еnd; Звеpнiть Ув,aГУНa Tr, як. BикopисTaнi пpoueлypи BBе.цеIIняBиBеденнящoдo пеpехoдy IIa нoвий p'rдoк для HaстyIIнoioбpoбки iнфopмauii. Пpи ввeдeннi кiлькoстi елементiв МасиBy кypсop лиIIIaтиМeться тoМy ж pядкy' дe й зaпит нa BBeденIIя B iнфopмaцii, a пiсля вBeденtIя чиcлa пеpейде }ra нoBий Pя.цoк. Пpи ввeдeннi знaЧeнь eлементiв мaсивy нa екpa}r бy.Цевивo.Цитися кoмеI{тapy виглядi iменi мaсивy тa йoгo пopядкoBoгolloМepa. Цe .цaстьзмory кoнТpoлIoBaти Пpoцeс вBедення iнфopмauii. Знoвy. x Taки кoмбiнaцiя rrгitьrеadln дaсTь змory BBoдити числa зp:tзy xс пiсля кoменТapя,i лиlце пoтiм кypсop пеpемiстиTЬсянa нoвий pядoк, aJIe всi знaчення елементiв NIacИBу BBoдитимyгься B стoBпЧик. Bиведення елементiв oднoвцмipнoГo мaсиBy мaйжe нe вiдpiзHя€ Т Ься вiд вве.цення: writeln (' Елементи prзyльTylочoгoмaсивy;'); for i:=l tо n do writе ('A[',i,,]-',A[i],' '); writеln; B нaвeденoмy пpикJlaдi виведення eлeментiв oднoвимipнoгo МacИBУ бyдe вiдбyвaтись B oдин pядoк. Якщo B IIepшIoмyрядкy тo мiсця нe BисTaчиTЬ, iнфopмaцiя пеpeйдe I{aнaсTyпIIий,пoки нe зaBеpIIIиTЬсЯ BиBедeннЯ. .Цля вiддiлення знaЧення ' '. Можнa oднoгo елеI{rнTa зaмiнити пpoбiли вiд iнrшoгo Bикopистaнo пpoбiли фopмaryвaнIlяМ виведенIrя. Haпpиклaд, для дiйсниx чисrл: wгitе (,A[',i,']=', A[i]:7:2). Aлe B тaкoмy Bипa.цкy Мoже сTaTися, щo зapeзеpBoBaниx пoзицiй нa 3нaчення нислa бyДе зaмiulo' i вoни Bсе oднo зiллroться. Toмy Bикopистaння пpобiлiв лиIIIa€Tься кopисним. Мoжнa зallpoпoнyBaTи ще oдин вapiaнT BиBе.ценIIяоднoвимipнoгo МaсиBy, IIpи якoМy кoнТpoлloсTься кiлькiсть елемeнтiв B pядкy. Hеxaй нaм'гpебa, щoб в pЯДKУбyлo poзтaIпoвaнo 8 чисеJI. Bиведeння BигЛядaТиме тaк: rvгitеln ('Елементи pезyЛЬTyloчoгo мaсивy:' ); for i:=1 to n do bеgin writе(A[i]:0:3): 128 if i mod 8 = 0 thеn wгitеln: еnd; oпepaтop poзгaлyл(eння i mod 8 = 0 thеn wгitеln кoнTpoлIоif вaтиМедoоягtIеI{ня змiннolo i знaЧeння,кpaтI{oгo8, i пpи викoнaннi цiei ploви пepeBoдитимeкypсop нa нoвий Pя.Цoк. .зB'я3oк oтlкe, Bикoнyвaнoi пpoгpaми з кopистyвaнeм, тoбтo iнтepфейснa чaстиI{airлгopитМy,r дyл(e Ba)кJIивoю пoвиннa i бyпa oфopмленa вiдпoвiдним чи}Ioм. Якщo ви нe пoпiклyеTеся пpo кopeктHе вBeденlt,t.BиBeдeння ДaНИx' тo вaм нe зoвсiм бyд" зpoзyмiлo, щo <xoчe)> вtд вaс кoмп'ютep нa кpoui Bикoнa}Iня IIpoгpaми. Tепеp пеpeйдeмoдo BBeдeнняелeментiвдвoвимipнoгo мaсиBy. wгitе ('Зaдaйтeкiлькiстьpядкiв мaсивy:'); гeadln (n); write ('Зaдaйте кiлькiсть стoвпчикiв мacпву:); rеadln (m); writеln ('Bвeдiть rлeМентимaсивy:'); foг i:=1to n do fог j:=l to m do , bеgin I wгitе('A[',i,',,j,']='); I rеadln (Atij]) Iеnd; B якoстi пpиклaдy BиBедeнI{я елементiв двoвимipнoгo мaсиBy вiзьмемo вaрiaнт BиBеденIIя йoгo знaченЬпo pядкaх. writeln (' Елемeнти prзyЛьтylоЧoгoмaсивy:' ); for i:=l to n do .bеgin I for j:=l to m do I (A[ij],''); writе I writеln еnd; Bикopистaння вкJla.цeниx циклiв в HaBeденoМyпpиклaдi слiд poзiбpaти. Зoвнirпнiй цикЛ мiстить дBa oпеpaтopи: oпеpаТop внyгpiшlньoгo цикJIy' який вивo.циTЬB oдитI pядoк нa екpaнi елеМенTи пoToчнoгopядкaj нaшoТПрямoкyгнoiтaблицi, i пpoцeдypy writеln. I-(е oзнa.raс, щo пiсля BиBeдeннЯкo)I(Iloгopядка МaсиBy, 129
  • 67. ш здiйснювaтимeться пеpeхiд нa нoвий pЯдoк екpaнy. Taким чинoм тaблицю peзyльтaтiвy зBичнo}ryвиглядi. oдep)IшМo iнтepфейснoюЧaстинoю ПpoгpaПiсля тoгo, як tvlиoпaI{yBaJIи МI{'Mox(eМoпepeйти дo тI{пoBиxмoмeнтiв oбpoбки сaМoгo мaсиBy. Haйчaстiшrе зaдaчi, щo пepeдбaнaють poбory з тaблицями, тaблиць,aбo викopисTaння вимaгaють змiни знaчeнь сaмиx ЗaДaьИx знaчeнь ЗaДaшИx тaбличниx BeличиI{ oбчислeнняiнrшиxтaблиць. для Poзглянeмoцi двa BI{пaдки' eлeмeнтитaблицi IlputvtаО l. Hеxaй нaм нeoбxiдllo BизIIaчити зa пpaBиJIoм Atij]=i+j. Фpaгмeiт пpoгpal'и6уДeмrляДaти тaк: foг i:=1to n do foг j:=1 to m do A[ij]:=i+j; Ilpuюlаd 2. BsaжaTИмel,lo, щo нaм зaдaнi двa двoвимipнi MacуIB|1A[ij]та B[ij] poзмipьicT|on*m, тoбтo oбидвi тaблицi lvfaюTЬ n pядкiв Ta m cToBIIчикiв.Haм нeoбxiднo пopaxyвaTи зIIaчeнI{я мaсивy C[ij] тaкoi ж poзмipнoстi, eлемeнти якoгo € пoеЛeМeнт}loк) сylroю зaдaниx мaсивiв. Tо6тo дo кoжIroгo rлeменTy тaблvlЦi А в тPr6a дoдaти eJI€мeнт тaблицi B, poзтaшroвaниЙ нiй нa тaкoмy )к мiсцi, i prзyлЬтaт зaписaТи [Ia тaке ж мiсцe в тaблицi C. Пoвний тaким. вapiaнт aлгopитмyy виглядi пpoГpaМибy.Цe pгogram suma; var A,B,C: array[1..100,1..100]real; of n,m,ij: integег; begin writе ('Зaдaйтeкiлькiстьpядкiв мaсивiв:'); rеadln (n); writе (' 3aдaйте кiлькiстьстoвпчикiвмaсивiв:' ); геadln (m); writeln ('Bвeдiть eлeМrнTи мaсивy A:'); for i:=1to n do for j:=1to m do begin I wгite('A[',i,','j,']='); I rеadln (Atij]) .еnd; writеln ('Bведiть eлeментимaсиву B:'); foг i:=l to n do 130 for j:=1to m do begin I rrrite ('B[',i,','j,']=')i l rеadln (Btijl) bnd; for i:=l to n do foг j:=1 to m do C[ij]:=A[111+Blij]; writеln (' Елeменти pезyЛЬтylочoгo мaсивy C:' ); for i:=l to n do ,begin foг j:=l to m do I (C[ijJ,' '); I wгitе Iwritеln. еnd: еnd. Aлгopитми для poбoти з oднoвимipними мaсивaми aнa^гroгiчнi IIaвeдеI{им' Nlя ii oбpoбки Bl{кopисТoвyroться aЛe пpoстi циKпи. ПpuюtаD 3. Poзглянeмo щr oдIry Taкy зaдaчy. Нexaй зaдaнa тa6луч здiйснeння peйсiв l/ aвтoбyсaми пpoтягoм M Pейси, днiв. шo вiдбyлися' пoзHaчaютЬся тaблицi uифpЪrol, a тi, щo зa B дeякиx IIpич}rн вiдбyлися, цифpoю 0' Hеoбxiднo скJIaсти не пpoгpaмy' якa пiдpaxoвyскiлькiстьpeйсiв,щo не вiдбyлися. program voyage; vаr R : array[1..30,1..100J byte; of i, j, n,m,сount : integeг; bеgin writеln ('3aдaйтекiлькiстьaвтoбyсiв:'); геpeat I read(n) until (ь0) and (n<=]Q); rvrlteln ('3aдaйтeкiлькiсть.Цнiв;' ); ,rеpеat l геad(m) until (m>0)and (m<=tee); wгitеlп ('Зaдaйтеiнфoрмaцiro пpo здiйснeння peйсiв:'); пoЧaткoвих {Bвeдr;rня дaних } l3 l
  • 68. for i:=1to n dо for j:=1 to m do begin writеln (i,' aвтoбyс,' j,' ,Цeнь:'); .repеat | гead(R[ij]) or hntil (R[ij]=O) (Rlijl=1) 31.Aлeopumмu aнaxod}'rcн']я cумu Й Оo6уmку eлeмe,]miвma6лuць Пpulсltаd ,l. Poзглянeмo сxeМy :rлгopитмy (мaл.25), зa дoпoмoгoro якoi мo)кнa BИЗнaЧИTpI сepеднr apифмети.rнe знaчeнI{я дoбoвoi тeмперaтypи' oскiльки сaме NIЯ BизIIaчeI{ня сepeдIrьoгo apифмeтиннoгo Знaчення ми }Iе oбiйдeмoся бeз визнaчeння сyIии еnd; (ПiдгoioвкaзмiннoiдлянaкoпиЧeння сyпlи} сount:=Q; peйсiв,} кiлькoстi for i:=1to n do {Пiдpaxyнoк for j:_1 tо m do {щo не вiдбулltcя | if R[ij]=0 thеn сount:=Inс(сount); writеln ('Кiлькiсть нездiйснениx peйсiв:',сount:5); repeat until KeyPгessed еnd. У цiй пpoгpaмi ми Bикopистaли нoBy стalrдapпrу фyнкuiro Пaскаля Inс(сount). li пpизнauеItl{я _ збйьrпення знaчeIIIrя пapaMrтpa нa 1. Moжливий щe тaкий вapiaнт Bикopистaння цiсi фyнкцii: Inс(n,step). B цьoмy Bипaдкy збiльцreння пapaметpa n бyлe вiлбyвiaTИcЯ кpoкoм step. У Пaскалi iснyе aльтеpI{aтиBIIaпpoцeдypa Dес, 3 якa вiдпoвiднo зМeнПIy€ знaЧенIIя BкaзaIIoгo пapaмeтpa' Пumaння 0ля caмoкoнmpoлK, : 1 Зaпuшimь фpaeмeнm Пpoapawu, щo вidoбpalкaе ввedeння Пoчamкoвuхlнaчeнь dля eлeмeнmiв odнoвuмiptloеo Maсuву. 2 3aпuшimь фparмeнm npoapaMu, щo вido6palкaс вuвedeння пoчamкoвuх lнaчelь Оля eлeмeнmiв odнoвuмipHoeo 'iacuву. 3 Якuмu cпocoЫaмu мoхнa вiddiлumu ЗHaчeHняeлeмeнmiв Maсuву пpu вuвedeннi Ha eкpaн мoнimopa? 4 1aпuшimь фpaeмeнm npoеpawu, щo вido6paжae ввedeння пoчamкoвuх знaчeHь dля eлeм,eнmiвdвoвuмipнoao Maсuву. 5 1anuшimь фpaeмeнm пpoepaMu' щo вida6paжao вuвedeння пoчamкoвuх lнaчeнь dля eлeмeнmiв dвoвuмipнoro Maсuву. 6 Якi dif нad eлeweнmaMu maблuчнuх вeлuчuн нaЙчacmiшe зуcmpiнaюmься у зadaнax? 7 Якuм чuHoM MФt<нa зadaвamu пoчamкoвi daнi Оля eлeмeнmiв мacuвiв? I Haвedimь влaснuЙ пpuклad aлeopumму i зanuшimь npoepaмy dля oбpo6кu eлeмeнmiв odнoвuмipнoеo мaсuqу. I Haвedimь влacнuЙ npuклad aлеopumму i зaпutuimь пpoepaму dля oбpoбкu eлeмeнmiв dвoвuмipнoeo Macuву. Iз2 елeмeнтiв |racИBУ.A далi спpoбyемo зa нaведeнoю схеМoю €lлгopитмy poзpoбити Пaскаль.пpoгpaмy. ПpoaнaлiзyBaBIIIи сxeмaTичнe зoбpaження ztJlгopиTмy, мoжнa зpoбити BиснoBoк'щo Ми Мaeмo опpaByз oднoвимipl{иМ мaсиBoМ' щo мiстить 24 eлeмeнтvl.!ля пiдpaxyнкy сyми eлеМeнтiв мaсивy BизнaЧrнaзмiннa S, якa нa пoЧaTкyнaбрaе знaчeння0. Pезyльтaтoм BикoI{aнI.Iя аUIгopиTМy с oTpимaIIе знaЧеIlI{я S/24. Якщo нaвiть BBa)кaTи,Щo пoчaТкoвi значeння TеМпеpaтyp е Цiлими чисЛaМи' Тo в pезyльтaтi Bсе o.цнo бyде oтpимaне дiйсне числo. A тепep пpoгpaмa: progгam sеrеdnе; vaг T: atraу[|..24] of integег; i: integеr; IJJ
  • 69. S: геal; pеgin writеln ('Bведiть знaЧенllятемпepaтyр:' ); for i:=1to2.4do begin ('T[',i,']='); 1 writе rеadln (T[i]) l Ъnd; S:=0: for i:=1to n do S:=S+Tlil; S:=S/24; writеln ('CеpелнятемпеpaTypa дoбy:',S:0:3); зa rеpeat until KeyPгеssеd; пoслiдoвнiсть ДiЙ щeбa BикoнyBaти пoщpoкoвo ПpИ кoжIloмy пеpeглядipядкa (стoвпuикa).oтoж пepейдемo.цoпpoгpaми. progrаm suma; usеs сrt; vaг A: array[1..100'1..l00]rеal; of 100]of геаl; b: array[1.. n,m,ij: intеgег; bеgin rvritе ('Зaдaйтeкiлькiстьpядкiв мaсивy:'); геadln (n); write ('Зaдaйтeкiлькiстьстoвпчикiвмaсивy:' ); геadln (m); writеln ('Bведiть eлeМeнти мaсивy:'); [oг i:=1to n do for j:=1 to m do Ilpuклаd 2. Для зIIaxoд)ке}II{я дoбщкy елeментiв Мaсивy дoстaтньo зpoбити двi змiни B нaведeнoмy aJlгopитмi: зaмiнити oпеpauiю .цoдaBaнняoпepaцiеto Мнo)I(енняi пoчaткoве з}Iaче}lllя зaмiнити нa l, змiннoi, в якiй бyлe вiдбрaтися l{aкoпиЧeн}Ul .Цoбyпсy, Hавedeмo фpаzlтlенm ФIzopumJvу HaKonuчeння doбуmку dля dвoвuлtipнozo масuву: P:=1; foг i:=1to n do for j:=l to m do P:=P*Alijl; ПpuклаD 3. CпeцифiчIloю с зaдaЧa з}Iaxoджeннясyми aбo лoбyпсy не всix eлемeнтiв пpяМoкyп{oiтaбпицi, тoбтo двoвимipнoгo Мaсивy, a кoжlloгo йoгo pядкa (aбo стoвпвикa) oкpeмo. Poзглянемo peaлriзauiю цЬoгo ajlгopитМy' Cпo'raткy BизнaЧимo, скiльки pезyльтaтiв I,rи oтpl,Iмa€мo пpи тaкoмy пiдpaxyнкy. ЯкпIo B тo пoпepeднix зaдaчaxpeзyльпtт бyв oдтн - зara,Iьнaс)Д,ta, в дaнoшfy pядкiв (aбо pезyльтaтЬбyле сгi.rьш, скi.гькив тaблицiBизнaЧeнo вlатl4дсy стoвпшtкЬ). Tомy мolшa зрбltги виснoвoк,щo pезy.ьтaтoМBикoнaн}Ut дaнoгo zlлгopитмy бy.Цe o.пнoвимipний мaсиB знaчеHЬ. Дpуrпit Moмент' з якиМ неoбхiднo poзiбpaтися,пеpIIi нiж пpисryпaТи дo зarlуIcУ aлгopиTМyy виглядi прoгpaми, це мiсцe в aлгopитмi, Дe бУДe вiдбрaтись сyN{yBaн}rя. Уявивrши сoбi, як бъl мц зI{axoдилисyмy Циx eлrМеHтiвтaблицi Bpyчtly, мo}кнa дiйти виснoBкy, Щo дaнy ,begin I writе('A[',i,,,'j,']=,); I rеadln (Atij]) 'end: for i:=1to n do begin b[i]:=O; змiннoi для }Iaкoпичeння срlи} {пiдгoтoвкa j:=l to m do for b[i]:=b[i]+A[ij]; нaкoпичeнIlя сylv'и { } end; writеln('Cpla eлeмeнтiвпo pядкax:'); foг i:=1to n do wгite(b[i],''); rеpеat until КеyPгеssеd еnd. .Цля визнaчення сyМи eлeментiв I]o сТoBпЧикax неoбxiднo pядкiв i стoвпчикiвпoмiнятимiсцями: пеpеглЯд foг j:=l to m do begin змiннoi для нaкoпиЧення сyпlи} {пiдгoтoвкa I b[j]:=0; for i:=1to n do I ь61'=btj]+Аtij];{нaкoпинeннясyпlи} | Ъnd: 134 135
  • 70. wгiteln('Cyмa eлeмeнтiвпo pядк0(:'); for j:=1 to m do wгite(bU],''); 3мiни в aлгopитмi пЦpaxylкy Дoбщкy елeментiв пo pядкax i y стoвпцяx пoJI,ягaють зaмiнi oпepaцii <<+> oпеpaцiю <<*>> нa тa пoчaT. peзyльтary<<0'>> кoвoгo зIIaчeHIIя I{aкoпичeнIIя нa <<1>). змiннoТдля . Пumaння oля caшoкoнm Poл'o: 1 1anuшimь oпepamop пpucвoювaння,якuЙ вulФнуe diю нaкonuчeння сумu eлeшeнmiв odнoвuмipнoеo.мacuву у змiннiЙS. A[i] 2 Якe noчamкoвelнaчeння Iтoвuннaмamu змiннa S пeped пoчamкo^l oпepaцiiнaкoпuчeння cумu? o6фунmуЙmecвoю вidnoвidь. 3 9aпuшimь onepamop npucвoювaння,якuЙ вut<oHye нaкoпuчeння diю doбуmкyeлeмeнmiвodнoвuмipнoеo мacuву A[i]у змiннiЙP, 4 Якe пoчamtroвo знaчeння rloвuннa мamu змiннa P пeped пoчamкolv| oпepaф нaкonuчeння doбуmкy?o6|pунmуЙme cвoю вidпoвldь' 5 Чuм вidpiзняrmьcя нaкoпuчoння cуIу'u ma Оo6уmку eлelv'eнmiв odнoвuмipнoeo dвoвuмipнoеo ma мacuвiв? 6 Якi ocoблuвocmiaлeopumмyпidpaхунtсу cуrru ma Оo6уmкуeлeмeнmiв pяdкiв a6o cmoвпчuкiв dвoвuмipнoмумacuвi? у 32.Aлeopumrr nolЦу'(у elleиeнmiв з deяKotoвлacmuвicm'o y Якщo crft|TТГИ бyль-якoгo дoсвiдченoгo llpoгpaмiстa, якi зaдaчi нaйчaстiцrезyсщiнaloться y йoгo пpaктицi, IIIBидIue всe вiн зa вiдпoвiсть, щo цe пoшщoвi зaдaчi, тoбтo пoruщ зaдaнoгo елeмeнтa в дeякiй пoслiдoвнoстi знaчeнь.Cфopмyлюeмo тaкi клaсичнi зaдaчi. Ilputсllаd 1. Ilotuук заdaнozo eI|eJ'Ieнmав лlаcuвL Hexaй нaм зaдaнoдеякий мaсиB знaчeньaЬ a2, ...,сn i знaчeнняBeлиtlиIIи Heх. oбxiднo вllзнaчити' чи мiстить вкaзaний Мaоив Beличиrтy i якщo x, тaк, тo нa якoМy мiсцi в мaсивi вiн знaxoдиться. Aлгopитм зaдaчi бaзyсться нa пoслiдoвнiй лiнiйнiй пepeвipui всix eлeментiвмaсивy а|, а2, ,.,' аt|I|aспiвпa.цaння вeлиЧиIIoIo.Л. з I{е мoжнa зpoбити лиIIIе зaстoсyBaвIIIиaлгopитмi.rнy сTpyктypy пoвтopeння' яке пoBиHнo вiдбрaтися стiльки paзiв, дoпoки Ми IIе знaйдeмourщaний eJIемeнт. [aвailтe спoЧaTкy poзгляHемo aJlгopитМ-пpoгpaМy,a пoтiм пpoaна.rriзyсмo йoгo. pгogram searсh; uses сгt; var a: array[1..100] ofrеal; Iз6 x: геal; i, n: integeг; bеgin rrгitе (' Зaдaйте кiлькiсть eлeмeнтiвмaсивy:') ; геadln (n); writеln ('Зaдaйтe eлrмeнти мacивy:'); foг i:=l to n do гeadln (a[i]); wгite (' 3aдaйтeзнaчeнняruщaнoi вeлинини:'); rеаdln (x); i:=l; whilе (a[i]+x) and (i<_n) do i:=i+1; if i<=n then wгiteln1'ьеп,rотг' :нaюДпъся lиасrвi в rв'j'' мicIц'); n:5:2,, еlsе wгitеln('Елeмeнт,,х:5 в мaсивi вiлсщнiй' ); :2,' rеpеat until KеyPrеssed еnd. B нaвeденol.ry пpикJlaдi aлгopитмy вapтo зyпинrпaся нa yмoвi (a[i]+x) and (i<=n),щo Bизнaченaв циклi з пeprдyl{oвoro.Гr слiд читaти тaк: ми пpoдoB)кyсмo Bикoн)rвaти цикJI' якщo щe I{е знaйденo пIyкalroгo елеМентaв мaсивi (a[i]+x) тa якщo Ми щe Ite виilтllлlазa мerкi мaсивy (i<=n).B сaмoмy циклi викoнyсться лишIe oднa oпepaцiя пepемiщеlltlя нa нacтупниil eлeМент IvIacнBу:. i:=i+l. Кoли ми вийдeмo iз ЦИrУ, неoбxiднo , Bизнaчити пpичиt{y .. зaBepПIeння циклy. Ix мoжe 6yтта двi: aбo знaйдeнo шщaний елеMеI{т мaсивi (a[i]=;1,aбo елементaнeмar' i ми вийцrли зa межi в (Ьn). Caмe цi двa мoж;rивi випaдки i пеpeвipяс oпepaтop мaсиBy poзгtl.лy,кеHня пiсля зaBepшrнняциIgIyтa Bиз}Iaчaе' prзyльтylочy якy iнфopмauiю нeoбxi.цнo B}lвесTи нa eкpaн мoнiтopa: шщaний еЛеМeIIT зIIaйдrI{o' i це стaлoся пpи зIIaЧеннiiндeксa мacивy i, aбo вiн в мaсивi вiдсщнiй. Пpuкllаd 2. Пotuук лtiнiлlаltьнozo(мaкcuлlulьнozo) anelпeнmа в мacuвi. Hexaй зaдallo дeякий мaсив a|, a2, ...,с,,,Heoбxiлнo знaйти мiнiмальний eлeментцЬoгo l,IaсиBу @in). |з,7
  • 71. Aлгopитм пolшyкy нaймeнцroгo eлeмeнтaбyдрaтиме]r{oЗa тaким сцeнapiсм. Biд пo.raткyдo кiнuя мaсиBy вiдкpивaтимeмoпoслiдoBttoпo oднOмy елeмrнTy i нa кoжнoмy кpoui виЗнaчaтимемo пoтoчний нaйменurий еJIeмент.Ha пеprпoмy кpoui нaйменшим бy.пепepший нoвиil нaстyпнoМyкpoui пopiвнIoBaтиМeМo елrмeнт a1.Ha кo)к}roМy муl T||Ммiнiмyпloм, яктqiц B}(е мaeМo. Якщo ai вiдкpитий eлeмеI{т 3 нoвий елемент меншrийвiд toгo мiнiмшIьнoгo, щo визнaчeний нa пoпеpeдньoмy кpoцi, тo зaпaМ'ятaeмo йoгo, iнaкшre зaпиIIIимo cтapий prзyлЬтaт. Taким чиIIo}l' дiйшoвrши дo кiнця мaсивy' ми мiнiмальний елeмeнтBсьoгo мaсиBy' Bиз}Iaчимo нa Пpoгpaмa, зalflДcaАa oснoвi llaвeдeнoгoaJlгopитМyбyле мaти тaкий Bигляд: progrsm minimum; usеs сrt; var a: aгraytl..100lofгеal; min: гeal; integег; i, n, k: bеgin writе ('3aдaйтeкiлькiсть елeментiвмaсивy:'); геadln (n); мaсивy:'); eлеМeнти writeln('3aдaйтe for i:=1to n do iеadln (a[i]); ft;=l; slin;=n[[]; for i:=2to n do then if a[i]<min 'bеgin I min:=a[i];k:=i Ъnd: eлемент',min); wгiteln('Miнiмальний в мaсивiнa',k,' мiсцi'); writеln('знaxoдитЬсЯ rеpеatuntil KеyPгessed end. Зaпpoпoнoвa}raпpoгpaМa нe тiльки знaxoдиTЬ нaиМeнIIIии rлемент' .шe щr й визначaе, нa якoМy мiсцi B масивi вiн знaxoдиTься. 138 Пpoaнaлiзyсмo дeкiлькa мoмeнтiв сToсoвнo дaнoгo €UlгopиТмy' poзгЛЯнyвlllи тaкi вapiaцii нa темy <<Пoшщoптим€ulЬнoгo зIIaчe}II{я>>. о Haвeдений пpиклaд aJlгopитмy визнaЧaе пеptпий мiнiмaль- ний елемeнт в мaсивi, Хoчa B нЬoMy мoжe бyги i декiпькa тaкиx eлемeнтiв. Haпpиклaд, якщo poзглЯHуTИ MaсиB |'2,2,|,3,|, тo мlI{lMaJIЬним eЛеМе}Iтoм бyле пeplшa oдиниця. Bесь сeкpет xoвaeтЬся в yпloвi a[i]<min. Aдже нoвий елeмeнT мaсивy бyДe зaпaм'ятoврaTу!сЯ Я1< нaйменпrий лиrпe тoдi, кoли вiн менruий зa пoпepeднiй. о Якщo в aлгopитмi пoмiняти yМoвy a[i]<min нa yмoBy a[i]<=дin, тo визнaчaTиМeТЬсЯ oстaннiй gaЙмeншllЙ eлемrнT' oскiльки нoвий eлeмент MacLIBУбy.Цe зaпaм'ятoврaтися ще й тoдi, кoли вiн piвний пoпеpедньol,Iy. I{ьoгo дoситЬ' щoб poзглянщий aлгopиTм BикoI{yBaв всe' Пpo щo йшлa мoBa Bище. ll{oб знaйти нaйбiльlший елемeнт, пoтpiбнo yМoвy a[i]<tnin пoмiняти нa a[i]>max. Пumaння dля caмoкoнmpoлк': 1 Для чoro вuкopucmoвуюmьcя noшукoвi aлeopumмu? 2 3aпuшimь npoеpaму пoLuyку зadaнoеo eлeMeнma в oОнoвuмipнoму мaсuвi ma npoaнaлiзyЙme iT. 3 У нoму nol,Яear iОeя пot.tlукумiнiмaльнoeo eлeмeHma в мaсuвi? 4 1aпuulimь пpoepaму пoulуKу мiнiмaльнoeo влeMeнma в odнoвuмipнoму мacuвi ma npoaнaлiзуЙme ii. 5 Чuм вidpiзняюmьcЯ aлeopumмu ПotuуKу мiнiмaльнoeo ma MaКcuwaль. нoеo gнaчeння в мacuвi? 6 Як вuзнaчumu пopяdкoвuЙ нoмep пepшoеo мiнiмaльнoeo (мaкcuмaльнoеo) энaнeння в мaсuвi? Як вuзнaчumu пopяdкoвuЙ нoмep oсmaHньoao мiнiмaльнoeo (мaкcuзHaчeнHяв мacuвi? ^raльнoеo) 33, Пpaкmuч']apofioma ooпpaцtoвaнHя ma6лuчнuх вeлu. ч.!H116 Зa нaвeденим сцeнapiсм викoнaйге зaBдaнIfi пo стBopенrпо тa нa,Iaгoд)I(еI{нIo aiгopшиЬ Ta пpoгpaМ з тaблvr'+тpпvrи BеJIиiIинaми. l) Buзначumu кiлькicmь i munu вхidнuх dанuх вidnoвidнo do уЛ'oвu заdачi. 6 Зaвдaння .цлядaнoi пpaктиннoi poбoти нaведенi y <Збipкикy вIIрaв Ta зa,цaч з aлгopитмiзaцi.i тa пpoгpaМyвaнIlя> y poздiлi <oпpaцювaння тaбличних веЛичиIl>) |З9
  • 72. 2) Buзначumu кiлькicmь i munu вuхidнuх dанusс вidnoвidнo do заdачi, у.fu|oвu no 3) Buзначumu rnun шlzopumму абo йozo фpаrлtенmiв, буdуваmu ltl I'|аtneма|nuuну od eль. 4) Buзначumu неoбхidнicmь ввedeння npoмiэrcнuэс dанuх, ii кiлькicmь mа muпu. mа 5) Poзpoбumu cлoвecнuй'onuс аItzopumJИу noбуdуваmu йozo Фсa.4у. 6) Buзначumu munu mаблuчнuх велuчuн (лiнiйнi, npял,toкуmнi), вidnoякi нeoбхidнo lаcmocуваmu dля cmвopeння сut?opumJуry вidнo do ул'toвuзаdачi. 1) Buзначumu noслidoвнicnnbввedенняnoчаmкoвuх mа вuвedeння peзульmуючuх dанuх З вuкopuсmанняJ'|вidnoвidнuх кoJуtенmаpiв i фopлlаmуванItя. 8) Buзначumu кopeкmнicmь вuкopucmання nocлidoвнtlх ma вклаdeнuх noвmopeнь' Засmocувсlння polaалуЭIcень dля oбpo6кu лtаcuвiв. вoю npozpаJ|4уання. в 9) З аnuсаmu шРopumJЙ]уto I0) Haбpаmu mекcm npozpа.llu,вuкopucmoвуlouuсеpedoвuще npoвunpсIвu. еpал|уваIlня, mа вuкo|tс|muналаzodЭIсeнняt|pozpсI]||u, в|Ituct]нmакcuчнinoмtlлкu, mecmiв. nidzomувавшu cuсmеЛ|у IL) Buкoнаmu npozpсllуtу, 12) Pеалiзуваmu iнuli ваpiанmu вuкopuc|nання noвmopень i poЗzаJlуъtcень dля вuкoнанItя cфopt',tульoванoi.заdачi mсl npoанаltiзуваmu ii щodo кiлькo.cmiвuкoнуванuх diй dля piзнuх dанuх' пoчаrnкoвцLх 34.futeopumмu вnopяdlryвaння madлuЧнux вeлuчuн мaсиB знaченьа|, а2, ..., с,. Hеoбxiднo Hеxaй зaдaнo ДeякнЙ IIepеTBopити йoгo тaким чиIloм' щoб викoнрaлoся спiввiднolllенIlЯ ...<= а:' o|<=а,,<= елeМе}lтiв в лiнiйниx тaбличниx Aлгopитми BпopядкyBa}IIIя вiд BеЛичинaxпoдiляroтьсяrraтpи ТиПи B за.пеrкнoстi зaстoсoвaнoгo It{етoду. Iснyс тaкиx тpи МетoдиBпopяДкyвaння: . мeтoд вибopy; . мeтoд oбмiнy; . мrтoд вкJIючrння. 140 Poзглянемo пepший метoд -меmod вuбopу. Якщo спpoбyвати нaвeсTll пopядoк y кaрткaх' Ha яKL|xнaписaнi дeякi числa' тo' IIaпеBIlo, дiйшли б тaкoгo Bllснoвкy. Cпovaткy нeoбxiднo знaйти мiнiмaльний eлeмeнт y Bсьoмy зaдal{ol,ly мaсивi i пoмiняти йoгo з елемeнтoм' який пoки щo стoiть нa пepшoмy мiсui тoмy' щo сaМе Еa цьoмy мiсцi пoвинel{ стoяти знайдeний мiнiмaльний eлeмент. Tепep в)кe пrpIIIий елeмeнт знil(oд}Iться нa сBoсМy мiсцi, i ми мo)I(eп{o йoгo зaкpити' не poзглядaloчи далi. Нaпr мaсиB змeнIIIився нa oдин eлeмellт (пepший). 3 нoвим lt{8сивoм Bикol{ar}ro тi ж сaмi дiТ: знaйдeмo в lrьoll,ly мiнiмaльний eлемент i пoмiняeмo йoгo мiсцями з пеpIIIим вцкpитим eлeмeнтoм (нaспpaвдi вiн с дpщим eлемeнтoм в зaдaнoмy мaсивi). Taким чиIloм бyлeмo пpoдoB)кyBaтIr дo тoгo чaсy' пoки нa oстaнI{ьolvгy кpoцi не з:IJIиIIIaтЬся двa oстaннi eлеMeнти. Якщo нeo6хiднo, пoмiняeмo i ii мiсцями. Тaким чиI{oм M|I з BaNшl BIIз:нaЧИлIlcя щoдo :rлгopитмy впopядкyBaння пoслiдoвнoстi зIIaчень lvreтoдoм вибopy. Цeй iUIгopиTМ y виглядi пpolpaми бyДе тaким: program оrder; usеs сгt; var a: aггay[l..100] ofrеal; min, с: rеal: i,j, n, k: integег; bеgin wгiteln (' Зaдaйтекiлькiсть елемeнтiвмaсивy:'); геad (n); writeln ('ЗaдaйтеелeмеIlTи мaсивy:'); for i:=1to n do геadln (a[i]); foг i:=1to n-l do begin min:=a[i]; k:=i; foг j:=i+l to n do if a[j]<minthеn begin end фn:=a[j];k:=j I с:=a[i]; a[i]:=a[k]; a[k]:=с; еnd; 141
  • 73. wгitеln (' Упopядкo вaниil мaсив:'); for i:=1to n do wгitе (a[i],''); rерat until KеyPrtssеd end. .(ля тoгo, aби oписaний aлгopитм викoнyвaв yпopядкyвaнI{я МacиBy зa спадaнням, нeoбxiднo лoгiчний виpaз a[|]<minзaмiнити нa a[j]>min, зaмiнивtши тaкo)l( пpи бaжaннi iлентифiкaтop min нa iдeнтифiкaтopmax. Aлгopитм, щo зaстoсoвус меmod oбмiну длЯ вПopядкyвaн}Iя oднoвимipнoгo МaсиBy' щe нoсиTЬ I{{lзBy<бyльбaшкoвoгo>>. I{е пoяс}lю€тьсЯ T||М,щo нa кoжI{oМyкpoui aлгopитмy poзглядaсМoз кiнця дo тIoчaткy двa сyсiднix eлel,rеI{тa мiнясмo iх мicuями y i Bипaдкy' якщo пpaвий елeмeнт мeнцrий зa лiвпiц' Пpи цьoмy вiдбрaеться (<BиIuToвxyвa}Iня>> (нaймeнrшoгo) нaйлeгrшoгo елeмeнтa в пoчaтoк. oскiльки пoЧaToк i кiнець llpoгpaМи aналoгiчнi Iloпepeдньoмy вapiaнry, poзгЛянeмo лиIIIе фpaгмeнт безпoсepeдI{ьoгoyпopядкyBaн}Iя. foг i:=2to n do foг j:=ndownto i do if aU-ll>a[i] thеn begin I ]; a[]:=x {:=a[j- a[-l ]:=a[]; еnd;. Haпpиклaд'poзгляtlемoМaсиB44, 55, |2, 42' 94' |8, 6, 67. Ha пepIIIoМy кpoцi, poзглЯд'llочиBесЬ мaсиB з кilщя дo пoчaтIg/'бyлeмo пеpемiuцвaпа нafu,rеrпший елемеIIтнa IIеpII]е мiсце. Це бyде числo 06. B pезyльтaтiвикoнaннявн}лгpilшньoГo ЦикJIyoТpимa€ М o пrpетвopeний мaсиB6,44,55, |2' 42,94, |8,67. Тепеpвстyпaс poбory в зoвнirшнiйцикл. Biн (скopoЧye> нalrl мaсиB' oскiльки нaйменurий елеМентвже стoi1ь I{aсвorМy мiсцi. Poзгля,цaсМо мaсиB 44, 55, |2, 42,94' |8, 67, B pезyльтaтipoбoти внyгpitшньoгo циклy нaйменtuий йoгo елeменT сTaнr нa сBoс мiсце (в пOЧaТкoBoМу мacнвi це бyде дpyгe мiсце). oтpимaемo тaкий пpoмiжний pезyJlЬтaт сopTyBaн}rя: |8, 44, 55' |2, 42,94, 67.IfeЙ пpoцесбyлe пpoлoв)l(yвaTися' нa пoки oстaiньoмy кpoцi не бyде здiйснello пpи необxiднoстioбмiн двoх нaйбiльruиx елементiв. |Аo I нa зaвеpпrel{ня знaйoмоTBa з aJlгoритмaми yпopядкyвaння лцеmodвключеI|tLя. Hexaй зaдa}IaпoслiдoвнiсTЪ a|, Z2, ..., an. Biдoмo, Щo нa i-мy кpoЦi al, a2, ..., ai-1 _впopядкoвaнa чacTИнa пoолi.цoвнoстi. Iдея aJIгopиTмy цьoгo мeтoдy пoJUIгaс B тoмy, щo дJIя кo}кtloгo i=2,3,...'n бepеться елеМeIIт a[i] i стaвиться y BпopядкoBaIIy чaстиlly пoслiдoвнoсTi, Щo йoмy пеpeдyс' нa свoс мiсцe' .{ля pеалiзauii дaнoгo aлгopитмy неoбxiднo poзIIIиpити пpoмiжoк змiни iндeкciв var a: aшay[0,.100] of real;. У виглядi фpaгмeнтa пpoгpaп{и I,IaоиBy: цeй аЛгopитм бy.Цeтaким: for i:=2 to n do bеgin j:=i; a[0]:=х; x:=a[i]; while (x<a[j-l])do begin a[j]:=a[j-1]; I I j:=jI 'end; a[]:=x еnd; нa PoзглянемoaJlгopитм тoмy сaмoМyпpиклaдiмacиBy:44,55, L2' 42' 94, 18, 6, 67.3oвнiurнiй цикJI }Ia кo)кнoмy кpoui бyлe (€с).Baти>) пoчaтoк мaсивy, щo poзглядa€ться y внyгpiшrньoмyЦиклi. Cпo.raткy це бyдe весь мaсиBoпoтiм, пoчиIIaючиз дpyгoгo eлементa, дaлi _ з тpетьoгo i т.д. Haс зapаз бyлe цiкaвити, шo poбиiь внyгpilшнiй цикл' як вiдбyвaсться BизIIaЧення мiсця N|я нa нaйменtшoгoелемеI{Ta дa}Ioмyкpoui. Мaбyгь, ви вrt(eпolrriтили, яIi пpиклaдi aJlгopитМyвнyгpiurнiй цикл opгaнiзoвal{ий щo B цьoмy Cпpaвa в тiм, щo якщo вже знaйдeнo цикJI з пеpедyМoBoю. мiсцезнaxoд)кенняrлeмe}Iтa,щo cтaвиTЬсянa свor мiсце, тo нeмa€ пеpегjlядмaсиBy дaпi. сMислy IIpo.цoвжyBaTи oтoж, пpoaнaлiзyeмo aJlгopитМ. Для кpaЩoгo poзyl'liння пoяснення poбoти aJlгopитмy вapтo врrlнy Bикotlyвaти пoкpoкoBo всi нaстyпнiдiТ. Taкl Ha пеprпoмy кpoui зoвнiurньoгo циKпy BстaнoвJIюloтЬся (x=55),a[0]=J5'j:=2. ПpизнaЧel{ня знaчeннязмiнниx: i=2, x:=af2f Мaсивy a[0] ми пoбaчимo пiзнiшlе. ЦIтrIнo BBеденoГoелeмеI{Ta |4з
  • 74. Умoвa вrгyгpiшrньoгoцикJIy нe спpaBДI(yeтьcя(55<44), тoмy всe JIиIIIaстЬся нa свotx мiсцлt. Hu дpy.o'y кpoui зoвнituньoгo циклy i=3, x:=a[3] (x=|2)' a[O]=|l, j:=3. Пo.rинaсмo викoнyвaти BнyтpiIшнiй цикл. Ha йoгo пrplltoмy кpoцi yмoва спpaBдx(yстьcя |2<55. Зaxoдимo BсepeдиIry вн1тpirпньoгo цикJIy i викoнyсмo пpисBoсHня: нa щeтс мiсце в мaсивi стaBимo чI{слo55 (мaсив: 44, 55, 55, 42,94, 18, 6, 67). Чlt мoж[Ia цe poбити, чи IIe пoIIIкoдимoми мaсив? Hi, oскiльки чисJIo' щo бyлo Ira TpeтьoМyмiсцi, тoбтo 12, мlа зaПaм'ятalпly змiннiй x пepeд пoчaткoм внyгpiшrньoгoцикJIy.3мiнюeмo пapaмeгp внyгpiпrнЬoгo циKпy j:=j-l (i=2) i пepеxoдимo дo 1raстyпIloгoйoгo кpoкy. Знoвy пepeвipясмoy&roByциклy.Teпep вoнa B)I(e Мaс вигляд |2<44. Умoвa спpaвДкyeться' i тoмy знoBy Bикoнyсмo внyгpiruнiй цикл, нa дpyге мiсцe в мaсивi стaвимoчисJIo (мaшв: Ц, Щ,55,42,94, 18, 44 6, 67)' Ha зaвеpпlеIlняцьoгo кpoкy внyгpiпrньoгo циклy j=1. Пpи пoвepненrriнa пoчaтoк внщpiurньoгo цикJIy всЦ/пaс в poбory а[0], oскiльки пеpевipяеться )^,roвa x<a[O] (12<|2). Ця yIlroBa не BикoI{y€ться, i вrryгpitшнiйцикл пpиПиняс свolо poбory. Aлe пiсля йoгo зaвepIпенняy зoвнiцrньoмy циклi с ще o.циll oпepaTopa[j]:=x, який пpи пoтoчниx знaЧенIlяx змiнниx Мa€ Bигляд a[|]:=|2.Tепеp все стaлo нa свoi мiсця i мaсив I{ar oстaтoЧнийвигляд: |2' Ц' 55. 42,94, 19,6,67. Hе вapтo poзглядaти нaстyпнi кpoки BикoнaIIнязoвнiшrньoгo циIшy, oскiльки Boни aнaJloгiчнi.Мoжнa зpoбити тaкий висновoк: О нa кo)кнoмy кpoцi зoвнiпrньoгo циклy пoтoчний eлемeнT МacиBy' pyxaюЧись влiвo нa пoЧaтoк мaсивy, <шI5Дсaс>> свor мiсцe в yже вiдсopтoвaнiйлiвiй raстинi; O pyx пoтoчIloгoeлеМellтaвлiвo вiдбyвarтЬсядo тoгo Мol,teнTy' пoки I{e BикoнarTься ylиoвa'пoтoчний eЛемlнт'>='елeМeнт лiвoi чaстинY! Дacv!Bу'тoбтo цей pyx не зaвж.ци сягaс пepIIIoгo , елеМeнтa 3aдa}Ioгo МaсиBy. Haсaмкiнець, пpoaналiзyсМoI{aBеденi метoди Bпopя/цкyвaнI{я oднoвимipниx мaсивiв. Кpитepiсм oцiнки BизнaчиМo кiлькiсть Bикot0/BaHиx дiй (кpoкiв циклУ) ДЛЯo.tpИМaнI{я peзyлЬTary.З uiеi тoЧки зopy пеprui дBa МeTo.циМzUIoчиМ вiдpiзняroться o.цин вiд Bo BlдplзIIя€ться Brд пepIIIиx дBox' oсК1лЬки вIlyтplшнrи цикJI € цикJIoМ з пeредylt{oвorо whilе...do. Кiлькiсть кpoкiв цЬoгo цикJIy зaJIe)кить вiд викoнaння )^,loви x<a[j-l]. A це oзнaчaс , щo Biн зaBеpцIитьgя' кoли ми знaйдeмo мiсцe eлeМeнтa x в y,I(e BпopядкoBaнiй лiвiй чaстинi }raсиBy. Toмy мeтoд BкJIючeння вapтo BикopистoBуrBaTI4, кoЛи нal,l тpeбa впopялкyBaти мaйжe BпopядкoBaний мaсив. Пumaння dля caмoкoнmpoлк,: 1 Якi icнyюmь мemodu впopяdкyвaння мaсuвiв? 2 Cкiлькu цuклiв нeoбxidнo opеaнiзувamu в пpozpaмi dля вnopяОкyвaнHя Знaчeнь eлeмeнmiв oОнoвuмipнoеo мacuвy? 3 Якi цuклu вuкopucmoвуюmьcя в пpoepaмi упopяdкyвaння aнaчeнь eлeмeнmiв rnaсuвy_вKлaфнi чu пoanidвнi? Пoяcнimь cвoю вidпoвidь. 4 ?aпuшimь пpoеpavу, щo peaлiзye aлzopumw впopяdкувaння eлeмeнmiв odнoвuмipнoeo llacuву мemodoм вu6opy. 5 Якuм чulloM вuKopucmoвyemься Пo|uyк мiнiмaльнoeo (aбo мaкcuмaльнoеo) eлeмeнma Macuвy dля Йoеo yпopяdкувaння мemodoм вuбopу? 6 Чuм вidpiзняrmьcя aлeopumм впopяОкувaнHя lHaчeHь eлeмeнmiв Macuвy зa ыpocmaнHя|v, зa cпadaнням мemodoм вuбopу? ma 7 ?anutuimь Пpoepawу, щo peaлiзус aлеopumM вnopяОкувaння eлeмeнmie odнoвuмipнoeo Macuву мemodoм o6мiну. 8 ПoяQнimь aлeopumM впopяdкувaння eлeмeнmiв odнoвuмipнoeo Macuву lЙemodoм oбмiну. 9 3aпuшimь npozpavу, щo peaлiзус aлeopumу' впopяdкувaння eлeмeнmiв odнoвuмipнoro м'acuву мemodoм вкnючeння. 10 Haвedimь пpuклad odнoвuмipнoao Macuвy i пoяcнimь пoкpoкoвo poбo. mу aлеopumму, Йoeo впopяОкувaння мemodoм вКлючeння. 35. Пpaкmuчнa poбoma KBПopяdt<увaння ma6лuчнuх вeлuч|lн,,. Зa нaвeдeним сцeнapiем викoнaйте зaBдaнняпo стBopeнню тa IIaлaгoд)кеtIнIo aлгopиTмiв тa rrpoГpaМBпopядкyвaння тaбличниx веЛиЧин. l) Buзначumu кiлькicmь i munu вхidнuх dанuх вidnoвidнo do уЛ'oвu заdачi. 2 Buзначumu кiлькicmь i munu вuхidнuх dанuх вidnoвidнo do заdачi. уJ||oвu , oдtloгo. oбидвa викopисТoByюТЬ ,ДBa BкJIa.цениx цикJIa ТиПy foг...to...do. Тoмy кiлькiсть Bикoнyвaниx ПoBТopel{ьпpи викoнaннi цих циклiв зaЛежиTЬ вiд кiлькoстi елементiв. Tpетiй €UIгopитМ с}ЛГг€- ЗaвдaЕня для дaнoТ пpaктиvнoi poбoти нaведенi y <Збipникy вIIpaв тa y зaдaч з алгopитмiзaЦiТ та пpoгpaMyвaння>} poздiлi <Bпopядкрaння t44 145 тaбличниx BеличиtI>
  • 75. ,1, I 3) Buзначumu лtemod вnopяdкування mаблuчнoi, веJьuчuнu, noбуdуваmu м amel,tаmuнну odeль. м 4) Buзначumu нeoбхidнicmь ввedeння npoлtiэюнuх dанuх, tх кiлькicmь mа rnunu. 5) Poзpoбumu cлoвecнuй onuc uleopumJу'у' б) Buзначumu nocлidoвнicmь ввеdенняnoчаmкoв|Jхmа вuвedeння pеЗульmуючuх dанuх 3 вuкopucmання.fur вidпoвiёнuх кo.менmаpiв i ф opл'tаrпува|1,|я. 7) Buзначumu кopeкmнicmь вuкopucmання noслidoвнuх mсt вклаdeнuх noвmopень' Зaсmocуванttя poЗaа]tуЭIcень dля вnopя dкування лtаcшвi в. 8) oбrpунmуваmu вu6ip меmodа вnopяdкування mаблuчнoi. вeлuчuнuвidпoвidнo do умoвu заdачi. 9) З аnucаmu аJlaopumlуt вoю npozpсIЛ|у l||o всIння. I0)Hабpаmu mекcm npoapа'fu|u, вu|сopucmoвуючu cepedoвuщe npozpа.fo'уван|tя,mа вuкoнаmu налаzodэюення npozpаJу|u, вunpа вuвutu с uнmакc uчнi noмшпкu. I I) B uкoнаmu npo2pсIJу|у, dеomувавuьucuc mеJу'у еcmi в. ni m 12) Pеалiзуваmu iнtl,ti ваpiанmu вuкopuсmаннЯ лцernodiв вnopяdкуваннялцаcuвiвmа npoаналiзуваmu iх щodo кiлькocmi вuкoнуванuх diй dля piзнuх noчаmкoвшсdанuх. 36. TeмamuчHa amфmaфя з meшu <Ta6tтuчнiвeII.lчuH.l'' .Цлявикoнaннятемaтичнoi aтестaцii неoбxiднo: 3l|а|flu . пoHяття тaбличниx . вeличи}I' ix oпис МoBoю пpoгpaмyBaн}Iя Пaскаль, пoняття iндексy Мaсивy; . oз}IaчeIIня oднoвимipl{иx тa двoвимipниx мaсивiв тa вiдмiннiсть мiж IIими; о спoсoби BBедеIIнятa Bиведeння елементiв мaсиBy; . пpиI{ципи oбpoбки елемeнтiв Мaсивy; o вiдмiннiсть poбoти з oдI{oBиМipними тa двoвимip}Iими МaсиBaМи: . aлгopитIvlи зIlaxoд)кeННЯ cуМI4 тa дoбщкy eлeмeнтiв o.ц}loBимipнoгo тa двoвимipнoгo мaсивiв; . €UIгopитМи пoшiyкy елементiв з дeякoro влaстивiстю тa ix кiлькiсть: r46 . меToди Bпoря.цкyBaн}Iя eлeМeнтiв мaсивy; влсima o oписyBaти МoBoю пpoгpaмyвaння oдtloвимipнi тa двoвимipнi tllacИBуli о poзв'язyвaти зaдaчi з викopистaнHяМBBeдeння,oбpoбки тa виведeнняeлeментiв МacуIBУ i . викopистoвyвaти piзнi меToди Bпopядкyвaння елементiв oднoвимipнoгo мaсивy; о aнaлiзyвaтиaJlгopитмитa Тхpeaлiзaцiю y виглядi пpoгpaми з викopистaнням мaсивiв Pядкoвi вeличини 37. Bкaзiвкu i фуtilцiionpaщoвaн,]я pяdltо,вuxвeIIIlчu't. 3 pядкoвимиBелиЧинaми в)кeМaлиспpaBy. ми Teпep дaвailтe симвoлiв. I пo.циBиMoся ниx iншими oЧимa. Aджe цe },laсиBи Ha дiйснo, зaмiсть Зaписy str: string Moжнa зaпиоaтиstr: array[1..255] of сhar. Haйoчeвиднirпaвiдмiннiсть в циx зaписaх пoлягa€ B ToМy, щo B пrplxoМy Bипaдкy ви зMo)кетeвBести тrкст oдним pядкoм' a в дpyгoMy _ лиIlIепo oднiй лiтеpi. .(aвaйте зaглибимoсяy свiт pядкoBиx BeлиЧиIIi .цiзнaсмoся бaгaтo кopиснoгo. Haпpиклaд, якщo Baм нaпеpед вiдoмa пpиблизнa pя.цкa' який бyле введeнийкopистрa.rем пiд дoBжинaсиМBoлЬнoгo To чaс BиКoнaнняIIрoгpaNIи, мoжнa тип string Дeщo oбмeжити: string[n],Дe n - бyль-якеЧислoB Ме)кaх|.,255. B цьoмy paзi пiд тaкy змiннy бyлe вiлвeлeнo стiльки бaйтiв, якoю e дoB}I(инa змiннoi. описaнoТ Зayвaжтe,Щo тип stringe пpoстиМтиItoМ'a в)кетип string[n]_ стрyкTypoBalrиМ. Haспpавдi pядкoвi Beличи}lиМaютЬ нa oдиI{симвoл бiльrшe, нiж для ниx вiдве.цено бaйтiв, тoбтo мaксим€ r ль}Io256 симвoлiв. y Taм мiститься Bесь секpeт кpиеTЬся симвoлi з нoмеpoМ0 (str[O]). iнфоpмauiя Пpo сПpaB)кнlо кiлькiстЬ Bведениx симвoлiв pялкoвoi BеличиtIи. writе (ord(str[0])) Bикoнaйтетaкy oПеpaцiro t47
  • 76. i oтpимaетe iнфopмaцiю пpo те, скiльки симвoлiв B pядкy бyлo ввeденo. BелиЧиниМo)кнaдiстaтися тaк .(o oкpeмих симвoлiв pя.Цкoвoi сaмo' як i дo елeмeнтiв oднoвимipнoгo МaсиBy' Bк€BaBIIIи пopяд. кoвий нoMеpнeoбxiднoгo сиМвoЛy.Haпpиклaд,якщo бyлa викoнaнa oпepaцiяsfr:='алгoритМ', str[4]='6'. тo Bизнaчимo oпеpaцii IIaдpядкoBиМиBeличиHaми. 1чеnлeння' I{я oпеpaцiя дoзBoля€ пoсд}Iyвaти дeкiлькa Pядкoвиx Beличинi пoзнaчaстьсясимвoЛoм (<+>. нaBедeмo пpикJIaди: sЕ1:='aлгopиTМ'str2:='нaйкpaщиfi '; ; sffl+' '+stг2ф 'aлгopитмнaйкpaщий'; stг2+''+strl ф 'нaйкpaщийалгopитм'. Iropiвняння. oскiльки всi симвoли кoдyloться свoiми IIopядкoBиMи lloмеpaми' якi ще I{.BиBaють ASCII-кoдaMи' To Pя,Цки йoжнa пopiвнювaти. Пpи цьoМy 6УдУть с{Ioчaткy пopiвнIовaтися пеprшi сиМBoлиPядкiв,пoтiм дpщi i т.д. Haпpиклaд: 'Aлгopитм' < 'aпгopитм', oскiльки спoчaTкy йдyгь великi лiтеpи,a пoтiм мaлi; 'аlгoplгпи' > 'алгo', oскilъlс,I 'p'>'': заJП,flIпсc pяжЬ тa ik дoвxошпr I{e гp.lIоIЬ нiя<oi рлi, кoд бyд-кoгo симBoJIy з:lBжД,I бirьIше кoдl <mopoхсIьоro мiсця>>; знaчeння0. Haпpиклaд,pos('a',s)=l пpи S='alhoritm';pos(S1,S)-4 пpи S='Мy program',$l='pro$ram'. 3. Haстyпнa фyнкцiя дaсть тoй caмиЙ ефeкт, щo й oпеpaцiя зчеплeння: pядкoвиxвелиvин>), сonсat(<списoк де сIIисoк pядкoBиx BeЛиЧин _ це BeЛичини' зIIaчеIlня якиx бyлщь зчeпленi. Peзyльтaт Bикoнaння _ змiннa типy string. Haпpиклaд, сonсat(S,' ',Sl1='ц, program'пpи S='Мy', Sl='program'. 4. Якщo вaм неoбxiднo видiлити дeякий фpaгмeнт pя.Цкoвoi Beличини'скopистaйтесяфyнкцiеto сopy(S' start, [€n), _ pядкoBa велI{чI{нa, якoi видiлясться фpaгмeнт, start _ цiлe з де s знaчeння. щo Bизнaчaе пoчaткoBy пoзицiю фpaгменry, якlаЙ видiляеться, I-Еn - цiле знaчення' щo Bизнaчaс kiлькiсть симвoлiв TИIIу цiсi пpoцедypи € BeлиЧkIнa фpaгменry. Pезyльтaтoм BикoнaнI{я БyДьтe рaжнi: якщo видiлясте фpaгмrнт ЛиIIIе B oдин string. не симBoл, To pезyльTaтoм бyлe зIIaченIIя Tипy сhaг, a Bсе oднo program'пpи S='Мy program'. stгing! Пpиклaд:сopy(S,4,7)=' 5. Пepехoлимo дo знaйoмствa з Пpoцедypaми.Пеpшoю бyле пpoцедypa' щo дoзBoля€ BиЛ)пIиТиДeякиil фpaгмент з pядкoвoi BeЛичи}Iи. 'aпгopитМ' <> 'alhoritm', oскiльки ASCII-кoди лaтинськиx бyкв та бyкв киpилицipiзнi; 'aЛг'='aЛг'. Poзглянeмo фyнкцii Ta пpoце.цypи, якi iснyють y Пaскaлi для poбoти з pядкoBимиBeличинaми. l. Пpo дoBжи}rypядкoвoi BеЛиЧини BaМ дoпoМoже.цiзнaтися сTaндaртнaфyн*цiя Пaскaпя, щo мaс тaкиilвиrляД: Lеngth(S),де s - pядкoBaBrличинa. Peзyльтaтoмвикoнaння uiсi фyнкuii бyле uiле чисЛo типy byte. Haпpиклaд, Lеngth('alhoгitm' ; Length(S)=$пpи S='alhoritm'. )=$ 2' !ля BизHaчеHIIЯ мiсцезнaxoдже[IIIяtllyкaнoгo фpaгменry pядкoвoiBеличини Мo)кнa скopисTaTися фyнкцiею pos (S_find, S), де S_find - шукaниЙ пiдpядoк, S _ pядoк. Pезyльтaт BикoнaнI{я типу bytе. Я*щo цiсТ фyнкuii _ в,eЛИЧИHa шyкaнoгo пiдpядкa B pядкy не iснyе, тo фyнкцiя pos ПoBеpтaс dеlеte(S, Start,l,еn), _ фpaгмент, start дr s _ pядкoвa вeличинa, з якoi Bил}пIaеTься пopядкoвий lroмep пrpIIIoгo сиМBoлa фpaгменry, щo Bилу{aсTЬся' lэn _ кiлькiсть симвoлiв фpaгменry, щo BилуIa€ться. Haве.цeмo пpи Bикoнaннi пpoцедypи dеlеte(S,4,4)пpи S='Мy nеw ПpикJIaд: S='My program'. program' бyлe oтpимaнo pезyлЬTaT BстaBиTифpaгмент У Pялкoвy Beличиtly' 6. Aна.пoгiчнo Мo)кнa ,Цляцьoгo iснyе пpoцeдypa insеrt(S, S_nеw, Start), S_new _ s _ pядкoBa Bеличинa' фpaгмент, щo BсTaBляеться, де pЯдкoBa BеЛичинa' в якy BстaBЛЯеТЬcя фpaгмент i де oтpимyeться Start - пopядкoвий нoМеp сиМBoЛaв зaдaнiй всTaBЛс}tня, pезyЛЬTaт pядксlвiй велининi, пiсля якoгo BсTaBЛясTЬся фpaгмент. Пpиклaд: insert(S,Sl,3) пpи S='nеw ', S1='Мy program' Bикoнaнняllpoцедypи prзyлЬTaт Sl='My nеw program'; BикoI{aннЯпpoцедypи Дaс^ГЬ S1='Мy insеrt('nеw ',s1,3) пpи S1='Мy program'дaстЬ pезyльтaт nеw progr:rm'. 148 r49
  • 77. ir I 7' lo.,ать чaстo зyсTpiчaсться cllтуaцiя,кoли pядкoB i вeличlанlц мaIoTЬчислoвий BиглЯд i виникaе нeoбxiднiсть llepeтBopeння ii y числoвийтип. B цьoмy Baм дoпoмoжeпpoцедyрa val (S, V, ЕпCode), де S - pядкo'a вeJIичинa'V _ величин.aчислoвогo Типy' якиЙ s|4 oviкyeте oдepжaти' ЕrrCodе - змiннa, знaЧeннЯякoi дopiвнloс кoдy BикoIIaHня пpoцедypи (ЕrrСode=O пеpeтвope}rня вiдбУлocя yспiпrнo). У якoстi пpикJlaдyмoх(нaнaBeсти тaкиЙ: пiсля викoнaння пpoцeдypиval (S,V,ЕrrCode)цpи S='|2З4, 6yлe oтpимaнo У=1234, ЕrrCode=0. 8. 3вopoтнaпpoцед}paдo val BиглядarTaким чиIloМ str(V, S), дe v - BeЛИЧуIHa числoBoгo типy' знaчeння якoi пеpeтBoplоrTЬcя У pядкoвий вигляд, S - peзyльTaт пеpeтBopeннЯpядкoBoгo тиПy. Пpиклaд: викol{allняпpoцедypи stг( 1234,.S) пpизBeдe дo oTpиМaI{IIя pезyльтaтyS='|2З4'i Bикoнaнняпpoцедypи stг(V,S) ПpИ У=|2.З4 ПpизBeдe oтpимalrня pезyльTaтy 1.2340000000Е+0 дo S=' l' Пumaння ёля caмoкo'rmpoл t<, : 1 Чuм noяcнumu щo pяОкoвi me, вeлuчuнu пodiбнido мacuвiв? 2 Якa Maкcuлi'aльHa doвlкuнacuMвoльн|tх мaсuвiв? 3 Дe знaxadumьcя iнфopмaфя пpo кiлькicmь зadaнuх eлeпeнmiв cuMвoльHoeo pяdкa? 4 Якi oпepaцiidoзвoлeнi pяdкoвuмu нad вeлuчuнaмu? 5 Haзвimь функцiti Оля poбomu э pяdкoвuмu вeлuчuнaMu ma ПpuaнaчeннЯ napaмompiв. i 6 Haзвimь пpoцedуpu dля poбomu з pяdкoвuмu oeлuчuнaMu ma пpшнaчeння пapaмempiв. iХ HE Пpи склaдaнй тa pеалiзaцiТaл.opитмiв з p"дкoBиMи BеЛичинa- |у1И МoжеTeзyсщiтись з T|4|v|И сaМиMи ПoМилкaМи, BИ }I( Щo i пpи poбoтi з мaсиBaМи. Toмy звepтaйтесь дo aнaлiзy пoМилoк Y пollepeднЬoмy рoздiлi. Якщo pезyлЬтaт фyнкцii сopy пpисBoю€ T Ьсязмiннiй типy сhaг, тo бyлe BиBrдeнo пoвi.цoмленl{Я пpo пoМилкy щoдo неспiвпaтипiв .цaнiчя Епor 26: Type mismatсh. 150 pяdKoвuх з aлeopumшiв вuкopucmaннЯлt 38.CклaОaHня вeлuчuн Haйтипoвiпlим IIpикJIaдoм викopистaння pядкoвиx BeлиЧиIl с aнaлiз oкpeмиx симвoлiв B ниx з Mетoю ix зaмiни, Bилr{еrr}Iя' BстaBлeння тoщo. Пpuюlаd l. Hеxaй нaМ зaдaнo текст' B якoМy неoбxiдно всi poсiйсiкi бyквi 'ьI' зaмiнити нa щpaiнськi 'i'. Cyгь aлгopитмy бyле )к IIoJIягaти B IIoшIyку в тeкстi uеpгoвoi бщви 'ьl' i зaмiци Тi нa цЬoмy в тeкстi ми Мo)к€Ir,to мiсцi нa бy*вy 'i'. oскiльки дo симBoлiв зBеpтaтися, як дo елeментiв МaсиBy' тo zulгopитм-пpoгрaмa бyде BигJIядaти тaкиn,IчинoМ: progгam сhange; uses сrt; vаr S : string; i : integer; begin write ('Bвeдiть тексг:'); rcadln(S); for i:-1 to length(S)do S[!l:='i'; {зaмiнaсимволy } if S[i]='51'thеn writеln ('3aмiненийтeкст: ',S); геpеat until KеyPrеssеd еnd. Tипy String BBOдяTЬся дoпol,lo3a Cлiд нaгaдaти' щo знaчеI{ня Toгo' зa oдин paз Мo)ке гoю пpoцeдypиRеadln, a не Rеad. Бiльrше бyги введeнийлиure oдиIrpядoк. Bикopис. .(ля вилyнення i Bстaвле}tltяфpaгмeнтiв текстy Start, Len) тa inseгt(S, тoByютЬся вiдпoвiднi пpoцeдypи dеletе(S, S_new,Start). тoй Зaпиrшeмо сaмий € r лгopиTМзaмiни бщв в текстi з Bикopис. тaнI{яМ циx пpoцедyp: for i:-1 to lеngth(S)do if S[i]='ьl' thеn brgin i, dеlеtе(S, 1); 151
  • 78. insегt(S,'i,, i) еnd; 3ayвaжте, щo цiкaвa cитуaцiя зyстpiлaся B цЬoмy фpaгментi пpoгpaми:'i' oзнaчaскoнкpетнийсиМBoл'a i _ iм'я змiннoi! Зpoзрliлo, щo пepший вapiaнi aJlгopитМy мae пepeBaги, oскiльки зaмiнa ПpoBoдилaся<<зa мiсЦeM>>, в ДpyГoмy вapiaнтi a BикopистoBУв'aJIу|cЬ викJIики пpoце.цyp'щo зaбиpaс зaiцвийчaс нa викoнaння пpoгpaми. Пpoueдри insеrt тa dеlеtе BapToBикopисToвyвaти тoдi, кoли змiнюeться дoв)кинa тeкстy. Haпpиклaд, кoли тpeбaзaмiнити'...' нa '.'. Ilpaшаd 2. Poзглянeмo щиКIIaД iUIгoрI,rTh{y' пошi дoзвoляс ЗnIII4caтИ (нaпpиклaд,'аЛгopиTМ'ф' мтиpoглa'). зaдaне слoBoнaвпulки Cпoнaткy нaвeдемoтeксT пpoгpaМи'щo peалiзyецeй aлгopитм, a пoтiм пpoaналiзyсмoйoго. progгam on_thе-сontrary; usеsсrt; vaг S,S_new : string; i : intеger; bеgin writeln (' Bведiть слoвo:' ); rеаdln(S); "; S_new:= foг i:_l to lеngth(S)do S_nеw:=S[i]+S_nеw; {дoписрaння сиМBoлyлiвop1"r} rrritеln (,Cлoвo нaBпaки:',S-nеw); геpеat until KеyPrеssed еnd. aниЙ aЛгopитМ с свoсpiдниM ПриклaдoМ zulгopитМy Haкoпичeн}Iя сyпlи. Aле y Bипaдкy poбoти з pЯдкoBимИ в,eЛvIЧИHaМИ нaкoПичеHllЯ cу7rИ ПepeTBoplor.ГЬcЯ У <Дoпис).Balrня>> симвoлiв в кiнeць pЯдкa. Bи пaм'ятaстe' щo .цЛяHaкoПичeHня сyl!!и змiннa, .цe вiдбyвaеться сylиyвa}rня'пoBиннa Мaти ПoчaТкoвe знaчення 0. Якщo пеpефpaзyвaти це твеp.ц}кеннЯ, скaзaBulи' щo Пеpе.ц пoЧaткoМ сyN{yBarrIIяIIaшa скpиIrЬкa ПoBиI{нa буи <<Пopo)кIlЬolo>>, Toбтo тaм нiчoгo не ПoBин}lo бщи, тo в теpмiнaх pЯДкoBиx BeличиII це oзнaчaтиМr' щo Ira ПoчaTкy фopмyвaння pядкoвoi BелиЧи1Iи вiдпoвiднa змiннa не пoBиннa мiстити нiякoгo Tексry. oпеpaтop пpисBoIoBaннЯ S_nеw:= '' викoнyс сaМеTaкy poJIь. t52 ,(o pенi, якщo oпеpaтop S_nеw:=S[i]+S-nеw зaмiнити IIa oпеpaтop S-nеw:=S-nеw+ s[i], тo B peзyльтaтi викoнaнIrяпpoГpaми текст нe змiниться. зaДaнgtа Пpulслad 3. Bapтo poзгляIlyп{ щe oдиII IIpикJIaдpoбoти з pядкoBими BeлиЧинaми. Ha цeй pa:} цe бy.Це мaсив pядкoBиx Beличин. oтже, poзгляIleмo ilлгopитм-пpoгpaмy' якa зa вBеденим списзa виBoдитьiх в yпopя,ЦкoBaнoМy aлфaвiтoмвиглядi. кoм pя,Цкiв progrаm Alphabеtizе; uses сrt var ofstring; : arгay[1..100] S : stгing; str : integег; ij,n begin кirькicгь слЬ: '); writе ('Bве.ц,iть rеаdln (n); слoвa:' wгitеln (' Bве.цiть ); for i:=1to n do геаdln(S[i]); foг i:-l to n do bеgin k=i; for j:=2to n do thеn if (S[i]<S[i]) bеgin I sfi:=s6l; I k=; еnd; S[j]:=sfr; S[i]:=S[i]; sш:=S[i]; еnd: writеln ('Списoк слiв зa aлфaвiтoм:'); for i:=1to n do wгitеln(S[i]); геpеat until KeyPгеssеd еnd. 153
  • 79. Ha пpиклaдi цьoгo iшIгopитмyми бaнимo, щo yпopя.цкyBaння мo)Iшa зaстoсoByBaTи нe ЛиIЦe.цJIя числoвиx Bеличин. П u m aння dля ca мoкo'] mpoл к, : 1 B нoму пoляrao oсoблuвicmь вuKopucmaння dля pяdкoвux вeлuчuн p cmaнОa mн ux npoцedyp ввeОe ня ? н 2 B uoму oсoблuвicmь зaмiнu cuмвoлiв y зadaнoмy meкcmi? 3 Чuм вidpiзняюmьcя oпepaцii S_new:=S[i]+S-new ma S_new:=S-new+ S[i]? odrpунmуЙme cвoю вidпoеidь. 4 Haвedimь влacнuЙ пpuклad rlpoapaMu dля podomu з pяdкoвuмu вeлuчuнaмu. 39. ПpaкmuчHa poбoma KoIтPaцювaHня вeлuчIIн,, pяdl<oвuх Зa нaвoдeниM сцrнapiсм викoI{aйTе зaвдal{ня стBoпo peнню тa нaлaгoджel{ню aлгopитмiв тa пpoгpaм з викopисfaнIIяМ pядкoB Иx B e JIИЧtLII,. 1) Buзначumu кiлькicmь i muni вхidнuх Оанuх вiilnoвidнo do заdачi. у]||oвu 2) Buзначumu кiлькicmь i rnunu вuхiDнuх dанuх вidnoвidнo do заdачi. уJу|oвu 3) Buзначumu mun аЛzopumlv'у абo йozo фpаzлlенmiв, noбуdуваmuмаm емаmuнну мo d ель. 4) Bшзначumu нeoбхiёнicmь ввedeння npoлtiэюнuх dанuх, . ii кiлькicrnь mа munu. 5) Poзpoflumu cлoвeснuй onuc аJleopumму. 6) Buзначurnш onеpацii. наd pяdкoвuмu вeлuчuнсlJv'|J,якi нeo6хiОнo lаcmocуваmu dля cmвopeння алеopumму вidnoвidнo do умoвu заdачi. "7) Buзначumu nocлidoвнicmь ввedeнняnoчаmкoвuх mа вuвedeння peЗульmуючuх dанuх З вuкopucmанняtуI вidnoвidнuх кoJу'енmа. piв i фopмаmування. 8) Buзначumu кopeкmнicmь вuкopucmання nocлidoвнuх mсl вклаdенuхpoЗaаJlуЭtсень noвmopень. i 9) З аnucаmu аЛe opum],| вoю npozpсl,]у|у JуIo вання' 8 Зaвдaння для дaнoi пpaктиrнoi poбoти нaведенi y <3бipникy вIIpaв тa зa.цaч з aпгopитмiзaцii тa пpoгpaМyBal{I{я> poздiлi ..oпpaцювaння y pЯдкoвих BeЛИЧvl|I>> t54 I0) Hа6pаmu meкcrn npolpам|u, вuкopucmoвуючu cepedoвuщe npozpалNуваItня, |nа вuкoнаmш нсulаzodЭreння npozpаJ'|u, вuip авuвtltu сuнmакcuчнt no*tuлкu. mеcmiв. сucmeJу'у nideomувавvotu Buкoнаrnu npoepсIJ|rу, IL) вuкopucmання noвmopеl'ь, |2)Peалiзуваmu iнtlli ваpiанmш cmанDа. вeлuчuнаJу|u, poЗlалуilceнь, onepацiй наd pяdкoвuJ|4u prnнuх npoцedуp i функцiй dля.вuкoнання cфopJv|уЛьoванoi, заdачi mа npoаналiзуваrпulх щodo кiлькocmi вuкoнуванuхdiй. 40.TeмamuчнaamecmaфяIзmeмu "Йdкoвi вeлuч|lнu', нeoбхiднo: aтeстaцii тeмaтичнoТ .{лявикoнaння 3r!!!ц. o oписpядкoвиx пpolpaмyвal{ня; змiнниxlvroвoю pядкoвиx вeличин; о фyнкuiiтa пpoцeдypи oбpoбки о oснoвнi aJlгopитми oбpoбки pядкoвиx вeличиtl; вмima pя.Цкoвi Beличини; . oписyBaти мoBoюпpoгpaмyвa}Iня o poзв'язрaти зaдaчi з викopистaнIlям BBедеIIня, oбpoбки тa BиBeдення pядкoBиx BeлиЧин; o aналiзyвaти aлгopl{тми тa ix peалiзaцiro y виглядi пpoгpaми з виI(opистaнIrям pядкoBиx велиЧиII' 3вepнeннядo пpoцeдypi фyнкцiй 41' ПoняmmЯ ocнoвHoeo ma doПorniхснoеo aлеopumму. Пi dпpoеpa Mu Лpкаtlьнi mа zлoбаllьнi злtiннi. Фopцаltьнi mа Йа,кnuчнi nаoамemoш тa Пoпеpедньoз пpoцедypaми фyнкuiямими мaли спpaвy,i не тoМy, щo вiдoмi нaм пpoцeДУpИTa paз. Biлмiннiсть лишrе B фyнкuiТ нaписaB хтoсь iнший, a B цЬoмy poздiлi Bи мo)кeтeнaвписaти ii сaмi. Ч'|T|4cЯ цe Кoжнa пpoцeдypaaбo фyнкuiя, тoбтo дoпoмiжний aJIгopитM, мiнiпpoгpaмa B пpoгpaмi. B нiй дiють всi в € <<деp)кaBадеp:кaвi>>, пpoгpaмi. Cтpyктypa пpoцедyp тa зaкoни' щo пpиТaманнi бy.Ць-якiй тoбтo в ниx мoaбсoлютнo тaкa сaмa, як i всiеi llpoгpal,lи' фyнкцiй Ta мiтoк, типiв, змiнниx, пpoцедyp жyгь бyги свoi poздiли кotlсТaнт, 155
  • 80. фy'*цi*. Але цiкaвo: щo oПисaнo в пpoцедypaxтa фyнкцiяx, "." '", дoстyпIro лиIIIецим пpoцедypaм тa фyнкцiям i не пotuиplo€TЬся нa Bсю Ilpoгpaмy.Лoгiннo цi мoжливoстi нaзвaтилoк!UIьtIиl,tи. . A oт всi мoжливoстi, щo пеpедбaненi в oснoвнiй пpoгpaмi, дoстyпнi як oснoвцiй пpoгpaмi, тaк i всiм пpoцeдypaмтa фyrкцiям, щo в нiй ствopeнi. oтxсе, тol{y вoIIиllilзиBaютьсяглoбaгrьними. Bсе скaзaнeвище ПoIIIиplo€тЬсяB пеpII]y чеpry нa змiннi. Лoкаttьнuлt|l нсlлuваюmьcя злliннi, щo onuсанi в d onoмiэtcнuх сUIl opum]у'сlх.. ба.tlьнuлt||Hалuваюmьcя Глo змiннi, щo onucанi в octloвнon4уалzopumlvi' I{iкaвий сaм пpoцrс BикoнaнIIя пpoцrдyp тa фyнкuiй' Bсiм змiнним, щo oписaнi B I{иx,мiсце в пaм'ятi вiдвoдиться тiльки пiд чaс Bикoнaнняциx пpoцедyp абo фyнкцiй. Пiсля Toгo' як Пpoцед}pa aбo фyнкuiя вiдпpaцюс, змiннi знищyютЬся, тoбтo пaм,яТь вiд ниx вивiльняеться.I{e }IaBo.циTь дрlliy, щo в piзниx llpoцедypax тa нa oднiсi i тiеi ж пpoгpaМи'тa й у сaмiй цiй пpoгpaмi Мo)кyTь фyнкцiяx BикopистoвУв'aTИcЯ oднaкoвi iдентифiкaтopи, i змiннi, щo iм вiдпoвiдaroть,нe бy.пyгьзaвarкaти oднi oДним. oсrшвrвщоrрarпa A'в'C A'B'C - rгшбаrьrtiзпiхкi; пiшщогрaшa l х'Y пiшrроrрalв 2 MN пilшщограr'в З К'L Х,Y -лшнarьнi зшirсri шrл пirптpограrпrl тa ттшбaльнi зжiнtli шlя пiдтrpогрar't 2,З, МЛ -.тшmвrьrtiзшiтвtiшlл пiшщогрalм2; К,L -лшrсaлькiзжirtнiшlя пiшщогрarпrЗ, Mал"26 Cхемaтичнo глoбальнi тa лoкaльнi змiннi зoбpaженi нa мaл.26. Bи вrке знarTе' щo дЛя тoгo, aби BикJIикaTи нa Bикoнaн}Iя бiльцriсть Пpoцeдyр ни фyнкuiй, неoбхiднo ЗaДaTИпевнi пapaмeтpи. I{iлкoм зpозрliлo, щo кo)кнa з циx ПpoцеДyp Ta фyнкцiй tIoBиIIHa якиМoсь Чи}IoМ <пpийняти>> цi знaчeння, тoбтo неoбxiднo пеpедбauити ix oдеpжaння. Пapамempu, якi nеpеdаюmbcя у npoцеdуpу нu функцilo npu il, вuклuКу, I|аЗuвсlюmьcяфакmuчнuJ|лu. 156 Паpаl'lempu, щo вкaЗуюmьcя в lсtaoЛoвl<уnpoцedуpu абo Знсlчень функцiI.i якi npu i1.вuкoнаннiнабуваюmь nаpамеmpiв' наЗl|ваюmьcя фopлlальншмu. факmuuнuх Кiлькiсiь фaктиuниx i фopмальниx пapaМётpiв пpи poбoтi з oднiсtо i тiею ж сaMolo Пpoцедyporouи фyнкuiеro пoвиннa бyги oкpiм цЬoгo, пoвиннi спiвпaдaти типи циx пapaмeтpiв o.цнaкoBolo. тa ix змiст. Tunu nidпoozoа.ll,l Чaстo дeяку пoслiдoвнiсть дiй слiд IIoBтopити в дeкiлькox зyсилЬ нa ix кoпiloBaнI{я'B мiсцяx пpoгpaми. Щoб не BДтpaЧaТИ пepедбaченiзaсoби для opгaнiзauiТ бaгaтьoх мoвaх пpoГpa}ryBaння пiдпpoгpaм. Taким ЧиItoм пpoгpaмiст oтpиМyс мoжливiсть пpисвoiти пoслiдoвнoстi oпеpaтopiвдeяке iм'я i викopистoByвaтице iй'я в якocтi скopoченoгo зaписy в тиx мiсцяx' дr зyстpiчaеться вiдпoвiднa пoслiдoвнiсть дiй. mеКcmуnpQzpал|u Пidnpozpалtа_ це заciб cкopoненHя / mа nidвuщення11.cmpукmуpoванoсmi. i5 Пiдпpoгpaмa € oдниМ iз бaгaтьox фyнлaментальниxiнстpyIиентiв, який вПлиBaс нa сTиJIЬ'якiсть, нaдiйнiсть poзpoбки пpoгpaМи. Bикopистaння пiдпpoгpaм 3HaчHo пiдвищyс зpoзyпliлiсть всiеi пpoгpaми, oсoбливo,якщo iТ TексTскJIaднийi гpoмiздкий. Подекyди пiлпpoгpaмy нaвiть тодi, кoли вонa prкoмeндyrться opгaнiзoByBaTи oдин pаз. Тaким чинoМ пiдпpoгpaмa r IIIиpoкo Я викJIикaстЬс I|у|IJJ) як зaсoбoм aбсщaгyвaння: Тi мoжнa poзгЛя.цaTи BикopистoByBaниМ <<.topний ящик>), щo зaбезпeuyс BикoI{aння деякoТ aбстpaктнoТ Bипaдкy не цiкaвить,як з.цiйснroеться Кopистрaua B цЬoI,Iy фyнкuiТ. r Ba}I(ЛиBиMЛиIIIеTe' щo (якi лii) Bикoнy€ ця .Цляньoгo ""no"u"'". пiдпpoгpaмa. Пaскaль вiднoситься дo Tиx МoB IIpoГpaмyBaнIIя'B якиx I-{ей фaкт poзpiзняtoтьдвa Tипи пiдпpoгpaм _ фyнкцii тa пpoце.цypи. не всiм МoвaМ.Haпpиклaд,мoBa ПpoгpaМyвaнПpиTaмaннийдалекo ня Ci не poзpiзняeфyнкцii Ta прoцедypи. Caме пpo вiдмiннiсть фyнкцiй Ta пpoце.цypi oсoбливoстi Тx Bикopистaння Пaскaлi ми пoгoвopимoда.пi. у Фyнкuii xapaктеpнi тиМ. lцo пiоля iх BикoнaI{ня o.цrр)кyстЬся лиtllе oдин pезyлЬTaТ. t57
  • 81. ЗаzальнuЙ вuzляdфункцii.: funсtion <iм'я функцii>(<cnucoк фopмальнuх nаpauempiв>): . <munpeЗульmamу>; ' <onucoвачаcmuнсt > bеgin <вaкoнувсl|tсl чаcmuнаабo miлo функцii> еnd,. oскiльки фyн*цi" е сaмoстiйнoю ПPогpaмнoю oдиI{ицelo B мe)кax oснoвнoi llрoгpaми' тo всi змiннi, якi з'являlоться в нiй, пoвиннi бщи oписaнi в цiй фyнкцii. I пoчинaетьсявсe з oписy фop. мzrлЬIlиxпapaмeтpiв _ NIЯ кoжI{oгo3 ниx пoвинeн бщи вкaзaний тип. oписoвa чaстинa мoжe мiстити poздiл змiнниx, нeoбxiднiсть в ЯКtIхЗ'Я",|'ЛacЯ пp.,Iствopeннi дaнoТфyнкuii (нaпpиклaд,лi.tильник цишIy) i нaявнiсть якиx y цiй фyнкцiТнe чиниТь нiякoгo впливy нa oснoвнy пpoГpaмy.Тe ж сaмe стoсyетьсяi всix iнlпиx poздiлiв. o.цнe,але дyх(eзнaчIrе, oбме)кеннЯНa.TИrШlпapaмe.гpiв, якi ми Мo)I(еМo пrpeдaвaти y фyнкцilo (a нaдaпi i в пpoцедypy) _ вoни мo)кyть бyги лишreзмiнними пpoстoгo типy. Toбтo пoки щo мaсI{Bи тa змiннi типy string[n],якi € стpyктypoвaними' Iv'иHе BикopистoBy. вaTимемo. Яким же Чи}loм pезyJlьтaт oбчислення фyнкцiТ пo.Ipaпить B oснoвнy пpогpaмy? .(ля цьoгo фyнкuiя пoBиннa мiстити oпepaTop пpисBoюBaння, якиil i викoнaе пepeсилaння peзyлЬтaтyB oснoвнy пpoгpaМy.Biн мaе тaкий зaraльниilBигляд: <iм'я фyнкцiii:=<виpaз>. 3ауваclceнняl Iм'я фyнкцii мoжe викopистoвУвaTИcяЛL.lЦIe ДIIя пpисвolоBaння йoмy .цeякoгoзI{aчeнняi не мoжe бpaти щасть в oбчислeнняx. Тoбтo зaпис my_fun:=my_fun+ I бyле спpийllяттаЙ пoмилкoвvlЙ' Спpaвa в тiм, щo викopистaнI{я як iменi фyнкцii y деякoмy виpaзiPoзЦiнtoсться спpoбa no"'op"o.o як звеpнeння цiеi фyнкцii. A як же 6уи в нaцIoМy дo випадкy?Пpoстo зaвeдiть Ще o.цнy лoк€ r jlЬнy змiннy, oбчислiть в нiй неoбxiднии pезyльTaT' a пoтiм зa дolloМoГoю oпeрaTopa пpисвoloвaння пеpедaйтe йoгo iмeнi фyнкцii. Заzальнuйвuzляdnpoцеdуpu: proсеduге <iм,я npoцedуp u>(<cnucoк фopмальнuх nаpаllempiв>); <onuсoвачаcn'uна> begin чаcmuнаабo miлo npoцеdуpu> <вuкot1vвсlна ,A 158 end,' Hеoбxiднo зpaзy )к зllзIlaчити, щo B зaгoлoBкy пpoцед)/pине пpoцeдyp tIи з BaМи [i Bк{lзyсTЬся тип. A це тoмy, щo зa дoпol,toгoю змoжel,Iooдpaзy знaxoдити i пepeдaвaти B oснoBl{y пpoгpaМy вidмiннiсmю дeкiлькa oбчислeниx знaчeнь. Цe i е ocнoвнoю npoцedуpвid функцiйIIoBеpнyги .Цля тoгo, шoб зpoзyrrliти, яким чиI{oM мoжнa B oсIloBнy пpoгpaмy' BBедeмo дBa нoBиx peзyJlЬтaти з пpoцrдypи Пoняття. Ilаpамеmpu.lначeння. Пpoстiure зa Bсe пoчaти з пpикJlaдy. pгoсеduге pгoba(x,y:integеr); bеgin x:-x+1; ):=!+1 еnd: bеgin b:=0; a:=0; proba(a,b); wгitеln(a,b); I{я пpoгpaмa нaдpyкy€ двa числa: 0 0. Poзбеpемoся .цетaльнiшreB цiй сиryaцiТ. вiдвoПiд чaс Bикoнaння Пpoце.цypи пapaМеТpaМ-зHaченttяM нoве мiсце в пaМ'ятi, тoбтo ствopюсться ix кoпiя. кyди пеpeДИ.ГЬcЯ нaд ниMи дaюTЬся вiдпoвiднi знaчeнIIя фaктиvниx пapaметpiв, poбoти пpoцеBикoнyIoTЬся дii, вказaнi в пpouелypi, i пiсrrя зaBеpluенI{,l a.ix знaЧенt{явiдпoвiдto BтpaчaютЬся. дypи всi цi змiннi знищyються' Toбтo, я<i знaчення NIя a тa b бyли зaдaнi перед зBеpнеI{HЯМ дo пiсля ii Bикoнa}Iня. прoцедypи, тaкиМи вoни i зaIIYгIIIИЛI4IЯ 159
  • 82. proba(a,b); writeln(a,b); Cxемaтичнo цe Bиглядaeтaк' Як нaмaл.27. Мш.2? y 3poзyмiлo, щo пapaмeтpaми-знaчe}Iнями вapтo кopисTyвaтиоя тиx Bипaдкax' кoли Пepедaютьсяy пpoцeдypy BeлI,IчиlIи, бyдщь якi бpaти щaсть в нiй y деякиx oбчислeнняx i якi пiсля пoвepнeЁня B oсtloBlly пpoгpaмy пoвиннi збepeгпl овoi пoчaткoвi знaчення. I щe oднa Barrt.llиBa дeTajlь. Пpu звеpнeннi do npoцedуpu rulpа]Иеmpал,I-ЗнаЧeнняJ|,| J.4oЭrснсl nepedава.mu cmалi вeлuчuнu. (proba(2'5)). Чoмy uе тaк BЕDкJIиBo, Ми зap:rз Haпpиклaд, пoбaчимо. Irаpаlllеtпpu.злliннi. Пapaмrгpи-змiннi нa вiдмiнy вiд пapaметpiв-знaненьпiсля викoнaння пpoЦeдypипoвеpTaютьтi знaчення,якi Boни oдеpжirлиB Пpoцедypi.Cпpaвa в тiм, щo пpи звepнeннi дo пpoцeдypи NIя HиIXнe стBopюються нoвi мiсця в пaм'ятi i вoни BикopистoByютьтi ж сaмi oблaстi пaм'ятi, якi вiдвeденi вiдпoвiдним фaктинним пapaМeTpaм. Toмy yсi змiни, якi вiдбyвaloTЬся нaд фopмaльними пapaмeTpaми, нaспpaвдi вiдбрaютьсЯ НaI ix фaктинними oбpaзaми. .{ля тoгo, щoб пapaметpи-змiннiвiдpiзняти вiд пapaметpiв-знaчень, ПеpедтaкиМи iдeнтифiкaтopaМи tзyeTься Bк€ слyхбoвe слoвo var. pгoсedure proba(x:intеgeг; vaг y: integег); begin x:=x+1;!:=!+1 еnd: bеgin a:=0; b:=0; 160 пpoгpaмa [aнa нaдpyкyс тaкi peзyль. тaти:0 1. 3oбpaзимo сxeмaтичIlo poбoтy пpoцeдypи з пapaмeTp{lми-змiнними (мaл.28). 3poбимo щe o.циI{ Мaтl.28 BисIIoBoк. Пpu звepненнido npoцеdуpunаpсIмempалц-зл,tiнншуt нe Л|oЭtс||а nеpеdаваmu 3начення cmшI'tхвaluчulr. I{е тoмy, щo ii знaчeIIня I{е МoжHa змiнloвaти! Мoжнa зaпpoпorryBaтg тaкиЙ виxiд з пoлo)I(еIIIlя: зpoбiть пpисвoюBaння ЗнaченI{я.стaлoi дeякiй змiннiй, a пoтiм викopистaйтe цЮ змltlнy пpи зBеpненнl дo пpoцrдypи. Haпpиклaд, b:=0; proba(0,b); П umaн ня dля ca мo кo']mpoл'o : 1 Якa вidмiннicmь мiж елodaльнuMu ma лoкaльHu'nu змiннuмu? 2 Якi пapawempu Haluвaюmься фaкmuннuмu, a якi фopмaльнuмu? 3 Щo вidбувarmься iз змiннuмu в naм'яmi Кoшп'юmepa пidчac вuloнaння npoцedуp i функцiЙ ma iX зaвepuleння? ,! Якuм чuнov cпiввidнocumьcя кiлькicmь ma mun фopмaльнuх i 5 6 7 I napaмempiв? фaкmuннuх llto нaзuвaсmьcя пidпpoep мoю? a Якi nepeвaеu скпadaннi npu пpoеpaм нadae вuкopucmaння пiОпpoepaм? Якi muпuпidпpoеpaм MoКemeнaзвamu? вu Якi muпu змiннux |'rlФKуmь вuкopucmoвувamucя якocmi пapaмempiв в пpoцedуp ma функцiЙ? 9 3aпuшimь зaеaльнuЙ вueляd функцf|' 10 Чu мo>куmьicнувamu функцii' в laeoлoвкy якuх нe вкaзaнi фopмaльнi пapaмempu? 11 Чuм вidpiзняюmься npoцedуpu вid функцiЙ? 3aпuшimь зaеaльнuЙ вueляd пpoцedypu. 12 Якa pidнuttqмisкпapaмempaмu.знaчeння|r'u napaMempaMu-змiннuмu? ma 13 Пoяcнimь, як вidбyвaemься poзnodiл пaм'яmi кoмп'юmepa dля пap aмe mpiв.зHaчeHь ma Пapa'nemp iв -змiнн ux. t6l
  • 83. 14 Чu мoжнa фopмaльнoMу пapalЙempy-змiннiЙ cmaвumu у вidпoвidнicmь cmallу вeлuнuну? Пoяcнimь cвoю вidпoвiОь. Якщo прoцедypи тa фyнкuii, нa якi € пoсилaння в iнцrиx пpoцeдypax aбo фyнкuiяx, oпиоaнi пiзнiшe, нiж цi фyнкцii aбo пpoцедypи'тo BидaстЬсяпoвiдoмлellня пpo пoмилкy Епor 3: Unknown idеntifier. Якщo Bи oдepiк{rли пoвiдoмленняпpo пoМилкy Еrror 87: <<,>> expeсted пpи зBep}Iеннiдo пpoцедypи aбo фyнкuiТ, тo це IIIви.цIIIе Bсе зa oзнaчaс, щo кiлькiсть фaктиvниx пapaметpiв I{e збiгaсться з кiлькiстю фopмальниx. Якщo пpи зBepненнi дo пpoцeдypи фopМaЛьнoМy пapaМетpyзмiннiй BI4 IIoстaвиЛи y вiдпoвiднiсть фaктияний IIaрaМeTpкoнстaнтy' тo бyДe Bи.цaне пoвiдoмленHяПpo пoМилкy Еrтor 20:. Variable identefiеrexpесtеd. Ш{oбпoзбщися цiеТпoMиЛки' нeoбxiднo пoпеpедtlЬoзнaченtlя кoнстaнтипpисвoiтиякiйсь змiннiй. pезyлЬтaтiв, Якщo в oснoвнiй пpoгpaмi Bи I{еo.цеp}I(yсTе oбчислrних в пpoцедypi' це oзнaчaс,Щo фopмальнi пapaметpи'знaчel{ня якиx пoвеpтaloться пpoцeдypи, oписaнi як пapaМеТpи-змiннi. з не Значeння функцit в oснoвнiй пpoгpaмi пoBинIIoбщи пpисвoснe деякiй змiннiй тoгo )к типy. Якщo }I( цьoгo нe зpoбили' пpo це Bи нaгaдaспoвiдoмленняпpo ПoМI{лкy Еrrot |22: Invalid variable referеnсe. Якщo в якoстi фopмaльниxпapaмeтpiв Bи BиПaдкoвoBикopистilJIи стpyктypoвaнi типи (мaсиви, oбмежeнi pядкoвi вeли.rини),тo кoмпiлятop BидaстЬпoвiдoмлeнIUI пpo пoМилкy Еrror |2: Typе identifier ехpeсted aбo Еrror 89: <<)>> eхpесtеd. 42. CклadaHня aлeopum^riв з вuкopucmaнняtу| функцiЙ Ilpuклаd 1. Poзглянемo zшIгopиTМ oбчуl,cлeннязнaЧrннЯ с=f(a,b)+f(a2'Ь2), якщo вi.цoмo,Що f(x,y)=5inх+сosy. Звичaйнo,щo мbжнa пiдiйти дo poзpoбки ulЛгopиТl,ly oбuислення знaчеIlilЯ с З MaтеМaТиЧIloi тoчки зopу. Aле дaвaйте скopисTarМoсЯ Мo)I(лиBoсTяpoзгляHеМo зaдaЧyсaMез uiеi тouки зopy' ми € r лгoритмiзaцiТ i цIo r62 Hесклaднo пo6aянтvl,щo Moжнa oкpeМo зaПI4caТИ apифмети.IниЙ ьиpaз Nlя oбчиcлeнняЗначeння в залerкнoстiЪйpi,''* фyнкцii пapaмeтpiв, a пoтiм лишIe скop"iuт""' циМ aлгopитМoм для oбчислення pезyльтylочoгo знaЧення змiннoiс. алгffi".зaдuui нaстiльки пpoзopий, щo дaвaйтe зpaзy ж зaпиIЦeмo йoio.y виглядi пpoгpaми: pгogгam value; var а,b,с:rеal; funсtion f(x,y: rеal): rеal; ,bеgin I f:=sin(x)+сos(y); Ъnd; bеgin wгiteln ('Зaдaйтe знaченIlядBox пapaМeтpiв,); I гeadln(a,b); | | с:=f(a,b)+f(sqr(a),sqr(b)); f:0:3) I writеln('Знaчeнняфyнкцii:', Ъnd. Oтoж, оснoвний aЛгopиTм с лiнiйним. 3a paxyнoк сTBopeItня дoпoмiжнoгo zlJlгopиTмy Ми Мoжeмo' зBrpнyBIIIисЬ дo HЬoгo з ПеB}IимизнaченняMи пapaметpiв, oТpИМaTИ pезyльTaToбчислeння дoпoмiжнoi фyнкцii i викopистaти йЪгo пpи oбuисленнi знaчення резyльтyloЧoiвeличини. Пpuкltаd 2. ILpи звеpненнi дo фyнкцiй y якoстi пapaметpiв Мoжнa BиI(opистoвщaти apифметичнi Bиptr!и. A, як Ми зI{arмo' apифмeтиннi виpaзи мoжyгЬ мiс,гити BикJIики фyнкцiй, тoбтo дoxoДимo виснoвкy' щo Пapaме.гpoм мoже бщи виклик фyнкцii iнruoi фyнкцii. Hexaй y Haс с oпис фyнкцii, щo ,'.'"ou. бiльrшyз дBox зaдaних числoBих веЛичин.Зaпиrшемo aJlгopитМ-Ilpoгpaмy' якa Bизнaчaе бiльrпy з тpЬox чисЛoвиx Bел}lчин' скopистaвIIIись oписанoЮфyнкцiс,о. pгogгam max-max; var а,b,с,M;integеr; funсtion mаx(x,y:intеgeг): intеger; pеgin I if x>y thеn maх:=xеlsе maх:=У: bnd: |6з
  • 84. begin тpи нислa'); I wгitеln ('3aдaйте | геadln(a,b,с); | М:=max(max(a,b),с); нисел:',M) I writеln('Maксимaльнез тpЬoхзa.цaних Ъnd. oсь i все: ми спoчaTкy звеpt{yлисЬ фrrкцii max з пapaMeтдo paNII4 b' a пoтiм з peЗyльтaтoМцЬoгo зBерHeнI{я iз знaчeнням а, тa змiннoТ с знoBy зBеpIIyлися дo цiсi ж фyнкцiТ, нe пopyIIIиBIIIи кiлькoстi фaктинниx пapaметpiв.oснoвний aЛгopиTМ-ПpoГpaмa y вийцroвлiнiйним. нaс Ilpuкtiad 3. Poзглянемo пpикJIaд сTBopенtlя фyнкцii. Hеxaй нaм нeoбxiднo oбчllcлvlтuTaке знaчеIl:ня: z=х|+У1. oскiльки фaктopiaл _ цe oднe чисJIo,тo нaс BлaIIIтyе фyнкцiя, якa буДe oбчислroвaти йoгo знaчeння. oфopмимo вiдoмий нaм aпгopитМy виглядi пiдпpoгpaми-фyнкuii. funсtiоn faсtoгial(n:intеgег): longint; vaг i: integeг; f: longint; begin f:-1; foг i:=l to n do f:=f*i: faсtorial:=f; еnd: Bикopистaти цIo ф1пlкцiюв oснoвнoМy{rлгopиTмiпpoгpaмiдля oбчислeннязнaчr}Iня ми змox(eмoтaкиМ чинoМ: z wгitеln ('Зaдaйте тa y:'); x гeadln(x,y); z:- faсtoгial(x) faсtoгial(y); + П u m a н ня dля ca мoкoн m poл'<, : 1- |кi пp9вuлa oпuсу i вuкopucmaння фyнкфЙ? 2 Як зdiЙcHюemЬcя .пepeОaua peзуйьmamу o6чucлeння фyнкцГi в ocHoвну пpoepaму? 3 Як зditjcнюrmься вuклuк функцii? 4 Чu мolкнa в якocmi пapa^rempa фyнкцii lнoвy вuКopucmoвyвamu вuклuк фyнкцii? 5 Haвedimь свiЙ пpuклaО фyнкцii i iT вuклuку в ocнoвнiЙ. npoepaмi ma peaлiзуЙme Йozo. 43. CшaОaння 7лeopumiriв з вuкopucmaнням l,poцeoуp Ilpuклаd 1. Пеpeпишeмo фyнкцilo зIlaxoд'(eн,'{яз}iaчеIl}lя фaктopiaлaу впrлядi пpoцед)pи i пiсля цьoгo пopiв}tясI}lo oтpимaнi aлгopиТMи-пpoгpaiии. pгogгam max_max; vaг x'y: intеger; f_x,f_y,f-sum:longint; proсеduге faсtorial(n:intеgег; var f: longint); var i : integег; begin f:=l: S for i:-l to n do f:-f*i; еnd; begin wгitе ('Зaдaйтедвa числa:'): геadln(x,у); faсtorial(x,f-x); faсtorial(y,f*y); f_sum:=f_x+f_y; wгiteln('CyМa знaчеIlЬ зaдaниxЧисeл:' f_sum) фaктopiалiв , end. wгitеln('Cyмa фaктopiaлiв зaдaниxчиce!l:,,z) i 3вepнfunь Нa тe' щo oскiльки пiсля викoнaнняфyнкuii ii увa2у iм'я <<тpимaссoбi>> в oбчислене знaченнЯ,тo B oснoBнiй пpoгpaмi йoгo тpебa кyдисЬ oбoв'язкoвo <<tloклaсTи>>. oзнaчaс' щo Цe звepнeнIrя дo фyнкuii пoBиIlI{o викopистoвyBaтись лиIше B oпepaTopaxпPисBoIoBaнъlя aбo B пpoцeдypi виведення iнфopмauiТ writе (wгitеln). Якщo oбчислене знaчення фактopiaлу ЧИcЛa IIpИ викоpистaннi фyнкцiт Пеpедaвaлoся в oсtloBlry прoгpaмy uеpeз iм'я цiсi фyнкцiТ, тo B цЬoмy пpиклaдi ДoвoдитЬся Bвoдити пapaМетp-зMiннy vаr f: integeг, якa мiститиме oбчислене знaЧrIIIIя .,pou"луfi i пepедaсть ' йoгo в oснoBнy ПpoгpaМy. Звичaйнo, щo в нaшoМy випaДкy мa€ пеpeBary jaпис дaнoгo z}лгopиTмy З Bикopистaнням фyнкцii. I{е в пеplшy чеpry зBеptIе}IIl,l дo дoпoмiжнoгo aлГopиТМy Тa oTpиМaннЯ' peЗу ЛЬTury. t64 165
  • 85. Зауваэюmе, щo BикJIик пpoцедypи с лiнiйним ollеpaтopoМ, oскiльки пiсля йoгo Bикoнa}Iня Ми зaBжди ПеpеxoдиМo дo BикoнaнI{я нaсTyп}Ioгo Зaписaнoгoв пpoгpalli oпеpaтopa. Якщo в пoпrpeдньoмy пpикJlaдi дslя стBopенtlя пi.Цпpoгpaми мo)I(нaбyлo викopистaTияк фyнкцiю, тaк i пpoЦeдypy,тo iснyють €lлгopиTми' де без opгaнiзaцii пpoцедypинe oбiйтися. Пpaюшd 2. Зaпиrцeмoневeликийкopиcний aлгopитМy виглядi Пpoгpaми' BикopисTaBПIи l{ЬoМy пpoцeдypy, якa пepeтвoploс всi B маленькi лiтеpи зaдaнoгoтeксry нa великi i oбчислюс,скiльки Тaких пepeтBopеI{Ь бyлo зpoбленo. pгogram invers; uses сrt; vaг txt: string; сount: integег; proсeduге lеtters(var stгing, var n: integеr); S: vaг i: intеgег; bеgin n:=Q; for i:=l to Lеngth (S) do if s[i]+ UpCasе(S[i])thеn bеgin (S[i]); S[i]:=UpCasе Inс(n) еnd end; bеgin wгitе ('Bведiтьтекст: '); гeadln (txt); lettеrs(txt,сount); wгitеln (' Пеpeтвopeний текст:',txt,); ('B зaдaнoмy wгitеln текстiбyлo ',сount,' мaленьlсоi лiтеp'); rеpeat until KeyPгеssеd end. B цiй пpoгpaмi BикopистaнaнoBa фyнкцiя Пaскa.пяUpCasе' Boнa пеpетBoptoс мaлeнькi лiтеpи y вiдпoвiднi iм великi' Фopмaльнi ПapaМeTpиS тa n B ПpoцeДypi с пapaметpaМи-зMll{t66 тобтo мiстять oбчисленi в пpoцедypi peзyльтaтиi пepедaloть IIу|NIиI' ix в oснoвнy ПpoгpaМy. стоpiCпpoбyйте ПepеписaTифyнкцiю, щo poбить (<гopтaння y виглядi Пpoцедypи.I{e бyде paцioнaльнiшrе. нoк>вatuoi Пpoгpaми' Ta IIpaклаD 3. пpvl пoясненнi пoнять пapaмeтpiв-зIlaЧенЬ пapaметpiв-змiнниx Ми зaзнaчили, щo Boни Мo)I(yгьбуи oписaнi лиIIIе пpoсТиМи тиIIaми. Bиxo.цитЬ, Щo Bиникaс пpoблeмa пpи пepедaвaннi y функuiro мaсивiв в якoстi пapaмeтpiв. Moжнa з.цoгaдaTись, якиМoсЬ чинoм ця пpoблeмa в Пaскaлi Bсe }к тaки щo виpitпyеться. Для тoгo, Цoб iз стpyктypoвaнoгo типy (<}IaсиB)> yгBopити пpoстий тип, неoбхiднo в poзлiлi type oписaти свiй йoмy yнiкальнe iм'я в дaнiй пpoгpaмi. Hеxaй влacнvlilTип' нaдaвIIIи TaкиМЧинoм: цей oпис бyдe вигля.Цaти of typе mas=array[1..100] rеal; Tепеp y пpoгpaмi Ми мoжемo BикopистoByвaтизмiннi типy як пpoстi: mas, якi в poздiлi змiнниx var бyдyгь BиITЛЯДaTI4 var a: mas; Bведення IIoIlяттяBЛaсниx типiв кopисryвaЧa _ цe пoryжнiй дaнoгo пoсiбникa зaсiб мoви пpoгpaмyBaнняПaскaль' €UIe в Ме)I(ax Скopистaемoся poздiлoм type липIе нe ми йoгo poЗгЛядaTи бy.u'eмo. мaсивiв в якoстi пapaметpiвy пiдпpoгpaми. дJи пepедaBaння Пpoгpaма, якy ми poзглянеМo,6уДe стoсyвaтися pеалiзaцii aЛгoриTМy скЛaдaн}Iяi викopистaннЯ пpoцедypи i фyнкцii, щo вiдпoвi.цнo BBoдятЬ знaченtlя .цBox oднoвимipних мaсивiв тa визнaчaloTь ii мaксимaпьнi знaчення. Зaдaвrци в якoстi вxiдниx знaчel{Ь. сyмy ix МaкcиМuulЬllиx дaниx двa МaсиBи,BизнaЧиМo pгogгam sum_mil(; usеs сrt; of typе mas=aгray[1..100] геal; mas: var a.b: intеgеr; n,m: геal; sum: x: pгoсеdurе input_mas(vaг mas;k: intеger); integer; vaг i: bеgin I tor i:=1to k do | геаdln(xIi]); Ьnd; r61
  • 86. funсtioп max_mas(x:mas;k: integer): геal; vaг i: intеgеr; max: real; Pugto . I max:=x[]; I for i:=2 to k do irx1i1<max thеn max:=х[i]; I max_mas:=m:u( I lend; bеgin writе ('3aдaйтe кiлькiсть елементiвIIepшIoгo мaсивy: '); гeadln(n); wгiteln('Зaдaйтe знaчeнняeлемeнтiBперIIIoгo мaсивy:'); input_mas(a,n); wгite ('3aдaйте кiлькiсть елемeнтiвдpyгoгo мaсивy: '); геadln(m); wгitеln('ЗaдaйтrзнaченняелемeнтiB дpyгoгo мaсивy:'); input_mas(b,m); =ma(_mas(a,n)+max_mas(b,m) sum: ; wгitеln(' Cyтrla мaксиIuaдьIlиx знaчень 0: двox мaсивiв:',sum: 3); геpeat until KеyPгеssеd end. egrn i:=Pss('',5;; whilе i<>0do bеgin I Dеlеte1s,i,l;; I i:=Pos(",S) 'end Кopucнa nopada. Брaють ситyaцii, кoли пepшa пpoцeд1pa aбo фyнкцiя викoристoByс в сoбi зBepнeнIIя дo дpщoi, a дpyгa зBepнeнIIядo пеpuroi. oскiльки в Пacкалi poзпoдiл пaм'яTi тa BикoIIaIIIIя пpoгpaми йде в тiй пoолiдoвнoстi,в якiй вoни зaписaнi, тo Bиникaс пиТaння:a яKy пpoцe.цypy.tифyнкцilo oписaти пepшoro? .{ля цьoгo iснye мoжливiсть випepeд)к:lючoгooписy. Heoбxiднo зaгoлoBoк дpyгoi зa Чepгolо пpoцeд)pl{ aбo фyнкuiТ Bинести пepед пеpllroю iз слylк6oвим слoBoм forward, a caМУ пpoцeд}?y oписaти пiсля пeprшoi. Haведeмo пpикJIaд: proсеduгe a(<списoкфopмальниxпapaмсгpiв>);forward; proсёdurе b(<списoкфopмaльнихпapaметpiв>); bеgin a(<списокфaкти.rнrx пapaмегpiь); end; pгoсedurе a; Зaгoлoвoк пpoцедypи BBeденIlя 3нaченЬ eлементiв мaсивiв pгoсеduгe input_mas(var x: mas; k: integег) пiдкaзyс нaм' щo кiлькiсть елeментiв Мaсивy' щo зaдa€ться' IIrpr.цa€TьсяB пpoцедypy як пapaмeтp-зIraченIlя' a сa|Ц мaсив, тoбтo йoгo знaЧeння' пoвepтarтъсяB oсIroBнyпpoгpaмy, як пapaмrТp-змiннa,щo oписaнa BЛaсним типoМ кopисTyBaЧa. Зaгoлoвoк фyнкuii oбчислення мaксиМaлЬнoгo зHaчeння tllacИBУ funсtion maх_mas(х: mas; k: intеgeг): rеal мaе двa фopмaльнi пapaметpи-знaчeння,oскiльки pезyлЬТaт oбчислення _ oднe Числo _ пepедa€тЬся B oснoBIIy пpoгpaМy .repeз iм'я фyнкцii. B peштipеlllT oснoвнa Пpoгpaмa нaбyлa лiнiйнoi стpyктypи. Ilputaаd y'. Poзглянемo ще oди}I пpикJIaд пpoцедypv!' Якa стискaе зaдaнийTекст,вилy[laЮЧи llьoгo всi пpoбiли. з pгoсеduге сomprеss(vaгS : stгing); var i: intеgег; Ми зaвepшуемo poздiл Пpoцrдyp та фyнкцiй. Чoгo ми нaBчилися B tlЬoмy, якoю кopисноro iнфopмaцiсro мoжемo скopисTaТися нaдыlJ? A нaвчилися ми елeМеIIТaМ стpyкTyplroгo пpoГpaNlУBaНlнЯ' вмiнням вуlДiтятуl oснoвнi мoМeнTи ПpoгpaМи в oкpемi блoки, якi н:}зиBaIоться llpoцeд}palДLr Тa фyнкцiями. Taкиil Пpoцrс, кoли ми спoчaTкy aнaпiзyсмo Bсю ЗaДaЧУ, видiляlovи в нiй глoбальнi пpoблeми (oснoвний алгopитм), i лиrпе пoтiм детaлiзyсмо ix 168 r69 bзgin b(<списoкфaктинних пapaмeтpiв>); end:
  • 87. (дoпoмiжнi алгopитми), пpи неoбxiднoстi видiляюЧи в них нoвi пpoблeми (дoпoмiжнi aлгopитми l{и)кчoгo piвня), н.tзивaеться пpoгpaмyBaнням<сBrpxy- BIlI,lз>). Пumaння 0ля caмoкo']mpoл'o : npoцedуp? 1 B нoму noляeaecпeцuфiкaвuKopuсmaння npoцeОуp? пpoеpaмнadaaвuкopucmaння 2 Якi nepeвazuпpu cклadaннi пpoцedуpaм? нadaвamu пepeвaeу 3 Чu эaвжduпompiбнo 4 Якuм чulloMу Пacкaлi peaлiзoвaнaмoжлuвicmьпepedaвaнняzнaчeHь eлeмeнmiвмacuву у пiОпpoеpaмy? i npoцedуpu npuклaО aлеopumму 3вuкopucmaнням 5 HaвeОimьвлacнuЙ peaлiзуйmeЙoеoу вuеляdinpoapaмu. ввepxу - внulD? 6 Щo мu poзyмiвмoпid пpoepaмyвaнняlуI 44. Пpaкmuчнapo6o11 кПpoеpaloui3 lвepнeннялru Oo пidnpoеpaм,g 3a нaвeденим сцeнapieм викoнaйте зaвдaнняпo ствopеIlню тa I{aJIaгoд)I(eнню aJlгopитIt,tlв пpoгpa{в зBepнrнI{яM пlдIlpolpaМ. тa дo 1) Buзначumu кiлькicmь i munu вхiDнuх dанuх вidпoвiёнo do зadачi. уIу|oвu 2) Buзначumu кiлькicrnь i rnunu вulсidнuх dанuх вidnoвidнo do заdачi. уI|'|oвu 3) Buзначumu mun алzopurnму абo йozo фpаzlпeнmiв, noбуdуваtnu Jу|аrn аfnuннумo deль. eл4 4) Buзначumш нeoбхidнicmь ввedeнrш npoл,licюнuх dанuх, ii кiлькicmь mа rnunu. 5) Poзpoбumu слoвеcнuй onuс а]tzopumJИу. якt'нeo6хidнo lаcrnocуваmu dля 6) Buзначumu mпnu nidnpolpсlJv', cmвopeнняалzopuпJу|у вidnoвidнo do умoвu заdачi, 7) Buзначumu nocлidoвнicmь ввedенняnoчаrnкoвllхmа вuвedeння peЗульmуючuх dанuх З вutФpuсmанItя^4 вidnoвidнuх кoJу|eнmаpiв i фopмаmувсtl|ня, 8) Buзначumu кopeкtпнicmь вuкopucmання функцiй mсt npoцedуp, piзнuх базoвuх алeopumмiннuх cmpук|nуp dля p eалiзацii. алrop u|nму. ]4oвoю npozpа"vlування. 9) Заnucаmu аЛzopumл4 , зa"дaн'rя для .цaнoi пpaктиvнoi po6oти нaведенi y <Збipникy вIIpaBтa .Цo зaдaч з алгopитмiзaцii тa пpoгpaмyBaння> y poздiлi <<3веpнення пiдпpoгpaм>' 170 |0)Hа6pamu meкcm npozpаJv'u, вuкopucmoвуloчu cepedoвuщe npoepалtувсIння mа вuкoнаmu налаzodэюeння npozpа]|,'u, вunpавuвшu cuнmакcuчнi noлtшlкu. | |) Buкoнаmu npozpалtу, nidеomував|Ilu cucmeJJ4у mecrniв. 12) Peшiзуваmu piзнi ваpiанmu вuкopucmаItня функцiй i npoцedуp dля вuкoнання cфopмульoванoi заdачi mа npoаналi. lуваmu ii щodo кiлькocmi вuкoнуванuхdiй. Cтвopeння гpaфiчHиx3o6paжeHЬ 45.Пpoцedуpu i функцГi пo6уОoвu еpaфiчнux 3o6Pa. ilсeнь Якщo ви зpa:}y poзгopнyли кtlижкy нa цiй стopiнцi, вaс мo)I(нa зpoзyt'liти, aлe й oднoчaснo слiд зaстepeгти.Цей poздiл IIaBмисI{e винeceнпЙ Нa caмпiцкiнець. A пoв'язaне цe з тиl,t'щo бeз гapllиx aлгopитмi.rниxнaвикiв IIeмort(Ha IIoвIIy нa пoryжнiсть скopистaтиоя гpaфiнними мo)KпиBoстямибyдь.якoi мoви llpoгpaмyвalrня. oтже, пoчнiть знaйoмствo з пoсiбникoм спoчaткy i скopистaйтeся yсiмa кopиоllиl,lи пopaдaluи, мiстяться B ньol,ly. якi poзмipи цьoгo пociбI{икa нe дoзBoляють пpпдtлvlти Ha жaль, гpaфiui стiльки yвaги, скiльки вolra зaслyгoвyе.Biдoмi пpoгpaмiсти пpисвятyloть iй тoвстелeзнi кни)I(ки, щедpo Дiлятъcя B ниx дopoгoцiннolo iнфopмaцieютa свoiм влaсним дoсвiдoм. Bсi пpoцeд)Tи тa фyнкцiТ для poбoти в гpaфivнoмy peжимi мicтяться y мoдyлi Graph. Toмy йoгo нeoбxiднo пiдклю.raти нa пouaткy poбoтI,l пpoгpaмoю. з Пepru, нiж пoчaти poбory в гpaфiннoмy pеlкимi, нeoбxiднo пеpeкJIючитипpoгpaмy y peжим ЧитaII}Iя зaписy iнфopмauii нa тa eкpa}I пo пiксeляx. .Цля цьoгo нeoбxiднo Bикoнaти ,|poцеФw iн iцi аll iзацtr zpафiкu : InitGraph(GraphDriver' GraphМodе, GraphPath), GraphDriver _ цiле числo' щo Bизнaчar тип мoнiтopa, ле GraphMode - цiлe числo' щo визнaчaс pе}ItиМ poбoти цьoгo мoнiтopa, GraphPath _ pядкoвий Bиp€B' який визнaчa€ цIляx дo egavga.bgi. фaйлa.дpaйвеpa Poзглянемo дeтaльнiluе iipизнaнeння пapaмeтpiв,якi викopисТoвyютьсяпpи i;riцiaлiзaцiiгpaфiки. 171
  • 88. Пapaметp GraphDrivеr зaДaеTЬcЯцiлим числoМ aбo мнeмoнrчI{иl{ пoзнaчеI{ням i oзнaчaтимe, яшfl тип гpaфi.тнoгo aдaптrpa BстaнoвЛеHий нa кoмп'ютepi чи з яким ви xoЧeте пpaцIoBaTи. LIaпpяклaд, якщo встa}Ioвлeний мoнiтop типy VGA, aЛe'BИ xoЧeTr пpaцюBaти в pexсимi сGA - це lvlo)IglиBo. Знaчення пapaмeтpa GraphDriver мo)кнa взяти з тaблицi 6: Tаблuuя 6 IIrd'я 3нaчeння 0 (Aвтoмaти uнllЙ вvl6ip Дpaйвepa) Detесt 1 сGA IVIсGA 2 ЕGA з 4 EGA64 ЕGAМono 5 6 IBME514 HегсМono 7 ATT4ш 8 V GA9 , 10 PС327o CurгеntDгivеr - 128(Пoтoнний дpaйвep) ПapaмсгpGтaphМodеBизнaчa€' в як'oмypежимi poздiльнoi здaтrroстi бyлe пpaцroвaтиoбpaнуIilsaми гpaфiнний адaптеp. B мoжJIивi peжими нaйпoшиpенiнaстyпнiй тaблицi 7 нaведенi JII,IIце aдaптepiв: шrиx типiв Iм'я CGAс0 сGAс1 СG^С2 CGAс3 сGAHi ЕGALo ЕGAIIi ЕGA64Lo ЕGAб4I{i ЕGAMonoHi Tаблuця 7 Пaлiтpa 3нaчення 0 1 2 З 4 Poзмip пoля 320*2Ф 320*200 з20*20О з20*200 Ф0*200 C0 Cl С2 C3 2 кoльopи 0 I 0 I 0 640*2Ф 640*350 640*200 640*350 640*з50 16 кoльopiв 16 кoльopiв 16 кoльopiв 4 кoльopи 2 кoльopи 172 Iм'я Пaлiтpa 3rraчення Poзмip пoля 0 мo*20o 16 кoльopiв VGALO | 16 кoльopiв VGAMеd Ф0*350 16 кoльopiв 2 640*480 VGAI{i свiтлoCO свiтлo-зелений, poжeвий, жoвтий; с1 6лaкlатниil, свiтлo-фioлетoвий, бiлий; С2 - зeлeний, неpвoний, кopинневий;C3 _ блaкитний,фioлeтoвий,свiтлo-сipий. Пapaметp GraphPath - цe pядкoBa BeлиЧинa,якa Bизнaчaс' дe iнфoгмauiiзнaxo.циTьсялpaйвep гpaфivнoгo Bведення.BиBедeн}Iя piзниx типiв aдaптеpiв iснyloть piзнi дpaйвepи: для мoнiтсlpiв .(ля ЕGA тa VGA _ egavga.bgi,для мoнiтopa CGA - сga.bgi. Якщo цeй фaйл мiстиTЬся B ToМy ж сaмoмy пiдкaталoзi, шo й exe-фaйл (''), якщo x в iнIшoмy мiсцi, тo пpo|paми, тo IIIJUIх BкzrзyстьCЯ не йoгo неoбхiдIlo BкaзaTи(нaпpиклaд,'с:BGI' ). Haдалi ми бyДeмo BикopистoBуъaтитaкиil, Bигляд пpoцeдypи iнiцiaлiзaцii гpaфiки: vaг GraphDrivеr, GraphMode, GraphРath:integеr; GraphDriver:=VGA; GraphMode:=VGAHi; InitGгaph(GraphDriver, GraphMode, GraphPаth) ; Пpouедypa зaкpиттягpaфiки ClosеGraph y дoзBoляс пpoгpaмi пoBеpнyгисЯ HaЗaД, текстoBий peжим. poбoтa з гpaфiкoю, Бaжaнo кoж}IyпpoгpaМy,в якiй пеpедбa.raсться зaвеplllyвaTицiею llpoцe.цypoю. .(алi poзглянеМooсIloBHiпpouеДypитa фyнкuii МoдyляGraph. 1. Пpoцедypa oчищеt{ня екpaнa мoнiтopa в гpaфiuнoмypежимi: ClеaгDеviсe кoJъopy: 2' Пpouедрa щo BиBo.ц}IТЬ зoбpаxенrшпiксеlш зa.ц:lнoгo PutPixel (x,y:intеgег;Color: Word) , де x, y _ кoopдинaTиToЧки, Color _ кoлip тovки. Знaчення pежимi. кoльopiвзrUIишIaюTьсясaмi, Що й в TексТoвoмy тi лiнii: 3. Пpoцедyрaвиведення Linе ( X1, Y1, X2,Y2: integer), ПoЧaTкy лiнii, a X2' Y2 _ кoopдиде Х1, Yl- кoоp.uинaТи нaти il кiнця. Lt-)
  • 89. i I I lnя зaдaннякoльopy лiнii неoбхiдtlo cкopисTaтисяпpoцедJ/poЮ SetColor, якa бyде oписaнa пiзнiшrе. 4. !ля BивeдeI{I{я зoбparкення кoлa тpeбa скopистaтися пpoцедypoю Cirсlе(x,y: intеgег;Radius:rrord), (x,y) - кoop.циHaTи дe цelrтpa кoлa, Radius - poзмip paдiуca rъoг0 кoлa.Кoлф кoлaз4дacгЬся тzuсflи lмим чиIloм, як i кoлip лiнii. с€ 5. Пpouедypa ЕIlipsе (x,y: intеgеr; StаrtAngle, ЕndAngle, ХRadius,YRadius: word) BиBеоTинa екpalr мoнiтopa елiпс з цеllTpoМ y. тoчцi дoзвoJUIс, (x,y), paдiyсaМи пo гopизoнталi Тa BepTикaлi вiдпoвiднo Xradius, YRadius вiд кщa StartAngle дo кyгa ЕndAngle. 6. Пoбyдoвa пpяMoкyтHикa вiдбyвaсться зa дoпoМoгoю пpoцeдypи Rесtanglе (xl, yl, i2,у2: intеgеr), (хl, yl) _ кoopлуIНaTИ де лiвoгo Bеpxньoгoкyгa пpямoкyтникa' (х2' у2) - кoop.цинaти IIpaBoгotlи)кIlьoГo йoгo крa. 7. Bci пеpеpaxoBalriвище гpaфi.lнi пpимiтиви стBopIoIoться зa дoпoМoгoю лiнiй. !ля зaдaнHЯ iм ПrBнoгo кoльopy пrprд BикopисTaнняМ вiдпoвiднoi пpoцeд)ри неoбxiднo скopисTaтися Taкolo пpoцедypoю SеtColor (сolor: woгd), сolor визнaчaснеoбxiднийкoлip лiнiй фiгypи. дe пapaметp 8' Кoлip фoнy мaлюнкa МoжI{alaДaTИ зa.цoпoмoгoюпpoце.цypи SetBkColor (сolor:woгd). 9. Пpoцедypa' щo пpoпoНУrTЬcя, бyлe неoбxiднa для BикopисTaIIHЯ пapi з нaсЦпниМи пpoцrдypaМи. Ha вiдмiнy вiд пoпеpед. У ньoi, вoнa BстaнoвЛIo€ кoлip фiгypИ, Щo с ЧaсТиI{oю ПЛoщини. Haпpиклaд, пpямoкyТник I{e як кoнTyp (Rесtаngle)' a як ЧaсTинa пЛoщиIlи(Bar). oсь ця пpoцeдyрa: SеtFillStyle (Pattern: word; Coloг: woгd), де PattегnBиЗнaЧae вид шraблoнy зaПoBненI{я' Color - йогo кoлip. a Мoдyль Graph Пpoпoнy€ вeликиЙ вибip знaнel{ЬllapaМетpaPattеrn, якi пoмiЩенiв тaблицrо8: 174 Iм'я ЕmptyFill SolidFill Знaчення 0 l Tаблuuя8 ДiЯ сyцiльне зaпoвненIlякoльopoм фoнy сyuirьне зaпoвнeЁня пoт0чI{иМ кoJIьoрм зaпoBI{еIlняTИ|I! === зaпoBHе}Iнятvlлу |// зaпoвIlеIlня }киptlими лiнiями типу lll зaпoвнeнI{я жиpIIиМи лiнiями типy зaпoB}Iення типy зaпoBнeн}IяryсToю Irlтpиxoвкolo зaпoBнeIIIIяpiдкoro штpихoвкoк) зaпoBЕIrння пepepиBlroю лiнiсlo pцкими кpaпкaми зaпoBIIеI{I{я зaпoвнeнI{я ryсTими кpaпкalvtи LinеFill 2 LtSIashFill 3 SlashFill 4 BkSlashFill 5 I,tBkSlаshFill 6 IIatсhFill 7 ХHatсhFiШ 8 IntегlеaveFill 9 WideDotFill 10 ClosеDotFill l1 UsегFill |2 BлaснезaпoBнеt{Itя 10. Зoбpaження зaфapбoBa}Ioгo пpямoкyrникa викoнyrTься Зa дoпoМoгoю Пpoцедypи Bar (х1, уI, x2, y2: intеger). 11. fuя М€lлюBaнIIя стoвПчaстиx дiaгpaм (пapалелeпiпeдiв) зprtнo викopисToByвaTи пpoцедypy Bаr3D (x1,y1, х2,у2:integег;D3:word;Top: boolеan), пapaМrTpoМ D3, a пapaметpTop зaдaс pе. де глибинa зaДaeTЬcЯ жим зoбpaженIrя веpxньoТ плoщини (Truе - вiдoбpaжaти,Falsе - нi). |2. !ля МilJIюBaHнякpyгoBиx дiaгpaм нeoбxiднo вllдiлuтн Дeякиiцоектop зaдaнoгo крyГa. .{ля цьoгo Мo)кнa скopистaтися пpoцедypoю PiеSliсе 1х,y: intеgеr;StAnglе,ЕndAngl, Radius: woгd), де (х,y) _ кoopдинaТиценTpa колa, Radius _ poзмip paдiyсa цьoгo кoлa, a сaм сектop зa.цa€Ться ЗнaЧеннями двox кщiв в гpaдyснiймipi: StAngle _ Пoчaткoвий кщ, ЕndAngl _ кiнцевийкyг. 13..(ля зoбpaження сектopаелiпсаiснyе пpoцrдypa Sесtor (x, y: intеger; StAnglе, ЕndAngl, Xradius, YRadius: word), елiпсa,ХRadius - poзмip paдiуca .Цe(x'y) _ кoopдинaтицеI.IТpa елiпсa пo гopизoнтaлi, Yradius _ poзмip paдiуcaелiпсaпo веpтикaлi, StAngle - пoчaTкoBий сектopa,ЕndAngl _ кiнцевийкyt сeкTopa. кyг l4. I, кiнець кiнцем' yнiвepсaльнa пpoцrдypa FloodFill (к,y:intеger;Bordеr:word) t'7 5
  • 90. зaпoBIlIoс BсIo oблaсть нaвкoлo ТoЧкI{ (x,y)' щo oбмеженa лiнiями кoльopy Border. Кoлip i тип зaлиBки визнaчaeTЬcЯ пpoцедypoю SеtFillStylе. 15. Фyнкцй GrаphRеsult : intеgеr пoвepтar пiсля iнiцiалiзaцii гpaфiки цiле числo, якr € кoдoм зaBepЦIeнI{я iнiцiалiзaцii. Якщo цeй peзyльTaT тo вiн oзнaчar кopeкп{eзaBepшIeIIня 0, iнiцiaлiзaцii. 16. Фyнкцiя GеtМaхХ: intеgег BизнaчarмaксимaльнeзIIaЧеIIня пiкселя пo гopизoнтaлi y вибpaнoмy гpaфiuнoмy pежимi.Пpи щoruy пo.raтoквфaxyвrсy пiкоeпiв(0,0)знaxoдrгьсяy BфxlБolvfyлiвoмy кщi. 17. Фyнкцiя GgtМaхY: intеgеr BизI{aЧaс мaксиМaJIЬtIе зIIaЧeIII{я пiксeля пo вepтик:rпiy вибpaнoмy гpaфiннoмypeжимi. 18. Фyнкцii GetХ: intеgеr тa GetY: intеgеr BизIIaчaють пoтoЧIle (Х) пoлoжeннягpaфiннoгo K}тсopa пo гopизot{тaлi тa веpтикалi(Y). .(aлi ми бyлeмo poзглядaти пpoцeдypи' щo стoсyloTьcЯ в,ИBeдeнI{ятекстoвoi iнфopмauii в гpaфiннoмy pежимi. oскiльки пiсля iнiцiaлiзaцii гpaфiки бyдь-якi зoбpaжeння виBoдяться пo пiксeляx, тo цe стoсy€TЬся i текстoвoi iнфopмauiТ. Taкe вивeдeIIIIя тeкстy вiдбрaеться нaбaгaтoпoвiльнirше, нiж y тeсктoвoмy peжимi. 19. ДJIявибopy пeBIIoгoIIIpифтyiснyс пpoцeд1pa SеtTeхtStylе (Font, Dirесtion: word; CharSize: word), Diтeсtion - гopизoнтaпЬнe дe Font зaдaс o.цинз типiв Iшpифтiв, (0) чи Bepтикaпьнe (l) виведeння тeкстy' a ChaгSize - poзмip (вц 1 дo 10). симвoлiвшrpифтa Пaскaпь дoзвoляе пpaцюBaти з дeкiлькoМa стaндapтниI,lи шpифтaми(тaбл.9): Tаблuuя9 Iм'я Знaчення Bигляд DefaultFont 0 мaтpинний urpифт8*8 (пo зaмoвvрaнню) TгiplexFont 1 нaпiвжиpний шpифт SmallFont 2 cъtтлийшpифт (тoнкe нaкpеслення) SаnsSeгifFont 3 книжнa гapнiтypa (pубaниЙшpифт) GothiсFont 4 гoтинний шpифт poбoти з urpифтaмив гpaфivнoмy pеxсимi неoбxiднo, щoб .(ля в п6тoчнoмy кaталoзi 6ули фaЙли з poзIIIиpeIrням*.сhr, якi i скJIaдaIoтЬ нaбip ruтpиХoвиx lшpифтiв.Пеpпrий шpифт зpoзyмiлий 1,'16 пpoгpaмi без .цoдaткoвoi iнфоpмaцiТ, a iнIпi pеалiзoвaнi y goth.сhт. вiдпoвiдниx фaйлaxtгip.сhт,small.сhr,sans.сhт, 20. ПepIп нiж скopистaTИcЯB пpoгpaмi дoдaткoBими urpифтa. ми, ik неoбxiднo зapeестpyBaтИ. ДЛЯцьoгo iснyс фyнкuiя InstallUseгFont (FontilеNamе:stгing) : integеr, якa lloвеpтaс нaстyпний вiльний l{oмеp' пiд яким бyДе зapeсстpoвaний Дaнпillшpифт. Teкстy мo)кнa здiйснити зa дoпo21. Безпoсеpед}lсBиBeденIIя мoгoю пpoцrдypи outTехtХY (x,y: intеgеr; TextString:string), дe (x,y) - кoopди}Iaтилiвoгo Bеpxtlьoгo кyta пoчaткy Teкстy' a TextString - бeзпoсepeдньo сaп{тeкст aбo змiннa, щo йoгo мiстить. Пumaння dля caнoкoнmpoл'o: в 1 B нoмy пoляae oс6лuвiсmьpaбomuкopuсmувaнaеpaфwol'tуpeжuмi? 2 Щo poзумiemьcя пid iнiцiaлiзaцieю epaфiкu? Якuм чuHo^n вiОбувaemьcя нaлaеodжeння ПpoepaMu нa po6omy з нeodхidнuм munoMмoнimopa пeвнoмуpelкuмi? у 3 Якi пpoцedypu мodуля Graph doзвoляюmь вuвodumu Ha eKpaн мoнimopaпpocmieeoм'empuчt|i фiеуpu? з пpaцювamu кoльopaмu? 4 Якi пpoцedypuмoОyляGraph doзвoляюmь Якi i ocodлuвocmi? з riloфляGnph peaлiцtoтlьpoбorту rтъt<cmaмu? 5 Яi пpoцeфpuma фунtацT 6 B нoму Пoляеae ocoблuвicmь вuвedeння meКсmy в epaфiuнoму peжuмipodomuмoнimopa? пporpawudляpoбomuз epaфiкoю. 7 HaвeОimь влaснuЙ пpuклad HE IIPИ IIУC ItАЙ TE CЯ II o M IIJIo К ! Gгaph Якщo пpи зBepненнi дo пpoЦелypaбo фyнкцiй Mo.цyля пpo ПoМилкy Bи oдepхryrTепoвiдoмлеI{ня Error 3: Unknown idеntifiеr , To це oзнaчaс,щo Bи зa6улипiдклrочитиMoдyльGraph. Якщo кoмпiлятop нa н€tзвy MoдyЛяGraph в poздiлi Usеs pеaгyе пoвiдoмлeнндпpo пoМиЛкy виBедeIIIlям Error 15:Filе notfound, вiлсyrцiй тo цe мo)i(е oзI{aчaTи, Щo B ПoToчнoмy пi.Цкaтaлoзi Мo.ц,yль Gгaph. Якщo B пoтoчнolly пiдкaтaлoзi вiдсyгнiй фaйл еgavga.bgi,тo Bv| oдep)rиTe пoвiдoмлення Пpo IIoмилкy нa кpоui BикoнaнIIя пpoгpaMи BGI Error: Grаphics not initiаlizеd (use Ini|Grа'ph) . t'7'7
  • 91. Якщo в пpoгpaмi Bи Bикoнy€Tе BиBе.це}lнЯ гpaфiнниx oбpaзiв, a нa кpoцi iJ викoнaння.не бaчите ix нa екpaнi, тo це мoже вiдпoвiдaти ТaкиМ ПoМилкoBиМ сиryaЦiям: о кoлiP грaфi.rнoгo oбpaзy спiвпaдaс з кoльopoм фoнy; o гpaфiннi oбpaзи BиBoдяться пoзa мe)I(aМигpaфiннoгo rкpaнa. l 46. Cклadaння. ::::::: ::: : #в op eнHя Ilputсllаd 1. Cпpoбyсмo пiдiбpaти пpикJIaд пpoгpaми' щo вмiстилa бiльIшiстьoЗнaче}lих вище гpaфiЧниxмoжливoстeй.Пpи викoнaннiuiсТпpoгpaмиви пoбaчитeнa екpaнi мoнiтopaпoкpoкoBе виBедeЕII{якiл piзнoгo кoльbpy, зaфapбoврaння ii piзними кoЛЬopaМи'BивeденHязoбpaжeнняeлeМентaстoвпчaстoi дiaгpaми, BиBrденIlятeксry в гpaфiuнoмypежимi. program piсture; usеs Graph; var GraphDrivеr, GraphMode: intеger; begin GraphDrivеr:=VGA; GrаphМode:=YGAHi; InitGraph (GraphDrivеr, GraphМodе,''); SetTехtStylе(1,0,4); OutTeхtXY(50,400,'Пеprшi гpaфiuнiетroди.'; ) SetColor (rеd); Cirсlе(50,50,20); rеadln; SetColоr(greеn); Ciгсlе(50,50,40); readln; SetFillStylе(l, blue); FloodFill (50,50, rеd); readln; SetFitlStyle(1 magеnta); 1, FloodFill (50'50'grеen); readln; ClearDеviсе: . SеtFillStylе (4, yеllow); Bar3D (10'10'50'60, Truе); 10, геadln; I'18 CloseGraph; end. .{ля пepeвipки oтpимaнoТ iнфоpмaцii зpoбiть змiни в цiй пpoгpaмi i викoнaйте ij. Haпpиклaд, пoмiняйтe poзмiЦення i тексry, сaМ rшpифт poзмipи.кiл, кoльopи i тип ix зaфapбoвyвaння, TrксТ тolllo. Пpuклшd 2. BикopиcTaннЯ кoМп'ютepa для пoбyдoви i дoслiджеI{Irягpaфiкiв piзниx фyнкцiй _ дРке кopиснa piн в poздiлi Cпepшy цr здa€Tься дyже пpoстo:дoстaтнЬo пpoЦесiвIvIoдеЛIoBaHIrя. oбpaхoврaти opгaнiзyвaти цикл iз змiнoю знaЧень apЦ.I,Iентa' i вцвoдити нa eкpан мoнiтopa тoчки з вiдпoвiднoТфyнкцii знaЧеIIня циМи кoop.циIlaтaми.Aле пpи цьoМy Mи не BpaxoByсМo тe, щo кoopди}Iaтитoчoк нa eкpaнi мoнiтopa мaюTь лишreцiлi нeвiд'смнi знaxoдитьсяв лiвoмy вepxньoмy кщi, знaЧeння,пoЧaтoк кoop.ци}raт зoбpaжепнягpaфiкa пo a зpoсTaHI{я вiсi oY вiдбyвaсТЬсяBtlиз, I.I{oб нaближeним дo peaJlьнoгo, нeoбxiднo oцiнити бyлo мaксиI,lzlJlЬtlo тaк мoжливi змiни знaчеIrЬяк apгylие}Iтy, i peзyльтary фyнкuiТ,шo i ввести мaсшrтaбрaння. PoзглянеМo пpикJIaдпoбyдoви бyлyсться, , . ..1 ГpaФlкa Фyttкцll l slnx l. progгam graphiс; usеs Graph; GraphМodе:intеgег; var i,GrарhDrivеr, bеgin GraphDrivеr:=VGA; GraphМodе:=VGAHi; GraphModе,''); InitGraph (GraphDriver, for i:=1to 600 do *50))'4) PutPixеl(i,200-гound(аbs(sin(i/30) ; readln; ClosеGгaphi end. бyло poзiбpaтисяз цiсю ПpoгpaМolo' .(ля тoгo, шoб зpy.rнirue пpoкoменTусМo .цеякi кoефiцiснти y виpaзi . 200-гound(abs. ТaкиМ (sin(i/30)*50)), виглядi Мo)кHaЗarlИca.ГИ який y зaГ;UlЬнoМy бaжaнoiu{iльнoстi oTpиМa[Iня чинoМ:K.гound(abs(sin(i/L)*М)). Для BBестивiДпoнеoбxi.цнo гpaфiк фyнкцiТ, Toчoк,якиМи зoбpax<yеться t'79
  • 92. вiдний кoефiцiентL. Aмплiryлa cпнуcoiдllз:шeжитЬвiд кoeфiцiснтa M, a вeли.tинaK дae зМory зсyIIyгигpaфiк BIlиз пo вiсi oY. Зaмiнивurи фyнкцiro нa якyсь iнrшy,моlкнa oтpимaти i .-. дoслiдити iТ гpaфiк' змiнrоroчивiдпoвiднi пapaмeтpи. Haпpиклaд,тaкi фpaгмeнтипpolpaм: for i:=1to 200 do PutРixеl (i,400-гound(eхp (l 20)*7 : ),2) тa foг i:=l to 6ф do PutPiхеl(i, 200-гound(ln(i* |0)*7),2); дoзBoJUIть пoекспepиМelrTyвaTигpaфiкaми з фyнкцit exp(х) тa ln(x). Пpuклаd 3. Дyжe чaстo дoвoдиться BиBoд.l.|TуI Haeкpaн мoнiтopa гeoмeTpиннiфirypи. Aлe пpи цЬoг"ry слiд вpaxoврй спeцифiкy екpaнниx кoopдинaт: тoчкa з кoopдинaтaми (0,0) BиBoдI]rться нa eкpaн мoнiтopa y лiвoплyвepxньoмy кщi, збiльrшeнItя пo ,iЬi ox iд" злlвa l{aпpaвo' a oт пo вiсi oY - звеpxy вIrи3. oтжe, бaчимo, щo спiвпaдань 3 гeoмeтpичIloю пoоyдoЪolo y дeкapтoвiй систeмi кoopдиIIaT IIe тaк вже i бaгатo. Toмy виникae нeoбxiднiсть y Bpaxoв5вaннi мaсulтaб.рaння B paзi великиx знaчeнЬ пapaмещiЬ Toчoк нa кoopдиI{aпriй плoщинi' щo виxoдять зa меxi кoopдиIIaT, вiдсyпroстi вiд'емниx Ta "*pu"",* ПpLI 'Цpoбoвиx ."u"""i вивeдeннi тoчoк I{a екpaн мoнiтopa. B якoстi llpиклaдy npo"pu'", щo..МaсшIтaбyспoбyлoBy l,lнoгoкytникa' зaдalloгo кoopдинaтal{и в пopядкy ix oбxoдy, пpи Bивeдeннi нa екpaн :.:^:-'l ::p.иI{ мolllтopa' мoжнa нaвести TaкУ. progгam piсture-l; uses Gгaph; var i,GraphDrivеr, GraphMode, n: integеr; arb: arгay[l..100] ofгеal; point_a,point_b: arгay[1..100]of integег; mina, maxa, minb, maxb: rеal; kx, ky, k: rеal; begin writеln('input n:'); rеad(n); . wгiteln('inputdata:'); for i;=1to n do rеad(a[i]'b[i]); r80 пo мzlксим€lJIЬIILD( зIIaчень вiсi oХ тa пo вiсi oY} {визнaненrrя maxb:=abs(b[1]); maxa:=abs(a[1]); for i:=2 to n do bеgin then maxa:=abs(a[i]); I if abs(a[i])>maxa I itaьs(ьti])>maxbthеn maxb:=abs(b[i]); еnd; kx:=1; ky:=1; } {визнaнення кoeфiцieнтa мaсштaбyвaIIIIя if maxр319 thеn kx:=319|maxa: iI maхb>2З9then ky:=239lmaxb; if k>ky thеn k:=ky еlsе k:=kx; {пepepaxyнoк знaЧеIIЬкoopдиtlаT тoнoк } {з ypaxрaнrrям кoефiцiеrrгa мaсцrтaбщaнrrя} foг i:=1to n do bеgin *k) point_a[i] :=гоund(a[i] ; point_b[i]:=гoundФ[i]*k); end: {пepeмiщенIlя цеIrтpy кoopдиIlaт y цеIгIp екpaнa мoнiтopa} foг i:=1to n do .bеgin I point_a[i]:=point_a[il+З2o: | гoint_bti]:=240-point_b[i]; |еnd: мнoгoкyпrикa} {вивeдeнняз.oбpaження {нa eкpaн мoнiтopa y гpaфiннoмypеlкимi} GrаphDrivеr:=VGA; GraphMode:=VGAHi; InitGгaph (GraphDriver, GraphMode,'' ); Line(320,0,320,479): Line(0,240,639,24О).' SеtColor(2); foг i:=1to n-l do 1 1 Linе(point-a[i],point_b[i],point-a[i+]'point_b[i+ ]); Linе(point_a[n],point-b[n],point_a[1 ]); ]'point_b[1 геadln; ClosеGгаph; еnd. l8 l
  • 93. П u m a н ня dля c a м o кoн I.n Poл K, : 1 Як opaaнiзувamu пol(poКoвe вuвedeння epaфiннuх, зo6paжeнь нa eкpaн мoнimopa? 2 B voму пoлЯear cneцuфiкa вuвedeння , epaфiкiв функцiЙ нa eКpaн мoнimopa? 3 Для чoeo вuкopucmoвуemьcя мacшmaбувaння l1pu вuвedeннi еpaфiuнux зo6paжeнь нa eКpaн мoнimopa? 4 Як вuзнaчumu MaсЦrmaб dля вuвeОeння еpaфiннux зo6paжeнь нa eкpaн? 5 PeaлiзуЙme влacнuЙ пpuклaО пpoepawu dля poЫomu з еpaфiкoю. 47. ПpaкmuЧнapodoma <ГIo6уdoвa epaфiчнux зo6paхсeнь>10 3a нaведеним сцeнapieм викoнaйтe зaBдaнI{я ствopeнI{ютa пo Haлaгoджeнню.Ulгopитмiв тa пpoгpaМ з Bикopистaннямгpaфiuниx зoбpaжeнь. 1) Buзначumu кiлькicmь i rnunu вхidнuх dанuх вidnoвidнo do заdачi, уtr,'oвu 2) Buзначumu кiлькicmь i munu вuхidнuх dанuх вidnoвidнo do заdачi. у.44oвu 3) Buзначutnu mun алzoputlJv'у абo йoеo фpаzмeнmiв, noбуdуваmuhlаmе^лаmuн мod ель. ну 4) Buзначumu неoбхidнicmь ввedeння npoмiэюнuх dанuх, ii кiлькicmь mа munu. 5) Poзpoбumu cлoвecнuй onuc аJlеopum.му, 6) Buзначumu zpафiннi onеpацii.,якi неo6хid||oЗасmocуваmu dля cmвopeнняалzopumJv'у вidnoвidнo do умoвu заdачi. 7) Buзначumunocлidoвнiсmьввеdeнняnoчаmкoвuхmа вuвedення pеЗуЛьmуIoчuх dанuх З вuкopucmанняJуt вidпoвiОнuх кoменmаpiв i фopмаmування. 8) Buзначumu кopекmнiсmь вuКopucmанняpiзнuх базoвuх алеopumмiuнuх cmpукmуp dля noбуdoвu apафiнl.ttlх зoбpаэю eнь. 9) Заnucаmu алaopum.u,Moвolo npoеpаЛ|ування. 'o Зaвдaнн" .цлядaнoi пpaктиннoi poбoти нaведенi y <Збipникy впpaB тa зaдaч з aлгopитмiзaцii тa пpoЦpaмyвaння> У poзлiлi <Пoбy.Цoва гpaфivниx зoбpaxеньo t82 сеpеdoвuщe L))IIабpаmu meксm npozpсlJvtu,вuкopuсmoвуючu npozpаЛtування, вunpавuвIau cuнmакcuчнI I I) Buкoнаmu на]Iаeodcrенняnpo2pаJу|u' no^4uIlкu. me сuсmе]уtу сmiв. 12) Bшкoнаmu npoпpаму, nid zomувавI'ltu 48.TeмamuчHaamecmaцiя кПpoцedуpu i функцГi. Гpaфiннi oПepaцri,' неoбxiдIro : ,Цля викoнaнIIя тeМaTичlloi aтестaцii 3наtnu o пoняття oсIIoBIroгo тa дolloмlжнoгo aлгopитмy; . пoHятгя глoбальниx тa лoк€шЬI{их змiнниx; . oзнaЧeння фaктинниx тa фopмaльниx пapaметpiв; . TИлИпiдпpoгpaмi О oпис фyнкцiй тa пpoцедyp мoвolo пpoгpaмyвaння; . пеpеBaги зaстoсyвaння фyнкшiй чи пpoцeдyp Ь кoнкpeтниx :lлгopиTмaх; poбoти B текcтoBoМy тa гpaфiннoМy pе)киMax; . oйб,,',oстi o фyнкuiТ Ta пpoцeдypvl ДI1Яpoбoти в гpaфiннoмy pеlкимi в iнфopмaцiеlо гpaфi.rнoмy }Т;?o'?""стi poбoтиз TeкстoBoю peжимiмoнiтopa; . oсoбливoстi викopистa}IHяМaсштaбрaння пpи виBeдel{нl гpaфiнниxзoбpaжень; вмimu . oписyBaтиМoвoк)пpoГpaМуBaння фyнкuii тa пpoцедypи; o пpaBильI{o opгaнiзoвyBaтивикJIикфyнкцiй тa пpoцедyp; кopeкTнe BикopисТaн}rя фyнкuiй Ta пpoцедyp B O aнzUIiзyBaTи кoнкpеTниxaJlгopитМax; oIIисyфyнкцiй Ta Пpoцедyp; . нaBoдиTивлaснi IIpикJIaди з . рoзB'язyBатизa.ц,aчi Bикopистaннямфyнкцiй тa пpouелyp; о iнiцiaлiзyвaти гpaфiннийpeжим poбoти мoнiтopa; . кoprкTнo BикopистoByвaти фyнкuii тa пpour'Цypигpaфiянoгo МoдyЛЯ; . кoprктнo BикopистoвyвaтиМaсшIтaбрaнняпpи BиBеl{еннl гpaфi.rниxзобpaженьlra екpaн Мol{lтopa; грaфi.rниxзoбpaжень. о poзв'язyв aти зaДaчtзBикopисTaнням 183
  • 94. <<г <Гаpяvа клавitaa> F1 Cшl+F1 F2 Ctrl+F2 F3 Alt+FЗ F4 i клaвiIпЬ> Tuгbo Pasсal Shift+ЕND ,Цiя oдepжaнн4 дoвiдки (дoпoмoги) Aктивiзaцiя дoвiдки пpo oпepaтop, нa який уaзуe д)Рсop 3беpежeнняy фaйлi тeксry з aктивнoгo вiкнa Shift+HoMЕ встalloвлeння пpoЦpaми [Ctrl+K]+[с] 3aкpиття всix вцкpитиx пpoгpaмoю фaйrлiв llpoгpaмнoгo лiчильникa нa пoчaтoк - Biдкpитгя lloвoгo вiкнa i зaвaнтшкeння y ньoгo вкaзaнoгoфaйлa 3aкpиття alспlвнoгo вiкнa Зaгryск IIa викoнaнIIя пpoгpaми дo пoзицii кУDсoDa Ctrl+F4 Aнaлiз i змiнa знaЧeньзмiннlтx Alt+F5 3бiльrшещrя/змeIIПIeIII{яpoзмipy aктивнoгo вiкнa Пepeмикaння нa rкpaн кopистyBaчa F5 Crl+F5 F6 Shift+F6 Alt+цифpa FI F8 Cшl+F7 Ctl+FB Alt+F9 3мiнa пoлorкeцняi poзмipiв aкпlвнoгo вiкнa -Цеpqц'д дo нaстyпI{oгoвiкнa Пepexiд дo пoпеpeдньoгo вiкнa Пepexiд дo liкнa з вкaзaним нoмepoм Bикoнaння llpoцpaми пooпеpaтoplro з пooпrPaтopllим викgнaнIIям yсix пiдпpoгpaм Bикoнaння пpoгpaми пooпepaтopllo з викoнaнн,lм yоix пiдпpoгpaм бeз oпеpaтopнoТ детaлiзaцii спискyзмiнниxy Watсh-вiкнi .Цoпoвнeщя Bстaнoвлeнняlcкacуaння кorrтpoлЬнoi тoчки IIapядкy пPoгpaMи'щo Bкaзaнaкypсopoм Кoмпiляцiя пpoгpaми з aктивнoгo вiкнa Cшl+F9 Fl0 Ctrl+Y Cшl+N Shift+стpiлки Aкпlвiзацiя гoлoBнoГo меню Bил5r.reння pЯдкa, нa якуlЙ вк:ulyr кYDсop Bстaвлeння IIoBoгo pя'Цкa пiсля тoгo' нa якllЙ уaзуе кypсop Poзпrиpення блIoкa, щo вiдмiuaeться' вiд Пoлoженtl'l кypсopa в нaпpямкy стlriлки 184 [сtrl+K]+[B] [сtrl+K]+[K] lCtrl+Kl+[H] [Cшl+K]+[v] Ctrl+Del Ctrl+Ins Shift+Del Shift+Ins Alt+X PoзIшиpення блoкa, щo вiдмiчaсться, вiд пoлoх(енIIя кYpсopa дo кiнця pядкa Poзlшиpeння блoкa, щo вЦмiчaeться, вiд пoлo)кeнIlя кypсopa дo пoЧaткy pядкa Bкaзaння пoЧaTкyблoкa, щo вiдмiчaсться Bкaзaння кiнця блoкa, що вiдмiчaсться вiдмiченoгo блoкa Знятгя/вiднoвлeння Кoпiювaння вiдмiченoгo блoкa B Тe мiсцe, дe BстaнoBлеIIoкYpсoD Пepeнeсення вiдмiчeнoгo блoкa B тr мiсцe, Дe BстaIloBлеIIo кvDсoD 3ниIцeннявiдмiчeнoгo блoкa Кoпiroвaння вiдмiченoгo блoкy в бyфep щoмiжнoгo збeoiгaння Пеpeнeсeння вiдмiченoгo блoкy в бyфеp пpoмilкнoгo збepiгaння Кoпiroвaння вiдмiненoгo блoкa з бyфеpa пpoмirкнoгo кYpсoD збеpiгaнняв тe мiсцe. дe BстaнoBлeнo сеaнсy poботи iнтeгpoвaнoгoсеpедoвищa 3aвepшreння Turbo Pasсal iз збеpеженням (в paзi пiлтвеpлження) змiнениx фaйлiв oспoвнi пol}lllлки кoпrпiляЦiiсepедoвищa Tuгbo Pasсal7.0 1 Out of mеmory - виxЦ зa мeжi пaм'ятi 2 ldentifier eхpесtеd - o.riкyстьсяiдeнтифiкaтop 3 Unknown idеntifier - невiдoмий iдентифiкaтop 4 Dupliсatе idеntifieг - пoвтopний oпис iдeнпlфiкaтopa 5 Syntах error - синтaксиЧнaпoмилкa 6 Еrroг in геal сonstant - пoмилкa в дiйснiй кoнстaнтi 7 Еrгor in integег сonstаnt - пoмилкa в цiлiй кoнстaнтi 8 Stгing сonstаnt ехsеedslinе - pядкoBaкoнстaнтaпеprBищyе poзмipи pядкa 9 Too many nеsted filеs _ зaбaгaтo BкJIaдеIlиxфaйлiв 10 Uneхpесtеd еnd of filе - неспoдiвaнийкiнець фaйлa 11 Line too long - pядoк нa.цто .цoвгий |2Tуpe idеntifiеr еxpeсted - o.riкyстьсяiдентифiкaтopTиПy 185
  • 95. 13 Too many open filеs - надтo бaгaтo вiдкpитиx фaйлiв l.4 Invalid filе namе _ пoМиЛкoв iм,я фaЙлa e 15 Filе not found - фaйлне знaйденo 16 Disk full - диск зaпoвнений .Invaiid 17 сompileг diгeсtivе - нeвipнa диpeктиBa aбo ключ кoмпrЛяTopa 18 Too many files - IIaдToбaгaтo фaйлiв 19 Undеfined typе in pointег definition - неBизIIaчeнийтиrl у визнaченнiпoсиЛaння 20 Variablе idеntifieг ехpесted - пoтpiбен iдентифiкaтopзмiннoi 21 Еггor in typе - ПoМиЛкa BиЗнaчrIIнiтилу y 22 Struсturе too langе - нaдтo BеликaсTpyктypa 23 Sеt base typе out of rаngе - 6aзoвиЙ Tип Мнo)кини пopyIJJy€ дoзвoленiмежi 24 Fi|e сomponents may not bе filеs oг objeсts - кoМпoненти фaЙлa нe мo)кyгЬ бутvl фaЙлaмиaбo oб'сктaми 25 Invalid stгing length - HепpaBилЬнa дoвжинa pЯдкa 26Tуpe mismatсh - нeвiдпoвiднiсть типiв 27 Invalid subгаnge basе tyре - невipний 6aзoвиilтип для дiaпaзoнy 28 Lowег bound > then uppеr bound - }Iижня межa бiльшa зa Brpxнк) 29 ordinal typе ехpесtеd - пoщiбен зчисленийтип 30 Intеgеr сonstаnt ехpесted _ ouiкyетьсяцiлa кoнстaнтa 31 Constаnt еxpесted - oяiкyсться кoнсТaнтa 32 Integеr or геаl сonstant ехpесted - онiкyетьсяцiлa aбo дiйснa кoнсTaнтa 33 Pointеr typе idеntifier eхpесtеd - o.riкyсться iм'я типу пoкaжчик 34 Invalid funсtion гesult typе - IIепpaBильниil тил pезyЛЬTaТy фyнкцiт 35 Labеl idеntifieг ехpeсtеd - пoтpiбен iдентифiкaтopмiтки 36 BЕGIN еxpесtеd - oяiкyеться BЕGIN 37 ЕND еxpесtеd- oviкyетьсяЕND 38 Intеgeг eхprеssion ехpесtеd - oviкyсться виpaз цiлoго типy 39 ordinal ехpгеssion expeсted - оviкyстьсЯ BИpaЗзчислеtlнoгo T||T1у 40 Boolеan eхprеssionехpесtеd- oтiкyстьсялoгiннийвиpaз 41 opеrand types do not matсh opеrator - TИIII|oпеpaндiв не oпеpaTopy ' вi.цпoвi.цaютЬ 42 Еrror in ехprеssion* ПoМилка виpазi y 43 Illеgal аssignmеnt _ хибне пpисBorнI{я 186 44 Fiеld idеntifier ехpeсtеd - ouiкyетьсяiм'я пoля зaгIИcУ 45 objeсt filе too largе _ oб'сктний фaйл зaнaдтoвеликий 4б Undеfined ЕХTЕRN - нrBизнaченaзoвнirшняпpoце.ц,ypa зaпиc oб'€ктнoгo 47 Invаlid objесt file rесord - непpaBиJIьнуliа фaЙлa 48 Codе segment too largе - сегМeнткoдy l{aдтoвелlцкиfl нaдтo великий 49 Dаtд segmеnt too laгgе - сегМeнт.цaниx 50 Do ехpесtеd - o.riкyстьсяслoвo DO BизнaченняPUBLIC 51 Invalid PUBLIс dеfinition - I{епpaBильнe ЕХTRN BизнaЧeння 52 Invalid ЕХTRN dеfinitiоп - IIепpaBиJIЬ}lе типy 53 Too many ЕХTRN dеfinition - нaдтo бaгaтo BизнaЧеIIЬ ЕxTRN слoвo oF 54oF eхpесtеd o.tiкyсться - 55 INTЕRFACЕ ехpeсted - oнiкyетьсяiнтеpфейснaсекцiя пepeмiщyвaнe 56 InvaШd rеloсatab|е rеfeгenсе - IreIIpиIIyсTиме Пoc|4IIaIIHЯ 57 TIIЕN ехpесtеd. o.riкyeтьсяслoвo THЕN еxpесtеd - ouiкyсться слoвo To aбo 58 тo or DowNTo DOWNTO oпис випеpеджaroчий 59 Undеfined foгward - }IeBизнaЧений 60 Too many proсеdurеs -.Цylкe бaгaтo пpoцe.цyp T'Ir1у пpиBеденtlЯ 61 lnvalid tуpeсast . непpaBилЬ}Iе 62 Division by zего - дiленнянa HyЛь 63 Invalid file type - нeпpaBиJIьнe фaйлoвийтип 64 Cannot Rеad or Writе variаblеs of this typе - нeмae мoжливoстi ЧkffaTИ aбo ЗanI4caти змiннi Дaнoгo ТиПy 65 Pointer vaгiablе expесtеd _ oнiкyсться змiннa-пoкaзчик бб String vaгiable eхprсted - oviкyеться pядкoBaзмiннa 67 String ехpгеssion ехpесtеd - oнiкyетьсяBиp:lзpядкoBoгoтипy не 68 Unit not found - пpolpaМ}rиймoду.тtь знaйдeнo мoлyлЬ iмен пpoгpaШ{IТx 69 Unit namе mismatсh - невiдпoвiднicгЬ 70 Unit vегsion mismatсh - невi.цгroвiднiстьвepсiй ПpoГpaмниx мoдyлiв внщpiurньoгo сТeкa 71 Intеrnаl stасk ovеrflow - IIеpеПoвнeнI{я 12 |Jnit filе formаt eггor - пoмилкa фopмary фaйлa пpoГpaМI{oгo МoдyЛЯ 73 lmplеmеntation expесtеd - ouiкyeтьсясекцiя pea.гIiзalдii 74 Constаnt and сasе typеs don't matсh - Tипи кoнсTall.г1,l'l.it.ll|lt oдHеoдlloМy сasе не вiдпoвiдaютЬ Bиpaзyoпеpaтopа 187
  • 96. 75 Reсoгd or objесt variablе ехpесtеd - o.riкyсться змiннa типy <<зaпис>) 76 Constаnt out of гangе - знaЧення кollсТaнTи B|4xoДИТЬзa межi дoпyсTимиx ЗI{aчgнЬ 77 Fi|е variаblе expесtеd - oviкyсться фaйлoвa змiннa 78 Pointеr ехpгession ехpесtеd - o.liкyсться BИpaз ТИI1У пoкax(чикa 79 Intеgеr ог rеal еxprеssion еxpесted - ouiкусться виpaз цiлoгo aбo дiйснoгo типy 80 Label not within сuггent bloсk - мiткa не ЗнaxoдиTЬся в сеpединi пoтoЧIloгo блoкy 81 Label alгeady dеfinеd - мiткa в)I(евизнaЧеI{a 82 Undеfined lаbеl in prосеding statеmеnt part - невизнaченa мiткa y Bикo}Iyвa}Ioмy poздiлi oпеpaтopiв 83 Invalid @ argument - нeпpaвильний apгрleнт oпеpaтopa @ 84 Unit ехpесtеd - oнiкyсться слoвo Unit 85 <<1'' eхpeсtеd - oviкyеться <<1> 86 <<:>> еxpесtеd - oнiкyсться <:> 87 ..,'' еxpесtеd - oнiкyеться <<,>> 88 ..(.. ехpесted - овiкyсться <<(>> 89 ..)'' еxpесtеd - oviкyсться <<)>> 90 <<=<< expесtеd - oviкyсться <<=> 91 <<:=<< expесtеd - oнiкусться <<:=> 92 oг <<(.> ехpeсtеd - o.riкyсться <[<aбo <<(.> "Iu 93 ..],'oг <<.)> ехpесtеd - oнiкусться <]>aбo <<.)> 94 <<.> еxpесtеd - o.liкyеться <<.>> 95 <.) ехpесted - oнiкyсться <<..>> 96 Too many vaгiablеs - зaбaгaтo змiнних 97 Invalid FoR сontrol variablе - недoпyсTимa змiннa uиклy FoR 98 Integеr vагiablе ехpесted - ouiкyеться змiнна цiлoгo типy 99 Filе typеs аrе not аllowеd hегe - Тyт He .цoпyскaloться фaйлoвi .ГуI||И 100 Stгing lеngth mismatсh _ невiдпoвiднiстьдoвrкиI1I4pЯДКa 101 Invalid oгdeгing offie|ds - нeПpaBильний пopядокпoлiв 102 String сonstаnt expесted - oviкyсться кoнсTaнTa pядкoBoгoтиIIy 103 Intеgеr or геal variаblе ехpeсtеd - oнiкyсться змiннa цiлoгo aбo дiйснoгo типy 104 ordinal vaгiablе ехpесtеd - oviкyеться змiннa зчисЛеIIoгo тI{try 105 INLINЕ erгoг - пoмилкa в oпеpaтopiINLINЕ 106 Charaсtеr ехpгеssion еxpесted _ o.riкyсться виp:lЗсимBoльнoгo Tипу 188 107 Too many rеlосation itеms - зaбaгaтoпеpемiшyвaниx еЛеМеltтlB 108 Ovегflow in arithmеtiс opегation - ПеpеПoBненняпiд чaс oпеpaцii BикoнaнняapифметиннoТ в No еnсlising Foг, Whilе oг Rеpеat stаtemеnt - не BкJIючэниЙ 109 For, Whilе aбo Rеpeat.кoнстpyкuiю oпеpaTop не BикotIyвaTц Мo)IGIa 110 Cannot run a unit - МoдyЛЬ 111 Compilation abortеd - кoмпiляЦiяпеpеpвaнa 112 сAsE сonstаnt out of range _ кoнстaнтa oпrpaтopa сAsЕ зa Bихo.цитЬ дoпyсTиMiмежi 113 Еrror in stаtemеnt- пoмилкав oпеpaтоpi викJIикaTи 114 Cannot саll an interгupt pгoсedure - неМo)клиBo Я пеpеpиBaнн Пpoцeдypy }raпpяМy 115 Must have an 8087 to сompilе this . дЛя кoмпiляцii неoбxiднa 80x87 нaявнiстьсoПpoцесopa 116 Must bе in 8087 modе сompile this - для кoмпiляцii нeoбxiдний pе)киМBикopистaння80x87 не пpизIIaЧення знaйденo 117 Targег addrеss not found - aДpecУ 118 Inсludе filеs аге not allowеd hеге _ в тaкiй сиryaцii BкJIaдеI{ня фaйлiв неПpиIIyстиМе 119 TP filе formаt еггoг - пoМилкaфopмary фaйлa .TP 120 NIL ехpесtеd - o.riкyrться NIL квaлiфiкaтop 121 Invаlid qualifiег - IrепpaвилЬний пoсиЛaннянa змiннy 122 Invalid vaгiаblе rеfегеnсе - rrепpaBиЛьне симвoлiв 123 Too many symbols - зaбaгaтo l.24 Stаtemеnt part too laгgе - зaвеликийpoздiл oпepaтopiв 125 Modulе has nо dеbug infoгmаtion - в мoдyлi нrМa€ iнфopмauii дJIя нiLПaгo.ц}I(r}Iня 126 Files must bе vaг paгamеtеrs - фaйли пoвиннi бyги oписaнi як VAR-пapaмещи yМoвнI'(сlд,tвoлЬ |21 Too many сonditional symbоls * зaбагaтo yl!{oBнa диpектиBa 128 Misplaсеd сondotiоnal diгeсtive - пpoIIушIенa ЕNDIF диpектиBa 129 ЕNDIF diгeсtivе missing - ПpoпyЩеHa 130 Еrгor in initial сonditional dеfinеs _ пoМиЛкa B ПoчaТкoBих BиЗнaЧеннЯx yI!{oBIIих _ зaгoлoBoк Ilе 131 Hеadег doеs not matсh pгеvious dеfinition BизнaЧeнню вiдповi.цaсПoпеpе.цньoМy 132 Cгitiсal disk еrrоr - кpиTичHa ПoмиЛкa.цискa 133 Cannot еvaluatе this ехprеssion - нeмoжливo oбчислити ДaниЙ BИpaЗ 189
  • 97. 134 Exprеssion inсoггесtly tеrminatеd - нeкopекTне зaBepшeнI{я BИpaзУ 135 Invalid foгmat spесifier - }reпpaвильний спeцифiкaтopфopмary 13б Invalid indeгесt геfеrеnсе . нeпpипyсTиI{e.нellpяме пoсилaння |37 Struсtuгеd variable arе not аllowed hеre - нeкopектtlе BикopистaнI{я стpyкTypнoiзмiirнoi 138 Cannot еvaluate without System unit - немoжJIивoo6чlаcлити Bи.цABI I и ЦT Bo <AC ПEК T > ПPoПoHУ€ Ceoiю пoci6нu кiв nДля noчamкiвtlя " : Woгd'XP' Paint)' Gf,! книгa 4 <oснoви кoмп'ютepнoi гpaмoтнoстi (Windqws'ХP' Illестoпaлoв с.A.' 2006' - |16 cтop. Intеrnеt>' Ш"с"onaлo" с.A.' 2005' - l 12 стop. Еf! книгa 5 <Wоrd'97&2000 дJ'я пoчaткiвця>,, Шестoпaпoв e.A., 2ф5' - L|2 cтop. ЕЦ *"".u 6 <Еxсel'2Oф&ХP д;tяпoчaткiвця>, e.A., МoiсссЩ книгa 7 <Windows.ХP для пoчaткiвцяo, Шeстoпaлoв 160 стop. вa o.B., 2006, Шeстoпaлoв с.A.' 2005' - 112 отop. книгa 8 <Intеrnet пoчaткiвця>>, для ЧaпoвськaP.Б.' 2005' _ 96 стop. пoчaткiвця>' 9 <Aссess'2000,цля ЦЦ книгa Point ЕЦ книгa l0 <<Power для пoчaткiвця>,Caльнiкoвa l.I.' 2005' - 1l2 стop. бeзмoдyляSystеm 139 Cannot aссеss this svmbol - дoстyп дo дaнoгo сllМвoлy вiдсyгнiй 140 Invalid floating.pоint opегation . непpиIlyстимa oпepaцiя з r плaвaloчoю кoмolo 141 Cannot сompilе ovегlay to mеmoгy - нr мo)кнa Bикotr)вaти кoмпiляцiю oвеpлeiЪB пaм'яTь 142 Pгoсeduаl oг funсtion variable eхpесted - ouiкyeться змiннa. пpoцeдypaaбo змiннa.фyнкцiя 143 Invalid proсedurе oг funсtion rеfеrenсе . IreпpипyсTиlvle пocилaIIIlя пpoцrдypy aбo фyнкuito I{a 144 Cannot ovегlay this unit - цeй мoдyлЬ He мo)кe 6Утуl oвepлейним 145 Too many nestеd sсopеs _ зaбaгaтo вкJlaдeниx кoнтeкстiв пpoгpaми' де викopистaнoдeяке iм'я 146 Filе aссess denied. дoсTyп дo фaйлaзaблoкoвaнийDos 147 objeсt type еxpесtеd. oнiкyстьcЯTl4л<<oб'скт>> 148 Loсal objесt tуpеs arе not allowеd - IrепpиIlyстимi лoкaльнi orfiIcllтипiв oб'сктiв 149 VIRTUAL eхpесted - неoбxiдне слoвo VIRTUAL 150 Меthod idеntifier еxpeсtеd - oнiкyсться iдeнтифiкaтopMeтoдy 151 Viгtual сonstгuсtors aге not allowеd. вipryа.гrьнi кoнстpщтopи нeпpигryстимi 152 Construсtoгs identifiегexpeсtеd ouiкyсться iдeнтифiкaтop кol{стpyктopa 153 Dеsсгuсtor idеntifiег ехpесtеd - oнiкyеться iдeнтифiкaтop дестpyктopa 154 Fail only allowеd within сonstruсtors - BиKIII,Iк Fail пpипyстимplЙтiлъки з кoнстpyкTopa i Кopoткий кyрс. l0 клaс>,Шестoпалoв e.A., 2006' - 176 стop. <Iнфopмaтикa. .Iнфopмa,,*". Кopoткий кypс. l l клaс>. Caльнiкoвa I.I., Шестoпaлoв e.A., 2006' - 208 стop. e.A., 2006, - 160 стop. щ "ьфop"u'"*u. Ьaзoвий кypс. 10 шtaс>'.IIIестoпaлoв olфopмaти*a. oснoви йгopитмiзauii тa пpoгpaмyвaння. l0 клaс.>, Кapa. ЕЦ вaнoвaT.П., 2006'- |92 cтop. GЦ <lнфopмaтикa.Збipник впрaB тa зaдaч-J алгopитмiзaцii тa пpoгpaмyBaння. т.п.' 2007,- l52 стop. Кapaвaнoвa l0.i l кrraс.", ШосToпaлoвe.A., Caльнiкo. GЦ .I'фop'u,'*u. 'Бaзoвий кypс. l1 клaс>>, вa I.I., 2007' - 336 стop. пpaкгиннi тa темaтичнi poбmи i пpoeKги. l0.l 1 клaс>,Caльнь Еg <Iнфopмaтикa. r.A.'200.7'_ 160 стop, кoвaI.I..Шeстoпалoв CЦ r i i I j Cepiюпociбнuкiвdля12-piчнuхcepedнiхнaвчaльнuxзaклadiв: Антoнoвa o.п.' 2007' - 64 стop. Щ .lнфopмaтикa. I]iкaвi зaдaчl.2-9 кJIaси>)' Пaхoмo. к.тlaс>>, ЦЦ .I'фop"u'икa. Bcтyп дo llpoгpaмyBaння мoЁoю лoгo' 5 136 стоp. ва Г.B., 2001' 176 стop. Е[! ot'6op"uтикa. Бaзoвий кypс. 7 клaс>,Шеотoпалoвс.A.' 2006' |.|'' 2007' - 208 c. e.A., Cаrънiкoвa Шegгoпалoв *I'фop*u'икa. Бaз.,gр.. 8 Щ 2Ф7' - 112 стop. -'u, 8 Web.,цизaйн. клaс.>'КoвшryrJr4.l.' Щ "ьфop"u'икa. e.A.' гьшшrчlк o.I1.'2006'- I.|6 c. tш а'фop"u'икa. Бaз. кypс. 9 кл.>,Шеcгoпaлoв cтop' ЕЦ ..i"фoi"uтикa. Visuai Ьasiс. 9 клaс.>,Бoндapeякoo.o., 2oo1' -200 Turbo Pasсal. Cпeцкypсi,, Бонлaрrпtoo'o:'2Ф.I: .n2Yуp.. Щ "i"фoi,"u'икa. C.A.' 2007'- 160с. ЕЦ а"фop"u.икa. Мoвa npo.pa"рuнв" с++. спецкypс>' Лехaн Cepuю vчe6ньtх пoco6uЙ нa pvccкoм языкe: клaсс>)'Пaxoмoвa Дtr .Инфopматикa. oснoвьI пpoгpaммиpoBal{ияв ЛOгo. 5 A.8., 2007,- 136c. Е.A.' 2006' - l44 ощ. кypс. Чaсть 1o,Шестoпалoв Бaзoвьlй cЦ Е.A.' 2006' - 160 сщ. -йфop"aтикa. БaзoвьIй .кypс, кfrс. Чaсть 2', Шестoпалoв l "и'фop"uтика. Бaзoвьrй B 3.х чaстяx, чaсть 3>, СasьgикoвaИ,И.' r "й"6oЬ"aтикa. ШeстoпaлoвЕ.A.,2006' - 168 стp. Кoмnaкmlucк: Теst.W2 легЕЦ Aлгo. ЛoгoМиpьI. Тpенaхepи. Калeндapнi плaни для 7.l1 класiв. npoцi, з фipлсулo+lu, zpафiкoto i mаблuцямu. Бaнк тестiв. кo i пpoстo .(pщoвaна iнстpщuiя з eксплyaтaЦiiтoшo. 190 l9 l
  • 98. ILлi зaмoвлeння кнuе звepmaЙmecь зa adpecoю: Щecmonaлoв eвeeн Aнamoлiйoвuч, вул. Tуpeeнсвa, 6уd' 31, м. Шeпemiвкa, Xмeльнuцькoi o6л', 30400 мoб. 18 дoM.тел.8-0з840-4-73-07' тeл.8-066-283-66Е-mail:аspеkt@ sh.hn.ud' aзнaЙoмumuся noci6нuкaмu зpoбumuЗaMoвлeHня з i MФкнamaKoж мoеo caЙmу www,aspekt-edu,kiev.ua 3 зaмoвити oflИH кoмпaкт.диск. fla KHИГ мoжнa Каpаванoва T.П. IнфopJуIшmI,JI<ш ocнoвu aлeopumмiзaцii ma lтpoеpaIvlувaння (пpo цedу p н e П poepa пnув HIrя ) a Haвчaльний пoсiбник Пiдписaнoдo дpylry20.09'07 Фopмaт 6ox84||6. Пaпip oфсетний. ГapнiтypaTimеs..{pyкoфсeтний. УМ. дpyк.apкyш l2.0 Зaм'1725,fraклaд 2500. Bидaвець Шестoпaлoв e.A., - pe€ Cвiдoцтвoпpo Bнeсення .(еpясaвнoгo стpy дo p. сyб'eктaвидaвнинoi спpaвиДк Jф 2l70 вiд26.04.2005 вyл.Тypгенeвa' 6уl'' З|' м. Шепетiвкa, Хмельницькa oбл.'30400' Tел; (03840)-4-7з -o1, Е.mail : аspekt @sh.km.uа ШeпeтiвськaмiжpaЙoннa дpyкapHя. 30400' м. Шeпeтiвкa,Cтapoкoстянтинiвськe шoсe, .|1 p. Cвiдoцтвo xЦ N9 008 вiд 9.10.2000 тел. (03840)5-15-30

×