Главная страница
Навигация по странице:

  • 3.1. Взаимные преобразования

  • 3.2. Стандартное форматирование Создать консольную программу выода целого и вещественного чисел в стан- дартных форматах. Варианты к заданию.

  • 3.3. Нестандартное форматирование Создать консольную программу вывода вещественного числа в нестандарт- ных форматах. Варианты к заданию.

  • 4.1. Консольное приложение

  • Варианты к заданиям.

  • 4.2. Windows Forms приложение

  • Внимание

  • 6.1. Ветвление if; else

  • 6.2. Выбор switch; case Вывести сообщения для подтверждения имени пользователя с использовани- ем инструкции выбора switch. Проект – консольное приложение. Пример

  • Лабораторная работа циклы. Поволжский государственный университет телекоммуникаций и информатики


    Скачать 3.57 Mb.
    НазваниеПоволжский государственный университет телекоммуникаций и информатики
    АнкорЛабораторная работа циклы
    Дата08.10.2022
    Размер3.57 Mb.
    Формат файлаpdf
    Имя файлаLR_CSharp_Akchurin_2010.pdf
    ТипДокументы
    #721430
    страница2 из 7
    1   2   3   4   5   6   7
    Пример. Создать программу взаимных преобразований типов численных дан- ных в соответствии с вариантом.
    Листинг программы using
    System; namespace
    ConsoleChisloTip
    { class
    Program
    { static void
    Main()
    {
    Console
    .WriteLine(
    "Преобразуем int в дугие целые типы"
    ); int i = 200;
    // Целое типа int
    Int16
    i1 = (
    Int16
    )i;
    // int => int16
    Int32
    i2 = i;
    // int => int32
    Int64
    i3 = i;
    // int => int64
    Byte i4 = (
    Byte
    )i;
    // int => Byte sbyte i5 = (
    sbyte
    )i;
    // int => sbyte
    Console
    .WriteLine();
    Console
    .WriteLine(
    "Типы {0,8}{1,8}{2,8}{3,8}{4,8}{5,8}"
    ,
    "int"
    ,
    "Int16"
    ,
    "Int32"
    ,
    "Int64"
    ,
    "Byte"
    ,
    "sbyte"
    );
    Console
    .WriteLine(
    "Значения {0,8}{1,8}{2,8}{3,8}{4,8}{5,8}"
    , i, i1, i2, i3, i4, i5);
    Console
    .WriteLine(
    "Байты {0,8}{1,8}{2,8}{3,8}{4,8}{5,8}"
    , sizeof
    (
    int
    ), sizeof
    (
    Int16
    ), sizeof
    (
    Int32
    ), sizeof
    (
    Int64
    ), sizeof
    (
    byte
    ), sizeof
    (
    sbyte
    ));

    23
    Console
    .WriteLine();
    // Пропуск строки
    Console
    .WriteLine(
    "Нажмите любую клавишу"
    );
    Console
    .WriteLine();
    Console
    .ReadKey();
    // Пауза
    Console
    .WriteLine();
    Console
    .WriteLine(
    "Преобразуем int в типы с плавающей точкой"
    );
    Console
    .WriteLine(); double d = i;
    // int => double
    Single s = i;
    // int => Single
    Console
    .WriteLine(
    "Типы {0,8}{1,8}{2,8}"
    ,
    "int"
    ,
    "double"
    ,
    "Single"
    );
    Console
    .WriteLine(
    "Значения {0,8}{1,8}{2,8}"
    , i, d, s);
    Console
    .WriteLine(
    "Байты {0,8}{1,8}{2,8}"
    , sizeof
    (
    int
    ), sizeof
    (
    double
    ), sizeof
    (
    Single
    ));
    Console
    .WriteLine();
    Console
    .WriteLine(
    "Нажмите любую клавишу"
    );
    Console
    .ReadKey();
    Console
    .WriteLine();
    Console
    .WriteLine(
    "Преобразуем double в Single и int"
    ); d = 25.34;
    // Число типа double
    Console
    .WriteLine(); i = (
    int
    )d;
    // double => int s = (
    Single
    )d;
    // double => Single
    Console
    .WriteLine(
    "Типы {0,8}{1,8}{2,8}"
    ,
    "int"
    ,
    "double"
    ,
    "Single"
    );
    Console
    .WriteLine(
    "Значения {0,8}{1,8}{2,8}"
    , i, d, s);
    Console
    .WriteLine(
    "Байты {0,8}{1,8}{2,8}"
    , sizeof
    (
    int
    ), sizeof
    (
    double
    ), sizeof
    (
    Single
    ));
    Console
    .WriteLine();
    Console
    .WriteLine(
    "Нажмите любую клавишу"
    );
    Console
    .ReadKey();
    }
    }
    }
    Стартовые числа Start. Значение int_1 выбрано таким, чтобы оно умещалось в формате выбранного типа, но выходило за пределы типа sbyte. Объявлены переменные для каждого вида чисел.

    24

    25
    3.
    Строковые и символьные типы в языке C#
    Предмет исследований

    Структура программы на языкеC#.

    Задание констант, переменных.

    Типы строкых и символьных типов.

    Организация ввода-вывода строковых данных.
    Контрольные вопросы
    Алфавит языка C#, операции, идентификаторы.
    1.
    Структура программы.
    2.
    Переменные. Их объявление.
    3.
    Символьный тип: char.
    4.
    Строковыq тип string.
    5.
    Совместимость типов при присвоениях.
    6.
    Назначение форматирования чисел.
    7.
    Стандартные форматы. G формат – общий. F формат - c фиксированной
    8.
    точкой. N формат – числовой. E формат – научный. C формат – денеж- ный. P формат – процентный. D формат – десятичный.
    Нестандартные форматы. Форматы с символами E+0 и E-0. формат с
    9.
    символом 0. формат с символом #. Формат с символом точка. Формат с символом запятая. Формат с символом %.
    3.1.
    Взаимные преобразования
    Создать консольную программу взаимных преобразований строковых и сим- вольных типов. Она должна отображать фамилию студента строкой и добав- лять к строке символ.

    26
    Пример. Создать программу взаимных преобразований строковых и символь- ных типов. Она должна отображать строку Фамилия строками разного типа и добавлять к строке символ восклицательного знака ( ! ).
    Листинг программы using System; namespace ConsoleChar
    { class Program
    { static void Main()
    { string Фамилия; char Символ;
    Фамилия = "Акчурин";
    // тип string
    Символ = '!';
    // тип char
    Console.WriteLine(Фамилия + Символ);
    Console.WriteLine();
    // Пропуск строки
    Console.WriteLine("Нажмите Enter");
    Console.ReadLine();
    // Пауза
    }
    }
    }
    Это результат его прогона:

    27
    3.2.
    Стандартное форматирование
    Создать консольную программу выода целого и вещественного чисел в стан- дартных форматах. Варианты к заданию. Целое число – номер зачетной точки, вещественное – номер зачетной книжки с 4-мя последними цифрами в дробной части.
    Пример. Создать консольную программу вывода целого 123456789 и веще- ственного -12.345678956789 чисел в стандартных форматах.
    Листинг программы using
    System; namespace
    ChislaFormatStand
    { class
    Program
    { static void
    Main()
    { double d = -12.345678956789; int i = 123456789;
    Console
    .Write(
    "Число c плавающей точкой "
    );
    Console
    .WriteLine(d);
    Console
    .WriteLine();
    Console
    .Write(
    "G формат - общий "
    );
    Console
    .WriteLine(
    "{0,8:G}"
    , d);
    Console
    .Write(
    "F формат - c фикс. точкой "
    );
    Console
    .WriteLine(
    "{0,8:F}"
    , d);
    Console
    .Write(
    "N формат - числовой "
    );
    Console
    .WriteLine(
    "{0,8:N}"
    , d);
    Console
    .Write(
    "E формат - научный "
    );
    Console
    .WriteLine(
    "{0,8:E}"
    , d);
    Console
    .Write(
    "C формат - денежный "
    );
    Console
    .WriteLine(
    "{0,8:C}"
    , d);

    28
    Console
    .Write(
    "P формат - процентный "
    );
    Console
    .WriteLine(
    "{0,8:P}"
    , d);
    Console
    .WriteLine();
    Console
    .Write(
    "Число целое "
    );
    Console
    .WriteLine(i);
    Console
    .WriteLine();
    Console
    .Write(
    "D формат - десятичный "
    );
    Console
    .WriteLine(
    "{0,8:D}"
    , i);
    Console
    .Write(
    "C формат - денежный "
    );
    Console
    .WriteLine(
    "{0,8:C}"
    , i);
    Console
    .Write(
    "P формат - процентный "
    );
    Console
    .WriteLine(
    "{0,8:P}"
    , i);
    Console
    .Write(
    "X формат - 16-ричный "
    );
    Console
    .WriteLine(
    "{0,8:X}"
    , i);
    Console
    .WriteLine();
    Console
    .WriteLine(
    "Нажмите любую клавишу"
    );
    Console
    .ReadKey();
    }
    }
    }
    Это результат его прогона:

    29
    3.3.
    Нестандартное форматирование
    Создать консольную программу вывода вещественного числа в нестандарт- ных форматах. Варианты к заданию. Вещественное число со знаком минус, целая и лробная части – номер зачетной книжки.
    Пример. Создать консольную программу вывода в нестандартных форматах числа (-12345.678956789).
    Листинг программы using
    System; namespace
    ChislaFormatNestand
    { class
    Program
    { static void
    Main()
    { double d = -12345.678956789;
    Console
    .Write(
    "Число c плавающей точкой "
    );
    Console
    .WriteLine(d);
    Console
    .WriteLine();
    Console
    .Write(
    "формат с символами E+0 "
    );
    Console
    .WriteLine(
    "{0:000E+000}"
    , d);
    Console
    .Write(
    "формат с символами E-0 "
    );
    Console
    .WriteLine(
    "{0:000E-000}"
    , d);
    Console
    .Write(
    "формат с символом 0 "
    );
    Console
    .WriteLine(
    "{0:000}"
    , d);
    Console
    .Write(
    "формат с символом # "
    );
    Console
    .WriteLine(
    "{0:###}"
    , d);
    Console
    .Write(
    "Формат с символом точка "
    );
    Console
    .WriteLine(
    "{0:###.000}"
    , d);
    Console
    .Write(
    "Формат с символом запятая "
    );
    Console
    .WriteLine(
    "{0:###,000}"
    , d);
    Console
    .Write(
    "Формат с символом % "
    );
    Console
    .WriteLine(
    "{0:###.000%}"
    , d);
    Console
    .WriteLine();
    Console
    .WriteLine(
    "Нажмите любую клавишу"
    );
    Console
    .ReadKey();
    }
    }
    }

    30
    Это результат его прогона:

    31
    4.
    Тип DateTime в языке C#
    Предмет исследований

    Структура программы на языкеC#.

    Задание констант, переменных.

    Тип DateTime.

    Компонент DateTimePicker.

    Программа решения задачи в виде консольного приложения.

    Программа решения задачи в виде Windows приложения.
    Контрольные вопросы
    Алфавит языка C#, операции, идентификаторы.
    1.
    Структура программы.
    2.
    Переменные. Их объявление.
    3.
    Тип DateTime. Назначение
    4.
    Компонент DateTimePicker.
    5.
    Совместимость типов при присвоениях.
    6.
    4.1.
    Консольное приложение
    Создать консольное приложение для работы с типом DateTime. Оно должно запрашивать дату и время рождения студента, выводить текущие дату/время, запрашивать желаемое время дальнейшего обучения, выводить дату/время и день недели конца обучения.
    Варианты к заданиям. Индивидуальные данные студента.
    Пример.
    Листинг программы using System; namespace ConsoleDateTime
    { class Program
    { static void Main()
    { string d1, s, f;
    Console.WriteLine("Введите Вашу фамилию"); f = Console.ReadLine();
    Console.WriteLine();
    Console.WriteLine("Введите дату рождения дд.мм.гггг");

    32 d1 = Console.ReadLine();
    DateTime dt1 = Convert.ToDateTime(d1);
    Console.WriteLine();
    Console.WriteLine("Ваша фамилия - " + f);
    Console.WriteLine();
    Console.WriteLine("Вы рождены");
    Console.WriteLine(dt1);
    DateTime dt2 = DateTime.Now;
    Console.WriteLine();
    Console.WriteLine("Сегодня");
    Console.WriteLine(dt2);
    Console.WriteLine(); int i = (dt2.Year - dt1.Year) * 365;
    Console.WriteLine("Вы прожили " + i + " дней");
    Console.WriteLine();
    Console.WriteLine("Сколько дней еще хотите учиться?"); s = Console.ReadLine(); dt2 = dt2.AddDays(Convert.ToInt32(s));
    Console.WriteLine();
    Console.WriteLine("Вы станете умным " + dt2);
    Console.WriteLine();
    Console.WriteLine("Это будет " + dt2.DayOfWeek);
    Console.WriteLine();
    Console.WriteLine("Если не все поняли, подучите английский");
    Console.WriteLine();
    Console.WriteLine("Нажмите любую клавишу");
    Console.ReadKey();
    }
    }
    }

    33
    4.2.
    Windows Forms приложение
    Создать Windows Forms приложение для работы с типом DateTime. Оно долж- но запрашивать дату и время рождения студента, выводить текущие да- ту/время, запрашивать желаемое время дальнейшего обучения, выводить да- ту/время и день недели конца обучения.
    Варианты к заданиям. Индивидуальные данные студента.
    Пример. Активизируем ИСР, выбираем создание Windows приложения. В форму заносим компоненты:

    2 компонента dateTimePicker, один для отображения текущей даты, второй для редпктирования даты рождения.

    5 компонентов label для размещения поясняющих текстов.

    2 компонента TextBox для ввода данных.

    Компонент listBox для вывода данныхю

    34

    Компонент button (кнопка) для запуска обработчика события.
    Компонентам назначаем свойства, используя окно свойств ИСР. Итог:
    Двойным щелчком по кнопке инициируем в редакторе кода шаблон обработчи- ка события, в который заносим программу.
    Листинг программы
    using System; using System.Windows.Forms; namespace WindowsFormsDateTime
    { public partial class Form1 : Form
    { public Form1()
    {
    InitializeComponent();
    } private void button1_Click(object sender, EventArgs e)
    {

    35 string f = textBox1.Text; int c = Convert.ToInt32(textBox2.Text); int c1 = Convert.ToInt32(textBox3.Text); dateTimePicker2.MaxDate = DateTime.Now;
    DateTime dt1 = dateTimePicker2.Value;
    DateTime dt2 = DateTime.Now; int d = (dt2.Year - dt1.Year)*365; string s = "Вы " + f; listBox1.Items.Add(s); s = Convert.ToString(d); s = "Вы прожили " + s + " дней"; listBox1.Items.Add(s); s = Convert.ToString(c1); s = "Вы хотите учиться еще " + s + " дней"; listBox1.Items.Add(s); dt1 = dt1.AddDays(c1); s = "Вы станете очень умным " + dt1; listBox1.Items.Add(s); s = Convert.ToString(dt1.DayOfWeek); s = "Это будет в " + s; listBox1.Items.Add(s); s = "Если не все поняли, подучите английский"; listBox1.Items.Add(s);
    }
    }
    }
    Далее окна формы на этапах прогона:

    Сначала стартовое Окно.

    Затем окно при редактирваии компонента DateTimePicker2. В нем нужно установить год, Затем из списка вызвать коллекцию календарей месяцев, в ней выбрать календарь нужного месяца, в котором выбрать день.

    Затем заполнить поля формы. Час рождения должен быть от 0 до 24.

    Нажатие кнопки Принять приводит к обработке данных и формирование итогов в компоненте LictBox1.

    36

    37

    38
    5.
    Линейные структуры
    Предмет исследований

    Запись констант, переменных, стандартных функций.

    Правила записи арифметических выражений.

    Арифметические операторы присваивания.

    Разработка алгоритма решения в соответствии с заданием.

    Составление программы решения задачи в виде консольного приложения.
    Контрольные вопросы
    Алфавит языка C#.
    1.
    Операции.
    2.
    Идентификаторы.
    3.
    Типы данных.
    4.
    Структура программы консольного приложения.
    5.
    Где описываются константы, переменные и типы данных?
    6.
    Стандартные функции.
    7.
    Операторы присваивания.
    8.
    Пустая и составная инструкция.
    9.
    Процедуры ввода Read и ReadLine.
    10.
    Процедуры вывода Write и WriteLine.
    11.
    Последовательность действий при выполнении оператора присваивания.
    12.
    Приоритетность выполнения операций в выражениях.
    13.
    Как организовать пропуск одной, двух строк при выводе?
    14.
    Задание. Вычислить значения переменных в соответствии с вариантами зада- ния. Вывести значения вводимых исходных данных и результаты, сопровож- дая их вывод именами выводимых переменных. Задание выполнить в виде консольного приложения.

    39

    40
    Пример. Вычислить при x = 2.1, y = 0.59, z = -4.8 значения a и b, используя формулы:
    Листинг программы using
    System; namespace
    ConsoleLineStr
    { class
    Program
    { static void
    Main()
    { double x =2.1, y =0.59, z = -4.8, a =0, b = 0;
    // Переменные типа double a = y *
    Math
    .Pow(
    Math
    .Tan(x * x), 3);
    // Вычисляем a a +=
    Math
    .Sqrt(z * z / (y * y + x * x));
    Console
    .WriteLine(
    "Результаты"
    );
    Console
    .WriteLine();
    Console
    .Write(
    "a="
    );
    // Вывод a
    Console
    .WriteLine(a.ToString()); b =
    Math
    .Log(y + x * x);
    // Вычисляем b b +=
    Math
    .Pow(
    Math
    .Sin(z / x), 2);
    Console
    .Write(
    "b="
    );
    // Вывод b
    Console
    .WriteLine(b.ToString());
    Console
    .WriteLine();
    Console
    .WriteLine(
    "Нажмите любую клавишу"
    );
    Console
    .ReadKey();
    // Пауза
    }
    }
    }
    Внимание. При вводе данных в консоли разделитель целой и дробнй части вещественного числа – запятая.

    41

    42
    6.
    Ветвления
    Предмет исследований

    Условная и безусловная передача управления;

    Вычислительные процессы с разветвляющейся структурой.

    Разработать алгоритмы решения в соответствии с заданием.

    Составить программы решения задач.
    Контрольные вопросы
    Какие структуры вычислительных процессов Вы знаете?
    1.
    Как организовать разветвление вычислений?
    2.
    Ветвление if... else.
    3.
    Вложенные ветвления.
    4.
    Инструкция выбора switch.
    5.
    Фраза case.
    6.
    Зачем во фразе case применяется оператор break?
    7.
    6.1.
    Ветвление if; else
    Вычислить значения функции по варианту задания. Вывести значения исход- ных данных и полученные результаты, сопровождая их именами переменных.
    Значения аргумента взять из указанного диапазона так, чтобы протестировать все ветви программы. Проект – консольное приложение.

    43

    44
    Пример. Вычислить при y=1.3, x=[0.. 2.1] с шагом 0.3 значения функции a. Ре- зультат вывести в виде таблицы. Проект – консольное приложение.
    Блок-схема алгоритма представлена на рисунке. Для организации цикла вве- дены следующие переменные: xs - начальное значение, xk - конечное значе- ние dx - шаг изменения аргумента x.
    Листинг программы using
    System; namespace
    ConsoleConditional_If
    { class
    Program
    { static void
    Main()
    {
    // Переменные типа double double a = 0, x = 0, xs = 0, xk = 2.1, dx = 0.3, y = 1.3;
    Console
    .WriteLine(
    " Таблица a(x)"
    );
    // Заголовок for
    (x = xs; (x <= xk); x = x + dx)
    // Начало цикла
    { if
    (y * x < 1)
    // Первое ветвление a =
    Math
    .Exp(-y * x) *
    Math
    .Cos(y * x); else if
    (y * x == 1)
    // Вложенное ветвление a =
    Math
    .Cos(y * x + 1); else if
    (y * x > 1)
    // Вложенное ветвление a = y * x + 1;
    Console
    .WriteLine(
    "x = {0,3} a = {1}"
    ,x,a);
    }
    Console
    .WriteLine();
    Console
    .WriteLine(
    "Нажмите любую клавишу"
    );
    Console
    .ReadKey();
    // Пауза
    Консоль перед закрытием программы:

    45
    6.2.
    Выбор switch; case
    Вывести сообщения для подтверждения имени пользователя с использовани- ем инструкции выбора switch. Проект – консольное приложение.
    Пример. Вывести сообщения о номере пользователя с номерами от 1 до 3.
    Проект – консольное приложение. Пользователя просят ввести свой номер.
    Для каждого из известных пользователей выводится подтвердение его имени.
    Для пользователя с неизвестным номером сообщается, что он новичок.
    Листинг программы using System; namespace ConsoleConditionalSwitch
    { class Program
    { static void Main()
    { int user = 1;
    Console.Write("Ваш номер = "); user = Convert.ToInt32(Console.ReadLine()); switch (user)
    { case 1: Console.WriteLine("Здравствуйте Userl"); break; case 2: Console.WriteLine("Здравствуйте User2"); break; case 3: Console.WriteLine("Здравствуйте User3"); break; default: Console.WriteLine("Здравствуйте новичок"); break;

    46
    }
    Console.WriteLine("Нажмите любую клавишу");
    Console.ReadKey(); // Пауза
    }
    }
    }

    47
    1   2   3   4   5   6   7


    написать администратору сайта