Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №1!! Шильников Д..doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
226.3 Кб
Скачать

Определение процента заполнения дисковой памяти:

Чтобы определить полный объем дисковой памяти необходимо сложить объем свободного места и объем занятого места на диске:

Занято: 45 368 201 216 байт

Свободно: 19 644 379 136 байт

Полный объем дисковой памяти: 45 368 201 216 + 19 644 379 136 = 65 012 580 352 Байт.

Чтобы определить процент заполнения дисковой памяти, необходимо разделить объем свободного места на диске на полный объем дисковой памяти и полученное частное умножить на 100%.

Процент свободного места: (19 644 379 136 / 65 012 580 352) × 100% =

    1. 100% = 30.2%

  1. Определить характеристики полного имени подготовленных файлов: (полное имя, его длина, длина пути, резерв длины пути (максимальная длина пути: 240 символов), резерв длины имени файла).

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

Определим характеристики полного имени подготовленных файлов:

Первый текстовый файл:

Полное имя: fl_1110_Shilnikov_D.txt

Длина имени: 23 символа

Путь файла: sys:\work\4209\Shilnikov_Daniil\

Длина пути файла: 55 символов

Резерв длины пути: 240 – 32 = 208 символов

Второй текстовый файл:

Полное имя: f2_1310_Shilnikov_D.txt

Длина имени: 23 символа

Путь файла: sys:\work\4209\Shilnikov_Daniil\

Длина пути файла: 55 символов

Резерв длины пути: 240 – 32 = 208 символов

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

Полное имя: f3_1510_Shilnikov_D.txt

Длина имени: 23 символа

Путь файла: sys:\work\4209\Shilnikov_ Daniil \

Длина пути файла: 55 символов

Резерв длины пути: 240 – 32 = 208 символов

Четвертый текстовый файл:

Полное имя: f4_1710_Shilnikov_D.txt

Длина имени: 23 символа

Путь файла: sys:\work\4209\Shilnikov_ Daniil \

Длина пути файла: 55 символов

Резерв длины пути: 240 – 32 = 208 символов

Пятый текстовый файл:

Полное имя: f5_1910_Shilnikov_D.txt

Длина имени: 23 символа

Путь файла: sys:\work\4209\Shilnikov_ Daniil \

Длина пути файла: 55 символов

Резерв длины пути: 240 – 32 = 208 символов

Шестой текстовый файл:

Полное имя: f6_2110_Shilnikov_D.txt

Длина имени: 23 символа

Путь файла: sys:\work\4209\Shilnikov_Daniil\

Длина пути файла: 55 символов

Резерв длины пути: 240 – 32 = 208 символов

Седьмой текстовый файл:

Полное имя: f7_2310_Shilnikov_D.txt

Длина имени: 23 символа

Путь файла: sys:\work\4209\Shilnikov_ Daniil \

Длина пути файла: 55 символов

Резерв длины пути: 240 – 32 = 208 символов

  1. Определить временные характеристики файлов, полученные при их создании (самостоятельно спроектировать таблицу для размещения результатов и разместить в ней результаты экспериментов).

    1. Время создания файла, среднее время добавления записи и создания кластера.

    2. Построить графики изменения среднего времени добавления записи, и кластера от объема файла в записях и кластерах (использовать табличный процессор Excel).

5.1 Для того чтобы определить время создания файла, необходимо дополнить текст нашей программы функциями подсчета времени, которые будут располагаться до и после цикла записи строк в файл. Разность этих значений функций и будет значением времени создания файла. Само это значение будет записываться в отдельный файл <show.txt>.

Текст программы:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

namespace Consol

{

class Program

{

static void Main(string[] args)

{

FileInfo foutshow = new FileInfo("show.txt");

DateTime nowсn = new DateTime();

double tb = 0;

double te = 0;

int i;

string str;

FileStream f1;

const int n = 71040;

f1 = new FileStream("Fl_1110_Shilnikov_D.txt", FileMode.Create);

f1.Close();

f1 = new FileStream("Fl_1120_Shilnikov_D.txt", FileMode.Open, FileAccess.Write);

StreamWriter fstr = new StreamWriter(f1);

str = "llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll";

Console.Write("Nagmite Enter");

Console.ReadLine();

nowсn = DateTime.Now;

tb = nowсn.Hour * 3600 + nowсn.Minute * 60 + nowсn.MilliSecond;

for (i = 0; i < n; i++)

{ fstr.WriteLine(str); }

nowсn = DateTime.Now;

te = nowсn.Hour * 3600 + nowсn.Minute * 60 + nowсn.MilliSecond;

fstr.Close();

StreamWriter f = foutshow.CreateText();

f.WriteLine

(string.Format("\"{0:000}\";\"{1:000}\";\"{2:0000}\"", tb, te, te - tb));

f.Close();

}

}

}

Проделаем данную операцию со всеми семи программами.

Среднее время добавления записи можно найти по формуле: t=T/c, где t – это среднее время добавления, T – это время создания файла, с – это количество записей в файле.

Проведем вычисления для всех файлов:

Для 1-го файла: 47 / 71040=0.00065 с;

Для 2-го файла: 62 / 83840=0.00073 с;

Для 3-го файла: 70 / 96640=0.00072 c;

Для 4-го файла: 78 / 109440=0.0007 c;

Для 5-го файла: 93 / 122240=0.00075 c;

Для 6-го файла: 94 / 135040=0.00069 c;

Для 7-го файла: 110 / 147840=0.00074 c.

Среднее время создания кластера можно найти по формуле: V=T/k, где V – это среднее время добавления записи, T – это время создания файла, k – это количество занимаемых кластеров файлом.

Проведем вычисления для всех файлов:

Для 1-го файла: 47 / 1110=0.0419 с;

Для 2-го файла: 62 / 1310=0.0469 с;

Для 3-го файла: 70 / 1510=0.0460 c;

Для 4-го файла: 78 / 1710=0.0453 c;

Для 5-го файла: 93 / 1910=0.0484 c;

Для 6-го файла: 94 / 2110=0.0443 c;

Для 7-го файла: 110 / 2310=0.047 c.

Занесем все данные в таблицу 4:

Таблица №4. временные характеристики файлов

Имя файла

Время создания файла

Среднее время добавления записи

Среднее время создания кластера

Fl_1110_Shilnikov_D.txt

47

0.00065 с

0.0419 с

F2_1310_Shilnikov_D.txt

62

0.00073 с

0.0469 с

F3_1510_Shilnikov_D.txt

70

0.00072 с

0.0460 с

F4_1710_Shilnikov_D.txt

78

0.0007 с

0.0453 c

F5_1910_Shilnikov_D.txt

93

0.00075 с

0.0484 с

F6_2110_Shilnikov_D.txt

94

0.00069 с

0.0443 с

F7_2310_Shilnikov_D.txt

110

0.00074 с

0.047 c

5.2. Чтобы построить график изменения среднего времени добавления записи, от объема файла в записях, необходимо скопировать значения среднего времени добавления записи и значения количества записей в рабочее поле табличного процессора Excel и по этим значениям построить график. Выполнив данные действия, получим график, изображенный на Рис.1:

Рис. 1. График изменения среднего времени добавления

записи от объема файла в записях.

Чтобы построить график изменения среднего времени добавления кластера от объема файла в кластерах, необходимо скопировать значения среднего времени добавления кластера и значения количества кластеров в рабочее поле табличного процессора Excel и по этим значениям построить график. Выполнив данные действия, получим график, изображенный на рис.2:

Рис. 2. График изменения среднего времени добавления

кластера от объема файла в кластерах.

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

    1. Последовательное чтение записей файла.

    2. Определение количества записей в файле.

    3. Определение объем полезной информации в файле.

    4. Определение длины каждой записи файла.

    5. Определение смещения каждой записи в файле.

    6. Определение времени чтения файла, включая время открытия и закрытия файлов.

    7. Результаты экспериментов отобразить в таблице и на графиках (самостоятельно спроектировать таблицу для размещения результатов и разместить в ней результаты экспериментов).

    8. Сделать выводы о видах временных зависимостей.

Используя навыки программирования, напишем и отладим программу на языке С#, выполняющую следующие функции для файла:

  1. Последовательное чтение записей файла.

  2. Определение количества записей в файле.

  3. Определение объем полезной информации в файле.

  4. Определение длины каждой записи файла.

  5. Определение смещения каждой записи в файле.

  6. Определение времени чтения файла, включая время открытия и закрытия файлов.

Текст программы:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

namespace Информатика

{

class Program

{

static void Main(string[] args)

{

int i, k = 0;

int tb = 0;

int te = 0;

string s = null;

int q = 0;

int L = 0;

int l = 0;

int a = 0;

FileStream f1;

FileInfo fout = new FileInfo("Результат.txt");

StreamWriter fo = fout.CreateText();

DateTime nowсn = new DateTime();

nowсn = DateTime.Now;

tb = nowсn.Hour * 3600 + nowсn.Minute * 60 + nowсn.Second;

f1 = new FileStream("Fl_1110_Shilnikov_D.txt", FileMode.Open);

do

{

i = f1.ReadByte();

if (i != -1)

k++;

}

while (i != -1);

f1.Close();

// Console.ReadLine();

StreamReader fi = new StreamReader("Fl_1110_Shilnikov_D.txt", Encoding.GetEncoding(1251));

while ((s = fi.ReadLine()) != null)

{

l = s.Length;

L = L + l + 2;

q++;

fo.WriteLine(string.Format("\"{0:000}\";\"{1:0000}\"", a, l));

fo.WriteLine(string.Format("\"{0}", s));

a = L;

}

fo.WriteLine(string.Format("Количество записей: {0}", q));

fo.WriteLine(string.Format("Объем полезной информации: {0}", k - (q * 2)));

fi.Close();

nowсn = DateTime.Now;

te = nowсn.Hour * 3600 + nowсn.Minute * 60 + nowсn.Second;

fo.WriteLine

(string.Format("\"Время открытия:{0:00000}\";\"Время закрытиия:{1:00000}\";\"Время чтения файла:{2:000000}\"", tb, te, te - tb));

fo.Close();

}

}

}

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

Применив данную программу ко всем семи нашим текстовым документам, создадим и заполним таблицу 4, отображающую результаты эксперимента:

Таблица №4. Результаты эксперимента.

Имя файла

Количество записей в файле

Объем полезной информации в файле

Время чтения файла (мс)

Среднее время добавления записи (мс)

Fl_1110_Shilnikov_D.txt

71040

4444160 Байт

549

0,007659

F2_1310_Shilnikov_D.txt

83840

5237760 Байт

752

0,008902

F3_1510_Shilnikov_D.txt

96640

6031360 Байт

818

0,008409

F4_1710_Shilnikov_D.txt

109440

6824960 Байт

1136

0,01032

F5_1910_Shilnikov_D.txt

122240

7635160 Байт

1065

0,008667

F6_2110_Shilnikov_D.txt

135040

8413960 Байт

1094

0,008063

F7_2310_Shilnikov_D.txt

147840

9205760 Байт

1137

0,007658

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

Среднее время чтения записи можно найти по формуле: t=T/c, где t – это среднее время чтения записи, T – это время чтения файла, с – это количество записей в файле.

Проведем вычисления для всех файлов:

Для 1-го файла: 549 / 71040=0.00014 с;

Для 2-го файла: 752 / 83840=0.00016 с;

Для 3-го файла: 818 / 96640=0.00018 c;

Для 4-го файла: 1136 / 109440=0.0002 c;

Для 5-го файла: 1065 / 122240=0.0002 c;

Для 6-го файла: 1094 / 135040=0.00021 c;

Для 7-го файла: 1137 / 147840=0.00021 c.

Построим график изменения среднего времени чтения записи от объема файла в записях, используя табличный процессор Excel, график изображен на рис.3:

Рис. 3. График изменения среднего времени чтения

записи от объема файла в записях.

По результатам экспериментов, отображенных в таблицах и на графиках можно сделать вывод:

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