Отчет основы программирования
.pdfМинистерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра комплексной информационной безопасности электронновычислительных систем (КИБЭВС)
РАЗРАБОТКА АЛГОРИТМОВ И ПРОГРАММ НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ С#
ОТЧЁТ ПО РЕЗУЛЬТАТАМ
лабораторных работ по дисциплине «Основы программирования»
Выполнила Студентка гр. 713-2
____________ Бахтина А. М.
____________
Приняла
Преподавательница
___________ Зазуля А. С.
___________
Томск 2024
|
Оглавление |
|
Введение................................................................................................................... |
3 |
|
1 ХОД РАБОТЫ...................................................................................................... |
4 |
|
1.1 |
Лабораторная работа №1. Циклические программы..................................... |
4 |
1.2 |
Лабораторная работа №2. Массивы............................................................... |
10 |
1.3 |
Лабораторная работа №3. Функции............................................................... |
19 |
1.4 |
Лабораторная работа №4. Обработка текста................................................ |
24 |
1.5 |
Лабораторная работа №5. Структуры........................................................... |
34 |
1.6 |
Лабораторная работа №6. Коллекции........................................................... |
39 |
1.7 |
Лабораторная работа №7. Текстовые файлы................................................ |
47 |
Заключение............................................................................................................. |
56 |
|
Список использованных источников................................................................... |
57 |
2
Введение
Целью данных лабораторных работ является получение навыков разработки алгоритмов с циклами, с параметром и условием, с массивами, навыков использования функций и рекурсий, навыков обработки текстов, навыков работы с текстовыми файлами, со структурами, с коллекциями, и как результат, создание программ на языке C# с использованием комплексной среды разработки Microsoft Visual Studio 2022.
Для достижения поставленной цели необходимо выполнить следующие задачи:
овладеть навыками разработки алгоритмов с циклами с параметром и с условием, разработки циклических программ на языке высокого уровня;
овладеть навыками работы с простыми структурами данных на примере массивов;
овладеть навыками использования функций в программировании и рекурсивным подходом решения задач, понять отличия рекурсивного и итеративного подхода решения задачи;
овладеть навыками обработки текстов при помощи строкового, символьного типов, регулярных выражений и закрепить навыки работы циклами и массивами;
овладеть навыками работы с текстовыми файлами;
– овладеть навыками работы со структурами и коллекциями.
3
1 ХОД РАБОТЫ
Для каждой лабораторной работы будут написаны задания, описаны разработанные алгоритмы, представлены блок-схемы (если задание лабораторной работы предполагало ее создание), листинг программного кода и скриншот результата работы консольного приложения.
Все лабораторные работы, кроме №6, выполняются по варианту №3. Лабораторная работа №6 выполняется по варианту №1. Варианты заданий берутся из учебно-методического пособия по лабораторным работам [1].
1.1 Лабораторная работа №1. Циклические программы.
Задание 1: составить консольное приложение для решения следующей задачи: для заданного натурального числа n и вещественного x рассчитать сумму: cos x + cos x2 + cos x3 + … + cos xn, вводя данные в ходе выполнения программы и используя цикл с параметром.
Словесный способ описания алгоритма:
А.1 Начало;
А.2 Ввод X, N;
А.3 Для i от 1 до N с шагом 1 повторять А.4, после А.5;
А.4 Answer ← Answer + (cos(X))^i;
А.5 Вывод Answer;
А.6 Остановка;
Графический способ описания алгоритма представлен на рисунке 1.1.
4
Рисунок 1.1 – Блок-схема к заданию 1.1
Листинг кода:
try
{
Console.WriteLine("Введите значение Х:");
double XValue = double.Parse(Console.ReadLine());
Console.WriteLine("Введите значение N:"); int NValue = int.Parse(Console.ReadLine());
double Answer = 0; if (NValue != 0)
{
for (double i = 1; i <= NValue; i++)
5
{
double Pow = Math.Pow(Math.Cos(XValue), i); Answer += Pow;
}
}
else
{
Console.WriteLine("Что-то пошло не так :(");
}
Console.WriteLine($"Результат: {Answer}");
}
catch (Exception)
{
Console.WriteLine("Что-то пошло не так :(");
}
Результат работы программы представлен на рисунке 1.3.
Рисунок 1.2 – Отладка программы
6
Рисунок 1.3 – Конечный результат
Рисунок 1.4 – Проверка на валидность
Задание 2: составить консольное приложение для решения следующей задачи: найти наибольший общий делитель (НОД) двух натуральных чисел A и B, вводя данные в ходе выполнения программы и используя цикл с предусловием или цикл с постусловием.
Словесный способ описания алгоритма:
B.1 Начало;
В.2 Ввод А, В;
В.3 Пока А != 0 и В != 0 повторять В.4, после В.7;
В.4 Если А > В, то В.5, иначе В.6;
В.5 А ← А % В;
В.6 В ← В % А;
В.7 Вывод А + В;
В.8 Остановка;
7
Графический способ описания алгоритма представлен на рисунке 1.5.
Рисунок 1.5 – Блок-схема к заданию 1.2
Листинг кода:
Console.WriteLine("Введите число А:"); string string_A = Console.ReadLine();
if (int.TryParse(string_A, out int A) && string_A != "0")
{
Console.WriteLine("Введите число B:"); string string_B = Console.ReadLine();
if (int.TryParse(string_B, out int B) && string_B != "0")
{
while (A != 0 && B != 0)
{
8
if (A > B) A %= B;
else
B %= A;
Console.WriteLine($"НОД({string_A},{string_B}) = {A+B}");
}
}
else
{
Console.WriteLine("Введенное значение В не является натуральным числом");
}
}
else
{
Console.WriteLine("Введенное значение А не является натуральным числом");
}
Результат работы программы представлен на рисунке 1.7.
Рисунок 1.6 – Отладка программы
9
Рисунок 1.7 – Конечный результат
Рисунок 1.8 – Проверка на валидность
1.2 Лабораторная работа №2. Массивы.
Задание 1: составить консольное приложение для решения следующей задачи: дан массив из N элементов (целые числа). Вычислить: 1) произведение элементов массива с четными номерами; 2) сумму элементов массива, расположенных между первым и последним нулевыми элементами. Преобразовать массив так, чтобы сначала располагались все положительные элементы, а потом – все отрицательные (элементы, равные 0, считать положительными), вводя данные в ходе выполнения программы.
Словесный способ описания алгоритма:
С.1 Начало;
С.2 Ввод массива array из N элементов;
С.3 Для i от 0 до длины array с шагом 1 повторять С.4, после С.6;
С.4 Если i % 2 = 0, то С.5;
10