Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторні роботи(інф) ІІ семестр.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
303.62 Кб
Скачать

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

Тема: Вказівники. Вказівники та масиви.

Контрольні запитання:

  1. Означення вказівника. Оголошення вказівника та ініціалізація.

  2. Як отримати доступ до даного, на яке вказує вказівник.

  3. Чи можна змінити вказівник(спрямувати на інше дане)?

  4. Чи можна створити вказівник на вказівник.? Якщо так, наведіть приклад оголошення такого вказівника та його використання.

  5. Чи припустимо в С++? Якщо "так" - опишіть семантику кожної правильної дії (не приймаючи до уваги помилкові); якщо "ні" - поясніть чому.

a) . . .

int i=11, p, j = 200, q;

p = &i; q = &p;

j = p = 1; q = p-1; p += 1;

i = ++q + p; q -= 1; i = q ++ + q;

cout << i << ‘ ‘ << j << ‘ ‘ << p << ‘ ‘ << q << endl;

b) . . .

int x = 1, y; char c = ‘a’;

int pi, qi; char pc;

pi = &x; pi = 3; y = pi; pi = c; qi = pi;

pc = qi; qi+=1; pi++; (- - pi) = 5; y = qi+1;

pc = &c; ++pc; (pc)++; pc++; pc+=1;

x = (int)pi; pi=(int)pc; pi=(int)x; x = 1+ pi; pc=(char)pi;

c = pc; pc = &y; x = qi – pi; qi = 0; qi+=pi;

y = π y = (int)π pi = pi +5; (pi+1)=0; pi=&(x+0);

  1. З чим асоціюється ім.’я масиву у С/С++?

  2. Який тип має ім’я одновимірного масиву цілих чисел? дійсних чисел з одинарною точністю?

  3. Запишіть різні способи звертання до і-го елемента одновимірного масиву А.

  4. Що відбувається при додаванні(відніманні) цілого числа до(від) вказівника?

  5. Які операції відношення(порівняння) допустимі для вказівників?

  6. Що є результатом різниці двох типізованих вказівників(однакового типу)?

  7. Нехай

int arr[5] = {11,12,13,14,15}, *p = arr;

Що буде виведено на екран ? Відповідь обгрунтуйте.

    1. cout << *++p;

    2. cout << *(++p + 2);

    3. cout << *(p++ + 2);

    4. cout << *(arr++ + 2);

    5. cout << *(arr + 2);

    6. p+=4; cout << *p;

    7. p+=4; cout << *p--;

    8. p+=4; cout << (*p)--;

Завдання 1. Дано час(години, хвилини, секунди). Знайти кількість секунд, які пройшли від початку доби. Доступ до вхідних та результуючих даних програми виконувати через вказівники.

Завдання 2. Написати бібліотеку функцій(шаблонів функцій) для роботи з одновимірним масивом. У бібліотеку включити функції заповнення масиву, виведення масиву та функцію для виконання завдання згідно варіанту.

Вимоги до завдання: переміщення по масиву, обмін значеннями тощо, виконувати за допомогою вказівників.

Варіанти:

  1. Дано масив цілих чисел. Користуючись вказівниками, поміняти місцями елементи масиву з парними і непарними індексами.

  2. Дано одновимірний масив. Змінити знак елементів, розташованих між найбільшим та найменшим елементами.

  3. Дано одновимірний масив. Знайти перший та останній нулі у масиві. Елементи, розміщені між знайденими нулями збільшити на 1.

  4. Дано одновимірний масив. Поміняти місцями дві його половини(якщо масив має непарну довжину, то центральний елемент залишається на місці).

  5. Дано одновимірний масив. Виконати обертання масиву.

  6. Написати функцію, яка знаходить найменший елемент масиву. За допомогою функції знайти мінімальні елементи у кожній половині масиву парної довжини.

  7. Написати функцію, яка отримує одновимірний масив та збільшує всі від’ємні елементи 10.

  8. Дано одновимірний масив. Знайти найбільше та найменше значення у масиві та поміняти їх у масиві місцями. Вивести перетворений масив на екран.

  9. Написати функцію, яка отримує одновимірний масив та повертає вказівник на найбільший елемент масиву. За допомогою функції замінити найбільший елемент останнім елементом масиву.

  10. Дано одновимірний масив. Виконати збільшення на 1 всіх елементів з парними індексами. Користуватися вказівниками.

  11. Дано одновимірний масив. Виконати обертання кожної половини масиву.

  12. Дано масив цілих чисел. Користуючись вказівниками, поміняти місцями перше та останнє додатне число у масиві.

  13. Написати функцію, яка знаходить найбільший елемент масиву. За допомогою функції знайти найбільші елементи у першій та другій половинах масиву.