Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / lect7.doc
Скачиваний:
10
Добавлен:
20.05.2014
Размер:
71 Кб
Скачать
☆

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 Основные правила для массивов

  1. Индексом может быть любое целое выражение, в частности, целое число.

  2. Нумерация индексов с нуля.

  3. За границу нельзя!

При работе с массивом нет контроля нарушения границы.

Если при выполнении программы значение индекса выйдет

за указанные в описании границы, то произойдет изменение

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

4. Описание массива без указания размера или списка начальных значений

возможно только при работе с функциями ( раздел 8.4).

    1. Форматирование данных при выводе

При вводе-выводе в С++ можно управлять видом информации, т.е.

форматировать данные.

Возможностей здесь много, но рассмотрим только две из них: изменение

ширины поля и количество цифр в дробной части, что важно для вывода таблиц

Используем для этого специальные функции, называемые манипуляторами,

для которых нужен заголовочный файл 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();

}

Соседние файлы в папке Лекции