Массивы. ПЗ №6 Массивы данных. Одномерные и многомерные массивы. Практическая работа 6 Массивы данных. Одномерные и многомерные массивы
Скачать 47.5 Kb.
|
Практическая работа №6 Массивы данных. Одномерные и многомерные массивы В уроке мы познакомимся с массивами данных в языке C++. Мы научимся создавать, обновлять, а также перебирать массивы данных при помощи циклов. В уроке будут рассмотрены одномерные и двумерные массивы. Массивы позволяют хранить большой объем информации в одном месте. В языке C++ можно найти несколько основных типов массивов. Одномерный массивЧтобы создать массив необходимо указать тип данных, прописать название и поставить квадратные скобки. Это очень схоже с созданием обычных переменных, но здесь после названию идут ещё квадратные скобки. В массивах отсчет начинается с 0, поэтому первый элемент по индексу будет равен 0, второй - 1 и так далее. Примеры создания массива: char stroka[2];// Создание пустого массива int[] numbers;// Будет считаться ошибкой int nums[4]; nums[0]=1;// Добавление элементов в массив из 4 элементов int nums2[]={1,2,3,5};// Присвоение всех значений сразу Работать с элементами массива можно точно как с переменными. Мы можем их выводить или же устанавливать для них новые значения. Многомерный массивМногомерный массив - это массив, в котором каждый элемент является другим массивом. На практике очень редко используются массивы с более чем третим уровнем вложенности. То есть массивы, в которых все элементы являются другими массивами и в котором все элементы также другие массивы встречаются очень и очень редко на практике. Мы не будем изучать подобные массивы, так как принцип их построения точно такой же как при работе с двумерными массивами. Для создания двумерных массивов необходимо использовать двойные квадратные скобки после названия. Выглядит такой массив как матрица, а записывается следующим образом: int x[3][3]={{0,34,2},{3,4,5}}; cout << x[0][1];// Выведет 34 // Можно их сразу не присваивать char symbols[5][2]; symbols [0][1]='A'; Мы видим, что элементы первого массива являются другими массивами. Чтобы выбрать какой-либо объект используйте ту же структуру что и для одномерных массивов, вот только теперь указывайте индекс как первого массива, так и второго: x[0][1]=1;// Вместо 34 теперь будет 1 Одномерныймассив #include usingnamespace std; intmain(){ int arr[3]={23,34,12}; for(int i =0; i <3; i++) cin >> arr[i]; for(int i =0; i <3; i++) cout <<" "<< arr[i]; cin.get(); return0; } Двумерный массив #include usingnamespace std; intmain(){ int arr[3][2]={{2,5},{1,2},{5,7}}; for(int i =0; i <3; i++){ for(int j =0; j <2; j++){ cout <<" "<< arr[i][j]; } cout << endl; } cin.get(); return0; } Задание к уроку 1. Сумма чисел Найдите сумму отрицательных элементов массива intmain(){ int[] a ={-24,34,-4,4,5,-1}; int sum =0; for(int i =0; i <=6; i++){ if(a[i]<0) sum += a[i]; } if(sum ==0) cout <<"No numbers < 0"; else cout <<"sum = "<< sum; return0; } 2. Наибольшее значение Найдите наибольший элемент массива intmain(){ int[] a ={-24,34,-4,4,5,-1}; int max =0; for(int i =0; i <6; i++){ if(a[i]> max) max = a[i]; } cout <<"max: "<< max << endl; return0; } 3. Одинаковые числа в массивах Дано два массива чисел, необходимо вывести на экран все числа, которые одновременно присутствуют в обеих массивах. Вот оба массива: int array_1[] = {1, 2, 3, 5, 7, 9, 10}; int array_2[] = {1, 4, 3, 5, 8, 9, 0}; Нужно сравнить каждое значение 1 массива с каждым значением 2 массива. Т.е. сначала берем первый элемент массива 1 и сравниваем его со значениями массива 2. Если во втором массиве находится такое же число, то помещаем его в результирующий массив данных для последующего вывода на экран. Берем второй элемент массива 1 и сравниваем его со значениями из массива 2… И т.д. пока не будут пройдены все элементы массива 1. using namespace std; int main() { const int dimension = 7; int increment = 0; int array_1[] = {1, 2, 3, 5, 7, 9, 10}; int array_2[] = {1, 4, 3, 5, 8, 9, 0}; /* объявляем новый массив для результатов */ int result_arr[dimension]; for (int i = 0; i < dimension; i++) { for (int j = 0; j < dimension; j++) if (array_1[i] == array_2[j]) { // если значения совпали, то помещаем данное число // врезультирующиймассив result_arr result_arr[increment] = array_1[i]; increment++; } } // выводимрезультаты for (int i = 0; i < increment; i++) { cout << result_arr[i] << endl; } cin.get(); return 0; } 4. Минимальный элемент Создайте двумерный массив и найдите минимальный элемент среди всех чисел в массиве. Массив ниже: { { 0, 34, -2 }, { 3, -4, 5 } } usingnamespace std; intmain(){ int numbers[2][3]={{0,34,-2},{3,-4,5}}; int min_num = numbers[0][0]; for(shortint i =0; i <2; i++){ for(shortint j =0; j <3; j++){ if(numbers[i][j]< min_num){ min_num = numbers[i][j]; } } } cout <<"Minimum number is "<< min_num; cin.get(); return0; } |