Выбрать главу

    break;

   case 2:

    play(magic);

    break;

   case 3:

    cout << "До свидания !\n";

    break;

  }

 }while(option != 3);

 return 0;

}

// Сыграем в игру.

void play(int m)

{

 int t, x;

 for(t=0; t<100; t++) {

  cout << "Угадайте магическое число: ";

   cin >> x;

  if(x==m) {

   cout << "** Правильно **\n";

   return;

  }

  else

   if(x<m) cout << "Маловато.\n";

   else cout << "Многовато.\n";

 }

 cout << "Вы использовали все шансы угадать число. " << "Попытайтесь снова.\n";

}

Глава 5: Массивы и строки

В этой главе мы рассматриваем массивы. Массив (array) — это коллекция переменных одинакового типа, обращение к которым происходит с применением общего для всех имени. В C++ массивы могут быть одно- или многомерными, хотя в основном используются одномерные массивы. Массивы представляют собой удобное средство группирования связанных переменных.

Чаще всего используются символьные массивы, в которых хранятся строки. Как упоминалось выше, в C++ не определен встроенный тип данных для хранения строк. Поэтому строки реализуются как массивы символов. Такой подход к реализации строк дает С++-программисту больше "рычагов" управления по сравнению с теми языками, в которых используется отдельный строковый тип данных.

Одномерные массивы

Одномерный массивэто список связанных переменных. Для объявления одномерного массива используется следующая форма записи.

тип имя_массива [размер];

Здесь с помощью элемента записи тип объявляется базовый тип массива. Базовый тип определяет тип данных каждого элемента, составляющего массив. Количество элементов, которые будут храниться в массиве, определяется элементом размер. Например, при выполнении приведенной ниже инструкции объявляется int-массив (состоящий из 10 элементов) с именем sample.

int sample[10];

Индекс идентифицирует конкретный элемент массива.

Доступ к отдельному элементу массива осуществляется с помощью индекса. Индекс описывает позицию элемента внутри массива. В C++ первый элемент массива имеет нулевой индекс. Поскольку массив sample содержит 10 элементов, его индексы изменяются от 0 до 9. Чтобы получить доступ к элементу массива по индексу, достаточно указать нужный номер элемента в квадратных скобках. Так, первым элементом массива sample является sample[0], а последним — sample[9]. Например, следующая программа помещает в массив sample числа от 0 до 9.

#include <iostream>

using namespace std;

int main()

{

 int sample[10]; // Эта инструкция резервирует область памяти для 10 элементов типа int.

 int t;

 // Помещаем в массив значения.

 for(t=0; t<10; ++t) sample[t]=t;

  // Отображаем массив.

  for(t=0; t<10; ++t)

   cout << sample[t] << ' ';

 return 0;

}

В C++ все массивы занимают смежные ячейки памяти. (Другими словами, элементы массива в памяти расположены последовательно друг за другом.) Ячейка с наименьшим адресом относится к первому элементу массива, а с наибольшим — к последнему. Например, после выполнения этого фрагмента кода

int i [7];

int j;

for(j=0; j<7; j++)i[j]=j;

массив i будет выглядеть следующим образом.

Для одномерных массивов общий размер массива в байтах вычисляется так:

всего байтов = размер типа в байтах х количество элементов.