From af9f959de1f88f9f02742d9200fd4e25a8020404 Mon Sep 17 00:00:00 2001 From: "d.yudenicheva" <yudendashaske7305@gmail.com> Date: Tue, 19 Dec 2023 02:38:18 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BB/=D1=80=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tasks/yudenicheva-ds/lab_2/.gitignore | 481 ++++++++++++++++++ tasks/yudenicheva-ds/lab_2/README.md | 65 +++ tasks/yudenicheva-ds/lab_2/data/data.txt | 7 + tasks/yudenicheva-ds/lab_2/data/data1.txt | 8 + tasks/yudenicheva-ds/lab_2/data/data2.txt | 6 + tasks/yudenicheva-ds/lab_2/docker-compose.yml | 14 + tasks/yudenicheva-ds/lab_2/result-1/data.txt | 6 + tasks/yudenicheva-ds/lab_2/result/result.txt | 1 + tasks/yudenicheva-ds/lab_2/scrin/1.png | Bin 0 -> 33359 bytes tasks/yudenicheva-ds/lab_2/scrin/2.png | Bin 0 -> 25401 bytes .../yudenicheva-ds/lab_2/worker-1/Dockerfile | 26 + .../yudenicheva-ds/lab_2/worker-1/Program.cs | 40 ++ .../lab_2/worker-1/worker-1.csproj | 11 + .../yudenicheva-ds/lab_2/worker-2/Dockerfile | 26 + .../yudenicheva-ds/lab_2/worker-2/Program.cs | 33 ++ .../lab_2/worker-2/worker-2.csproj | 11 + 16 files changed, 735 insertions(+) create mode 100644 tasks/yudenicheva-ds/lab_2/.gitignore create mode 100644 tasks/yudenicheva-ds/lab_2/README.md create mode 100644 tasks/yudenicheva-ds/lab_2/data/data.txt create mode 100644 tasks/yudenicheva-ds/lab_2/data/data1.txt create mode 100644 tasks/yudenicheva-ds/lab_2/data/data2.txt create mode 100644 tasks/yudenicheva-ds/lab_2/docker-compose.yml create mode 100644 tasks/yudenicheva-ds/lab_2/result-1/data.txt create mode 100644 tasks/yudenicheva-ds/lab_2/result/result.txt create mode 100644 tasks/yudenicheva-ds/lab_2/scrin/1.png create mode 100644 tasks/yudenicheva-ds/lab_2/scrin/2.png create mode 100644 tasks/yudenicheva-ds/lab_2/worker-1/Dockerfile create mode 100644 tasks/yudenicheva-ds/lab_2/worker-1/Program.cs create mode 100644 tasks/yudenicheva-ds/lab_2/worker-1/worker-1.csproj create mode 100644 tasks/yudenicheva-ds/lab_2/worker-2/Dockerfile create mode 100644 tasks/yudenicheva-ds/lab_2/worker-2/Program.cs create mode 100644 tasks/yudenicheva-ds/lab_2/worker-2/worker-2.csproj diff --git a/tasks/yudenicheva-ds/lab_2/.gitignore b/tasks/yudenicheva-ds/lab_2/.gitignore new file mode 100644 index 0000000..f20ffbc --- /dev/null +++ b/tasks/yudenicheva-ds/lab_2/.gitignore @@ -0,0 +1,481 @@ +## Наши данные для работы программы +result-1/ +result/ + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET +project.lock.json +project.fragment.lock.json +artifacts/ + +# Tye +.tye/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.tlog +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio 6 auto-generated project file (contains which files were open etc.) +*.vbp + +# Visual Studio 6 workspace and project file (working project files containing files to include in project) +*.dsw +*.dsp + +# Visual Studio 6 technical files +*.ncb +*.aps + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# Visual Studio History (VSHistory) files +.vshistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd + +# VS Code files for those working on multiple tools +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +*.code-workspace + +# Local History for Visual Studio Code +.history/ + +# Windows Installer files from build outputs +*.cab +*.msi +*.msix +*.msm +*.msp + +# JetBrains Rider +*.sln.iml + +## +## Visual studio for Mac +## + + +# globs +Makefile.in +*.userprefs +*.usertasks +config.make +config.status +aclocal.m4 +install-sh +autom4te.cache/ +*.tar.gz +tarballs/ +test-results/ + +# Mac bundle stuff +*.dmg +*.app + +# content below from: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# content below from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore +# Windows thumbnail cache files +Thumbs.db +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk diff --git a/tasks/yudenicheva-ds/lab_2/README.md b/tasks/yudenicheva-ds/lab_2/README.md new file mode 100644 index 0000000..868177b --- /dev/null +++ b/tasks/yudenicheva-ds/lab_2/README.md @@ -0,0 +1,65 @@ +# Отчёт по лабораторной работе №2 + +Выполнил: студент гр. ИСЭбд-41 Юденичева Дарья. + + +Вариант программы 1: Берет из каталога `/var/data` случайный файл и перекладывает его в `/var/result/data.txt`. + +Вариант программы 2: Ищет наибольшее число из файла `/var/data/data.txt` и сохраняет его вторую степень в `/var/result/result.txt`. + +## Создание приложений + +Создадим 2 приложения. +Был выбран язык C# и технология .NET 8. + +Для создания обычных консольных приложений воспользуемся командами: + +```sh +dotnet new console -o worker-1 +dotnet new console -o worker-2 +``` + +Согласно варианту программа 1 должна брать случайный файл из каталога `/var/data`, и перекладывать его в `/var/result/data.txt`. + +[Исходный текст программы worker-1](worker-1/Program.cs) + +Согласно варианту программа 2 должна искать наибольшее число из файла `/var/data/data.txt`, и сохранять его вторую степень в `/var/result/result.txt`. + +[Исходный текст программы worker-2](worker-2/Program.cs) + +Дополнительно создан файл [.gitignore](.gitignore) для того, чтобы не закоммитить в git ничего лишнего. + +## Настройка окружения + +Для связи двух приложений воспользуемся следующей схемой: + +1. Каталог `./data` должен быть примонтирован в каталог `/var/data` для программы 1. + Оттуда будут браться исходные данные. +2. Каталог `./result-1` должен быть примонтирован в каталог `/var/result` для программы 2. + Туда будут складываться промежуточные данные. +3. Каталог `./result-1` также должен быть примонтирован в каталог `/var/data` для программы 2. + Оттуда будут браться промежуточные результаты. +4. Каталог `./result` должен быть примонтирован в каталог `/var/result` для программы 2. + Туда будут складывать результаты финальной обработки. + +Для каждой программы были созданы файлы Dockerfile ([программа 1](worker-1/Dockerfile), [программа 2](worker-2/Dockerfile)) с подробным описанием процесса сборки. + +Был создан файл [docker-compose.yml](docker-compose.yml), в котором указан манифест для запуска распределённого приложения. + + +## Сборка и запуск + +В каталог `./data` помещены 3 файлов с наборами чисел. + +Для запуска приложения необходимо ввести команду `docker compose up ---build`. + +Результат запуска после сборки: + +В результате в каталоге `./result-1` перекладывается случайный выбранный файл `result.txt` из каталога `/var/data`: + + + +В каталоге `./result` сохраняется файл с содержимым `7921`, что соответствует квадрату наибольшего числа в файле. + + + diff --git a/tasks/yudenicheva-ds/lab_2/data/data.txt b/tasks/yudenicheva-ds/lab_2/data/data.txt new file mode 100644 index 0000000..03087bd --- /dev/null +++ b/tasks/yudenicheva-ds/lab_2/data/data.txt @@ -0,0 +1,7 @@ +101 +90 +14 +5 +56 +23 +17 diff --git a/tasks/yudenicheva-ds/lab_2/data/data1.txt b/tasks/yudenicheva-ds/lab_2/data/data1.txt new file mode 100644 index 0000000..4fc1702 --- /dev/null +++ b/tasks/yudenicheva-ds/lab_2/data/data1.txt @@ -0,0 +1,8 @@ +15 +85 +34 +10 +17 +54 +43 +18 diff --git a/tasks/yudenicheva-ds/lab_2/data/data2.txt b/tasks/yudenicheva-ds/lab_2/data/data2.txt new file mode 100644 index 0000000..fc44809 --- /dev/null +++ b/tasks/yudenicheva-ds/lab_2/data/data2.txt @@ -0,0 +1,6 @@ +10 +14 +19 +56 +89 +31 diff --git a/tasks/yudenicheva-ds/lab_2/docker-compose.yml b/tasks/yudenicheva-ds/lab_2/docker-compose.yml new file mode 100644 index 0000000..e452531 --- /dev/null +++ b/tasks/yudenicheva-ds/lab_2/docker-compose.yml @@ -0,0 +1,14 @@ +version: "3.1" +services: + worker-1: + build: ./worker-1 + volumes: + - ./data:/var/data + - ./result-1:/var/result + worker-2: + build: ./worker-2 + volumes: + - ./result-1:/var/data + - ./result:/var/result + depends_on: + - worker-1 \ No newline at end of file diff --git a/tasks/yudenicheva-ds/lab_2/result-1/data.txt b/tasks/yudenicheva-ds/lab_2/result-1/data.txt new file mode 100644 index 0000000..fc44809 --- /dev/null +++ b/tasks/yudenicheva-ds/lab_2/result-1/data.txt @@ -0,0 +1,6 @@ +10 +14 +19 +56 +89 +31 diff --git a/tasks/yudenicheva-ds/lab_2/result/result.txt b/tasks/yudenicheva-ds/lab_2/result/result.txt new file mode 100644 index 0000000..e0a2828 --- /dev/null +++ b/tasks/yudenicheva-ds/lab_2/result/result.txt @@ -0,0 +1 @@ +7921 \ No newline at end of file diff --git a/tasks/yudenicheva-ds/lab_2/scrin/1.png b/tasks/yudenicheva-ds/lab_2/scrin/1.png new file mode 100644 index 0000000000000000000000000000000000000000..6b8baa0fa21b5d27398bdbd1e6a509ce1b501cf0 GIT binary patch literal 33359 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 R`VR0%UPc*IEd46@{{VWn9-9CF literal 0 HcmV?d00001 diff --git a/tasks/yudenicheva-ds/lab_2/scrin/2.png b/tasks/yudenicheva-ds/lab_2/scrin/2.png new file mode 100644 index 0000000000000000000000000000000000000000..8b0508d71700dd2a493510ad274564272e8f4bb4 GIT binary patch literal 25401 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 literal 0 HcmV?d00001 diff --git a/tasks/yudenicheva-ds/lab_2/worker-1/Dockerfile b/tasks/yudenicheva-ds/lab_2/worker-1/Dockerfile new file mode 100644 index 0000000..7f49ca5 --- /dev/null +++ b/tasks/yudenicheva-ds/lab_2/worker-1/Dockerfile @@ -0,0 +1,26 @@ +# Используем базовый образ с пакетом SDK .NET 7.0 +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build-env + +# Устанавливаем рабочую директорию для всех последующих команд +WORKDIR /app + +# Копируем все файлы из текущего контекста в рабочую директорию +COPY . ./ + +# Восстанавливаем зависимости проекта +RUN dotnet restore + +# Публикуем приложение в режиме выпуска +RUN dotnet publish -c Release -o out + +# Используем базовый образ с ASP.NET 7.0 +FROM mcr.microsoft.com/dotnet/aspnet:8.0 + +# Устанавливаем рабочую директорию для всех последующих команд +WORKDIR /app + +# Копируем файлы из build-env в текущую директорию +COPY --from=build-env /app/out . + +# Устанавливаем точку входа в приложение +ENTRYPOINT ["dotnet", "worker-1.dll"] \ No newline at end of file diff --git a/tasks/yudenicheva-ds/lab_2/worker-1/Program.cs b/tasks/yudenicheva-ds/lab_2/worker-1/Program.cs new file mode 100644 index 0000000..211ec37 --- /dev/null +++ b/tasks/yudenicheva-ds/lab_2/worker-1/Program.cs @@ -0,0 +1,40 @@ +using System.Text; +using System.IO; + +string sourceDirectoryPath = "/var/data"; +string destinationFilePath = "/var/result/data.txt"; + +try +{ + DirectoryInfo sourceDirectory = new DirectoryInfo(sourceDirectoryPath); + FileInfo[] files = sourceDirectory.GetFiles(); + + if (files.Length == 0) + { + Console.WriteLine("Каталог {0} не содержит файлов", sourceDirectoryPath); + return; + } + + Random random = new Random(); + FileInfo randomFile = files[random.Next(files.Length)]; + + File.Copy(randomFile.FullName, destinationFilePath, true); + + Console.WriteLine("Файл {0} скопирован в {1}", randomFile.FullName, destinationFilePath); +} +catch (DirectoryNotFoundException) +{ + Console.WriteLine("Каталог {0} не найден", sourceDirectoryPath); +} +catch (IOException e) +{ + Console.WriteLine("Произошла ошибка при копировании файла: {0}", e.Message); +} +catch (UnauthorizedAccessException e) +{ + Console.WriteLine("Отсутствует доступ к файлу {0}", e.Message); +} +catch (ArgumentException) +{ + Console.WriteLine("Путь {0} содержит недопустимые символы", destinationFilePath); +} \ No newline at end of file diff --git a/tasks/yudenicheva-ds/lab_2/worker-1/worker-1.csproj b/tasks/yudenicheva-ds/lab_2/worker-1/worker-1.csproj new file mode 100644 index 0000000..d89363b --- /dev/null +++ b/tasks/yudenicheva-ds/lab_2/worker-1/worker-1.csproj @@ -0,0 +1,11 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>net8.0</TargetFramework> + <RootNamespace>worker_1</RootNamespace> + <ImplicitUsings>enable</ImplicitUsings> + <Nullable>enable</Nullable> + </PropertyGroup> + +</Project> diff --git a/tasks/yudenicheva-ds/lab_2/worker-2/Dockerfile b/tasks/yudenicheva-ds/lab_2/worker-2/Dockerfile new file mode 100644 index 0000000..93fb81f --- /dev/null +++ b/tasks/yudenicheva-ds/lab_2/worker-2/Dockerfile @@ -0,0 +1,26 @@ +# Используем базовый образ с пакетом SDK .NET 7.0 +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build-env + +# Устанавливаем рабочую директорию для всех последующих команд +WORKDIR /app + +# Копируем все файлы из текущего контекста в рабочую директорию +COPY . ./ + +# Восстанавливаем зависимости проекта +RUN dotnet restore + +# Публикуем приложение в режиме выпуска +RUN dotnet publish -c Release -o out + +# Используем базовый образ с ASP.NET 7.0 +FROM mcr.microsoft.com/dotnet/aspnet:8.0 + +# Устанавливаем рабочую директорию для всех последующих команд +WORKDIR /app + +# Копируем файлы из build-env в текущую директорию +COPY --from=build-env /app/out . + +# Устанавливаем точку входа в приложение +ENTRYPOINT ["dotnet", "worker-2.dll"] \ No newline at end of file diff --git a/tasks/yudenicheva-ds/lab_2/worker-2/Program.cs b/tasks/yudenicheva-ds/lab_2/worker-2/Program.cs new file mode 100644 index 0000000..d4ec59d --- /dev/null +++ b/tasks/yudenicheva-ds/lab_2/worker-2/Program.cs @@ -0,0 +1,33 @@ +using System.Text; + + +string[] numbers; +using (FileStream fstream = File.OpenRead("/var/result/data.txt")) +{ + byte[] buffer = new byte[fstream.Length]; + await fstream.ReadAsync(buffer, 0, buffer.Length); + string text = Encoding.Default.GetString(buffer); + text = text.Replace("\r\n", ";"); + numbers = text.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); +} + +int maxNum = int.MinValue; +foreach(var number in numbers) +{ + int currentNum = Convert.ToInt32(number); + if(currentNum > maxNum) + { + maxNum = currentNum; + } +} + +int maxNumSqr = maxNum * maxNum; + +using (FileStream fstream = new FileStream("/var/result/result.txt", FileMode.OpenOrCreate)) +{ + byte[] buffer = Encoding.Default.GetBytes(maxNumSqr.ToString()); + await fstream.WriteAsync(buffer, 0, buffer.Length); +} + +Console.WriteLine("Максимальное число: " + maxNum); +Console.WriteLine("Возведение в квадрат: " + maxNumSqr); diff --git a/tasks/yudenicheva-ds/lab_2/worker-2/worker-2.csproj b/tasks/yudenicheva-ds/lab_2/worker-2/worker-2.csproj new file mode 100644 index 0000000..c75d6da --- /dev/null +++ b/tasks/yudenicheva-ds/lab_2/worker-2/worker-2.csproj @@ -0,0 +1,11 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>net8.0</TargetFramework> + <RootNamespace>worker_2</RootNamespace> + <ImplicitUsings>enable</ImplicitUsings> + <Nullable>enable</Nullable> + </PropertyGroup> + +</Project>