Структуры данных. Массивы. Механизм работы методов при использовании входных параметров

Страницы работы

Содержание работы

Б9

1. Массивы  в языке C# (29) Л(23)

2. Список параметров и приемы работы с ними. (18) Л(14)

1.

Структуры данных. Массивы

Массив – однородная структура данных с произвольным доступом. Однородность: все элементы массива имеют один и тот же тип.

          Произвольный доступ – путем заданного индекса элемента( как правило, это число). Время доступа – одно и то же.

          Для определения массива используются [ ].

тип_элемент [ ] имя_массива

int [ ] my_Array;

          В С# массив относят к ссылочным типам данных.

          Для работы с массивами используется цикл for,  с помощью которого мы можем проходить по массивам. Нумерация начинается с нулевого элемента.

          Пример создания массива целых чисел:

int [ ] int Array=new int[10];

          Пример объявления массива символов:

char [ ] char Array=new char[5];

          Пример объявления массива из строк:

string[ ] string Array=new string[2];

          Доступ по индексу:

char[ ] char Array=new char[4];

char Array[0] = ‘C’;

char Array[1] = ‘А’;

char Array[2] = ‘Л’;

char Array[3] = ‘Ю’;

char Array[4] = ‘Т’;

В С# массивы могут быть и многомерными.

Int[ ] int Array=new int[8,8,2];

Мерности массива перечисляют через “9”.

Массивы являются объектами. Для работы с массивами используются возможности класса Array. Этот класс имеет два свойства:

Length и Rank типа int.

          Посмотреть режимы массива можно в цикле:

For(int counter=0; counter<array Length; counter++)

{

  Int Array[counter] = counter;

  Console.Writeline(“int Array[“+counter+”]= “+int Array[counter]);

}

Foreach(string myString in stringArray)

{

  Console.Writeline(“myString=”+myString);

}

МетодыклассаArray

{

  Class Class 1

  {

    Static void Main( )

    {

//использование метода Sort

      Int [ ] int Array=(5,3,4,1,6,9-7,14,25);

      Array.Sort(int Array); //сортировка

      Console.Writeline(“Сортировка int Array:”);

      For(int counter=0; counter<int Array.Length; counter++)

      {

        Console.Writeline(“int Array[“+counter+”]=“+int Array[counter]);

//после у нас выдало: -7,1,2,3,5,6,9,14,25

//исполнение BinarySearch( ) элемента со значением 5

        int index = Array.BinarySearsh(int Array,5);

        console.Writeline(“Array.BinarySearch(int Array,5)=“+index);

Пример создания 3-х мерного массива из звезд:

namespace пример 10_10

//определение класса Star

Public class Star

{

//два поля – имя и яркость

  Public string name

  Public int brightness

//конструктор

  Public Star(string name, int brightness)

  {

    This.name=name;

    This.brightness=brightness;

  }

  Class Class 1

  {

//объявление массива галактика

    Star[..] galaxy=new Star[10,5,3];

//создадим два объекта типа звезда и разместим их в массиве

    Galaxy[1,3,2]=new Star(“Sun”,3);

    Galaxy[4,1,2]=new Star(“Alpha Centuri”,9);

//вывод свойств Rank и Length

    Console.Writeline(“galaxy.Rank(number of dimensions)=”+galaxy.Rank);

    Console.Writeline(“galaxy.Length(number of elements)=”+galaxy.Length);

//вывод элементов массива

    For (int x=0; x<galaxy.GetLength(0); x++)

    For (int x=0; x<galaxy.GetLength(0); x++)

    {

      For (int y=0; y<galaxy.GetLength(1); y++)

      {

        For (int z=0; z<galaxy.GetLength( ); z++)

        {

          If(galaxy[x,y,z]!=Null

          {

            Console.Writeline(“galaxy[“+x+”, “+y+”, “+z+”].name= “+galaxy[x,y,z].name);

            Console.Writeline(“galaxy[“+x+”,“+y+”,“+z+”].brightness= “+galaxy[x,y,z].brightness);

          }

       }

    }

}

2.

Виды формальных параметров:

- входные (параметры значения);

- обновляемые (параметры переменные);

- выходные.

Если в списке формальных параметров перед описанием ничего не стоит (int x), то это входные параметры.

Если стоит слово ref, то это обновляемый параметр (ref int x).

Если стоит слово out, то это выходной параметр (out int x).

Входные параметры служат для создания исходных данных, с которыми будет работать метод.

Выходные параметры предназначены для передачи результатов работы методов.

Вызов метода:

Возможен после создания объекта:

задаем имя_объекта. имя_метода (список фактических параметров)

Список фактических параметров:

Const или переменная, типы и порядок следования, который должен соответствовать типу формальных параметров.

Требования:

Список фактических параметров при вызове метода должен соответствовать списку формальных параметров по количеству, типам и по порядку следования.

Механизм работы методов при использовании входных параметров

Для того, чтобы вызвать метод, нужно создать объект, потом вызвать метод с фактическими параметрами. Количество и тип фактических параметров должно соответствовать количеству и типу.

1.  При вызове метода входные формальные параметры могут соответствовать фактическим параметрам в виде переменной const или выражения соответствующего типа.

2.  Далее при вызове метода для каждого входного параметра создается неявно описанная локальная переменная, имя которой совпадает с именем формального параметра.

3.  В эти неявно описанные локальные переменные копируется значение фактического параметра. И все дальнейшие действия в теле метода выполняются над этими копиями.

Использование входных параметров для работы метода:

using System;

namespace Пример_5_6

{

  Public class Swapper

{

  //Swap( ) – метод представляет входные параметры – значения

  Public void Swap(int x, int y)

{

  //показать исходные значения

  System.Console.Writeline(“B Swap( ): исходно x=”+x+”, y=”+y);

  //переставить x и y

  Int temp=x;

  x=y;

  y=temp;

  //показать окончательные значения

  System.Console.Writeline(“B Swap( ): окончательно x=”+x+”, y=”+y);

 }

}

class Class 1

{

Static void Main( )

  //объявить a и b

  Int a=2;

  Int b=5;

  //показать исходные значения

  System.Console.Writeline(“B Main( ): исходно a=”+a+”, b=”+b);

  //объявить и создать объект типа Swapper

  Swapper my Swapper = new Swapper( );

  //вызвать метод перестановки входных параметров

  my Swapper.Swap(a,b);

  //показать окончательные значения

  System.Console.Writeline(“B Main( ): окончательно a=”+a+”, b=”+b);

  }

 }

}

Механизм работы методов при использовании обновляемых параметров

Под обновляемый параметр не выделяется память и все действия выполняются над самыми фактическими параметрами.

1.  Если параметры описаны как обновляемый, то при вызове метода копии этих параметров не создаются, а все действия выполняются над самыми фактическими параметрами.

2.  Обновляемым параметрам могут соответствовать только фактические параметры в виде переменных.

Вывод:

          Исходные данные для работы метода должны описываться как входные параметры. Надо стремиться организовать работу метода как функции, тогда результат работы будет передаваться через имя этой функции.

          Если работа метода организовывается в виде процедуры, тогда выходные данные должны использоваться через выходные параметры.

          Всё, что является результатом, надо описываться как выходной параметр с const.

Перегружаемые методы – методы, которые имеют одно и то же имя, но отличаются списком параметров.

Статические методы – методы, которые определяются при описании класса. Перед модификатором доступа ставится служебное слово static.

Похожие материалы

Информация о работе