Одномерные статические массивы
Автор: Витя • Март 2, 2021 • Практическая работа • 6,870 Слов (28 Страниц) • 284 Просмотры
МИНОБРНАУКИ РОССИИ
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ
ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
«ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА)
Кафедра информационных систем
ОТЧЕТ
по практической работе №2
по дисциплине «Программирование»
Тема: ОДНОМЕРНЫЕ СТАТИЧЕСКИЕ МАССИВЫ
Студент гр. 0324 Палий В. С.
Преподаватель Глущенко А.Г.
Санкт-Петербург
2020
Цель работы.
Изучение одномерных массивов, обработка данных одномерных массивов. Изучение различных видов сортировок. Проведение временной оценки различных действий с массивами.
Основные теоретические положения.
Понятие массива.
При использовании простых переменных каждой области памяти для хранения данных соответствует свое имя. Если с группой величин одинакового типа требуется выполнить однообразные действия, им дают одно имя, а различают по порядковому номеру (индексу). Это дает возможность компактно записать множество операций с использованием циклов. Массив представляет собой индексированную последовательность однотипных элементов с заранее определенным количеством элементов. Наглядно одномерный массив можно представить, как набор пронумерованных ячеек, в каждой из которых содержится определенное значение. Все массивы можно разделить на две группы: одномерные и многомерные. Описание массива в программе отличается от объявления обычной переменной наличием размерности массива, которая задается в квадратных скобках после имени. В листинге 3.1 представлен пример работы с одномерным массивом. Элементы массива нумеруются с нуля. При описании массива используются те же модификаторы (класс памяти, const и инициализатор), что и для простых переменных. Инициализировать массив можно и другим более простым способом: инициализирующие значения записываются в фигурных скобках. Значения элементам присваиваются по порядку. Если элементов в массиве больше, чем инициализаторов, элементы, для которых значения не указаны, обнуляются:
int arr[4] = {3, 2, 1}; // arr[0] = 3, arr[1] = 2, arr[2] = 1, arr[3] = 0
Размерность массива вместе с типом его элементов определяет объем памяти, необходимый для размещения массива, которое выполняется на этапе компиляции, поэтому размерность должна быть задана целой положительной константой или константным выражением.
Пример заполнения одномерного массива
/* arr.cpp: Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы */
#include
#include
using namespace std;
int main()
{ setlocale(LC_ALL, "Russian");
const int N = 10; // Задаём размерность массива
srand(time(0));
int arr[N]; // Объявляем массив arr размерности N
cout << "Исходный массив данных: ";
for (int i = 0; i < N; i++) // Цикл, заполняющий массив случайными числами
{ arr[i] = rand() % 9; // Заполняем массив случайными числами от 0 до 9
cout << arr[i] << " "; // Выводим элемент массива на экран
}
return 0;
}
Если при описании массива не указана размерность, массив обязательно должен быть инициализирован. Компилятор сам определит размерность массива по количеству элементов:
int arr[] = {7, 6, 5, 4, 3, 2, 1}; // Всего 7 элементов
Для доступа к элементу массива после его имени указывается номер элемента (индекс) в квадратных скобках. Важно помнить, что при обращении к элементам массива автоматический контроль выхода индекса за границу массива не производится, это может привести к ошибкам. Обмен элементов массива осуществляется через буферную переменную либо через функцию swap(a, b)
Обмен местами элементов массива:
[pic 1]
Определить, сколько памяти выделено под массив, можно с помощью операции sizeof. Необходимо определить, сколько выделяется памяти на 1 элемент массива и умножить на количество элементов массива. Принцип действия схож с задачей про переливание воды из одного сосуда в другой. Чтобы поменять жидкость сосудов местами, нужно использовать еще один сосуд, который будет временно содержать жидкость одного из сосудов.
...