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

Лаб 5 - Работа с файлами - СФ

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

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

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

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

Текстовые файлы

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

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

________ ххххх. 8.03.2022

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

_________ ________ ххххх. 8.03.2022

Томск 2022

2

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

Заключение………………………………………………………………………………… 9

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

3

1 Введение

Цель данной лабораторной работы является овладеть навыками работы с текстовыми файлами.

Задание 1: Сначала сформировать текстовый файл, записав в него 20 случайных чисел от –100 до 100, по одному на строке, а затем записать выходной файл, разделив каждое число на минимум и добавив максимум.

Задание 2: Сначала сгенерировать текст воспользовавшись сервисом расположенным по адресу https://service.webboss.pro/text-generator, сохранить сгенерированный текст в текстовый файл, а затем посчитать количество строк в файле.

4

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

Текстовый файл — компьютерный файл, содержащий текстовые данные, как правило,

организованные в виде строк.

Члены классов StreamReader и StreamWriter предоставляют читающий или пишущий объект для созданного потока в файл.

5

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

Данный алгоритм сначала заполняет файл “Lab5.1” и заполняет его массивом из 20

случайных символов и ищет максимум и минимум. А затем каждый элемент массива делит на минимум и прибавляет максимум.

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

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

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

using System; using System.IO;

namespace ConsoleApp5

{

class Program

{

static void Main(string[] args)

{

double[] arr = new double[20]; double maxr = -100;

double minr = 100;

StreamWriter sw = new StreamWriter("Lab5.1.txt"); Console.WriteLine("=============================================="); Console.WriteLine("Первый прогон:");

for (int i = 0; i < 20; i++)

{

Random random = new Random(); arr[i] = random.Next(-100, 100);

if (arr[i] > maxr) { maxr = arr[i]; } if (arr[i] < minr) { minr = arr[i]; }

Console.WriteLine($"{i + 1}: {arr[i]}"); sw.WriteLine(arr[i]);

}

Console.WriteLine($"MAX: {maxr}, MIN: {minr}"); sw.Close();

StreamWriter sw1 = new StreamWriter("Lab5.1.txt"); Console.WriteLine("==============================================");

6

Console.WriteLine("Второй прогон: "); for (int i = 0; i < 20; i++)

{

Console.WriteLine($"{i+1}: {(arr[i]/minr)+maxr}"); sw1.WriteLine(arr[i] / minr + maxr);

}

sw1.Close();

}

}

}

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

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

7

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

Данная программа сначала открывает файл «Lab5.2», а затем считает количество строк,

путем приравнения line к строке и переводом на следующую строку, и увеличением i на единицу. Если line равна null, т.е. дефолтному значению переменной строкового типа.

Текст данного файла:

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

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

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

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

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

using System; using System.IO;

class Program

{

static void Main(string[] args)

{

using (StreamReader sr = new StreamReader("Lab5.2.txt"))

{

String line; int i = 0;

8

while ((line = sr.ReadLine()) != null)

{

i++;

Console.WriteLine(line);

}

Console.WriteLine("Количество строк: " + i.ToString());

}

}

}

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

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

9

5Заключение

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

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

Во второй задаче требуется сначала заполнить файл случайно сгенерированным текстом и посчитать сколько строк в тексте. Для этого программа создает строковую переменную line, присваивает ей строку текста, если она не равна null, то i увеличивается на один. Если же line равна null, то на консоль выводится i.

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 с.

5. Сайт генерирования случайных текстов - https://service.webboss.pro/text-generator.