динамические массивы

PPTX 37 pages 178.4 KB Free download

Page preview (5 pages)

Scroll down 👇
1 / 37
одномерные динамические массивы старший преподаватель кафедры “основы информатики” лектор: саттаров акбар бахтиярович лекция №7. динамические массивы ташкентский университет информационных технологий имени мухаммада ал-хоразмий одномерные динамические массивы динамический массив – это массив, размер которого заранее не фиксирован и может меняться во время исполнения программы. для изменения размера динамического массива язык программирования с++, поддерживающий такие массивы, предоставляет специальные встроенные функции или операции. динамические массивы дают возможность более гибкой работы с данными, так как позволяют не прогнозировать хранимые объемы данных, а регулировать размер массива в соответствии с реально необходимыми объемами. объявление одномерных динамических массивов под объявлением одномерного динамического массива понимают объявление указателя на переменную заданного типа для того, чтобы данную переменную можно было использовать как динамический массив. синтаксис: тип * имя_массива; имя_массива – идентификатор массива, то есть имя указателя для выделяемого блока памяти. тип – тип элементов объявляемого динамического массива. элементами динамического массива не могут быть функции и элементы типа void. например: /*указатели …
2 / 37
операции new /*выделение динамической памяти размером 100*sizeof(int) байтов*/ int *mas; mas = new int [100]; /*выделение динамической памяти размером n*sizeof(double) байтов*/ double *m = new double [n]; /*выделение динамической памяти размером 2*4*sizeof(long) байтов. при выделении динамической памяти размеры массива должны быть полностью определены*/ long (*lm)[4]; lm = new long [2] [4]; синтаксис: имя_массива = (тип *) malloc(n*sizeof(тип)); или имя_массива = (тип *) calloc(n, sizeof(тип)); имя_массива – идентификатор массива, то есть имя указателя для выделяемого блока памяти. тип – тип указателя на массив. n – количество элементов массива. выделение памяти под одномерный динамический массив при помощи библиотечных функций malloc (calloc) /*выделение динамической памяти размером 10*sizeof(float) байтов*/ float *a; a=(float *)malloc(10*sizeof(float)); // или float *a; a=(float *)calloc(10,sizeof(float)); так как функция malloc (calloc) возвращает нетипизированный указатель void *, то необходимо выполнять преобразование полученного нетипизированного указателя в указатель объявленного типа. освобождение памяти, выделенной под одномерный динамический массив освобождение памяти, выделенной под одномерный динамический массив, …
3 / 37
мической памяти обращение к элементам одномерного динамического массива адресация элементов динамического массива осуществляется аналогично адресация элементов статического массива, то есть с помощью индексированного имени. синтаксис: имя_массива[размерность]; или имя_массива[значениеиндекса]; например: mas[5] – индекс задается как константа, sl[i] – индекс задается как переменная, array[4*p] – индекс задается как выражение. пример 1. сформировать динамический одномерный массив, заполнить его случайными числами. преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в чётных позициях, а во второй половине – элементы, стоявшие в нечётных позициях. #include "stdafx.h" #include using namespace std; int main(){ int *a, n, i; //количество элементов cout > n; cout > a[i]; cout k) { ii=i+k-1; if (ii>=n) ii=ii%n; kill(mass,n,ii); krug(mass,n-1,k,ii); } } задания задан массив. определить сколько раз меняется знак в данной последовательности чисел, запомнить номера позиций, в которых меняется знак. задана последовательность из n вещественных чисел. вычислить сумму чисел, порядковые номера которых являются числами фибоначчи. задана последовательность из …
4 / 37
акже называют матрицей. динамическим массивом называют массив с переменным размером, то есть количество элементов может изменяться во время выполнения программы. для создания двумерного динамического массива вначале нужно распределить память для массива указателей на одномерные массивы, а затем выделить память для одномерных массивов. при динамическом распределении памяти для массивов следует описать соответствующий указатель, которому будет присвоено значение адреса начала области выделенной памяти. объявление двумерных динамических массивов под объявлением двумерного динамического массива понимают объявление двойного указателя, то есть объявление указателя на указатель. синтаксис: тип ** имя_массива; имя_массива – идентификатор массива, то есть имя двойного указателя для выделяемого блока памяти. тип – тип элементов объявляемого динамического массива. элементами динамического массива не могут быть функции и элементы типа void. например: int **a; float **m; выделение памяти под двумерный динамический массив при формировании двумерного динамического массива сначала выделяется память для массива указателей на одномерные массивы, а затем в цикле с параметром выделяется память под одномерные …
5 / 37
массива. это выражение константного типа и вычисляется на этапе компиляции. пример: int n, m; //n и m – количество строк и столбцов //матрицы float **matr; //указатель для массива указателей matr = new float * [n]; //выделение динамической //памяти под массив указателей for (int i=0; i using namespace std; int main() { int n,i,j; //указатель для массива указателей int **matr; cout > n; //выделение памяти под массив //указателей matr = new int *[n]; //выделение памяти для массива //значений for(i=0; i using namespace std; #include //объявление функции генерации массива void gen (int nn,int a, int b,int ***mas); /*объявление функции вычисления сумму заданных элементов массива*/ int summa(int nn, int **mas); //объявление функции вывода массива void out (int nn,int **mas); int main() { int **mass, n; int s; printf("sisestage n: "); scanf("%d",&n); printf("\nmassiivi loomine\n"); gen(n,0,10,&mass); s=summa(n,mass); out(n,mass); printf("\nelementide summa= %d",s); return 0; } void gen(int nn, int a, int b, int ***mas) { //функция …

Want to read more?

Download all 37 pages for free via Telegram.

Download full file

About "динамические массивы"

одномерные динамические массивы старший преподаватель кафедры “основы информатики” лектор: саттаров акбар бахтиярович лекция №7. динамические массивы ташкентский университет информационных технологий имени мухаммада ал-хоразмий одномерные динамические массивы динамический массив – это массив, размер которого заранее не фиксирован и может меняться во время исполнения программы. для изменения размера динамического массива язык программирования с++, поддерживающий такие массивы, предоставляет специальные встроенные функции или операции. динамические массивы дают возможность более гибкой работы с данными, так как позволяют не прогнозировать хранимые объемы данных, а регулировать размер массива в соответствии с реально необходимыми объемами. объявление одномерных динамических массивов под объяв...

This file contains 37 pages in PPTX format (178.4 KB). To download "динамические массивы", click the Telegram button on the left.

Tags: динамические массивы PPTX 37 pages Free download Telegram