Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows
Перезагрузить страницу Примеры для новичков на C#
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
*HellRaiser* *HellRaiser* вне форума
Member
 
Аватар для *HellRaiser*
 
Сообщений: 122
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.01.2011
По умолчанию Примеры для новичков на C# - 06.01.2011, 23:51

Буду пополнять по ходу жизни

1) Нахождение факториала (с проверкой правильности ввода пользователем числа). Считает довольно таки большие числа))))
csharp Код:
/// <summary>
        /// Факториал числа
        /// </summary>
        public void factorial()
        {
            ulong  x = 0, y = 1;
            for (; ; )
            {
                try {
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.Write("Введите число: ");
                    x = Convert.ToUInt32 (Console.ReadLine());
                    break;
                }
                catch {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Неверный формат записи");
                }
            }
            for (ulong i = 0; i < x; i++)
                y = y * (i + 1);
            Console.WriteLine(x + "! = " + y);
        }
Ответить с цитированием
  (#2 (permalink)) Старый
*HellRaiser* *HellRaiser* вне форума
Member
 
Аватар для *HellRaiser*
 
Сообщений: 122
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.01.2011
По умолчанию 06.01.2011, 23:56

2) Ввод массива, тоже с проверкой и цветам (ну люблю эти приколы )
csharp Код:
/// <summary>
        /// Ввод массива с клавиатуры
        /// </summary>
         public void vvod(int N, int [] x)
        {
            for (; ; ) {
                try {
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("Введите массив:");
                    //непосредственно сам ввод, при жилание окружающее можно убрать
                    for (int i = 0; i < N; i++) {  
                        x[i] = Convert.ToInt32(Console.ReadLine ());
                    }
                    break;
                }
                catch (FormatException) {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Неверный формат записи");
                }
            }
        }
Не забываем что метод принимает размер массива (число N) и сам массив (x)

3) Вывод массива
csharp Код:
/// <summary>
        /// Ввывод массива
        /// </summary>
        public void vuvod(int N, int [] z)
        {
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("Результат:");
            for (int i = 0; i < N; i++) {
                Console.Write(z[i] + " ");
            }
            Console.WriteLine();
        }
Принимает аналогичные аргументы

4) Сложение (оно же может стать и вычитание и умножением)
csharp Код:
/// <summary>
        /// Сложение двух массивов
        /// </summary>
         public void addition()
        {
            int N;
            N = razmer();
            int[] x = new int[N];
            int[] y = new int[N];
            int[] z = new int[N];
            vvod_2(N, x, y);
            for (int i = 0; i < N; i++)
            {
                z[i] = x[i] + y[i];
            }
            vuvod(N, z);
        }
метод vuvod () был приведён выше, метод vvod_2() аналогичен vvod(), что опять таки выше, просто принимает и вводит 2 массива

5) Деление массивов (учитывает деление на ноль, заставляет вводить заново при возникновении такой ошибки, вы можете поставить свою обработку)
csharp Код:
/// <summary>
        /// Деление двух массивов
        /// </summary>
        public void division()
        {
            for (; ; ) {
                try {
                    int N;
                    N = razmer();
                    int[] x = new int[N];
                    int[] y = new int[N];
                    int[] z = new int[N];
                    vvod_2(N, x, y);
                    for (int i = 0; i < N; i++) {
                        z[i] = x[i] / y[i];
                    }
                    vuvod(N, z);
                    break;
                }
                catch (DivideByZeroException) {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("В ходе операции происходит деление на ноль.Повторите ввод");
                }
            }
Ответить с цитированием
  (#3 (permalink)) Старый
*HellRaiser* *HellRaiser* вне форума
Member
 
Аватар для *HellRaiser*
 
Сообщений: 122
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.01.2011
По умолчанию 07.01.2011, 00:07

6) Нахождение минимального, максимального элемента массива
csharp Код:
/// <summary>
        /// Нахождение максимального и минимального элементов в массиве
        /// </summary>
        public void min_max()
        {
            int N;
            N = razmer();
            int[] x = new int[N];
            vvod(N, x);
            int MAX = x[0], MIN = x[0];
            for (int i = 0; i < N; i++) {
                if (MAX > x[i])
                    MAX = x[i];
                if (MIN < x[i])
                    MIN = x[i];
            }
            Console.WriteLine("Максимальный элемент " + MAX);
            Console.WriteLine("Минимальный элемент " + MIN);
        }

7) Нахождение повторяющихся элементов
csharp Код:
/// <summary>
        /// Нахождение совпадающих элементов в массиве и колличества совпадений.
        /// </summary>
        public void coincidence()
        {
            int N;
            N = razmer();
            int[] x = new int[N];
            int[] coincidence = new int[N];
            int k = 0;
            vvod(N, x);
            for (int i = 0; i < N; i++) {
                for (int j = i + 1; j < N; j++) {
                    if (x[i] == x[j]) {
                        coincidence[k] = x[j];
                        k++;
                    }
                }
            }
            vuvod(N, coincidence);
            Console.WriteLine("Всего совпадений " + k);
        }
Выводи с сами элементы и количество вообще совпавших элементов
Ответить с цитированием
  (#4 (permalink)) Старый
*HellRaiser* *HellRaiser* вне форума
Member
 
Аватар для *HellRaiser*
 
Сообщений: 122
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.01.2011
По умолчанию 07.01.2011, 00:12

8) Наиболее популярные сортировки на С# и не только
Сортировка пузырьком
Шейкерная сортировка
Сортировка выбором
Сортировка вставками
Сортировка методом Шелла
Ответить с цитированием
  (#5 (permalink)) Старый
*HellRaiser* *HellRaiser* вне форума
Member
 
Аватар для *HellRaiser*
 
Сообщений: 122
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.01.2011
По умолчанию 07.01.2011, 00:17

9) Заполнение матрици рандомно
csharp Код:
/// <summary>
        /// Заполнение матрици рандомно
        /// </summary>
        public void rand( int N, int M, int [,] x)
        {
            for (int i = 0; i < N; i++) {
                for (int j = 0; j < M; j++)
                    x[i, j] = random.Next(1, 10); //где числа 1 и 10 указывают диапазон чисел
            }
        }

10) "Красивый" вывод матрици
csharp Код:
/// <summary>
        /// Вывод матрици
        /// </summary>
        public void vuvod(int N, int M, int[,] z)
        {
            Console.ForegroundColor = ConsoleColor.Green;
            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < M; j++)
                {
                    Console.Write(z[i, j] + " ");
                }
                Console.WriteLine();
            }
            Console.WriteLine();
        }
11) Сложение матриц (аналогично вычитание)
csharp Код:
/// <summary>
        /// Сложение матриц
        /// </summary>
        public void addition()
        {
            int N = 0, M = 0;
            vvod(out N, out M);
            int[,] x = new int[N, M];
            int[,] y = new int[N, M];
            int[,] z = new int[N, M];
            rand(N, M, x);
            rand(N, M, y);
            vuvod(N, M, x);
            vuvod(N, M, y);
            for (int i = 0; i < N; i++) {
                for (int j = 0; j < M; j++)
                    z[i, j] = x[i, j] + y[i, j];
            }
            vuvod(N, M, z);
        }
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
*HellRaiser* *HellRaiser* вне форума
Member
 
Аватар для *HellRaiser*
 
Сообщений: 122
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.01.2011
По умолчанию 07.01.2011, 00:19

12) Умножение матриц
csharp Код:
/// <summary>
        /// Умножение матриц
        /// </summary>
        public void multiplication()
        {
            int N = 0, M = 0;
            vvod(out N, out M);
            int[,] x = new int[N, M];
            int[,] y = new int[N, M];
            int[,] z = new int[x.GetLength(0), y.GetLength(1)];
            rand(N, M, x);
            rand(N, M, y);
            vuvod(N, M, x);
            vuvod(N, M, y);
            for (int i = 0; i < x.GetLength(0); i++)
                for (int j = 0; j < y.GetLength(1); j++)
                    for (int k = 0; k < y.GetLength(0); k++)
                        z[i, j] += x[i, k] * y[k, j];
            vuvod(N, M, z);
        }
Ответить с цитированием
  (#7 (permalink)) Старый
*HellRaiser* *HellRaiser* вне форума
Member
 
Аватар для *HellRaiser*
 
Сообщений: 122
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.01.2011
По умолчанию 07.01.2011, 00:22

13) Нахождение максимального и минимального элементов
csharp Код:
/// <summary>
        /// Нахождение максимального и минимального элемента матрици
        /// </summary>
        public void min_max()
        {
            int N = 0, M = 0;
            vvod(out N, out M);
            int[,] x = new int[N, M];
            rand(N, M, x);
            vuvod(N, M, x);
            int MAX = x[0, 0], MIN = x[0, 0];
            for (int i = 0; i < N; i++)
                for (int j = 0; j < M; j++)
                {
                    if (MAX > x[i, j])
                        MAX = x[i,j];
                    if (MIN < x[i, j])
                        MIN = x[i,j];
                }
            Console.WriteLine("Максимальный элемент " + MAX);
            Console.WriteLine("Минимальный элемент " + MIN);
        }
Ответить с цитированием
  (#8 (permalink)) Старый
*HellRaiser* *HellRaiser* вне форума
Member
 
Аватар для *HellRaiser*
 
Сообщений: 122
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.01.2011
По умолчанию 07.01.2011, 00:25

Для тех кто не верит, что это всё работает
Вложения
Тип файла: zip Консольный комбайн.zip (43.1 Кб, 310 просмотров)
Ответить с цитированием
  (#9 (permalink)) Старый
VideoSharp.info VideoSharp.info вне форума
Новичок
 
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 12.03.2014
По умолчанию 13.03.2014, 12:04

csharp Код:
Console.Write(z[i, j] + " ");
Это будет не самый красивый вывод матрицы, т.к. разные числа будут разной длины и столбики "поедут".

Чтобы этого не случилось - нужно использовать форматирование выводимого числа, например, так:

csharp Код:
Console.Write(z[i, j].ToString("000") + " ");
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Описание PHP скриптов с комментариями,для Новичков. serebann PHP 3 17.04.2012 12:12
Сборка начальных игровых систем за 15-20 т.р., помощь для новичков. CristophDay Системный блок 32 07.11.2011 09:34
Прблема для новичков Aleksei+Larisa Любые вопросы от новичков 2 06.10.2011 01:06
Некоторые принципы по написанию программ, для новичков dect Общие вопросы создания ПО 15 24.09.2011 19:18
Проблемы с загрузкой ОС Сергей 77 Любые вопросы от новичков 9 13.07.2011 11:44
Пособие по обнаружению и удалению троянов (для новичков) Crack Любые вопросы от новичков 0 26.06.2011 15:23
пролог на пальцах или мои 5 копеек )) для новичков nikaragua Prolog 1 21.03.2008 15:58
Где найти книгу по С++ для новичков PanteR_dsd Visual C++ 3 28.08.2006 01:03
Как написать программы на С++ для новичков Liona Вопросы начинающих программистов 16 23.05.2005 01:04
Помочь в Pascale для новичков imported_graf Вопросы начинающих программистов 2 17.12.2004 12:06
Конкурс по программированию для новичков Anonymous Некоммерческие проекты 0 21.06.2004 21:30
Где найти статьи для новичков, изучающиих DLL Skywalker-cyb Visual C++ 13 27.04.2003 03:46



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов