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

Болтушкин Л.С., 712-2, отчет

.pdf
Скачиваний:
0
Добавлен:
27.05.2024
Размер:
1.13 Mб
Скачать

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

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

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

Кафедра комплексной информационной безопасности электронно-

вычислительных систем (КИБЭВС)

Разработка алгоритмов и программ на языке

программирования 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

Соседние файлы в предмете Основы программирования