- •Решение прикладных задач в среде c#
- •Введение
- •1. Введение в visual studio.Net. Структура .Net-приложений. Метод main(). Создание проектов с помощью vs.Net
- •Задание 1
- •Операции ввода/вывода. Формат вывода
- •Задание 2
- •Пространство имён system. Класс math. Преобразование типов данных
- •Задание 3.1
- •Задание 3.2
- •4. Операторы языка программирования с#.
- •4.1. Операторы языка программирования с#
- •If (логическое выражение)
- •2. If (выражение)
- •4.2. Операции отношения и условные логические операции
- •Операции отношения в c#
- •Условные логические операции
- •Задания 4
- •Организация циклов
- •Задание 5.2
- •Обработка одномерных массивов
- •6.1. Массивы
- •6.2. Одномерные массивы
- •Класс System.Array и оператор foreach
- •Основные элементы класса Array
- •Задание 6
- •Обработка двумерных массивов
- •7.1. Описания двумерного массива
- •7.2. Обработка исключительных ситуаций
- •Задание 7
- •Запись исходных данных в файл и чтение данных из файла. Цифровая фильтрация. Идентификация объекта управления
- •8.1. Данные для моделирования системы. Понятие файла данных
- •8.2. Объект FileStream для работы с файлами
- •8.3. Запись данных в файл. Класс StreamWriter
- •8.4. Чтение файла. Класс StreamReader
- •8.5. Цифровая фильтрация
- •8.6. Идентификация объекта управления
- •8.7. Определение постоянной времени объекта управления
- •Задание 8.1
- •Задание 8.2
- •Рекомендации
- •Задание 8.3
- •Строки типа string
- •Основные элементы класса System.String
- •Задание 9
6.2. Одномерные массивы
Одномерные массивы используются в программах чаще всего. Варианты описания массива:
тип[] имя;
тип[] имя = new тип [ размерность ];
тип[] имя = { список_инициализаторов };
тип[] имя = new тип [] { список _инициализаторов };
тип[] имя = new тип [ размерность ] { список_инициализаторов };
Примечание:
При описании массивов квадратные скобки являются элементом синтаксиса, а не указанием на необязательность конструкции.
Примеры описаний (один пример для каждого варианта описания):
int[] а; // 1 элементов нет
int[] b = new int[4]; // 2 элементы равны О
int[] с= { 61, 2, 5,-9 }; // 3 new подразумевается
int[] d = new int[] { 61,2, 5, -9 }: //4 размерность вычисляется
int[] e = new int[4] { 61, 2, 5, -9 }: //5 избыточное описание
Для работы с массивами
Пример ввода и вывода одномерного вещественного массива:
// Ввод одномерного массива
Console.Write("Введите количество элементов массива n=");
int n = int.Parse(Console.ReadLine());
double[] a = new double[n];
for (int i = 0; i < n; i++) {
Console.Write("Введите a[{0}]=",i);
a[i] = double.Parse(Console.ReadLine());
}
// Вывод одномерного массива
Console.WriteLine("Исходный массив a:");
for (int i = 0; i < n; i++)
Console.Write("\t" + a[i]);
Console.WriteLine();
При выполнении программы получим следующий результат:
Введите количество элементов массива n=10
Введите a[0]=0,67
Введите a[1]=-5,7
Введите a[2]=2,44
Введите a[3]=8,9
Введите a[4]=-5,77
Введите a[5]=3,6
Введите a[6]=4,9
Введите a[7]=44,6
Введите a[8]=33,7
Введите a[9]=9,55
Исходный массив a:
0,67 -5,7 2,44 8,9 -5,77 3,6 4,9 44,6 33,7
Для продолжения нажмите любую клавишу . . .
Класс System.Array и оператор foreach
Все массивы в С# построены на основе базового класса Array, который содержит полезные для программиста свойства и методы, часть из которых перечислены в таблице 1.
Таблица 6.
Основные элементы класса Array
Элемент |
Вид |
Описание |
Length |
Свойство |
Количество элементов массива (по всем размерностям) |
Rank |
Свойство |
Количество размерностей массива |
BinarySearch() |
Статический метод |
Двоичный поиск в отсортированном массиве |
Clear() |
Статический метод |
Присваивание элементам массива значений по умолчанию |
Copy() |
Статический метод |
Копирование заданного диапазона элементов одного массива в другой массив |
CopyTo() |
Метод |
Копирование всех элементов текущего одномерного массива в другой одномерный массив |
GetValue() |
Метод |
Получение значения элемента массива |
IndexOf |
Статический метод |
Поиск первого вхождения элемента в одномерный массив |
LastlndexOf |
Статический метод |
Поиск последнего вхождения элемента в одномерный массив |
Reverse() |
Статический метод |
Изменение порядка следования элементов на обратный |
SetValue() |
Метод |
Установка значения элемента массива |
Sort() |
Статический метод |
Упорядочивание элементов одномерного массива |
Оператор foreach
Для перебора элементов массивов и коллекций в языке C# существует специальный цикл foreach:
foreach (<тип> <идентификатор> in <коллекция>) <блок>
В заголовке цикла объявляется переменная, которая будет последовательно принимать значения элементов коллекции (массива). При этом присваивание переменной новых значений не отражается на элементах коллекции (массива). Пример использования оператора foreach и методов класса Array:
int[] arr = {2,6,5,3,7,8,2,4};
Console. WriteLine(“Содержимое массива:”);
foreach (int val in arr)
Console.Write(“\T”+val);
Console. WriteLine();
Console. WriteLine(arr.Rank);// Результат равен 1
Array.Sort(arr); // сортировка массива
Array.Reverse(arr);// Изменение порядка следования элементов на обратный
Array. IndexOf (arr,2);// Результат равен 0
Array. LastlndexOf (arr,2);// Результат равен 6