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

Отчет основы программирования

.pdf
Скачиваний:
1
Добавлен:
29.06.2024
Размер:
1.83 Mб
Скачать

Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Кафедра комплексной информационной безопасности электронновычислительных систем (КИБЭВС)

РАЗРАБОТКА АЛГОРИТМОВ И ПРОГРАММ НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ С#

ОТЧЁТ ПО РЕЗУЛЬТАТАМ

лабораторных работ по дисциплине «Основы программирования»

Выполнила Студентка гр. 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