Болтушкин Л.С., 712-2, отчет
.pdfМинистерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра комплексной информационной безопасности электронно-
вычислительных систем (КИБЭВС)
Разработка алгоритмов и программ на языке
программирования C#
ОТЧЕТ
ПО РЕЗУЛЬТАТАМ ДИСЦИПЛИНЫ Основы программирования
Обучающийся гр. 712-2
|
Л.С. Болтушкин |
(подпись) |
(И.О. Фамилия) |
(дата)
Руководитель практики от Университета:
Преподаватель каф. КИБЭВС
(должность, ученая степень, звание)
|
|
|
Б.С. Лодонова |
|
(подпись) |
(И.О. Фамилия) |
|
|
|
|
|
|
(дата) |
|
Томск 2023
|
Содержание |
Введение................................................................................................................... |
3 |
Лабораторная работа №1........................................................................................ |
4 |
Лабораторная работа №2........................................................................................ |
9 |
Лабораторная работа №3...................................................................................... |
16 |
Лабораторная работа №4...................................................................................... |
22 |
Лабораторная работа №5...................................................................................... |
26 |
Лабораторная работа №6...................................................................................... |
30 |
Лабораторная работа №7...................................................................................... |
37 |
Заключение ............................................................................................................ |
40 |
Список источников ............................................................................................... |
41 |
Приложение А ....................................................................................................... |
42 |
2
Введение
Цель работы: разработать алгоритмы для решения заданных задач и создать программную реализацию для них.
Задачи:
Изучить учебно-методическое пособие;
Выполнить лабораторные работы.
3
Ход работы
Лабораторная работа №1 Вариант 5
Задание 1.1. Для заданного натурального числа n и вещественного x
рассчитать сумму: tg(x)+tg^2(x)+tg^3(x)+...+tg^n(x)
Словесное описание алгоритма:
А1: Вывести сообщение "Введите n: ".
А2: Считать введенное пользователем значение и сохранить его в переменную n.
А3: Вывести сообщение "Введите x: ".
А4: Считать введенное пользователем значение и сохранить его в переменную x.
А5: Инициализировать переменную sum со значением 0.
А6: Вычислить тангенс x и сохранить результат в переменную tg.
А7: Запустить цикл счетчика i от 1 до n включительно.
А8: На каждой итерации цикла:
А8.1: Вычислить значение тангенс в степени i с помощью функции Math.Pow и
добавить его к переменной sum.
А8.2: Вывести сообщение "Сумма: " и значение переменной sum.
А8.3: Считать ввод пользователя, для того, чтобы консольное окно не закрылось сразу.
А9: Завершить программу.
Блок-схема алгоритма представлена на рисунке 1.1.
4
Рисунок 1.1 – Блок схема задания 1.1
Листинг кода задания 1.1:
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args) //args – массив аргументов
{
Console.Write("Введите n: ");
int n = int.Parse(Console.ReadLine()); //преобразование числа
Console.Write("Введите x: ");
double x = double.Parse(Console.ReadLine()); //double - числа, с запятой и буквой и также преобразование
double sum = 0;
double tg = Math.Tan(x); //считает тангенс
for (int i = 1; i <= n; i++)
{
sum += Math.Pow(tg, i); //.Pow - возвести в степень
}
Console.WriteLine("Сумма: " + sum);
Console.ReadLine();
}
}
}
5
Результат работы программы представлен ниже на рисунке 1.2.
Рисунок 1.2 – Результат работы программы задания 1.1
Задание 1.2. Разработать программу вычисляющие сумму чисел S = 1 + 5 + 9 + 13+ …, до тех пор, пока сумма не превышает 13527
Словесное описание алгоритма:
А1: Инициализировать переменную sum со значением 0, которая будет хранить сумму чисел.
А2: Инициализировать переменную num со значением 1, которая будет хранить текущее число.
А3: Запустить цикл, который будет выполняться до тех пор, пока сумма
(sum) не превышает или равна 13527.
А4: На каждой итерации цикла:
А4.1: Добавить текущее число (num) к сумме (sum).
А4.2: Увеличить значение текущего числа (num) на 4.
А4.3: Проверить, если сумма (sum) плюс следующее число (num) превышает или равна 13527, то выйти из цикла.
А5: Вывести сообщение "Сумма чисел S = " и значение переменной sum.
А6: Завершить программу.
6
Блок-схема алгоритма представлена на рисунке 1.3.
Рисунок 1.3 – Блок схема задания 1.2
Листинг кода задания 1.2:
using System;
namespace SumExample
{
class Program
{
static void Main(string[] args)
{
int sum = 0; // переменная хранения суммы
int num = 1; // переменная хранения очередного числа
while (sum <= 13527) // цикл для суммы 13527 (чтоб не превышало)
{
sum += num; // добавляем очередное число к сумме num += 4; // переход к каждому числу
if (sum + num >= 13527)
{
break;
}
}
Console.WriteLine("Сумма чисел S = " + sum);
}
}
}
7
Результат работы программы представлен ниже на рисунке 1.4.
Рисунок 1.4 – Результат работы программы задания 1.2
8
Лабораторная работа №2
Вариант 5
Задание 2.1. Дан массив из N элементов (вещественные числа). Вычислить: 1) максимальный элемент массива; 2) сумму элементов массива, расположенных до последнего положительного элемента. Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a, b]. Освободившиеся в конце массива элементы заполнить нулями.
Словесное описание алгоритма:
А1: Инициализировать массив arr с заданными значениями.
А2: Найти максимальный элемент в массиве:
А3: Инициализировать переменную max_elem со значением первого элемента массива arr[0].
А4: Запустить цикл счетчика i от 1 до длины массива arr.
А5: На каждой итерации цикла:
А5.1: Если текущий элемент arr[i] больше значения переменной max_elem,
присвоить max_elem значение arr[i].
А5.2: Вывести сообщение "Максимальный элемент в массиве: " и значение переменной max_elem.
А5.3: Найти сумму элементов массива, расположенных до последнего положительного элемента:
А6: Инициализировать переменную sum_before_last_positive со значением 0.
А7: Инициализировать переменную last_positive_index со значением -1.
А8: Запустить цикл счетчика i от 0 до длины массива arr.
А9: На каждой итерации цикла:
А9.1: Если текущий элемент arr[i] больше 0, присвоить last_positive_index
значение i.
А9.2: Если last_positive_index равно -1, перейти к следующей итерации цикла.
А9.3: Если i меньше last_positive_index, добавить текущий элемент arr[i] к
9
переменной sum_before_last_positive.
А9.4: Вывести сообщение "Сумма элементов до последнего положительного элемента: " и значение переменной sum_before_last_positive.
А9.5: Удалить элементы массива, находящиеся в интервале [a, b], освободить конечные ячейки и заполнить их нулями:
А10: Инициализировать переменную a со значением левой границы интервала.
А11: Инициализировать переменную b со значением правой границы интервала.
А12: Инициализировать переменную shift со значением 0.
А13: Запустить цикл счетчика i от 0 до длины массива arr.
А14: На каждой итерации цикла:
А14.1: Если абсолютное значение текущего элемента arr[i] находится в интервале [a, b], увеличить shift на 1.
А15: В противном случае:
А15.1: Если shift больше 0, переместить текущий элемент arr[i] на позицию i - shift.
А16: Запустить цикл счетчика i от длины массива arr минус shift до длины массива arr.
А17: Заполнить элементы массива arr[i] нулями.
А18: Вывести сообщение "Измененный массив:".
А19: Запустить цикл счетчика i от 0 до длины массива arr.
А20: Вывести каждый элемент массива arr[i].
А21: Завершить программу.
Блок-схема алгоритма представлена на рисунке 2.1.
10