Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ob_yektno-oriyentovani_metodi_programuvannya.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.21 Mб
Скачать

Об’єктно-орієнтовані методи програмування

1. Основні типи даних C++, модифікатори (signed, unsigned, long, short), специфікатори зберігання (extern, static, register, auto).

які не повертають

2. Арифметичні оператори в С++ (-,+,*,/,%,--,++), оператори порівняння (>,>=,<,<=,==,!=), логічні оператори (&&,||,!), бітові оператори (&,|,^,~,>>,<<).

3. Оператори взяття адресу (&) і розіменування (*) в С++.

4. Оператори for, while, do-while в С++. Оператори return, continue, break, exit, {}.

Цикл for

Оператор цикла for имеет следующий синтаксис:

for (int i=0; i<20; i++) {действие}

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

while(i){действия}

Пока условие истинно цикл будет работать. Этот вид цикла больше всего подвержен входу в беспонечный цикл.

Оператор цикла do while имеет следующий синтаксис:

do{ действие }while(i)

Этот цикл отличен от предыдущих тем, что выполнится хотя бы один раз.

Оператор return використовується для виходу з функції. Віднесення його до категорії операторів переходу обумовлено тим, що він змушує програму перейти в точку виклику функції

Оператор break застосовується в двох випадках. По-перше, в операторі switch з його допомогою переривається виконання послідовності case (див. розділ "Оператор вибору - switch" раніше в цьому розділі). У цьому випадку оператор break НЕ передає управління за межі блоку. По-друге, оператор break використовується для негайного припинення виконання циклу без перевірки його умови, в цьому випадку оператор break передає управління оператору, наступному після оператора циклу.

Функція exit () не є оператором мови, однак розглянемо можливість її застосування. Аналогічно припинення виконання циклу оператором break, можна припинити роботу програми і за допомогою виклику стандартної бібліотечної функції exit (). Ця функція викликає негайне припинення роботи всієї програми і передає управління операційній системі.

Можна сказати, що оператор continue трохи схожий на break. Оператор break викликає переривання циклу, a continue - переривання поточної ітерації циклу і здійснює перехід до наступної ітерації. При цьому всі оператори до кінця тіла циклу пропускаються. У циклі for оператор continue викликає виконання операторів збільшення і перевірки умови циклу. У циклах while і do-while оператор continue передає управління операторам перевірки умов циклу.

5. Одно-, дво- і багатовимірні масиви С++. Вказівник на масив. Передача масиву у функцію. Адресна арифметика. Ініціалізація масиву. Безрозмірні масиви.

Одновимірні масиви

У разі повної ініціалізації вказується повний список значень у фігурних дужках.

int A [4] = {1, 4, 2, 6};

Розміри масивів при повній ініціалізації можна не вказувати. Компілятор сам для себе визначить ці розміри і виділить відповідну пам'ять.

Двовимірні масиви

У разі повної ініціалізації вказується повний список значень у фігурних дужках. Кожен рядок ініціалізується в своїх фігурних дужках.

int A [3] [4] = {{1, 4, 2, 6},

{11, 1 4, 1 2, 1 6},

{1, 4, 2, 6}

};

Перший розмір масиву, тобто кількість рядків, при повній ініціалізації можна не вказувати.

Вказівником називається змінна, оголошена наступним чином

type * імя_указателя;

Визначення. Типом покажчика називається type *.

Передача одновимірних масивів у функцію

При передачі у функцію одновимірного масиву в списку фактичних аргументів указуються ім'я масиву та розмір масиву. В імені масиву немає інформації про розмір масиву. Компілятор на ім'я масиву може визначити тільки тип елементів масиву і адресу початкового елемента масиву.

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

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

Приклади прототипів

1. int max (int * A, int Dim);

Можна також писати

int max (int A [], int Dim);

Передача двовимірних масивів у функцію

У разі двовимірних масивів потрібно точно дотримуватися збіг типів фактичних і формальних параметрів функції.

Приклади.

1. Функція знаходить максимальний елемент у масиві

int max (int A [] [100], int KolStroc, int KolStolb);

Дана функція може викликатися тільки для масивів, у яких другий розмір 100. В іншому випадку, буде помилка компіляції.

Наприклад, можна викликати цю функцію для частково ініціалізованої масиву

int A [] [100] = {{1,3,5}, {15,2,3}};

int res = max (A, 2, 3);

6. Символьні рядки С++. Масиви символьних рядків і їх ініціалізація. Передача символьних рядків у функцію. Безрозмірні масиви.

Символьний рядок у С++ являє собою масив елементів типу char, який закінчується символом ‘\0’ (NULL). Масиви символів оголошуються так:

char назва_рядка[довжина_рядка];

Наприклад: char a[32];

const int len=80; char str[len];

Оскільки рядки є масивами символів, то назва рядка є вказівником на його перший елемент.

Ініціалізація символьного рядка

С++ дозволяє ініціалізувати масиви при оголошенні:

const char text[]=“Ми вивчаємо програмування”;

char slovo[11]=“University”;

char sl[]={‘U’,’n’, ‘i’,’v’,’e’,’r’,’s’,’i’,’t’,’y’,’\0’};

char tit[32]=“Hello, C++”;

Якщо кількість символів, що присвоюється рядку, менша від розміру масиву, більшість компіляторів С++ присвоюють символи NULL елементам рядкового масиву, що залишаються. Пізніше, в програмі, у цей масив можна буде вмістити довший рядок, обов'язково помістивши в кінці символ ‘\0’.

Передавання символьного рядка у функцію подібне до передавання будь-якого масиву як параметру. Наприклад:

void show-ryad(char ryad[])

7. Вказівники С++. Оператори для роботи з вказівниками. Адресна арифметика. Присвоєння, порівняння вказівників. Вказівники і масиви. Масиви вказівників.

Вказівник - це символічне представлення адреси. Він використовується для непрямої адресації змінних і об'єктів.

В мові С++ є операція визначення адреси — &, за допомогою якої визначається адреса комірки пам’яті, що містить задану змінну. Наприклад, якщо vr — ім’я змінної, то &vr — адреса цієї змінної.

В С++ також існують і змінні типу вказівник. Значенням змінної типу вказівник є адреса змінної або об'єкта. Нехай змінна типу вказівник має ім'я ptr, тоді в якості значення їй можна присвоїти адресу за допомогою наступного оператора:

ptr=&vr;

В мові С++ при роботі з вказівниками велике значення має операція непрямої адресації — *. Операція * дозволяє звертатися до змінної не напряму, а через вказівник, який містить адресу цієї змінної. Ця операція є одномісною і має асоціативність зліва направо. Цю операцію не слід плутати з бінарною операцією множення. Нехай ptr — вказівник, тоді *ptr — це значення змінної, на яку вказує ptr.

Опис змінних типу вказівник здійснюється за допомогою операторів наступної форми:

<тип> *<ім'я вказівника на змінну заданого типу>;

8. Загальний вигляд і область видимості функції С++. Аргументи функції. Передача параметрів по значенню і по посиланню.

Кожна функція повинна мати оголошення і визначення. Оголошення функції називається її прототипом.

Загальний вид прототипу виглядає в такий спосіб. тип_значення_що_повертається ім'я_функції(тип_параметра1,

... ,

тип_параметра N);

Фігурні дужки обмежують тіло функції, що складає з операторів, що розв’язують поставлену задачу. Крім того, фігурні дужки є межами області видимості всіх змінних, оголошених усередині тіла функції (такі змінні називаються локальними). Ця область закрита від зовнішнього світу, і доступ до неї з інших функцій неможливий. Вся інформація може надходити ззовні лише по двох каналах: через фактичні параметри, чи аргументи, що представляють собою значення формальних параметрів, і через глобальні змінні, які є видимими в будь-якій точці програми

. Передача аргументів за значенням

У мові С++ є два способи передачі аргументів у функцію: за значенням і за посиланням. За замовчуванням, якщо аргументом є не масив, застосовується перший спосіб. Для цього створюється копія значення аргументу, що привласнюється формальному параметру. Всі операції, виконані усередині функції, стосуються лише копії аргументу і не впливають на оригінал, що існує в модулі, що здійснює виклик.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]