Використання керуючих конструкцій Опис основних керуючих конструкцій

Лабораторна робота № 2

Тема: Використання керуючих конструкцій.

Мета: Отримання навичок роботи з основними керуючими конструкціями С. 

Теоретичні відомості:

В мові програмування С використовуються наступні керуючі конструкції:

1) Цикл for

for (виразі] вираз2', вираз З)

{оператор}

Виразі описує ініціалізацію циклу; вираз 2 — перевіряє умову завершення цикла, якщо він істинний то виконується оператор] вираз З — обчислюється після кожної ітерації. Цикл повторюється до тих пір, поки вираз не стане хибним. Наприклад: for(x=1; х<=7; х++) printf ("%d\n", power(x, 2));

2) Цикл while:

while (вираз) оператор Якщо вираз є істинним, то оператор виконується до тих

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

Наприклад:

while (k<n) { у = у * х; k++;

}

3)  Цикл do-while. Його синтаксис:

do оператор

while(et/pa3);

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

Наприклад:

х=1;

do printf ("%d\n", power(x, 2));

while(++x<=7);

Оператор do-while перевіряє умову після виконання операторів циклу.

Оператор while перевіряє умову перед виконанням операторів циклу.

4) Перемикач switch має синтаксис: switch (вираз) {

case константа1: оператор 

case константа2: оператор 

case константа З: оператор

…….

default: оператор

}

Порівнює значення виразу з константами у всіх варіантах

case та передає керування оператору, що відповідає значенню виразу. Якщо жодна з констант не відповідає значенню виразу, тоді керування передається оператору з міткою default. Якщо мітка default відсутня, не виконується ніяких дій.

Наприклад:

switch(x)

case 2: 

case: y=3;

5) Оператор break перериває виконання найближчого вкладеного зовнішнього оператора switch, while do або for керування передається наступному оператору

Наприклад: for(i=0; i<n; і++) 

                     if((a[i] = b[і])= =0)

                       break;

6) Оператор продовження continue передає керування на початок найближчого зовнішнього оператора циклу switch while, do або for, та викликає початок наступної ітерації

7) Оператор повернення return. Перериває виконання поточної функції та повертає керування програмі що її викликала.

2.2. Приклад

Знайти усі прості неспрощувані дроби між 0 та 1 знаменники яких не перевищують 7 (дріб задається двома натуральними числами — чисельником та знаменником ) # mclude < stdio.h> ^include <math.h>

main()

{

int i.j, I, k, i1, j1, k2; 

printf (“Початок програми \n \n");

/*Завдання циклів */ 

For (I1=2 ;i1<8;++jl)

for (j1=1;j1<i1;++j1) 

{

/*Вивід дробу вигляду 1 /n */

If (j1= =1) printf("%d%d\n", jl, i1)

I=0; i=i1; j=j1;

/*Цикл для визначення НОД*/

 do

{

k=i-j; K2=i1%j1;

jf(((k= =0)&&(j!=1))||(k2= =0))l=1;

i=j; j=k;

} while(k>0);

/*Вивід дробу, якщо флаг не встановлений */ 

If (I!=1) printf ("%d%d\n", j1, i1);

} 

return 0;

}

2.3.  Порядок виконання роботи

2.3.1.  Проаналізувати умову задачі.

2.3.2.   Розробити алгоритм та створити програму розв'язання задачі згідно з номером варіанту.

2.3.3.  Результати роботи оформити протоколом.

2.4.  Варіанти завдань

5) Натуральне число називається паліндромом, якщо його запис читається однаково з початку та з кінця (наприклад, 4884 393, 1). Знайти всі числа-паліндроми, що не перевищують 100.

Відповідь:

# include <iostream.h>

# include <string.h>

#include <stdlib.h>

#include <conio.h>

#include <math.h>

main ()

{

for(int i=10;i<100;i++)

{

char s[25];

int k,p,n;

itoa (i, s, 10);

if (s[0]==s[1])

p=1;

else

p=0;

if (p==1)

 cout <<i<<endl;

}

getch();

}

Висновок:  На цій лабораторній роботі я отримав навички роботи з основними керуючими конструкціями С.