Лаб 5 - Работа с файлами - СФ
.pdfМинистерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕЕНЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра комплексной информационной безопасности электронно-вычислительных систем (КИБЭВС)
Текстовые файлы
Лабораторная работа №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.