Ссылка на скачивание и компоненты для устрановки описаны в лекции
Запустите Visual Stidio 2022 и выберите пункт Создание проекта
Установите фильтры и найдите шаблон проекта Консольное приложение (Макрософт)
Обратите внимание, не .NET Framework, а просто .NET
В Настройках нового проекта введите название и запомните/поменяйте, если нужно, расположение проекта
У вас будет один репозиторий на все лабораторные работы в рамках этого курса, поэтому номер лабораторной в названии не нужен. Переключаться между лабораторными работами мы будем с помощью веток GIT-а
На основном экране проекта у нас расположен код программы, который система сгенерировала для нас автоматически:
В Visual Studio можно открыть окно консоли (на скриншоте оно снизу-слева). Открыть можно через меню Вид - Консоль или комбинацией клавишь Ctrl+`
В каталоге проекта есть директории .vs
, bin
и obj
, которые содержат скомпилированную программу и настройки и, значит, сохранять эти каталоги в репозитории не нужно (добавить в .gitignore
).
Сначала создайте новый репозиторий и инициализируйте его в верхнем каталоге oap_labs (в котором находится файл *.sln
). В Visual Studio есть каталог решения и в нём одноименный каталог проекта (в одном решении может быть несколько проектов)
Затем создайте в корне репозитория файл .gitignore
, в который добавьте каталоги, которые не нужно сохранять в репозитории:
*/bin/
*/obj/
.vs
Знак "*" перед названиями каталогов bin
и obj
обозначает "любой каталог", т.е. этот фильтр будет работать не зависимо от названия вашего проекта.
После того, как мы сохраним файл, будет видно, что перечисленные каталоги больше не отслеживаются GIT-ом:
Создайте файл readme.md
(в корне "решения") с описанием проекта.
Сохраните текущее состояние проекта в репозитории
Теперь создайте ветку lab1 и переключитесь на неё:
git checkout -b lab4_1
Таким образом, у вас в главной ветке будет пустой шаблон приложения с описанием, а в ветках реализации для отдельных лабораторных.
Например, "вычислить периметр и площадь прямоугольного треугольника по длинам двух катетов" (размер катетов получить из консоли)
Мы ещё не проходили команды работы с консолью, поэтому приведу кусок кода с комментариями:
// команда Console.Write выводит текст в консоль
Console.Write("Input katet1: ");
// команда Console.ReadLine читает СТРОКУ из консоли
var katet1 = Console.ReadLine();
Console.Write("Input katet2: ");
var katet2 = Console.ReadLine();
// команда Math.Sqrt - квадратный корень
// Math.Pow - возведение в степень
// Convert.ToDouble - преобразует строку в число
var gipotenuza = Math.Sqrt(
Math.Pow(
Convert.ToDouble(katet1), 2) +
Math.Pow(
Convert.ToDouble(katet2), 2));
// выводим результат
// знак $ перед строкой указывает,
// что внутри строки в фигурных скобках названия переменных
Console.WriteLine(
$"Gipotenuza = {gipotenuza}");
// читаем строку, чтобы консольное окно сразу не закрылось
Console.Write("Press ENTER to continue...");
Console.ReadLine();
В некоторых заданиях требуется ввести числа в одной строке (например, "2 2"), но т.к. функция ReadLine возвращает строку, то такая строка будет не валидным числом.
Для разбиения строки на подстроки можно воспользоваться методом Split. Этот метод делит строку на массив строк, используя переданный символ как разделитель строк:
var numbers = Console.ReadLine();
// numbers = "2 2"
var numberList = numbers.Split(' ');
// numberList = ["2","2"]
var katet1 = Convert.ToInt32(numberList[0]);
var katet2 = Convert.ToInt32(numberList[1]);
Выполните задание, выданное преподавателем
Задания берите с сайта Школа программиста, из темы "Задачи для начинающих"
Чем больше решите, тем лучше, но желательно от 3 заданий (на "троечку")
Опубликуйте результаты в удаленном репозитории и скиньте ссылку преподавателю.
Задача: A+B
Требуется сложить два целых числа А и В.
Решение:
Console.Write( "Введите два целых числа через пробел: "); var inputString = Console.ReadLine(); var stringParts = inputString.Split(' '); Console.WriteLine( Convert.ToInt32(stringParts[0]) + Convert.ToInt32(stringParts[1]));
Результат работы:
Введите два целых числа через пробел: 2 3 5 Process finished with exit code 0.