Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КОНСПЕКТ1.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
292.04 Кб
Скачать

Динамические массивы.

Динамические массивы создают с помощью операции new, при этом необходимо указать тип и размерность .

  • int n = 100;

  • float *p = new float [n];

Альтернативный способ создания динамического массива - использование функции malloc библиотеки С:

  • int n = 100;

float *q = (float *) malloc(n * sizeof(float));

Память, зарезервированная под динамический массив с помощью new [], должна освобождаться оператором delete [], а память, выделенная функцией mallос - посредством функции free.

  • delete [] p; free (q);

Динамический массив случайных вещественных чисел

Многомерные массивы

Для создания динамического многомерного массива необходимо указать в операции new все его размерности (самая левая размерность может быть переменной)

Более универсальный и безопасный способ выделения памяти под двумерный массив, когда обе его размерности задаются на этапе выполнения программы.

  • int nstr, nstb;

  • cout « " Введите количество строк и столбцов :";

  • cin » nstr » nstb;

  • int **a = new int *[nstr]; // 1

  • for(int i = 0; i<nstr; i++) // 2

  • a[i] = new int [nstb]; // 3

Передача массивов в качестве параметров

Массив всегда передается по адресу. При этом информация о количестве элементов массива теряется, и следует передавать его размерность через отдельный параметр (если размерность массива является константой, проблем не возникает, поскольку можно указать ее и при описании формального параметра, и в качестве границы циклов при обработке массива внутри функции).

При передаче многомерных массивов все размерности, если они не известны на этапе компиляции, должны передаваться в качестве параметров.

Внутри функции массив интерпретируется как одномерный, а его индекс пересчитывается в программе. В приведенном ниже примере с помощью функции подсчитывается сумма элементов двух двумерных массивов. Размерность массива b известна на этапе компиляции, под массив a память выделяется динамически.

Динамические массивы.

Файл – это набор данных, размещенный на внешнем носителе и рассматриваемый в процессе обработки и пересылке как единое целое.

Прототипы функции для работы с файлами содержатся в заголовочном файле <stdio.h>. Там же описан тип для работы с файлами FILE. Прежде чем совершать с файлом какие-либо действия, файл должен быть открыт. А после того как всё необходимые действия с файлом завершены, он должен быть закрыт.

После работы доступ к файлу необходимо с помощью функции fclose (указатель файла), например, fclose (f);

Для закрытия нескольких файлов введена функция: void fcloseall(void);

#include <stdio.h>

FILE *f_my;

If (!(f_my=fopen(“rez.txt”, “r+t”))){

Puts (“\n Ошибка открытия файла!”);

Return;

}

… // Работа с файлом

Fclose(f_my);

Режимы открытия файлов

“r” – открытие текстового файла на чтение

“w” – создание нового текстового файла на запись

“a” – открытие текстового файла для добавления

“rb” – открытие двоичного файла

“wb” – создание нового двоичного файла на запись

“ab” – открытие двоичного файла для добавления

“r+” – открытие текстового файла на чтение и запись

“w+” – создание нового текстового файла на чтение и запись

“a+” – открытие текстового файла на чтение и запись

“rb+” – открытие двоичного файла на чтение и запись

“wb+” – создание нового двоичного файла на чтение и запись

“ab+” – открытие двоичного файла на чтение и запись