Урок 2. Условия и множественный выбор

Дата изменения: 16 февраля 2021
Лабораторные работы си шарп и задания по теме «Язык программирования c sharp: условные операторы if, if else, множественные условия switch»

Урок № 2. C# Теория

Простые типы данных си шарп и переводы

Целочисленные:

  • byte
  • short
  • int
  • long

Вещественные:

  • float
  • double
  • decimal
Переводы
  
1. Неявный тип перевода;
2. Явный тип перевода ;
3. Между несовместимыми типами.

    1.

    int myInt = 2147483647;
    long myLong= myInt;

    2.

    double myDouble = 1234.6;
    int myInt = (int)myDouble;

    3.

    double myDouble = 1234.6;
    int myInt = Convert.ToInt32(myDouble);

C# условные операторы

IF

IF Statements

    string answer = "Yes";
    if (answer == "Yes")
    {
        // операторы, расположенные здесь, будут извлечены если переменная answer равна
        // yes.
    }

      
    Else

    string answer;
    if (answer == "yes")
    {
        // Блок кода будет извлечен, если answer равна "yes".
    }
    else
    {
        // Блок кода будет извлечен, если answerне равна "yes".
    }

    Else if

    string answer;
    if (answer == "yes")
    {
        // Блок кода будет извлечен, если answer равна "yes".
    }
    else if (answer == "I_don't_know")
    {
        // Блок кода будет извлечен, если answer равна "I_don't_know".
    }
    else
    {
        // Блок кода будет извлечен, если ни одно из условий выше не выполнено.
    }

Множественный выбор Switch

Switch statement

string answer;
switch (answer)
{
   case "yes":
      // Блок кода будет извлечен, если answer равна "yes".
      break;
   case "I_don't_know":
      // Блок кода будет извлечен, если answer равна "I_don't_know".
      break;
   case "no":
      // Блок кода будет извлечен, если answer равна "no".
      break;
   default:
      // Блок кода будет извлечен, если ни одно из условий не выполнено".
      break;
}

Задания и лабораторные си шарп

Лабораторная работа 1. Проверка числа на четность

Выполнить: Запросить целое число. Проверить, является ли оно четным. Вывести результат.

[Название проекта: Lesson_2Lab1, название файла L2Lab1.cs]

Пример выполнения:

Введите целое число
5
Результат: Введенное число нечетное
Введите целое число
6
Результат: Введенное число четное

✍ Алгоритм:

  • Запустите Visual Studio.
  • Создайте консольное приложение, назовите проект Lesson_2Lab1.
  • В окне Solution Explorer (Обозреватель решений) найдите файл Program.cs и переименуйте его в L2Lab1.cs.
  • Установите курсор непосредственно после открытой скобки функции Main, щелкните enter, чтобы перейти на новую строку.
  • Попросите пользователя ввести число, используйте метод ReadLine() :
  • static void Main(string[] args)
      {
         Console.WriteLine("Введите число");
      }
    
  • Присвойте введенное значение переменной numb. Переведите переменную numb в целое значение:
  • ...
     int numb = Int32.Parse(Console.ReadLine());
    ...
    
  • Проверьте введенное число на четность. Если оно четное выведите фразу «Введенное число четное»:
  • ...
    if(numb % 2 == 0)
      {
         Console.WriteLine("Введенное число четное");
      }
    ...
    
    Проверка на четность

  • Необходимо проверить остаток при делении числа на 2.
  • Оператор (%) используется для проверки остатка при целочисленном делении числа.
  • Если остаток равен 0, это означает, что число четное.
  • Добавьте блок else чтобы вывести результат при нечетном значении переменной numb. В таком случае выведите фразу «Введенное число нечетное»:
  • ...
    if(numb % 2 == 0)
      {
         Console.WriteLine("Введенное число четное");
      }
    else  
      {
         Console.WriteLine("Введенное число нечетное");
      }
    
  • Щелкните CTRL+F5, чтобы запустить приложение без отладки.
  • Поэкспериментируйте, вводя различные значения.
Задание 1:

Выполнить: Попросите пользователя ввести число. Проверьте, является ли введенное число положительным или оно является отрицательным. Выведите результат.
 
Указание: Можно использовать следующие способы перевода введенного значения в числовое:

1) int numb = Convert.ToInt32(Console.ReadLine());
2) int numb = Int32.Parse(Console.ReadLine());

  
[Название проекта: Lesson_2Task1, название файла L2Task1.cs]

Пример выполнения:

Введите число
50
Результат: введенное число положительное
Введите число
-7
Результат: введенное число отрицательное

Задание 2:

Выполнить: Дано двухзначное число. Вывести отдельно его десятичный разряд и разряд единиц (операторы %, /).
  состоит из цифр 5 и6, но не -5 и -6. Чтобы вывести модуль числа:

...
using static System.Math;
...
Math.Abs(number);

  
Указание: Не забудьте выполнить перевод введенного значения в тип integer (Int32.Parse(...)).
 
[Название проекта: Lesson_2Task2, название файла L2Task2.cs]

Пример выполнения:

Введите число:
50
Результат: единицы 0, десятки 5
Введите число:
-76
Результат: единицы 6, десятки 7

Задание 3:

Выполнить: Дано трехзначное число. Измените его десятичный разряд в 0.
  
Указание 1: Сначала необходимо получить отдельно все три разряда числа. Затем присвоить разряду десяток 0. После чего получить число из разрядов. Пример получения числа:

если дано 1, 2, 3
1*100 + 2*10 + 3 = 123

  
Указание 2: Не забудьте выполнить перевод введенного значения в числовой тип (Int32.Parse(...)).
 
[Название проекта: Lesson_2Task3, название файла L2Task3.cs]

Пример выполнения:

Введите трехзначное число:
523
Цифры числа: 5,2,3; результат: 503

Задание 4:

Выполнить: Даны три целых числа. Выведите true если, по крайней мере, два из них не равны, и выведите false в обратном случае.
  
Указание: Логический оператор не равно — это !=, логическое И — это оператор &&, логическое ИЛИ — оператор ||:

if (a!=b) {...}

[Название проекта: Lesson_2task4, название файла L2Task4.cs]
Пример выполнения:

Введите три целых числа:
13, -4, 6 
Результат: true
Введите три целых числа:
6, -4, 6
Результат: true
Введите три целых числа:
13, 13, 13 
Результат: false

Задание 5:

Выполнить: Даны целые числа a, b, c. Вывести значение True, если существует треугольник с соответствующими длинами сторон, и False в противном случае. Если треугольник существует, вывести его площадь.
  
Указание: Вспомните «неравенство треугольника». Для вычисления площади воспользуйтесь формулой Герона (p означает полупериметр):

[Название проекта: Lesson_2task5, название файла L2Task5.cs]
Пример выполнения:

Введите три целых числа:
4, 8, 6
Результат: существует, его площадь 11.61895003
Задание 6:

Выполнить: Для данного целого x найти значение следующей функции f, принимающей значения целого типа:

[Название проекта: Lesson_2task6, название файла L2Task6.cs]
Пример выполнения:

Введите число: 
>>> 4
Результат 8
Задание 7:

Выполнить: Для данного вещественного x найти значение следующей функции f, принимающей значения целого типа:

[Название проекта: Lesson_2task7, название файла L2Task7.cs]

Пример выполнения:

Введите число: 
>>> 
Результат 
Лабораторная работа 2. Множественный выбор Switch

Выполнить: Вводится число — размер порции кофе (1=small 2=medium 3=large). В ответ вывести цену (1 — 25 руб, 2 — 50 руб, 3 — 75 руб). Использовать оператор switch.

[Название проекта: Lesson_2Lab2, название файла L2Lab2.cs]

Пример выполнения:

Возможные порции: 1=small 2=medium 3=large
Укажите ваш выбор: 
2
Результат: 25 руб
Возможные порции: 1=small 2=medium 3=large
Укажите ваш выбор: 
5
Результат: Неверный выбор. Введите 1, 2 или 3.

✍ Алгоритм:

  • Open Visual Studio.
  • Создайте консольное приложение с именем Lesson_2Lab2: File (Файл) -> New (Новый) -> Project/Solution (Проект) -> Консольное приложение.
  • В окне Solution Explorer (Обозреватель решений)найдите файл Program.cs и переименуйте его в L2Lab2.cs.
  • Установите курсор сразу после открытой скобки функции Main и щелкните enter, чтобы перейти на новую строку.
  • Используйте метод WriteLine, чтобы запросить размер порции кофе у пользователя:
  • ...
    Console.WriteLine("Coffee sizes: 1=small 2=medium 3=large");
    Console.Write("Please enter your selection: ");
    ...
    
  • Присвойте введенное число переменной str строкового типа:
  • ...
    string str = Console.ReadLine();
    ...
    
  • Инициализируйте переменную priceзначением 0:
  • ...
    int price = 0;
    ...
    
  • Создайте оператор switch, чтобы проверить переменную str: если выбрано 1, то цена должна быть 25. Если 250, если 375.
  • ...
    switch (str)
      {
        case "1":
          price += 25;
          break;
        case "2":
          price += 50;
          break;
        case "3":
          price += 75;
          break;
       ...
      }
    ...
    
  • Добавьте блок default, чтобы вывести сообщение, если введенное число было неверным:
  • ...
    switch (str)
      {
        case "1":
          price += 25;
          break;
        case "2":
          price += 50;
          break;
        case "3":
          price += 75;
          break;
        default:
          Console.WriteLine("Неверный выбор. Введите 1, 2 или 3.");
          break;
      }
    ...
    
  • Проверьте переменную price и выведите цену, используя рекомендованный c# синтаксис:
  • ...
    if (price != 0)
                {
                    Console.WriteLine($"{price} руб.");
                }
    ... 
    
  • Щелкните CTRL+F5.
  • Поэкспериментируйте с различными значениями.
  • Сохраните проект.
Задание 8:

Выполнить: Попросите пользователя ввести номер дня недели (1, 2, 3, …, 7). Проверьте введенный номер и выведите в ответ название дня недели (Понедельник — 1, Вторник — 2, и т.д.).

[Название проекта: Lesson_2Task8, название файла L2Task8.cs]

  
Пример выполнения:

Введите число от 1 до 7: 
2
Результат: 2-й день недели - это вторник
Введите число от 1 до 7:   
9
Результат: такого дня недели нету, введите число от 1 до 7

Работа с windows forms

Для создания приложения Windows Forms в Visual Studio 2019:
Лабораторная работа 4.
Элемент управления TextBox (текстовое поле)

Выполнить: Разработайте приложение, которое вычисляет сумму трех любых чисел при нажатии на кнопку.

Целью работы является знакомство с элементами управления visual c# textbox и button — текстовое поле и кнопка.

Пример выполнения:

[Название проекта: Lesson_4Lab4, название файла формы frmSumma.cs]

✍ Алгоритм:

    Инструментарий:

    объект свойство name свойство text
    форма Вычисление суммы
    кнопка (button) btnExit Выход
    текстовое поле (textbox) txtA 0
    текстовое поле (textbox) txtB 0
    текстовое поле (textbox) txtC 0
    текстовое поле (textbox) txtSumma 0
    кнопка (button) btnCount Вычислить
  1. Внимание! Называйте все объекты согласно правилам именования объектов, принятых в C#. В скобках будет указан возможный вариант для имени создаваемого объекта.
  2. Создайте новый проект (File → New → Project →Windows Forms Application ), назовите проект Урок 4 Лаб 4, а его форму — frmSumma (окно Свойства → свойство (Name)).
  3. Создайте и запрограммируйте на форме кнопку Выход (btnExit). Для этого в окне Toolbox разверните свиток All Windows Forms и дважды щелкните по элементу button. На форме появилась кнопка. Для того, чтобы запрограммировать кнопку, дважды щелкните по ней на форме — открылась новая вкладка с кодом для кнопки. Введите код:
  4.  private void btnExit_Click(object sender, EventArgs e)
            {
                this.Close(); // эта строка - ваш введенный код
            }
  5. Запустите приложение и убедитесь, что кнопка работает.
  6. Верните во вкладку с дизайном формы. Создайте три элемента управления Textbox (txtA, txtB, txtC) для слагаемых. Задайте свойство Text для этих элементов управления, равное 0 (в окне PropertiesText).
  7. Создайте еще один элемент управления TextBox (txtSumma) (размеры и расположение кнопок см. выше рис «форма Вычисление_суммы»).
  8. Создайте кнопку Вычислить (btnCount).
  9. Запрограммируйте событие Click для кнопки Вычислить следующим образом (дважды щелкните по кнопке на форме, чтобы запрограммировать событие):
  10. private void btnCount_Click(object sender, EventArgs e)
            {
           // здесь начинается ваш код
                int summa = Int32.Parse(txtA.Text) + 
                   Int32.Parse(txtB.Text) + Int32.Parse(txtC.Text);
                txtSumma.Text = summa.ToString();
           // здесь ваш код закончился
            }
    где Parse – функция преобразования строкового значение в целое число;
  11. Задайте надписи для кнопок («Вычислить» и «Выход»), изменив их свойство Text.
  12. Запустите приложение, введите значения для слагаемых и посмотрите, что произойдет, если Вы нажмете на кнопку Вычислить.
  13. Сохраните проект. Найдите на компьютере папку с проектом. Загрузите в moodle два файла: 1) файл frmSumma.cs 2) В папке bin → Debug файл с расширением .exe. Либо загрузите архив всей папки с проектом.

Контрольное задание. Разработайте приложение, которое вычисляет:

  • площадь треугольника по трем сторонам;
  • площадь прямоугольника по двум сторонам;
  • площадь треугольника по двум сторонам и углу между ними;
  • процент от числа.

[Название проекта: Lesson_4ExTask0, название формы L4ExTask0.cs]

Лабораторная работа 5.
Элемент управления ListBox (список), свойства и методы списка, программирование с ветвлением

Измените свойство Backcolor (Задний фон) текстового поля при помощи элемента управления ListBox – список

Целью работы является ознакомление с элементом управления в visual c# Listbox. Изучаются свойства добавления и удаления пунктов списка listbox. Вводится понятие программирования с ветвлением.

Пример выполнения:

[Название проекта: Lesson_4Lab5, название файла формы lesson4Lab5.cs]

✍ Алгоритм:

Инструментарий:

объект свойство name свойство text
форма
кнопка (button) btnExit Выход
текстовое поле (textbox) txt
список (ListBox) lst
  1. Поместите на новую форму текстовое поле TextBox c именем txt и элемент управления Список ListBox . Назовите его lst (свойство Name).
  2. На панели свойств элемента управления ListBox выберите свойство (атрибут) Items и задайте для него четыре пункта списка (нажимая на Enter после каждого пункта): черный, красный, синий, зеленый.
  3. Теперь запрограммируйте событие SelectedIndexChanged (изменение пункта списка) для списка, таким образом, чтобы при нажатии на определенный пункт c цветом, цвет текстового поля менялся бы на соответствующий. Используйте при этом оператор Visual c# If:
  4. private void lst_SelectedIndexChanged(object sender, EventArgs e)
            {
               // ваш код:
                if (lst.SelectedItem == "black")
                {
                    txt.BackColor = System.Drawing.Color.Black;
                }
                else if (lst.SelectedItem == "red")
                {
                    txt.BackColor = System.Drawing.Color.Red;
                }
                else if (lst.SelectedItem == "blue")
                {
                    txt.BackColor = System.Drawing.Color.Blue;
                }
                else if (lst.SelectedItem == "green")
                {
                    txt.BackColor = System.Drawing.Color.Green;
                }
            // здесь ваш код закончился
            }
      
    System – пространство имен;
    Drawing — пространство имен, обеспечивающее доступ к функциональным возможностям графического интерфейса
    Событие SelectedIndexChanged происходит при выделении различных пунктов в элементе управления списка данных между отправками к серверу.
  5. Все работает, но теперь мы рассмотрим второй способ задания пунктов списка: с помощью программного кода.
  6. Удалите все цвета из атрибута Items элемента управления lst. Теперь необходимо добавить в обработку события Load формы (загрузка формы) следующий код (дважды щелкните на пустом месте дизайна формы, чтобы открыть код):
  7. private void Form1_Load(object sender, EventArgs e)
            {
                // ваш код:
                lst.Items.Add("black");
                // ... добавьте другие цвета
            }
  8. Запустите и отладьте программу.

Контрольное задание.
Добавьте ListBox для изменения ширины (атрибут Width) текстового поля: минимальная — 20, средняя – 50, максимальная — 100.

Примечание: использовать свойство текстового поля Size, и System.Drawing.Size(значение ширины, значение высоты)

[Название проекта: Lesson_4ExTaskLab5, название формы L4ExTaskLab5.cs]

(необязательно для выполнения) Лабораторная работа №6.
Разработайте приложение, которое изменяет задний фон текстового поля из предыдущего занятия, реализовав эту функцию с помощью меню формы
Целью данного урока является ознакомление с элементом управления MenuStrip при работе в visual c++ с формами.

Пример выполнения:
c++ меню menuStrip

[Название проекта: Lesson_4Lab6, название файла формы lesson4Lab6.cs]

✍ Алгоритм:

Инструментарий:

объект свойство name
форма
меню формы (MenuStrip) MenuStrip1
  1. Запустите проект из предыдущего занятия. Удалите ListBox (Список).
  2. Для создания меню на панели инструментов выберите MenuStrip . Дважды кликните на появившемся в нижней области окна объекте, а затем перейдите на форму и в области (Вводить здесь) введите меню верхнего уровня с текстом Цвет.
  3. Переместитесь на нижнюю область и введите текст Черный. Заполните элемент MenuStrip следующим образом:
Цвет
Черный
Красный
Синий
Зеленый
  1. Запустите программу и поэкспериментируйте: выбирайте разные элементы созданного объекта.
  2. Запрограммируйте событие Click для каждого пункта; например, для элемента Черный необходимо написать следующий код (дважды щелкнув на пункте, чтобы открыть код):
private void ЧерныйToolStripMenuItem_Click(object sender, EventArgs e)
{
  this.txt.BackColor=System.Drawing.Color.Black;
}
  1. Запрограммируйте аналогично остальные пункты Цвет.
  2. Запустите и отладьте приложение. Сохраните проект.
Дополнительное задание:

  1. При выборе какого-либо пункта сделайте его недоступным для повторного выбора (свойство Enabled=false).
  2. Выполните дополнительное задание из занятия № 5, реализовав функцию с помощью MenuStrip.
Вопросы для самоконтроля:

  1. Каково основное назначение объекта MenuStrip?
  2. Как запрограммировать необходимый пункт меню формы в Visual c++?
  3. Какое свойство служит для изменения фона объекта?
  4. С помощью какого свойства menu можно сделать недоступным какой-либо пункт?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*
*


Вставить формулу как
Блок
Строка
Дополнительные настройки
Цвет формулы
Цвет текста
#333333
Используйте LaTeX для набора формулы
Предпросмотр
\({}\)
Формула не набрана
Вставить