Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
Топ:
Методика измерений сопротивления растеканию тока анодного заземления: Анодный заземлитель (анод) – проводник, погруженный в электролитическую среду (грунт, раствор электролита) и подключенный к положительному...
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Интересное:
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Дисциплины:
2018-01-04 | 153 |
5.00
из
|
Заказать работу |
|
|
f2.open("D:\\abc2.txt"); // режимios::out
if (f) { for(inti=0;i <n;i++)
f2 <<a[i] << " "; // запись в файл
cout<< "\nFile write!"; f2.close(); }
elsecout<< "File not found \n"; getch();}
Понятие массива. Как организуется запись одномерного массива в бинарный файл и чтение одномерного массива из бинарного файла?
#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;
void main(void)
{ int n; int *a,*b;
FILE *f; // объявлениепотока
cout<< "\n n = "; cin>> n; cout<< "\n";
a = new int [n];
for (inti = 0; i< n; i++)
{ cout<< "a[" <<i<< "]:"; cin>> a[i];
} cout<< "\n";
f = fopen("D:\\abc3.dat","wb");
fwrite(&n,sizeof(int),1,f);
fwrite(a,sizeof(int),n, f);
fclose(f);
f = fopen("D:\\abc3.dat", "rb");
If (f)
{ fread(&n,sizeof(int),1, f);
b = new int [n];
fread(b, sizeof(int), n, f);
for (inti = 0; i< n; i++)
cout<< b[i] << " ";
}
fclose(f);
getch();
}
40. Двумерные массивы в С/C++: понятие, синтаксис описания, инициализация и доступ к элементам, примеры
Двумерный массив – это массив, все элементы которого имеют два индекса.
Двумерный массив полностью соответствует математическому понятию матрицы (прямоугольной таблице чисел), поэтому двумерные массивы в информатике часто называют матрицами.
Матрица состоит из строк и столбцов. Два индекса элемента - это и есть номера строки и столбца, на пересечении которых этот элемент находится.
В языке С (С++) каждый индекс записывается отдельно в квадратных скобках. Каждую строку и каждый столбец матрицы можно рассматривать как обычный одномерный массив. Поэтому можно сказать, что матрица - это массив из массивов. Существует только два ограничения:
1. Все элементы матрицы должны быть одинакового типа.
2. Длина всех строк матрицы должна быть одинакова (также как и высота всех столбцов).
При объявлении двумерного массива в отдельных квадратных скобках указывается количество строк и количество столбцов.
|
Например, объявление inta[3][4]; компилятор поймет как команду определить массив а из трех элементов, причем каждый элемент: a[0], a[1], a[2]- это массив типа int из четырех элементов, т. е. компилятор выделит место в памяти под матрицу целых чисел, имеющую 3 строки и 4 столбца (всего 3*4=12 элементов). Если матрица глобальная (объявляется выше всех функций), то она в самом начале заполняется нулями. Локальные матрицы (объявленные внутри функции) содержат "мусор" – неизвестные значения.
Инициализация двумерного массива:
Ø int a[3][4]={{2,3,4,6}, {6,7,8,9}, {1,2,5,3}};
Ø float X[2][3] = {{1., 3.},{6.}};
Ø float b[3][5] ={{0}};
Доступ к элементам двумерных массивов:
Ø a[i][j] – с помощью индексированных переменных,
Ø *(a[i]+j) или *(*(a+i)+j) – с помощью указателей, где a[i] или (a+i) – адрес начала i -й строки массива
41. Понятие динамического массива. Как создаются двумерные динамические массивы в С++? Примеры
Двумерные массивы, как и одномерные, передаются в функцию по адресу (передается адрес первого элемента первой строки - &a[0][0]). Поэтому функция работает с самим массивом, а не с его копией, и может его изменить.
Если в функцию передается двумерный статический массив, то необходимо не только передать адрес первого элемента первой строки - &a[0][0], но дать возможность компилятору определять адреса начала всех строк передаваемой матрицы. Для этого в списке формальных параметров у двумерного массива обязательно нужно указывать вторую размерность, которая задает количество элементов в строке (количество столбцов) матрицы.
Если в функцию передается двумерный динамический массив, то в списке формальных параметров для параметра массива достаточно объявить двойной указатель (т. е. указатель на массив указателей на строки матрицы).
В операторе вызова функции в списке фактических параметров и в том и в другом случае для параметра массива указывается имя массива.
|
Информация о количестве элементов двумерного массива (количество строк и количество столбцов матрицы) должна передаваться через отдельные параметры.
42. Понятие массива. Как передаются двумерные массивы в качестве параметров в функцию?
Пример
Передача двумерного статического массива в качестве параметра в функцию:
constint row = 5;
constint row = 5;
voidFunc (intarr [row][col], int rows, int cols); или
voidFunc (intarr [][col], int rows, int cols)
Передача двумерного динамического массива в качестве параметра в функцию:
voidFunc (int **arr, int rows, int cols);
Вызов функции:
Func (arr1, r, с);
Двумерные массивы, как и одномерные, передаются в функцию по адресу (передается адрес первого элемента первой строки - &a[0][0]). Поэтому функция работает с самим массивом, а не с его копией, и может его изменить.
Если в функцию передается двумерный статический массив, то необходимо не только передать адрес первого элемента первой строки - &a[0][0], но дать возможность компилятору определять адреса начала всех строк передаваемой матрицы. Для этого в списке формальных параметров у двумерного массива обязательно нужно указывать вторую размерность, которая задает количество элементов в строке (количество столбцов) матрицы.
Если в функцию передается двумерный динамический массив, то в списке формальных параметров для параметра массива достаточно объявить двойной указатель (т. е. указатель на массив указателей на строки матрицы).
В операторе вызова функции в списке фактических параметров и в том и в другом случае для параметра массива указывается имя массива.
43. Понятие массива. Как организуется запись двумерного массива в текстовый файл и чтение
Двумерного массива из текстового файла? Примеры
|
|
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!