Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspekt_S.doc
Скачиваний:
23
Добавлен:
09.02.2015
Размер:
1.15 Mб
Скачать

Вывод массивов

Простейший циклический алгоритм вывода значений элементов некоторого одномерного массива выглядит так:

const int n = 10;

short A[n];

// Для использованияsetw() необходимо включить#include <iomanip>

for (int i = 0; i < n; ++i)

cout << setw(8) << left << A[i];

cout << endl;

На каждом шаге этого цикла в поток вывода отправляется очередной i-й элемент массива, при этом устанавливается ширина поля вывода, равная 8 позициям, выравнивание по левому краю. После окончания цикла вывода всехnэлементов массива осуществляется переход на следующую строку экрана.

Обратим внимание на то, что в программах выгоднее задавать размеры массивов через именованные константы (в данном примере – константа n), для того чтобы использовать эти же константы для управления работой циклов. При необходимости изменить размеры массива достаточно будет поменять значение этой константы. При этом все циклы, использующие для управления своей работой эту константу, автоматически приспособятся к изменившимся размерам обрабатываемого массива.

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

const int n = 10, m = 10;

short A [n] [m];

for (int i = 0; i < n; ++i)

// Выводим i-ю строку массива

{

for (int j = 0; j < m; ++j)

// Выводим j-й элементi-й строки массива

cout << setw(7) << right << A [i] [j];

cout << endl;

}

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

Ввод массивов

Ввод массивов также осуществляется с помощью циклических алгоритмов.

Простейший алгоритм ввода значений элементов одномерного массива может выглядеть так:

const int n = 10;

short A[n];

cout << "Введите " << n << " целых чисел: \n"

for (int i = 0; i < n; ++i)

cin >> A [i];

cin.sync(); // Очистка потока ввода от возможных лишних введенных чисел

В этом фрагменте ввод значений элементов массива можно осуществлять и в виде строки целых чисел, разделенных пробелами или символами табуляции, и по одному значению с помощью клавиши Enter. Обратите внимание на последнюю строку этого фрагмента. Эта инструкция очищает поток ввода от оставшихся в нем данных. Если в потоке ввода после окончания цикла останутся какие-либо данные (например, мы ввели не 10 требуемых значений, а ошибочно 11 чисел), то следующие за циклом инструкции ввода возьмут их из потока, что может привести к неправильной работе программы.

Следующий фрагмент обеспечивает ввод значений элементов массива с указанием номеров вводящихся элементов:

const int n = 10;

short A[n];

cout << "Введите " << n << " целых чисел: \n"

for (int i = 0; i < n; ++i)

{

cout << i + 1 << ": ";

cin >> arr[i];

cin.sync(); // Очистка потока ввода от возможных лишних введенных чисел

}

При заполнении двумерных массивов ввод значений элементов лучше осуществлять в табличной форме:

const int n = 10, m = 5;

short A [n] [m];

cout << "Введите " << n << " строк из "<< m << " целых чисел: \n"

for (int i = 0; i < n; ++i)

{

cout << "Строка " << i + 1 << ": ";

// Вводим поэлементно значения i-й строки массива

for (int j = 0; j < m; ++j)

cin >> A [i] [j];

// Очищаем поток ввода от возможных лишних введенных чисел

cin.sync();

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]