Практикум по курсу "Алгоритмизация и программирование". Часть 2. Андрианова А.А - 9 стр.

UptoLike

. Практикум по курсу «Алгоритмизация и программирование». Часть 2
кового типа, которые расположены в непрерывной области памяти друг за
другом. Обращение к этим переменным осуществляется с помощью указания
имени массива и порядкового номера переменной в нем. В языке С++ имя
массива является указателем, содержащим адрес его первого элемента. На
рис.1.1 изображен массив a, содержащий n элементов, имеющих порядковые
номера от 0 до n-1.
Рис.1.1. Схема расположения элементов массива в памяти.
Таким образом, при передаче массива в функцию в качестве параметров
передаются имя массива и количество элементов в нем.
Пусть требуется написать функцию, определяющую, является ли массив
симметричным. Прототип этой функции выглядит следующим образом:
bool Symmetry(int * a, int n);
Функция возвращает значениe true, если массив симметричный, false
– в противном случае.
Приведем также определение этой функции:
// определение функции проверки симметричности массива
bool Symmetry(int * a, int n)
{
int i;
for(i=0; i<n/2; i++)
if(a[i] != a[n-1-i])
return false; // нашлась несимметричная пара
return true;
}
В случае параметров-матриц также следует передать имя матрицы и ее
размер, который задается двумя параметрами – количеством строк и столбцов
(в случае квадратной матрицы можно указать только один размер).
Организовать хранение матрицы в памяти можно так, как представлено
на рис.1.2. При таком способе хранения матрица представляет собой набор
9
            .       Практикум по курсу «Алгоритмизация и программирование». Часть 2
кового типа, которые расположены в непрерывной области памяти друг за
другом. Обращение к этим переменным осуществляется с помощью указания
имени массива и порядкового номера переменной в нем. В языке С++ имя
массива является указателем, содержащим адрес его первого элемента. На
рис.1.1 изображен массив a, содержащий n элементов, имеющих порядковые
номера от 0 до n-1.




           Рис.1.1. Схема расположения элементов массива в памяти.


    Таким образом, при передаче массива в функцию в качестве параметров
передаются имя массива и количество элементов в нем.
    Пусть требуется написать функцию, определяющую, является ли массив
симметричным. Прототип этой функции выглядит следующим образом:
        bool Symmetry(int * a, int n);

     Функция возвращает значениe true, если массив симметричный, false
– в противном случае.
     Приведем также определение этой функции:
   // определение функции проверки симметричности массива
   bool Symmetry(int * a, int n)
   {
         int i;
         for(i=0; i