Int I, j ; float a[3][3], b[3][3], c[3][3]; / / (7.4)
/ / вставка: запрос, ввод, эхо-вывод
for ( i = 0; i<3; i++) {
for ( j = 0; j<3; j++) C [i] [j] = A [i] [j] + B[i] [j] ;
for ( j = 0; j<3; j++) cout << ' \t '<< С [i] [j];
cout << endl;
} . . . . . .
Здесь будет выполняться внутренний цикл по j для каждого значения i,
задаваемого внешним циклом. Можно оба цикла по j объединить в один:
{for (j = 0; j<3; j++) {C [i][j] = A [i][j] + B[i][j] ; cout << ‘\t‘<< С[i][j]; } cout << endl;}
Элементы двумерного массива располагаются в последовательных ячейках
памяти, т.е. в виде линейной структуры. При этом матрица раскрывается по
строкам, т.к. действует следующее правило: первым изменяется последний индекс.
Например, массив A из приведенного выше фрагмента (7.4)
будет храниться в памяти в следующем порядке:
A[0][0], A[0][1], A[0][2], A[1][0], A[1][1], A[1][2], A[2][0], A[2][1], A[2][2].
7.2 Основные правила для массивов
Индексом может быть любое целое выражение, в частности, целое число.
Нумерация индексов с нуля.
За границу нельзя!
При работе с массивом нет контроля нарушения границы.
Если при выполнении программы значение индекса выйдет
за указанные в описании границы, то произойдет изменение
содержимого других ячеек и последствия этого непредсказуемы.
4. Описание массива без указания размера или списка начальных значений
возможно только при работе с функциями ( раздел 8.4).
Форматирование данных при выводе
При вводе-выводе в С++ можно управлять видом информации, т.е.
форматировать данные.
Возможностей здесь много, но рассмотрим только две из них: изменение
ширины поля и количество цифр в дробной части, что важно для вывода таблиц
Используем для этого специальные функции, называемые манипуляторами,
для которых нужен заголовочный файл iomanip.h:
#include <iomanip.h>
Количество выводимых значащих цифр устанавливает манипулятор
setprecision(intk), а ширину поля вывода устанавливает манипуляторsetw(intk).
В качестве примера выведем значение sin(x) с тремя значащими
цифрами в дробной части и различной шириной полей для xиsin(x) .
Как и прежде, функция getch() используется здесь для перевода программы
в режим ожидания ввода, чтобы просмотреть результаты на экране.
#include <iostream.h>
#include <math.h>
#include <conio.h>
#include <iomanip.h>
main() { / / (7.5)
float x, s; cout<<setprecision(3);
for (int m=1; m<=5; m++) {
x = .1* m; s = sin(x);
cout << m << setw(5) << x << setw(15) <<s << endl;
} getch();
}
