Главная страница Библиотека (скачать книги) Скачать софт Введение в программирование Стандарты для C++ Уроки по C# Уроки по Python HTML Веб-дизайн Ассемблер в среде Windows ActiveX Javascript Общее о Линукс Линукс - подробно Линукс - новое Delphi Паскаль для начинающих Турбопаскаль Новости Партнеры Наши предложения Архив новостей |
Практический пример. Одномерный массив.Программа подсчитываем количество четных и нечетных элементов в массиве, а так же количество n-значных элементов (n от 1 до 5). Все элементы массива задаются случайным образом. using System; namespace CSharpApplication.ArraysExample { class Arrays { static void Main() { // Количество элементов uint n = 0; Console.WriteLine("Введите количество элементов массива: "); try { // Вводим количество элементов с клавиатуры n = Convert.ToUInt32(Console.ReadLine()); } catch(OverflowException ex) { // В случае ошибочного ввода (переполнения) Console.WriteLine(ex.Message + " Use default size (=10)"); } catch(FormatException ex) { // В случае ошибочного ввода Console.WriteLine(ex.Message + " Use default size (=10)"); } // Если все плохо, то создадим массив из 10 элементов if(n == 0) n = 10; // Создание массива int [] ar = new int[n]; // Инициализация генератора случайных чисел Random rand = new Random(); for(int i = 0; i < n; i++) { // Забиваем массив случайными числами // от 0 до 99999 ar[i] = rand.Next(100000); Console.Write("{0,8}", ar[i]); } Console.WriteLine(); // Счетчики четных и нечетных чисел int odd = 0, even = 0; // Создаем 5 элементов-счетчиков для подсчета // количества n-значных чисел в массиве int [] ranks = new int[5]; string text = "-значных"; // Бежим по массиву foreach(int i in ar) { if(i % 2 == 0) ++even; else ++odd; // Записываем N-значный элемент в n-ый элемент массива ++ranks[i.ToString().Length - 1]; } // Вывод результатов подсчета Console.WriteLine("Четных чисел: {0}\nНечетных: {1}", even, odd); for(int i = 0; i < 5; i++) { Console.WriteLine("{0}{1}: {2}", i + 1, text, ranks[i]); } } } } Практический пример. Двумерный массив.Программа транспонирует матрицу, все элементы которой задаются случайным образом. using System; namespace CSharpApplication.ArraysExample { class Arrays { /*******************************************************************/ /* Во всех функциях размерности массивов определяются "на ходу". /* А можно было передать размерности в функцию в качестве параметров :) /*******************************************************************/ // Транспонирование матрицы static int [,] Transform(int [,] mtr) { // число строк int M = mtr.GetLength(0); // число столбцов int N = mtr.GetLength(1); // Создание массива int [,] t_ar = new int[N, M]; // Транспонирование for(int i = 0; i < M; i++) { for(int j = 0; j < N; j++) { t_ar[j,i] = mtr[i,j]; } } return t_ar; } // Вывод матрицы static void Print(int [,] mtr) { // число строк int M = mtr.GetLength(0); // число столбцов int N = mtr.GetLength(1); for(int i = 0; i < M; i++) { for(int j = 0; j < N; j++) { Console.Write("{0,8}", mtr[i,j]); } Console.WriteLine(); } Console.WriteLine(); } // Инициализация матрицы случайными значениями static void Init(int [,] mtr) { // Инициализация генератора случайных чисел Random rand = new Random(); // Определение размерностей матрицы int M = mtr.GetLength(0); int N = mtr.GetLength(1); for(int i = 0; i < M; i++) { for(int j = 0; j < N; j++) { // Забиваем массив случайными числами // от 0 до 99999 mtr[i,j] = rand.Next(100000); } } } static void Main() { // Размерности матрицы uint M = 0, N = 0; Console.WriteLine("Введите размерности матрицы: "); try { // Вводим размерности матрицы с клавиатуры Console.WriteLine("M: "); M = Convert.ToUInt32(Console.ReadLine()); Console.WriteLine("N: "); N = Convert.ToUInt32(Console.ReadLine()); } catch(OverflowException ex) { // В случае ошибочного ввода (переполнения) Console.WriteLine(ex.Message + " Use default size (=10x10)"); } catch(FormatException ex) { // В случае ошибочного ввода Console.WriteLine(ex.Message + " Use default size (=10x10)"); } // Если все плохо, то создадим массив из 10х10 элементов if(M == 0 || N == 0) M = N = 10; // Создание массива int [,] ar = new int[M, N]; Console.WriteLine("Матрица:"); // Инициализация Init(ar); // Вывод Print(ar); // Транспонирование int [,] t_ar = Transform(ar); Console.WriteLine("Транспонированная матрица:"); // Вывод транспонированной матрицы Print(t_ar); } } } |
|
Библиотека программиста. 2009. |
|