У комп'ютерному програмуванні інструкція (вказівка, англ. statement) — синтаксична одиниця імперативної мови програмування, яка вказує на певну дію, яку потрібно виконати. Програма, написана такою мовою, є послідовністю інструкцій. Інструкція може мати внутрішні компоненти (наприклад, вирази).
Багато мов програмування (наприклад, Ada, Algol 60, C, Java, Pascal ) роблять різницю між інструкціями та визначеннями/деклараціями. Визначення або оголошення визначає дані, з якими має працювати програма, тоді як інструкція визначає дії, які мають бути виконані з цими даними.
Інструкції, які не можуть містити інших тверджень, є простими; ті, які можуть містити інші інструкції, є складеними.
Зовнішній вигляд інструкції (і, власне, програми) визначається її синтаксисом або граматикою мови програмування. Значення інструкції визначається її семантикою .
Прості інструкції
Прості інструкції повні самі по собі; вони включають присвоювання значень, виклики підпрограм та вказівки, які можуть суттєво впливати на процес виконання програми (наприклад, goto, return, stop/halt). У деяких мовах процеси введення та виведення даних, інструкції та виходи обробляються спеціальними інструкціями, тоді як інші мови використовують виклики попередньо визначених підпрограм.
- Fortran:
variable
= expression
- Паскаль, Алгол 60, Ada:
variable
:= expression;
- C, C#, , PHP, Java:
variable = expression;
- Fortran:
GOTO numbered-label
Зупинка/вихід
Складені інструкції
Складені інструкції можуть містити послідовності інструкцій, вкладених на будь-яку достатньо розумну глибину, і, як правило, передбачають перевірки, щоб вирішити, чи слід виконувати чи повторювати вказівки, що містяться в них.
Позначення:
- <інструкція> – це будь-який окрема інструкція (може бути простим або складеним).
- <послідовність інструкцій> — це будь-яка послідовність із нуля чи більше <інструкцій>
Деякі мови програмування забезпечують загальний спосіб групування інструкцій разом, так що будь-яку окрему <інструкцію> можна замінити групою:
- Алгол 60:
begin
<послідовність інструкцій> end
- Паскаль:
begin <послідовність інструкцій> end
- C, PHP, Java:
{ <послідовність інструкцій> }
Інші мови програмування мають різні спеціальні термінатори для кожного типу складених інструкцій, тому одна або кілька інструкцій автоматично розглядаються як група:
- Ada:
if <умова> then <послідовність інструкцій> end if;
Багато складених інструкцій є вказівками циклу або вказівками вибору. Теоретично потрібна лише одна з цих типів вказівок, але на практиці існують різні особливі випадки, в яких використання подібних може зробити програму легшою для розуміння, вони можуть полегшити програмування та часто можуть бути реалізовані набагато ефективніше:
- Алгол 60:
for
index := 1 step 1 until limit do <інструкція>;
- Pascal:
for index := 1 to limit do <інструкція>;
- C, Java:
for ( index = 1; index <= limit; index += 1) <інструкція>;
- Ada:
for index in 1..limit loop <послідовність інструкцій> end loop
- Fortran 90:
DO index = 1,limit
<послідовність інструкцій>
END DO
- Алгол 60:
for index := expression while умова do <інструкція>;
- Pascal:
while умова do <інструкція>;
- C, Java:
while (умова) <інструкція>;
- Ada:
while умова loop <послідовність інструкцій> end loop
- Fortran 90:
DO WHILE (умова)
<послідовність інструкцій>
END DO
- Pascal:
repeat <послідовність інструкцій> until умова; { note reversed test}
- C, Java:
do { <послідовність інструкцій> } while (умова);
- Ada:
loop <послідовність інструкцій> exit when умова; end loop;
Цикл з контролем за умовами в середині циклу:
- C:
do { <послідовність інструкцій> if (умова) break; <послідовність інструкцій> } while (true);
- Ada:
loop <послідовність інструкцій> exit when умова; <послідовність інструкцій> end loop;
- Алгол 60:
if
умова then <unconditional інструкція>;
- Pascal:
if умова then <інструкція>;
- C, Java:
if (умова) <інструкція>;
- Ada:
if умова then <послідовність інструкцій> end if;
- Fortran 77+:
IF (умова) THEN
<послідовність інструкцій>
END IF
- Алгол 60:
if умова then <unconditional інструкція> else <інструкція>;
- Pascal:
if умова then <інструкція> else <інструкція>;
- C, Java:
if (умова) <інструкція> else <інструкція>;
- Ada:
if умова then <послідовність інструкцій> else <послідовність інструкцій> end if;
- Fortran 77+:
IF (умова) THEN
<послідовність інструкцій>
ELSE
<послідовність інструкцій>
END IF
- Pascal:
case c of 'a': alert(); 'q': quit(); end;
- Ada:
case c is when 'a' => alert(); when 'q' => quit(); end case;
- C, Java:
switch (c) { case 'a': alert(); break; case 'q': quit(); break; }
Опрацьовування винятків:
- Ada:
begin protected code except when exception specification => exception handler
- Java:
try { protected code } catch (exception specification) { exception handler } finally { cleanup }
- Python:
try: protected code except exception specification: exception handler else: no exceptions finally: cleanup
Синтаксис
Основна стаття: Синтаксис мови програмування
Окрім присвоювань і викликів підпрограм, більшість мов починають кожну інструкція зі спеціального слова (наприклад, goto, if, while тощо), як показано у наведених вище прикладах. Для опису форми тверджень різними мовами використовувалися різні методи; більш формальні методи, як правило, більш точні:
- Algol 60 використовував нотацію Бекуса-Наура (BNF), яка встановила новий рівень специфікації граматики мови.
- До Fortran 77 мову описували в англійськими словами з прикладами, починаючи з Fortran 90 і далі мова описувалася за допомогою варіанту BNF.
- COBOL використовував двовимірну метамову.
- Pascal використовував як синтаксичні діаграми і еквівалент BNF.
BNF використовує рекурсію для вираження повторення, тому були запропоновані різні розширення, щоб дозволити пряму індикацію циклів.
Інструкції та службові слова
Деякі граматики мов програмування резервують службові слова або спеціально позначають їх і не дозволяють використовувати їх як ідентифікатори. Це надає можливість створювати граматики мов програмування, які легше аналізувати, вимагаючи менше перегляду вперед .
Мови без зарезервованих службових слів
Fortran і PL/1 не мають зарезервованих службових слів, що дозволяє такі інструкціями, як:
PL/1:
IF IF = THEN THEN ...
(другий IF і перший THEN– змінні).
Fortran:
IF (A) X = 10...
умовна вказівка (з іншими варіантами)IF (A) = 2
- присвоєння змінній з іменем IF
Оскільки пропуски були необов’язковими до Fortran 95, друкарська помилка могла повністю змінити значення інструкції:
DO 10 I = 1,5
початок циклу з I, що працює від 1 до 5DO 10 I = 1.5
присвоєння зміннійDO10I
значення 1,5
Виділені слова
Основна стаття:
В Algol 60 і Algol 68 чітко виділялися спеціальні лексеми:
- для публікації, жирним шрифтом, наприклад begin;
- для програмування, з певним спеціальним маркуванням, наприклад, позначкою ( 'begin), лапками ( 'begin') або підкресленим ( begin на Elliott 503 ).
Це називається «стропінг», токени, які є частиною синтаксису мови, таким чином, не конфліктують із назвами, визначеними програмістом.
Зарезервовані службові слова
Певні імена зарезервовано як частину мови програмування, і їх не можна використовувати як ідентифікатори, визначені програмістом. Більшість популярних мов програмування використовують зарезервовані службові слова. Першими такими мовами програмування були FLOW-MATIC (1953) і COBOL (1959). З 1970 року зарезервовані службові слова використовують Ada, C, , Java і Pascal. Кількість зарезервованих слів залежить від мови: C має близько 30, тоді як COBOL має близько 400 таких слів.
Розширюваність
Більшість мов мають фіксований набір інструкцій, визначених мовою, але були експерименти з розширюваними мовами, які дозволяють програмісту визначати нові інструкції.
Семантика
Основна стаття: Семантика мов програмування
Семантика стосується значення інструкцій, які використовуються у програмах. У багатьох мовах програмування використовується BNF або подібний еквівалент для вираження синтаксису/граматики досить формальним і точним способом, але семантика/значення інструкцій зазвичай описується з використанням прикладів і правил англійської мови, що може призвести до неоднозначності..
Вирази
У мовах програмування розрізняють інструкції, які виконуються, та вирази, які обчислюються. Вирази завжди мають значення, а інструкції – ні. Однак вирази часто використовуються як частина складеної інструкції.
У більшості мов програмування інструкція може складатися лише з виразу, зазвичай після виразу ставиться термінатор (крапка з комою).
Вирази також можуть міститися в інших виразах. Наприклад, вираз x = y + 1 містить вираз y + 1, який, у свою чергу, містить значення y та 1, які також технічно теж є технічними виразами.
Хоча попередні приклади показують вирази присвоєння, деякі мови реалізують присвоєння не як вираз, а як інструкцію. Яскравим прикладом цього є Python , де = не є інструкцією, а просто роздільником у вказівці присвоєння. Хоча Python допускає кілька присвоювань, оскільки кожне присвоювання є виразом, це просто окремий випадок інструкції присвоєння, вбудованої в граматику мови, а не справжній вираз.
Проблеми термінології
На теренах колишнього СРСР є певна плутанина щодо перекладу англійського "statement" - досить часто зустрічається термін "оператор", який з'явився у 1965 році, під час перекладу перекладаючи "Revised Report on the Algorithmic Language Algol 60". А.П.Єршов та М.Р.Шура-Бура переклали англійське "operator" як "знак операції", а "statement" - як "оператор", хоча в англійській термінології operator (+, -, % тощо) слугує для позначення операцій над операндами (див. детальніше: Оператор (програмування)), що породило чимало неузгодженостей у вітчизняній інформатиці. Так в українських та російських джерелах можна зустріти, наприклад, переклад if-statement як інструкція if і як оператор if. У ряді перекладів книг де англ. statement перекладають як оператор, замість англ. operator вживають термін операція. Також для позначення решти інструкцій (присвоєння, виклик тощо), що також позначається як англ. statement у вітчизняній літературі ряд перекладачів вживають інколи оператор, інколи вираз, інколи команда. Для позначення складених інструкцій (if, if-else, while та ін.) у вітчизняних джерелах зустрічається термін конструкція (наприклад, "конструкція while").
Примітки
- Staff, Webopedia (1 вересня 1996). What is Statement?. Webopedia (амер.). Процитовано 29 жовтня 2022.
- Revised Report on the Algorithmic Language Algol 60. www.masswerk.at. Процитовано 29 жовтня 2022.
- ANSI FORTRAN 66 standard"FORTRAN 66" (PDF) (PDF). Retrieved February 19, 2021.
- ANSI FORTRAN 95 standard"Fortran95" (PDF). Retrieved February 19, 2021.
- Cobol manual."COBOL" (PDF) (PDF). Retrieved January 23, 2021.
- Pascal User Manual and Report Appendix D."Pascal" (PDF) (PDF). Retrieved February 19, 2021.
- Оператори розгалуження та цикли у C#. [ 9 червня 2011 у Wayback Machine.] (укр.)
- [1] [ 17 листопада 2011 у Wayback Machine.](укр.)
- . ua-admin.com. Архів оригіналу за 7 червня 2010. Процитовано 21 червня 2011.
Це незавершена стаття про інформаційні технології. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
U komp yuternomu programuvanni instrukciya vkazivka angl statement sintaksichna odinicya imperativnoyi movi programuvannya yaka vkazuye na pevnu diyu yaku potribno vikonati Programa napisana takoyu movoyu ye poslidovnistyu instrukcij Instrukciya mozhe mati vnutrishni komponenti napriklad virazi Bagato mov programuvannya napriklad Ada Algol 60 C Java Pascal roblyat riznicyu mizh instrukciyami ta viznachennyami deklaraciyami Viznachennya abo ogoloshennya viznachaye dani z yakimi maye pracyuvati programa todi yak instrukciya viznachaye diyi yaki mayut buti vikonani z cimi danimi Instrukciyi yaki ne mozhut mistiti inshih tverdzhen ye prostimi ti yaki mozhut mistiti inshi instrukciyi ye skladenimi Zovnishnij viglyad instrukciyi i vlasne programi viznachayetsya yiyi sintaksisom abo gramatikoyu movi programuvannya Znachennya instrukciyi viznachayetsya yiyi semantikoyu Prosti instrukciyiProsti instrukciyi povni sami po sobi voni vklyuchayut prisvoyuvannya znachen vikliki pidprogram ta vkazivki yaki mozhut suttyevo vplivati na proces vikonannya programi napriklad goto return stop halt U deyakih movah procesi vvedennya ta vivedennya danih instrukciyi ta vihodi obroblyayutsya specialnimi instrukciyami todi yak inshi movi vikoristovuyut vikliki poperedno viznachenih pidprogram Prisvoyennya znachen Fortran variable i expression i Paskal Algol 60 Ada variable i expression i C C C PHP Java i variable i i expression i Vikliki pidprogram Fortran CALL i subroutine name i i parameters i C C Java PHP Pascal Ada subroutine name i parameters i Pripushennya C C PHP assert i relational expression i Java assert i relational expression i Bezumovnij perehid Fortran GOTO numbered label Algol 60 b goto b i label i C C PHP Pascal goto i label i Povernennya z pidprogrami Fortran RETURN i value i C C Java PHP return i value i Zupinka vihid Fortran STOP i number i C C exit i expression i PHP exit i number i Skladeni instrukciyiSkladeni instrukciyi mozhut mistiti poslidovnosti instrukcij vkladenih na bud yaku dostatno rozumnu glibinu i yak pravilo peredbachayut perevirki shob virishiti chi slid vikonuvati chi povtoryuvati vkazivki sho mistyatsya v nih Poznachennya lt instrukciya gt ce bud yakij okrema instrukciya mozhe buti prostim abo skladenim lt poslidovnist instrukcij gt ce bud yaka poslidovnist iz nulya chi bilshe lt instrukcij gt Deyaki movi programuvannya zabezpechuyut zagalnij sposib grupuvannya instrukcij razom tak sho bud yaku okremu lt instrukciyu gt mozhna zaminiti grupoyu Algol 60 begin lt poslidovnist instrukcij gt b end b Paskal begin lt poslidovnist instrukcij gt end C PHP Java lt poslidovnist instrukcij gt Inshi movi programuvannya mayut rizni specialni terminatori dlya kozhnogo tipu skladenih instrukcij tomu odna abo kilka instrukcij avtomatichno rozglyadayutsya yak grupa Ada if lt umova gt then lt poslidovnist instrukcij gt end if Bagato skladenih instrukcij ye vkazivkami ciklu abo vkazivkami viboru Teoretichno potribna lishe odna z cih tipiv vkazivok ale na praktici isnuyut rizni osoblivi vipadki v yakih vikoristannya podibnih mozhe zrobiti programu legshoyu dlya rozuminnya voni mozhut polegshiti programuvannya ta chasto mozhut buti realizovani nabagato efektivnishe Cikl z kontrolovanim pidrahunkom iteracij Algol 60 for index 1 b step b 1 b until b limit b do b lt instrukciya gt Pascal for index 1 to limit do lt instrukciya gt C Java for index 1 index lt limit index 1 lt instrukciya gt Ada for index in 1 limit loop lt poslidovnist instrukcij gt end loop Fortran 90 DO index 1 limit lt poslidovnist instrukcij gt END DO Cikl kerovanij umovami z perevirkoyu na pochatku ciklu Algol 60 b for b index expression b while b umova b do b lt instrukciya gt Pascal while umova do lt instrukciya gt C Java while umova lt instrukciya gt Ada while umova loop lt poslidovnist instrukcij gt end loop Fortran 90 DO WHILE umova lt poslidovnist instrukcij gt END DO Cikl kerovanij umovami z perevirkoyu v kinci ciklu Pascal repeat lt poslidovnist instrukcij gt until umova note reversed test C Java do lt poslidovnist instrukcij gt while umova Ada loop lt poslidovnist instrukcij gt exit when umova end loop Cikl z kontrolem za umovami v seredini ciklu C do lt poslidovnist instrukcij gt if umova break lt poslidovnist instrukcij gt while true Ada loop lt poslidovnist instrukcij gt exit when umova lt poslidovnist instrukcij gt end loop Korotke opracovuvannya umovi Algol 60 if umova b then b lt unconditional instrukciya gt Pascal if umova then lt instrukciya gt C Java if umova lt instrukciya gt Ada if umova then lt poslidovnist instrukcij gt end if Fortran 77 IF umova THEN lt poslidovnist instrukcij gt END IF Povne opracovuvannya umovi Algol 60 b if b umova b then b lt unconditional instrukciya gt b else b lt instrukciya gt Pascal if umova then lt instrukciya gt else lt instrukciya gt C Java if umova lt instrukciya gt else lt instrukciya gt Ada if umova then lt poslidovnist instrukcij gt else lt poslidovnist instrukcij gt end if Fortran 77 IF umova THEN lt poslidovnist instrukcij gt ELSE lt poslidovnist instrukcij gt END IF Instrukciya bagatovariantnogo viboru Pascal case c of a alert q quit end Ada case c is when a gt alert when q gt quit end case C Java switch c case a alert break case q quit break Opracovuvannya vinyatkiv Ada begin i protected code i except when i exception specification i gt i exception handler i Java try i protected code i catch i exception specification i i exception handler i finally i cleanup i Python try i protected code i except i exception specification i i exception handler i else i no exceptions i finally i cleanup i SintaksisOsnovna stattya Sintaksis movi programuvannya Okrim prisvoyuvan i viklikiv pidprogram bilshist mov pochinayut kozhnu instrukciya zi specialnogo slova napriklad goto if while tosho yak pokazano u navedenih vishe prikladah Dlya opisu formi tverdzhen riznimi movami vikoristovuvalisya rizni metodi bilsh formalni metodi yak pravilo bilsh tochni Algol 60 vikoristovuvav notaciyu Bekusa Naura BNF yaka vstanovila novij riven specifikaciyi gramatiki movi Do Fortran 77 movu opisuvali v anglijskimi slovami z prikladami pochinayuchi z Fortran 90 i dali mova opisuvalasya za dopomogoyu variantu BNF COBOL vikoristovuvav dvovimirnu metamovu Pascal vikoristovuvav yak sintaksichni diagrami i ekvivalent BNF BNF vikoristovuye rekursiyu dlya virazhennya povtorennya tomu buli zaproponovani rizni rozshirennya shob dozvoliti pryamu indikaciyu cikliv Instrukciyi ta sluzhbovi slovaDeyaki gramatiki mov programuvannya rezervuyut sluzhbovi slova abo specialno poznachayut yih i ne dozvolyayut vikoristovuvati yih yak identifikatori Ce nadaye mozhlivist stvoryuvati gramatiki mov programuvannya yaki legshe analizuvati vimagayuchi menshe pereglyadu vpered Movi bez zarezervovanih sluzhbovih sliv Fortran i PL 1 ne mayut zarezervovanih sluzhbovih sliv sho dozvolyaye taki instrukciyami yak PL 1 IF IF THEN THEN drugij IF i pershij THEN zminni Fortran IF A X 10 umovna vkazivka z inshimi variantami IF A 2 prisvoyennya zminnij z imenem IF Oskilki propuski buli neobov yazkovimi do Fortran 95 drukarska pomilka mogla povnistyu zminiti znachennya instrukciyi DO 10 I 1 5 pochatok ciklu z I sho pracyuye vid 1 do 5 DO 10 I 1 5 prisvoyennya zminnij DO10Iznachennya 1 5 Vidileni slova Osnovna stattya V Algol 60 i Algol 68 chitko vidilyalisya specialni leksemi dlya publikaciyi zhirnim shriftom napriklad begin dlya programuvannya z pevnim specialnim markuvannyam napriklad poznachkoyu begin lapkami begin abo pidkreslenim begin na Elliott 503 Ce nazivayetsya stroping tokeni yaki ye chastinoyu sintaksisu movi takim chinom ne konfliktuyut iz nazvami viznachenimi programistom Zarezervovani sluzhbovi slova Pevni imena zarezervovano yak chastinu movi programuvannya i yih ne mozhna vikoristovuvati yak identifikatori viznacheni programistom Bilshist populyarnih mov programuvannya vikoristovuyut zarezervovani sluzhbovi slova Pershimi takimi movami programuvannya buli FLOW MATIC 1953 i COBOL 1959 Z 1970 roku zarezervovani sluzhbovi slova vikoristovuyut Ada C C Java i Pascal Kilkist zarezervovanih sliv zalezhit vid movi C maye blizko 30 todi yak COBOL maye blizko 400 takih sliv Rozshiryuvanist Bilshist mov mayut fiksovanij nabir instrukcij viznachenih movoyu ale buli eksperimenti z rozshiryuvanimi movami yaki dozvolyayut programistu viznachati novi instrukciyi SemantikaOsnovna stattya Semantika mov programuvannya Semantika stosuyetsya znachennya instrukcij yaki vikoristovuyutsya u programah U bagatoh movah programuvannya vikoristovuyetsya BNF abo podibnij ekvivalent dlya virazhennya sintaksisu gramatiki dosit formalnim i tochnim sposobom ale semantika znachennya instrukcij zazvichaj opisuyetsya z vikoristannyam prikladiv i pravil anglijskoyi movi sho mozhe prizvesti do neodnoznachnosti ViraziU movah programuvannya rozriznyayut instrukciyi yaki vikonuyutsya ta virazi yaki obchislyuyutsya Virazi zavzhdi mayut znachennya a instrukciyi ni Odnak virazi chasto vikoristovuyutsya yak chastina skladenoyi instrukciyi U bilshosti mov programuvannya instrukciya mozhe skladatisya lishe z virazu zazvichaj pislya virazu stavitsya terminator krapka z komoyu Virazi takozh mozhut mistitisya v inshih virazah Napriklad viraz x y 1 mistit viraz y 1 yakij u svoyu chergu mistit znachennya y ta 1 yaki takozh tehnichno tezh ye tehnichnimi virazami Hocha poperedni prikladi pokazuyut virazi prisvoyennya deyaki movi realizuyut prisvoyennya ne yak viraz a yak instrukciyu Yaskravim prikladom cogo ye Python de ne ye instrukciyeyu a prosto rozdilnikom u vkazivci prisvoyennya Hocha Python dopuskaye kilka prisvoyuvan oskilki kozhne prisvoyuvannya ye virazom ce prosto okremij vipadok instrukciyi prisvoyennya vbudovanoyi v gramatiku movi a ne spravzhnij viraz Problemi terminologiyiNa terenah kolishnogo SRSR ye pevna plutanina shodo perekladu anglijskogo statement dosit chasto zustrichayetsya termin operator yakij z yavivsya u 1965 roci pid chas perekladu perekladayuchi Revised Report on the Algorithmic Language Algol 60 A P Yershov ta M R Shura Bura pereklali anglijske operator yak znak operaciyi a statement yak operator hocha v anglijskij terminologiyi operator tosho sluguye dlya poznachennya operacij nad operandami div detalnishe Operator programuvannya sho porodilo chimalo neuzgodzhenostej u vitchiznyanij informatici Tak v ukrayinskih ta rosijskih dzherelah mozhna zustriti napriklad pereklad if statement yak instrukciya if i yak operator if U ryadi perekladiv knig de angl statement perekladayut yak operator zamist angl operator vzhivayut termin operaciya Takozh dlya poznachennya reshti instrukcij prisvoyennya viklik tosho sho takozh poznachayetsya yak angl statement u vitchiznyanij literaturi ryad perekladachiv vzhivayut inkoli operator inkoli viraz inkoli komanda Dlya poznachennya skladenih instrukcij if if else while ta in u vitchiznyanih dzherelah zustrichayetsya termin konstrukciya napriklad konstrukciya while PrimitkiStaff Webopedia 1 veresnya 1996 What is Statement Webopedia amer Procitovano 29 zhovtnya 2022 Revised Report on the Algorithmic Language Algol 60 www masswerk at Procitovano 29 zhovtnya 2022 ANSI FORTRAN 66 standard FORTRAN 66 PDF PDF Retrieved February 19 2021 ANSI FORTRAN 95 standard Fortran95 PDF Retrieved February 19 2021 Cobol manual COBOL PDF PDF Retrieved January 23 2021 Pascal User Manual and Report Appendix D Pascal PDF PDF Retrieved February 19 2021 Operatori rozgaluzhennya ta cikli u C 9 chervnya 2011 u Wayback Machine ukr 1 17 listopada 2011 u Wayback Machine ukr ua admin com Arhiv originalu za 7 chervnya 2010 Procitovano 21 chervnya 2011 Ce nezavershena stattya pro informacijni tehnologiyi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi