Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Топ:
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного...
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Интересное:
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Дисциплины:
2019-12-21 | 392 |
5.00
из
|
Заказать работу |
Ступенчатые массивы являются эффективными в случаях, если у двумерных прямоугольных массивов есть много элементов, которые вообще не используются. Это позволяет сэкономить память за счет выделения только необходимого объема памяти (количества элементов) для каждой строки ступенчатого массива.
31
Все массивы в C# построены на основе класса Array из пространства имен System. Этот класс определяет ряд свойств и методов, которые мы можем использовать при работе с массивами. Основные свойства и методы:
Разберем самые используемые методы. Например, изменим порядок элементов и размер массива:
1 2 3 4 5 6 7 8 9 10 11 12 | int[] numbers = { -4, -3, -2, -1,0, 1, 2, 3, 4 }; // расположим в обратном порядке Array.Reverse(numbers); // уменьшим массив до 4 элементов Array.Resize(ref numbers, 4); foreach(int number in numbers) { Console.Write($"{number} \t"); } |
Результат программы:
4 3 2 1
В функции Resize первым параметром является изменяемый массив, а второй - количество элементов, которые должны быть в массиве. Если второй параметр меньше длины массива, то массив усекается. Если значение параметра, наоборот, больше, то массив дополняется дополнительными элементами, которые имеют значение по умолчанию.
Метод Copy копирует часть одного массива в другой:
1 2 3 4 5 6 7 8 9 10 11 | int[] numbers = { -4, -3, -2, -1,0, 1, 2, 3, 4 }; int[] numbers2 = new int[5]; // копируем из numbers с 2-го индекса 5 элементов // и поместим их в массив numbers2, начиная с 0-го индекса Array.Copy(numbers, 2, numbers2, 0, 5); foreach(int number in numbers2) { Console.Write($"{number} \t"); } |
Результат программы:
-2 -1 0 1 2
Отсортируем массив с помощью метода Sort():
1 2 3 4 5 6 7 8 | int[] numbers = { -3, 10, 0, -5, 12, 1, 22, 3}; Array.Sort(numbers); foreach(int number in numbers) { Console.Write($"{number} \t"); } |
Результат работы программы:
-5 -3 0 1 3 10 12 22
32
При отладке программ, использующих массивы, удобно иметь возможность генерировать исходные данные, заданные случайным образом. В библиотеке C# класс Random используется для таких целей.
Для получения псевдослучайной последовательности чисел необходимо сначала создать экземпляр класса с помощью конструктора, например:
Random a = new Random(); // 1
Random b = new Random(1); //2
Есть два вида конструктора: конструктор без параметров (оператор 1), который использует начальное значение генератора, вычисленное на основе текущего времени. В этом случае каждый раз создается уникальная последовательность. Конструктор с параметром типа int (оператор 2) задает начальное значение генератора, что обеспечивает возможность получения одинаковых последовательностей чисел.
Для получения очередного значения серии пользуются методами, перечисленными в таблице 9.1.
Таблица 9.1 - Основные методы класса System.Random
Название | Описание |
Next () | Возвращает целое положительное число во всем положительном диапазоне типа int |
Next(мaкс) | Возвращает целое положительное число в диапазоне [0, макс] |
Next (мин, макс) | Возвращает целое положительное число в диапазоне [мин, макс] |
NextBytes(массив) | Возвращает массив чисел в диапазоне [0, 255] |
NextDoublе() | Возвращает вещественное положительное число в диапазоне [0, 1) |
Пример работы с генератором псевдослучайных чисел
using System:
namespace ConsoleApplicationl
{ class Classl
{ static void Main()
{
Random a = new Random();
Random b = new Random(1);
const int n = 10;
Console.WriteLine("\n Диапазон [0, 1]:");
for (int i = 0; i < n; ++i)
Console.Write("{0,6:0.##}", a.NextDouble());
Console.WriteLine("\n Диапазон [0, 1000]:");
for (int i = 0; i < n; ++i)
Console.Write(" " + b.Next(1000));
Console.WriteLine("\n Диапазон [-10, 10]:");
for (int i = 0; i < n; ++i)
Console.Write(" " + a.Next(-10, 10));
Console.WriteLine("\n Массив [0, 255]:");
byte[] mas = new byte[n];
a.NextBytes(mas);
for (int i = 0; i < n; ++i) Console.Write(" " + mas[i]);
} } }
33
Символьный тип 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!='/');
}
}
}
34
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!