- •Вступ. Основні стандарти мови
- •Директиви процесора
- •Void main()
- •Void main()
- •Void main()
- •Потоки введення-виведення
- •Індетифікатори і оператори
- •Адреси даних. Вказівники. Динамічна пам'ять
- •Int *nomer;
- •Void main()
- •Void main()
- •Розгалуження
- •Void main()
- •Void main()
- •Void main()
- •Int k, m; float cina;
Розгалуження
Команда розгалуження 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 і 2
Якщо значення виразу 2 істинне - виконуватиметься команда 1. Якщо хибне – виконавець програми переходить до наступної команди після for
Обчислюється значення виразів 3 і 2 і перевіряється пункт 2
Сума цілих чисел з (1; 15) обчислюється так:
Int n=1, S = 0;
for(; n < 16; n++) S += n;
for(int n = 1; S = 0; n < 16; ++n) S += n;
for(int n = 1; S = 0; n < 16; S += n++);
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++;
}
