Тема 7. Специальные типы

Массивы неправильной формы

Многомерные массивы

Методы для работы с массивами

Перебор элементов массива Оператор for и foreach

Для перебора элементов массива можно воспользоваться либо циклом for, либо применить специальный оператор foreach

 

Синтаксический блок оператора foreach имеет вид:

Оператор foreach ::=

foreach ( <тип> <идентификатор итерационной переменной > in < Идентификатор массива>)

 

Пример. Написать программу, в которой задается массив длинное 5 элементов типа int, и выводится на консоль при помощи оператора foreach.

 

using System;

class mass

{

public static void Main()

{

int [] qqq = {1, 2, 3, 4};

 

foreach(int temp in qqq)

{

Console.WriteLine(temp);

}

Console.ReadLine();

}

}

 

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

Синтаксический блок имеет вид ::=

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

<Базовый тип> [ , , … , ] <Идентификатор массива>

 

Создание массива ::=

new <Базовый тип> [ <Длина_0>, …, Длина_N]

 

Присваивание ссылки на массив ::=

<Идентификатор массива> =

new <Базовый тип>[<Длина_0>, …,< Длина_N>]

 

Доступ к элементу массива ::=

<Идентификатор массива>[чис_знач_изм_1, …,чис_знач_изм_N]

 

Примечания:

<Базовый тип> в объявлении должен быть идентичен <Базовый тип>в операторе порождения объекта.

<Длина массива> должна быть положительна и принадлежать к типу
неявно преобразуемому к типу int.

 

Пример. Написать программу, которая формирует и выводит на экран массив размером 5х5 и заполняет его единицами.

 

using System;

class qqq

{

public static void Main()

{

int [,] mass = new int [5,5];

//Заполнение массива единицами

for(int i=0; i<5; i++)

{

for(int j=0; j<5; j++)

{

mass[i,j]=1;

}

}

 

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

 

for(int i=0; i<5; i++)

{

for(int j=0; j<5; j++)

{

Console.Write(" mass[{0},{1}]={2}", i,j, mass[i,j]);

}

Console.WriteLine();

}

Console.ReadLine();

}

}

 

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

Unicode — это международный стандар­тизированный набор символов, позволяющий представлять символы большинства ес­тественных языков.

Символом типа charможет быть:

· Стандартная буква в кавычках нижнего или верхнего регистра, например 'а', 'Е' и т.д. Символ, скажем, 'Т', можно присвоить переменной следующим образом:

char myChar;

myChar = ‘Т’;

· Одиночная цифра, например '4'. Следует отметить, что для компилятора С# цифра в такой форме является не числом, а символом, который не может уча­ствовать в арифметических действиях без соответствующего преобразования.

A=Convert.ToInt32(Console.Read.Line());

· Специальный символ наподобие '@', '$' или '&'.

· Символ в формате Unicode, представленный комбинацией: \u (символ обрат­ной косой черты и n) с последующим шестнадцатеричным кодом символа. Например, шестнадцатеричный код Т равен 0x54,поэтому символ представим в форме '\ u0054'.Следовательно, кроме формы присваивания, приведенной выше, можно воспользоваться и такой:

char myChar;

myChar = ‘\u0054’;

· Управляющий символ, например '\t'. Последовательность символов, формиру­ющая его (символ обратной косой черты и последующий буквенный символ), на­зывается управляющей последовательностью или escape-последовательностью. В данном случае ‘\t’ означает горизонтальная табуляция.

 

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

Ключевое слово stringявляется псевдонимом класса String,расположенного в про­странстве имен System.NET Framework. Переменная, объявленная как string,фак­тически, содержит ссылку на объект System.String,в котором инкапсулирован текст.

В строковых литералах наподобие "This is a string" двойные кавычки указывают компилятору, что символы между ними следует трактовать как единый элемент. Строковый литерал является объектом класса string.

Присваивание строкового литерала переменной типа stringможно произ­вести и напрямую, записав:

someText = "This is a string";