Основні керуючі конструкції мови С



Умовний оператор if ...else.

 

if (умова)

оператор1

else

оператор2

 

Якщо умова істинна, то виконуватися перший оператор, інакше другий. Якщо в умові відпрацьовують кілька операторів, то вони поміщаються фігурні дужки. Друга частина (else) може опускатися якщо нам не потрібно обробляти помилкове умова. Допускається вкладення умовних операторів. При порівнянні на рівність необхідно пам'ятати, що a = b пишеться як a == b (подвійне одно, інакше ми отримаємо прісваеніе, тобто a приклад значення рівне b). Інші операції порівняння: більше (>), менше (<), не дорівнює (!=), логічна операція І (&&), логічна операція АБО (||).

 

Приклад (оператор - пошук мінімального з двох чисел)

 

printf ("Мінімальна зі значень% i і% i одно", a, b);

int a = 1;

int b = 2;

if (a <b)

printf ("% d ", a);

else

printf ("% d ", b);

if (a == b)

printf (" (обидва числа однакові) ");

printf (" \ n ");

 

Ітераційний цикл- цикл керований лічильником.

 

for (ініціалізація; умова; операція)

{оператори}

 

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

 

Приклад (обчислення факторіала числа):

printf (" обчислення факторіала \ n ");

const int N = 5;

int i, f = 1;

for (i = 1; i <= N; i + +)

{f*= i;

printf ("% d! =% d \ n ", i,f);}

 

В якості операції в прикладі використовується постфіксній форма інтремірованія (збільшення змінної на 1). Цикл повторюється до тих пір, поки i менше або дорівнює N. Операція f *= i (прісваеніе з множенням) еквівалентна формі f = а * i.

 

Цикл з передумовою- цикл керований умовою.

 

while (умова)

{оператори}

 

Цикл виконується поки умова істинна (умова перевіряється на початку).

Приклад (обчислення суми чисел):

 

printf ("обчислення суми чисел \ n");

i = 0;

f = 0;

while (i <5)

{f+ = + + i;

 printf ("S (% d) =% d \ n ", i,f);}

 

Операція f + = + + i еквівалентна двом операторам i++; f = f + i;

Цикл з постусловіем- цикл керований умовою.

 

do

{оператори}

while (умова)

 

Цикл виконується поки умова істинна (умова перевіряється в кінці, тобто тіло циклу випольняется принаймні один раз).

 

Приклад (обчислення квадратів);:

 

printf ("обчислення квадратів \ n");

i = 0;

do

{f= i * i;

printf ("% d ^ 2 =% d \ n", i, f);

i + +;}

while (f <25);

 

Оператор виборуswitch.

 

switch (вираз)

{case константа_1: оператори; break;

...

case константа_n: оператори; break;

default: оператори;

break;}

 

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

 

Приклад.

 

Int a = 2, b = 5;

...

for (i = 0; i <= 5 ; i + +)

{switch(i)

{case0: c = a + b; break;

      case 1: c = a - b; break;

      case 2: c = a * b; break;

    case 3: c = (float) a / b; break;

  default: c = 0; break;}

printf ("Результат: i =% i, c =% f \ n", i,

c);}

 

Оператор виходу зі структури break може бути опущений. У цьому випадку, пошук збігів буде продовжений після виконання відповідного блоку case.

 

Оператори break і continue.

Використання оператора break ми вже бачили на прикладі структури switch. Оператор break - це вихід з циклу чи конструкції switch.

Приклад (цикл по i від 0 до 4, але при i = 2 відбувається вихід з циклу):

for (i = 0; i <5; i + +)

{if(i == 2) break;

    printf ("Індекс: i = % i \ n ", i);}

 

Оператор continue - перехід на кінець циклу (тобто пропуск всіх операторів від continue до кінця структури циклу).

Приклад (цикл по i від 0 до 4, але при i = 2 відбувається перехід на кінець циклу):

for (i = 0; i <5; i + +)

{if(i == 2) continue;

    printf ("Індекс: i =% i \ n ", i);}

 

Індівідуальні завдання

 

1. Написати програму, яка виводить на екран трикутник із символів '*' виду:

*

**

***

****

Висота (довжина сторони) задається з клавіатури.

 

2. Написати програму, яка виводить на екран трикутник із символів '*' виду:

*

***

*****

*******

Висота задається з клавіатури.   

3. Ввести з клавіатури матрицю A(5,5) і вектор X(5). Обчислити добуток матриці на вектор.

4. Ввести з клавіатури матрицю B(4,5). Знайти стовпець із максимальною сумою елементів.

5. Ввести з клавіатури два масиви по 10 елементів кожний. Знайти суму елементів масивів з однаковими індексами.

6. Для матриці визначити яких елементів більше: позитивних або негативних.

7. Для квадратної матриці знайти суму елементів, що перебуває вище головної діагоналі.

8. Ввести з клавіатури два масиви по 10 елементів кожний. Знайти суму елементів масивів зі зворотніми індексами.

9. Для матриці підрахувати кількість позитивних та негативних елементів.

10. Для квадратної матриці знайти суму елементів, що перебуває нижче головної діагоналі.

11. Для квадратної матриці знайти суму елементів, що перебуває на головної діагоналі.

12. Преобразовати квадратну матрицю, введену з клавіатури в матрицю з нулями на головній діагоналі.

13. Для матриці, введеної з клавіатури знайти суму всіх елементів.

14. Для матриці, введеної з клавіатури знайти суму всіх позитивних елементів.

15. Для матриці, введеної з клавіатури знайти суму всіх негативних елементів.

 


Дата добавления: 2018-04-05; просмотров: 425; Мы поможем в написании вашей работы!

Поделиться с друзьями:






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