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

Лабораторные. Дагаев / Операционные_системы_ЛР_№1_Отчет

.docx
Скачиваний:
1
Добавлен:
02.01.2026
Размер:
1.35 Mб
Скачать

Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации

Федеральное государственное бюджетное образовательное учреждение Высшего образования «Санкт-Петербургский государственный университет телекоммуникаций им. Проф. М. А. Бонч-Бруевича» (СПбГУТ)

Факультет Информационных технологий и программной инженерии

Кафедра Программной инженерии

Лабораторная работа №1

По дисциплине: Операционные системы и сети

Выполнил студент:

Яковлев М. А. ИКПИ-32

Принял работу:

Дагаев А. В.

Дата выполнения:

«24» октября 2025 г.

Санкт-Петербург

2025 г.

Постановка задачи

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

Перечень функций

tr — выполняет замену или удаление символов в потоке текста; здесь используется для разделения слов и приведения текста к нижнему регистру.

sort — сортирует строки текста в алфавитном порядке; применяется перед и после uniq для подготовки данных к подсчёту.

uniq — удаляет повторяющиеся строки или, с параметром -c, считает количество повторений каждой строки.

awk — построчно обрабатывает текст по шаблонам и правилам; здесь форматирует вывод вида «слово — количество».

wc — подсчитывает количество строк, слов и символов в файле; может использоваться для отображения общего числа слов в исходном файле.

echo — выводит текстовые сообщения в консоль.

exit — завершает выполнение скрипта с указанным кодом выхода.

Описание алгоритма

Программа начинается с проверки количества аргументов командной строки: она ожидает единственный аргумент — имя входного текстового файла. Далее сохраняется имя входного файла, и задаётся имя выходного файла.

Затем выполняется предобработка текста. С помощью утилиты tr входные данные разбиваются на отдельные слова, при этом любые символы, кроме букв и цифр, рассматриваются как разделители. Вторая команда tr переводит все символы в нижний регистр для объединения одинаковых слов независимо от их исходного написания. Список слов сортируется в алфавитном порядке и обрабатывается командой uniq -c, которая подсчитывает количество повторений каждого уникального слова. Полученный список сортируется командой sort -nr по убыванию частоты появления.

На завершающем этапе команда awk переставляет местами слово и его частоту, добавляя между ними тире, а результат сохраняется в файл word_count_output.txt. После выполнения программы этот файл переносится в Excel, где данные группируются по интервалам, вычисляется относительная частота встречаемости слов, строятся графики плотности распределения и функция распределения для дальнейшего анализа.

Графики

Графики, построенные на основе полученной статистики. График плотности распределения и график функции распределения.

Рисунок 1. График плотности распределения

Рисунок 2. График функции распределения

График плотности распределения (рис. 1) — это непрерывная кривая, не опускающаяся ниже оси абсцисс. Сама функция плотности обозначается f(x), она определена только для непрерывных случайных величин и характеризует «плотность» вероятностей около каждой точки.

График функции распределения (рис. 2) — это неубывающая кривая, ограниченная значениями от 0 до 1 по оси Y. Функция распределения F(x) показывает вероятность того, что случайная величина примет значение, меньшее или равное x.

Программа

Текст программы (рис. 3):

Рисунок 3. Текст программы

Входной файл (рис. 4):

Рисунок 4. Входной файл

Выходной файл (рис. 5):

Рисунок 5. Выходной файл

Вывод

В ходе лабораторной работы были изучены команды на Bash, выполнен алгоритм, составляющий статистику по словам в текстовом файле. Использованы стандартные утилиты командной строки (tr, sort, uniq, awk). Результат выводится в читаемом виде в отдельный файл, что облегчает дальнейший анализ данных.