Базові елементи програми( у процедурному програмуванні) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Базові елементи програми( у процедурному програмуванні)



Будь-яка програма складається з операторів, які описують певну послідовність дій. Як правило, оператори поділяються на групи, що певною мірою описують їх функціональність. Базовими елементами програми називаються такі основні логічні структури:

1) слідування — це послідовність операторів (груп операторів), які виконуються один за одним в порядку їх запису в тексті програми;

2) розгалуження — керівна структура, яка в залежності від виконання заданої умови визначає вибір для виконання одного з двох заданих у цій структурі операторів (груп операторів);

3) повторення — цикл, у якому група операторів може виконуватися знову, якщо справедлива задана умова.

Слід зауважити, що насправді до трьох основних структур слід додати допоміжні: неповне розгалуження, багатогілкове розгалуження (вибір з декількох варіантів), виклик процедури (особливо важливим це стає у випадку рекурсивної процедури) У будь-якій мові програмування існують групи операторів розгалуження та операторів циклу.

 

Умовні конструкції

Можливість контролювати виконання вашої програми, дозволяючи їй приймати рішення про те, який код слід виконувати є дуже цінним для програміста. Конструкція If дозволяє контролювати чи слід програмі виконувати певну частину коду чи ні в залежності від того якою є дана умова — істинною або хибною. Однією з важливих властивостей конструкції If є те, що вона дозволяє програмі вибрати певну дію, ґрунтуючись на введені користувачем дані. Наприклад, за допомогою If можна перевіряти введеня користувачем паролю, програма може вирішити, чи має користувач доступ до програми.

Без умовних операторів, таких як If, програми будуть працювати майже однаково кожен раз, завжди дотримуючись тієї ж послідовності викликів функцій. If дозволить виконувати програму по різному, що приведе до більш цікавого коду. Якщо ви почали вивчати мову програмування C, то перед даним уроком раджу засвоїти матеріал з Вступ у C.

 

Перш ніж говорити про фактичну структуру конструкції If, розглянемо значення ІСТИНА(TRUE) і БРЕХНЯ або ХИБНІСТЬ(FALSE) в комп'ютерній термінології. Істинне твердження є одиницею, результатом якого є відмінне від нуля число. Хибне твердження оцінюється як нуль. При виконанні порівняння з реляційними операторами, оператор повертає 1, якщо порівняння істинно, або 0, якщо порівняння невірно. Наприклад, перевірка 0 == 2 повертає 0. Перевірка 2 == 2 оцінюється в 1. Якщо це вам не зрозуміло, спробуйте використовувати Printf для виведення результатів цих різних порівнянь (наприклад, printf ("% d", 2 == 1);)

При програмуванні, виконання програми часто вимагає перевірки одного значення, збереженого в змінній, з іншим значенням, щоб визначити, чи є воно більше, менше або дорівнює іншому.

Є цілий ряд операторів, які дозволяють ці перевірки.

Як відомо це реляційні оператори

> більше ніж 5 > 4 is TRUE

< менше ніж 4 < 5 is TRUE

>= більше або рівне 4 >= 4 is TRUE

<= менше або рівне 3 <= 4 is TRUE

== рівне 5 == 5 is TRUE

!= не рівне 5!= 4 is TRUE

Цілком імовірно, що ви бачили це раніше, можливо, з дещо іншими символами. Вони не повинні представляти будь-яких перешкод до розуміння. Тепер ви розумієте, що істинність і хибність використовуються для операторів порівняння, давайте подивимося на реальну структуру конструкції If.

Базовий синтаксис

Структура конструкції If:

if (твердження істинне)

Виконати цей рядок коду

Приведемо простий приклад, який показує синтаксис:

if (5 < 10)

printf("П’ять зараз менше ніж десять, це великий сюрприз=)");

Тут ми просто виводимо «П’ять зараз менше ніж десять, це великий сюрприз=)", щоб побачити чи це правда чи ні, якщо пощастить, це так! Якщо ви хочете, ви можете написати свою власну повну програму, включаючи stdio.h і помістити це в основній функції і запустити програму для перевірки.

Щоб виконувалось більше одного оператора після того як If істинно, використовуйте дужки, як ми зробили з тілом основної функції. Все, що всередині фігурних дужок, називається складним виразом чи блоком. При використанні If, код, який залежить від If називається "тілом" даної конструкції.

if (TRUE) {

/* між фігурними дужками – тіло конструкції If */

Виконати всі операції в тілі

}

Я рекомендую завжди використовувати дужки після конструкції If. Якщо ви зробите це, ви ніколи не повинні пам'ятати, щоб додати їх у тому випадку, коли ви захочете виконати більше однієї операції в тілі і зробить тіло конструкції If візуально більш ясним.

Else

Іноді, коли умова в If набуває хибності(False), було б непогано, щоб виконати певний код, на відміну від коду, який виконується коли умова If буде істинною. Конструкція ELSE (ІНАКШЕ) говорить, що будь-який код після неї (будь це код в одному рядку або код в дужках) виконується у випадку, якщо твердження If невірне.

if (TRUE) {

/* Виконати блок, якщо TRUE */

}

else {

/* Виконати блок, якщо FALSE */

} Else if

Інше використання else це коли є кілька умовних операторів, які можуть оцінити все, але ви хочете тільки одного оператора, тіло якого виконається. Ви можете використовувати " else if " після оператора If і його тіла, таким чином, якщо перше твердження вірне, то "else if" буде ігноруватися, але якщо твердження невірно, конструкція буде перевіряти стан для виразу else if. Якщо це If твердження було правдивим вираз else не буде перевірятися. Можливо використовувати численні вирази else if, щоб тільки один блок коду виконувався.

Давайте подивимося на просту програму, щоб випробувати це:

#include <stdio.h>

int main() /*Важлива частина програми!*/

{

int age; /* Створюємо змінну... */

 

printf("Введіть ваш вік"); /* Запитуємо вік */

scanf("%d", &age); /* Ввід даних для змінної віку */

if (age < 100) { /* Якщо вік менше 100 */

printf ("Ви молоді\n"); /* Просто виводимо текст для розуміння синтаксису... */

}

else if (age == 100) { /* використовуєм else if*/

printf("Ви старі\n");

}

else {

printf("Ви дужеее старі\n"); /* Виконується якщо вік більше 100 */

}

return 0;

}

 

Цикли.Типи циклів.

Цикл — різновид керуючої конструкції у високорівневих мовах програмування, призначена для організації багаторазового виконання набору інструкцій (команд). Також циклом може називатися будь-яка багатократно виконувана послідовність команд, організована будь-яким чином

Безумовні цикли

Іноді в програмах використовуються цикли, вихід з яких непередбачено логікою програми. Такі цикли називаються безумовними або нескінченними. Особливих синтаксичних засобів для створення таких циклів, через їхню нетиповість, мови програмування не передбачають, тому такі цикли створюються за допомогою конструкцій призначених для створення звичайних (або умовних) циклів. Для забезпечення нескінченного повторення перевірка умови в такому циклі відсутня (якщо дозволяє синтаксис, як, наприклад, у циклі LOOP…END LOOP мови Ада), або замінюється константним значенням (while true do … в Паскаль).

Цикл з передумовою

Цикл з передумовою — цикл, що виконується доки істинна деяка умова, вказана перед його початком. Ця умова перевіряється до початку виконання тіла циклу, тому тіло може бути не виконане жодного разу (якщо умова з початку хибна). У більшості процедурних мов програмування здійснюється за допомогою інструкції while, звідси його друга назва — while-цикл. На мові Паскаль цикл з передумовою має наступний вигляд:

while <умова> do

Begin

<тіло циклу>

end;

На мові Сі:

while(<умова>)

{

<тіло циклу>

}

Цикл з післяумовою

Цикл з післяумовою — цикл, в якому умова перевіряється після виконання тіла циклу. Звідси випливає, що тіло циклу завжди виконується хоча б один раз. У мові Паскаль такий цикл здійснює інструкція repeat..until; у Сі — do…while.
На мові Паскаль цикл з післяумовою має наступний вигляд:

repeat <тіло циклу>until <умова>

На мові Сі:

do{ <тіло циклу>}while(<умова>)

Цикл з виходом з середини

Цикл з виходом з середини — найзагальніший тип умовного циклу. Синтаксично такий цикл оформляється за допомогою трьох інструкцій: початок циклу, кінець циклу циклу та інструкції (команди) виходу з циклу. Інструкція початку позначає точку програми, з якої починається тіло циклу, інструкція кінця — точку, де тіло закінчується. Всередині тіла має бути присутня команда виходу з циклу, при виконанню якої цикл завершується і керування передається на оператор, наступний після інструкції кінця циклу. Природньо, щоб цикл виконався більш ніж один раз, команда виходу має викликатися не безумовно, а тільки за умови виконання умови виходу.

Принциповою відмінністю такого різновиду циклу від розглянутих вище є те, що частина тіла циклу, розташована після початку циклу і до команди виходу, виконується завжди (навіть якщо умова виходу з циклу істинна при першій ітерації), а частина тіла циклу, наступна за командою виходу, не виконується при останній ітерації.

Легко побачити, що за допомогою циклу з виходом з середини легко утворити і цикл з передумовою (розташував команду виходу на початку тіла циклу), і цикл з післяумовою (розташував команду виходу в кінці тіла циклу).

Частина мов програмування містить особливі інструкції для утворення циклу з виходом з середини. Так, у мові Ада для цього використовується конструкція LOOP…END LOOP і команда виходу EXIT або EXIT WHEN:

LOOP... Частина тіла циклу EXIT WHEN <умова виходу>;... Частина тіла циклу IF <умова виходу> THEN EXIT; END;... Частина тіла циклуEND LOOP:

Цикл з лічильником

Цикл з лічильником — цикл, в якому деяка змінна змінює своє значення від заданого початкового значення до кінцевого значення з деяким кроком, і для кожного значення цієї змінної тіло циклу виконується один раз. В більшості процедурних мов програмування реалізується оператором for, в якому вказується лічильник (так звана «змінна циклу»), потрібна кількість проходів (або межове значення лічильника) і, можливо, крок, з яким змінюється лічильник. Наприклад, в мові Оберон-2 такий цикл має вигляд:

FOR v:= b TO e BY s DO... тіло циклу END

Цикл по колекції (foreach)

Ще одним варіантом є цикл, який пробігає елементи з деякої множини, без явного задання порядку перебору цих об'єктів. Такі цикли представляють собою формальний запис інструкції виду: «Виконати дію X для всіх елементів множини M». Теоретично такий цикл ніяким чином не визначає, в якому порядку буде застосувуватись дія до елементів множини, хоча певні мови програмування, звісно, можуть встановлювати конкретний порядок перебору елементцв. Довільність дає можливість оптимізації виконання циклу за рахунок організації доступу в найвигіднішому порядку, а не в порядку зазначеному програмістом. За наявності можливості паралельного виконання декількох операцій можливо навіть розподілення виконання циклу по колекції, коли одна і та сама операція одночасно виконується на різних обчислювальних модулях для різних об'єктів, при тому що логічно програма залишається послідовною.

Цикл по колекції присутні в деяких мовах програмування (C#, Eiffel, Java, JavaScript, Perl, Python, PHP, LISP, Tcl та ін.) — вони дозволяють виконувати цикл по всім елементам даної колекції об'єктів. У визначенні такого циклу треба вказати лише колекцію об'єктів і змінну, якій в тілі циклу буде присвоєне значення оброблюваного в цей час об'єкта (або посилання на нього). В різних мовах програмування синтаксис оператора різний:

C#:

foreach (type item in set) { //використання item }

 



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 169; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.227.161.226 (0.022 с.)