3. Работа с массивами
Kolya Vasya Petya Slavik Michael
athlete Kolya, Vasya, Petya, Slavik, Michael
Jump(Kolya);
Jump(Vasya);
Jump(Petya);
Jump(Slavik);
Jump(Michael);
4. Обозначим именем Guy группу из 5 гимнастов
Guy[0] Guy[1] Guy[2] Guy[3] Guy[4]
Массив Guy, построенный из гимнастов
Элементу Guy в позиции индекс выполнить упражнение
индекс
5. //Программа для отдельных гимнастов
void main()
{
athlete Kolya, Vasya, Petya, Slavik, Michael;
Jump(Kolya);
Jump(Vasya);
Jump(Petya);
Jump(Slavik);
Jump(Michael);
}
//Программа для массива гимнастов
void main()
{
// Объявление массива из пяти гимнастов
athlete Guy[5];
for (int which=0; which<=4; which++);
{
// Выполнение упражнения каждым гимнастом
Jump(Guy[which]);
}
}
6. Пример 1.
Заполните одномерный массив размером 10 элементов числами от 1 до 10 и
выведите содержимое массива на экран в виде:
a[0] = 1
a[1] = 2
#include <iostream>
using namespace std;
int main()
{ // Инициализация переменных
int a[10]; // Массив a типа int,
// размер - 10 элементов
int i;
// Заполнить массив
for (i = 0; i < 10; i++)
a[i] = i + 1;
// Вывести массив на экран
for (i = 0; i < 10; i++)
cout << "a[" << i << "] = " << a[i] << endl;
return 0;
}
11. #include <iostream>
#include <ctime> //для ф-ии time()
#include <cstdlib> //для srand() и rand()
int main()
{ // Инициализация переменных
// Массивы a и b типа int,
// размер - 10 элементов
???????????????
// Сброс генератора случайных чисел
srand(time(NULL));
// Заполнить массив случайными числами
for (i = 0; i < 10; i++)
a[i] = rand();
// Скопировать массив a в массив b
?????????????
// Вывести массивы на экран
?????????????
}
ЗАДАЧА 3
12. Динамические массивы в
С++
double *arr = new double[count];
// Освобождаем память, отведенную
под динамический массив
delete [] arr;
12
14. Динамический массив
int main()
{
int amount = 5;
int *ptr = NULL;
//адрес массива хранится в указателе ptr
ptr = new int[amount];
//освободить память по адресу ptr
delete []ptr;
}
14
15. 15
#include <iostream>
using namespace std;
int main()
{
int amount = 0;
int *ptr = NULL;
cout << "enter amount: ";
cin >> amount;
//адрес массива хранится в указателе ptr
ptr = new int[amount];
for(int i = 0; i < amount; i++)
{
ptr[i] = rand() %100;
cout << ptr[i] << 't';
}
cout << endl;
//освободить память по адресу ptr
delete []ptr;
}
16. 16
//подключаем необходимые библиотеки ?????????????
//подключаем стандартное пространство имен ??????
int main()
{
// Максимальное количество случайных элементов массива
const int NUMBER_RAND_MAX = 100;
// Инициируем генератор случайных чисел
?????
// Случайное количество элементов массива
int count = int((double)rand()/RAND_MAX*NUMBER_RAND_MAX);
// Выделяем память под динамический массив
double *arr = new double[count];
// Инициализируем массив случайными числами
for(int i = 0; i < count; i++)
{
arr[i] = (double)rand()/RAND_MAX;
}
// Производим поиск минимального и максимального значений
double min_value = arr[0];
double max_value = arr[0];
for(int i = 0; i < count; i++)
?????????????
//вывод максимального и минимального значений
???????????
// Освобождаем память, отведенную под динамический массив
delete [] arr;
return 0;
}
17. 17
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
// Максимальное количество случайных элементов массива
const int NUMBER_RAND_MAX = 100;
// Инициируем генератор случайных чисел
????????????????????
// Случайное количество элементов массива
int count = int((double)rand()/RAND_MAX*NUMBER_RAND_MAX);
// Выделяем память под динамический массив
?????????????????????
// Инициириуем массив случайными числами
for(int i = 0; i < count; i++)
{
arr[i] = (double)rand()/RAND_MAX;
// вывод элементов массива ?????????????
}
// Освобождаем память, отведенную под динамический массив
?????????????????
return 0;
}
19. 19
ЗАДАЧА
Создать программу с функцией, которой передаѐтся
динамический массив и его размерность.
Эта функция должна выводить сумму элементов массива.
20. 20
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int sum(int *a, int m)
{
int i, qwe = 0;
for(i = 0; i < m; i++)
qwe = qwe + a[i];
return qwe;
}
int main()
{
int i, m, *a=0, *b;
cout << "Введите размерность -> ";
cin >> m;
// a = (int *) calloc(m, sizeof(*a));
a = new int[m];//выделение динамической памяти
b = a;
srand(time(NULL));
for(i = 0; i < m; i++)
{
*b++ = rand() %100;
cout << a[i] << "t";
}
cout << endl << "Сумма элементов массива: ";
cout << endl << sum(a, m);
delete[]a;
return 0;
}
21. 21
ЗАДАЧА
Задание. сгенерировать дин. массив с
элеменами типа int,
размерность вводим вручную, дин. массив new,
delete
Требуется:
1) вывести исх одномерный массив в
читабельном виде
2) скопировать нечетные элементы данного
массива в целевой массив В
3) вывести полученный массив четных чисел
4) скопировать из массива а -> b все нечетные
числа
5) вывести массив
6) вывести макс. и миним. нечетные числа из
массива В
23. В своем простейшем варианте она выполняется
очень медленно, поэтому обычно применяют
пузырьковую сортировку с оптимизацией. Однако
все алгоритмы пузырьковой сортировки имеют
общую особенность – обмен элементов массива
производится между двумя соседними
элементами массива.
(*)выбираем в новом массиве наибольшее число
и обменивает его с соседним (правым).
Метод пузырьковой сортировки
(метод обменной сортировки с выбором)