Рубрика: C#

  • Задачи на массивы.

    Задачи на массивы.

    Задания на одномерные массивы.
    1. Заполнить массив числами от 1 до 100 и вывести его в консоль.
    2. Заполнить массив числами от 100 до 1 и вывести его в консоль.
    3. Заполнить массив числами от -50 до 50 и вывести его в консоль.
    4. Заполнить массив случайными числами и вывести его в консоль.
    5. Заполнить массив случайными числами и найти максимальное значение.
    6. Заполнить массив случайными числами и найти минимальное значение.
    7. Заполнить массив случайными числами и удалить из него все элементы в которых записано число 2.
    8. Заполнить массив случайными числами и выполнить его сортировку.
    9. Заполнить массив случайными числами и найти в нем все значения которые повторяются более одного раза.
    10. Заполнить два массива случайными числами и найти значения которые не повторяются в обоих массивах. Если число находится в обоих массивах то его не нужно выводить. Вывести нужно только те значения которые есть только в одном массиве.
    Задания на двумерные массивы.

    1. Создать двумерный массив и заполнить в его ячейки таблицу умножения.
    2. Создать двумерный массив и заполнить две его диагонали единицами.
    3. Создать двумерный массив и заполнить его рамочку единицами.
    4. Решить задачу о 8ми ферзях. Широко известная задача по расстановке фигур на шахматной доске. Исходная формулировка: «Расставить на стандартной 64-клеточной шахматной доске 8 ферзей так, чтобы ни один из них не находился под боем другого». Подразумевается, что ферзь бьёт все клетки, расположенные по вертикалям, горизонталям и обеим диагоналям.
    5. Решить обобщенную задачу о ферзях. Расставить максимальное количество взаимно не бьющих друг друга ферзей на прямоугольном поле, в частности, квадратном поле, со стороной n.

     

  • Задания на циклы

    Задания на циклы

    Задание:

    1. Вывести в столбец значения от 0 до 100
    2. Вывести в столбец значения от 100 до 0
    3. Вывести в столбец значения от 60 до 100
    4. Вывести в столбец значения от -39 до 100
    5. Вывести в строку четные числа
    6. Вывести в строку нечетные числа.
    7. Вывести в строку ряд 100 200 300 …..
    8. Вывести рисунки как на картинке ниже используя циклы

     

    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    

    1 0 0 0 0 0 0 0 0
    0 1 0 0 0 0 0 0 0
    0 0 1 0 0 0 0 0 0
    0 0 0 1 0 0 0 0 0
    0 0 0 0 1 0 0 0 0
    0 0 0 0 0 1 0 0 0
    0 0 0 0 0 0 1 0 0
    0 0 0 0 0 0 0 1 0
    0 0 0 0 0 0 0 0 1
    

    1 1 1 1 1 1 1 1 1
    1 0 0 0 0 0 0 0 1
    1 0 0 0 0 0 0 0 1
    1 0 0 0 0 0 0 0 1
    1 0 0 0 0 0 0 0 1
    1 0 0 0 0 0 0 0 1
    1 0 0 0 0 0 0 0 1
    1 0 0 0 0 0 0 0 1
    1 1 1 1 1 1 1 1 1
    

    1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1
    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    

    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1
    

    0 0 0 0 0 1 1 1 1
    0 0 0 0 0 1 1 1 1
    0 0 0 0 0 1 1 1 1
    0 0 0 0 0 1 1 1 1
    0 0 0 0 0 1 1 1 1
    0 0 0 0 0 1 1 1 1
    0 0 0 0 0 1 1 1 1
    0 0 0 0 0 1 1 1 1
    0 0 0 0 0 1 1 1 1
    

    1 1 1 1 0 0 0 0 0
    1 1 1 1 0 0 0 0 0
    1 1 1 1 0 0 0 0 0
    1 1 1 1 0 0 0 0 0
    1 1 1 1 0 0 0 0 0
    1 1 1 1 0 0 0 0 0
    1 1 1 1 0 0 0 0 0
    1 1 1 1 0 0 0 0 0
    1 1 1 1 0 0 0 0 0
    

    0 1 1 1 1 1 1 1 1
    0 0 1 1 1 1 1 1 1
    0 0 0 1 1 1 1 1 1
    0 0 0 0 1 1 1 1 1
    0 0 0 0 0 1 1 1 1
    0 0 0 0 0 0 1 1 1
    0 0 0 0 0 0 0 1 1
    0 0 0 0 0 0 0 0 1
    0 0 0 0 0 0 0 0 0
    

    1 1 1 1 1 1 1 1 0
    1 1 1 1 1 1 1 0 0
    1 1 1 1 1 1 0 0 0
    1 1 1 1 1 0 0 0 0
    1 1 1 1 0 0 0 0 0
    1 1 1 0 0 0 0 0 0
    1 1 0 0 0 0 0 0 0
    1 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    

    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 1
    0 0 0 0 0 0 0 1 1
    0 0 0 0 0 0 1 1 1
    0 0 0 0 0 1 1 1 1
    0 0 0 0 1 1 1 1 1
    0 0 0 1 1 1 1 1 1
    0 0 1 1 1 1 1 1 1
    0 1 1 1 1 1 1 1 1
    

    1 1 1 1 1 1 1 1 1
    0 1 1 1 1 1 1 1 0
    0 0 1 1 1 1 1 0 0
    0 0 0 1 1 1 0 0 0
    0 0 0 0 1 0 0 0 0
    0 0 0 1 1 1 0 0 0
    0 0 1 1 1 1 1 0 0
    0 1 1 1 1 1 1 1 0
    1 1 1 1 1 1 1 1 1
    

    0 0 0 0 0 0 0 0 1
    0 0 0 0 0 0 0 1 1
    0 0 0 0 0 0 1 1 1
    0 0 0 0 0 1 1 1 1
    0 0 0 0 1 1 1 1 1
    0 0 0 0 0 1 1 1 1
    0 0 0 0 0 0 1 1 1
    0 0 0 0 0 0 0 1 1
    0 0 0 0 0 0 0 0 1
    

    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    0 0 0 0 1 0 0 0 0
    0 0 0 1 1 1 0 0 0
    0 0 1 1 1 1 1 0 0
    0 1 1 1 1 1 1 1 0
    

    1 0 0 0 0 0 0 0 0
    1 1 0 0 0 0 0 0 0
    1 1 1 0 0 0 0 0 0
    1 1 1 1 0 0 0 0 0
    1 1 1 1 1 0 0 0 0
    1 1 1 1 0 0 0 0 0
    1 1 1 0 0 0 0 0 0
    1 1 0 0 0 0 0 0 0
    1 0 0 0 0 0 0 0 0
    

    0 1 1 1 1 1 1 1 0
    0 0 1 1 1 1 1 0 0
    0 0 0 1 1 1 0 0 0
    0 0 0 0 1 0 0 0 0
    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    

    1 0 0 0 0 0 0 0 1
    1 1 0 0 0 0 0 1 1
    1 1 1 0 0 0 1 1 1
    1 1 1 1 0 1 1 1 1
    1 1 1 1 1 1 1 1 1
    1 1 1 1 0 1 1 1 1
    1 1 1 0 0 0 1 1 1
    1 1 0 0 0 0 0 1 1
    1 0 0 0 0 0 0 0 1
    

    1 1 1 1 1 1 1 1 1
    1 0 0 0 0 0 0 0 1
    1 0 1 1 1 1 1 0 1
    1 0 1 0 0 0 1 0 1
    1 0 1 0 1 0 1 0 1
    1 0 1 0 0 0 1 0 1
    1 0 1 1 1 1 1 0 1
    1 0 0 0 0 0 0 0 1
    1 1 1 1 1 1 1 1 1
    

    1 1 1 1 1 1 1 1 1
    1 0 0 0 0 0 0 0 1
    1 1 1 1 1 1 1 0 1
    1 0 0 0 0 0 1 0 1
    1 0 1 1 1 0 1 0 1
    1 0 1 0 0 0 1 0 1
    1 0 1 1 1 1 1 0 1
    1 0 0 0 0 0 0 0 1
    1 1 1 1 1 1 1 1 1
    

  • Задания на операторы сравнения

    Задания на операторы сравнения

    Операторы сравнения

    Большинство операторов сравнения применимы к числовым значениям. Всё это бинарные операторы, имеющие два числовых аргумента, но возвращающие логическое значение.

    • > — оператор «больше».
    • >= — оператор «больше или равно».
    • < — оператор «меньше».
    • <= — оператор «меньше или равно».
    • != — оператор «не равно».
    • == — оператор эквивалентности (равенства).
    1. Создать программу, проверяющую и сообщающую на экран, является ли целое число записанное в переменную n, чётным либо нечётным.
    2. Создать программу, выводящую на экран ближайшее к 10 из двух чисел, записанных в переменные m и n. Например, среди чисел 8,5 и 11,45 ближайшее к десяти 11,45.
    3. В три переменные a, b и c записаны три вещественных числа. Создать программу, которая будет находить и выводить на экран вещественные корни квадратного уравнения ax²+bx+c=0, либо сообщать, что корней нет.
    4. Написать программу преобразования цифр в слова.
    5. Написать программу которая найдет максимальное число из двух.
    6. Написать программу которая найдет максимальное число из трех.
    7. Написать программу которая найдет максимальное число из четырех.
    8. В три переменные a, b и c явно записаны программистом три целых попарно неравных между собой числа. Создать программу, которая переставит числа в переменных таким образом, чтобы при выводе на экран последовательность a, b и c оказалась строго возрастающей.
    9. Вывести таблицу истинности для оператора and
    10. Вывести таблицу истинности для оператора or
    11. Написать тест на знание таблицы умножения
    12. Написать тест на проверку сложения чисел до 100
  • Работа с базами данных c#

    Установка Mysql Workbench.

    Для работы с базами данных нам понадобится установить Mysql Workbench.

    http://www.mysql.com/products/workbench/

    При установке у вас будет запрошен логин и пароль. Введите root root.

    Подключение библиотек к проекту c#.

    В обозревателе решений кликаем добавить ссылку. %d0%b1%d0%b5%d0%b7%d1%8b%d0%bc%d1%8f%d0%bd%d0%bd%d1%8b%d0%b9

    В открывшемся менеджере ссылок нажимаем вкладку обзор и кнопку обзор.

    %d0%b1%d0%b5%d0%b7%d1%8b%d0%bc%d1%8f%d0%bd%d0%bd%d1%8b%d0%b9

    Добавляем в References «MySql.Data.dll» по пути указанному ниже. Версии могут отличаться. Но в любом случае разберетесь.

    %d0%b1%d0%b5%d0%b7%d1%8b%d0%bc%d1%8f%d0%bd%d0%bd%d1%8b%d0%b9

    в файле проекта form1.cs

    добавляем

    using MySql.Data.MySqlClient;

    после чего подключаемся к базе данных.

    и выполняем запрос

    string serverName = "localhost"; // Адрес сервера (для локальной базы пишите "localhost")
                string userName = "root"; // Имя пользователя
                string dbName = "sklad"; //Имя базы данных
                string port = "3306"; // Порт для подключения
                string password = "root"; // Пароль для подключения
                string connStr = "server=" + serverName +
                    ";user=" + userName +
                    ";database=" + dbName +
                    ";port=" + port +
                    ";password=" + password + ";";
                MySqlConnection conn = new MySqlConnection(connStr);
                conn.Open();
                string sql = "SELECT * FROM users"; // Строка запроса
                MySqlScript script = new MySqlScript(conn, sql);
                int count = script.Execute();
                richTextBox1.Text += ("Executed " + count + " statement(s).");
                richTextBox1.Text += ("Delimiter: " + script.Delimiter);
    
    
                
    
    
                MySqlConnection connection = new MySqlConnection(connStr);
                MySqlCommand sqlCom = new MySqlCommand(sql, connection);
                connection.Open();
                sqlCom.ExecuteNonQuery();
                MySqlDataAdapter dataAdapter = new MySqlDataAdapter(sqlCom);
                DataTable dt = new DataTable();
                dataAdapter.Fill(dt);
    
                var myData = dt.Select();
                for (int i = 0; i < myData.Length; i++)
                {
                    for (int j = 0; j < myData[i].ItemArray.Length; j++)
                        richTextBox1.Text += myData[i].ItemArray[j] + " ";
                    richTextBox1.Text += "\n";
                }

     

     

  • Прогноз погоды на C# Функция сплит и обработка XML

    public String get_code(String str)Про
    {
    String[] El = str.Split(new string[] { «<B>» }, StringSplitOptions.None);
    String[] E2 = El[1].Split(new string[] { «<» }, StringSplitOptions.None);
    String[] E3 = El[4].Split(new string[] { «<» }, StringSplitOptions.None);
    String[] E4 = El[5].Split(new string[] { «<» }, StringSplitOptions.None);
    E3[0] = (Math.Round((double.Parse(E3[0]) — 32) / 1.8)).ToString();
    E4[0] = (Math.Round((double.Parse(E4[0]) — 32) / 1.8)).ToString();
    return E2[0]+ «|» + E3[0]+»|»+E4[0];
    }

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
    String S =webBrowser1.DocumentText;

    String [] El = S.Split(new string[] { «code» }, StringSplitOptions.None);
    String D1 = get_code(El[2]).ToString();
    String D2 = get_code(El[3]).ToString();
    String D3 = get_code(El[4]).ToString();
    String D4 = get_code(El[5]).ToString();
    String D5 = get_code(El[6]).ToString();
    String [] Today= D1.Split(new string[] { «|» }, StringSplitOptions.None);
    label7.Text = Today[1] + «°»;
    label9.Text = Today[2] + «°»;
    DateTime thisDate1 = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day);

    label6.Text = «Сегодня: » + thisDate1.ToString(«MMMM dd, yyyy»);

    listBox1.SelectedIndex = int.Parse(Today[0]);
    String[] X = listBox1.SelectedItem.ToString().Split(‘-‘);
    label8.Text = X[2];
    pictureBox2.BackgroundImage = imageList1.Images[int.Parse(X[3])];
    }
    }

    }

  • C# Урок 1 Основы c# курсы в Караганде Простейшие конструкции языка программирования. Циклы, ветвления, рекурсия

    Простейшие конструкции языка программирования. Циклы, ветвления, рекурсия.

    1. Типы переменных в C#

    Type Represents Range Default Value
    bool Boolean value True or False False
    byte 8-bit unsigned integer 0 to 255 0
    char 16-bit Unicode character U +0000 to U +ffff ‘\0’
    decimal 128-bit precise decimal values with 28-29 significant digits (-7.9 x 1028 to 7.9 x 1028) / 100 to 28 0.0M
    double 64-bit double-precision floating point type (+/-)5.0 x 10-324 to (+/-)1.7 x 10308 0.0D
    float 32-bit single-precision floating point type -3.4 x 1038 to + 3.4 x 1038 0.0F
    int 32-bit signed integer type -2,147,483,648 to 2,147,483,647 0
    long 64-bit signed integer type -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 0L
    sbyte 8-bit signed integer type -128 to 127 0
    short 16-bit signed integer type -32,768 to 32,767 0
    uint 32-bit unsigned integer type 0 to 4,294,967,295 0
    ulong 64-bit unsigned integer type 0 to 18,446,744,073,709,551,615 0
    ushort 16-bit unsigned integer type 0 to 65,535 0

     

    1. Простейшие операторы языка

    *=    +=   /=    %=

    ==   >=   <=   !=    !

    &     |       <<   >>

     

    1. Циклы

    Циклом называется один или несколько операторов, повторяющихся заданное число раз или до тех пор, пока не будет выполнено определенное условие. Выбор типа цикла зависит от задачи программирования и личных предпочтений кодирования. Одним из основных отличий C# от других языков, таких как C++, является цикл foreach, разработанный для упрощения итерации по массиву или коллекции.

     

     

    Циклы foreach, for, while, do while

     

    В C# представлен новый способ создания циклов, который может быть неизвестен программистам на C++ и C: цикл foreach. Вместо просто создания переменной для индексирования массива или другой структуры данных, такой как коллекция, цикл foreach выполняет более тяжелую работу.

    //  Применение цикла для массива целых чисел.
    int[] array1 = {0, 1, 2, 3, 4, 5};
    foreach (int n in array1)
    {
    System.Console.WriteLine(n.ToString());
    }
    // Применение массива для строк
    string[] array2 = {"hello", "world"};
    foreach (string s in array2)
    {
    System.Console.WriteLine(s);
    }
    
    
    //  Применение всех видов циклов для массивов.
    
    int[] array1 = { 0, 1, 2, 3, 4, 5 };
    foreach (int n in array1)
    {
    System.Console.WriteLine(n.ToString());
    }
    
    // Применение массива для строк
    string[] array2 = { "hello", "world" };
    
    foreach (string s in array2)
    {
    System.Console.WriteLine(s);
    }
    
    //------------------------------------------------------------------------
    
    for (int i = 0; i < 6; i++)
    {
    System.Console.WriteLine(array1[i].ToString());
    }
    
    
    for (int i = 0; i < 2; i++)
    {
    System.Console.WriteLine(array2[i]);
    }
    
    //------------------------------------------------------------------------
    
    int x = 0;
    while (x < 6)
    {
    System.Console.WriteLine(array1[x].ToString());
    x++;
    }
    int y = 0;
    while (y < 2)
    {
    System.Console.WriteLine(array2[y]);
    y++;
    }
    
    //------------------------------------------------------------------------
    x = 0;
    do{
    System.Console.WriteLine(array1[x].ToString());
    x++;
    } while (x < 6);
    
    y = 0;
    do
    {
    System.Console.WriteLine(array2[y]);
    y++;
    } while (y < 2);
    
    //------------------------------------------------------------------------
    

     

     

    1. Ветвления программы.

     

    If else

    Оператор if определяет, какой блок операторов будет выполняться при выполнения условия, заданного выражением Boolean. В следующем примере переменной result типа Boolean присваивается значение true, а затем она проверяется оператором if.В результате получается The condition is true.

    bool condition = true; 
    if (condition)
    {   
     Console.WriteLine("The variable is set to true.");
    }
    else
    { 
       Console.WriteLine("The variable is set to false.");
    }

    Оператор if в С# может иметь две формы представления, как показано на примере.

    //----------------------------------------------------------------------------------------
    
    // if-else statement
    if (condition){    
    then-statement;
    }
    else
    {
        else-statement;
    }
    // Next statement in the program.  
    
    //----------------------------------------------------------------------------------------
    
    // if statement without an else
    
    if (condition){    
    
    then-statement;}
    // Next statement in the program.

    В инструкцию if-else, если condition имеет значение true, выполняется then-statement. Если condition имеет значение false, выполняется else-statement. Поскольку condition не может одновременно имеет значение true и false, значения then-statement и else-statement, операторов if-else, никогда не могут выполняться оба. После запуска then-statement или else-statement, элемент управления передаются в следующую инструкцию после оператора if.

    В операторе if, не включающем оператор else, если condition имеет значение true, выполняется then-statement. Если condition имеет значение false, то управление передаются в следующую инструкцию после блока if.

    then-statement и else-statement могут состоять из одного оператора или нескольких операторов, заключенных в фигурные скобки ({}). Для одного оператора в теле конструкции скобки необязательны, но рекомендуются.

    Инструкция или инструкции в then-statement и else-statement могут быть любого типа, включая другой оператор if, вложенный в исходную инструкцию if. Во вложенных выписках if, каждое предложение else принадлежит к последнему if, не имеет соответствующий объект else.В следующем примере Result1 возникает, если m > 10 и n > 20 возвращается значение true.Если m > 10 имеет значение true, а значение n > 20 — Result2.

     

    int m = 12;
    int n = 18; 
    if (m > 10)    
            if (n > 20)    {  
          Console.WriteLine("Result1");  
      } 
       else 
       {
            Console.WriteLine("Result2"); 
       }
    
    
    
    // Try with m = 12 and then with m = 8.
    if (m > 10)
    {  
      if (n > 20)        
            Console.WriteLine("Result1");
    }
    else
    { 
       Console.WriteLine("Result2");
    }

     

    Result2, если условие (m > 10) возвращает значение false.

    В следующем примере, ввести символ с помощью клавиатуры и программе вложенных оператора if для определения символа ввода буквы.Если символ ввода буквы, проверки, программы символа ввода в нижнем регистре или прописными буквами.Сообщение отображается для каждого случая.

    Console.Write("Enter a character: ");
    char c = (char)Console.Read();
    if (Char.IsLetter(c))
    {   
     if (Char.IsLower(c))
        { 
           Console.WriteLine("The character is lowercase.");
        } 
       else 
       {  
          Console.WriteLine("The character is uppercase.");  
      }
    }else
    { 
       Console.WriteLine("The character isn't an alphabetic character.");
    }

    Также можно поместить выражение if в блок else, как это показано в части кода, приведённой ниже. В примере приведено помещение выражения if в два блока else и один блок then. Коментарии определяют какие условия выполняются в каждом из блоков.

    // Change the values of these variables to test the results.bool Condition1 = true;
    bool Condition2 = true;
    bool Condition3 = true;
    bool Condition4 = true; 
    if (Condition1){    // Condition1 is true.}
    else if (Condition2){    // Condition1 is false and Condition2 is true.}
    else if (Condition3){    
    if (Condition4)    {        // Condition1 and Condition2 are false. Condition3 and Condition4 are true.    }    
    else    {        // Condition1, Condition2, and Condition4 are false. Condition3 is true.    }
    }else{    // Condition1, Condition2, and Condition3 are false.}
    

     

    Так как выписка в другом блоке или тогдашнем блоке может быть любой допустимой выпиской можно использовать любое допустимое логическое выражение для условия.Можно использовать логические операторы, такие как &&&|||и !, чтобы сделать составные условия.В следующем коде приведены примеры.

    // NOT
    bool result = true;
    if (!result){    
    Console.WriteLine("The condition is true (result is false).");}
    else{    Console.WriteLine("The condition is false (result is true).");} 
    
    // Short-circuit AND
    int m = 9;
    int n = 7;
    int p = 5;
    if (m >= n && m >= p)
    {    Console.WriteLine("Nothing is larger than m.");} // AND and NOTif (m >= n && !(p > m)){    Console.WriteLine("Nothing is larger than m.");} 
    
    // Short-circuit OR
    if (m > n || m > p){    Console.WriteLine("m isn't the smallest.");} 
    
    // NOT and OR
    m = 4;
    if (!(m >= n || m >= p)){    Console.WriteLine("Now m is the smallest.");}
    
    

     

    switch

    Оператор switch — это оператор управления, выбирающий из списка возможных вариантов раздел переключения, для выполнения содержащегося в нём кода.

    Оператор switch включает один или несколько разделов переключения. Каждый раздел переключения содержит одну или несколько меток case, за которыми следует один или несколько операторов. В следующем примере показан простой оператор switch с тремя разделами переключения. Каждый раздел switch содержит одну метку case, например case 1, и два оператора.

    int caseSwitch = 1;
    switch (caseSwitch){    
    case 1:        
    Console.WriteLine("Case 1");        
    break;    
    case 2:        
    Console.WriteLine("Case 2");        
    break;    
    default:        
    Console.WriteLine("Default case");        
    break;}

     

    1. Операторы перехода.

    continue

    Оператор continue передает элемент управления следующей итерации вложенного пока(while), сделайте(do), для(for) или foreach, в котором она встречается.

    В этом примере инициализируется счетчик для счета от 1 до 10. С помощью оператора continue в сочетании с выражением (i < 9), инструкции между оператором continue и концом тела цикла for пропускаются.

       for (int i = 1; i <= 10; i++)        {     
           if (i < 9)            
                    {
                    continue;        
                    }  
              Console.WriteLine(i); 
           }

     

    break

    Оператор break завершает ближайший внешний цикл или оператор switch, в котором он появляется.Управление передается оператору, следующему за завершенным оператором (если таковой имеется).

    В этом примере условный оператор содержит счетчик, который должен считать от 1 до 100; однако оператор break завершает цикл после четырех.

    for (int i = 1; i <= 100; i++)        {            
    if (i == 5)   break;          
    Console.WriteLine(i);        
    }
    1. Функции

    Функция — основная модульная единица в C#. Функция обычно предназначена для выполнения определенной задачи и её имя часто отражает эту задачу. Функция содержит объявления и выписки. В этом разделе описывается объявление, определение и вызов функций на языке С.

    Функции должны иметь определение и должны быть объявлены, хотя определение может служить и объявлением, если объявление делается перед вызовом функции. Определение функции включает тело функции — код, который выполняется при вызове функции.

    Объявление функции указывает имя, возвращаемый тип и атрибуты функции, определенной в любом другом месте программы. Объявление функции должно предшествовать вызову функции. Именно поэтому файлы заголовков, содержащие объявления для функций среды выполнения, включены в коде, прежде вызова функции среды выполнения. Если объявление содержит сведения о типах и количество параметров, то объявление является прототипом.

    Компилятор использует прототип для сравнения типов аргументов в последующих вызовах функции с параметрами функции и чтобы преобразовать типы аргументов к типам параметров при необходимости.

    В вызове функции управление выполнением передается из вызывающей функции в вызываемую функцию. Аргументы, если таковые имеются, передаются по значению в вызываемую функцию. Выполнение оператора return в вызываемой функции возвращает управление и, возможно, значение в вызывающую функцию.

     

    Вернемся к старой задаче — выводе данных о людях. У нас есть разные люди с данными в виде отдельных фамилии, имени, отчества, которые надо вывести на экран — вида Пушкин Александр Сергеевич и Пушкин А.С. Чтобы задача была правдоподобней можно имитировать ввод данных пользователем или загрузку из внешнего источника, но все это будет пустой тратой времени — реальные приложения все равно работают с графическим и/или веб-интерфейсом. Просто держим в уме что в реальности людей не два, а две тысячи и заранее их имена не известны.

     

    Получаем уродливый код

    string name = "Александр";
    string otchestvo = "Сергеевич";
    string surname = "Пушкин";
    string name2 = "Наталья";
    string otchestvo2 = "Николаевна";
    string surname2 = "Гончарова";
    
    System.Console.WriteLine(surname  + " " + name + " " + otchestvo);
    System.Console.WriteLine(surname2  + " " + name2 + " " + otchestvo2);
    

     

     

    Два раза повторяется один и тот же кусок кода — склеивание трех строк в одну.

    Два раза повторяется другой кусок кода — склеивание фамилии, первых букв имени и отчества, точек.

     

    Логичнее всего вынести повторяющиеся куски кода в отдельное место, дать им имя и во всех остальных местах программы вызывать их по этому имени. Иными словами сделать функции — куски кода с собственными именем, которые принимают на вход какие-то данные, что-то с ними делают и возвращают обратно какие-то данные (хотя возможен вариант когда они ничего не принимают и не возвращают, просто что-то делают).

     

    Пример функции

    public static string CreateFio(string surname, string name, string otchestvo)
    {
    string fio = surname + " " + name + " " + otchestvo;
    return fio;
    }

     

     

    Слова public static отложим на пару минут в сторону, string означает, что функция вернет назад строку, CreateFio(string surname, string name, string otchestvo) — название функции и описание того, что она принимает на вход три строки.

     

    Если бы функция ничего не принимала и ничего не возвращала, ее описание выглядело бы так

    public static void CreateFio()
    {
    // фио мы здесь явно создать не сможем, вечная морока с этим тестовыми примерами
    }

     

     

    Код фцнкции обрамляется фигурными скобками, значение возвращается с помощью ключевого слова return

     

    public static string CreateFio(string surname, string name, string otchestvo)
    {
    string fio = surname + " " + name + " " + otchestvo;
    return fio;
    }

     

     

    public static string CreateFioInitials(string surname, string name, string otchestvo)
    {
    string fio = surname + " " + name.Substring(0, 1) + ". " + otchestvo.Substring(0, 1) + ".";
    //Временно оставим в стороне код "Substring(0, 1)" - он просто вырезает первый символ из строки.
    return fio;
    }
    

     

     

    1. Рекурсия

    Рекурсия, стек

    В коде функции могут вызывать другие функции для выполнения подзадач.

    Частный случай подвызова — когда функция вызывает сама себя. Это называется рекурсией.

    Рекурсия используется для ситуаций, когда выполнение одной сложной задачи можно представить как некое действие в совокупности с решением той же задачи в более простом варианте.

    Пример рекурсивного вызова функции

     

    int sumTo(int n) {
    if (n == 1) return 1;
    return n + sumTo(n - 1);
    }

    8. Работа с массивами. 

    // Одномерный массив 
            int[] array1 = new int[5];
    
            // Объявление создание и одновременная запись значений в массив.
            int[] array2 = new int[] { 1, 3, 5, 7, 9 };
    
            // Альтернативный вариант
            int[] array3 = { 1, 2, 3, 4, 5, 6 };
    
            // Двумерный массив
            int[,] multiDimensionalArray1 = new int[2, 3];
    
            // Объявление и запись двумерного массива.
            int[,] multiDimensionalArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };
    
            // Массив массивов
            int[][] jaggedArray = new int[6][];
    
            // Задаем значения массива массивов. 
            jaggedArray[0] = new int[4] { 1, 2, 3, 4 };
    
    Общие сведения о массивах
    Массив имеет следующие свойства.
    Массив может быть одномерным, многомерным или массивом массивов.
    Количество измерений и длина каждого из измерений задаются, когда создается экземпляр массива. 
    Эти значения невозможно изменить во время существования экземпляра.
    Значения по умолчанию числовых элементов массива задано равным нулю, а элементы ссылок имеют значение NULL.
    Разреженный массив является массивом массивов и поэтому его элементы являются ссылочными типами и инициализируются значением null.
    Индексация массивов начинается с нуля: массив с n элементами индексируется от 0 до n-1.
    Элементы массива могут быть любых типов, включая тип массива.
    Типы массива являются ссылочными типами, производными от абстрактного базового типа Array.Поскольку этот тип реализует IEnumerable и IEnumerable<T>, в C# во всех массивах можно использовать итерацию foreach.
    
    Для генерации случайных чисел используем класс Random
    Random rnd = new Random();
    int month = rnd.Next(1, 13); // creates a number between 1 and 12
    int dice = rnd.Next(1, 7);   // creates a number between 1 and 6
    int card = rnd.Next(52);     // creates a number between 0 and 51

    Задания

    1. Создать массив из 10 чисел и вывести его в консоль с помощью цикла.
    2. Создать массив из 10 произвольных чисел, найти максимальное и вывести в консоль.
    3. Задать 4и произвольных числа и с помощью if найти максимальное количество повторений одного и того же числа.
    4. Создать два массива и перемножить друг на друга i-ые значения если оба меньше пяти.
    5. Вычислить сумму чисел до данного с помощью цикла и с помощью рекурсии.
    6. Вычислить факториал с помощью цикла и с помощью рекурсии.
    7. Числа Фибоначчи *. Создать функцию которая выводит в консоль десять чисел Фибоначчи с помощью цикла и с помощью рекурсии.
    8. Создать двумерный массив 10×10 и заполнить его произвольными числами.
    9. Осуществить сортировку массива.
    10. Написать функцию добавления элементов в массив. Увеличивать размерность массива если в нем не хватает места.

    *Последовательность чисел Фибоначчи имеет формулу Fn = Fn-1 + Fn-2. То есть, следующее число получается как сумма двух предыдущих.

     

    Выполнить задания на сайте…

    http://natureofcode.com/book/chapter-8-fractals/

Яндекс.Метрика