русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Опорний конспект


Дата додавання: 2014-11-28; переглядів: 883.


Під час компіляції програмного коду для статично оголошених масивів надається пам’ять. Для ефективного використання пам’яті призначене динамічне оголошення масивів, а саме:

 

<тип вказівника> *<назва> = new<тип змінної>[<кількість>];

 

Після виконання цієї команди буде виділена неперервана ділянка пам’яті обсягом

 

sizeof(тип змінної) * <кількість>,

 

і назва масиву вказуватиме на початок цієї ділянки.

Після опрацювання масиву вивільнити пам’ять можна за допомогою команди

 

delete[]<назва вказівника на масив даних>;

 

Задача 1 (про створення нового масиву). Утворити масив у, елементи якого обчислюються за формулою – 2, де k = 1, 2, …, 10. Побудувати масив, який складається з від’ємних елементів масиву y. Вивести результати обчислень. Якщо шуканих величин немає, то вивести про це повідомлення.

У наступній програмі змінна п визначає кількість від’ємних елементів у новому масиві.

#include<iostream.h> #include<match.h> #defineN 10 voidmain() { float*y = new float[N]; float*g = new float[N]; intk, 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>   intSuma(int y[10]); intMax(int y[10]); voidmain() { randomize(); inty[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; intmax; max = Max(y); cout<< “\n max = “ << max; getch(); } //------------------------------------------------------------------------------------------------ intSuma(inty[10]) { for(intS = 0, k = 0; k < 10; k++) S += *(y + k); returnS; } //------------------------------------------------------------------------------------------------ intMax(inty[10]) { intk = 0; for(intmax = *y; k < 10; k++) if(*(y + k) > max) max = *(y + k); returnmax; }

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

 

 


<== попередня лекція | наступна лекція ==>
Опорний конспект | Тренувальні вправи


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн