ВІКІСТОРІНКА
Навигация:
Інформатика
Історія
Автоматизація
Адміністрування
Антропологія
Архітектура
Біологія
Будівництво
Бухгалтерія
Військова наука
Виробництво
Географія
Геологія
Господарство
Демографія
Екологія
Економіка
Електроніка
Енергетика
Журналістика
Кінематографія
Комп'ютеризація
Креслення
Кулінарія
Культура
Культура
Лінгвістика
Література
Лексикологія
Логіка
Маркетинг
Математика
Медицина
Менеджмент
Металургія
Метрологія
Мистецтво
Музика
Наукознавство
Освіта
Охорона Праці
Підприємництво
Педагогіка
Поліграфія
Право
Приладобудування
Програмування
Психологія
Радіозв'язок
Релігія
Риторика
Соціологія
Спорт
Стандартизація
Статистика
Технології
Торгівля
Транспорт
Фізіологія
Фізика
Філософія
Фінанси
Фармакологія


Оператори умови і їх використання

Загрузка...

Оператор - це частина програми, яку можна виконати окремо. Іншими словами, оператор визначає якусь дію. У мові C / C + + передбачено два умовних оператора: if і switch. Крім того, в деяких ситуаціях в якості альтернативи умовного оператору if можна застосувати тернарний оператор "?"

Оператор ifмає наступний вигляд:

if (вираз) оператор; else оператор;

Тут оператор може складатися з одного або декількох операторів або бути відсутнім зовсім (порожній оператор). Розділ else є необов'язковим.

Якщо вираз істинний (тобто не дорівнює нулю), виконується оператор або блок, зазначений у розділі if, в іншому випадку виконується оператор або блок, передбачений в розділі else. Оператори, зазначені в розділах if або else, є взаємовиключними.

У мові С результатом умовного виразу є скаляр, тобто ціле число, символ, покажчик або число з плаваючою крапкою. У мові C + + до цього набору типів до додавали тип bool.

Вкладені оператори if

Оператор, який знаходиться всередині іншого оператора if або else. У вкладеному умовному операторі розділ else завжди пов'язаний з найближчим оператором if, які перебувають з ним в одному блоці і не пов'язаним з іншим оператором else. Розглянемо приклад.

if (i>)

{ if (j) оператор1 ;

if {к) оператор2; / * даний if * /

else операторЗ; / * пов'язаний з даним оператором else * /

} else оператор 4; / * пов'язаний з оператором if (i) * /

Тернарна альтернатива

Замість операторів if-else можна використовувати тернарний оператор "?". Загальний вигляд замінних операторів if-else виглядає наступним чином.

if {умова}вираз; else вираз .

Оператор "?" називається тернарним, бо має три операнда. Загальний вигляд такий:

Вираз 1? Вираз 2: Вираз З

Виконання: спочатку обчислюється Вираз1. Якщо воно є істинним, обчислюється Вираз2, і його значення стає значенням всього тернарного оператора. Якщо Вираз1 є хибним, обчислюють ВиразЗ, і результатом виконання тернарного оператора вважається саме його значення. Розглянемо приклад. х = 10; у = х> 9? 100: 200; /// У даному випадку змінної у присвоюється значення 100. Якби змінна х була менше 9, то змінна у отримала б значення 200

Замість виразів в тернарному операторі можна використовувати виклики функцій. Якщо в операторі "?" Зустрічається ім'я функції, вона викликається, а її результат використовується замість значення відповідного виразу. Це означає, що, використовуючи виклики функцій в якості операндів тернарного оператора, можна виконати одну або кілька функцій відразу.

Оператор switch --багатоваріантного розгалуження switch, який послідовно порівнює значення виразу зі списком цілих чисел або символьних констант. Якщо виявляється збіг, виконується оператор, зв’язаний з відповідною константою.

switch (вираз)

case константа 1:

послідовність операторів break; case Константа2 \

послідовність операторів break; case константаЗ:

послідовність операторів break;

default:

послідовність операторів }

Значенням виразу має бути символ або ціле число. Значення виразу послідовно порівнюється з константами, зазначеними в операторах case. Якщо виявляється збіг, виконується послідовність операторів, пов'язаних з даним оператором case, поки не зустрінеться оператор break або не буде досягнутий кінець оператора switch. Якщо значення виразу не збігається ні з однією з констант, виконується оператор default. Цей розділ оператора switch є необов'язковим. Якщо він не передбачений, при відсутності збігань не буде виконаний жоден оператор. Оператор break відноситься до групи операторів переходу. Його можна використовувати як в операторі switch, так і в циклах. Коли досягається оператор break, програма виконує перехід до оператора, наступного за оператором switch.

Слід знати три важливих властивості оператора switch.

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

• Дві константи в різних розділах case не можуть мати однакових значень, за винятком випадку, коли один оператор switch вкладений в інший.

• Якщо в операторі switch використовуються символьні константи, вони автоматично перетворюються в цілочисельні.

Вкладені оператори switch

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

switch (х) {case 1:

switch (у) {case 0: printf ("Ділення на нуль.Чп");

break; case 1: process (х, у);}

break; case 2:


Типи даних: масиви, рядки.

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

Оголошення одновимірного масиву: тип імя_змінної[розмір];

Тип – оголошує базовий тип масиву, його елементів; розмір – визначає, скільки елементів є в масиві.

Доступ до елемента масиву: імя_масиву [індекс елемента];

Індекс першого елемента будь-якого масиву – 0.

Розмір одновимірного масиву в байтах обчислюється за формулою:

кількість_байтів=sizeof(базовий_тип)*кількість_елементів.

Створення вказівника на масив:

int sample[10];

int *p;

int sample[10];

p=sample;

Рядки, які закінчуються нульовим байтом. Оголошуючи масив символів, потрібно зарезервувати одну комірку для нульового байту, тобто вказати розмір на одиницю більший.

char str[11];

Функції для роботи з рядками:

strcpy(s1,s2) – копіює рядок s1 в рядок s2

strcat(s1,s2) – переписує рядок s2 в кінець рядка s1

strlen(s1) – обчислює довжину рядка s1

strcmp(s1,s2) – повертає 0, якщо s1 і s2 співпадають, негативне значення, якщо s1< s2, і позитивне, якщо s1> s2

strchr(s1,ch) – повертає вказівник на позицію першого входження символу ch у рядок s1

strstr(s1,s2) – повертає вказівник на позицію першого входження рядка s2 в рядок s1

Оголошення двохвимірного масиву:

тип імя_масиву[кількість_рядків][кількість_стовпців]

Двохвимірний масив зберігається вигляді матриці.

Розмір двохвимірного масиву в байтах обчислюється за формулою:

кількість_байтів=sizeof(базовий_тип)*кількість_рядків*кількість_стовпців.

Масиви рядків. Максимальне значення лівого індексу – кількість рядків, правого індексу – максимальна довжина кожного рядка. В кінці кожного рядка – нульовий байт \0.

Ініціалізація масивів:

тип_масиву імя_масиву[розмір1]…[розмірN]={список_значень}

Список_значень представляє собою список констант, розділених комами.

Приклади:

int i[5]={1,2,3,4,5};

char named[12]=”Я люблю С++”;

char str[2]={‘A’,’b’,’\0’);

int sqrs[3][2]={

1, 1,

2, 4,

3, 9};

Або, використовуючи спосіб субагрегатного групування:

int sqrs[3][2]={

{1, 1},

{2, 4},

{3, 9}};

Безрозмірний масив: char mas[];


5. Оператори циклу та їх використання.

У мові C/C + +, як і у всіх інших сучасних мовах програмуванняня, оператора циклу призначені для виконання повторюваних інструкцій. Ця умова може бути як заданою раніше (у циклі for), так і змінюватись під час виконання циклу (в операторах while і do-while).

Цикл for

Загальний вигляд оператора for такий.

for (ініціалізація; умова;збільшити)

Цикл for має багато варіантів. Однак найбільш загальна форма цього оператора працює таким чином. Спочатку виконується ініціалізація (initialization) - оператор присвоювання, який задає початкове значення лічильника циклу. Потім перевіряється умова (condition), що представляє собою умовний вираз. Цикл виконується до тих пір, поки значення цього виразу залишається істинним. Збільшити (increment) змінює значення лічильника циклу при черговому його виконанні. Ці розділи оператора відокремлюються один від одного крапкою з комою. Як тільки умова циклу стане хибною, програма припинить його виконання і перейде до наступного оператора.

Приклад оператора for виводить на екран числа від 1 до 20;

for (int i=1; i<=20; i++) {дія}

Цікава особливість циклу for полягає в тому, що його розділи можна пропускати. Кожен з його розділів є необов'язковим.

Приклад нескінченного циклу: for ( ; ; ) {дія}

Цикл while

Оператор циклу while має наступний синтаксис:

while (умова) оператор

Тут оператор може бути порожнім, окремим оператором або блоком операторів. Умова може задаватися будь-яким виразом. Умова циклу вважається істинним, якщо значення цього виразу не дорівнює нулю. Як тільки умова циклу стає хибною, програма передає управління оператору, що стоїть відразу після оператора while.

int i = 0;

while(i<20){
дії
i++ }

Цикл do while

На відміну від операторів for і while, які перевіряють умова на початку циклу, оператор do-while робить це в кінці. Іншими словами, цикл do-while виконується принаймні один раз. Загальний вид оператора do-while такий, do {оператор;

} Whilе (умова)

Якщо тіло циклу складається лише з одного оператора, фігурні дужки не обов'язкові, хоча вони роблять цей цикл зрозуміліше (програмісту, але не компілятору). Цикл do-while повторюється до тих пір, поки умова не стане хибною.

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

i=0;
do{
mas[i] = mas[i]+5;

i++;
}while(i<5);

Загрузка...

© 2013 wikipage.com.ua - Дякуємо за посилання на wikipage.com.ua | Контакти