Массивы. Ступенчатые массивы
В ступенчатыхмассивах количество элементов в разных строках может различаться. В памяти ступенчатый массив хранится иначе, чем прямоугольный: в виде нескольких внутренних массивов, каждый из которых имеет свой размер. Крометого, выделяется отдельная область памяти для хранения ссылок на каждый из внутренних массивов. Организацию ступенчатого массива иллюстрирует
Описание ступенчатого массива:
тип[ ] [ ] имя;
Под каждый из массивов, составляющих ступенчатый массив, память требуется выделять явным образом, например:
int[ ] [ ] а = newint [3][ ]; / / выделение памяти под ссылки на три строки
а[0]= newint [5]; / / выделение памяти под 0-ю строку (5 элементов)
а[1] =newint [3]; / / выделение памяти под 1-ю строку (3 элемента)
а[2] = newint [4]; / / выделение памяти под 2-ю строку (4 элемента)
Другой способ выделения памяти:
int[ ] [ ] а = { new int[5], new int[3], new int[4] };
K элементу ступенчатого массива обращаются, указывая каждую размерность в своих квадратных скобках, например:
a[1][2] a[i][j] a[j][i]
В остальном использование ступенчатых массивов не отличается от использования прямоугольных.
Вопрос 34
Массивы. Класс System.Array. Основные элементы
Для облегчения программирования задач обработки массивов данных в С# все массивы имеют общий базовый класс Аrrау, определенный в пространстве имен System.
Основные элементы класса Аггау
Элемент | Вид | Описание |
Length | Свойство | Количество элементов массива (по всем размерностям) |
Rank | Свойство | Количество размерностей массива |
BinarySearch | Статический метод | Двоичный поиск в отсортированном массиве |
Сlear | Статический метод | Присваивание элементам массива значений по умолчанию |
Сору | Статический метод | Копирование заданного диапазона элементов одного массива в другой массив |
СоруТо | Метод | Копирование всех элементов текущего одномерного массива в другой одномерный массив |
GetValue | Метод | Получение значения элемента массива |
IndexOf | Статический метод | Поиск первого вхождения элемента в одномерныймассив |
LastIndexOf | Статический метод | Поиск последнего вхождения элемента в одномерный массив |
Reverse | Статический метод | Изменение порядка следования элементов на обратный |
SetValue | Метод | Установка значения элемента массива |
Sort | Статический метод | Упорядочивание элементов одномерного массива |
Вопрос 35
Класс Random. Основные методы
Класс Random определенный в пространстве имен System содержит методы позволяющие при отладке программ генерировать исходные данные, заданные случайным образом. Для получения псевдослучайной последовательности чисел существует два варианта создания экземпляра класса Random: конструктор без параметров и конструктор с параметром типа int.
Конструктор без параметров:
Randoma = newRandom();
создает уникальную последовательность, так как использует начальное значение генератора, вычисленное на основе текущего времени.
Конструктор с параметром типа int:
Randomb=newRandom(5);
задает начальное значение генератора, что обеспечивает возможность получения одинаковых последовательностей чисел.
Основные методы класса System.Random
Название | Описание |
Next( ) | Возвращает целое положительное число во всем положительном диапазоне типа int |
Next(макс) | Возвращает целое положительное число в диапазоне [0, макс] |
Next(мин, макс) | Возвращает целое положительное число в диапазоне [мин, макс] |
NextDouble() | Возвращает вещественное положительное число в диапазоне [0. 1) |
NextBytes(массив) | Возвращает массив чисел в диапазоне [0, 255] |
Вопрос 36
Символьный тип char, описание, примеры
Символьный тип char базируется на стандартном классе Char библиотеки .NET из пространства имен System. Он является встроенным типом языка и предназначен для хранения символов в Unicode.
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
char q;
do
{
Console.WriteLine( "Введитесимвол: ");
q = char.Parse (Console.ReadLine());
if (char.IsLetter(q)) Console.WriteLine("Буква");
if (char.IsUpper(q)) Console.WriteLine("Верхнийрег.");
if (char.IsLower(q)) Console.WriteLine("Нижнийрег.");
if (char.IsControl(q)) Console.WriteLine("Управляющий");
if (char.IsNumber(q)) Console.WriteLine("Число");
if (char.IsPunctuation(q)) Console.WriteLine("Разделитель");
}
while (q!='/');
}
}
}
Вопрос 37