
ОП_отчет.odt_1
.pdfМинистерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение
высшего образования «ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ
УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР) Кафедра безопасности информационных систем (БИС)
Отчет по лабораторным работам по дисциплине «Основы программирования»
Студент группы 733-1
________ Сметанников Д.Е __.__.2024
Принял Доцент каф. БИС, канд. техн. н.
__________ _______ С. С. Харченко __.__.2024
Томск 2024
|
Оглавление |
Введение ............................................................................................................... |
3 |
1 ХОД РАБОТЫ................................................................................................... |
4 |
1.1 Лабораторная работа №1 ............................................................................... |
4 |
1.2 Лабораторная работа №2 ............................................................................... |
9 |
1.3 Лабораторная работа №3 ............................................................................. |
16 |
1.4 Лабораторная работа №4 ............................................................................. |
24 |
1.5 Лабораторная работа №5 ............................................................................. |
30 |
1.6 Лабораторная работа№6 .............................................................................. |
32 |
1.7 Лабораторная работа №7 ............................................................................. |
45 |
Заключение ......................................................................................................... |
50 |
2
Введение
Целью лабораторных работ является получение навыков разработки алгоритмов решения практических задач, их реализация на языке программирования C Sharp, с использованием редактора исходного кода Visual Studio Code. Для достижения поставленной цели необходимо выполнить следующие задачи
—составить алгоритмы для решения практических задач по заданному варианту;
—написать программы на языке программирования C Sharp.
3
1 ХОД РАБОТЫ
1.1 Лабораторная работа №1. Циклические программы
Задание 1.1: Для заданного натурального числа n и вещественного x рассчитать сумму: tan^1(x) + tan^2(x) + ... + tan^n(x).
Словесное описание: А0)Начало
А1)Вывод "Введите натуральное число n:" А2)Ввод натурального числа
А3)Пока не преобразование строки в число или n <=0, выполнить А5, иначе А4.
А4)Вывод "Ошибка! Введите корректное натуральное число n:". Возвращение А3.
А5)Вывод "Введите вещественное число x:" А6)Ввод вещественного числа
А7)Пока не преобразование строки в число, выполнить А9, иначе А8. А8)Вывод "Ошибка! Введите корректное вещественное число x:".
Возвращение А6. А9)sum = 0.
А10)Для i от 1 до n с шагом 1, выполнить А11, иначе А12. А11)Счет суммы тангенсов. Возвращение А10. А12)Вывод суммы тангенсов.
А13)Конец.
Согласно условию задачи, графический способ записи алгоритма можно наблюдать на Рисунке 1.1
4

Рисунок 1.1 — Блок-схема алгоритма 1.1
5

Ниже представлен исходный код данной программы на языке программирования С sharp.
Console.WriteLine("Введите натуральное число n:"); int n;
while (!int.TryParse(Console.ReadLine(), out n) && n <= 0)
{
Console.WriteLine("Ошибка! Введите корректное натуральное число
n:");
}
Console.WriteLine("Введите вещественное число x:"); double x;
while (!double.TryParse(Console.ReadLine(), out x))
{
Console.WriteLine("Ошибка! Введите корректное вещественное число
x:");
}
double sum = 0;
for (int i = 1; i <= n; i++)
{
sum += Math.Pow(Math.Tan(x), i);
}
Console.WriteLine($"Сумма выражения tan^1(x) + tan^2(x) + ... + tan^{n}
(x) равна: {sum}");
Результат работы программы представлен на рисунке 1.2.
Рисунок 1.2 – Результат работы программы
6
Задание 1.2: Разработать программу вычисляющие произведение чисел = 1 3 5 7 . .., до тех пор, пока сумма не превышает 35725914.
Словесное описание: А0)Начало
А1)multiply = 1; sum = 0; number = 1;
А2)Пока sum <= 35725914, выполнить А3, иначе А4.
А3)multiply *= number; sum += number; number += 2; Возвращаем А2. А4)Вывод произведения.
А5)Вывод суммы. А6)Конец.
Графический способ задания данного алгоритма в виде блок-схемы представлен на рисунке 1.3.
7

Рисунок 1.3 – Блок-схема алгоритма 1.2 Ниже представлен исходный код данной программы на языке
программирования С sharp: int multiply = 1;
int sum = 0; int number = 1;
while (sum <= 35725914)
{
multiply *= number;
8

sum += number; number += 2;
}
Console.WriteLine($"Произведение: {multiply}"); Console.WriteLine($"Сумма: {sum}");
Результат работы программы представлен на рисунке 1.4. .
Рисунок 1.4 – Результат работы программы 1.2
1.2 Лабораторная работа №2. Массивы
Задание 2.1: Дан массив из N элементов (вещественные числа). Вычислить: 1) номер максимального элемента массива; 2) произведение элементов массива, расположенных между первым и вторым нулевыми элементами. Преобразовать массив так, чтобы сначала располагались все элементы, стоящие в нечетных позициях, а потом – элементы, стоящие в четных позициях.
Словесное описание: А0)Начало А1)Создаем массив 5 на 5.
А2)maxElement = array[0] А3)maxIndex = 0
А4)Для i от 1 до array.Length с шагом 1, выполнить А5. Далее А7. А5)Если array[i] > maxElement, то выполнить А6, иначе возвращение
А4.
А6)maxElement = array[i]; maxIndex = i; Возвращение А4. А7)Вывод максимального элемента массива А8)Конец
Б1)firstIndex = -1; secondIndex = -1;
Б2)Для i от 0 до array.Length с шагом 1, выполнить Б3.
9
Б3)Если array[i] == 0, то Б4, иначе возвращение Б2. Б4)Если firstIndex == -1, то Б5, иначе Б6. Б5)firstIndex = i;
Б6)secondIndex = i; break; Б7)double product = 1;
Б8)Если firstIndex не равно -1 или secondIndex не равно -1, то Б9, иначе
Б11.
Б9)Для i от firstIndex + 1 до secondIndex с шагом 1, выполнить Б10, далее Б10.
Б10)product *= array[i];
Б11)Вывод произведения элементов между первым и вторым нулевыми элементами массива.
Б12)Конец
В0)Начало
В1)rearrangedArray = new double[array.Length]; В2)oddIndex = 0; evenIndex = 1;
В3)Для каждого элемента массива, выполнить В4, далее В7. В4)Если oddIndex < array.Length, то В5, иначе В6. В5)rearrangedArray[oddIndex] = element; oddIndex += 2; В6)rearrangedArray[evenIndex] = element; evenIndex += 2; В7)Вывод "Преобразованный массив:".
В8)Для каждого элемента пересобранного массива, выполнить В9. В9)Вывод элемента массива.
В10)Конец Графический способ задания данного алгоритма в виде блок-схемы
представлен на рисунке 1.5.
10