Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы ОАиП.docx
Скачиваний:
127
Добавлен:
09.03.2016
Размер:
139.71 Кб
Скачать

32.Массив. Определение и инициализация массива.

Массив  – это группа связанных друг с другом элементов одного типа (double, float, int и т.п.) последовательно расположенных в памяти. Пример объявления массива: int a[6];

Пример инициализации массива

string students[10] = { "Иванов", "Петров", "Сидоров", "Ахмедов", "Ерошкин", "Выхин", "Андеев", "Вин Дизель", "Картошкин", "Чубайс" };

Заметьте, что нумерация элементов массива в C++ начинается с нуля. Следовательно, фамилия первого студента находится в students[0], а фамилия последнего — в students[9].

В квадратных скобках указывается число элементов в массиве. Интерес должен представлять не сам массив как таковой, а то, что он содержит. Почти вся обработка массивов заключается в обработке его элементов. Для прохода по массивам используют циклы. В С++ у массива отсчет всегда идет от нуля, поэтому первый элемент массива имеет индекс ноль. Из-за этого новичкам, привыкшим к нашему обычному счету с раз, два, три, бывает не очень удобно и понятно то, что при обработке массива от последнего его элемента отнимается единичка (если массив в N элементов, то при обработке последний будет N-1, а первый будет нулевой элемент массива). Хотя некоторые программисты могут подстраивать отсчет под себя. (выделив 1 лишний элемент, можно использовать отсчет о единицы или как-то еще). Но это все обобщенная информация, которую имеет смысл прочитать.

При работе с массивами нужно знать как с ними работать. Чтобы с ними работать начнем с простого присвоения первому элементу массива какого-то своего значения. (помните, я писал, что в массиве обработка чаще с элементами, вот и присваиваем значение в элемент из массива). Будем считать, что ни мы, ни до нас в коде никто не мудрил и отсчет элементов в массиве начинается с нуля. Для создания массива компилятору необходимо знать тип данных и количество элементов в массиве

  • Массивы могут иметь те же типы данных, что и простые переменные

  • Квадратные скобки это своеобразный индикатор того, что происходит работа с массивом

  • При объявлении массива, внутри квадратных скобок указывается число элементов для массива

  • При использовании массива, внутри квадратных скобок указывается номер элемента из массива

  • Номер элемента массива называется индексом массива

  • Внешние и статические массивы можно инициализировать

  • Автоматические и регистровые массивы инициализировать нельзя

  • Любой Массив требует такой же инициализации как и переменные, иначе в него может попасть информационный мусор

33.Символы, строки (инициализация, алгоритмы). Символьный тип char

Любой текст состоит из символов. Для хранения одного символа предназначен тип данных char. Переменную типа char можно рассматривать двояко: как целое число, занимающее 1 байт и способное принимать значения от 0 до 255 (тип unsigned char) или от -128 до 127 (тип signed char) и как один текстовый символ. Сам же тип char может оказаться как знаковым, так и беззнаковым, в зависимости от операционной системы и компилятора. Поэтому использовать типchar не рекомендуется, лучше явно указывать будет ли он знаковым (signed) или беззнаковым (unsigned).

Как и целые числа, данные типа char можно складывать, вычитать, умножать, делить, а можно выводить на экран в виде одного символа. Именно это и происходит при выводе символа через объект cout. Если же нужно вывести числовое значение символа (также называемое ASCII-кодом), то значение символа необходимо преобразовать к типу int. Например:

#include<iostream> using namespace std; int main() { unsigned char c='A'; // Константы char заключаются в одинарные кавычки cout<<c<<" "<<(int)c<<endl; c=126;// char можно присвоить и числовое значение cout<<c<<" "<<(int)c<<endl; return 0; }

Текстовую строку можно представить, как массив символов типа char, но в языке C++ для хранения текстовых строк был создан более удобный тип string. По сути, тип данных string и является массивом символов. Например, если мы объявили переменную S как string S, а затем присвоили ей значение "школа" (текстовые строки заключаются в двойные кавычки), то мы можем обращаться к отдельным символам строки S, представляя S, как массив символов, например, S[0]=='ш',S[1]=='к' и т.д. Для того, чтобы узнать длину строки используется метод length(), вызываемый в виде S.length().

Строковые данные можно считывать с клавиатуры, выводить на экран, присвавать переменным типа string. Также строки можно складывать друг с другом: например, при сложении строк"Hello, " и "world!" получится строка "Hello, world!". Такая операция над строками называется конкатенацией.

Основные приемы работы с объектами string проиллюстрированы в программе:

string S, S1, S2;// Объявление трех строк cout<<"Как вас зовут? "; cin>>S1;// Считали строку S1 S2="Привет,";// Присвоили строке значение S=S2+S1;// Использование конкатенации cout<<S<<endl;// Вывод строки на экран cout<<S.length();// Длина строки S