Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка ПИ_ИКТ Программирование по С++ (1 семестр) _Хотов.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
5.83 Mб
Скачать

Содержание отчета

  1. Титульный лист.

  2. Наименование и цель работы.

  3. Краткое теоретическое описание.

  4. Задание на лабораторную работу.

  5. Схема алгоритма.

  6. Листинг программы.

  7. Результаты выполнения программы.

  1. Массивы

    1. Массивы.

Массив – это упорядоченная последовательность переменных одного типа. Каждому элементу массива отводится одна ячейка памяти. Элементы одного массива занимают последовательно расположенные ячейки памяти. Все элементы имеют одно имя – имя массива и отличаются индексами – порядковыми номерами в массиве. Количество элементов в массиве называется его размером. Чтобы отвести в памяти нужное количество ячеек для размещения массива, надо заранее знать его размер. Резервирование памяти для массива выполняется на этапе компиляции программы.

1 Определение массива в C/C++

Описание массива выглядит следующим образом:

Базовый_тип имя_массива [размерность];

Размерность – это количество элементов массива.

Пример:

Int a[100];//массив из 100 элементов целого типа

Операция sizeof(a) даст результат 400, т. е. 100 элементов по 4 байта.

Элементы массива всегда нумеруются с 0.

45

352

63

124

значения элементов массива

0

1

2

…..

99

индексы элементов массива

Чтобы обратиться к элементу массива, надо указать имя массива и номер элемента в массиве (индекс):

a[55] – индекс задается как константа,

a[i] – индекс задается как переменная,

a[2*i] – индекс задается как выражение.

Все инструкции по выделению памяти формирует компилятор до выполнения программы. Вследствие этого размерность массива может быть задана только константой или константным выражением.

Например:

//одномерный массив целочисленного типа из 5 элементов

int array[5];

//одномерный массив вещественного типа из N элементов (N - константа!!!)

const int N = 20;

float x[N];

При описании массив можно инициализировать, то есть присвоить его элементам начальные значения:

базовый_тип имя_массива [размерность] = {начальные_значения};

Если инициализирующих значений меньше, чем элементов в массиве, остаток массива обнуляется, если больше – лишние значения не используются.

Например:

int a[3] = {1, 2, 3}; //a[0] = 1, a[1] = 2, a[2] = 3

// недостающие значения инициализации заполняются нулями

int b[5] = {1, 2, 3}; //b[0] = 1, b[1] = 2, b[2] = 3, b[3] = 0, b[4] = 0

// лишние значения (4 и 5) не используются

int с[3] = {1, 2, 3, 4, 5}; //c[0] = 1, c[1] = 2, c[2] = 3

//индекс может быть опущен и размер вычисляется

// по количеству элементов инициализации

int d[] = {0, 2, 4}; //c[0] = 0, c[1] = 2, c[2] = 4 (размер 3)

//строка так же является массивом символов,

//оканчивающимся нуль-символом (управляющей последовательностью \0)

char s[] = "Hi!"; //s[0]='H', s[1]='i', s[2]='!', s[3]='\0' (размер 4)

Задача: найти сумму элементов массива, ее и сам массив на экран. Элементы массива ввести с клавиатуры.

#include <iostream>

using namespace std;

void main()

{

setlocale(LC_ALL, "Russian");

//определим размер массива

const int N = 10;

int a[N];

//введем элементы массива с клавиатуры

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

{

cout << "Введите " << i <<"-й элемент массива: ";

cin >> a[i];

}

//объявим переменную для хранения суммы элементов

int s = 0;

//просуммируем элементы массива

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

s += a[i];

//выведем на экран элементы массива и их сумму

cout << "a:";

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

{

cout << " " << a[i];

}

cout << endl << "Сумма элементов: " << s;

}

Рассмотрим следующий пример: найти максимальный элемент в массиве.

#include <iostream>

using namespace std;

void main()

{

setlocale(LC_ALL, "Russian");

int b[] = {1, -5, 8, 7, 4, -7, 3, 0, -8, 6};

//определим размер массива

int n = sizeof(b)/sizeof(b[0]);

//объявим переменную для хранения максимального элемента

//присвоим начальное значение, равное нулевому элементу

int m = b[0];

//просмотрим все элементы начиная с 1-ого элемента

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

{

//если i-й элемент будет больше текущего максимального значения,

//то изменим это максимальное значение на значение i-го элемента

if (b[i] > m)

m = b[i];

}

//выведем на экран элементы массива

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

cout << " " << b[i];

//и максимальный элемент

cout << endl << "Максимальный элемент: " << m;

}