Главная страница Библиотека (скачать книги) Скачать софт Введение в программирование Стандарты для C++ Уроки по C# Уроки по Python HTML Веб-дизайн Ассемблер в среде Windows ActiveX Javascript Общее о Линукс Линукс - подробно Линукс - новое Delphi Паскаль для начинающих Турбопаскаль Новости Партнеры Наши предложения Архив новостей |
Практический пример. Перевод секунд в дни, часы, минуты и секунды.Надеемся, что название примера говорит само за себя. Поэтому запускайте и разбирайтесь. using System; namespace CSharpApplication.ConvertSecondsExample { class ConvertSeconds { static void Main() { // Количество секунд в часе const ulong SecondsInDay = 60 * 60 * 24; ulong Seconds = 0; // Ожидаем корректного ввода while(Seconds == 0) { // Введите время в секундах в заданном диапазоне: Console.Write("Введите время в секундах "); Console.WriteLine("(от {0} до {1}):", ulong.MinValue + 1, ulong.MaxValue); try { // Считываем введенное время и преобразуем его в ulong Seconds = Convert.ToUInt64(Console.ReadLine()); } catch(Exception ex) { // Ошибка ввода Console.WriteLine(ex.Message + " Попробуйте снова!!!\n"); } } // Вычисляем и выводим количество дней Console.WriteLine("Дней = {0}", Seconds / SecondsInDay); // Отбрасываем дни Seconds %= SecondsInDay; // Вычисляем и выводим количество часов Console.WriteLine("Часов = {0}", Seconds / 3600); // Отбрасываем часы Seconds %= 3600; // Вычисляем и выводим количество минут Console.WriteLine("Минут = {0}", Seconds / 60); // Вычисляем и выводим количество секунд Console.WriteLine("Секунд = {0}", Seconds % 60); // Ожидаем нажатия клавиши Enter Console.Write("\nНажмите Enter..."); Console.Read(); } } } Практический пример. Нахождение самой длинной неубывающей цепочки случайных чисел.Надеемся, что название примера говорит само за себя. Поэтому запускайте и разбирайтесь. using System; class Sequence{ public static void Main(){ int i=0,cur,max=1,curmax=1; int border; int prev; Console.WriteLine("Введите количество членов цепочки:"); // Весь блок алгоритма заключаем в try/catch для перехвата исключений try{ // Ввод количества элементов и перевод их в int border = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Ваш выбор {0} элементов последовательности",border); // Создаём объект класса Random для генерации случайного числа // Начальная точка основывается на системном времени Random rand = new Random(); Console.WriteLine("Вот элементы последовательности:"); // Генерируется случайное число от 0 до 100 prev = rand.Next(0,100); Console.WriteLine("{0}",prev); do{ // Генерируется случайное число от 0 до 100 cur = rand.Next(0,100); if (cur>=prev) curmax++; else{ if (curmax>max) max = curmax; curmax = 1; } prev = cur; Console.WriteLine("{0}",cur); i++; }while(i<border-1); if (curmax>max) max = curmax; // Показ полученного результата Console.WriteLine("\n\nМаксимальная Длина = {0}\n\n",max); } // Обработка исключительной ситуации catch(Exception ex){ Console.WriteLine(ex.Message+" Не повезло !!!\n"); } // Задержка перед выходом Console.Read(); } } Практический пример. Перевод из десятичной дроби в простую.****** разделитель целой и дробной части числа зависит от локальных настроек операционной системы, поэтому, скорее всего, вам придется вводить дробное число через запятую (например, 1,56). ******using System; namespace CSharpApplication.ConvertDecimalFractionToSimpleFraction { class Fraction { static void Main() { // Ввод дроби Console.Write("Введите число: "); try { // Попытка преобразования введенной строки в decimal DecimalToSimpleFraction(Convert.ToDecimal(Console.ReadLine())); } catch(FormatException error) { // Вывод сообщения об ошибки Console.WriteLine(error.Message); } Console.WriteLine("Нажмите Enter..."); Console.Read(); } // Функция перевода static void DecimalToSimpleFraction(decimal Number) { // Сохранение знака числа int Sign = 1; if(Number < 0) { Sign = -1; Number = -Number; } // Получение целой части числа int WholePart = (int)Number; // Получение дробной части числа decimal DoublePart = Number - WholePart; // Количество разрядов int Count = 0; // Пока дробное число не совпадет со своим целым эквивалентом while (DoublePart - (ulong)DoublePart != 0) { // Считаем разряды DoublePart *= 10; ++Count; } // Если дробная часть присутствовала if(Count > 0) { // Вычисление знаменателя decimal Denominator = Convert.ToDecimal(Math.Pow(10, Count)); // Вычисление наибольшего общего делителя decimal N = NOD(DoublePart, Denominator); // Сокращаем дробь DoublePart /= N; Denominator /= N; // Вывод результата if(WholePart != 0) Console.WriteLine("{0} {1} / {2}", WholePart * Sign, DoublePart, Denominator); else Console.WriteLine("{0} / {1}", DoublePart * Sign, Denominator); } // Если дробная часть отсутствовала else Console.WriteLine("{0}", WholePart * Sign); } // Функция, вычисляющая наибольший общий делитель static decimal NOD(decimal a, decimal b) { if(b == 0) return a; else return NOD(b, a % b); } } } Домашнее задание
|
|
Библиотека программиста. 2009. |
|