Динамические строки


Тип динамической строки определен как класс – StringBuilder, пространство имен System.Text.

Создание динамической строки

StringBuilder ИмяСтроки;

ИмяСтроки=new StringBuilder();

Отличия от обычной строки:

1. Элементы динамической строки можно изменять напрямую, путем присваивания.

2. В операциях ==, !=, = участвуют не элементы строки, а адреса (аналогично массиву).

Поле объекта: Length

Методы:

ИмяСтроки.Append (символ) //добавление символа в конец строки

ИмяСтроки.Append (символ, кол-во) //добавление заданного количества символов в конец строки

ИмяСтроки.Remove (номер позиции, кол-во символов) //удаление заданного кол-ва символов с заданной позиции

По сравнению со строками динамические строки имеют меньший набор методов, поэтому при решении задач используется комбинация строк и динамических строк, что порождает проблему их преобразования.

Схема выполнения преобразований:

string s => char[] a

s.ToCharArray;

 

char[] a => string s

s=new_string(a);

 

string s => StringBuilder b

b=new_StringBuilder(s);

 

StringBuilder b => string s

s=b.ToString();

Двумерные массивы

Предназначены для хранения данных, организованных в виде прямоугольной таблицы (матрицы). Таблица имеет определенное количество строк и столбцов, которые нумеруются, начиная с нуля.

Обработка массива производится поэлементно. Для доступа к элементу матрицы необходимо указать номер строки и столбца, на пересечении которых находится этот элемент.

 

Объявление двумерного массива:

Тип элементов [,] ИмяМассива;

ИмяМассива=new Тип элементов [кол-во строк, кол-во столбцов];

При выделении памяти можно выполнять инициализацию массива, указывая значения, относящиеся к каждой строке. Размерность массива можно не указывать, она будет определена по количеству инициализирующих значений.

int[,] a, b; a b

a=new int[3,2];

b=new int[,] {{1,2}, {3,4}, {5,6}};

Свойство Length применительно к двумерному массиву соответствует общему количеству элементов: b.Length => 6

Пример:

Сформировать и выдать на экран целочисленную единичную матрицу размером m×n.

int [,] a;

int i,j; //номера строк и столбцов

string s; //строка, формирующая символьное значение строки матрицы

int n=5;

a=new int [n,n];

for (i=0; i<n; i++)

a [i,i]=1;

for (i=0; i<n; i++)

{ s=””;

for (j=0; j<n; j++)

s=s + a[i,j] + “_”;

Console.WriteLine (s);

Массив массивов

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

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

Кроме того, имеется возможность назначить каждой строке таблицы индивидуальную длину, следовательно имеется возможность создавать таблицы с разной длиной строки.

Массив

 

Строка

 

Элементы

Объявление массива массивов

Тип элементов [][] ИмяМассива;

//память под ссылки

ИмяМассива=new_ Тип элементов [кол-во строк][];

//память под каждую строку

ИмяМассива[№строки]=new_Тип[кол-во элементов в строке]

100

int[][] a;

a=new int[2][];

a[0]=new int[3];

a[1]=new int[2]; 200

//инициализация

a[0]=new int[] {1, 2, 3};

a[1]=new int[] {5,6};

 

Свойство Length определено как для всего массива, так и для каждой строки отдельно:

a.Length => 2 (2 строки)

a[0].Length => 3 (3 элемента в строке)

Для каждой строки можно использовать методы обработки одномерных массивов. При поэлементной обработке массива для доступа к элементу необходимо указать номер строки и номер элемента внутри строки. Каждый номер указывается в своей паре скобок:

a[0][1]=88;

 


МЕТОДЫ

Определение метода

Метод определяет некоторую процедуру обработки данных. Выполнение объектно-ориентированной программы можно рассматривать как взаимодействие объектов путем передачи сообщений. Сообщение равносильно вызову метода. Т.е. выполнение программы можно рассматривать как взаимодействие методов с точки зрения двух аспектов:

- по управлению (вызов/возврат)

- по обмену данных

Определение метода может быть выполнено только в составе класса.

Определение метода должно содержать:

1. Имя метода

2. Доступ к данному методу со стороны других

3. Принадлежность методу конкретному объекту или классу

4. Параметры, которые принимаются методом для обработки и тип возвращаемого результата

5. Собственно процедуру обработки параметров

 

<модификаторы>_ТипВозвращаемогоОбъекта Имя (параметры)

{

<локальные переменные> + процедура

}



Дата добавления: 2019-02-08; просмотров: 565;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.013 сек.