Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Динамическое выделение памяти под одномерные массивы

Читайте также:
  1. C.) При кодировании текстовой информации в кодах ASCII двоичный код каждого символа в памяти ПК занимает
  2. D) ограничен размером виртуальной памяти
  3. Quot;….. памяти означает, что любая информация заносится в память и извлекается из нее по …..".
  4. Аристотель об обучении и памяти
  5. Архитектура ПК. Центральные и периферийные устройства, средства ввода и средства вывода данных. Оперативная память и средства внешней памяти. Характеристики процессора.
  6. Виды и типы памяти.
  7. Виды и типы памяти. Воспроизведение. Забывание как психологическая проблема. Кривая забывания Эббингауза. Позиционная кривая воспроизведения.
  8. Виды памяти
  9. Виды памяти
  10. Виды памяти, их характеристика.

 

Выделения памяти

 

new тип[количество]

 

результат (адрес начала выделенной памяти) помещается в указатель.

 

Выделение памяти под одну переменную:

 

int *p;

p=new int; // *p обращение к значению переменной

 

Под массив

int *y;

y=new int[n];

Удаление памяти

delete указатель

 

или

delete [] указатель;

delete p;

delete [] y;

 

Динамическая память выделяется в куче.

 

 

Задачи:

 

Вычислить значение функции, используя указатели для работы с переменными.

 

void main(){

float *x,*y;

// память под переменную

x=new float;

y=new float;

// ввод

printf(“\n Введи x \n”);

scanf(“%f”, x);

// вычисление

*y=2*(*x)+1;

// вывод

printf(“\n x=%-6.2f, y=%-6.2f”,*x,*y);

getch();

delete x;

delete y;

}

 

Использование рабочего указателя в задачах обработки вектора

Обычный код вычисления суммы

s=0;

for (i=0;i<n;i++)

s+=A[i];

с использованием рабочего указателя

int *yA;

s=0;

for (yA=A;yA<A+n;yA++)

s+=*yA;

 

//нахождение мах значения

max=A[0];

for (i=0;i<n;i++)

if (max<A[i]) max=A[i];

С помощью рабочего указателя

int *i;

max=*A;

for (i=A;i<A+n;i++)

if (max<*i) max=*i;

 

// сортировка пузырьком по возрастанию

for (i=0;i<n-1;i++)

for (j=0;j<n-i-1;i++)

if (A[j]>A[j+1])

{r=A[j];

A[j]=A[j+1];

A[j+1]=r;

}

 

int *j;

for (i=0; i<n-1;i++)

for (j=A;j<A+n-i-1;j++)

if (*j>*(j+1)){

r=*j;

*j=*(j+1);

*(j+1)=r;

}

 

 

Двухмерные массивы

 

Тип имя [количество элементов 1 размерности][количество элементов 2 размерности] [={{значение1,…},{значение 1,…},…}];

Доступ к элементу

 

B[i][j]

Изменяются i, j- от 0 до n-1

 

Пример

int A[2][3];

int C[3][2] = {{1,2},{-2,0},{1,-6}};

 

 

Основные алгоритмы работы с двумерными массивами:

1. ввод

 

 

2. вывод

 

 

3. поиск

 

 

4. сортировка

 

 

5. циклический сдвиг

 

 




Дата добавления: 2015-04-26; просмотров: 20 | Поможем написать вашу работу | Нарушение авторских прав

<== предыдущая лекция | следующая лекция ==>
Динамическая память| Указатели и двумерные массивы

lektsii.net - Лекции.Нет - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав