115.17K
Категория: ПрограммированиеПрограммирование

Данные C++. Массивы

1.

2.

Базовые типы данных C++
Целочисленные типы данных:
short int, unsigned short int, int, unsigned int, long,
unsigned long, long long, unsigned long long
Типы данных с плавающей запятой (соответствуют
вещественным типам):
float, double, long double
Символьный тип данных:
char (signed char), unsigned char, wchar_t
Логический тип данных:
bool
2

3.

Как перевести переменную типа float в тип int?
Операция приведения типов
Пример:
float a;
int b;
a = 8.457;
b = (int) a; // b = 8
3

4.

Операции приведения типов
В следующему листинге происходит переполнение значения
в переменной типа short int:
short int i;
float f;
f = 3990099.8;
i = (int)f; // i = -7597 - переполнение
4

5.

Перечислимый тип данных
Введен в Visual C++: enum
В нем задаются мнемонические значения для множеств целых значений. Каждое
мнемоническое значение имеет определенное содержание и представляется
целым числом.
Пример использования типа enum для обозначения месяцев года:
enum months { January, February, March, April, May, June, July,
August, September, October, November, December } mn;
mn = January;
// mn = 0
mn = March;
// mn = 2
mn = September; // mn = 8
5

6.

Массивы
Массив – набор переменных одинакового типа. Доступ к этим
переменным осуществляется по одному имени. Это имя
называется именем массива.
Массивы могут быть одномерными и многомерными.
В одномерных массивах для доступа к элементу массива
используется один индекс.
В многомерных массивах для доступа к элементу массива
используется несколько индексов.
6

7.

Массивы
Общая форма описания одномерного массива:
тип имя_массива[размер];
Где:
тип – это тип элементов массива. Он еще называется базовым типом. Базовый
тип определяет количество данных каждого элемента, который составляет
массив. Тип элементов массива может быть как базовым типом так и составным
(например, структура). Подробно о базовых типах данных C++ описывается
здесь.
размер – количество элементов в массиве;
имя_массива – непосредственно имя массива, по которому осуществляется
доступ к элементам массива.
7

8.

Массивы
Пример 1. Описание массива из 10 целых чисел (тип int) с именем A.
int A[10];
В результате, в памяти компьютера выделяется 10 ячеек типа int. Если
одна ячейка занимает 2 байта, то всего будет выделено 20 байт памяти.
Номер первой ячейки начинается с нуля. Эти ячейки объединены общим
именем A.
8

9.

Массивы
Размер одномерного массива определяется по формуле:
размер массива = размер типа в байтах × количество элементов
Пример.
Если в массиве 20 элементов типа double (8 байт), то размер массива
будет
размер = 20 × 8 = 160 байт
9

10.

Инициализация массива в C++
Пример 1. Описание массива из 10 целых чисел (тип int) с именем A.
10

11.

Инициализация массива в C++
• инициализация с заданием размера массива;
тип имя_массива[размер] = { список_значений };
Пример.
int B[10] = { 5, 6, 9, -8, 3, 2, 4, -90, -103, 0 };
• «безразмерная» инициализация.
тип имя_массива[] = { список_значений };
Пример.
float C[] = { -3.9, 2.8, -1.6, 2.2 };
11

12.

Инициализация массива в C++
Для символьных массивов можно использовать сокращенный вариант
инициализации:
char имя_массива[размер] = "строка";
В этом случае каждому элементу массива присваивается один символ
строки. Значение размер задает размер памяти, который выделяется для
массива. Значение размер должно быть не менее длины строки, в
противном случае компилятор выдаст сообщение об ошибке.
Инициализация массива без указания размера:
char имя_массива[] = "строка";
12

13.

Инициализация массива в C++
Пример. Инициализация символьного массива с именем str.
// символьный массив - сокращенный вариант инициализации
char str[] = "Hello!";
// другой вариант инициализации символьного массива
char str2[] = { 'H', 'e', 'l', 'l', 'o', '!', '\0' };
В вышеприведенном примере массивы str и str2 содержат одинаковые
значения.
13

14.

Присвоение одного массива другому
В C++ нельзя присваивать непосредственно один массив другому.
Присваивать можно только поэлементно с использованием оператора
цикла. При этом оба массива должны иметь одинаковый тип элементов.
// описание массивов A и B
int A[10], B[10];
int i;
for (i=0; i<10; i++)
B[i] = 0;
for (i=0; i<10; i++)
A[i] = B[i];
14

15.

Перестановка элементов массива
Как поменять местами два элемента массива
{
// поменять местами A[j] и A[j+1]
t = A[j];
A[j] = A[j+1];
A[j+1] = t;
}
15

16.

Генерирование случайных чисел. Функции rand(),
srand(), time()
Чтобы сгенерировать случайное число используется функция
rand(), которая размещается в библиотечном файле stdlib.h.
Функция возвращает случайное целочисленное значение,
которое лежит в пределах от 0 до 32767.
Функция srand() из библиотеки stdlib.h предназначена для
установки начальной точки, из которой происходит
генерирование случайных чисел. Пример:
srand(55);
Для того, чтобы в функции srand() получить разные
начальные значения используется функция time() из
библиотеки time.h.
16

17.

Генерирование случайных чисел. Функции rand(),
srand(), time()
Чтобы сгенерировать случайное число используется функция rand(), которая
размещается в библиотечном файле stdlib.h.
Функция возвращает случайное целочисленное значение, которое лежит в
пределах от 0 до 32767. Пример:
x = rand();
Функция srand() из библиотеки stdlib.h предназначена для установки
начальной точки, из которой происходит генерирование случайных чисел.
Пример:
srand(55);
Для того, чтобы в функции srand() получить разные начальные значения
используется функция time() из библиотеки time.h.
srand(time(NULL));
//функция возвратит количество миллисекунд, которые прошли с 1
января 1970 года
17

18.

Генерирование случайных чисел. Функции rand(),
srand(), time()
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{
int a[10];
int i;
srand(time(NULL));
for (i = 0; i <= 9; i++)
{
a[i] = rand();
}
return 0;
}
18
English     Русский Правила