Структура программы на языке C++. Стандартные библиотеки, комментарии. Типы данных (базовые и производные) в языке С++. Операции языка С++. Интегрированная среда разработки С++ Builder 6. Основные компоненты среды С++ Builder 6. Их свойства и события, страница 6


11. Массивы динамической памяти.

Если до начала работы программы неизвестно, сколько в массиве элементов, то используют динамические массивы. Память под них выделяется с помощью операции  new или функции malloc в динамической области памяти во время выполнения программы. Адрес начала массива хранится в указателе. intn=10; int*а=newint[n]; С помощью указателей можно выделить участок памяти (динамический массив) заданного размера для хранения данных определенного типа. Для этого нужно:

1.  Описать указатель (например, переменную p) определенного типа.

2.  Начиная с адреса, определенного указателем, с помощью функций calloc, malloc или операции new выделить участок памяти определенного размера. После этого p будет адресом первого элемента выделенного участка оперативной памяти (0-й элемент массива), p+1 будет адресовать – следующий элемент в выделенном участке памяти (1-й элемент динамического массива), …, p+i является адресом i-го элемента. Нужно следить, чтобы не выйти за границы выделенного участка памяти. К i-му элементу динамического массива p можно обратиться двумя способами: *(p+i) или p[i]

3.  Когда участок памяти будет не нужен, его можно освободить с помощью функции free() или операции delete.

Единственным параметром функции malloc является целое беззнаковое значение, определяющее размер выделяемого участка памяти в байтах. Функция malloc возвращает бестиповый указатель (void *) на выделенный участок памяти. Обращение к функции malloc: void *malloc(n); здесь n определяет размер выделяемого участка памяти в байтах, функция вернет значение NULL, если выделить память не удалось и указатель на выделенный участок памяти, при успешном выделении.


12. Организация потоков ввода/вывода, связанных с файлами.

Механизм ввода / вывода называется потоком, существуют стандартные потоки для ввода данных с клавиатуры и вывода информации на экран. Для организации ввода/вывода применяются операции. Стандартный поток ввода связан с константой cin, а поток вывода - с cout (для использования этих констант подключается заголовочный файл iostream.h).Для вывода информации используется cout<< выражение; где выражение может быть представлено переменной или смысловым выражением. Для ввода данных используют запись cin<< переменная. Класс istream - реализует поток ввода, ostream – поток вывода.

Библиотека потоков ввода / вывода определяет три глобальные объекта:

- стандартный ввод на терминал – cout (тип ostream);

- стандартный ввод с терминала – cin (тип istream);

- стандартный поток сообщений об ошибках – cerr (тип ostream).

Часто нужно вывести строку или число в определенном формате. Для этого используются манипуляторыобъекты особых типов, которые управляют тем, как обрабатываются последующие документы (позволяют создавать формат вывода). Некоторые манипуляторы позволяют также вводить или выводить специальные символы. Для использования манипуляторов их нужно вывести в выходной поток. Для доступа к манипуляторам необходимо включить в программу заголовочный файл <iomanip>. При работе с потоком можно открывать и закрывать потоки (связывать указатели на потоки с конкретными файлами); вводить и выводить: символ, строку, форматированные данные, порцию данных произвольной длины; анализировать ошибки потокового ввода-вывода и условие достижения конца потока (конца файла); управлять буферизацией потока и размером буфера; получать и устанавливать указатель (индикатор) текущей позиции.


13. Структура как тип и совокупность данных.

Структура (structure) - это тип, определяемые пользователем, это объединение нескольких переменных, возможно раз­ного типа. Переменные, которые объединяются структурой, называются членами, элементами или нолями структуры. Определение структуры:

struct student

{char name[20];

int kurs,-

char group[10];

int stip;

 };

При объявлении структуры память под нее не выделяется. Под каждую из переменных выделяется непрерывный участок памяти. Доступ к конкрет­ному элементу структуры осуществляется следующим образом:

studl.name="Иванов Д.М.";

studl.kurs=l;

studl.group="";

studl. stip=600;

Поля битов - это специальный тип структуры, в котором определено из скольких бит состоит каждый  элемент. Если после описания атрибута структуры поставить двоеточие и затем целое чис­ло, то это число задает количество битов, выделенных под данный атрибут струк­туры. Пример объявления: