Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

6020

.pdf
Скачиваний:
0
Добавлен:
21.11.2023
Размер:
698.82 Кб
Скачать

МИНОБРНАУКИ РОССИИ Федеральное государственное бюджетное образовательное учреждение высшего образования

«Нижегородский государственный архитектурно-строительный университет»

Д. И. Кислицын

ЯЗЫК ПРОГРАММИРОВАНИЯ С#

Учебно-методическое пособие

по выполнению лабораторных работ для обучающихся по дисциплине «Язык программирования С#»

по направлению подготовки 09.03.02 Информационные системы и технологии, направленность (профиль) «Информационные системы и технологии»

Нижний Новгород

2022

МИНОБРНАУКИ РОССИИ Федеральное государственное бюджетное образовательное учреждение высшего образования

«Нижегородский государственный архитектурно-строительный университет»

Д. И. Кислицын

ЯЗЫК ПРОГРАММИРОВАНИЯ С#

Учебно-методическое пособие

по выполнению лабораторных работ для обучающихся по дисциплине «Язык программирования С#»

по направлению подготовки 09.03.02 Информационные системы и технологии, направленность (профиль) «Информационные системы и технологии»

Нижний Новгород ННГАСУ

2022

1

УДК 681.3 (075)

Кислицын Д. И. Язык программирования C# : учебно-методическое пособие / Д. И. Кислицын; Нижегородский государственный архитектурно-строительный университет. – Нижний Новгород : ННГАСУ, 2022. - 29 с. - Текст : электронный.

Учебно-методическое пособие состоит из двух частей: консольные приложения и приложения Windows Form.

Приводятся цели, задания и порядок выполнения лабораторных работ, а также контрольные вопросы в конце каждой лабораторной работы.

Предназначено для обучающихся в ННГАСУ по дисциплине «Язык программирования С#» по направлению подготовки 09.03.02 Информационные системы и технологии.

Д. И. Кислицын, 2022ННГАСУ, 2022

2

3

ЧАСТЬ 1. КОНСОЛЬНЫЕ ПРИЛОЖЕНИЯ

Лабораторная работа № 1

Цель работы: знакомство со средой разработки MS Visual Studio и структурой консольного приложения на языке программирования C#.

Задание 1. Написать консольное приложение, запрашивающее пользователя его имя и после ввода имени выводящее в консоль фразу «Добрый день, <имя_пользователя>».

Задание 2. Написать консольное приложение, проверяющее существование треугольника по трём сторонам и его тип (реализация без отдельного класса). Алгоритм работы приложения:

2.1.Приложение запрашивает длины трёх сторон треугольника.

2.2.Приложение анализирует введённые данные и выводит одно из пяти сообщений: «Треугольник не существует», «Равносторонний треугольник», «Равнобедренный треугольник», «Прямоугольный треугольник», «Треугольник общего вида».

Контрольные вопросы

1.Как создать консольный проект на C# в MS Visual Studio?

2.Что такое пространство имён?

3.Каково назначение using?

4.Чем отличаются методы Write( ) и WriteLine( )?

5.Как ввести данные в консольном приложении?

6.Как преобразовать строку в число?

4

Лабораторная работа № 2

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

Задание 1. Написать консольное приложение (реализация без отдельного класса), выполняющее перевод из 10-ой системы счисления в 2-ую.

Задание 2. Написать консольное приложение (реализация без отдельного класса), решающее квадратное уравнение вида ax2+bx+c=0. Алгоритм работы приложения:

2.1.Запрос значений коэффициентов a, b, с.

2.2.Вывод в консоль уравнения «в числах».

2.3.Вычисление дискриминанта и вывод его значения в консоль.

2.4.Вычисление корней уравнения.

2.5.Вывод значений корней или сообщения «Действительных корней не имеет».

2.6.Выполнение проверки найденного решения, путём подстановки найденных корней в исходное уравнение, с выводом результата в консоль.

Контрольные вопросы

1.Опишите значимые типы данных в C#.

2.В чём отличие логических операторов & от && ?

3.Опишите инструкции выбора в C#.

4.Опишите итерационные инструкции в C#.

5.Опишите инструкции перехода в C#.

6.Опишите понятие рекурсии.

5

Лабораторная работа № 3

Цель работы: познакомиться со структурой класса, научиться создавать собственный класс, изучить работу с конструктором, полями и свойствами класса.

Задание 1. Написать класс (рис. 1) для проверки существования треугольника по трём сторонам и консольное приложение, демонстрирующее работу класса. Длины трёх сторон (a, b, c) проверяемого треугольника должны передаваться в конструктор. Конструктор, проанализировав длины сторон, должен записать в поле d значение true или false в зависимости от того, может существовать треугольник со сторонами a, b, c или нет. Класс имеет свойство i, которое в зависимости от значения поля d возвращает строку «Треугольник не существует» или определяет вид треугольника (равносторонний, равнобедренный, прямоугольный, общего вида). Все поля должны быть закрытыми, а свойство - открытым.

Задание 2. Написать класс (рис. 2) для решения квадратного уравнения вида ax2+bx+c=0 и консольное приложение, демонстрирующее работу класса.

Коэффициенты a, b, c при неизвестных должны передаваться в конструктор класса и храниться в закрытых полях a, b и c. Вычисление дискриминанта должно выполняться в отдельном закрытом методе D( ). Количество корней должно

6

храниться в открытом поле er, которое может принимать одно из следующих значений: 0 – действительных корней нет, 1 – один корень, 2 – два корня, 3 – уравнение неквадратное. Закрытое поле err должно содержать сообщение об ошибке («Неквадратное уравнение», «Действительных корней нет»). Открытые свойства x1, x2 возвращают значения корней уравнения или сообщение об ошибке. Если действительный корень только один, то x2 возвращает «второй корень не существует». Свойства доступны только для чтения. Класс должен предусматривать открытый метод Proverka ( ), возвращающий результаты подстановки найденных корней в исходное уравнение.

Контрольные вопросы

1.Как создать экземпляр класса?

2.Что такое конструктор и для чего он нужен?

3.Опишите назначение и порядок создания метода.

4.Опишите назначение и порядок создания свойства.

5.Опишите назначение и порядок создания поля.

6.Опишите спецификаторы доступа в C#.

7

Лабораторная работа № 4

Цель работы: научиться работать со строками.

Задание. Разработать консольное приложение, состоящее из класса Program

икласса (Stroka) для работы со строками, включающего публичный конструктор

итри метода. На вход в конструктор подаётся строка. В классе Stroka должны быть реализованы следующие методы:

1)метод, который возвращает сколько раз указанный символ (передаётся в метод) встречается в строке (например, в строке «Изучаем язык программирования С#» символ «а» встречается 3 раза);

2)строка делится на две подстроки, граница разделения передаётся в метод. Метод возвращает строку, состоящую из двух реверсированных подстрок (например, для строки «Изучаем язык программирования С#» с границей разделения, например, 10 метод должен вернуть строку «ызя меачузИ#С яинавориммаргорп к»);

3)метод, возвращающий количество гласных букв в строке (например, для строки «Изучаем язык программирования С#» метод должен вернуть число 13).

В классе Program создаётся экземпляр класса Stroka, куда передаётся исходная строка, введённая из консоли, и вызываются методы класса Stroka.

Контрольные вопросы

1.Опишите механизм доступа к отдельному символу строки.

2.Перечислите и опишите методы для доступа к отдельным символам строки.

3.Какие методы позволяют изменить регистр букв в строке?

8

Лабораторная работа № 5

Цель работы: научиться работать с массивами.

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

В этом классе должны быть реализованы следующие методы:

1)метод, возвращающий из исходной матрицы одномерный массивстолбец, номер которого передан в метод;

2)метод, возвращающий одномерный массив-столбец, являющийся результатом перемножения исходной матрицы на вектор, полученный в первом методе.

В классе Program создаётся экземпляр класса Massiv, куда передаётся,

массив, введённый из консоли или предопределённый в коде, и вызываются методы класса Massiv.

Контрольные вопросы

1.Как объявляется одномерный массив?

2.Чем двумерный массив отличается от массива массивов (ступенчатого массива)?

3.Перечислите способы инициализации массивов значениями.

4.Как создать массив объектов?

9

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]