На главную

Программирование на языке С++

Статические массивы

Упражнения

Листки
Начало
Цикл if/else
Цикл while
Цикл for
Массивы
Строки и тип char
Указатели
Функции
Массив -- это структура однотипных данных, занимающих непрерывную область памяти. Массив имеет размер -- количество элементов в нем. Каждый элемент массива имеет свой номер, обращение к элементу массива осуществляется путем указания его номера. В языке 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] для некоторых

наверх

NiveClip - российская транс группа

Hosted by uCoz