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

ЛАБ 3 - Функции, палиндром - СФ

.pdf
Скачиваний:
1
Добавлен:
06.11.2022
Размер:
384.5 Кб
Скачать

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

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

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

Функции

Лабораторная работа №3 по дисциплине «Основы программирования» Отчет по лабораторной работе

Студент гр. хххх

________ хххх

23.02.2022

Руководитель: Преподаватель КИБЭВС

_________ ________ хххх. 23.02.2022

Томск 2022

2

Содержание Введение……………………………………………………………………………………. 3 Теоретические сведения…………………………………………………………………… 4 Ход работы для задания №1………………………………………………………………. 5 Ход работы для задания №2………………………………………………………………. 7

Заключение………………………………………………………………………………… 9 Список использованной литературы……………………………………………………. 10

3

1 Введение

Целью данной лабораторной работы является Задание на работу заключается в том, чтобы овладеть навыками использования

функций в программировании и рекурсивным подходом решения задач, понять отличия рекурсивного и итеративного подхода решения задачи.

Задание 1: Написать функцию, которая вычисляет сопротивление последовательной цепи, состоящей из трех проводников. Параметрами ее являются значения сопротивлений.

Проверить ее в работе, написав программу с ее использованием Задание 2: Дано слово, состоящее только из строчных латинских букв. Проверьте,

является ли это слово палиндромом. При решении этой задачи нельзя пользоваться циклами!

4

2 Теоретические сведения

Функция – это поименованная часть программы, которая может вызываться из других частей программы столько раз, сколько необходимо, обязательно возвращает значение;

Рекурсия в программировании – вызов функции из неё же самой, непосредственно

(простая рекурсия) или через другие функции (сложная рекурсия);

Строковый тип – тип данных, значениями которого является произвольная последовательность символов алфавита.

5

3 Ход работы для задания №1

Данный алгоритм сначала создает массив, состоящий из 3 элементов, затем создает функцию, которая вычисляет сопротивление последовательной цепи, состоящей из трех проводников. Затем просит пользователя ввести значение сопротивления проводников по порядку. Затем вызывает функцию и выводит общее сопротивление проводников.

На рисунке 3.1 изображена блок-схема, а на рисунке 3.2 показаны выводы программы.

Рисунок 3.1 - Блок-схема алгоритма 1

Ниже представлен сам код программы:

using System; namespace ConsoleApp3

{

class Program

{

static double sum(double R1, double R2, double R3)

{

return R1 + R2 + R3;

}

static void Main(string[] args)

{

double[] res = new double[3]; for (int i = 0; i < 3; i++)

{

Console.Write($"Введите сопротивление {i+1} "); res[i] = double.Parse(Console.ReadLine());

}

double R0 = sum(res[0], res[1], res[2]); Console.Write("Общее сопротивление равно " + R0);

}

}

}

6

Рисунок 3.2 - Работа программы 1

Данная программа работает корректно, без каких-либо проблем.

7

4 Ход работы для задания №2

Данная программа просит пользователя ввести слово, затем присваивает значения переменным и создает рекурсивную функцию, в которой сначала сравнивается счетчик букв с длиной строки, затем, если условие выполнено, то уже сравниваются буквы строки, если они равны, то переменные увеличиваются на одну, вызывается функция и возвращается значение.

Если буквы не равны, то выводится «Слово не палиндром» и возвращает счетчик букв. А если счетчик букв больше или равен длине строки и все буквы равны, то выводится «Слово палиндром» и возвращается счетчик букв.

На рисунке 4.1 изображена блок-схема, а на рисунках 4.2 и 4.3 показаны выводы программы.

Рисунок 4.1 - Блок-схема алгоритма 2

Ниже представлен сам код программы:

using System; namespace resursia

{

class Program

{

static int palindrom(string str, int sl, int el, int cl)

{

if (cl < str.Length)

{

if (str[sl] == str[el])

{

cl++; el--; sl++; palindrom(str, sl, el, cl); return cl;

}

8

else Console.WriteLine("Слово не палиндром"); return cl;

}

else

Console.WriteLine("Слово палиндром"); return cl; ;

}

static void Main(string[] args)

{

Console.Write("Введите слово "); string str = Console.ReadLine(); int sl = 0;

int el = str.Length - 1; int cl = 0;

palindrom(str, sl, el, cl);

}

}

}

Рисунок 4.2 - Работа программы 2

Рисунок 4.3 - Работа программы 2(противоположный результат)

Данная программа работает корректно, без каких-либо проблем.

9

5Заключение

Входе данной лабораторной были получены навыки использования функций в программировании и рекурсивным подходом решения задач, понять отличия рекурсивного и итеративного подхода решения задачи.

10

Список использованной литературы

1. ГОСТ 19.701-90 (ИСО 5807-85) Единая система программной документации (ЕСПД).

Схемы алгоритмов, программ, данных и систем. Обозначения условные и правила выполнения.

2.Документация по C#. [Электронный ресурс]. – Режим доступа: https://docs.microsoft.com/ru-ru/dotnet/csharp (дата обращения: 15.02.2020)

3.Кнут Д.Э. Искусство программирования. – Т. 1: Основные алгоритмы. – 3-е изд.; пер. с

англ. – М.: ИД «Вильямс», 2016. – 720 с.

4.Харченко С.С. Основы программирования: учебно-методическое пособие. – Томск: В-

Спектр, 2020. – XX с.