Программирование на языке С++ Статические массивы |
|||||||||
|
Массив -- это структура однотипных данных, занимающих непрерывную область памяти. Массив имеет размер -- количество элементов в нем. Каждый элемент массива имеет свой номер, обращение к элементу массива осуществляется путем указания его номера. В языке C++ элементы нумеруются начиная с 0, поэтому последний элемент массива имеет номер на 1 меньше размера массива. Массив в языке C++ задается следующим образом: тип_элементов идентификатор[размер]; где тип_элементов -- произвольный тип данных языка C++, который будут иметь элементы массива, например, int, double и т.д.; идентификатор -- имя массива, размер -- число элементов в нем. Размер должен быть константой, а не переменной, то есть должен быть точно определен на момент компиляции программы. Для того, чтобы создать массив, размер которого нельзя указать до запуска программы, следует использовать динамические массивы, о которых речь пойдет дальше. К элементу массива можно обращаться, как идентификатор[номер_элемента]. Например, если было сделано объявление double A[5]; то таким образом создается 5 элементов массива типа double: A[0], A[1], A[2], A[3], A[4]. Пример программы, которая создает массив из n=10 элементов типа int, считывает с клавиатуры его элементы, затем прибавляет к каждому элементу массива число 1, затем выводит результат на экран: #include <iostream> using namespace std; int main() { const int n=10; // Размер массива int i; // Счетчик в циклах int arr[n]; // Объявление массива // Считываем массив cout<<"Введите "<<n<<" целых чисел: "; for(i=0;i<n;++i) cin>>arr[i]; // Прибавляем по 1 к каждому элементу for(i=0;i<n;++i) arr[i]+=1; // Выводим массив на экран for(i=0;i<n;++i) cout<<arr[i]<<" "; // Переведем курсор на новую строку cout<<endl; return 0; } В этом примере есть две ранее не рассматриваемых конструкции. При помощи // обозначается начало комментария, весь текст после начала комментария и до конца строки компилятором игнорируется. Объявление const int n=10; означает создание константы n типа int, равной 10. Константа отличается от обычной переменной тем, что ее значение задается на момент компиляции программы и не может быть изменено в программе. Константы можно использовать для задания размеров массива. Упражнения В этих упражнениях предполагается, что все массивы статические, состоят из n элементов типа double, где величина n задается, как в рассмотренном выше примере. Программа должна считать исходные массивы с клавиатуры, выполнить указанные действия и вывести на экран результат работы. 1. Не используя дополнительного массива переставьте элементы массива в обратном порядке. 2. Дан массив, отсортированный по возрастанию (каждый элемент массива не меньше предыдущего элемента). Найдите количество различных элементов в этом массиве. 3. В массиве double A[n] хранятся коэффициенты многочлена an-1xn-1+...+a1x+a0 , то есть элемент массива A[i] равен коэффициенту при xi . Найдите значение многочлена в данной точке x. Количество действий должно быть порядка Cn. 4. В массивах double A[n] и double B[m] хранятся коэффициенты двух многочленов степени n-1 и m-1. Запишите в массив double AB[n+m-1] коэффициенты произведения этих многочленов. 5. Отсортируйте элементы данного массива в порядке убывания. 6. Два массива double A[n] и double B[m] упорядочены по возрастанию. Перепишите в массив double C[m+n] все элементы из массивов A и B, также упорядочив результат по возрастанию. Количество действий должно быть порядка C(m+n). 7. Даны два неубывающих массива double A[n] и double B[m] (то есть A[i]<=A[i+1], B[j] <=B[j+1] для всех i и j). Найдите число общих элементов в них, то есть количество таких чисел t, что t==A[i], t==A[j] для некоторых наверх |