Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Системне_програмування.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
43.18 Кб
Скачать

Розгалуження

Команда розгалуження if має 2-і форми: повну та коротку. Повна форма є така:

if(<логічний вираз>)<команда 1>; else <команда 2>;

Дія команди: обчислюється значення логічного виразу. якщо це значення істинне, то виконується команда 1, у протилежному випадку - команда 2.

if (x > 7) y = pow(x, 2); else y = sqrt(x);

if (x <= 5) z = exp(x);

else z = ++x;

Обчислити і вивести на екран значення складеної функції у деякій заданій користувачем точки Х.

#include <iostream.h>

#include <math.h>

#include <conio.h>

Void main()

{

clrscr();

float x, y;

cout <<"Vvedit x \n"; cin >> x;

if (x < 0) y = tan(fabs(x));

else

if (0 <= x && x < 5) y = pow(x, 3);

else y = log(x)/log(5);

cout <<"\n y = "<< y;

getch();

}

Коротка форма команди ifмає вигляд:

if (<логічний вираз 1>)<команда 1>;

Дія команди: обчислюється значення логічного виразу. Якщо воно істинне, то виконується команда 1, інакше виконуватиметься команда, яка записана після if.

if(a > 7)

{

y = a++

z = a+5;

}

if (a <= 9) z = ++a/2; y = z + a;

Команда ?. Команда ? є аналогом команди розгалуження if. Загальний його вигляд такий:

<логічний вираз> ? <команда або логічний вираз 1> : <команда або логічний вираз 2>

Вивести 2 цілі числа. Знайти більші з них.

#include <iostream.h>

#include <conio.h>

Void main()

{

clrscr();

int x, y;

cout <<"Vvedit x, y\n"; cin >> x >> y;

cout <<"Max = ";

x > y ? cout << x : cout << y;

getch();

}

Команада вибору (switch). Команада вибору має такий вигляд:

switch(<вираз>)

{

case <ознака 1> : <команада 2>; break;

...

case <ознака n> : <команда n>; break

default:<ознака n+1>;

}

Дія команди: якщо значення виразу збігається зі значенням ознаки n, то виконується команда з номером n і розглядається наступний за нею рядок case і т.д.. Щоб припинити роботу команди switch використовують команду break.

{

case 'a' : cout <<"a"; break;

case 'b' :

case 'c' : cout <<"bc"; break;

default;

}

Задача про квитки

#inlcude <iostream.h>

#include <conio.h>

Void main()

{

clrscr();

Int k, m; float cina;

cout <<"Уведіть номер k міста і кількість квитків m";

cin >> k >> m;

switch(k)

{

case 1: cina = 22; break

case 2:

case 3:

case 4: cina = 25; break;

case 5:

case 6: cina = 30; break;

case 7:

case 8: cina = 35; break;

default:

cout <<""

cina = 0;

}

cout << m <<"квитків до міста"<< k <<"коштують";

cout << cina*m <<" грн.";

getch();

}

Складіть логічний вираз для пошуку у бібліотеці деякої книжки з параметрами такими як видавництво «Київ», рік 2000, автор – Пушкін.

If (vyd == “Kyiv” && rik == 2000 && avt == “Pushkin”);

Оператор безумовного переходу (goto)

Ця команда змінює послідовність виконання інших команд шлахом переходу до виконання команди, що має якусь позначку(мітку). Команда переходу така:

Goto <позначка>;

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

<позначка>: <команда>;

Ввести декілька наборів коефіцієнтів квадратичного рівняння ax2 + bx +c і вивести повідомлення чи буде воно матиме дійсні корені:

#include <iostream.h>

#include <conio.h>

#include <math.h>

void main()

{

clrscr();

float a, b, c, d;

vvid: cout << “\n Уведіть коефіцієнти рівняння\n”;

cin >> a >> b >> c;

if (a == 0) goto finish;

d = pow(b, 2) – 4 * a * c;

if (d >= 0) cout << “Це рівняння немає коренів”;

else

{

cout << “Дані введено неправильно”;

cout << “Рівняння дійсних розв’язків немає”;

goto vvid;

}

finish: getch();

}

Перерахований тип

Перерахований тип утворюють із перерахуванням іменованих сталих цілого типу так:

enum <назва типу> = {<стала 1> = <значення 1>, … ,<стала N> = <значення N>};

або

enum <назва типу> = {<стала 1>, … , <стала N>};

Деякі сталі у списку можна ініціалізувати. Неініціалізовані сталі автоматично буде присвоєно значення на одиницю більше від значення попередньої сталої у списку.

enum week = {mon, tue, wed, the, fri, sat, sun};

enum colors = {red = 1, green, yellow = 6, white};

Скласти програму, яка б виводила на екран розклад роботи на тиждень.

#include <iostream.h>

#include <conio.h>

void main()

{

clrscr();

enum svet {mon, tue, wed, the, fri, sat, sun}; int day;

cout << “ \n\n”;

for (day = mon; day <= sun; day++)

switch (day)

{

case mon: cout << “Пон\t Зустріч акціонерів\n”; break;

case tue: cout << “Вів\t Відрядження\n”; break;

case wed: cout << “Сер\t Відрядження\n”; break;

case the: cout << “Чет\t Відрядження\n”; break;

case fri: cout << “Пят\t Здати звіт. Зайти в банк\n”; break;

case sat: cout << “Суб\t Ідемо на рибалку\n”; break;

case sun: cout << “Нед\t Відвідати батьків\n”; break;

}

getch();

}

ЦИКЛИ

Цикл – це процес використання певного набору команд деяку кількість разів. У мові C++ є три команди циклу: for, while, do-while.

for(<вираз 1>;<логічний вираз 2>;<вираз 3>) <команда 1>;

Вираз 1 призначений для підготовки циклу і виконується один раз. Переважно тут задають початкові значення змінних циклу(підготовлюють цикл). У виразі 2 записують умови виходу із циклу. У виразі 3 – команда зміни параметрів у циклу. Якщо за допомогою одного із виразів необхідно виконати декілька дій, то використовують команду «кома». Вираз 1 і 3 або один із них у команді for можуть бути відсутні у команді for. Наприклад:

for(; I < 10;) i++;

Дія команди:

  1. Обчислюється значення виразів 1 і 2

  2. Якщо значення виразу 2 істинне - виконуватиметься команда 1. Якщо хибне – виконавець програми переходить до наступної команди після for

  3. Обчислюється значення виразів 3 і 2 і перевіряється пункт 2

Сума цілих чисел з (1; 15) обчислюється так:

  1. Int n=1, S = 0;

for(; n < 16; n++) S += n;

  1. for(int n = 1; S = 0; n < 16; ++n) S += n;

  2. for(int n = 1; S = 0; n < 16; S += n++);

  3. for(int n = 1; S = 0; n < 16; S += n; n++);

Знайти кількість і добуток усіх парних цілих чисел із проміжку від 4 до 11. Обчислюється це так:

int n, D, kill;

for (D = 1, kill = 0, n = 4; n <= 11; n +=2)

{

D *= n; kill++;

}