Одномерный массив
Цель обучения:
-программировать заполнение элементов одномерного массива
Что делать, если количество данных в задаче очень много (несколько десятков, даже сотен)?
Как их ввести в программу?
Как работать с этими данными?
Что такое массив?
Массив – это линейная структура данных, в основном используется для хранения аналогичных данных. Массив представляет собой особый способ хранения элементов индексированных данных. Элементы данных храниться последовательно, в блоках, внутри массива. У каждого элемента существует ссылка на индекс, который является дополнительным идентификатором.
Особенности:
Типы массивов: одномерный массив; двумерный массив;... n-мерный массив.
Что такое одномерный массив?
Одномерный массив – это фиксированное количество элементов одного и того же типа, объединенных общих именем, где каждый элемент имеет свой номер.
Нумерация элементов массива в С++ начинается с нуля, то есть если массив состоит из 4 элементов, то его элементы будут иметь следующие номера: 0,1,2,3.
Index | 0 | 1 | 2 | 3 |
Value | Alex | James | Patrick | Andy |
Структура одномерного массива
Пример: a[1] = 15.
Объявление массивов
<тип массива> <имя массива> [<размер массива>]
<размер массива> – это литерал или константное выражение
<размер массива> * sizeof <тип массива>
байт
Инициализация массива
<тип массива> <имя массива> [<размер массива>] = {<список значений>}
Примеры объявлений
int a[5] = { 3, 45, 11, -8, 74};
double q[4] = {1.7, 4.53};
int a[ ] = { 3, 45, 11, -8, 74};
Доступ к элементам одномерного массива.
Заполнение массива числами, введёнными пользователем
Постройте трассировочную таблицу и запустите программный код.
Напишите программу для нахождения максимального числа.
генератор случайных чисел в C++
int main()
{
cout << "10 random numbers (1..100): " << endl;
srand(time(NULL));
for(int i=0;i<10;i++) cout << rand() % 100 + 1 << " ";
return 0;
}
Возможно, вам понадобится заполнить элементы массива случайными числами. В С++ для этого есть специальные фyнкции rand() и srand().
Они находятся в библиoтечном файле cstdlib, поэтому чтобы их применять в программе, необходимо подключить этот библиотечный файл: #include <cstdlib> или #include <stdlib.h> (для старых компиляторов).
#include <iostream>
#include <cstdlib> // содержит srand() и rand()
using namespace std;
int main()
{
int randomDigits[3] = {};
for (int i = 0; i < 3; i++)
{
randomDigits[i] = rand(); // запись случайного числа, которое вернет rand()
cout << randomDigits[i] << endl;
}
return 0;
}
«A»: Заполните массив случайными числами в интервале [0,100] и найдите среднее арифметическое его значений.�Пример:�Массив:�1 2 3 4 5�Среднее арифметическое 3.000
#include <iostream>
#include <ctime>
#define SIZEAR 10
using namespace std;
int main() {
int ar[SIZEAR];
srand(time(NULL));
//Заполняем массив
for (int i = 0; i < SIZEAR; i++)
ar[i] = rand() % 101;
//Выведем массив для просмотра
for (int i = 0; i < SIZEAR; i++)
cout <<ar[i]<<endl;
//Подсчитаем средее арифметическое
int sum=0;
for (int i = 0; i < SIZEAR; i++)
sum+=ar[i];
float sred = float(sum) / float(SIZEAR);
cout << "Result: " << sred;
}
Пример подсчета среднего роста учеников класса на С++ без массива
#include <iostream>
using namespace std;
int main()
{ setlocale (LC_ALL, "russian");
int n; // Число студентов
double ah; // Средний рост
double r, sr; // Рост и сумма роста
sr=0;
cout<<"Введите число студентов"<<endl;
cin>>n;
for (int i=1; i<=n; i++)
{ cout<<"Введите рост"<<endl;
cin>>r;
sr=sr+r;
}
ah=sr/n;
cout<<"Средний рост"<<ah<<endl;
system ("pause");
}
Пример подсчета среднего роста учеников класса на С++�с массивом
#include <iostream>
using namespace std;
int main()
{ setlocale (LC_ALL, "russian");
int k, a[100]; // Число студентов
double ah; // Средний рост
double sr; // Сумма роста
sr=0;
cout<<"Введите kol-vo студентов"<<endl;
cin>>k;
for (int i=1; i<=k; i++)
{ cout<<"Введите рост"<<endl;
cin>>a[i];
sr=sr+a[i];
}
ah=sr/k;
cout<<"Средний рост"<<ah<<endl;
system ("pause");
}
Задачи по уровням сложности