- •Модуль 1. Складені типи даних
- •Опорний конспект
- •Тренувальні вправи
- •Завдання та методичні вказівки для самостійної роботи студента
- •Лекція 2.
- •Опорний конспект
- •Тренувальні вправи
- •Контрольні запитання
- •Завдання та методичні вказівки для самостійної роботи студента
- •Практична робота №1(1)
- •Завдання
- •Завдання та методичні вказівки для самостійної роботи студента
- •Практична робота №1(2)
- •Завдання
- •Завдання та методичні вказівки для самостійної роботи студента
- •Лабораторна робота №1(1)
- •Завдання для виконання
- •Завдання та методичні вказівки для самостійної роботи студента
- •Лабораторна робота №1(2)
- •Завдання для виконання
- •Лекція 3
- •Опорний конспект
- •Тренувальні вправи
- •Задачі для самостійного розв’язання
- •Контрольні запитання
- •Завдання та методичні вказівки для самостійної роботи студента
- •Лекція 4
- •Опорний конспект
- •Тренувальні вправи
- •Контрольні запитання
- •Завдання та методичні вказівки для самостійної роботи студента
- •Практична робота №2(1)
- •Завдання
- •Завдання та методичні вказівки для самостійної роботи студента
- •Практична робота №2(2)
- •Завдання
- •Завдання та методичні вказівки для самостійної роботи студента
- •Лабораторна робота №2(1)
- •Виконання роботи
- •Завдання та методичні вказівки для самостійної роботи студента
- •Лабораторна робота №2(2)
- •Завдання для виконання
- •Завдання та методичні вказівки для самостійної роботи студента
- •Лабораторна робота №2(3)
- •Виконання роботи
- •Завдання та методичні вказівки для самостійної роботи студента
- •Лабораторна робота №2(3)
- •Виконання роботи
- •Завдання та методичні вказівки для самостійної роботи студента
- •Лекція 5
- •Опорний конспект
- •Тренувальні вправи
- •Тренувальні вправи
- •Завдання та методичні вказівки для самостійної роботи студента
- •Література
Завдання та методичні вказівки для самостійної роботи студента
Розв’язати задачі №11.19 [1, ст. 137]
Лекція 2.
Тема. Одновимірні масиви. Динамічне оголошення масивів. Передача масивів у функцію.
Мета. Отримати поняття як створювати функції користувача при роботі з одновимірними масивами. З’ясувати як використовувати вказівники при роботі з одновимірними масивами.
Опорний конспект
Під час компіляції програмного коду для статично оголошених масивів надається пам’ять. Для ефективного використання пам’яті призначене динамічне оголошення масивів, а саме:
<тип вказівника> *<назва> = new <тип змінної>[<кількість>]; |
Після виконання цієї команди буде виділена неперервана ділянка пам’яті обсягом
sizeof (тип змінної) * <кількість>,
і назва масиву вказуватиме на початок цієї ділянки.
Після опрацювання масиву вивільнити пам’ять можна за допомогою команди
delete[] <назва вказівника на масив даних>; |
Задача 1 (про створення нового масиву). Утворити масив у, елементи якого обчислюються за формулою – 2, де k = 1, 2, …, 10. Побудувати масив, який складається з від’ємних елементів масиву y. Вивести результати обчислень. Якщо шуканих величин немає, то вивести про це повідомлення.
У наступній програмі змінна п визначає кількість від’ємних елементів у новому масиві.
#include <iostream.h> #include <match.h> #define N 10 void main() { float *y = new float[N]; float *g = new float[N]; int k, n; cout << “\t Масив Y:\n”; for (k = 0, n = 0; k < 10; k++) { *(y + k) = log(k + 1) – 2; cout << k << “\t” << *(y + k) << “\n”; if (*(y + k) < 0) { *(g + n) = *(y + k); n++;} } delete[] y; cout << “\t Масив G:\n”; for (k = 0; k < n; k++) cout << k << “\t” << *(y + k) << “\n”; delete[] g; } |
Задача 2 (про АТС). Нехай - це число викликів, які надходять на АТС за k-ту секунду. Припустимо, що - випадкове число зі значенням від 0 до 30. Утворити масив у з десятьма елементами (k = 1, 2, …, 10). Обчислити суму викликів за перші 10 с роботи АТС. Визначити максимальну суму викликів, які надійшли за деяку одну секунду. Вивести результати обчислень.
Зауваження. Для того, щоб отримати ціле випадкове число з діапазону від 0 до п, можна скористатись функцією ___________, яка описана у модулі __________. Щоб під час виконання програми кожен раз отримувати різні значення, перед використанням функції _____________ треба записати функцію randomize().
Розв’яжемо задачу про АТС, використовуючи функції користувача, параметрами яких є масиви.
// Програма АТС 1 з використанням функцій #include <iostream.h> #include <conio.h> #include <stdlib.h>
int Suma(int y[10]); int Max(int y[10]); void main() { randomize(); int y[10]; cout << “Секунда \t Кількість викликів \n”; for (int S = 0, k = 0; k < 10; k ++) { y[k] = rundom(30); cout << (k + 1) << “\t\t” << y[k] << “\n”; } S = Suma(y); cout << “\n S=” << S; int max; max = Max(y); cout << “\n max = “ << max; getch(); } //------------------------------------------------------------------------------------------------ int Suma(int y[10]) { for (int S = 0, k = 0; k < 10; k++) S += *(y + k); return S; } //------------------------------------------------------------------------------------------------ int Max(int y[10]) { int k = 0; for (int max = *y; k < 10; k++) if (*(y + k) > max) max = *(y + k); return max; } |
Отже, при оголошенні масиву в якості формального параметра функції не треба вказувати розмірність масиву, а достатньо вказати лише квадратні дужки.