From 77051970fe64f68f309b4f8ceec58c407c01a875 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stanis=C5=82aw=20Rudnicki?= Date: Tue, 21 Jul 2020 13:07:38 +0300 Subject: [PATCH] Added C# projects --- CS01_1_T01/App.config | 6 + CS01_1_T01/CS01_1_T01.csproj | 53 ++++ CS01_1_T01/CS01_1_T01.sln | 25 ++ CS01_1_T01/Program.cs | 162 ++++++++++ CS01_1_T01/Properties/AssemblyInfo.cs | 36 +++ Cs01_1_t02/App.config | 6 + Cs01_1_t02/Cs01_1_t02.csproj | 53 ++++ Cs01_1_t02/Cs01_1_t02.sln | 25 ++ Cs01_1_t02/Program.cs | 151 +++++++++ Cs01_1_t02/Properties/AssemblyInfo.cs | 36 +++ Cs01_1_t03/App.config | 6 + Cs01_1_t03/Cs01_1_t03.csproj | 53 ++++ Cs01_1_t03/Cs01_1_t03.sln | 25 ++ Cs01_1_t03/Program.cs | 87 +++++ Cs01_1_t03/Properties/AssemblyInfo.cs | 36 +++ Cs02_1_t01/App.config | 6 + Cs02_1_t01/Cs02_1_t01.csproj | 53 ++++ Cs02_1_t01/Cs02_1_t01.sln | 25 ++ Cs02_1_t01/Program.cs | 123 ++++++++ Cs02_1_t01/Properties/AssemblyInfo.cs | 36 +++ Cs02_2_t01/App.config | 6 + Cs02_2_t01/Cs02_2_t01.csproj | 53 ++++ Cs02_2_t01/Cs02_2_t01.sln | 25 ++ Cs02_2_t01/Program.cs | 146 +++++++++ Cs02_2_t01/Properties/AssemblyInfo.cs | 36 +++ Cs03_1_t01/App.config | 6 + Cs03_1_t01/Cs03_1_t01.csproj | 62 ++++ Cs03_1_t01/Cs03_1_t01.sln | 25 ++ Cs03_1_t01/GetSet.cs | 31 ++ Cs03_1_t01/Program.cs | 95 ++++++ Cs03_1_t01/Properties/AssemblyInfo.cs | 36 +++ Cs03_1_t01/StaticConstructor.cs | 11 + Cs03_1_t02/App.config | 6 + Cs03_1_t02/Cs03_1_t02.csproj | 50 +++ Cs03_1_t02/Cs03_1_t02.sln | 25 ++ Cs03_1_t02/Paper.cs | 152 +++++++++ Cs03_1_t02/PaperPartial.cs | 23 ++ Cs03_1_t02/Program.cs | 33 ++ Cs03_1_t02/Properties/AssemblyInfo.cs | 36 +++ Cs03_1_t02/UndefinedTypeException.cs | 12 + Cs04_1_t01_Bankomat/App.config | 6 + Cs04_1_t01_Bankomat/Cs04_1_t01.csproj | 53 ++++ Cs04_1_t01_Bankomat/Cs04_1_t01.sln | 25 ++ Cs04_1_t01_Bankomat/Program.cs | 297 ++++++++++++++++++ .../Properties/AssemblyInfo.cs | 36 +++ Cs04_1_t02/App.config | 6 + Cs04_1_t02/Cs04_1_t02.csproj | 53 ++++ Cs04_1_t02/Cs04_1_t02.sln | 25 ++ Cs04_1_t02/Program.cs | 92 ++++++ Cs04_1_t02/Properties/AssemblyInfo.cs | 36 +++ .../Incapsulation.RationalNumbers.csproj | 73 +++++ Cs05_1_t01/Incapsulation.RationalNumbers.sln | 25 ++ Cs05_1_t01/Program.cs | 11 + Cs05_1_t01/Properties/AssemblyInfo.cs | 36 +++ Cs05_1_t01/Rational.cs | 78 +++++ Cs05_1_t01/Rational_should.cs | 149 +++++++++ Cs05_1_t01/app.config | 3 + Cs05_1_t01/nunit.framework.dll | Bin 0 -> 314880 bytes Cs05_1_t01/nunitlite.dll | Bin 0 -> 79872 bytes Cs06_1_t01/App.config | 6 + Cs06_1_t01/Cs06_1_t01.sln | 31 ++ Cs06_1_t01/Day7 (Tanks).csproj | 59 ++++ Cs06_1_t01/Program.cs | 91 ++++++ Cs06_1_t01/Properties/AssemblyInfo.cs | 36 +++ Cs07_1_t01/App.config | 6 + Cs07_1_t01/Cs07_1_t01.csproj | 53 ++++ Cs07_1_t01/Cs07_1_t01.sln | 25 ++ Cs07_1_t01/Program.cs | 112 +++++++ Cs07_1_t01/Properties/AssemblyInfo.cs | 36 +++ Cs07_2_t01/App.config | 6 + Cs07_2_t01/Cs07_2_t01.csproj | 53 ++++ Cs07_2_t01/Cs07_2_t01.sln | 25 ++ Cs07_2_t01/Program.cs | 134 ++++++++ Cs07_2_t01/Properties/AssemblyInfo.cs | 36 +++ Cs08_1_t01/App.config | 6 + Cs08_1_t01/Cs08_1_t01.csproj | 53 ++++ Cs08_1_t01/Cs08_1_t01.sln | 25 ++ Cs08_1_t01/Program.cs | 192 +++++++++++ Cs08_1_t01/Properties/AssemblyInfo.cs | 36 +++ Cs09_1_t01/App.config | 6 + Cs09_1_t01/Cs09_1_t01.csproj | 54 ++++ Cs09_1_t01/Cs09_1_t01.sln | 25 ++ Cs09_1_t01/Program.cs | 252 +++++++++++++++ Cs09_1_t01/Properties/AssemblyInfo.cs | 36 +++ Cs09_1_t02/App.config | 6 + Cs09_1_t02/Cs09_1_t02.csproj | 55 ++++ Cs09_1_t02/Cs09_1_t02.sln | 25 ++ Cs09_1_t02/Program.cs | 273 ++++++++++++++++ Cs09_1_t02/Properties/AssemblyInfo.cs | 36 +++ Cs10_1_t01/App.config | 6 + Cs10_1_t01/Cs10_1_t01.csproj | 53 ++++ Cs10_1_t01/Cs10_1_t01.sln | 25 ++ Cs10_1_t01/Program.cs | 86 +++++ Cs10_1_t01/Properties/AssemblyInfo.cs | 36 +++ Cs11_1_t01/BinaryTree.cs | 87 +++++ Cs11_1_t01/BinaryTree_should.cs | 104 ++++++ Cs11_1_t01/Generics.BinaryTrees.csproj | 69 ++++ Cs11_1_t01/Generics.BinaryTrees.sln | 25 ++ Cs11_1_t01/Program.cs | 11 + Cs11_1_t01/Properties/AssemblyInfo.cs | 36 +++ Cs11_1_t01/README.md | 3 + Cs11_1_t01/app.config | 3 + Cs11_1_t01/nunit.framework.dll | Bin 0 -> 314880 bytes Cs11_1_t01/nunitlite.dll | Bin 0 -> 79872 bytes Cs12_1_t01/App.config | 6 + Cs12_1_t01/Cs12_1_t01.csproj | 53 ++++ Cs12_1_t01/Cs12_1_t01.sln | 25 ++ Cs12_1_t01/Program.cs | 183 +++++++++++ Cs12_1_t01/Properties/AssemblyInfo.cs | 36 +++ Cs13_1_t01/App.config | 6 + Cs13_1_t01/Delegates.Reports.csproj | 74 +++++ Cs13_1_t01/Delegates.Reports.sln | 25 ++ Cs13_1_t01/MeanAndStd.cs | 19 ++ Cs13_1_t01/Measurement.cs | 15 + Cs13_1_t01/Program.cs | 11 + Cs13_1_t01/Properties/AssemblyInfo.cs | 36 +++ Cs13_1_t01/README.md | 11 + Cs13_1_t01/ReportMaker.cs | 118 +++++++ Cs13_1_t01/ReportMaker_should.cs | 64 ++++ Cs13_1_t01/nunit.framework.dll | Bin 0 -> 314880 bytes Cs13_1_t01/nunitlite.dll | Bin 0 -> 79872 bytes ...75\320\275\321\217 Delegates.Reports.docx" | Bin 0 -> 12223 bytes Cs14_1_t01/App.config | 6 + Cs14_1_t01/Cs14_1_t01.csproj | 53 ++++ Cs14_1_t01/Cs14_1_t01.sln | 25 ++ Cs14_1_t01/Program.cs | 151 +++++++++ Cs14_1_t01/Properties/AssemblyInfo.cs | 36 +++ Cs15_1_t01/App.config | 6 + Cs15_1_t01/Cs15_1_t01.csproj | 53 ++++ Cs15_1_t01/Cs15_1_t01.sln | 25 ++ Cs15_1_t01/Program.cs | 167 ++++++++++ Cs15_1_t01/Properties/AssemblyInfo.cs | 36 +++ Cs16_1_t01/App.config | 6 + Cs16_1_t01/Cs16_1_t01.csproj | 56 ++++ Cs16_1_t01/Cs16_1_t01.sln | 25 ++ Cs16_1_t01/Program.cs | 227 +++++++++++++ Cs16_1_t01/Properties/AssemblyInfo.cs | 36 +++ Cs16_1_t01/packages.config | 4 + Cs16_1_t02/App.config | 6 + Cs16_1_t02/Cs16_1_t02.csproj | 53 ++++ Cs16_1_t02/Cs16_1_t02.sln | 25 ++ Cs16_1_t02/Program.cs | 51 +++ Cs16_1_t02/Properties/AssemblyInfo.cs | 36 +++ Cs17_1_t01/App.config | 6 + Cs17_1_t01/Cs17_1_t01.csproj | 53 ++++ Cs17_1_t01/Cs17_1_t01.sln | 25 ++ Cs17_1_t01/Program.cs | 95 ++++++ Cs17_1_t01/Properties/AssemblyInfo.cs | 36 +++ Cs18_1_t01/App.config | 6 + Cs18_1_t01/ClassLib/ClassLib.csproj | 48 +++ Cs18_1_t01/ClassLib/PC.cs | 41 +++ .../ClassLib/Properties/AssemblyInfo.cs | 36 +++ Cs18_1_t01/Cs18_1_t01.sln | 37 +++ Cs18_1_t01/DeserializConsolApp/App.config | 6 + .../DeserializConsolApp.csproj | 59 ++++ Cs18_1_t01/DeserializConsolApp/Program.cs | 64 ++++ .../Properties/AssemblyInfo.cs | 36 +++ ...\261\321\212\320\265\320\272\321\2021.txt" | Bin 0 -> 252 bytes ...\261\321\212\320\265\320\272\321\2022.txt" | Bin 0 -> 250 bytes ...\261\321\212\320\265\320\272\321\2023.txt" | Bin 0 -> 252 bytes ...\261\321\212\320\265\320\272\321\2024.txt" | Bin 0 -> 254 bytes Cs18_1_t01/Program.cs | 91 ++++++ Cs18_1_t01/Properties/AssemblyInfo.cs | 36 +++ Cs18_1_t01/SerializConsolApp.csproj | 65 ++++ Cs18_1_t01/listSerial.txt | Bin 0 -> 625 bytes Cs18_1_t01/packages.config | 4 + 166 files changed, 7718 insertions(+) create mode 100644 CS01_1_T01/App.config create mode 100644 CS01_1_T01/CS01_1_T01.csproj create mode 100644 CS01_1_T01/CS01_1_T01.sln create mode 100644 CS01_1_T01/Program.cs create mode 100644 CS01_1_T01/Properties/AssemblyInfo.cs create mode 100644 Cs01_1_t02/App.config create mode 100644 Cs01_1_t02/Cs01_1_t02.csproj create mode 100644 Cs01_1_t02/Cs01_1_t02.sln create mode 100644 Cs01_1_t02/Program.cs create mode 100644 Cs01_1_t02/Properties/AssemblyInfo.cs create mode 100644 Cs01_1_t03/App.config create mode 100644 Cs01_1_t03/Cs01_1_t03.csproj create mode 100644 Cs01_1_t03/Cs01_1_t03.sln create mode 100644 Cs01_1_t03/Program.cs create mode 100644 Cs01_1_t03/Properties/AssemblyInfo.cs create mode 100644 Cs02_1_t01/App.config create mode 100644 Cs02_1_t01/Cs02_1_t01.csproj create mode 100644 Cs02_1_t01/Cs02_1_t01.sln create mode 100644 Cs02_1_t01/Program.cs create mode 100644 Cs02_1_t01/Properties/AssemblyInfo.cs create mode 100644 Cs02_2_t01/App.config create mode 100644 Cs02_2_t01/Cs02_2_t01.csproj create mode 100644 Cs02_2_t01/Cs02_2_t01.sln create mode 100644 Cs02_2_t01/Program.cs create mode 100644 Cs02_2_t01/Properties/AssemblyInfo.cs create mode 100644 Cs03_1_t01/App.config create mode 100644 Cs03_1_t01/Cs03_1_t01.csproj create mode 100644 Cs03_1_t01/Cs03_1_t01.sln create mode 100644 Cs03_1_t01/GetSet.cs create mode 100644 Cs03_1_t01/Program.cs create mode 100644 Cs03_1_t01/Properties/AssemblyInfo.cs create mode 100644 Cs03_1_t01/StaticConstructor.cs create mode 100644 Cs03_1_t02/App.config create mode 100644 Cs03_1_t02/Cs03_1_t02.csproj create mode 100644 Cs03_1_t02/Cs03_1_t02.sln create mode 100644 Cs03_1_t02/Paper.cs create mode 100644 Cs03_1_t02/PaperPartial.cs create mode 100644 Cs03_1_t02/Program.cs create mode 100644 Cs03_1_t02/Properties/AssemblyInfo.cs create mode 100644 Cs03_1_t02/UndefinedTypeException.cs create mode 100644 Cs04_1_t01_Bankomat/App.config create mode 100644 Cs04_1_t01_Bankomat/Cs04_1_t01.csproj create mode 100644 Cs04_1_t01_Bankomat/Cs04_1_t01.sln create mode 100644 Cs04_1_t01_Bankomat/Program.cs create mode 100644 Cs04_1_t01_Bankomat/Properties/AssemblyInfo.cs create mode 100644 Cs04_1_t02/App.config create mode 100644 Cs04_1_t02/Cs04_1_t02.csproj create mode 100644 Cs04_1_t02/Cs04_1_t02.sln create mode 100644 Cs04_1_t02/Program.cs create mode 100644 Cs04_1_t02/Properties/AssemblyInfo.cs create mode 100644 Cs05_1_t01/Incapsulation.RationalNumbers.csproj create mode 100644 Cs05_1_t01/Incapsulation.RationalNumbers.sln create mode 100644 Cs05_1_t01/Program.cs create mode 100644 Cs05_1_t01/Properties/AssemblyInfo.cs create mode 100644 Cs05_1_t01/Rational.cs create mode 100644 Cs05_1_t01/Rational_should.cs create mode 100644 Cs05_1_t01/app.config create mode 100644 Cs05_1_t01/nunit.framework.dll create mode 100644 Cs05_1_t01/nunitlite.dll create mode 100644 Cs06_1_t01/App.config create mode 100644 Cs06_1_t01/Cs06_1_t01.sln create mode 100644 Cs06_1_t01/Day7 (Tanks).csproj create mode 100644 Cs06_1_t01/Program.cs create mode 100644 Cs06_1_t01/Properties/AssemblyInfo.cs create mode 100644 Cs07_1_t01/App.config create mode 100644 Cs07_1_t01/Cs07_1_t01.csproj create mode 100644 Cs07_1_t01/Cs07_1_t01.sln create mode 100644 Cs07_1_t01/Program.cs create mode 100644 Cs07_1_t01/Properties/AssemblyInfo.cs create mode 100644 Cs07_2_t01/App.config create mode 100644 Cs07_2_t01/Cs07_2_t01.csproj create mode 100644 Cs07_2_t01/Cs07_2_t01.sln create mode 100644 Cs07_2_t01/Program.cs create mode 100644 Cs07_2_t01/Properties/AssemblyInfo.cs create mode 100644 Cs08_1_t01/App.config create mode 100644 Cs08_1_t01/Cs08_1_t01.csproj create mode 100644 Cs08_1_t01/Cs08_1_t01.sln create mode 100644 Cs08_1_t01/Program.cs create mode 100644 Cs08_1_t01/Properties/AssemblyInfo.cs create mode 100644 Cs09_1_t01/App.config create mode 100644 Cs09_1_t01/Cs09_1_t01.csproj create mode 100644 Cs09_1_t01/Cs09_1_t01.sln create mode 100644 Cs09_1_t01/Program.cs create mode 100644 Cs09_1_t01/Properties/AssemblyInfo.cs create mode 100644 Cs09_1_t02/App.config create mode 100644 Cs09_1_t02/Cs09_1_t02.csproj create mode 100644 Cs09_1_t02/Cs09_1_t02.sln create mode 100644 Cs09_1_t02/Program.cs create mode 100644 Cs09_1_t02/Properties/AssemblyInfo.cs create mode 100644 Cs10_1_t01/App.config create mode 100644 Cs10_1_t01/Cs10_1_t01.csproj create mode 100644 Cs10_1_t01/Cs10_1_t01.sln create mode 100644 Cs10_1_t01/Program.cs create mode 100644 Cs10_1_t01/Properties/AssemblyInfo.cs create mode 100644 Cs11_1_t01/BinaryTree.cs create mode 100644 Cs11_1_t01/BinaryTree_should.cs create mode 100644 Cs11_1_t01/Generics.BinaryTrees.csproj create mode 100644 Cs11_1_t01/Generics.BinaryTrees.sln create mode 100644 Cs11_1_t01/Program.cs create mode 100644 Cs11_1_t01/Properties/AssemblyInfo.cs create mode 100644 Cs11_1_t01/README.md create mode 100644 Cs11_1_t01/app.config create mode 100644 Cs11_1_t01/nunit.framework.dll create mode 100644 Cs11_1_t01/nunitlite.dll create mode 100644 Cs12_1_t01/App.config create mode 100644 Cs12_1_t01/Cs12_1_t01.csproj create mode 100644 Cs12_1_t01/Cs12_1_t01.sln create mode 100644 Cs12_1_t01/Program.cs create mode 100644 Cs12_1_t01/Properties/AssemblyInfo.cs create mode 100644 Cs13_1_t01/App.config create mode 100644 Cs13_1_t01/Delegates.Reports.csproj create mode 100644 Cs13_1_t01/Delegates.Reports.sln create mode 100644 Cs13_1_t01/MeanAndStd.cs create mode 100644 Cs13_1_t01/Measurement.cs create mode 100644 Cs13_1_t01/Program.cs create mode 100644 Cs13_1_t01/Properties/AssemblyInfo.cs create mode 100644 Cs13_1_t01/README.md create mode 100644 Cs13_1_t01/ReportMaker.cs create mode 100644 Cs13_1_t01/ReportMaker_should.cs create mode 100644 Cs13_1_t01/nunit.framework.dll create mode 100644 Cs13_1_t01/nunitlite.dll create mode 100644 "Cs13_1_t01/\320\227\320\260\320\262\320\264\320\260\320\275\320\275\321\217 Delegates.Reports.docx" create mode 100644 Cs14_1_t01/App.config create mode 100644 Cs14_1_t01/Cs14_1_t01.csproj create mode 100644 Cs14_1_t01/Cs14_1_t01.sln create mode 100644 Cs14_1_t01/Program.cs create mode 100644 Cs14_1_t01/Properties/AssemblyInfo.cs create mode 100644 Cs15_1_t01/App.config create mode 100644 Cs15_1_t01/Cs15_1_t01.csproj create mode 100644 Cs15_1_t01/Cs15_1_t01.sln create mode 100644 Cs15_1_t01/Program.cs create mode 100644 Cs15_1_t01/Properties/AssemblyInfo.cs create mode 100644 Cs16_1_t01/App.config create mode 100644 Cs16_1_t01/Cs16_1_t01.csproj create mode 100644 Cs16_1_t01/Cs16_1_t01.sln create mode 100644 Cs16_1_t01/Program.cs create mode 100644 Cs16_1_t01/Properties/AssemblyInfo.cs create mode 100644 Cs16_1_t01/packages.config create mode 100644 Cs16_1_t02/App.config create mode 100644 Cs16_1_t02/Cs16_1_t02.csproj create mode 100644 Cs16_1_t02/Cs16_1_t02.sln create mode 100644 Cs16_1_t02/Program.cs create mode 100644 Cs16_1_t02/Properties/AssemblyInfo.cs create mode 100644 Cs17_1_t01/App.config create mode 100644 Cs17_1_t01/Cs17_1_t01.csproj create mode 100644 Cs17_1_t01/Cs17_1_t01.sln create mode 100644 Cs17_1_t01/Program.cs create mode 100644 Cs17_1_t01/Properties/AssemblyInfo.cs create mode 100644 Cs18_1_t01/App.config create mode 100644 Cs18_1_t01/ClassLib/ClassLib.csproj create mode 100644 Cs18_1_t01/ClassLib/PC.cs create mode 100644 Cs18_1_t01/ClassLib/Properties/AssemblyInfo.cs create mode 100644 Cs18_1_t01/Cs18_1_t01.sln create mode 100644 Cs18_1_t01/DeserializConsolApp/App.config create mode 100644 Cs18_1_t01/DeserializConsolApp/DeserializConsolApp.csproj create mode 100644 Cs18_1_t01/DeserializConsolApp/Program.cs create mode 100644 Cs18_1_t01/DeserializConsolApp/Properties/AssemblyInfo.cs create mode 100644 "Cs18_1_t01/Folder/\320\276\320\261\321\212\320\265\320\272\321\2021.txt" create mode 100644 "Cs18_1_t01/Folder/\320\276\320\261\321\212\320\265\320\272\321\2022.txt" create mode 100644 "Cs18_1_t01/Folder/\320\276\320\261\321\212\320\265\320\272\321\2023.txt" create mode 100644 "Cs18_1_t01/Folder/\320\276\320\261\321\212\320\265\320\272\321\2024.txt" create mode 100644 Cs18_1_t01/Program.cs create mode 100644 Cs18_1_t01/Properties/AssemblyInfo.cs create mode 100644 Cs18_1_t01/SerializConsolApp.csproj create mode 100644 Cs18_1_t01/listSerial.txt create mode 100644 Cs18_1_t01/packages.config diff --git a/CS01_1_T01/App.config b/CS01_1_T01/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/CS01_1_T01/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/CS01_1_T01/CS01_1_T01.csproj b/CS01_1_T01/CS01_1_T01.csproj new file mode 100644 index 0000000..0fee6d6 --- /dev/null +++ b/CS01_1_T01/CS01_1_T01.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {C2CD3F35-CBDF-4981-818C-0ECFDB43CB09} + Exe + CS01_1_T01 + CS01_1_T01 + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS01_1_T01/CS01_1_T01.sln b/CS01_1_T01/CS01_1_T01.sln new file mode 100644 index 0000000..ee69f9e --- /dev/null +++ b/CS01_1_T01/CS01_1_T01.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29806.167 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CS01_1_T01", "CS01_1_T01.csproj", "{C2CD3F35-CBDF-4981-818C-0ECFDB43CB09}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C2CD3F35-CBDF-4981-818C-0ECFDB43CB09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C2CD3F35-CBDF-4981-818C-0ECFDB43CB09}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C2CD3F35-CBDF-4981-818C-0ECFDB43CB09}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C2CD3F35-CBDF-4981-818C-0ECFDB43CB09}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {AF1C22F2-0E7B-424F-80AE-AB5AAF4D976D} + EndGlobalSection +EndGlobal diff --git a/CS01_1_T01/Program.cs b/CS01_1_T01/Program.cs new file mode 100644 index 0000000..9740a4f --- /dev/null +++ b/CS01_1_T01/Program.cs @@ -0,0 +1,162 @@ +using System; +using System.Globalization; +using System.Text; +using System.Threading; + +namespace _29022020 +{ + class Program + { + // Написать программу, которая считывает символы с клавиатуры, пока не будет введена точка. + // Программа должна сосчитать количество введенных пользователем пробелов. + + static void Zad_01() + { + char ch; + int i = 0; + do + { + Console.Write("Введите символ: "); + ch = Console.ReadLine()[0]; + if (ch == ' ') i++; + } while (ch != '.'); + Console.WriteLine($"Пробелов: {i}\n"); + } + + // Ввести с клавиатуры номер трамвайного билета (6-значное число) + // и про-верить является ли данный билет счастливым + // (если на билете напечатано шестизначное число, + // и сумма первых трёх цифр равна сумме последних трёх, то этот билет считается счастливым). + + static void Zad_02() + { + bool lucky(int a) + { + int sum1, sum2; + sum1 = a / 100000 + (a / 10000 % 10) + (a / 1000 % 10); + sum2 = a / 100 % 10 + (a / 10 % 10) + a % 10; + return (sum1 == sum2); + } + + Console.Write("Введіть шестизначне число: "); + bool f = int.TryParse(Console.ReadLine(), out int n); + + if (f && n > 99999 && n < 1000000) + { + Console.Write("\n\tЧисло "); + if (!lucky(n)) Console.Write("не "); + Console.WriteLine("щасливе!\n"); + } + else + Console.WriteLine("\n\tЧисло не шестизначне!\n"); + + } + + // Числовые значения символов нижнего регистра в коде ASCII отличаются от значений символов верхнего регистра на величину 32. + // Используя эту информацию, написать программу, которая считывает с клавиатуры и конвертирует + // все символы нижнего регистра в символы верхнего регистра и наоборот. + + static void Zad_03() + { + Console.Write("Введите строку: "); + string str = Console.ReadLine(); + + // Тут +-32 не буде робити для кирилиці, тому що використовується UTF-16. + // Щоб робила кирилиця з UTF-16, треба якось так писати: + + string OppositeCase(string s) + { + char[] c = s.ToCharArray(); + char[] cUpper = s.ToUpper().ToCharArray(); + char[] cLower = s.ToLower().ToCharArray(); + + for (int i = 0; i < c.Length; i++) + if (c[i] == cUpper[i]) + c[i] = cLower[i]; + else + c[i] = cUpper[i]; + + return new string(c); + } + Console.WriteLine("\n" + OppositeCase(str) + "\n"); + } + + // Даны целые положительные числа A и B (A < B). + // Вывести все целые числа от A до B включительно; каждое число должно выводиться на новой строке; + // при этом каждое число должно выводиться количество раз, равное его значению. + // Например: если А = 3, а В = 7, то программа должна сформировать в консоли следующий вывод: + // 3 3 3 + // 4 4 4 4 + // 5 5 5 5 5 + // 6 6 6 6 6 6 + // 7 7 7 7 7 7 7 + + static void Zad_04() + { + int a = 0, b = 0; + bool f = false; + while (!f) + { + Console.Write("Введіть A: "); + f = int.TryParse(Console.ReadLine(), out a); + } + f = false; + while (!f) + { + Console.Write("Введіть B: "); + f = int.TryParse(Console.ReadLine(), out b); + } + + if (a < b) + { + Console.WriteLine(); + for (int i = a; i <= b; i++) + { + for (int j = 0; j < i; j++) + Console.Write(i + " "); + Console.WriteLine(); + } + Console.WriteLine(); + } + else + Console.WriteLine("\nError: A > B\n"); + + } + + // Дано целое число N (> 0), найти число, полученное при прочтении числа N справа налево. + // Например, если было введено число 345, то программа должна вывести число 543. + + static void Zad_05() + { + int n = 0, m = 0; + bool f = false; + while (!f) + { + Console.Write("Введіть N: "); + f = int.TryParse(Console.ReadLine(), out n); + } + + while (n > 0) + { + int rest = n % 10; + n /= 10; + m = m * 10 + rest; + } + Console.WriteLine($"\n{m}\n"); + } + + static void Main(string[] args) + { + Console.OutputEncoding = Encoding.Unicode; + Console.InputEncoding = Encoding.Unicode; + + Zad_01(); + Zad_02(); + Zad_03(); + Zad_04(); + Zad_05(); + + //Console.ReadKey(); + } + } +} diff --git a/CS01_1_T01/Properties/AssemblyInfo.cs b/CS01_1_T01/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..e0a9563 --- /dev/null +++ b/CS01_1_T01/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("CS01_1_T01")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("CS01_1_T01")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("c2cd3f35-cbdf-4981-818c-0ecfdb43cb09")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs01_1_t02/App.config b/Cs01_1_t02/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/Cs01_1_t02/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cs01_1_t02/Cs01_1_t02.csproj b/Cs01_1_t02/Cs01_1_t02.csproj new file mode 100644 index 0000000..07653d7 --- /dev/null +++ b/Cs01_1_t02/Cs01_1_t02.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {23EFC825-1AD1-490F-A44A-A4D6BCE57C76} + Exe + Cs01_1_t02 + Cs01_1_t02 + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs01_1_t02/Cs01_1_t02.sln b/Cs01_1_t02/Cs01_1_t02.sln new file mode 100644 index 0000000..521c83f --- /dev/null +++ b/Cs01_1_t02/Cs01_1_t02.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29806.167 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cs01_1_t02", "Cs01_1_t02.csproj", "{23EFC825-1AD1-490F-A44A-A4D6BCE57C76}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {23EFC825-1AD1-490F-A44A-A4D6BCE57C76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {23EFC825-1AD1-490F-A44A-A4D6BCE57C76}.Debug|Any CPU.Build.0 = Debug|Any CPU + {23EFC825-1AD1-490F-A44A-A4D6BCE57C76}.Release|Any CPU.ActiveCfg = Release|Any CPU + {23EFC825-1AD1-490F-A44A-A4D6BCE57C76}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {167A641E-62C1-49E1-8E66-4B3DB797266D} + EndGlobalSection +EndGlobal diff --git a/Cs01_1_t02/Program.cs b/Cs01_1_t02/Program.cs new file mode 100644 index 0000000..b476949 --- /dev/null +++ b/Cs01_1_t02/Program.cs @@ -0,0 +1,151 @@ +using System; +using System.Globalization; +using System.Text; +using System.Threading; + +namespace _29022020 +{ + class Program + { + // З клавіатури вводиться число n – кількість елементів масиву. + // Потрібно створити масив типу double та заповнити його псевдовипадковими числами (діапазон вказано у варіанті). + // Виконати вказані у варіанті дії та після кожної з них вивести результат. + // При виведенні результатів використовуйте інтерпольовані рядки мови C#. + + // 1. Знайти суму елементів з індексами, які діляться на 3, + // 2. Впорядкувати першу половину масиву за зростанням значень елементів. + // [-10.51; 10.53] + + static void Zad_01() + { + int n = 0; + double dMin = -10.51, dMax = 10.53, sum = 0; + bool f = false; + while (!f) + { + Console.Write("Введіть n: "); + f = int.TryParse(Console.ReadLine(), out n); + } + + double[] masRND = new double[n]; + Random rnd = new Random(); + for (int i = 0; i < masRND.Length; i++) + masRND[i] = Math.Round(rnd.NextDouble() * (dMax - dMin) + dMin, 2); + + Console.WriteLine(); + foreach (var el in masRND) + Console.Write($"{el}\t"); + Console.WriteLine(); + + for (int i = 0; i < masRND.Length; i += 3) + sum += masRND[i]; + + Console.WriteLine($"\nСума елементів з індексами, які діляться на 3: {sum}"); + + bool flag; + do + { + flag = false; + for (int i = 0; i < masRND.Length / 2 - 1; i++) + if (masRND[i] > masRND[i + 1]) + { + double c = masRND[i]; + masRND[i] = masRND[i + 1]; + masRND[i + 1] = c; + flag = true; + } + } while (flag); + + Console.WriteLine("\nВпорядкувати першу половину масиву за зростанням значень елементів:\n"); + foreach (var el in masRND) + Console.Write($"{el}\t"); + Console.WriteLine("\n"); + } + + // З клавіатури вводяться числа n – кількість рядків матриці, m – кількість стовпців матриці. + // Потрібно створити матрицю типу double та заповнити її псевдовипадковими числами (діапазон вказано у варіанті). + // Виконати вказані у варіанті дії та після кожної з них вивести результат. + // При виведенні результатів використовуйте інтерпольовані рядки мови C#. + + // 1. Знайти найбільші елементи у кожному стовпцю. Серед них визначити найменший. + // 2. Поміняти порядок слідування елементів у рядках на протилежний. + // [-10.34; 53.44], 2 дробових знаки + + static void Zad_02() + { + int n = 0, m = 0; + double dMin = -10.34, dMax = 53.44; + bool f = false; + while (!f) + { + Console.Write("Введіть n: "); + f = int.TryParse(Console.ReadLine(), out n); + } + f = false; + while (!f) + { + Console.Write("Введіть m: "); + f = int.TryParse(Console.ReadLine(), out m); + } + + Console.WriteLine(); + double[,] mas = new double[n, m]; + Random rnd = new Random(); + for (int i = 0; i < mas.GetLength(0); i++) + { + for (int j = 0; j < mas.GetLength(1); j++) + { + mas[i, j] = Math.Round(rnd.NextDouble() * (dMax - dMin) + dMin, 2); + Console.Write($"{mas[i, j],6:N2}\t"); + } + Console.WriteLine(); + } + Console.WriteLine(); + + double[] masM = new double[m]; + for (int j = 0; j < mas.GetLength(1); j++) + { + masM[j] = mas[0, j]; + for (int i = 0; i < mas.GetLength(0); i++) + if (mas[i, j] > masM[j]) masM[j] = mas[i, j]; + } + + Console.WriteLine("Найбільші елементи у кожному стовпці:\n"); + foreach (var el in masM) + Console.Write($"{el,6:N2}\t"); + Console.WriteLine("\n"); + + Console.Write("Серед них найменший: "); + int min = 0; + for (int i = 0; i < masM.Length; i++) + if (masM[i] < masM[min]) min = i; + Console.WriteLine($"{masM[min],6:N2}\n"); + + Console.WriteLine("Поміняти порядок слідування елементів у рядках на протилежний:\n"); + for (int i = 0; i < mas.GetLength(0); i++) + { + for (int j = 0; j < mas.GetLength(1) / 2; j++) + { + double c = mas[i, j]; + mas[i, j] = mas[i, mas.GetLength(1) - 1 - j]; + mas[i, mas.GetLength(1) - 1 - j] = c; + } + for (int j = 0; j < mas.GetLength(1); j++) + Console.Write($"{mas[i, j],6:N2}\t"); + Console.WriteLine(); + } + Console.WriteLine(); + } + + static void Main(string[] args) + { + Console.OutputEncoding = Encoding.Unicode; + Console.InputEncoding = Encoding.Unicode; + + Zad_01(); + Zad_02(); + + //Console.ReadKey(); + } + } +} diff --git a/Cs01_1_t02/Properties/AssemblyInfo.cs b/Cs01_1_t02/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..de5649f --- /dev/null +++ b/Cs01_1_t02/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cs01_1_t02")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cs01_1_t02")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("23efc825-1ad1-490f-a44a-a4d6bce57c76")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs01_1_t03/App.config b/Cs01_1_t03/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/Cs01_1_t03/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cs01_1_t03/Cs01_1_t03.csproj b/Cs01_1_t03/Cs01_1_t03.csproj new file mode 100644 index 0000000..6e87548 --- /dev/null +++ b/Cs01_1_t03/Cs01_1_t03.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {1D12171C-1A15-4BAD-AABF-53EE97CBB05A} + Exe + Cs01_1_t03 + Cs01_1_t03 + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs01_1_t03/Cs01_1_t03.sln b/Cs01_1_t03/Cs01_1_t03.sln new file mode 100644 index 0000000..a457d70 --- /dev/null +++ b/Cs01_1_t03/Cs01_1_t03.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29806.167 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cs01_1_t03", "Cs01_1_t03.csproj", "{1D12171C-1A15-4BAD-AABF-53EE97CBB05A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1D12171C-1A15-4BAD-AABF-53EE97CBB05A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1D12171C-1A15-4BAD-AABF-53EE97CBB05A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1D12171C-1A15-4BAD-AABF-53EE97CBB05A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1D12171C-1A15-4BAD-AABF-53EE97CBB05A}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {6510C92E-276E-44D4-A336-EAE84509AED0} + EndGlobalSection +EndGlobal diff --git a/Cs01_1_t03/Program.cs b/Cs01_1_t03/Program.cs new file mode 100644 index 0000000..eab0ea2 --- /dev/null +++ b/Cs01_1_t03/Program.cs @@ -0,0 +1,87 @@ +using System; +using System.Globalization; +using System.Text; +using System.Linq; +using System.Threading; + +namespace _29022020 +{ + class Program + { + // Написати програму, для виконання операцій з множинами цілих чисел. + // Множину представляє масив випадкових чисел. + // Операції представлено на зображенні + + static void Zad_01() + { + int n = 0, m = 0; + int dMin = -50, dMax = 50; + bool f = false; + while (!f) + { + Console.Write("Введіть n: "); + f = int.TryParse(Console.ReadLine(), out n); + } + + int[] mas1 = new int[n]; + Random rnd = new Random(); + + Console.WriteLine(); + for (int i = 0; i < mas1.Length; i++) + { + mas1[i] = rnd.Next(dMin, dMax); + //Console.Write($"{mas1[i]}\t"); + Console.Write("{0,4}{1}", mas1[i], (i + 1) % 14 == 0 && (i + 1) < mas1.Length ? "\n\n" : "\t"); + } + Console.WriteLine("\n"); + + f = false; + while (!f) + { + Console.Write("Введіть m: "); + f = int.TryParse(Console.ReadLine(), out m); + } + + Console.WriteLine(); + int[] mas2 = new int[m]; + for (int i = 0; i < mas2.Length; i++) + { + mas2[i] = rnd.Next(dMin, dMax); + Console.Write("{0,4}{1}", mas2[i], (i + 1) % 14 == 0 && (i + 1) < mas2.Length ? "\n\n" : "\t"); + } + Console.WriteLine("\n"); + + Console.WriteLine("Об'єднання множин:\n"); + var result = mas1.Union(mas2); + int j = 0; + foreach (var el in result) + Console.Write("{0,4}{1}", el, ++j % 14 == 0 && j < result.Count() ? "\n\n" :"\t"); + Console.WriteLine("\n"); + + Console.WriteLine("Перетин множин:\n"); + result = mas1.Intersect(mas2); + j = 0; + foreach (var el in result) + Console.Write("{0,4}{1}", el, ++j % 14 == 0 && j < result.Count() ? "\n\n" : "\t"); + Console.WriteLine("\n"); + + Console.WriteLine("Різниця множин:\n"); + j = 0; + result = mas1.Except(mas2); + foreach (var el in result) + Console.Write("{0,4}{1}", el, ++j % 14 == 0 && j < result.Count() ? "\n\n" : "\t"); + Console.WriteLine("\n"); + } + + + static void Main(string[] args) + { + Console.OutputEncoding = Encoding.Unicode; + Console.InputEncoding = Encoding.Unicode; + + Zad_01(); + + //Console.ReadKey(); + } + } +} \ No newline at end of file diff --git a/Cs01_1_t03/Properties/AssemblyInfo.cs b/Cs01_1_t03/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..d48c0f6 --- /dev/null +++ b/Cs01_1_t03/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cs01_1_t03")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cs01_1_t03")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("1d12171c-1a15-4bad-aabf-53ee97cbb05a")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs02_1_t01/App.config b/Cs02_1_t01/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/Cs02_1_t01/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cs02_1_t01/Cs02_1_t01.csproj b/Cs02_1_t01/Cs02_1_t01.csproj new file mode 100644 index 0000000..e2ba833 --- /dev/null +++ b/Cs02_1_t01/Cs02_1_t01.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {C84BA757-5F09-4485-A80B-70B7E6726E76} + Exe + Cs02_1_t01 + Cs02_1_t01 + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs02_1_t01/Cs02_1_t01.sln b/Cs02_1_t01/Cs02_1_t01.sln new file mode 100644 index 0000000..a7e2feb --- /dev/null +++ b/Cs02_1_t01/Cs02_1_t01.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29806.167 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cs02_1_t01", "Cs02_1_t01.csproj", "{C84BA757-5F09-4485-A80B-70B7E6726E76}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C84BA757-5F09-4485-A80B-70B7E6726E76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C84BA757-5F09-4485-A80B-70B7E6726E76}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C84BA757-5F09-4485-A80B-70B7E6726E76}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C84BA757-5F09-4485-A80B-70B7E6726E76}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {7727E0AC-72ED-4B7B-916E-0F6AAD0EB20F} + EndGlobalSection +EndGlobal diff --git a/Cs02_1_t01/Program.cs b/Cs02_1_t01/Program.cs new file mode 100644 index 0000000..39a3885 --- /dev/null +++ b/Cs02_1_t01/Program.cs @@ -0,0 +1,123 @@ +using System; +using System.Linq; +using System.Text; + +namespace _07032020 +{ + class Program + { + // Користувач вводить рядок, який складається з символів. + // Символи складаються вслова, які розділяються розділовими знаками. + // Слова відокремлюються одним або декількома пробілами. + // Виконати обробку рядка відповідно до завдання. + // 1. Надрукувати найдовше і найкоротше слово в цьому рядку. + // 2. Надрукувати всі слова, які не містять голосних букв. + // 3. Надрукувати всі слова, які складаються лише з цифр. + // 4. Надрукувати всі слова, які збігаються з першим словом. + // 5. Перетворити рядок так, щоб всі букви в кожному слові були відсортовані за алфавітом. + // 6. Перетворити рядок так, щоб всі слова були відсортовані за алфавітом у зворотному порядку. + // 7. Прибрати з рядка всі зазначені символи, які введе користувач. + // 8. Підрахувати частоту входження символів у введеному тексті. Відсортуйте статистику за спаданням. + + static void Zad01() + { + string str = "Дано целое число N большее 0, найти число, полученное при прочтении числа N справа налево. " + + "Например, если было дано число 345, то программа должна вывести число 543."; + Console.WriteLine(str + "\n"); + + char[] sep = ".,+& -*?!<>«»".ToArray(); + string[] words = str.Split(sep, StringSplitOptions.RemoveEmptyEntries); + + + Console.WriteLine("1. Надрукувати найдовше і найкоротше слово в цьому рядку."); + + string[] sortedWords = words.OrderBy(f => f.Length).ThenBy(f => f).ToArray(); + Console.WriteLine("\n" + sortedWords.First() + " | " + sortedWords.Last() + "\n"); + + + Console.WriteLine("2. Надрукувати всі слова, які не містять голосних букв.\n"); + + char[] vowel = "ауоыиэяюёеієї".ToArray(); + foreach (var word in words) + if (!vowel.Any(word.Contains)) + Console.Write(word + " | "); + Console.WriteLine("\b\b\0\n"); + + + Console.WriteLine("3. Надрукувати всі слова, які складаються лише з цифр.\n"); + + foreach (var word in words) + if (word.All(Char.IsDigit)) + Console.Write(word + " | "); + Console.WriteLine("\b\b\0\n"); + + + Console.WriteLine("4. Надрукувати всі слова, які збігаються з першим словом.\n"); + + foreach (var word in words) + if (String.Compare(words.First(), word, StringComparison.CurrentCultureIgnoreCase) == 0) + Console.Write(word + " | "); + Console.WriteLine("\b\b\0\n"); + + + Console.WriteLine("5. Перетворити рядок так, щоб всі букви в кожному слові були відсортовані за алфавітом.\n"); + + sep = " ".ToArray(); + words = str.Split(sep, StringSplitOptions.RemoveEmptyEntries); + + foreach (var word in words) + { + char[] w = word.ToArray(); + Array.Sort(w, (a, b) => char.ToLower(a) - char.ToLower(b)); + if (Char.IsPunctuation(w.First())) + { + foreach (var ch in w.Skip(1)) + Console.Write(ch); + Console.Write(w.First()); + } + else + Console.Write(w); + Console.Write(" "); + } + Console.WriteLine("\b\0\n"); + + + Console.WriteLine("6. Перетворити рядок так, щоб всі слова були відсортовані за алфавітом у зворотному порядку.\n"); + + sortedWords = words.OrderByDescending(f => f).ToArray(); + foreach (var word in sortedWords) + { + if (Char.IsPunctuation(word[0])) + Console.Write(word.Substring(1, word.Length) + word[0]); + else + Console.Write(word); + Console.Write(" "); + } + Console.WriteLine("\b\0\n"); + + + Console.WriteLine("7. Прибрати з рядка всі зазначені символи, які введе користувач.\n"); + + Console.Write("Які символи прибрати: "); + string str2 = String.Join("", str.Split(Console.ReadLine().ToArray())); + Console.WriteLine("\n" + str2 + "\n"); + + + Console.WriteLine("8. Підрахувати частоту входження символів у введеному тексті. Відсортуйте статистику за спаданням.\n"); + + var map = str.GroupBy(c => c).Select(c => new { Char = c.Key, Count = c.Count() }).OrderByDescending(f => f.Count).ThenBy(f => f.Char); + foreach(var i in map) + Console.Write(i.Char + " = " + i.Count + ", "); + Console.WriteLine("\b\b\0\n"); + } + + + static void Main(string[] args) + { + Console.OutputEncoding = Encoding.Unicode; + Console.InputEncoding = Encoding.Unicode; + + Zad01(); + } + } +} diff --git a/Cs02_1_t01/Properties/AssemblyInfo.cs b/Cs02_1_t01/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..e4f3d99 --- /dev/null +++ b/Cs02_1_t01/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cs02_1_t01")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cs02_1_t01")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("c84ba757-5f09-4485-a80b-70b7e6726e76")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs02_2_t01/App.config b/Cs02_2_t01/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/Cs02_2_t01/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cs02_2_t01/Cs02_2_t01.csproj b/Cs02_2_t01/Cs02_2_t01.csproj new file mode 100644 index 0000000..3c0f2bf --- /dev/null +++ b/Cs02_2_t01/Cs02_2_t01.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {B6B89815-E3B2-496C-BD86-2FD0EA3ACEB4} + Exe + Cs02_2_t01 + Cs02_2_t01 + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs02_2_t01/Cs02_2_t01.sln b/Cs02_2_t01/Cs02_2_t01.sln new file mode 100644 index 0000000..dffb3d2 --- /dev/null +++ b/Cs02_2_t01/Cs02_2_t01.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29806.167 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cs02_2_t01", "Cs02_2_t01.csproj", "{B6B89815-E3B2-496C-BD86-2FD0EA3ACEB4}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B6B89815-E3B2-496C-BD86-2FD0EA3ACEB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B6B89815-E3B2-496C-BD86-2FD0EA3ACEB4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B6B89815-E3B2-496C-BD86-2FD0EA3ACEB4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B6B89815-E3B2-496C-BD86-2FD0EA3ACEB4}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {8F0D50D6-6178-4E6A-B4BE-6BFFC16EF270} + EndGlobalSection +EndGlobal diff --git a/Cs02_2_t01/Program.cs b/Cs02_2_t01/Program.cs new file mode 100644 index 0000000..04b61fc --- /dev/null +++ b/Cs02_2_t01/Program.cs @@ -0,0 +1,146 @@ +using System; +using System.Text; +using System.Linq; + + +namespace _29022020 +{ + class Program + { + // З клавіатури вводиться число n – кількість елементів масиву. + // Потрібно створити масив типу double та заповнити його псевдовипадковими числами (діапазон вказано у варіанті). + // Виконати вказані у варіанті дії та після кожної з них вивести результат. + // При виведенні результатів використовуйте інтерпольовані рядки мови C#. + + // 1. Знайти суму модулів елементів, які мають дробову частину більшу або рівну 0.5. + // 2. Впорядкувати другу половину масиву за спаданням значень елементів. + // [-15.6; 53.3] + // 1 дробовий знак + + static void Zad_01() + { + int n = 0; + double DMIN = -15.6, DMAX = 53.3, sum = 0; + bool f = false; + while (!f) + { + Console.Write("Введіть n: "); + f = int.TryParse(Console.ReadLine(), out n); + } + + double[] masRND = new double[n]; + Random rnd = new Random(); + for (int i = 0; i < masRND.Length; i++) + masRND[i] = Math.Round(rnd.NextDouble() * (DMAX - DMIN) + DMIN, 1); + + Console.WriteLine(); + foreach (var el in masRND) + Console.Write($"{el}\t"); + Console.WriteLine(); + + for (int i = 0; i < masRND.Length; i ++) + if(Math.Abs(masRND[i] % 1) >= 0.5) + sum += Math.Abs(masRND[i]); + + Console.WriteLine($"\nСума модулів елементів, які мають дробову частину більшу або рівну 0.5: {sum}"); + + + masRND.Skip(masRND.Length / 2).Take(masRND.Length - masRND.Length / 2) + .OrderByDescending(o => o).ToArray().CopyTo(masRND, masRND.Length / 2); + + Console.WriteLine("\nВпорядкувати другу половину масиву за спаданням значень елементів:\n"); + foreach (var el in masRND) + Console.Write($"{el}\t"); + Console.WriteLine("\n"); + } + + // З клавіатури вводяться числа n – кількість рядків матриці, m – кількість стовпців матриці. + // Потрібно створити матрицю типу double та заповнити її псевдовипадковими числами (діапазон вказано у варіанті). + // Виконати вказані у варіанті дії та після кожної з них вивести результат. + // При виведенні результатів використовуйте інтерпольовані рядки мови C#. + + // 1. Визначити кількість рядків, які не містять жодного від’ємного елемента. + // 2. Переставити рядки матриці, розміщуючи їх за спаданням сум елементів у рядках. + // [-2.9; 60.3] + // 1 дробовий знак + + static void Zad_02() + { + int n = 0, m = 0; + double DMIN = -2.9, DMAX = 60.3; + bool f = false; + while (!f) + { + Console.Write("Введіть n: "); + f = int.TryParse(Console.ReadLine(), out n); + } + f = false; + while (!f) + { + Console.Write("Введіть m: "); + f = int.TryParse(Console.ReadLine(), out m); + } + + Console.WriteLine(); + double[,] mas = new double[n, m]; + Random rnd = new Random(); + for (int i = 0; i < mas.GetLength(0); i++) + { + for (int j = 0; j < mas.GetLength(1); j++) + { + mas[i, j] = Math.Round(rnd.NextDouble() * (DMAX - DMIN) + DMIN, 1); + Console.Write($"{mas[i, j],6:N1}\t"); + } + Console.WriteLine(); + } + Console.WriteLine(); + + int count = 0; + for (int i = 0; i < mas.GetLength(0); i++) + for (int j = 0; j < mas.GetLength(1); j++) + if (mas[i, j] < 0) + { + count++; + break; + } + + Console.WriteLine($"Кількість рядків, які не містять жодного від’ємного елемента: {n - count}\n\n"); + + + Console.WriteLine("Переставити рядки матриці, розміщуючи їх за спаданням сум елементів у рядках:\n"); + + // Translate two-dimensional array into jagged array + double[][] temp = new double[n][]; + for (int i = 0; i < n; i++) + { + temp[i] = new double[m]; + for (int j = 0; j < m; j++) + { + temp[i][j] = mas[i, j]; + } + } + + temp = temp.OrderByDescending(a => a.Sum()).ToArray(); + + foreach (var el in temp) + { + Console.Write($"{el.Sum(),6:N1}\t|"); + foreach (var i in el) + Console.Write($"{i,6:N1}\t"); + Console.WriteLine(); + } + Console.WriteLine(); + } + + static void Main(string[] args) + { + Console.OutputEncoding = Encoding.Unicode; + Console.InputEncoding = Encoding.Unicode; + + Zad_01(); + Zad_02(); + + //Console.ReadKey(); + } + } +} diff --git a/Cs02_2_t01/Properties/AssemblyInfo.cs b/Cs02_2_t01/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..0444625 --- /dev/null +++ b/Cs02_2_t01/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cs02_2_t01")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cs02_2_t01")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("b6b89815-e3b2-496c-bd86-2fd0ea3aceb4")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs03_1_t01/App.config b/Cs03_1_t01/App.config new file mode 100644 index 0000000..88fa402 --- /dev/null +++ b/Cs03_1_t01/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cs03_1_t01/Cs03_1_t01.csproj b/Cs03_1_t01/Cs03_1_t01.csproj new file mode 100644 index 0000000..b6c0b34 --- /dev/null +++ b/Cs03_1_t01/Cs03_1_t01.csproj @@ -0,0 +1,62 @@ + + + + + Debug + AnyCPU + {744283F8-68DE-4D55-9E36-00D8E10A29DA} + Exe + Properties + case_1 + case 1 + v4.5.2 + 512 + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs03_1_t01/Cs03_1_t01.sln b/Cs03_1_t01/Cs03_1_t01.sln new file mode 100644 index 0000000..cc38282 --- /dev/null +++ b/Cs03_1_t01/Cs03_1_t01.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29905.134 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cs03_1_t01", "Cs03_1_t01.csproj", "{12970FF8-3882-4A2F-A339-445467D370E8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {12970FF8-3882-4A2F-A339-445467D370E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12970FF8-3882-4A2F-A339-445467D370E8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12970FF8-3882-4A2F-A339-445467D370E8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12970FF8-3882-4A2F-A339-445467D370E8}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {81FF4C7F-C158-4388-A4D3-B86843629756} + EndGlobalSection +EndGlobal diff --git a/Cs03_1_t01/GetSet.cs b/Cs03_1_t01/GetSet.cs new file mode 100644 index 0000000..1b06e14 --- /dev/null +++ b/Cs03_1_t01/GetSet.cs @@ -0,0 +1,31 @@ +namespace case_1 +{ + partial class Car + { + public int Mileage + { + get { return mileage; } + set { mileage = value; } + } + public string Make + { + get { return make; } + set { make = value; } + } + public bool Gasoline + { + get { return gasoline; } + set { gasoline = value; } + } + public int EnginePower + { + get { return enginePower; } + set { enginePower = value; } + } + public int MaxSpeed + { + get { return maxSpeed; } + set { maxSpeed = value; } + } + } +} \ No newline at end of file diff --git a/Cs03_1_t01/Program.cs b/Cs03_1_t01/Program.cs new file mode 100644 index 0000000..e4ea6d1 --- /dev/null +++ b/Cs03_1_t01/Program.cs @@ -0,0 +1,95 @@ +// 1.1 Разработать один из классов, в соответствии с полученным вариантом. +// 1.2 Реализовать не менее пяти закрытых полей (различных типов), представляющих основные характеристики рассматриваемого класса. +// 1.3 Создать не менее трех методов управления классом и методы доступа к его закрытым полям. +// 1.4 Создать метод, в который передаются аргументы по ссылке. +// 1.5 Создать не менее двух статических полей (различных типов), представляющих общие характеристики объектов данного класса. +// 1.6 Обязательным требованием является реализация нескольких перегруженных конструкторов, аргументы которых определяются студентом, исходя из специфики реализуемого класса, а так же реализация конструктора по умолчанию. +// 1.7 Создать статический конструктор. +// 1.8 Создать массив (не менее 5 элементов) объектов созданного класса. +// 1.9 Создать дополнительный метод для данного класса в другом файле, используя ключевое слово partial. + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace case_1 +{ + partial class Car + { + private int mileage; + private string make; + private bool gasoline; + private int enginePower; + private int maxSpeed; + + public static string carForeign; + public static int YearOfIssueNotLower; + + public Car() + { + mileage = 0; + make = "Default"; + gasoline = false; + enginePower = 0; + maxSpeed = 0; + //Print(); + } + public Car(int _milage, string _mark, bool _Gasoline, int _enginePower, int _maxSpeed) + { + mileage = _milage; + make = _mark; + gasoline = _Gasoline; + enginePower = _enginePower; + maxSpeed = _maxSpeed; + Print(); + } + public Car(string _mark) + { + make = _mark; + Print(); + } + + public void Print() + { + Console.WriteLine("Mileage = " + mileage); + Console.WriteLine("Make = " + make); + Console.WriteLine("Gasoline = " + gasoline); + Console.WriteLine("Engine Power = " + enginePower); + Console.WriteLine("Max Speed = " + maxSpeed); + } + public void Print(ref Car obj) + { + Console.WriteLine("Milage = " + obj.mileage); + Console.WriteLine("Make = " + obj.make); + Console.WriteLine("Gasoline = " + obj.gasoline); + Console.WriteLine("EnginePower = " + obj.enginePower); + Console.WriteLine("MaxSpeed = " + obj.maxSpeed); + } + } + + class Program + { + static void Main(string[] args) + { + Car Car1 = new Car(); + Car Car2 = new Car("Renault"); + Car[] car5Cars = new Car[5]; + for (int i = 0; i < car5Cars.Length; i++) + { + car5Cars[i] = new Car(); + } + + //Car2.Print(); + Console.WriteLine(); + Car1.MaxSpeed = 9; + Console.WriteLine(Car1.MaxSpeed); + Car1.Print(ref Car1); + Console.WriteLine(); + Car1.Print(); + Console.WriteLine(); + Console.WriteLine(Car.carForeign); + } + } +} \ No newline at end of file diff --git a/Cs03_1_t01/Properties/AssemblyInfo.cs b/Cs03_1_t01/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..0a17df7 --- /dev/null +++ b/Cs03_1_t01/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cs03_1_t01")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cs03_1_t01")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("12970ff8-3882-4a2f-a339-445467d370e8")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs03_1_t01/StaticConstructor.cs b/Cs03_1_t01/StaticConstructor.cs new file mode 100644 index 0000000..cdc42de --- /dev/null +++ b/Cs03_1_t01/StaticConstructor.cs @@ -0,0 +1,11 @@ +namespace case_1 +{ + partial class Car + { + static Car() + { + carForeign = "carEurope"; + YearOfIssueNotLower = 1990; + } + } +} \ No newline at end of file diff --git a/Cs03_1_t02/App.config b/Cs03_1_t02/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/Cs03_1_t02/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cs03_1_t02/Cs03_1_t02.csproj b/Cs03_1_t02/Cs03_1_t02.csproj new file mode 100644 index 0000000..3086e72 --- /dev/null +++ b/Cs03_1_t02/Cs03_1_t02.csproj @@ -0,0 +1,50 @@ + + + + + Debug + AnyCPU + {E3D42FAF-69A3-4EFE-8817-D1DFA5AF65D0} + Exe + hw + hw + v4.0 + 512 + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs03_1_t02/Cs03_1_t02.sln b/Cs03_1_t02/Cs03_1_t02.sln new file mode 100644 index 0000000..d648464 --- /dev/null +++ b/Cs03_1_t02/Cs03_1_t02.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29911.84 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cs03_1_t02", "Cs03_1_t02.csproj", "{A9038750-57A9-4B12-8FBF-00C806A17A6E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A9038750-57A9-4B12-8FBF-00C806A17A6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A9038750-57A9-4B12-8FBF-00C806A17A6E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A9038750-57A9-4B12-8FBF-00C806A17A6E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A9038750-57A9-4B12-8FBF-00C806A17A6E}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {39D26633-C50F-48AC-A980-EB687C58C1B7} + EndGlobalSection +EndGlobal diff --git a/Cs03_1_t02/Paper.cs b/Cs03_1_t02/Paper.cs new file mode 100644 index 0000000..8b0dd10 --- /dev/null +++ b/Cs03_1_t02/Paper.cs @@ -0,0 +1,152 @@ +using System; + +namespace hw +{ + /* + 1. +Разработать один из классов, в соответствии с полученным вариантом. + 2. +Реализовать не менее пяти закрытых полей (различных типов), представляющих основные характеристики рассматриваемого класса. + 3. +++Создать не менее трех методов управления классом + +и методы доступа к его закрытым полям. + 4. +Создать метод, в который передаются аргументы по ссылке. + 5. +-Создать не менее двух статических полей (различных типов), представляющих общие характеристики объектов данного класса. + 6. +Обязательным требованием является реализация нескольких перегруженных конструкторов, аргументы которых определяются студентом, исходя из специфики реализуемого класса, + +а так же реализация конструктора по умолчанию. + 7. +Создать статический конструктор. + 8. Создать массив (не менее 5 элементов) объектов созданного класса. + 9. Создать дополнительный метод для данного класса в другом файле, используя ключевое слово partial. + */ + + partial class Paper + { + private double _weight; + private double _height; + private double _width; + private string _internationalType; + + public static int _count; + + public Paper() + { + Weight = 80.0; + DefineInternationalType("A4", out _internationalType); + Type = "printing"; + Color = "white"; + + _count++; + } + public Paper(double weight, double height, double width, string type = "printing", string color = "white") + { + Weight = weight; + Height = height; + Width = width; + Type = type; + Color = color; + + _count++; + } + public Paper(double weight, string internationalType, string type = "printing", string color = "white") + { + Weight = weight; + InternationalType = internationalType; + Type = type; + Color = color; + + _count++; + } + + static Paper() + { + _count = 0; + } + + + public double Weight + { + get + { + return _weight; + } + set + { + if (value > 0) + _weight = value; + } + } + public double Height + { + get + { + return _height; + } + set + { + if (value > 0) + _height = value; + } + } + public double Width + { + get + { + return _width; + } + set + { + if (value > 0) + _width = value; + } + } + public string Type { get; set; } + public string InternationalType + { + get + { + return _internationalType; + } + set + { + try + { + DefineInternationalType(value, out _internationalType); + } + catch (UndefinedTypeException) + { + _internationalType = "Custom"; + } + } + } + public string Color { get; set; } + + public void DefineInternationalType(string internationalType, out string type) + { + if (String.Compare(internationalType, "A2", true) == 0) + { + Height = 594.0; + Width = 420.0; + type = "A2"; + } + else if (String.Compare(internationalType, "A3", true) == 0) + { + Height = 420.0; + Width = 297.0; + type = "A3"; + } + else if (String.Compare(internationalType, "A4", true) == 0) + { + Height = 297.0; + Width = 210.0; + type = "A4"; + } + else if (String.Compare(internationalType, "A5", true) == 0) + { + Height = 210.0; + Width = 148.0; + type = "A5"; + } + else + { + throw (new UndefinedTypeException("Введенный тип не существует или находиться в разработке")); + } + } + } +} diff --git a/Cs03_1_t02/PaperPartial.cs b/Cs03_1_t02/PaperPartial.cs new file mode 100644 index 0000000..2584d39 --- /dev/null +++ b/Cs03_1_t02/PaperPartial.cs @@ -0,0 +1,23 @@ +using System; + +namespace hw +{ + public partial class Paper + { + public string PaperInfo() + { + return $"Format: {InternationalType}\nWeight: {Weight}\nHeight: {Height}\nWidth: {Width}\nType: {Type}\nColor: {Color}"; + } + public void PaperInfo(out string[] info) + { + int size = 6; + info = new string[size]; + info[1] = "Format: " + InternationalType; + info[2] = "Weight: " + Weight; + info[3] = "Height: " + Height; + info[4] = "Width: " + Width; + info[5] = "Type: " + Type; + info[6] = "Color: " + Color; + } + } +} diff --git a/Cs03_1_t02/Program.cs b/Cs03_1_t02/Program.cs new file mode 100644 index 0000000..6661b86 --- /dev/null +++ b/Cs03_1_t02/Program.cs @@ -0,0 +1,33 @@ +using System; +using System.Text; + +namespace hw +{ + class Program + { + static void Main(string[] args) + { + Console.OutputEncoding = Encoding.Unicode; + Console.InputEncoding = Encoding.Unicode; + + Paper[] papers = new Paper[5]; + + papers[0] = new Paper(210, "A2"); + papers[1] = new Paper(80, "A4"); + papers[2] = new Paper(120, "A4"); + papers[3] = new Paper(80, "A5"); + papers[4] = new Paper(60, "A3"); + + for (int i = 0; i < papers.Length; i++) + { + Console.WriteLine("-----------------------------------"); + Console.WriteLine("[" + i + "]\n" + papers[i].PaperInfo()); + Console.WriteLine("-----------------------------------"); + } + + Console.WriteLine("\nСоздано объектов класса: " + Paper._count + "\n"); + //Console.ReadLine(); + + } + } +} diff --git a/Cs03_1_t02/Properties/AssemblyInfo.cs b/Cs03_1_t02/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..75454fd --- /dev/null +++ b/Cs03_1_t02/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("hw")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("hw")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("e3d42faf-69a3-4efe-8817-d1dfa5af65d0")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs03_1_t02/UndefinedTypeException.cs b/Cs03_1_t02/UndefinedTypeException.cs new file mode 100644 index 0000000..bc54efb --- /dev/null +++ b/Cs03_1_t02/UndefinedTypeException.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace hw +{ + class UndefinedTypeException : Exception + { + public UndefinedTypeException(string message) : base(message) { } + } +} diff --git a/Cs04_1_t01_Bankomat/App.config b/Cs04_1_t01_Bankomat/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/Cs04_1_t01_Bankomat/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cs04_1_t01_Bankomat/Cs04_1_t01.csproj b/Cs04_1_t01_Bankomat/Cs04_1_t01.csproj new file mode 100644 index 0000000..6067b14 --- /dev/null +++ b/Cs04_1_t01_Bankomat/Cs04_1_t01.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {E3EC3FEB-3732-4731-939A-AB4DFFFFBC66} + Exe + Cs04_1_t01 + Cs04_1_t01 + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs04_1_t01_Bankomat/Cs04_1_t01.sln b/Cs04_1_t01_Bankomat/Cs04_1_t01.sln new file mode 100644 index 0000000..70c199e --- /dev/null +++ b/Cs04_1_t01_Bankomat/Cs04_1_t01.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29911.84 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cs04_1_t01", "Cs04_1_t01.csproj", "{E3EC3FEB-3732-4731-939A-AB4DFFFFBC66}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E3EC3FEB-3732-4731-939A-AB4DFFFFBC66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E3EC3FEB-3732-4731-939A-AB4DFFFFBC66}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E3EC3FEB-3732-4731-939A-AB4DFFFFBC66}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E3EC3FEB-3732-4731-939A-AB4DFFFFBC66}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {1E60CE9B-867B-4FF3-A3F4-E68B471FDD0D} + EndGlobalSection +EndGlobal diff --git a/Cs04_1_t01_Bankomat/Program.cs b/Cs04_1_t01_Bankomat/Program.cs new file mode 100644 index 0000000..62153dc --- /dev/null +++ b/Cs04_1_t01_Bankomat/Program.cs @@ -0,0 +1,297 @@ +// Написать приложение, имитирующее работу банкомата +// Реализовать классы Bank, Client, Account. Изначально клиенту нужно открыть счёт в банке, +// получить номер счёта, получить свой пароль, положить сумму на счёт. +// 1. Приложение предлагает ввести пароль предполагаемой кредитной карточки, даётся 3 попытки на правильный ввод пароля. +// Если попытки исчерпаны, приложение выдаёт соответствующее сообщение и завершается. +// 2. При успешном вводе пароля выводится меню. Пользователь может выбрать одно из нескольких действий: +// - вывод баланса на экран +// - пополнение счёта +// - снять деньги со счёта +// - выход +// 3. Если пользователь выбирает вывод баланса на экран, приложение отображает состояние предполагаемого счёта, +// после чего предлагает либо вернуться в меню, либо совершить выход. +// 4. Если пользователь выбирает пополнение счёта, программа запрашивает сумму для пополнения и выполняет операцию, +// сопровождая её выводом соответствующего комментария. Затем следует предложение вернуться в меню или выполнить выход. +// 5. Если пользователь выбирает снять деньг со счёта, программа запрашивает сумму. +// Если сумма превышает сумму счёта пользователя, программа выдаёт сообщение и переводит пользователя в меню. +// Иначе отображает сообщение о том, что сумма снята со счёта и уменьшает сумму счёта на указанную величину. + + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace ConsoleApp3 +{ + class Menu + { + const ConsoleColor FOREGROUND = ConsoleColor.Gray; + const ConsoleColor ITEMSELECT = ConsoleColor.White; + const int MENULEFT = 20; + const int MENUTOP = 4; + static string[] menuItems; + public static string[] MenuItems { set { menuItems = value; } } + public static int Selected { get; private set; } = 0; + static void PaintMenu() + { + Console.ForegroundColor = FOREGROUND; + Console.Clear(); + Console.SetCursorPosition(MENULEFT, MENUTOP); + Console.WriteLine("......MENU......\n"); + for (int i = 0; i < menuItems.Length; i++) + { + Console.SetCursorPosition(MENULEFT, MENUTOP + i + 1); + if (i == Selected) + { + Console.ForegroundColor = ITEMSELECT; + Console.Write("=>"); + } + else + { + Console.Write(" "); + } + Console.WriteLine(menuItems[i]); + Console.ForegroundColor = FOREGROUND; + } + } + public static void MenuSelect() + { + ConsoleKey c = ConsoleKey.DownArrow; + while (true) + { + if (c == ConsoleKey.UpArrow || c == ConsoleKey.DownArrow) + { + PaintMenu(); + } + c = Console.ReadKey().Key; + switch (c) + { + case ConsoleKey.Escape: //Esc + Selected = -1; + return; + case ConsoleKey.DownArrow: //down + ++Selected; + if (Selected == menuItems.Length) Selected = 0; + break; + case ConsoleKey.UpArrow://up + if (Selected == 0) Selected = menuItems.Length; + --Selected; + break; + case ConsoleKey.Enter: //Enter + return; + } + } + } + + } + + class Account + { + public string Currency { get; } + public double Amount { get; set; } + public ulong AccountNumber { get; } + public string Pin { get; set; } + public Account(string cur) + { + Currency = cur; + AccountNumber = ulong.Parse(DateTime.Now.ToString("yyyyddHHmmssffff")); + Amount = 0; + Pin = "0000"; + } + } + + class Client + { + public static int count; + public int Id { get; } + public string Name { get; } + List accounts = new List(); + public Client(string n) + { + Name = n; + accounts.Add(new Account("UAH")); + Id = ++count; + } + public ulong GetAccountNumber(string cur) + { + return accounts.Where(i => i.Currency == cur).FirstOrDefault().AccountNumber; + } + public void SetPinCode(string pin, ulong num) + { + accounts.Where(i => i.AccountNumber == num).FirstOrDefault().Pin = pin; + } + public string GetPinCode(ulong num) + { + return accounts.Where(i => i.AccountNumber == num).FirstOrDefault().Pin; + } + public double GetAmount(ulong num) + { + return accounts.Where(i => i.AccountNumber == num).FirstOrDefault().Amount; + } + public void Transaction(int sum, ulong num) + { + accounts.Where(i => i.AccountNumber == num).FirstOrDefault().Amount += sum; + } + } + + class Bank + { + public string BankName { get; set; } + public int CurrentClient { get; set; } + List clients = new List(); + string PinInput(int len, bool hide = false) + { + string pass = ""; + do + { + ConsoleKeyInfo key = Console.ReadKey(true); + // Backspace Should Not Work + if (key.Key != ConsoleKey.Backspace && key.Key != ConsoleKey.Enter && + (key.Key >= ConsoleKey.D0 && key.Key <= ConsoleKey.D9 || key.Key >= ConsoleKey.NumPad0 && key.Key <= ConsoleKey.NumPad9) && + pass.Length < len) + { + pass += key.KeyChar; + if (hide) Console.Write("*"); + else Console.Write(key.KeyChar); + } + else + { + if (key.Key == ConsoleKey.Backspace && pass.Length > 0) + { + pass = pass.Substring(0, (pass.Length - 1)); + Console.Write("\b \b"); + } + else if (key.Key == ConsoleKey.Enter && (hide ? pass.Length == len : pass.Length <= len)) + { + break; + } + } + } while (true); + return pass; + } + bool PinCheck() + { + int attempt = 1; + string pinEntered = ""; + string pinStored = clients.Where(i => i.Id == CurrentClient).FirstOrDefault(). + GetPinCode(clients.Where(i => i.Id == CurrentClient).FirstOrDefault().GetAccountNumber("UAH")); + do + { + Console.Write("\nВведите ПИН-код (4 цифры)" + (attempt > 1 ? ", " + attempt + " попытка: " : ": ")); + pinEntered = PinInput(4, true); + if (pinEntered == pinStored) + return true; + attempt++; + } while (attempt < 4); + return false; + } + public void NewClient() + { + Console.Write("Чтобы открыть счёт введите ФИО: "); + string name = Console.ReadLine(); + clients.Add(new Client(name)); + Console.WriteLine("\n" + clients.Where(i => i.Id == Client.count).FirstOrDefault().Name + ", поздравляем, Ваш счет открыт!"); + ulong AccountNumber = clients.Where(i => i.Id == Client.count).FirstOrDefault().GetAccountNumber("UAH"); + Console.WriteLine("Номер счёта в UAH: " + AccountNumber + "\n"); + CurrentClient = Client.count; + do + { + Console.Write("Придумайте ПИН-код (4 цифры): "); + string pass1 = PinInput(4, true); + Console.Write("\nПовторите ПИН-код: "); + string pass2 = PinInput(4, true); + if (pass1 == pass2) + { + clients.Where(i => i.Id == Client.count).FirstOrDefault().SetPinCode(pass1, AccountNumber); + break; + } + else Console.WriteLine("\n\nПИН-коды не совпадают. Попробуйте ещё раз!"); + } while (true); + + Console.WriteLine("\nПИН-код изменен!"); + + Console.Write("\nНа какую сумму пополнить счёт? "); + int sum = int.Parse(PinInput(10)); + clients.Where(i => i.Id == Client.count).FirstOrDefault().Transaction(sum, AccountNumber); + Console.WriteLine("\nВаш счёт пополнен!"); + Console.WriteLine("\nТеперь можете воспользоваться банкоматом.\nДля продолжения нажмите любую клавишу..."); + Console.ReadKey(); + } + public void Atm() + { + Console.Clear(); + if (PinCheck()) + { + Menu.MenuItems = new string[] { + "Вывод баланса на экрану", + "Пополнение счёта", + "Снять деньги со счёта", + "Выход" }; + + while (true) + { + Menu.MenuSelect(); + Console.Clear(); + if (Menu.Selected < 0) break; + if (Menu.Selected == 0) + { + Console.Write("Баланс: " + clients.Where(i => i.Id == CurrentClient).FirstOrDefault(). + GetAmount(clients.Where(i => i.Id == CurrentClient).FirstOrDefault().GetAccountNumber("UAH")) + " грн.\n"); + }; + if (Menu.Selected == 1) + { + Console.Write("На какую сумму пополнить счёт? "); + int sum = int.Parse(PinInput(10)); + clients.Where(i => i.Id == CurrentClient).FirstOrDefault(). + Transaction(sum, clients.Where(i => i.Id == CurrentClient).FirstOrDefault().GetAccountNumber("UAH")); + Console.WriteLine("\n\nВаш счёт пополнен!\n"); + } + if (Menu.Selected == 2) + { + double amount = clients.Where(i => i.Id == CurrentClient).FirstOrDefault(). + GetAmount(clients.Where(i => i.Id == CurrentClient).FirstOrDefault().GetAccountNumber("UAH")); + Console.Write("Какую сумму хотите получить? "); + int sum = int.Parse(PinInput(10)); + if (sum < amount) + { + clients.Where(i => i.Id == CurrentClient).FirstOrDefault(). + Transaction(-sum, clients.Where(i => i.Id == CurrentClient).FirstOrDefault().GetAccountNumber("UAH")); + Console.WriteLine("\n\nВозьмите деньги!\nНе забудьте забрать карту!\n"); + } + else + { + Console.Write("\n\nБаланс Вашего счета меньше указанной суммы.\n"); + } + }; + if (Menu.Selected == 3) + { + break; + }; + Console.ForegroundColor = ConsoleColor.DarkGreen; + Console.WriteLine("\ndone\n"); + Console.ReadKey(); + } + } + else + { + Console.WriteLine("\n\nВы 3 раза ввели неверный ПИН-код.\nВаша карта изъята! До свидания!\n"); + } + } + } + + class Program + { + static void Main(string[] args) + { + Console.OutputEncoding = Encoding.Unicode; + Console.InputEncoding = Encoding.Unicode; + + Bank bank = new Bank { BankName = "Учебный" }; + Console.WriteLine("Добро пожаловать в банк \"" + bank.BankName + "\"!"); + bank.NewClient(); + bank.Atm(); + + } + } +} diff --git a/Cs04_1_t01_Bankomat/Properties/AssemblyInfo.cs b/Cs04_1_t01_Bankomat/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..e4d64cc --- /dev/null +++ b/Cs04_1_t01_Bankomat/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cs04_1_t01")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cs04_1_t01")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("e3ec3feb-3732-4731-939a-ab4dffffbc66")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs04_1_t02/App.config b/Cs04_1_t02/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/Cs04_1_t02/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cs04_1_t02/Cs04_1_t02.csproj b/Cs04_1_t02/Cs04_1_t02.csproj new file mode 100644 index 0000000..247e0e7 --- /dev/null +++ b/Cs04_1_t02/Cs04_1_t02.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {21A9EB61-8971-4C0D-A22A-8BDCAEF875F2} + Exe + Cs04_1_t02 + Cs04_1_t02 + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs04_1_t02/Cs04_1_t02.sln b/Cs04_1_t02/Cs04_1_t02.sln new file mode 100644 index 0000000..8233894 --- /dev/null +++ b/Cs04_1_t02/Cs04_1_t02.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30002.166 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cs04_1_t02", "Cs04_1_t02.csproj", "{21A9EB61-8971-4C0D-A22A-8BDCAEF875F2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {21A9EB61-8971-4C0D-A22A-8BDCAEF875F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {21A9EB61-8971-4C0D-A22A-8BDCAEF875F2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {21A9EB61-8971-4C0D-A22A-8BDCAEF875F2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {21A9EB61-8971-4C0D-A22A-8BDCAEF875F2}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {383F1C64-6FB2-4820-AD45-1116FCB61902} + EndGlobalSection +EndGlobal diff --git a/Cs04_1_t02/Program.cs b/Cs04_1_t02/Program.cs new file mode 100644 index 0000000..7c727d3 --- /dev/null +++ b/Cs04_1_t02/Program.cs @@ -0,0 +1,92 @@ +// В С # индексация начинается с нуля, но в некоторых языках программирования это не так. +// Например, в Turbo Pascal индексация массиве начинается с 1. +// Напишите класс RangeOfArray, который позволяет работать с массивом такого типа, +// в котором индексный диапазон устанавливается пользователем. Например, в диапазоне от 6 до 10, или от -9 до 15. +// Подсказка: В классе можно объявить две переменных, которые будут содержать верхний и нижний индекс допустимого диапазона. + +using System; +using System.IO; + +namespace SimpleProject +{ + public class RangeOfArray + { + private int lowerBound; + private int upperBound; + private int[] arr; + public RangeOfArray(int lowerIndex, int upperIndex) + { + lowerBound = lowerIndex; + upperBound = upperIndex; + arr = new int[Math.Abs(upperIndex - lowerIndex) + 1]; + } + public int Length => arr.Length; + public int this[int index] + { + get + { + if (index < lowerBound || index > upperBound) + { + throw new IndexOutOfRangeException(); + } + return arr[index + Math.Abs(lowerBound)]; + } + set => arr[index + Math.Abs(lowerBound)] = value; + } + public override string ToString() + { + StringWriter strWriter = new StringWriter(); + for (int i = 0; i < arr.Length; i++) + { + strWriter.Write("{0,4}{1}", arr[i], (i + 1) % 14 == 0 && (i + 1) < arr.Length ? "\n\n" : "\t"); + } + strWriter.WriteLine("\n"); + return strWriter.ToString(); + } + + } + public class Program + { + public static void Main() + { + Random rnd = new Random(); + int lowerIndex = 0, uperIndex = 0; + bool f = false; + while (!f) + { + Console.Write("Введите нижний индекс диапазона массива: "); + f = int.TryParse(Console.ReadLine(), out lowerIndex); + } + f = false; + while (!f) + { + Console.Write("Введите верхний индекс диапазона массива: "); + f = int.TryParse(Console.ReadLine(), out uperIndex); + } + + if (lowerIndex < uperIndex) + { + RangeOfArray mas = new RangeOfArray(lowerIndex, uperIndex); + + try + { + Console.WriteLine(); + for (int i = lowerIndex; i <= uperIndex; i++) + { + mas[i] = rnd.Next(100); + } + Console.WriteLine(mas); + + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + } + } + else + { + Console.WriteLine("Введены некорректные индексы"); + } + } + } +} \ No newline at end of file diff --git a/Cs04_1_t02/Properties/AssemblyInfo.cs b/Cs04_1_t02/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..172ed6f --- /dev/null +++ b/Cs04_1_t02/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cs04_1_t02")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cs04_1_t02")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("21a9eb61-8971-4c0d-a22a-8bdcaef875f2")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs05_1_t01/Incapsulation.RationalNumbers.csproj b/Cs05_1_t01/Incapsulation.RationalNumbers.csproj new file mode 100644 index 0000000..9b03b67 --- /dev/null +++ b/Cs05_1_t01/Incapsulation.RationalNumbers.csproj @@ -0,0 +1,73 @@ + + + + + Debug + AnyCPU + {86F4F4AD-2459-425B-B99C-5D5B499437C1} + Exe + Properties + Incapsulation.RationalNumbers + Incapsulation.RationalNumbers + v4.7.2 + 512 + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + False + .\nunit.framework.dll + + + False + .\nunitlite.dll + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs05_1_t01/Incapsulation.RationalNumbers.sln b/Cs05_1_t01/Incapsulation.RationalNumbers.sln new file mode 100644 index 0000000..ae583b9 --- /dev/null +++ b/Cs05_1_t01/Incapsulation.RationalNumbers.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27130.2003 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Incapsulation.RationalNumbers", "Incapsulation.RationalNumbers.csproj", "{86F4F4AD-2459-425B-B99C-5D5B499437C1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {86F4F4AD-2459-425B-B99C-5D5B499437C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {86F4F4AD-2459-425B-B99C-5D5B499437C1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {86F4F4AD-2459-425B-B99C-5D5B499437C1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {86F4F4AD-2459-425B-B99C-5D5B499437C1}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {73B96712-C110-4CDF-A181-5B0197BBF025} + EndGlobalSection +EndGlobal diff --git a/Cs05_1_t01/Program.cs b/Cs05_1_t01/Program.cs new file mode 100644 index 0000000..aa2dbb8 --- /dev/null +++ b/Cs05_1_t01/Program.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; +using System.Linq; +using NUnitLite; + +class Program +{ + static void Main(string[] args) + { + new AutoRun().Execute(args); + } +} diff --git a/Cs05_1_t01/Properties/AssemblyInfo.cs b/Cs05_1_t01/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..0c0de8a --- /dev/null +++ b/Cs05_1_t01/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Incapsulation.Rational")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Incapsulation.Rational")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("86f4f4ad-2459-425b-b99c-5d5b499437c1")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs05_1_t01/Rational.cs b/Cs05_1_t01/Rational.cs new file mode 100644 index 0000000..cf34e8b --- /dev/null +++ b/Cs05_1_t01/Rational.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Incapsulation.RationalNumbers +{ + /// + /// Розробити клас Rational - дріб. + /// містить Numerator -чисельник, Denominator - знаменник + /// Клас має проходити всі тести в проекті. + /// + public class Rational + { + public int Numerator { get; private set; } + public int Denominator { get; private set; } + private void Cancellation() + { + if (Numerator != 0) + { + int m = Math.Abs(Denominator), + n = Math.Abs(Numerator), + ost = m % n; + while (ost != 0) + { + m = n; n = ost; + ost = m % n; + } + int nod = n; + if (nod != 1) + { + Numerator /= nod; Denominator /= nod; + } + } + } // сокращение дроби + public Rational(int n, int d) + { + Numerator = (d < 0 && n > 0 || d < 0 && n < 0) ? -n : n; + Denominator = (n == 0) ? 1 : Math.Abs(d); + Cancellation(); + } + public Rational(int n) : this(n, 1) { } + public bool IsNan => Denominator == 0 ? true : false; + public static Rational operator +(Rational A, Rational B) + { + int numerator = A.Numerator * B.Denominator + B.Numerator * A.Denominator; + int denominator = A.Denominator * B.Denominator; + return new Rational(numerator, denominator); + } + public static Rational operator -(Rational A, Rational B) + { + int numerator = A.Numerator * B.Denominator - B.Numerator * A.Denominator; + int denominator = A.Denominator * B.Denominator; + return new Rational(numerator, denominator); + } + public static Rational operator *(Rational A, Rational B) + { + int numerator = A.Numerator * B.Numerator; + int denominator = A.Denominator * B.Denominator; + return new Rational(numerator, denominator); + } + public static Rational operator /(Rational A, Rational B) + { + int numerator = (B.Denominator == 0) ? 1 : A.Numerator * B.Denominator; + int denominator = (B.Denominator == 0) ? 0 : A.Denominator * B.Numerator; + return new Rational(numerator, denominator); + } + public static implicit operator double(Rational A) + { + return (A.Numerator + 0.0) / A.Denominator; + } + public static implicit operator Rational(int A) + { + return new Rational(A); + } + } +} diff --git a/Cs05_1_t01/Rational_should.cs b/Cs05_1_t01/Rational_should.cs new file mode 100644 index 0000000..185e1fd --- /dev/null +++ b/Cs05_1_t01/Rational_should.cs @@ -0,0 +1,149 @@ +using NUnit.Framework; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Incapsulation.RationalNumbers +{ + [TestFixture] + public class Rational_should + { + public void Equal(int numerator, int denominator, Rational b) + { + Assert.False(b.IsNan); + Assert.AreEqual(numerator, b.Numerator); + Assert.AreEqual(denominator, b.Denominator); + } + + [Test] + public void InitializeSimpleRatioCorrectly() + { + Equal(1, 2, new Rational(1, 2)); + } + + [Test] + public void InitializeWitoutDenomerator() + { + Equal(4, 1, new Rational(4)); + } + + [Test] + public void InitializeWithZeroDenomerator() + { + Assert.True(new Rational(2, 0).IsNan); + } + + public void BeCorrectWithZeroNumerator() + { + Equal(0, 1, new Rational(0, 5)); + } + + [Test] + public void InitializeAndReduce1() + { + Equal(1, 2, new Rational(2, 4)); + } + + [Test] + public void InitializeAndReduce2() + { + Equal(-1, 2, new Rational(-2, 4)); + } + + [Test] + public void InitializeAndReduce3() + { + Equal(-1, 2, new Rational(2, -4)); + } + + [Test] + public void InitializeAndReduce4() + { + Equal(1, 2, new Rational(-2, -4)); + } + + [Test] + public void Sum() + { + Equal(1, 2, new Rational(1, 4) + new Rational(1, 4)); + } + + [Test] + public void SumWithNan() + { + Assert.True((new Rational(1, 2) + new Rational(1, 0)).IsNan); + Assert.True((new Rational(1, 0) + new Rational(1, 2)).IsNan); + } + + [Test] + public void Subtract() + { + Equal(1, 4, new Rational(1, 2) - new Rational(1, 4)); + } + + [Test] + public void SubtractWithNan() + { + Assert.True((new Rational(1, 2) - new Rational(1, 0)).IsNan); + Assert.True((new Rational(1, 0) - new Rational(1, 2)).IsNan); + } + + + [Test] + public void Multiply() + { + Equal(-1, 4, new Rational(-1, 2) * new Rational(1, 2)); + } + + [Test] + public void MultiplyWithNan() + { + Assert.True((new Rational(1, 2) * new Rational(1, 0)).IsNan); + Assert.True((new Rational(1, 0) * new Rational(1, 2)).IsNan); + } + + + [Test] + public void Divide() + { + Equal(-1, 2, new Rational(1, 4) / new Rational(-1, 2)); + } + + [Test] + public void DivideWithNan() + { + Assert.True((new Rational(1, 2) / new Rational(1, 0)).IsNan); + Assert.True((new Rational(1, 0) / new Rational(1, 2)).IsNan); + } + + [Test] + public void DivideToZero() + { + Assert.True((new Rational(1, 2) / new Rational(0, 5)).IsNan); + } + + [Test] + public void ConvertToDouble() + { + double v = new Rational(1, 2); + Assert.AreEqual(0.5, v, 1e-7); + } + + [Test] + public void ConvertFromInt() + { + Rational r = 5; + Equal(5, 1, r); + } + + [Test] + public void ExplicitlyConvertToInt() + { + int a = (int)new Rational(2, 1); + Assert.AreEqual(2, a); + } + + } +} diff --git a/Cs05_1_t01/app.config b/Cs05_1_t01/app.config new file mode 100644 index 0000000..312bb3f --- /dev/null +++ b/Cs05_1_t01/app.config @@ -0,0 +1,3 @@ + + + diff --git a/Cs05_1_t01/nunit.framework.dll b/Cs05_1_t01/nunit.framework.dll new file mode 100644 index 0000000000000000000000000000000000000000..a467965ea1ebce24becb0b05051edef249244020 GIT binary patch literal 314880 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 z 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

N&n`7r13r3$6+CS6$047i?}Z_5p?6n)zkCZDzIW zlXoi=8>sPpRAD=4q(e7)Qp5=&>CjpD4>7iNduON=B#k;hKLy9#EV*??$k&KD$(Pv* zGvwmA&UkJXJ}&Y^jHPKDRGX>TfAHRBQ1{2Jm`+&JoKZ*?ro4=li{;4`=s9S1i1mhHLkF+^>cxP&Wae$?PG)cV@zQO z*J4u+n~Pmh2084>Ztx9w?ra&W*Q2G$W<3oWcs|T-*mN{p5OIL$XCNzMds%}_Ss&Tz z+?3u$iQD0|7bR}ANv%V+YwIH$S$olS%C@>e`ZSd);0&;a3hZ8m9Xf$+Xsm(#Wl@A_ zC*)K_pxWR`q6T4i7&kyFa+9-T=uJ|=efA%+nCWFfPKJqA3frgC>K5uFBh`o7yN^u4 z+2}S>{a7ewgGDhT(i4r2_H3P8NKNgn)JX+EyKEHBi<}9QSV(fvr=dWyg z?6-gV`oxPb{Mq{0Mf23}wckAX$D3aM))zBdqeH5xgFuG-F)6<;+hnm=mAB{?zrqJbd6m471{0l_d5m@<`aK=~`}7ozp|5 z);`2kqUxtA$Az>{B^2oaoIA2YtZA1aO#N z(NA;}_{`xy>)ap+W~u5J{tAHsYQMmN z2)eK$!Uxf73Q_<~NfZ3yLb;FKhWTw-hGW8ru9wfsd{QdVMp>>Y6{+uJ{wU1Ruyb{J zpTvsYw132tGEG_dX!1jT-46Oe2u)WT!sTR{opR8l{YH!>XcYsrodc+ga;!0o?E)VH zvJtenE-lx9T?o%}8elo(xf;@^B9V5H-HD(k;H=JUw2Gi6TTzxSfosa%lwpBL{L$T0n)ox@ArKkd`;=se)>W04*J%Sa|ZLwskp29qhfF#+4-IFKV*Sl Sjj+v7=OqfHcgp{r1^xwPJgON0 literal 0 HcmV?d00001 diff --git a/Cs05_1_t01/nunitlite.dll b/Cs05_1_t01/nunitlite.dll new file mode 100644 index 0000000000000000000000000000000000000000..44366ef0650e19b10999ea1a2de6c6fcabe3a8d2 GIT binary patch literal 79872 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 z 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

  • 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 literal 0 HcmV?d00001 diff --git a/Cs06_1_t01/App.config b/Cs06_1_t01/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/Cs06_1_t01/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cs06_1_t01/Cs06_1_t01.sln b/Cs06_1_t01/Cs06_1_t01.sln new file mode 100644 index 0000000..60b5f51 --- /dev/null +++ b/Cs06_1_t01/Cs06_1_t01.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30011.22 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Day7 (Tanks)", "Day7 (Tanks).csproj", "{E1124D31-82AC-47D7-B575-88BCDCB1FE65}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyClassLib", "..\MyClassLib\MyClassLib.csproj", "{AE05BCED-46EA-4852-9F79-65EEC72F5B6D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E1124D31-82AC-47D7-B575-88BCDCB1FE65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E1124D31-82AC-47D7-B575-88BCDCB1FE65}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E1124D31-82AC-47D7-B575-88BCDCB1FE65}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E1124D31-82AC-47D7-B575-88BCDCB1FE65}.Release|Any CPU.Build.0 = Release|Any CPU + {AE05BCED-46EA-4852-9F79-65EEC72F5B6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AE05BCED-46EA-4852-9F79-65EEC72F5B6D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AE05BCED-46EA-4852-9F79-65EEC72F5B6D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AE05BCED-46EA-4852-9F79-65EEC72F5B6D}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {3DE6B2F4-1071-4D1F-83F3-29447DD91817} + EndGlobalSection +EndGlobal diff --git a/Cs06_1_t01/Day7 (Tanks).csproj b/Cs06_1_t01/Day7 (Tanks).csproj new file mode 100644 index 0000000..8a70b55 --- /dev/null +++ b/Cs06_1_t01/Day7 (Tanks).csproj @@ -0,0 +1,59 @@ + + + + + Debug + AnyCPU + {E1124D31-82AC-47D7-B575-88BCDCB1FE65} + Exe + Cs06_1_t01 + Cs06_1_t01 + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + {ae05bced-46ea-4852-9f79-65eec72f5b6d} + MyClassLib + + + + \ No newline at end of file diff --git a/Cs06_1_t01/Program.cs b/Cs06_1_t01/Program.cs new file mode 100644 index 0000000..04534ce --- /dev/null +++ b/Cs06_1_t01/Program.cs @@ -0,0 +1,91 @@ +// Цель: Разработать программу, моделирующую танковый бой. +// В танковом бою участвуют 5 танков «Т-34» и 5 танков «Pantera». +// Каждый танк («Т-34» и «Pantera») описываются параметрами: «Боекомплект», «Уровень брони», «Уровень маневренности». +// Значение данных параметров задаются случайными числами от 0 до 100. +// Каждый танк участвует в парной битве, т.е.первый танк «Т-34» сражается с первым танком «Pantera» и т.д. +// Победа присуждается тому танку, который превышает противника по двум и более параметрам из трех (пример: см. программу). +// Основное требование: сражение (проверку на победу в бою) реализовать путем перегрузки оператора «*» (произведение). + +// 1. В решение добавить новый проект с именем «Day7(Tanks)», в котором будут промоделированы танковые сражения. +// В данный проект добавить ссылку на библиотеку классов «MyClassLib». +// 2. В библиотеке классов «MyClassLib» создать папку «WordOfTanks», а в ней разработать класс с именем «Tank». + +// В классе должно быть реализовано +// • Поля +// закрытые поля, предназначенные для представления +// 1. Названия танка. +// 2. Уровня боекомплекта танка. +// 3. Уровня брони. +// 4. Уровня маневренности. + +// • Конструктор +// Конструктор с параметрами, обеспечивающий инициализацию всех полей класса Tank. +// При этом Боекомплект, Уровень брони, Уровень маневренности инициализируются случайными числами от 0 до 100 %. +// Название танка передаются в конструктор из функции Main(). + +// • Перегрузка оператора «^» (произведение) +// При перегрузке оператора «^» (произведение) должна быть реализована проверка на победу в бою одного танка по отношению к другому. +// Критерий победы — победивший танк должен превышать проигравший танк не менее чем по двум из трех параметров (Боекомплект, Уровень брони, Уровень маневренности). + +// • Методы: +// Получение текущих значений параметров танка: Боекомплект, Уровень брони, Уровень маневренности в виде строки. + +// Важно! При разработке программы использовать обработку исключительных ситуаций. +// Варианты возможных исключительных ситуаций рассмотреть самостоятельно! + + +using System; +using MyClassLib; + +namespace Day7__Tanks_ +{ + class Program + { + static void Main(string[] args) + { + const int COUNT_OF_TANKS = 5; + const int END_RANGE = 100 + 1; + const string FIRST_KIND_OF_TANK = "T-34"; + const string SECOND_KIND_OF_TANK = "Pantera"; + int weapon; + int armourLevel; + int manoeuvrability; + + Random rnd = new Random(); + Tank[] t34 = new Tank[COUNT_OF_TANKS]; + Tank[] pantera = new Tank[COUNT_OF_TANKS]; + + for (int i = 0; i < COUNT_OF_TANKS; i++) + { + weapon = rnd.Next(END_RANGE); + armourLevel = rnd.Next(END_RANGE); + manoeuvrability = rnd.Next(END_RANGE); + t34[i] = new Tank(FIRST_KIND_OF_TANK, weapon, armourLevel, manoeuvrability); + + weapon = rnd.Next(END_RANGE); + armourLevel = rnd.Next(END_RANGE); + manoeuvrability = rnd.Next(END_RANGE); + pantera[i] = new Tank(SECOND_KIND_OF_TANK, weapon, armourLevel, manoeuvrability); + } + + Battle(t34, pantera, COUNT_OF_TANKS); + } + static void Battle(Tank[] t34, Tank[] pantera, int COUNT_OF_TANKS) + { + for (int i = 0; i < COUNT_OF_TANKS; i++) + { + Console.WriteLine("Пара №{0}", i + 1); + Tank.Show(t34[i], pantera[i]); + try + { + if (t34[i] ^ pantera[i]) Console.WriteLine("Победитель сражения: T-34\n"); + else Console.WriteLine("Победитель сражения: Pantera\n"); + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + } + } + } + } +} diff --git a/Cs06_1_t01/Properties/AssemblyInfo.cs b/Cs06_1_t01/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..7a44daa --- /dev/null +++ b/Cs06_1_t01/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cs06_1_t01")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cs06_1_t01")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("e1124d31-82ac-47d7-b575-88bcdcb1fe65")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs07_1_t01/App.config b/Cs07_1_t01/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/Cs07_1_t01/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cs07_1_t01/Cs07_1_t01.csproj b/Cs07_1_t01/Cs07_1_t01.csproj new file mode 100644 index 0000000..bcf59a8 --- /dev/null +++ b/Cs07_1_t01/Cs07_1_t01.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {93C51F86-473F-4B36-8F03-6507F310F879} + Exe + Cs07_1_t01 + Cs07_1_t01 + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs07_1_t01/Cs07_1_t01.sln b/Cs07_1_t01/Cs07_1_t01.sln new file mode 100644 index 0000000..4e94b5a --- /dev/null +++ b/Cs07_1_t01/Cs07_1_t01.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30011.22 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cs07_1_t01", "Cs07_1_t01.csproj", "{93C51F86-473F-4B36-8F03-6507F310F879}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {93C51F86-473F-4B36-8F03-6507F310F879}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {93C51F86-473F-4B36-8F03-6507F310F879}.Debug|Any CPU.Build.0 = Debug|Any CPU + {93C51F86-473F-4B36-8F03-6507F310F879}.Release|Any CPU.ActiveCfg = Release|Any CPU + {93C51F86-473F-4B36-8F03-6507F310F879}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {6D1AF7A1-221C-4DBF-B103-D1B62182B006} + EndGlobalSection +EndGlobal diff --git a/Cs07_1_t01/Program.cs b/Cs07_1_t01/Program.cs new file mode 100644 index 0000000..e4962e9 --- /dev/null +++ b/Cs07_1_t01/Program.cs @@ -0,0 +1,112 @@ +// Створити ієрархію класів з об’єктів: Прямокутник, Відрізок, Квадрат, Точка. +// Створити масив з N елементів, який заповнюється випадково об’єктами з даної ієрархії. +// Вивести на екран доступну інформацію по фігурі (довжину, площу периметр,..) +// та примітивно намалювати фігуру. + + +using System; +using System.Text; +using System.IO; + +namespace Cs07_1_t01 +{ + class Point + { + protected double x, y; + public Point(double x_, double y_) { x = x_; y = y_; } + public override string ToString() + { + StringWriter strWriter = new StringWriter(); + strWriter.WriteLine($"Point: Coords: x = {x}, y = {y}.\n"); + strWriter.WriteLine(" * "); + return strWriter.ToString(); + } + } + + class Segment : Point + { + protected double l; + public Segment(double x_, double y_, double l_) : base(x_, y_) + { + l = l_; + } + public override string ToString() + { + StringWriter strWriter = new StringWriter(); + strWriter.WriteLine($"Segment: Length: {l}.\n"); + strWriter.WriteLine(new StringBuilder().Insert(0, " *", (int)l).ToString()); + return strWriter.ToString(); + } + } + + class Square : Segment + { + public Square(double x_, double y_, double a_) : base(x_, y_, a_) { } + public override string ToString() + { + StringWriter strWriter = new StringWriter(); + strWriter.Write($"Square: Side length: {l}; "); + strWriter.Write($"Perimeter: {l * 4}; "); + strWriter.WriteLine($"Area: {l * l}.\n"); + string str = new StringBuilder().Insert(0, " *", (int)l).ToString(); + strWriter.WriteLine(str); + int i = 0; + while (i != (int)l - 2) + { + strWriter.WriteLine(" *"+ new string(' ', ((int)l - 2) * 2) + " *"); + i++; + } + strWriter.WriteLine(str); + return strWriter.ToString(); + } + } + + class Rectangle : Segment + { + private double b; + public Rectangle(double x_, double y_, double a_, double b_) : base(x_, y_, a_) + { + b = b_; + } + public override string ToString() + { + StringWriter strWriter = new StringWriter(); + strWriter.Write($"Rectangle: Side length: {l}, {b}; "); + strWriter.Write($"Perimeter: {2 * (l + b)}; "); + strWriter.WriteLine($"Area: {l * b}.\n"); + string str = new StringBuilder().Insert(0, " *", (int)b).ToString(); + strWriter.WriteLine(str); + int i = 0; + while (i != (int)l - 2) + { + strWriter.WriteLine(" *" + new string(' ', ((int)b - 2) * 2) + " *"); + i++; + } + strWriter.WriteLine(str); + return strWriter.ToString(); + } + } + + class Program + { + static void Main(string[] args) + { + Random rnd = new Random(); + int n = rnd.Next(5, 11); + Point[] arr = new Point[n]; + for (int i = 0; i < arr.Length; i++) + { + int R = rnd.Next(4); + if (R == 0) arr[i] = new Point(3, 4); + else if (R == 1) arr[i] = new Segment(3, 4, rnd.Next(3, 11)); + else if (R == 2) arr[i] = new Square(3, 4, rnd.Next(3, 11)); + else arr[i] = new Rectangle(3, 4, rnd.Next(3, 11), rnd.Next(3, 11)); + } + + foreach (var item in arr) + { + Console.WriteLine(item); + } + } + } +} diff --git a/Cs07_1_t01/Properties/AssemblyInfo.cs b/Cs07_1_t01/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..588cfc1 --- /dev/null +++ b/Cs07_1_t01/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cs07_1_t01")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cs07_1_t01")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("93c51f86-473f-4b36-8f03-6507f310f879")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs07_2_t01/App.config b/Cs07_2_t01/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/Cs07_2_t01/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cs07_2_t01/Cs07_2_t01.csproj b/Cs07_2_t01/Cs07_2_t01.csproj new file mode 100644 index 0000000..cdba4f3 --- /dev/null +++ b/Cs07_2_t01/Cs07_2_t01.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {FA9AA04B-B3CB-48A5-A2F8-B2D305D58B4A} + Exe + Cs07_2_t01 + Cs07_2_t01 + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs07_2_t01/Cs07_2_t01.sln b/Cs07_2_t01/Cs07_2_t01.sln new file mode 100644 index 0000000..807aac0 --- /dev/null +++ b/Cs07_2_t01/Cs07_2_t01.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30011.22 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cs07_2_t01", "Cs07_2_t01.csproj", "{FA9AA04B-B3CB-48A5-A2F8-B2D305D58B4A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FA9AA04B-B3CB-48A5-A2F8-B2D305D58B4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FA9AA04B-B3CB-48A5-A2F8-B2D305D58B4A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FA9AA04B-B3CB-48A5-A2F8-B2D305D58B4A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FA9AA04B-B3CB-48A5-A2F8-B2D305D58B4A}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {49E82352-F619-4812-85E2-1A9AAA2AFB5E} + EndGlobalSection +EndGlobal diff --git a/Cs07_2_t01/Program.cs b/Cs07_2_t01/Program.cs new file mode 100644 index 0000000..18acc43 --- /dev/null +++ b/Cs07_2_t01/Program.cs @@ -0,0 +1,134 @@ +// Створити абстрактний базовий клас «Транспортний засіб» +// Розробіть похідні класи зображенні на малюнку. +// Засоби масового перевезення людей, Сільськогосподарська техніка, +// Легкові автомобілі, Вантажні автомобілі, Мотоцикли, Скутери. +// Пасажиру потрібно проїхати з пункту А до пункту В з використанням різних транспортних засобів. +// Кількість транспортних засобів генерується випадково. +// Обчислити час і вартість проїзду пасажира. + +using System; +using System.Text; +using System.Linq; + +namespace Cs07_2_t01 +{ + abstract class Vehicle + { + protected double avgSpeed; + protected double avgCost; + public double Distance { get; set; } + public Vehicle(double dist, double speed, double cost) { Distance = dist; avgSpeed = speed; avgCost = cost; } + public TimeSpan Time() + { + return TimeSpan.FromSeconds(Distance / (avgSpeed / 3600)); + } + public virtual double Cost() + { + return Distance * avgCost; + } + } + + class PublicTransport : Vehicle + { + public PublicTransport(double dist) : base(dist, 30, 10) { } + public override double Cost() + { + return avgCost; + } + public override string ToString() + { + return $"громадським транспортом"; + } + } + + class AgriculturalMachinery : Vehicle + { + public AgriculturalMachinery(double dist) : base(dist, 40, 50) { } + public override string ToString() + { + return $"сільськогосподарською технікою"; + } + } + + class Car : Vehicle + { + public Car(double dist) : base(dist, 90, 5) { } + public override string ToString() + { + return $"легковим автомобілем"; + } + } + + class Truck : Vehicle + { + public Truck(double dist) : base(dist, 80, 15) { } + public override string ToString() + { + return $"вантажним автомобілем"; + } + } + + class Motorcycle : Vehicle + { + public Motorcycle(double dist) : base(dist, 100, 4) { } + public override string ToString() + { + return $"мотоциклом"; + } + } + + class Scooter : Vehicle + { + public Scooter(double dist) : base(dist, 50, 3) { } + public override string ToString() + { + return $"скутером"; + } + } + + + + + class Program + { + static void Main(string[] args) + { + Console.OutputEncoding = Encoding.Unicode; + Console.InputEncoding = Encoding.Unicode; + + Random rnd = new Random(); + int COUNT_OF_VECHICLES = rnd.Next(5, 11); + int DST, DISTANCE = DST = rnd.Next(100, 1001); + + Vehicle[] arr = new Vehicle[COUNT_OF_VECHICLES]; + for (int i = 0; i < arr.Length; i++) + { + int D = rnd.Next(DISTANCE + 1); + DISTANCE -= D; + int R = rnd.Next(6); + if (R == 0) arr[i] = new PublicTransport(D); + else if (R == 1) arr[i] = new AgriculturalMachinery(D); + else if (R == 2) arr[i] = new Car(D); + else if (R == 3) arr[i] = new Truck(D); + else if (R == 4) arr[i] = new Motorcycle(D); + else arr[i] = new Scooter(D); + } + + TimeSpan totalTime = TimeSpan.FromSeconds(0); + double TotalCost = 0; + + foreach (var item in arr.Where(n => n.Distance != 0)) + { + totalTime += item.Time(); + TotalCost += item.Cost(); + Console.WriteLine("Пасажир проїхав " + item); + Console.WriteLine($"{item.Distance} км, протягом { item.Time().Hours} год. { item.Time().Minutes} хв. { item.Time().Seconds} с,"); + Console.WriteLine("вартість проїзду: " + item.Cost() + " грн.\n"); + } + + Console.WriteLine("\nЗагалом пасажир подолав " + DST + " км."); + Console.WriteLine($"Подорож тривала {totalTime.Hours} год. {totalTime.Minutes} хв. {totalTime.Seconds} с,"); + Console.WriteLine("і коштувала " + TotalCost + " грн.\n"); + } + } +} diff --git a/Cs07_2_t01/Properties/AssemblyInfo.cs b/Cs07_2_t01/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..16218b6 --- /dev/null +++ b/Cs07_2_t01/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cs07_2_t01")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cs07_2_t01")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("fa9aa04b-b3cb-48a5-a2f8-b2d305d58b4a")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs08_1_t01/App.config b/Cs08_1_t01/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/Cs08_1_t01/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cs08_1_t01/Cs08_1_t01.csproj b/Cs08_1_t01/Cs08_1_t01.csproj new file mode 100644 index 0000000..7e4e9ca --- /dev/null +++ b/Cs08_1_t01/Cs08_1_t01.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {42982BAD-4F41-4627-BD2C-94B4BE30F5BF} + Exe + Cs08_1_t01 + Cs08_1_t01 + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs08_1_t01/Cs08_1_t01.sln b/Cs08_1_t01/Cs08_1_t01.sln new file mode 100644 index 0000000..879d76f --- /dev/null +++ b/Cs08_1_t01/Cs08_1_t01.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30011.22 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cs08_1_t01", "Cs08_1_t01.csproj", "{42982BAD-4F41-4627-BD2C-94B4BE30F5BF}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {42982BAD-4F41-4627-BD2C-94B4BE30F5BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42982BAD-4F41-4627-BD2C-94B4BE30F5BF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42982BAD-4F41-4627-BD2C-94B4BE30F5BF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42982BAD-4F41-4627-BD2C-94B4BE30F5BF}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {41C3E701-0D4F-4519-81E2-A41418DDE48D} + EndGlobalSection +EndGlobal diff --git a/Cs08_1_t01/Program.cs b/Cs08_1_t01/Program.cs new file mode 100644 index 0000000..6cb8154 --- /dev/null +++ b/Cs08_1_t01/Program.cs @@ -0,0 +1,192 @@ +// Уявімо, ви робите систему фільтрації коментарів на якомусь веб-порталі, будь то новини, відео-хостинг, … +// Ви хочете фільтрувати коментарі за різними критеріями, вміти легко додавати нові фільтри і модифікувати старі. +// Припустимо, ми будемо фільтрувати спам, коментарі з негативним змістом і занадто довгі коментарі. +// Спам будемо фільтрувати за наявністю зазначених ключових слів в тексті. +// +// Негативний зміст визначатимемо за наявністю одного з трьох смайликів: +// :(, =(, :| +// +// Занадто довгі коментарі будемо визначати виходячи з даного числа - максимальної довжини коментаря. +// Ви вирішили абстрагувати фільтр у вигляді наступного інтерфейсу: +// +// interface TextAnalyzer +// { +// Label processText(String text); +// } +// +// Label - тип-перерахування, які містить мітки, якими будемо позначати текст: +// enum Label { SPAM, NEGATIVE_TEXT, TOO_LONG, OK } +// +// Далі, вам необхідно реалізувати три класи, які реалізують даний інтерфейс: SpamAnalyzer, NegativeTextAnalyzer і TooLongTextAnalyzer. +// SpamAnalyzer повинен конструюватися від масиву рядків з ключовими словами. +// Об'єкт цього класу повинен зберігати в своєму стані цей масив рядків в приватному поле keywords. +// NegativeTextAnalyzer повинен конструюватися конструктором за замовчуванням. +// TooLongTextAnalyzer повинен конструюватися від int'а з максимальною допустимою довжиною коментаря. +// Об'єкт цього класу повинен зберігати в своєму стані це число в приватному поле maxLength. +// +// Напевно ви вже помітили, що SpamAnalyzer і NegativeTextAnalyzer багато в чому схожі - +// вони обидва перевіряють текст на наявність будь-яких ключових слів +// (в разі спаму ми отримуємо їх з конструктора, в разі негативного тексту ми заздалегідь знаємо набір сумних смайликів) +// і в разі знаходження одного з ключових слів повертають Label(SPAM і NEGATIVE_TEXT відповідно), а якщо нічого не знайшлося - повертають OK. +// Давайте цю логіку абстрагуємося в абстрактний клас KeywordAnalyzer наступним чином: +// +// Виділимо два абстрактних методу getKeywords і getLabel, один з яких буде повертати набір ключових слів, +// а другий мітку, якої необхідно позначити позитивні спрацьовування. +// Нам нема чого показувати ці методи споживачам класів, тому залишимо доступ до них тільки для спадкоємців. +// +// Реалізуємо processText таким чином, щоб він залежав тільки від getKeywords і getLabel. +// Зробимо SpamAnalyzer і NegativeTextAnalyzer спадкоємцями KeywordAnalyzer і реалізуємо абстрактні методи. +// +// Останній штрих - написати метод checkLabels, який буде повертати мітку для коментаря по набору аналізаторів тексту. +// checkLabels повинен повертати першим не-OK мітку в порядку даного набору аналізаторів, і OK, якщо все аналізатори повернули OK. +// Використовуйте, будь ласка, модифікатор доступу за замовчуванням для всіх класів. +// У підсумку, реалізуйте класи KeywordAnalyzer, SpamAnalyzer, NegativeTextAnalyzer і TooLongTextAnalyzer і метод checkLabels. +// TextAnalyzer і Label вже підключені, зайві обсяги імпорту вам не будуть потрібні. + +using System; + +namespace Cs08_1_t01 +{ + interface ITextAnalyzer + { + Label ProcessText(String text); + } + + enum Label { SPAM, NEGATIVE_TEXT, TOO_LONG, OK } + + internal abstract class KeywordAnalyzer : ITextAnalyzer + { + protected abstract String[] GetKeywords(); + protected abstract Label GetLabel(); + public Label ProcessText(String text) + { + String[] keywords = GetKeywords(); + foreach (String keyword in keywords) + { + if (text.Contains(keyword)) + { + return GetLabel(); + } + } + return Label.OK; + } + } + + internal class SpamAnalyzer : KeywordAnalyzer + { + private String[] keywords; + public SpamAnalyzer(String[] keywords) + { + this.keywords = keywords; + } + protected override String[] GetKeywords() + { + return keywords; + } + protected override Label GetLabel() + { + return Label.SPAM; + } + } + + internal class NegativeTextAnalyzer : KeywordAnalyzer + { + private String[] keywords = { ":(", "=(", ":|" }; + protected override String[] GetKeywords() + { + return keywords; + } + protected override Label GetLabel() + { + return Label.NEGATIVE_TEXT; + } + } + + internal class TooLongTextAnalyzer : ITextAnalyzer + { + private int maxLength; + public TooLongTextAnalyzer(int commentMaxLength) + { + maxLength = commentMaxLength; + } + public Label ProcessText(String text) + { + return text.Length > maxLength ? Label.TOO_LONG : Label.OK; + } + } + + + class Program + { + public static Label CheckLabels(ITextAnalyzer[] analyzers, String text) + { + for (int i = 0; i < analyzers.Length; i++) + if (analyzers[i].ProcessText(text) != Label.OK) + return analyzers[i].ProcessText(text); + return Label.OK; + } + + public static void Main(string[] args) + { + // ініціалізація аналізаторів для перевірки в порядку даного набору аналізаторів + String[] spamKeywords = { "spam", "bad" }; + int commentMaxLength = 40; + ITextAnalyzer[] textAnalyzers1 = { + new SpamAnalyzer (spamKeywords), + new NegativeTextAnalyzer (), + new TooLongTextAnalyzer (commentMaxLength) + }; + ITextAnalyzer[] textAnalyzers2 = { + new SpamAnalyzer (spamKeywords), + new TooLongTextAnalyzer (commentMaxLength), + new NegativeTextAnalyzer () + }; + ITextAnalyzer[] textAnalyzers3 = { + new TooLongTextAnalyzer (commentMaxLength), + new SpamAnalyzer (spamKeywords), + new NegativeTextAnalyzer () + }; + ITextAnalyzer[] textAnalyzers4 = { + new TooLongTextAnalyzer (commentMaxLength), + new NegativeTextAnalyzer (), + new SpamAnalyzer (spamKeywords) + }; + ITextAnalyzer[] textAnalyzers5 = { + new NegativeTextAnalyzer (), + new SpamAnalyzer (spamKeywords), + new TooLongTextAnalyzer (commentMaxLength) + }; + ITextAnalyzer[] textAnalyzers6 = { + new NegativeTextAnalyzer (), + new TooLongTextAnalyzer (commentMaxLength), + new SpamAnalyzer (spamKeywords) + }; + // тестові коментарі + String[] tests = new String[8]; + tests[0] = "This comment is so good."; // OK + tests[1] = "This comment is so Loooooooooooooooooooooooooooong."; // TOO_LONG + tests[2] = "Very negative comment !!!! = (!!!!;"; // NEGATIVE_TEXT + tests[3] = "Very BAAAAAAAAAAAAAAAAAAAAAAAAD comment with: |;"; // NEGATIVE_TEXT or TOO_LONG + tests[4] = "This comment is so bad ...."; // SPAM + tests[5] = "The comment is a spam, maybeeeeeeeeeeeeeeeeeeeeee!"; // SPAM or TOO_LONG + tests[6] = "Negative bad :( spam."; // SPAM or NEGATIVE_TEXT + tests[7] = "Very bad, very neg = (, very .................."; // SPAM or NEGATIVE_TEXT or TOO_LONG + ITextAnalyzer[][] textAnalyzers = { textAnalyzers1, textAnalyzers2, textAnalyzers3, textAnalyzers4, textAnalyzers5, textAnalyzers6 }; + int numberOfAnalyzer; // номер аналізатора, зазначений в ідентифікатор textAnalyzers {№} + int numberOfTest = 0; // номер тесту, який відповідає індексу тестових коментарів + foreach (String test in tests) + { + numberOfAnalyzer = 1; + Console.Write("test #" + numberOfTest + ":"); + Console.WriteLine(test); + foreach (ITextAnalyzer[] analyzers in textAnalyzers) + { + Console.Write(numberOfAnalyzer + ":"); + Console.WriteLine(CheckLabels(analyzers, test)); + numberOfAnalyzer++; + } + numberOfTest++; + } + } + } +} \ No newline at end of file diff --git a/Cs08_1_t01/Properties/AssemblyInfo.cs b/Cs08_1_t01/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..5e1793b --- /dev/null +++ b/Cs08_1_t01/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cs08_1_t01")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cs08_1_t01")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("42982bad-4f41-4627-bd2c-94b4be30f5bf")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs09_1_t01/App.config b/Cs09_1_t01/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/Cs09_1_t01/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cs09_1_t01/Cs09_1_t01.csproj b/Cs09_1_t01/Cs09_1_t01.csproj new file mode 100644 index 0000000..87a1f10 --- /dev/null +++ b/Cs09_1_t01/Cs09_1_t01.csproj @@ -0,0 +1,54 @@ + + + + + Debug + AnyCPU + {7D98CFE1-5B08-4341-AC0F-3691661A873B} + Exe + Cs09_1_t01 + Cs09_1_t01 + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs09_1_t01/Cs09_1_t01.sln b/Cs09_1_t01/Cs09_1_t01.sln new file mode 100644 index 0000000..deb155a --- /dev/null +++ b/Cs09_1_t01/Cs09_1_t01.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30011.22 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cs09_1_t01", "Cs09_1_t01.csproj", "{7D98CFE1-5B08-4341-AC0F-3691661A873B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7D98CFE1-5B08-4341-AC0F-3691661A873B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7D98CFE1-5B08-4341-AC0F-3691661A873B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7D98CFE1-5B08-4341-AC0F-3691661A873B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7D98CFE1-5B08-4341-AC0F-3691661A873B}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {0AF4F484-84F3-4C4B-81CE-76911645A5D4} + EndGlobalSection +EndGlobal diff --git a/Cs09_1_t01/Program.cs b/Cs09_1_t01/Program.cs new file mode 100644 index 0000000..b0f87fc --- /dev/null +++ b/Cs09_1_t01/Program.cs @@ -0,0 +1,252 @@ +// Розробити клас MyHashtable. +// Клас описує роботу зі студентами групи. +// Кожний студент має невизначену кількість оцінок, які можна додавати або видаляти. +// Вивести на екран список студентів з оцінками та середнім балом по кожному студенту та по групі в цілому. +// Клас повинен мати можливість шукати студента в групі та редагувати його поля. +// Зробити меню. +// Клас студент розробити самостійно. + +using System; +using System.Collections.Generic; +using System.Collections; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace _02052020objcol +{ + class Menu + { + const ConsoleColor FOREGROUND = ConsoleColor.Gray; + const ConsoleColor ITEMSELECT = ConsoleColor.White; + const int MENULEFT = 20; + const int MENUTOP = 4; + static string[] menuItems; + public static string[] MenuItems { set { menuItems = value; } } + public static int Selected { get; private set; } = 0; + static void PaintMenu() + { + Console.ForegroundColor = FOREGROUND; + Console.Clear(); + Console.SetCursorPosition(MENULEFT, MENUTOP); + Console.WriteLine("......MENU......\n"); + for (int i = 0; i < menuItems.Length; i++) + { + Console.SetCursorPosition(MENULEFT, MENUTOP + i + 1); + if (i == Selected) + { + Console.ForegroundColor = ITEMSELECT; + Console.Write("=>"); + } + else + { + Console.Write(" "); + } + Console.WriteLine(menuItems[i]); + Console.ForegroundColor = FOREGROUND; + } + } + public static void MenuSelect() + { + ConsoleKey c = ConsoleKey.DownArrow; + while (true) + { + if (c == ConsoleKey.UpArrow || c == ConsoleKey.DownArrow) + { + PaintMenu(); + } + c = Console.ReadKey().Key; + switch (c) + { + case ConsoleKey.Escape: //Esc + Selected = -1; + return; + case ConsoleKey.DownArrow: //down + ++Selected; + if (Selected == menuItems.Length) Selected = 0; + break; + case ConsoleKey.UpArrow://up + if (Selected == 0) Selected = menuItems.Length; + --Selected; + break; + case ConsoleKey.Enter: //Enter + return; + } + } + } + + } + + public static class CollectionsExtension + { + public static void Print(this IDictionary list) + { + int count = 1; + double avgSum = 0; + Console.WriteLine($"ID# {"ПІБ",-31} Дата нар.\tСер. бал\tОцінки\n\n"); + foreach (var key in list.Keys) + { + Console.WriteLine($"{count++,3} {list[key]}\n"); + if (list[key] is Student) + avgSum += (list[key] as Student).AvgGrade; + } + Console.WriteLine($"\t\tСередній бал по групі в цілому: {avgSum / list.Count,8:N2}"); + } + } + + class Student : ICloneable + { + public string FirstName { get; set; } + public string LastName { get; set; } + public DateTime Bday { get; set; } + public List Grades = new List(); + public double AvgGrade { get => Grades.Average(); } + public Student(string LN, string FN, DateTime BD, int[] GR) + { + FirstName = FN; + LastName = LN; + Bday = BD; + Grades.AddRange(GR); + } + public string GradesToString() + { + string str = string.Empty; + foreach (int item in Grades) + str += item + ", "; + return str.Remove(str.Length - 2); + } + public object Clone() + { + return new Student(LastName, FirstName, Bday, Grades.ToArray()); + } + public override string ToString() + { + return $"{LastName,-15} {FirstName,-15} {Bday.ToShortDateString(),10}\t{AvgGrade,8:N2}\t{GradesToString()}"; + } + + } + + class MyHashtable : Hashtable + { + public void Edit(string request) + { + Student tmp = (Student)(this[request] as Student).Clone(); + Console.Write("Прізвище: "); + SendKeys.SendWait(tmp.LastName); + tmp.LastName = Console.ReadLine(); + Console.Write("Ім'я: "); + SendKeys.SendWait(tmp.FirstName); + tmp.FirstName = Console.ReadLine(); + Console.Write("Дата народження: "); + SendKeys.SendWait(tmp.Bday.ToShortDateString()); + while (true) + { + try + { + tmp.Bday = DateTime.Parse(Console.ReadLine()); + break; + } + catch (Exception) + { + Console.Write("Щось пішло не так! Введіть дату у форматі дд.мм.рррр: "); + continue; + } + } + Console.Write("Оцінки: "); + SendKeys.SendWait(tmp.GradesToString()); + while (true) + { + try + { + tmp.Grades = Console.ReadLine().Split(',').Select(Int32.Parse).ToList(); + break; + } + catch (Exception) + { + Console.Write("Щось пішло не так! Введіть оцінки через кому: "); + continue; + } + } + Remove(request); + Add(tmp.LastName + " " + tmp.FirstName, tmp); + } + } + + class Program + { + static Random rnd = new Random(); + static int[] Grades() + { + int[] mas = new int[rnd.Next(3, 11)]; + for (int i = 0; i < mas.Length; i++) + { + mas[i] = rnd.Next(3, 6); + } + return mas; + } + + static void Main(string[] args) + { + Console.OutputEncoding = Encoding.Unicode; + Console.InputEncoding = Encoding.Unicode; + + MyHashtable Group = new MyHashtable{ + {"Ананченко Михайло", new Student("Ананченко", "Михайло", new DateTime(1983,02,04), Grades()) }, + {"Лозинський Роман", new Student("Лозинський", "Роман", new DateTime(1991,08,06), Grades()) }, + {"Бакумов Олександр", new Student("Бакумов", "Олександр", new DateTime(1994,04,09), Grades()) }, + {"Бобровська Соломія", new Student("Бобровська", "Соломія", new DateTime(1990,03,09), Grades()) }, + {"Бабенко Микола", new Student("Бабенко", "Микола", new DateTime(1989,09,04), Grades()) }, + {"Аллахвердієва Ірина", new Student("Аллахвердієва", "Ірина", new DateTime(1978,08,26), Grades()) }, + {"Ковальов Олександр", new Student("Ковальов", "Олександр", new DateTime(1987,10,07), Grades()) }, + {"Макаренко Михайло", new Student("Макаренко", "Михайло", new DateTime(1990,04,09), Grades()) }, + {"Богуцька Єлізавета", new Student("Богуцька", "Єлізавета", new DateTime(1984,04,14), Grades()) }, + {"Третьякова Галина", new Student("Третьякова", "Галина", new DateTime(1993,01,21), Grades()) }, + }; + + Menu.MenuItems = new string[] { + "Вивести на екран список студентів", + "Шукати студента", + "Редагувати студента", + "Вихід" }; + + while (true) + { + Menu.MenuSelect(); + Console.Clear(); + if (Menu.Selected < 0) break; + if (Menu.Selected == 0) + { + Group.Print(); + }; + if (Menu.Selected == 1) + { + Console.Write("Введіть пошуковий запит (Прізвище та Ім'я): "); + string request = Console.ReadLine(); + if (Group.ContainsKey(request)) + { + Console.WriteLine($"\nID# {"ПІБ",-31} Дата нар.\tСер. бал\tОцінки\n"); + Console.WriteLine(" " + Group[request]); + } + else + Console.WriteLine("\nНічого не знайдено"); + } + if (Menu.Selected == 2) + { + Console.Write("Введіть пошуковий запит (Прізвище та Ім'я): "); + string request = Console.ReadLine(); + if (Group.ContainsKey(request)) + Group.Edit(request); + else + Console.WriteLine("\nНічого не знайдено"); + }; + if (Menu.Selected == 3) + { + break; + }; + Console.ForegroundColor = ConsoleColor.DarkGreen; + Console.WriteLine("\ndone\n"); + Console.ReadKey(); + } + } + } +} \ No newline at end of file diff --git a/Cs09_1_t01/Properties/AssemblyInfo.cs b/Cs09_1_t01/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..fb68007 --- /dev/null +++ b/Cs09_1_t01/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cs09_1_t01")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cs09_1_t01")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("7d98cfe1-5b08-4341-ac0f-3691661a873b")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs09_1_t02/App.config b/Cs09_1_t02/App.config new file mode 100644 index 0000000..4bfa005 --- /dev/null +++ b/Cs09_1_t02/App.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/Cs09_1_t02/Cs09_1_t02.csproj b/Cs09_1_t02/Cs09_1_t02.csproj new file mode 100644 index 0000000..f476831 --- /dev/null +++ b/Cs09_1_t02/Cs09_1_t02.csproj @@ -0,0 +1,55 @@ + + + + + Debug + AnyCPU + {5B50C991-4A4E-473E-A914-A84D1EF8F826} + Exe + Cs09_1_t02 + Cs09_1_t02 + v4.8 + 512 + true + true + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs09_1_t02/Cs09_1_t02.sln b/Cs09_1_t02/Cs09_1_t02.sln new file mode 100644 index 0000000..8b08879 --- /dev/null +++ b/Cs09_1_t02/Cs09_1_t02.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30011.22 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cs09_1_t02", "Cs09_1_t02.csproj", "{5B50C991-4A4E-473E-A914-A84D1EF8F826}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5B50C991-4A4E-473E-A914-A84D1EF8F826}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B50C991-4A4E-473E-A914-A84D1EF8F826}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5B50C991-4A4E-473E-A914-A84D1EF8F826}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5B50C991-4A4E-473E-A914-A84D1EF8F826}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {BD911173-B4F2-410F-AECD-19B9B4EB329E} + EndGlobalSection +EndGlobal diff --git a/Cs09_1_t02/Program.cs b/Cs09_1_t02/Program.cs new file mode 100644 index 0000000..ef9ed67 --- /dev/null +++ b/Cs09_1_t02/Program.cs @@ -0,0 +1,273 @@ +// Розробити клас SortedArrayList на основі ArrayList, який має методи: +// - Add – додає студента до групи студентів у положення відповідно до рейтингу. +// - ModifyIndex – дозволяє редагувати за індексом студента. +// - Перевизначити методи Insert класу ArrayList. Оскільки додавати в довільне положення неможливо, адже ми сортуємо по рейтингу. + +using System; +using System.Collections; +using System.Text; +using System.Windows.Forms; + +namespace Cs09_1_t02 +{ + class Menu + { + const ConsoleColor FOREGROUND = ConsoleColor.Gray; + const ConsoleColor ITEMSELECT = ConsoleColor.White; + const int MENULEFT = 20; + const int MENUTOP = 4; + static string[] menuItems; + public static string[] MenuItems { set { menuItems = value; } } + public static int Selected { get; private set; } = 0; + static void PaintMenu() + { + Console.ForegroundColor = FOREGROUND; + Console.Clear(); + Console.SetCursorPosition(MENULEFT, MENUTOP); + Console.WriteLine("......MENU......\n"); + for (int i = 0; i < menuItems.Length; i++) + { + Console.SetCursorPosition(MENULEFT, MENUTOP + i + 1); + if (i == Selected) + { + Console.ForegroundColor = ITEMSELECT; + Console.Write("=>"); + } + else + { + Console.Write(" "); + } + Console.WriteLine(menuItems[i]); + Console.ForegroundColor = FOREGROUND; + } + } + public static void MenuSelect() + { + ConsoleKey c = ConsoleKey.DownArrow; + while (true) + { + if (c == ConsoleKey.UpArrow || c == ConsoleKey.DownArrow) + { + PaintMenu(); + } + c = Console.ReadKey().Key; + switch (c) + { + case ConsoleKey.Escape: //Esc + Selected = -1; + return; + case ConsoleKey.DownArrow: //down + ++Selected; + if (Selected == menuItems.Length) Selected = 0; + break; + case ConsoleKey.UpArrow://up + if (Selected == 0) Selected = menuItems.Length; + --Selected; + break; + case ConsoleKey.Enter: //Enter + return; + } + } + } + + } + public static class CollectionsExtension + { + public static void Print(this ICollection list) + { + int count = 0; + Console.WriteLine($"ID# {"ПІБ",-31} Дата нар.\t{"Рейтинг",10}\n\n"); + foreach (var item in list) + Console.WriteLine($"{count++,3} {item}\n"); + } + } + class Student : ICloneable + { + public string FirstName { get; set; } + public string LastName { get; set; } + public DateTime Bday { get; set; } + public int Rating { get; set; } + public Student(string LN, string FN, DateTime BD, int R) + { + FirstName = FN; + LastName = LN; + Bday = BD; + Rating = R; + } + public object Clone() + { + return new Student(LastName, FirstName, Bday, Rating); + } + public override string ToString() + { + return $"{LastName,-15} {FirstName,-15} {Bday.ToShortDateString(),10}\t{Rating,10}"; + } + + } + + class CompIntRaring : IComparer + { + public int Compare(object x, object y) + { + if (x is Student X && y is Student Y) + return X.Rating.CompareTo(Y.Rating); + throw new InvalidCastException(); + } + } + + class SortedArrayList : ArrayList + { + public override int Add(object value) + { + base.Add(value); + Sort(new CompIntRaring()); + return BinarySearch(value, new CompIntRaring()); + } + public override void Insert(int index, object value) + { + Add(value); + } + + public void ModifyIndex(int index) + { + Student ptr = this[index] as Student; + Console.Write("Прізвище: "); + SendKeys.SendWait(ptr.LastName); + ptr.LastName = Console.ReadLine(); + Console.Write("Ім'я: "); + SendKeys.SendWait(ptr.FirstName); + ptr.FirstName = Console.ReadLine(); + Console.Write("Дата народження: "); + SendKeys.SendWait(ptr.Bday.ToShortDateString()); + while (true) + { + try + { + ptr.Bday = DateTime.Parse(Console.ReadLine()); + break; + } + catch (Exception) + { + Console.Write("Щось пішло не так! Введіть дату у форматі дд.мм.рррр: "); + continue; + } + } + int ratingPrev = ptr.Rating; + Console.Write("Рейтинг: "); + SendKeys.SendWait(ptr.Rating.ToString()); + while (true) + { + try + { + ptr.Rating = int.Parse(Console.ReadLine()); + break; + } + catch (Exception) + { + Console.Write("Щось пішло не так! Введіть рейтинг: "); + continue; + } + } + if (ratingPrev != ptr.Rating) + { + Sort(new CompIntRaring()); + } + } + } + class Program + { + + static void Main(string[] args) + { + Console.OutputEncoding = Encoding.Unicode; + Console.InputEncoding = Encoding.Unicode; + + Random rnd = new Random(); + SortedArrayList Group = new SortedArrayList(); + Group.Add(new Student("Ананченко", "Михайло", new DateTime(1983, 02, 04), rnd.Next(1001))); + Group.Add(new Student("Лозинський", "Роман", new DateTime(1991,08,06), rnd.Next(1001))); + Group.Add(new Student("Бакумов", "Олександр", new DateTime(1994,04,09), rnd.Next(1001))); + Group.Add(new Student("Бобровська", "Соломія", new DateTime(1990,03,09), rnd.Next(1001))); + Group.Add(new Student("Бабенко", "Микола", new DateTime(1989,09,04), rnd.Next(1001))); + Group.Add(new Student("Аллахвердієва", "Ірина", new DateTime(1978,08,26), rnd.Next(1001))); + Group.Add(new Student("Ковальов", "Олександр", new DateTime(1987,10,07), rnd.Next(1001))); + Group.Add(new Student("Макаренко", "Михайло", new DateTime(1990,04,09), rnd.Next(1001))); + Group.Add(new Student("Богуцька", "Єлізавета", new DateTime(1984,04,14), rnd.Next(1001))); + Group.Add(new Student("Третьякова", "Галина", new DateTime(1993,01,21), rnd.Next(1001))); + + + Menu.MenuItems = new string[] { + "Вивести на екран список студентів", + "Додати студента до групи", + "Редагувати за індексом студента", + "Вихід" }; + + while (true) + { + Menu.MenuSelect(); + Console.Clear(); + if (Menu.Selected < 0) break; + if (Menu.Selected == 0) + { + Group.Print(); + }; + if (Menu.Selected == 1) + { + Student tmp = new Student("Pupkin", "Vasily", new DateTime(1970, 01, 01), 0); + Console.Write("Прізвище: "); + tmp.LastName = Console.ReadLine(); + Console.Write("Ім'я: "); + tmp.FirstName = Console.ReadLine(); + Console.Write("Дата народження: "); + while (true) + { + try + { + tmp.Bday = DateTime.Parse(Console.ReadLine()); + break; + } + catch (Exception) + { + Console.Write("Щось пішло не так! Введіть дату у форматі дд.мм.рррр: "); + continue; + } + } + Console.Write("Рейтинг: "); + while (true) + { + try + { + tmp.Rating = int.Parse(Console.ReadLine()); + break; + } + catch (Exception) + { + Console.Write("Щось пішло не так! Введіть рейтинг: "); + continue; + } + } + Group.Insert(tmp.Rating, tmp); + } + if (Menu.Selected == 2) + { + int n = 0; + bool f = false; + Console.WriteLine("Якого студента редагувати?"); + while (!f || (n < 0 || n >= Group.Count)) + { + Console.Write($"Введіть індекс від 0 до {Group.Count - 1}: "); + f = int.TryParse(Console.ReadLine(), out n); + } + Group.ModifyIndex(n); + }; + if (Menu.Selected == 3) + { + break; + }; + Console.ForegroundColor = ConsoleColor.DarkGreen; + Console.WriteLine("\ndone\n"); + Console.ReadKey(); + } + } + } +} \ No newline at end of file diff --git a/Cs09_1_t02/Properties/AssemblyInfo.cs b/Cs09_1_t02/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..92cff95 --- /dev/null +++ b/Cs09_1_t02/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cs09_1_t02")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cs09_1_t02")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("5b50c991-4a4e-473e-a914-a84d1ef8f826")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs10_1_t01/App.config b/Cs10_1_t01/App.config new file mode 100644 index 0000000..193aecc --- /dev/null +++ b/Cs10_1_t01/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cs10_1_t01/Cs10_1_t01.csproj b/Cs10_1_t01/Cs10_1_t01.csproj new file mode 100644 index 0000000..64acb00 --- /dev/null +++ b/Cs10_1_t01/Cs10_1_t01.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {95408DA2-5998-4C6C-BA96-B7FDAC657396} + Exe + Cs10_1_t01 + Cs10_1_t01 + v4.8 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs10_1_t01/Cs10_1_t01.sln b/Cs10_1_t01/Cs10_1_t01.sln new file mode 100644 index 0000000..9aa99c7 --- /dev/null +++ b/Cs10_1_t01/Cs10_1_t01.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30011.22 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cs10_1_t01", "Cs10_1_t01.csproj", "{95408DA2-5998-4C6C-BA96-B7FDAC657396}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {95408DA2-5998-4C6C-BA96-B7FDAC657396}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {95408DA2-5998-4C6C-BA96-B7FDAC657396}.Debug|Any CPU.Build.0 = Debug|Any CPU + {95408DA2-5998-4C6C-BA96-B7FDAC657396}.Release|Any CPU.ActiveCfg = Release|Any CPU + {95408DA2-5998-4C6C-BA96-B7FDAC657396}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {B69F2CE7-C89D-432B-B619-94490007A4C5} + EndGlobalSection +EndGlobal diff --git a/Cs10_1_t01/Program.cs b/Cs10_1_t01/Program.cs new file mode 100644 index 0000000..3e659ec --- /dev/null +++ b/Cs10_1_t01/Program.cs @@ -0,0 +1,86 @@ +// Розробити клас TryPassword для перевірки пароля до заданих правил: +// - Довжина пароля повинна бути рівна або більша за зазначену. +// - Пароль повинен містити малі літери a…z; +// - Пароль повинен містити великі літери A…Z; +// - Пароль повинен містити арабські цифри; +// - Пароль повинен містити спеціальні символи %, *, ), ?, @, #, $, ~, … +// Кількість правил для перевірки встановлюється через конструктор. +// Для перевірки клас повинен мати функцію з параметром рядкового типу. +// Функція повертає false у випадку не відповідності пароля одному із встановлених правил генерується відповідна виняткова ситуація, інакше – true. + +using System; +using System.Linq; +using System.Text; + +namespace Cs10_1_t01 +{ + class TryPassword + { + private readonly int rules; + private int pwdLength; + public int PwdLength + { + get => pwdLength; + set => pwdLength = Math.Abs(value); + } + public TryPassword(int n, int r = 8) + { + if (n < 1) rules = 1; + else if (n > 5) rules = 5; + else rules = n; + PwdLength = r; + } + public bool Check(string pwd) + { + switch (rules) + { + case 5: + if (pwd.Any(Char.IsPunctuation) || pwd.Any(Char.IsSymbol)) + goto case 4; + throw new ArgumentException(message: "Password does not contain special characters!"); + case 4: + if (pwd.Any(Char.IsDigit)) + goto case 3; + throw new ArgumentException(message: "Password does not contain digits!"); + case 3: + if (pwd.Any(Char.IsUpper)) + goto case 2; + throw new ArgumentException(message: "Password does not contain uppercase letters!"); + case 2: + if (pwd.Any(Char.IsLower)) + goto case 1; + throw new ArgumentException(message: "Password does not contain lowercase letters!"); + case 1: + if (pwd.Length > PwdLength) + break; + throw new ArgumentException(message: "Invalid password length!"); + }; + return true; + } + } + + class Program + { + static void Main(string[] args) + { + Console.OutputEncoding = Encoding.Unicode; + Console.InputEncoding = Encoding.Unicode; + + TryPassword Tr = new TryPassword(5); + bool f = false; + while (!f) + { + Console.Write("Pick a password: "); + try + { + f = Tr.Check(Console.ReadLine()); + } + catch (ArgumentException ex) + { + Console.WriteLine(ex.Message + "\n"); + } + } + Console.WriteLine("OK, your password meets the requirements!\n"); + } + } +} \ No newline at end of file diff --git a/Cs10_1_t01/Properties/AssemblyInfo.cs b/Cs10_1_t01/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..57f9fb4 --- /dev/null +++ b/Cs10_1_t01/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cs10_1_t01")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cs10_1_t01")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("95408da2-5998-4c6c-ba96-b7fdac657396")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs11_1_t01/BinaryTree.cs b/Cs11_1_t01/BinaryTree.cs new file mode 100644 index 0000000..3811d92 --- /dev/null +++ b/Cs11_1_t01/BinaryTree.cs @@ -0,0 +1,87 @@ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace Generics.BinaryTrees +{ + public class BinaryTree : IEnumerable where T : IComparable + { + public BinaryTree Root { get; private set; } + public BinaryTree Left { get; private set; } + public BinaryTree Right { get; private set; } + public T Value { get; private set; } + + public void Add(T value) + { + if (Root == null) + { + Value = value; + Root = this; + return; + } + + var current = Root; + while (current != null) + { + if (value.CompareTo(current.Value) > 0) + { + if (current.Right == null) + { + current.Right = new BinaryTree { Value = value }; + return; + } + current = current.Right; + } + else + { + if (current.Left == null) + { + current.Left = new BinaryTree { Value = value }; + return; + } + current = current.Left; + } + } + } + + IEnumerable GoThroughTree() + { + if (Root == null) yield break; + + var stack = new Stack>(); + var current = Root; + + while (stack.Count > 0 || current != null) + { + if (current == null) + { + current = stack.Pop(); + yield return current.Value; + current = current.Right; + } + else + { + stack.Push(current); + current = current.Left; + } + } + } + + public IEnumerator GetEnumerator() => + GoThroughTree().GetEnumerator(); + + IEnumerator IEnumerable.GetEnumerator() => + GetEnumerator(); + } + + public class BinaryTree + { + public static BinaryTree Create(params T[] arr) where T : IComparable + { + var res = new BinaryTree(); + foreach (var el in arr) + res.Add(el); + return res; + } + } +} \ No newline at end of file diff --git a/Cs11_1_t01/BinaryTree_should.cs b/Cs11_1_t01/BinaryTree_should.cs new file mode 100644 index 0000000..9366965 --- /dev/null +++ b/Cs11_1_t01/BinaryTree_should.cs @@ -0,0 +1,104 @@ +using NUnit.Framework; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Generics.BinaryTrees +{ + [TestFixture] + public class BinaryTree_should + { + [Test] + public void BeEmptyWhenCreated() + { + CollectionAssert.AreEqual(new int[0], new BinaryTree()); + } + + [Test] + public void PlaceLesserElementToLeft() + { + var tree = new BinaryTree(); + tree.Add(2); + tree.Add(1); + Assert.AreEqual(2, tree.Value); + Assert.AreEqual(1, tree.Left.Value); + } + + [Test] + public void PlaceEqualElementToLeft() + { + var tree = new BinaryTree(); + tree.Add(2); + tree.Add(2); + Assert.AreEqual(2, tree.Value); + Assert.AreEqual(2, tree.Left.Value); + } + + [Test] + public void PlaceGreaterElementToRight() + { + var tree = new BinaryTree(); + tree.Add(2); + tree.Add(3); + Assert.AreEqual(2, tree.Value); + Assert.AreEqual(3, tree.Right.Value); + } + + [Test] + public void InitializeFromAnArrayAndSort1() + { + // Чтобы этот код скомпилировался, нужно создать ещё один + // класс с именем BinaryTree, но уже без generic-аргументов. + // Так делают, чтобы можно было не указывать тип-параметр при использовании. + // Дело в том, что типы-параметры методов часто компилятор может + // определить самостоятельно и их можно не указывать, + // а типы-параметры у самого типа или его конструктора, указывать нужно всегда. + // Пример применения такой техники в стандартной библиотеки — + // это классы Tuple и класс Tuple со статическим методоми Create(...). + var tree = BinaryTree.Create(4, 3, 2, 1); + CollectionAssert.AreEqual(new[] { 1, 2, 3, 4 }, tree); + } + + [Test] + public void InitializeFromAnArrayAndSort2() + { + var tree = BinaryTree.Create(2, 4, 1, 7, 3, 9, 5, 6, 8); + CollectionAssert.AreEqual(new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }, tree); + } + + [Test] + public void CanStoreDefaultValueOfT() + { + var tree = BinaryTree.Create(1, 0, 2); + CollectionAssert.AreEqual(new[] { 0, 1, 2 }, tree); + } + + [Test] + public void EnumerationIsLazy() + { + var r = new Random(); + var items = Enumerable.Range(0, 50000).Select(i => r.Next()); + var tree = BinaryTree.Create(items.ToArray()); + RunWithTimeout(1000, "tree.First() is too slow. Enumeration is not lazy?", + () => + { + var sum = 0; + for (int i = 0; i < 50000; i++) + { + sum += tree.First(); + } + }); + } + + protected static void RunWithTimeout(int timeout, string message, Action func) + { + var task = Task.Run(func); + if (!task.Wait(timeout)) + { + Assert.Fail(message); + } + } + } +} diff --git a/Cs11_1_t01/Generics.BinaryTrees.csproj b/Cs11_1_t01/Generics.BinaryTrees.csproj new file mode 100644 index 0000000..803ab7d --- /dev/null +++ b/Cs11_1_t01/Generics.BinaryTrees.csproj @@ -0,0 +1,69 @@ + + + + + Debug + AnyCPU + {59039D80-8666-4CB5-9B27-1D23220C8E4D} + Exe + Properties + Generics.BinaryTrees + Generics.BinaryTree + v4.8 + 512 + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + False + .\nunit.framework.dll + + + False + .\nunitlite.dll + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs11_1_t01/Generics.BinaryTrees.sln b/Cs11_1_t01/Generics.BinaryTrees.sln new file mode 100644 index 0000000..5ce2828 --- /dev/null +++ b/Cs11_1_t01/Generics.BinaryTrees.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30104.148 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Generics.BinaryTrees", "Generics.BinaryTrees.csproj", "{59039D80-8666-4CB5-9B27-1D23220C8E4D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {59039D80-8666-4CB5-9B27-1D23220C8E4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {59039D80-8666-4CB5-9B27-1D23220C8E4D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {59039D80-8666-4CB5-9B27-1D23220C8E4D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {59039D80-8666-4CB5-9B27-1D23220C8E4D}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {DA901934-E582-457E-84F8-C2C91DBB4D95} + EndGlobalSection +EndGlobal diff --git a/Cs11_1_t01/Program.cs b/Cs11_1_t01/Program.cs new file mode 100644 index 0000000..aa2dbb8 --- /dev/null +++ b/Cs11_1_t01/Program.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; +using System.Linq; +using NUnitLite; + +class Program +{ + static void Main(string[] args) + { + new AutoRun().Execute(args); + } +} diff --git a/Cs11_1_t01/Properties/AssemblyInfo.cs b/Cs11_1_t01/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4cf6626 --- /dev/null +++ b/Cs11_1_t01/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Generics.BinaryTree")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Generics.BinaryTree")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("59039d80-8666-4cb5-9b27-1d23220c8e4d")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs11_1_t01/README.md b/Cs11_1_t01/README.md new file mode 100644 index 0000000..5032757 --- /dev/null +++ b/Cs11_1_t01/README.md @@ -0,0 +1,3 @@ +# ЗАДАНИЕ «Бинарное дерево» + +В проекте Generics.BinaryTrees создайте класс бинарного дерева поиска так, чтобы он проходил приложенные тесты. Оптимизируйте код метода GetEnumerable так, чтобы он работал за O(n) по времени, где n - количество элементов в дереве, и O(1) по памяти. diff --git a/Cs11_1_t01/app.config b/Cs11_1_t01/app.config new file mode 100644 index 0000000..3e0e37c --- /dev/null +++ b/Cs11_1_t01/app.config @@ -0,0 +1,3 @@ + + + diff --git a/Cs11_1_t01/nunit.framework.dll b/Cs11_1_t01/nunit.framework.dll new file mode 100644 index 0000000000000000000000000000000000000000..a467965ea1ebce24becb0b05051edef249244020 GIT binary patch literal 314880 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 z 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

    N&n`7r13r3$6+CS6$047i?}Z_5p?6n)zkCZDzIW zlXoi=8>sPpRAD=4q(e7)Qp5=&>CjpD4>7iNduON=B#k;hKLy9#EV*??$k&KD$(Pv* zGvwmA&UkJXJ}&Y^jHPKDRGX>TfAHRBQ1{2Jm`+&JoKZ*?ro4=li{;4`=s9S1i1mhHLkF+^>cxP&Wae$?PG)cV@zQO z*J4u+n~Pmh2084>Ztx9w?ra&W*Q2G$W<3oWcs|T-*mN{p5OIL$XCNzMds%}_Ss&Tz z+?3u$iQD0|7bR}ANv%V+YwIH$S$olS%C@>e`ZSd);0&;a3hZ8m9Xf$+Xsm(#Wl@A_ zC*)K_pxWR`q6T4i7&kyFa+9-T=uJ|=efA%+nCWFfPKJqA3frgC>K5uFBh`o7yN^u4 z+2}S>{a7ewgGDhT(i4r2_H3P8NKNgn)JX+EyKEHBi<}9QSV(fvr=dWyg z?6-gV`oxPb{Mq{0Mf23}wckAX$D3aM))zBdqeH5xgFuG-F)6<;+hnm=mAB{?zrqJbd6m471{0l_d5m@<`aK=~`}7ozp|5 z);`2kqUxtA$Az>{B^2oaoIA2YtZA1aO#N z(NA;}_{`xy>)ap+W~u5J{tAHsYQMmN z2)eK$!Uxf73Q_<~NfZ3yLb;FKhWTw-hGW8ru9wfsd{QdVMp>>Y6{+uJ{wU1Ruyb{J zpTvsYw132tGEG_dX!1jT-46Oe2u)WT!sTR{opR8l{YH!>XcYsrodc+ga;!0o?E)VH zvJtenE-lx9T?o%}8elo(xf;@^B9V5H-HD(k;H=JUw2Gi6TTzxSfosa%lwpBL{L$T0n)ox@ArKkd`;=se)>W04*J%Sa|ZLwskp29qhfF#+4-IFKV*Sl Sjj+v7=OqfHcgp{r1^xwPJgON0 literal 0 HcmV?d00001 diff --git a/Cs11_1_t01/nunitlite.dll b/Cs11_1_t01/nunitlite.dll new file mode 100644 index 0000000000000000000000000000000000000000..44366ef0650e19b10999ea1a2de6c6fcabe3a8d2 GIT binary patch literal 79872 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 z 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

  • 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 literal 0 HcmV?d00001 diff --git a/Cs12_1_t01/App.config b/Cs12_1_t01/App.config new file mode 100644 index 0000000..193aecc --- /dev/null +++ b/Cs12_1_t01/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cs12_1_t01/Cs12_1_t01.csproj b/Cs12_1_t01/Cs12_1_t01.csproj new file mode 100644 index 0000000..c976f3c --- /dev/null +++ b/Cs12_1_t01/Cs12_1_t01.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {CDC057FC-C2AA-4765-A13A-E18FF953994B} + Exe + Cs12_1_t01 + Cs12_1_t01 + v4.8 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs12_1_t01/Cs12_1_t01.sln b/Cs12_1_t01/Cs12_1_t01.sln new file mode 100644 index 0000000..b6fbf1d --- /dev/null +++ b/Cs12_1_t01/Cs12_1_t01.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30104.148 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cs12_1_t01", "Cs12_1_t01.csproj", "{CDC057FC-C2AA-4765-A13A-E18FF953994B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CDC057FC-C2AA-4765-A13A-E18FF953994B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CDC057FC-C2AA-4765-A13A-E18FF953994B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CDC057FC-C2AA-4765-A13A-E18FF953994B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CDC057FC-C2AA-4765-A13A-E18FF953994B}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {7512AD05-77CD-4BA9-B2D0-2C076D8DAD9B} + EndGlobalSection +EndGlobal diff --git a/Cs12_1_t01/Program.cs b/Cs12_1_t01/Program.cs new file mode 100644 index 0000000..ef3005a --- /dev/null +++ b/Cs12_1_t01/Program.cs @@ -0,0 +1,183 @@ +// Создать модель карточной игры. +// Требования: +// 1. Класс Game формирует и обеспечивает: +// 1.1.1. Список игроков (минимум 2); +// 1.1.2. Колоду карт (36 карт); +// 1.1.3. Перетасовку карт (случайным образом); +// 1.1.4. Раздачу карт игрокам (равными частями каждому игроку); +// 1.1.5. Игровой процесс. Принцип: Игроки кладут по одной карте. +// У кого карта больше, то тот игрок забирает все карты и кладет их в конец своей колоды. +// Упрощение: при совпадении карт забирает первый игрок, шестерка не забирает туза. +// Выигрывает игрок, который забрал все карты. +// 2. Класс Player (набор имеющихся карт, вывод имеющихся карт). +// 3. Класс Karta (масть и тип карты (6–10, валет, дама, король, туз)). + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; + +namespace Cs12_1_t01 +{ + class Card + { + public int Suit { get; set; } + public int Value { get; set; } + public Card(int suit, int value) + { + Suit = suit; + Value = value; + } + public override string ToString() + { + char[] suitsList = { '\u2665', '\u2666', '\u2663', '\u2660' }; + // 0 - червы, 1 - бубны, 2 - трефы, 3 - пики + string[] valuesList = { " 6", " 7", " 8", " 9", "10", " В", " Д", " К", " Т" }; + return $"{valuesList[Value]}{suitsList[Suit]}"; + } + } + + class Deck + { + Card[] deck; + public int Stock { get; private set; } + public Deck() + { + deck = new Card[36]; + int i = 0; + for (int suit = 0; suit <= 3; ++suit) + { + for (int value = 0; value <= 8; ++value) + { + deck[i] = new Card(suit, value); + ++i; + } + } + Stock = 36; + } + public void Shuffle() + { + Random rnd = new Random(); + for (int i = 0; i < Stock - 1; ++i) + { + int k = rnd.Next(i, Stock); + Card tmp = deck[i]; + deck[i] = deck[k]; + deck[k] = tmp; + } + } + public Card Pop() + { + Card tmp = deck[--Stock]; + deck[Stock] = null; + return tmp; + } + public override string ToString() + { + StringWriter strWriter = new StringWriter(); + for (int i = 0; i < Stock; i++) + { + strWriter.Write($"{deck[i]}\t"); + if ((i + 1) % 9 == 0) strWriter.WriteLine(); + } + return strWriter.ToString(); + } + } + + class Player + { + public Stack Cards = new Stack(); + public void ShowCards() => Console.WriteLine(string.Join(", ", Cards.Reverse())); + } + + class Game + { + public List Players = new List(); + public Game(int n) + { + if (n < 2) n = 2; + if (n > 6) n = 6; + Deck D = new Deck(); + D.Shuffle(); + for (int i = 0; i < n; i++) + { + Players.Add(new Player()); + } + for (int i = 0; i < 36;) + { + for (int j = 0; j < n; j++) + { + if (i < 36) + { + Players[j].Cards.Push(D.Pop()); + i++; + } + } + } + + } + public void Start() + { + while (!Players.Any(p => p.Cards.Count == 36)) + { + Console.Clear(); + Card[] table = new Card[Players.Count]; + int maxCardIndex = 0; + Card maxCard = null; + for (int i = 0; i < Players.Count; i++) + { + if (Players[i].Cards.Count != 0) + { + Card card = Players[i].Cards.Pop(); + if (maxCard == null || maxCard.Value < card.Value) + { + maxCard = card; + maxCardIndex = i; + } + table[i] = card; + } + } + + for (int i = 0; i < Players.Count; i++) + { + Console.Write($"Игрок {i + 1}: "); + Players[i].ShowCards(); + Console.WriteLine(); + } + Console.Write($"Походили:\t"); + for (int i = 0; i < Players.Count; i++) + { + Console.Write($"{i + 1}: "); + Console.Write(table[i] + "\t\t"); + } + Console.WriteLine("\n"); + Array.ForEach(table, card => { if (card != null) Players[maxCardIndex].Cards.Push(card); }); + + //Console.ReadKey(true); + System.Threading.Thread.Sleep(50); + } + Console.WriteLine($"Выиграл Игрок {Players.FindIndex(p => p.Cards.Count == 36) + 1}.\n"); + } + } + + + class Program + { + static void Main(string[] args) + { + Console.OutputEncoding = Encoding.Unicode; + Console.InputEncoding = Encoding.Unicode; + + int n = 0; + bool f = false; + while (!f) + { + Console.Write("Задайте количество игроков (2-6): "); + f = int.TryParse(Console.ReadLine(), out n); + } + Game G = new Game(n); + G.Start(); + } + } +} diff --git a/Cs12_1_t01/Properties/AssemblyInfo.cs b/Cs12_1_t01/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..36469a4 --- /dev/null +++ b/Cs12_1_t01/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cs12_1_t01")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cs12_1_t01")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("cdc057fc-c2aa-4765-a13a-e18ff953994b")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs13_1_t01/App.config b/Cs13_1_t01/App.config new file mode 100644 index 0000000..ecdcf8a --- /dev/null +++ b/Cs13_1_t01/App.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/Cs13_1_t01/Delegates.Reports.csproj b/Cs13_1_t01/Delegates.Reports.csproj new file mode 100644 index 0000000..664d86e --- /dev/null +++ b/Cs13_1_t01/Delegates.Reports.csproj @@ -0,0 +1,74 @@ + + + + + Debug + AnyCPU + {EFC39780-2E5B-4C21-8605-8C21B4DFA19F} + Exe + Properties + Delegates.Reports + Delegates.Reports + v4.7.2 + 512 + true + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + False + .\nunit.framework.dll + + + False + .\nunitlite.dll + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs13_1_t01/Delegates.Reports.sln b/Cs13_1_t01/Delegates.Reports.sln new file mode 100644 index 0000000..c0bb90d --- /dev/null +++ b/Cs13_1_t01/Delegates.Reports.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30114.105 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Delegates.Reports", "Delegates.Reports.csproj", "{EFC39780-2E5B-4C21-8605-8C21B4DFA19F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {EFC39780-2E5B-4C21-8605-8C21B4DFA19F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EFC39780-2E5B-4C21-8605-8C21B4DFA19F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EFC39780-2E5B-4C21-8605-8C21B4DFA19F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EFC39780-2E5B-4C21-8605-8C21B4DFA19F}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {5DCD9E3B-B886-424E-84CB-A288124F5B77} + EndGlobalSection +EndGlobal diff --git a/Cs13_1_t01/MeanAndStd.cs b/Cs13_1_t01/MeanAndStd.cs new file mode 100644 index 0000000..ddca412 --- /dev/null +++ b/Cs13_1_t01/MeanAndStd.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Delegates.Reports +{ + public class MeanAndStd + { + public double Mean { get; set; } + public double Std { get; set; } + public override string ToString() + { + return Mean.ToString(CultureInfo.InvariantCulture) + "±" + Std.ToString(CultureInfo.InvariantCulture); + } + } +} diff --git a/Cs13_1_t01/Measurement.cs b/Cs13_1_t01/Measurement.cs new file mode 100644 index 0000000..3d61fc5 --- /dev/null +++ b/Cs13_1_t01/Measurement.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Delegates.Reports +{ + public class Measurement + { + public double Temperature { get; set; } + public double Humidity { get; set; } + + } +} diff --git a/Cs13_1_t01/Program.cs b/Cs13_1_t01/Program.cs new file mode 100644 index 0000000..aa2dbb8 --- /dev/null +++ b/Cs13_1_t01/Program.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; +using System.Linq; +using NUnitLite; + +class Program +{ + static void Main(string[] args) + { + new AutoRun().Execute(args); + } +} diff --git a/Cs13_1_t01/Properties/AssemblyInfo.cs b/Cs13_1_t01/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..c56e3bb --- /dev/null +++ b/Cs13_1_t01/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Delegates.Reports")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Delegates.Reports")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("efc39780-2e5b-4c21-8605-8c21b4dfa19f")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs13_1_t01/README.md b/Cs13_1_t01/README.md new file mode 100644 index 0000000..1eeda0e --- /dev/null +++ b/Cs13_1_t01/README.md @@ -0,0 +1,11 @@ +# Завдання + +Петро розробив генератор звітів в проекті Delegates.Reports, який рахує просту статистику про погоду за кількома параметрами за кілька днів. Його генератор може створювати два звіти: звіт в HTML, який рахує середнє і стандартне відхилення, і звіт в Markdown, який рахує медіани. + +Однак, що робити, якщо потрібно порахувати медіани і вивести результат в HTML? + +А якщо потрібен буде третій звіт в HTML? + +Поточне рішення вкрай незручно для таких ситуацій. + +Допоможіть Петру перевести його код з успадкування на делегування. Розділіть відповідальності за оформлення звіту і по обчисленню показників. В результаті сам клас ReportMaker вам, можливо, вже й не знадобиться. diff --git a/Cs13_1_t01/ReportMaker.cs b/Cs13_1_t01/ReportMaker.cs new file mode 100644 index 0000000..939e549 --- /dev/null +++ b/Cs13_1_t01/ReportMaker.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + + +namespace Delegates.Reports +{ + public abstract class Format + { + public Func MakeCaption { get; protected set; } + public Func BeginList { get; protected set; } + public Func MakeItem { get; protected set; } + public Func EndList { get; protected set; } + } + + public class HtmlFormat : Format + { + public HtmlFormat() + { + MakeCaption = caption => $"

    {caption}

    "; + BeginList = () => "
      "; + MakeItem = (valueType, entry) => $"
    • {valueType}: {entry}"; + EndList = () => "
    "; + } + } + + public class MarkDownFormat : Format + { + public MarkDownFormat() + { + MakeCaption = caption => $"## {caption}\n\n"; + BeginList = () => ""; + MakeItem = (valueType, entry) => $" * **{valueType}**: {entry}\n\n"; + EndList = () => ""; + } + } + + public abstract class Stat + { + public string Caption { get; protected set; } + public Func, object> MakeStatistics { get; protected set; } + } + + public class MeanAndStdStat : Stat + { + public MeanAndStdStat() + { + Caption = "Mean and Std"; + MakeStatistics = (data) => + { + var listData = data.ToList(); + var mean = listData.Average(); + var std = Math.Sqrt(listData.Select(z => Math.Pow(z - mean, 2)).Sum() / (listData.Count - 1)); + + return new MeanAndStd + { + Mean = mean, + Std = std + }; + }; + } + } + + public class MedianStat : Stat + { + public MedianStat() + { + Caption = "Median"; + MakeStatistics = (data) => + { + var list = data.OrderBy(z => z).ToList(); + if (list.Count % 2 == 0) + return (list[list.Count / 2] + list[list.Count / 2 - 1]) / 2; + else + return list[list.Count / 2]; + }; + } + } + + public class ReportMaker + { + public string MakeReport(IEnumerable measurements, Stat stat, Format format) + { + var data = measurements.ToList(); + var result = new StringBuilder(); + result.Append(format.MakeCaption(stat.Caption)); + result.Append(format.BeginList()); + result.Append(format.MakeItem("Temperature", stat.MakeStatistics(data.Select(z => z.Temperature)).ToString())); + result.Append(format.MakeItem("Humidity", stat.MakeStatistics(data.Select(z => z.Humidity)).ToString())); + result.Append(format.EndList()); + return result.ToString(); + } + } + + public static class ReportMakerHelper + { + public static string MeanAndStdHtmlReport(IEnumerable data) + { + return new ReportMaker().MakeReport(data, new MeanAndStdStat(), new HtmlFormat()); + } + + public static string MedianMarkdownReport(IEnumerable data) + { + return new ReportMaker().MakeReport(data, new MedianStat(), new MarkDownFormat()); + } + + public static string MeanAndStdMarkdownReport(IEnumerable measurements) + { + return new ReportMaker().MakeReport(measurements, new MeanAndStdStat(), new MarkDownFormat()); + } + + public static string MedianHtmlReport(IEnumerable measurements) + { + return new ReportMaker().MakeReport(measurements, new MedianStat(), new HtmlFormat()); + } + } +} \ No newline at end of file diff --git a/Cs13_1_t01/ReportMaker_should.cs b/Cs13_1_t01/ReportMaker_should.cs new file mode 100644 index 0000000..f445650 --- /dev/null +++ b/Cs13_1_t01/ReportMaker_should.cs @@ -0,0 +1,64 @@ +using NUnit.Framework; +using System.Collections.Generic; + +namespace Delegates.Reports +{ + [TestFixture] + public class ReportMaker_should + { + private readonly List data = new List + { + new Measurement + { + Humidity=1, + Temperature=-10, + }, + new Measurement + { + Humidity=2, + Temperature=2, + }, + new Measurement + { + Humidity=3, + Temperature=14 + }, + new Measurement + { + Humidity=2, + Temperature=30 + } + }; + [Test] + public void MeanAndStdHtml() + { + var expected = @"

    Mean and Std

    • Temperature: 9±17.0880074906351
    • Humidity: 2±0.816496580927726
    "; + var actual = ReportMakerHelper.MeanAndStdHtmlReport(data); + Assert.AreEqual(expected, actual); + } + + [Test] + public void MedianMarkdown() + { + var expected = "## Median\n\n * **Temperature**: 8\n\n * **Humidity**: 2\n\n"; + var actual = ReportMakerHelper.MedianMarkdownReport(data); + Assert.AreEqual(expected, actual); + } + + [Test(Description = "Новый тест, который нужно сделать рабочим после рефакторинга")] + public void MeanAndStdMarkdown() + { + var expected = "## Mean and Std\n\n * **Temperature**: 9±17.0880074906351\n\n * **Humidity**: 2±0.816496580927726\n\n"; + var actual = ReportMakerHelper.MeanAndStdMarkdownReport(data); + Assert.AreEqual(expected, actual); + } + + [Test(Description = "Новый тест, который нужно сделать рабочим после рефакторинга")] + public void MedianHtml() + { + var expected = "

    Median

    • Temperature: 8
    • Humidity: 2
    "; + var actual = ReportMakerHelper.MedianHtmlReport(data); + Assert.AreEqual(expected, actual); + } + } +} diff --git a/Cs13_1_t01/nunit.framework.dll b/Cs13_1_t01/nunit.framework.dll new file mode 100644 index 0000000000000000000000000000000000000000..a467965ea1ebce24becb0b05051edef249244020 GIT binary patch literal 314880 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
    Gqq*IYDZr!M+d$h-hVG+;7$0V}m2!>3 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 z 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

    N&n`7r13r3$6+CS6$047i?}Z_5p?6n)zkCZDzIW zlXoi=8>sPpRAD=4q(e7)Qp5=&>CjpD4>7iNduON=B#k;hKLy9#EV*??$k&KD$(Pv* zGvwmA&UkJXJ}&Y^jHPKDRGX>TfAHRBQ1{2Jm`+&JoKZ*?ro4=li{;4`=s9S1i1mhHLkF+^>cxP&Wae$?PG)cV@zQO z*J4u+n~Pmh2084>Ztx9w?ra&W*Q2G$W<3oWcs|T-*mN{p5OIL$XCNzMds%}_Ss&Tz z+?3u$iQD0|7bR}ANv%V+YwIH$S$olS%C@>e`ZSd);0&;a3hZ8m9Xf$+Xsm(#Wl@A_ zC*)K_pxWR`q6T4i7&kyFa+9-T=uJ|=efA%+nCWFfPKJqA3frgC>K5uFBh`o7yN^u4 z+2}S>{a7ewgGDhT(i4r2_H3P8NKNgn)JX+EyKEHBi<}9QSV(fvr=dWyg z?6-gV`oxPb{Mq{0Mf23}wckAX$D3aM))zBdqeH5xgFuG-F)6<;+hnm=mAB{?zrqJbd6m471{0l_d5m@<`aK=~`}7ozp|5 z);`2kqUxtA$Az>{B^2oaoIA2YtZA1aO#N z(NA;}_{`xy>)ap+W~u5J{tAHsYQMmN z2)eK$!Uxf73Q_<~NfZ3yLb;FKhWTw-hGW8ru9wfsd{QdVMp>>Y6{+uJ{wU1Ruyb{J zpTvsYw132tGEG_dX!1jT-46Oe2u)WT!sTR{opR8l{YH!>XcYsrodc+ga;!0o?E)VH zvJtenE-lx9T?o%}8elo(xf;@^B9V5H-HD(k;H=JUw2Gi6TTzxSfosa%lwpBL{L$T0n)ox@ArKkd`;=se)>W04*J%Sa|ZLwskp29qhfF#+4-IFKV*Sl Sjj+v7=OqfHcgp{r1^xwPJgON0 literal 0 HcmV?d00001 diff --git a/Cs13_1_t01/nunitlite.dll b/Cs13_1_t01/nunitlite.dll new file mode 100644 index 0000000000000000000000000000000000000000..44366ef0650e19b10999ea1a2de6c6fcabe3a8d2 GIT binary patch literal 79872 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 z zgdUqhPbV~yLKhI)okA}n^s*$XY_r7un0wH#*j)uyr-4L!sE&%=H7T6xrI^!J{6iRD zm*Qhgu%hnmDIE3!zb}O!%JLghI0i51doqP%Qw8#yQ}`stUrgagu>9*OoIF)AFG`d> z)OU;Bw^MxTzQyjlDV%z4vHL*^r%qe!ew4zgzm_B$A!Ux-A!Q2l<3*I2^)G)`W_mfQcjjkBvCSLeGfUb0m%gWu%LykB`sv-`kE5qCY)p90*Rapcr$IOH}G8^{*4Et>o9kEg@^ zjab+Qbf}94^2Dx4A)=~rc27h;tW^rxNkL(9j#fwd3Uvun9NRmS&f*Mq z0VYGNQ`wIxpTGX)>sUzTLq!vrmrciC%c4)CgZ3=b6Z3lJZQXg1f zGl1Lj`tH+EI_Ww5PHJEKq6ijZ_KB&6WkkA9q4HZ|be)c8f$IH1T=Nd2D7uNJII$Dd zv!=m|4FO`}IxMl-PE%mWpmQ(yy(saV2$iJKMar}6^18kDvN5QZSI!vghu~=ZU5~%@ z8GlI{l<)!Cur&zS7b5M+6F5llcyqWSl=l2Wq1PfHU`Sfs2 z=P{bJnb;ML#N2fZMx;Oc_9*R*jvGBFB*?$IeJ+j)k} zWnXpf|Jau0d$i@i{}Wphqsfpp{S9e!-z1AS!l;FGKbg8}Belg%pwvVYoAC%(w(|!( zvv60-se_tr0dKwSO;mvPJ|d_!OCfet)IOn$o8k$SE*xJB(s(q`!)XL0{nRE`V?NM? zbj;3!Kt%_l2$96IP^rT1*h)-4o=f8!2!B3}(=^{qyZ}Pt#WeM8Na0ls=nP`z^-@3X z2h5%FU$|c~_wfE)J8=|9c7hnw?Zk9?WN9ORK@_an`==ACA}gl$*Q6s2X6`Zng}XO% zDak$M;2`Fb4SV8F1J_Kvj9iEEOm`MA=aqg%@Vh=Dy?sTTdML(Q0f49|8c#9j;GZ`A zYRG3+!aWrKRZ4<e+$*jyt1xgU}DmHyI? zco9jy+n1Ac78VO9%fKf~wDY#Czzo z7)!z?T_=H6tUk*-{0ihl#dL2%mNVPOBf!0h?GSf2QfaVL^(hK2D1Jub8D&d-T8n2@ zC&kM(r7T6k-FmVhu>&BETNaGKldF2d%M+Yaw*e6{jZq%sqokZo?mpnQlhh{&)z@WG zJ_Utd|CQLMRO)6x5GO2TZbs$c0xQ>)(~Kex`JyAPOqa%)h~Zv9`ZMx)1#o{R;d&5! zMYy$jHv%Y>{t;A<{S3+Gd-6Q)21wD#Q-F2~`?Snw!7&qGkf5Dsr=3zvXMoM2L^4xP zo5T0wmcjZqu4C2mc(>06aUc98e?bJ?cc3Wdenikre2GM{T|=AwsjZh^z+$A{s{~?h zxF%D&5}1XR!ZmhruYWWz53Z6!LH%o$*>xL;IO+O;^SLF*g~gV@!s$7t3meShGXO(vjqQr7Z4TJZ6tU`Dq3G(CDR0+)mO`EJfFbX7uE!`<5o!xrb4t`FgA zw7vuFWA;9W@YU$_*`hbnqQ^$%Xp-+0&3Ksa`=MM)#8ZD!^MrqEvtI3I=9UzWQ-HpX zOT|#CF+LdrOGy4{RXbBrRiFLes&aoy#=t!itWkd}J=%+%fYgSf9(8)*THVgf#8*_4 zUjqc<*>(c;jro$7XFmKkPN3n7%q!%X8By(}RFn)=hho#-Kr zxCmRLqMG#9V9|8--r%?3d5ds8U%ejO`fALMwB#oR)pkG0Xis1!7{T$-0VrPH7jHs( zsd*m;9G>_k=Y3{0@g1d*_#UwDG`K3Okx6$MgK+= zOe>TNR$TJ4nZpLXgEtm=R-KPzG?!fIBDk`EI{Jy&?p#*P(*a^?gBCC~IoG=qn40UU zro3@++o!H9ao^Z(pdXj`V;&AhVrEDz`(Tb3MZ`_vp+F{`VQ?N2kKi) z+FJ=E`~ZP?j-3b~03T&>BHBsq+!jgOkArNURV_j#QC@glD-Z*kR2utW>O;+4DWEm2 zAux~TpI-4hr@{W@3<-BMDNIe)nXSUqK%G-mn3|*0!C~igJZP(M9u@|CtjYn`a1JHD zLo2xHhQli|!=ZK7bXn8O$4u-+lCTm1l@-K5CEen8;8298g46Vvbf9wExlRDBhDZdj%T9K4s7 zxifYiwS`NygTVeeFR7d}S*J!i2|*jN#8oJ!{kT4<*Rv?S9jvVys|&c$&n>ymL5*P~?cc7WOsd6JXE+JUa(8ZI4V@s7VbgyVCyHBh0@n-Owv zPoaGI{+<;25JDBEfwPcoXm@aBBH%uq;y$|v?&~S;JA2@MkmAzofbK^rlwQGecP3Hn z=62>Ht?nhL4K)PdGF*QW_JOhD;Op0y(UY#tZ~*zIyUuswIg;90XBBFa?oM8aX8~4A z*I|E_mg#HpR2c8wc7`dF*k%uOz77s_`gw>#$$R)E*xucwGr$%usYix~9L0YE@t z%3g@4?JPo)p>2b7ntmSMBg9d<{Ji8L!u$9-OLAtwFlTwuidcytcmx#$mNWp ze1UVh%9+PG4*@8kxyF^KuhHP6I4-5~v$`*)M`skNbQS@0UqpBpQMm}5Vh|g!7D-b| zK*9b86IN2DBiNWHZHY^fP$zZ&?n}~I&V>lBy({@;gkbf?;#Wda(=pcIYaE)s9P~)& zgHOT=I7G}mxtecY|b%mi1R&rFPT*XXkAO+3<%3qz1 zis4G@Y{omw7|1x2M2#d$A&4s+T@=kJ1A@18n^eNd7c=ekiDen82STVmh_+RZ0Jlf2 za4BV{Oe5Uju~?c7=ZP16}%#?y{YlzMj9zjQ~)HG((m{ESc6K! zxc~~2g?@EPxw9BSY)_~fr)**S0lJcPiy4C55HNgRrw4*@%wf*QGqmmSeAF6Qi*-8u zbs%vg$mP32+xE`)YKFROq!>4Zwj~Ra^PSA<#2B)AEuvEEZa<0kGlX~umE_>L70)1^ z$=^T($|0~H{)!PkO!;|!Nss7LH63#N&JM{>0xf|*3e%6;|L^f^NBeis?J1+2cYG8H z7&(Dnn4_!Zc4`XMphsH9Y0_GdIzghcel-%{CPW9Insi4+>9SCY3hRGwH zi^ES)i6#bfd8$IXBUz9Qd7X5OWb-V67X5`=)PL}J=%yOmABtBuY+w8;0y31N#@@ zyaX*Yfk8g$^k#I{gO;UfH82xbhV5x5G~|%L|{X0w>z+$ET{A5sKqu z4=s3hwgMm-G%ve;zs~>QVI+D1oxc%i1DE#x@ty$ROTwM!qAMVakH6WtTM)L^ckTr) zKK6iPUfphMMfuodyS2n|$j?~h=dHsLi$8T{Ce}kWy{YBWrST|jj|FZeHl0Zf!7J6M za~fcyEfxIQgqMfa(xM_dAPsa50|@$}iQ#zqY})jpbtKKPuxz4tn$RZ6w`ot0OHHT% zzV)2+^j>!ciaw4(B*jtQo;H1OAgkgh_63sI4)i9PsL3rE_frEb%!IROp-xPD>sWMel5%7)4abxZ3q%>Va?Ewon`NQ?of;j=M5 z4hy(cIVtimV2Gs>EY0XA^FNM&&!U0JqMFLZdpAF^A7OU8?J%)K>kb$8a&6sEq@5; zujBj`El6)J{I$;xXrBbs-a?*;?W@`&tsi$vA;xif`%!vqTso5BUP9D6``T)_JCn8< z?k_0;_qv9ptlQR@3ci#Mb~GianMvGARLW@QIFu6F1J$NYp99kcG(cUt;CHS2gr*ykhnv==6pQVHITawhw#BbXpb??@sth*r<%#0RpO9`w<2ctt$)QRcfh3Vjq zR4`N7sJ&9rHl~9OLzC1@*{4!eH$!&R-bq>akLlnk!;;jr2Dk=2PFyM~?n?S4lja2c zGu)>s7FCC8XYMD2{}HV@@j@su z;nt8gPO`sr%P1|)exH1N0JkoA7O4AyI|`A#Y@6-@+xxVUbYk=p1ob!fNW{=;$+hz( z{fx||@}c_65u*C+WI0*lQ&mhbdTu|X)!>*+0vUX03S;8;qdH8Q^*;Q)?eft z0!XuLE+b;85jG?0-_udof=?p{j|&-DaHIRAve;*IQ8G$7FJ0jHs7%V-cEq5A?|x2+ z=2~wc&*R}EGWH^iVX+POQ$acOy;z=l!)3#xPrS8C3}LQB?{7+qJQtzlu6 z=Hu!f(a;g-egyUjMJ4jac4^;}*mHhxKtY*SnF-naN|(w>0bb&O85r$UfXzo3v)Vv< zlc~Whi5unEk()&M_&xH0k2`hI2v(18vr;YK;}Tp0OyrjmYhfnr^r2dWIE3rq1PH1t z3v}TUa|w04fs^4Gsm(4Nt(2g8?4rhe+-btF(^R_jSulu4}!%Y-q8+si_2fST<$BuE%=Emi8wnKrtfbus7p$4Bf+Gu%; z+UO3@df4TSwn=Qyenn}04G@fH`*0@_CM_1n=HpDri1E5bdMn=LFi%32`pqcN}JoM2(zCV5< zK5~Ms_&|OjjE`NHxEG;J@n$jJ1+2+eYYLt+ZTMDUSr{yv?pUr?gU!!+u_-*K$Jo9n$gdaBp1NXV*EsA^@tC3_^X#(`YZ8tz8>;aR z2|hfJ{d!6aUs0#nKJ|{TA75BJ9^aoye)iFY&3rtn3@_?yxQdFoR@xZ)tX;6Y8S`eg zpOatRZD3id3RVXCj+% zj64ZEwG@%uo#<@*-WuH~z^2pwlgIBb1sVW;Ki*kg zgmE34lDD)XJbAv`amFdMRVDt0Q~YoC1MSGk;{AuzN9P6|bmTbf|B1f=pO+8b{&Ny1 zkT8Cj63c1Fug~&l1NpaXqmRc?>KK^#d~q$Fe*obX{N*4FEBS!*L4-*TWy+TakHT{a z{tEDi#?3qrp5$67ALuOjosT0T`q|>H{70&65icNka9(d!j`%a?CAP>bXfCnEEBORJ zVt8{Ng-3AMVE8+ZdkoW$V#+glrxe=aY7YDARu$P||B~`rTR1HgJ~2e$&npRD(?sw@ zxz1yYVGJu7p2YA-hTDoL)~wuBMFDYN#mJ~Fei%TMk4k^RS7&>g36_+cRbz|te1hkP ziTePjduN2gL8Ckx5XCK1!Cjt5lwkwbc}@{WaUPo_Y5ua1xKk^hw`_6gz^ND;JM*YC z8W<)*6zdC=j4j$LDZH;iHt))(@aH8I>%%C)ynzJ&37xh$u8{OBYoQV=2R&PCt6N=_ zE!I?QiDV16X?0be*ipVdnkN=luSdSl%%NBZ<&gZz)~cdxaf?Ipkvx*WBTV6g3kl|j zR>P8il#@&o+mMU zwvZ%yIQ%z;8_I~Xfpc^|mqUb0%&nrj_(v&OJ6uu;pIA1vCLrdQ5cGwqJkP47xWBT_ z(rgOnWj}8P#7U5eh?7DcWwsbsO7tTmRBoeN2?j!3hFqSD;>4ZEmi$mc;de_vFU}Sd z%PC*W&^EHgWlaVYKq`~J3|x-VyB?*TEj~fX+hWBa(r^#c8&G1| z;yQ$FF{q46?6L|flP|c{HJ~K3MQ26P;B0X|!wx`OJUEyvT%Sww-vqZr0^*&))HX)e zP-(o(Wm1iBwpi3cDF$Ib^)!3~7eDeS5+9&Ew4}ARJ%wG{OqeMu_-l17xvjNxaqFv2 z^g?n6O9p|-id=F3fY#at_;}?$EcuIUt-S(0eKhN=uWPN%12%@SX!c&E?QkNeGWJOM zUZunEeZn~$?*Q=T;!~URnK!z2uhI&+RwR7~;4iXDudi+Jr=?|jbKWg7b%=i$u(dzCK0*}*St%c>yR zavaj8a`~x<;+?3mZ;)QQI9X&fZ&~Tqa658P#Mqz9w}u}Pb44j*C)I8ZH;Xew6=N?A zB*`;GHDgs3Tf^swgc!`&FvjM==TPak18W!a#3<&4G;a)JueK=OL5zLDI?oex7|TZL z?V?AV!`Q7BVV8?brHK;UT0-9UYH=@P2g1=7h!uFBnRo*Y!mbeyGDbs5yI3h6W(+e} zVAqOA8QWkIcAa=knw7cYI=Jw5ag*4D^ct#%W=ZjcXFtHk(ssZpIi@K^e#=;dr_~+I z+zDB>eX3_{*3=$5_i(_sA_V7n4+r8cspt3zaSyGWm1T>=y(g#iXASIt=FMdU-)DGd9fe0V6FizJ`B4flD{$lQQv6&;a9bgzc(;$jpZN)1%8~sFir$b< zJ^+Y+a|t#~>iJtX$;_%)1bUPuU*NcNIsEU63y`l3)uK zHKt#|l&=|X=U5*x_j%^N$&_~){+VH+=Q8N2XIR6qjNvulCfmT6!euDu2ZIEkDx4zhKzG^nd$qMBHV*n*o2v@K*mFS(U;- zT2p%-wx~U?Vt6LQ9){llDyu3*^`N^E9$Wq};M&^90Z(du8u0hl9{~3Wz6dxV@ETxj z;9G!7#%ewpWjMw|ZT{P4(v}saa;Pi$Gs1Nx|MC%x`fb2%sQtQ|9{$G{B_dDl6z0|Ixg#T?d}OQsB2k8a1@h64h9F zVI97>TBEUF8rv}69HOxs3WnqJH2Z68qa!hgRjKdr?;7p=ndViv!}6ZS-oSbNK(Rw(PTk(YaKPqdiNyL>Y zY#XqfQrPTZgSekDDwlb(S-h%vJ}UWE%*aT~3!{5I^MKLMWS!s1AsTx@jt%`)Vh@se zFUZlMxxry6Y-p$}xUcw%we*Uu6$|8k8e1Y>0X9;6%e?2rX+`G;M+wKFsEftc?2Ch= z#Yv1kCwhvO2HV9s8auv7Vpg?DW9NW3M!d&ZuXr=s5n0Pw={IDSjO05aexyG%@QZo6Yn`WA-s3!WYOF} zSg*LOU}Wf2QP8Nc=c8jor-|Qd?DT@Mp}FGDCgLqe3z-<2CthQ0iMY6ST4=u5)U4uN zkb7L{EHRv`aJksl+z~oQOxKu|H!rkM%+c6@oQ0uoF|$qS%r5ORd&F3-?B(K#LA{|~ zaiqqUlogogi^}Uw+qqRm{qd(+vLCG*#dVt3 zQCy0d=vvKNQ2e8Hlekm!77ltjv{pQzvAdfHdt77xtbH5UW{n*YZj)=p%Z&B%<2dd#h;`uun8rjInW@_+DcpZQ}h$W8ECjKZ0_*#CKF_n_MTtjP?4? zD$RvtiRNvqU4;*iRB7x-#9J?#HMY2tuwgphipn3Y^`c$#&Z{dGH;ZwacU9ew*3IGw z&HDmnc8fSl^Ztc0yG5L+dB;NMt>Sde>wwN%#eB`n4VQ}B#JQSR8vfC`O6zpx?QZ)ykA3Y@(yvM=4D}&xkKEpd3Pa4cZvr!_A(^z6i;Z$KZkO`dsg$V zf#hA{4UIir-6ro6f6Czcf#@w#mE2HyYau^>DZNkH)6pnCNa{V)GZh-*hC|_I=gM;GL;3;iAm$ z5i1#cPI|GEbdR`>vBjdh;A2SUV(*Q7vOo5>(EVaQW4-ud!~*%CSj^aSax&sQBo>V( zNi_mJBravFSIovNSjjyiHfd~ykt-e*llND=e*)VePSMyn zGZ+6FHGMRk;`IP~TwJNK7lAz?uGg5?$`wzF+cma7u&2akjnT^ZX|YvfHv@Y{{6k}B zz?O|dVh55^n26Lji5iXF2W+$0Ut?jU_XlyP#!dqEtmx6$^}wDJt2Oo^u;;}c8modW zFNj|>R)*AH6#g+Py^X+L5``MO6t=u9DmB)D)L#(|8haJkt72b`H6Vr8#FdPF>Zexz zy11D!||~Aoqo^s{ zBj+==T!eGGOpnZLk+ytG@pz_c%gYa=6jVLf@|qOZA-(dZ6gE%#<((;PM0S?kkiy!t zgYv}`c5rsK{6Jy8i-Lz`=gLnQ>-8-QjsW(R=AF>oCd2Zdns<70t_aItHSbQ0YI)L& zBP(hX57c5EFLN1tK|EUBDDov8K~tOG6oVI;TKh%-Blb8Ld;Y3*;LbTL>&7 z-)Btawn!dChYd)9%ClH@C`?cZ7R$wq^@{HpJO2oh>=j*Q$AGt1WA_D{vPYV1%RB@@dP6)7HhluFsa@m^q$QYBU2q|~v`E{CWTfIS+jlKU~H zW@LlpK`CCYsFBkZCU%6nvuowY8v8c1EITIW;Pjtr<=fDz?0R{Q#&(2m&Tf>O80!_$ z<_+1ca=XShgu=cd^5SU}uUGuB)E0Zmk2SU+&e(Lt`#Ki(?Ill~p|IORwiqf`XsiJ* zIt-QP9IbfI)NRh*TNWInu;xKw-!S=>#ts8ETz-D6;?0TWihZPmOVk@X^e8)E`2jqyxQiMvd79f8aprce)c#y z?gZj37wxf6vd7C~G`1o3C9upC4v`l#Zwbo!hwMY-=NkJqWar>!8~&+*KWCu!cM;?kTsa-PD(1e^rTmCtFcurTbKE2o^o zd0@|QhMbkcriIRs^BDV7KH$Y09CC%m=GkH2Jnd~hl_Q!fbIz2lr;?UlvD%v}TsdB2 z)3NKcCLJ~BW-85 zd?SU;&hD0<`HkDxVEAz z=W;p!OeOhg@PeExkc5W>?AJ*$O)zK6#ZqMq|U#dRECHzf-)~7}Zuu`gc=FCt1BpS_>3LRHSVc(sy z`Mf0dQqEoS7RHu~(b@0h+%JFD*a~NB&I59BkCJ?~EEi{CS8MDkU=PXl8haPm!}0-* z{Rw07BXX0*o(J}*{D;Oq1hzr`n!;`hJtiA^1%7H(_kMMZVp?N=4W(8l7 zUuukY@?VkPGp0)7l|Gi?F3DnL^(Eq;Idrpx&J_tZw$P1~d_bJ56s4h}do$=O3y7Nu zDVDJth0Z5QGLx$`D@rLwYh&d2UZ#44(P!L0md_0TpL2&hq+uS~i6KTK z7bcgXCGN$(umm(fKeEsOeM*jjTn{ZXa7LwSie!>?LAmG~Uda}!x;PM;(TXxCL^q(5 zQY38_PNylwA*dGx4RH#>rl=|=%EN<5{$`YXlB={m&GxHu-i6wPJnPAX%7%Yo$J!8Q zLqk&LP;MKUaFUnw6D8T^GsDGEqANT195zKY>r8W#l<@;8?v2%?KNH@E66o9GGJD_u zt?+lqwX)n4xokt4BE?Z$s`qeT`2Qz7p<>Ua^e66jnRS#IPS=7I>2R_}(v&@MGxcPK ze>>K1b8ld8ynCG{`x?~|wPfmd>G1bWM7bHYW{8>GBW~v!+@0cykqpsIp=4H6QQSHo z!C%?)|A*t=!F5euG3gt3_lh^O4usv zob#CO1qN;(kj-)Qkv;VVC3$8>56W*PN%Fmhpi(u(ImnkK?%;N^3?-)MxP8E3)qa$` zN-I-d(Z4KD>P&id<=Y<)_oru;+g2_mC8RZAm42cpOJMgL zW!jJ#Ryuc=SLyCvr~kJoO23(^on#3g$nB6u0lN3p7aHPq_WWv;-=Dp@3RC&x{a|j% zs$HoTrL0x0h4N@{i^7*fSu&Hdj%N$^SR|vu)N=4<3ri|%6gt6I?(?hDFqticGC^hFdl#iGh|EM=8yV+!VH=u}(egU@zD~O zU{vz(EXWqB#i~}VV5ZK@Fj*yqqL3w+7jb=M&QHirOV2}8@6P0^ImvI+Ge?|F+}Cy# zVa|cn#^P@x{%ri=+dQ~);>SrwNQ@ShqCr;SuMV_2$kgGsNF8`}xH;_?G#3v8+V~#H z?5Y5$w7=fMa5%$uhT|AcVmO20EQTEn&t$lO;U!`t?(|%OH|0wKzi6z$%3vDi<9Fhm zz7B8z?#|pPhT+c4og&iI2KWf>$lQrL0TS@vxD#`y7=pVncZ#WW2S(1WI#RR)=86S? zvqdi;PM!Jed7Ys3LcQp&KNDx1M`C@j4&e&i51&?bwph-RcQPCT+i)kC;SgAIA-<1G zcZi0-p349?mM#Z;q=3S7M`#E%tN|QWcrRe2>0v;!@BxD?d7R;9L)JYB`jDc{fK!V| zW_Hz!fVC}ei_J!3@w?(>EqQumm3SNBZJ;lx`%jmsPbm2QpJwhVqV`Fr@fbxi8nqzFa#~*oHaaekbPxhKzFo<3=@? z{AS~f)``Y&`DNizM%a9Ma4GiZo~fN>6q`eePBALY=>?R>FP#Mj!Sfg{0bEdbHQ++T zrCi_7^hb;-T<qk6d+V1ocLl?C z({;`^+s*mSUFNr<80XNGZjZUy*buy!;Zk#mXb8QCd*r2qR+y8_xlK2iHz4kJa*`RT zd(2$H?QjK`UIB+U8yB~pjkv$h-EQtMCWQZP&N2%lUFIzutHT`H`jh!M?DSik0mIe~ zxiW{+U5m4)&GPR!f2Lel;oNy@(O>1mta-DsBr?>RWiBflVfC65LR}`6*hs5G(m7%W z_p%OXLyt451gH($40BOpMCs)-l`Y1`U;%6!R=CL`x-GWIsV#rD-j=u4ZH4|_ISY*8 z=94*}TgzFGpY`~S+SrelG`hmS0A3%b@DcG`eEett;7)liTDUZp6>bwdxDD@=w5J(H zc!6AH{v)@O959vBj;PUh~-EVStAfkM!JWzFjm1;YyTJ zuQ?~1;2R9D0^BKSCv~{7z?tgVDXG48%GZJf&uKaa`Y**kmNb6CJ021nKzP@}oPoP% zKS}C?Ke3%Vb$Ik3*VAqcZy9Q}8`X7<&_MgCkDKALb3L2Q4Ta}J|MA%E9d7&+XP529 zkfJq^f7E#tbWicCo~O7CKgVrY8g!2Ew)t4}3(q*?y3%hwTg=yEy8sP*I(eM&aaGiQ zjq7n7$}?AtGb-}7iJxQvcA?T@(^kOt~~xxQEI;pWRt?*KkpN${hhzakcu1npXH*toCxKyQb!qI81yVeTn^V>^FP zb{f5?!JpZlpSk5*l05vk@`l#Cyg_cOEl53A1aZgoLO|jMC8ZmbN z`>nhu`hvHeDO+&jyTwaAZikn08b*nITlk|j!wM9B?VV+|6?d6iWPZ*rZ?Qq`WR~^v zV9Phlddjm(%rIz2e1<{0p1opHZh`EuUMQ{h?GWQy>U|5Wck^0(!^P2cZE~FW3r> z*ZdBxWe#qxT`1}$-3=as+k_X2eG!iO$MDU;u6w?EIAc7-4b%Ph$G1OrOK_d7=RH`Jx!`95E2^Trmi+M>v3sMFZf) zq80FRu{Yo{v2P$7_12E?xp*9{~>#)!{~b+o2V3vKR$; zv{;|lC{7fc0Z$h%<{f}9Ih~aMk@X+s&h!whWH^XnJHrDQ&SJPj(QT6KWw?&vW`;W$ zN-yhS*v@bk!(N7)8SY@X&PS4)8E*G|DZ=?XI6Nyz^q%1NV(g3 zko-)BYZ-20_;De{t%wkJG{cz;dl;@|xQXF*h9b)8G91ltCc_?vYZ-20xSgRWVtIz6 z8O~(b!*DIbO$@g)6vZshaI}J@M48F3hv8a=n;33qSY5#-z;I>-$@ef^%#^hp-o$V_ zLs3aGW2!0EVuqrQ(`C4c;dX{1#&m|G8O~(b!*DIbO$@g)6mgbkIGW*1hCK||GTg*) zJ3~>=@(f2aoXN0<;aY~97;a}M8d#p;=q3u!WH`Eo!wkjVZB(ZWXEN+zxR&82hT9q1 zc&lq!;Agx~b)sA>uf?gwhw?``+?Z^fVO(ykF>W!QG~PEpHvWy7ZL2xLJjguSG|l(S zo#roQku}bmVjX9lXq{@!u@+euTT87~)-BdO)`Qjt>v`)nYlro<<@Z#0#(PfiT zR){h9mw>0i_f5z8aE1`#Y40!Cfw;L5*WSdnjhLc{H7!JWs(|1xQ9me4if}O#Z}H^= zK9*es_(?NK*4N=es;H>Ofty&GOZ0Fl!Is=wz*qyx+&c)Qtq*I7@-tJet0eiAbp-#z z`sXsGB21K{TM6c{{r9r`mJp?~io@?#Q`l-HIGoc;L@E3}bJs*E?%Or{gK`bSe^rsS zO6PHfhor(oA{0y35qzca9h`T=eYn$ zfT9SAkW^W*=)iVlTd_p*B~gkcB{WIdSn(l~(8IA@7z8d!L?A%nA&ItAgKpB+iL+@o zk2bBdNt>i`+D+O_>!#UlI+@vaChcx^Cp(kQG`rb8rfHjY+^)Cd-Ep^W_xJn0dvGs6 zkai#Y$4)Do=brcZ&Ue1o`Odi)_oWePKO3?Nzbx4MMF~H1gme5|i4RF>MB+azp(8nu zOZ+#a<{wJ@k0k!El>Y9W?BRtz7vXcet|H7!`0EF*A^y#w8p3xbo<#WNdkNty_d2_I z`Vodw?Er<*6A?k!13yCubk>6qzgYna{62&sb1UA3aj;k4h4}5DJO@zb@Uytz>)_V4i}>fv zGQt;39^vO;jHsv)R{vVGUuI-BK|PKkePRW4DkhoI3sgDj`#(HA#>6B zNyIN944KQ$ClG%GVaUAG`6S|xA`F=;&QBr!7{U z5r%Nj=ktiW2t&BL^K*zVBMjj_&KD5RBLs~(Kacp62tg0dmk@tH!jSoQ&MzYTs`Dbk z4x!jCp;-LN1#)f?iajV4dz;W|LZ}p;JCwdf=<_b2&wGSE-zt=O1eAH$l*8i)tKkWR z*TYi?Z-yU4_(V8~@Tu@Qgg+2I1lml3x~^cQpT^q1YPy|IIA4Tk;7^^-(CwlB9GVWN z!e0#k&+y$H_jP=$^E;jRm4U7&y1v|XIg*alBR>-P`N*$CzZU&^^e>{F-M!s+b>G+B zQK#Ru3mSpmPspO~zk*k?L(&>dcYhFP4y}3mX1Hz1@(bNxgO|Rw-cQ4;+M4%EkTm?Y z>nJc5g=B~VXWUEhz40hs3Bn-*{>98Fz68tX!#FYJm+$5Tj%hD{+RM*+`JeWlpY@)f z^Xh%hs|TN?^!ItBH_R*GCKGzWyeTx~ybwO-d^7z1(EZW(hu#rg#D^vp&F$S7^3+7B zxRhV6mEF0uYQ9vgoLNk#hlWSeLxWqF4WsN#Hl3c#SJn!d^@&2JQW+Xbx62)2?p9;4 z!O3)bjCCG#tK;Qm8D7%kxg0^+ruER!);$joneo}l^xXL&Gxe}M=H}(GB`oO7E#}S~ z!|cs$tx(7;7Tm{&aM`<9TXoA`YCKCEF?*s^D7ZGI*^0nGn`)`d)O5a5#Sdo4e)o}EmzN$ORE>EOC!T3S*#+|84l|VhmFi|yN=AMEax|D&en?A$I(Dm+?&&| zIp?msxxlNZ6~ zquY!y>Wwg}BWzQ3o1&p(+l;VH*)~N($G7fso1&pH;g;!q(XE`xrPCuwZ^dET6b+p) z%WgG&A$9h|*6p_`!l!n?y<0a$(M%~+=bam zlbpRcKAoIQr=}K=mAss~Fh6Cc=FT<>#^)b2DfedeLeiwG`kXswrq7ShPtBTneJre3 zs_yDQa?Z?7fyvG6+{}1t;vtQu_&|^8iHFAV#^vnPiUL=d13-WTu)i5PNfr?}8+e)M_PLDi`vL6tAYT z=4OpIH=ivl0}r}Ix17()>LqjXn5dP@Zm~L(DQ1@4TxzB4W^yPxb*7L`=ZpDjK2vC9 za?z(trK{sBsASRwL^BedE+O4!JP}|6kjFZrcDLZVnx4-TbEQ>Dmi=gIBAs$8)rA@+ zdKM5=R#4r`Y@`W^-+Ten%`fG>Zl}uSv-yJCoHgpjxG+HiV>GE@I~8 zOxB%tue*ij-ezm7i*9*tiGW@zm9M(xN^^xtcPUdVR8#p?w^XY(m$AWQzKn${mDl~E zbhcC|m8Xi-7yg7Zm`TpeyVq)H(a26N7fVcDD6W-DS+`O_9CVV;WvYH9!QetQQx4{N z$#!ey6Usocvanvvu9Qo~{1fQ#b!u}lT3U<)q;eG^AGh5FFmvi$9y;=BI{iQ2x#*S`OO-YS0n*q!(!5*2;$pmN zo0b54tyVpssjh5pxS6gt*EtIdVskDiu~?xX++4J)r>E1QS(3`$m-&MdlxHdW4-+GL&uPBYcb{awoBs}H!qxI1+--=^FHYNAvt zwks6|-JQGVqBL2|mWtUzt&+dKRh3JbauF=FMF$I4^J`la34*sMI}b~Iiz2d5 zKAW#@QB0g~S#+}vb{1-@t1$gGBR%D2Rwwe+%_Y!vG+My>CRNU_@;Sb?2CG{X3q^~m zKnh7DRl4dHB?dW@GplZOrIe$#gy5wp#l9o!nq=kD3N*~Z8WWUYVCU>r5%{L!N0X|v zAO@Rwm)$*-sjN(t@EQpf3+xrwq-Ghivl+-_=u-@?PpCksD`Wt2P!1q854g+uq8CSR zQ^o6f$lF!u;)|Jbo?0NdgP_S=Su0f}f3j3#@jOTmk}$Qt<~{`di5&F96s>(PC*_t` z^F;`%%c}*#3Hx7kIwoXu2(KrG1&KB;Ost|#T1r}(5dE-~C!?j6jSGXrrmU1u34B{~ z7pm(DniPTGnlm(2kxJ~8!iW=@Eva%_m?)oGlE- zsVP?%3+qx=

  • sWI|1*>*2*==DCu|3Jql^Rs7UEBr-WgdYLGJ&x)GP2I8`kQcGi$ zmwuAM-cPAIYjip5-jF!DUgR*dB?J=%hM=dZN;ZQxsR&@Q;u)JHNTn9RHf(~LkgQkB zPd}){EBVAwqajdSEmhgg`AoUu`bmLaSIW;^Yt$zBEUaY80I;;W#%IHjL0r(Rc7dYV zi+j>p%01)wLUIE79wIxKX|pCWYmFk$oRI!(9LT9OMhE04kr&RH~D1!Cht!=M*qbq=#S{n$sFCu<(b{X-GOWn=1+c#8SaU zdiDZ@#5AO%bhyBXhZTtzYbY)-R~A4j!TzJcZn$t7gUB1N;cRo9aTextcX%A9JTexsW*%oJ#xtA6EFrVM1A zEra21z#jJtK!p>vO0~4=XDNhk`JsF+=NA2Z+db*bGr;`91vgv6UTyt61#pGNnO|lb z+O4-(Xq$^C-AcBcS5Hd=lU5B?F6JwFAT3q$8+yBr83+`&>}M#Zb%zC@(;I?9*z*AJhh1L9G9<&oEow^BBk#s~9 z2sLR86r>TM&If8#abAwy5CzILdY$6M=X2|6s|@H?blzPpUEiiWS%HP=<`$qHx9)^o z7Od#2RHK&7wyl%JoO^R_$>iK6GgVqLNuYfVo2B&!@Mh^!0Rj7;f)$v9jc1|oP&nYx z8B08i*E0r{7aNPAA1n^K|Gb=3$%}x{z1Tu+u_E6$HaW2|*m)WrqADY+m1Q%Nsb*J1 zn2gt|rL(Y2SD3eAU>HKbq)ODq-0@IvH{zUzzZsI|fn=$%O=6=439^$l1}fGs<#UL$ zr)jsijA%h0(2tc%d89@2X;h@vK!c?R#@F(uwD>MFUcp{=B2y?V!oV|G8xbisuw*5G zH(;iq(l5}Di|fi-DKykLQ;o2WqLAdTl1Joc7U zFdo?B3)I21NJpI`_z@~z`cqc(+)G&z`O>R(2uL@LM9y;)NR=kFWEb;6e9;{C#}nF< zxBgZtEx@Z7DD+gHo&lJQxcY5B^X`&&`Vl+{@wiW9xbKHj!4pV7ST5DDx3w%K&^8&G z(136m(&0g52Q1J)0oPfji{QYE%Ftdscz9uwb5l37u4rLcyHzrYOUvHPHRUhV*49dN zwfVWS)}`uMxCjEdAZ2vZlF4HuU z-43;{{yUv`Fb?CDJmh6bQ_t5Y@LI>8H9@?3svEcib<5ZY+^l-hG!~j!NzXo2O02-{ zxt?b}EFn6}TeFjj+eWoDTR#Z}Mo-HFH3(j`R|2xBBq`b26E@Quxm}S8NMq^3!E4x7E4ws4i+D zhvOI^@lrVhPgmK{AqkAoNdbr~TVUU)$%SU#6(W;mF3Xa6Q7{1LLcKFymSWFK$X3UT z1Iu3QW+SFc>}98+z`Q5{n#fdKMW&Z2lO9Gln{!86bDL)jg;bB5}vbex&+%0rhC~G8ZkX%l1x$i z5=)Ejmnc~Si{dUrF%@|NUQ%?o=CK|RK7#eUWza_H5;jS7GA2(&6lb&6uQ1`HsyH=QT8CV23CkPoRAPGRulm) zPf;|E6bAyg9Zq@Hfl}5PoI1k0DOVx3=p)d!rSbp|$;?1j9$Z4JWPD&I^BFkXv02Gh z3?06e_6GbC{Ja%A0dOBZr&L7ZmVltYo@cpk^`VYvk5`0=#GIqJ(WD^EqnL_uiOWW6 zRlU6xwOi02ol);z9&urc2{C97ubrz$0YTuPRA(!lwKcS+$xT}TH{3^y77 zpw(^4mLW*gQK+)IrK$Q2+ZIi%xY?_^*5D@igw?xbIW2%3k1stnPnV!|PWxHS7s|8+ z9g((%ij)N$M_F@0`AW;Ja1acqOJZ^=UU2j$tE(>@pBv&wN>x;GTdOpo^=YG&Nv<~20};C!@Tbkh z`5LxCHif>uO_<$62y4pGh{z>fIH0epgAgm=QYBSQpmUoG+slI;9^hI9t{o2~dW4b2 za5}P=W;-uh(HhGjbnL(yoD`tXCKus&)$pbZgb-rjXY8N_X=;-SEqPJ(>d?~!W`=&H zX5<9;06fx4X9*$IhAkSJ6PgYzU-6nWe6BF@ry&k;-K0DT69HY2`lZ|EGim{!ll*^wMHddGUZq^m2IngeM7RX|;+IRlS@7k!Dh*3p7?6 z+aQ679#51BRl$igrTb@*^#LJZv!$A+8=CU4o51eSW>Hgcc|jdE3sh9Wl_8phHfw4X zMsrh+ZP%Qu&Lpcvf~{>_z|!g4ENv7x8?*&d7j##y+8jv`T$@3_JZ-;j^Q0LuLTq_R z$Mk5a1O~BqY#bNcjND`?D~zQXGGrqQ`cTU}1rwxuk3)lm*lNOg0^;?^cbjT&U=R}P zHa%D?k$e)Ydg{z@+InDxEkuSYx61V?KkXScngLFe{W=WfKn?%mhSF{z%|SiF^m}N^ zU=6M^w?clOGntzrnl)#&Da96>ZhUxLlWo2S;<3Dc^}}QMK!%0T9~<=JCsb1V>BdbF z>B&#YG)mP>p*c&;Hf>GZ1(IywDGzQhL9+rZwT@rkPq8{heB(}ujNhEYIx3X>{sgts zJID7^%5Qq9L~CcIRvTImx`24cZN5}$FO+=-5n^l9g&rxlZ$V$cfXW2Ry;e0+CEC0# zjbGKAwwiZG#>)gjRdt&yh~?BJ!i$%56Chb-AoeHRlsT8sKpe|M))U2&V7*2zOge4} z`CujMCV|8$A;NV0*3alH&aA(wGp91X}nO7Qgua$=Mc_V6e=95YH5Kp4=g0l>(beUYIe4C z1B&OSPC^VsIggVew5g^aR9}BE3vMi~qn3kNyNQ0R~VWWmDLnFohk`PLAOjg~)`_0oMjn$qGH-bLFYkHKf=Ve4-M^J1Y0jnKis! zkApz`YT$%~_(lufnXBS`x?ouXbt-rhw1~IA3iuD7GU~}Am6O`$;Tb8%W*d3Ss8>e* zHPp>ZEQg%ycnht792fB=j8w+66c{~$_jsN(gLotFZuIVS9znU;vxa&lK*PUv)OL*- zn?O%R{Kve6S(F~D_`OH=j4Nf*=Q`rpdZ4vJ1bA;*EE zucI+1m_VmnHRU9hP-75(c3MHi`NO5W2@IHd^x2FYMaS#43zid^nADU1P`DN4Zyfen z%(n>mF?Q!EykcoqQy%JxsU_fv1j2=BUfdOwkX-N~AX)mm@scrL&`jX9#Ncu^6Hbt9 zDkO__U9&HY+9EBM*dAbSui z#D?Z^2EsD+XSXMYs~CPAZxRMM5pE9vN1!u;9JpuEZ976{eigN@Hh{IHF z!}wvM@M&YxNldYTcNn!tB1soc5%zkpC?w=jwjz=ect=>ry@TYiZ%(*f<<~5r;|QiV zh(>cbSSJBu&Bz?NKwKufbho2j##;=MxamB~H-!6$n`JB_dlp&I&1K6V&ve_?CZc#W zJw7gsJB5~%US(OnvxwQ5Sj+|CY$o*t-mIlWqy2J0rEA&Z>r5L2(Z51IDFcn~dGTql&GWLz{#~Yw;he)w& za|Vzcm3O?K0>vNpO6_``!JE?GkC9K~UFmzJR9ovRvQ*1#JAYNrfa>0g7Kbs~Ta0tG zS?C3^1gDa$zEvXlkb3eRm=lF3*TJ$pS2v41t_gWeRZSjG(p&<$m$mP}I5z@3LV-%|RoXRg_NiL6d*o;mm6o#X{c9mZJrFl&Fx!_mAv zRiO+3Ppg=#dGH^{)^IvSXg+4K;IDDBsI_*Fs+u5mS}D1ik9?8*p>bg!B8Z3#4q}lU zWN&56tvgoph(=FM`pdNRskR7NSwZlZvIeqX?@kXz00|J{x&9?8qE-Bt0k<^k0tJN% zij^(xJ!xjazcb+81yP(jpzTt11m$X3=!LCl=jjv+lA`I5!1tb3q~}&1CnU7plv*jN zDEX+H2oEIw9y^wWjMMnVvkf+Q5^Oh)?jI8H)H0yj;tE(YCDv?nJ2BgB>lA2)s>PEK zP&gg7RU7E-SK%Q24&%tS^OyTP*=V3Y$^9%AO|Ex@rppXM; zM)^{Ooik0Ht^IOhH&BoI*vBuqn(MKETGSTpWvtfc`rSZnTIFgntODYvfEG+(XcFxy zNr)JlLH@`@oUQK)JUFt%XI}^{wJK$ckYkomD9phU-yR_)WHGZ~-<&rwX6=I~L7hox zm}!J~!4$h1yu6Ap*pOZ^Y7gs@mH@NskEfE5RuHjCo*>TIehO`AB3cIG*rf1f^uoES z<;3wVrq!h7I5g5s-wo6+Lz}X0h2w43j32aB)yyDN_^>N_C-pb0IG;a;QKsx|q37ms zRalo?qLAxOiV6-VOj5rhy^=slv_!mG?skj0?9Gjk3Zd*LTTsX?%_p{D)>iX63BXDW^wZDIvH7Iw4Y} zF24_)@|Fe9YWjcp;@c(93fc&ZD!9#%0e$;}P&@^QJ$`q$65C49&B9xkjGhTD5qt1w z#f2irTBz*e3jcNMQUa;Vf4A{`68O80xCHnpXANGER}Tc7bb!z1tL0=jg_c#grKfDR z&}%JjAi1HIx$GjQZ4SxgqiSC?BZPtrZ{|bv1^2c%Sp=t9T5Ltt=D~LSy_K}-YgYI$ z@i*Q)iJ>c4Gwz*8uPQnesAlO&5XnRYiA+qIr$Awh?8|)Wt*wMw&`5?QNNZQGU> zil9RPh=hqkExQUqOT6Isr!J&GdS&#aOUxc^|0<$WUW*B@1(%NGOU|PfNV9U_!dvK48cOoPcU;%{1Pn;qMreG2VVoe}v|Vw{9dpE*gS z$a9Qe1Q=z|4^3t;)BV^QnqS z%$lpUwNH$)M-3E5DUq1C-5w9(EcX332`{eX7?e8)0#X6Vtym_y#)a6@8 zb`I@#C<&P2$^mxIdm4DN-Ya5NXCBzN zC5745EGJBlFC|R)K4T8Gt^s*C=tJ2qf?^o_&x zM*3@l5G!a$YClWm3c>Y(EwKiQZP0{JX(RPCwZ~>hDzy&%E;Q5pHK9%;H*^0*jc7GC zEh^Hha+(@$&HQ6Mnby8hZ3;s%j2}JfxeNXB^!a|AX228PdzT#YQX(hxrp@KY#x3R>KBij0QLpGWTPNS~$w z*?GH!r}14|#u3U{y~+;Ld)nL%o9-}rMh^i=Gi=P;TV?iTNakr^B&eaR{k%zAi2792KBH4kr7@jeL7f1JdM(wk#H>Z5{6UH*4%9aiwD*DZ3EaAaPE`dXnUGowIN6$z-C{wn+rL+bpGsvy2d$>N2pdZ zhU(;;qTU(}^8#IA*-#YNf|Bix=W)RXwcAzWN zW-@&b!BPJO*p%C+9u8dn6@0CV?z};)9U#BZ;mH}f zXlbo6XTR0^#1B1LdR*b`^Viv5ePYkM33K;()YLtc^{eOcjccyS48n$yK&z)hLd~po1KiY9ZJKZUa z!dpS6H^>#Fu^Q@G$Fb=-i@DODfto#o*wYNke`c53AEb3k3bSjWx!r*z@Z6TF_e`Ki zmeES0oF`>-6yF(ab|qUVpS=Yreg7=h3-|6YCjC)%ze6aRIHZqbamLF+6~OL3;?U2b zyPaIxoXdJvZ|V$fz2;oh6YLQeq-(Q_ludq8CxhA5%>71O>ZHc2pu>RW-{fBeJdww6 zQVU%rju72Lc+w&aZ2_60eojlt=2lB1oCnv6m?v&PKRy0_#q3j84%dw1t2A)JHS|f2 z%ms7%a_E6nZuPY3^Vi>_f?n?aIA2*s*!#MQlG?ALH%+ zZ`=@S|}2*4-^{^3X0R zqEA{vzRa`sPXfDhmfPbjXM*}drA`8Sck8)Khy||J6nC*Ii^xwO&-8h>WrJfI7ZW*_jA4O!3xltCIt-PmjLLyoj@63pe!S9&!e3l zH<}*bhBkL@hL5`+?%M4xi1&jOD+xn>rG|t?=(abz%sG0;RKL)Z!yaeFhr^S1dUX=G z>tm&|wJIKyT+YQ}tO9vq(yBpe3)AYQ99N2@x40dw#3NUXEtW9f=JP+LF-w`S(f5p_ zCVRDT;7F?eaXS@0$FVpZ+=_iJ5eLx?O0a2gK>rlmo;Gk3>Ki!z7KAQcPKAU_1CJ)h zx-6M>yZTdV0nKs@`IMF;H3?(vT=yrzL9Gqq58ZAGq)ASy0PL}xT*X}rbu|Iq3LU2Y z;ULypmzRKXN$fVzze%9yBm|pc#{#~&y)`9B%&ks&iUtZ2Dtq=o0VOvC>Yoe(MQjk6 zludSr&Jzw&6mQj$Zmf^68IPoAN{?3j`uREZ*ern*yZ)5gt%bQi2p@q~+3L4adu~zI zl?bv^1nu_CHE|0lw^yxBascW01Ge+GqM>C~U)^y%NO8oRI!3LNUP&pq)#ZgA5(T$9 z_MQewg}5eTa_ThW$h@rM1FCC*OP=))S#bE&U8F8Lmyg{nqHD?|-2?btSh^#i+YO{7 zwuqhxEV+St$j4>#K9C^2KL}F0C2Y4OJbq zTh~&&84AKe)~3sdYJfyZQKlql4+ua2^$*%6TwrQ4p5T#ksV8rE3)L)BTbG>lrT4Qa zo`^GDc7k~~tN^`;uew8l2~LrdATO~GSk6y3!xNO{x(Xx^#&}ztM55LMwSABnb=OOZ z;EeQ@2nt4u4{AB)>cS98qKewEXv`yad_MJLiIhMz5`8MREy9C%35sr&fI--Z>J8g9 zQN4gpbj z6UwSS&Igb)jz4=T#HS5As1hw#iXfU}772=9)iLyEP-&6k?1Ze3L*&p{u$7JT{AmtW zNDA_o_we3^{?(SSg5G)5)(t*izuo=liPS;S#%lt>RHN_5f_>Wf8|hp3#KAM7)6gpT zWCq5vGw}IMT~Q>w{1$Mku~0l=SkNB_IC| zvSlZ`P}Z%|tiu%pYB_3uYRLHG;UJ>fJk#r)q{vpBs1Eg)VJlN>J6W@tMrpKhvev-R zWpgfA)bMG|T=g&5&Om(X`|P}I4e4*c&AlWNfix)j2NYgaE8Jb`vSUwmuWix1 zD<3g@g71so&l?mX?QYOIya@^=!3fn`LCqlTdnkbgoMO#l$IJT_)5hHH&&9_ZjWNo5 z*<&B#*mD5|P56S6S0LN(n3nPCgfHs088V| zrIT1CwdHgNC#84NL-98JS?@o+6_g-~cV31!_XjaT=vr~7HWf#1T}v~=Ioi#;j;r#D zRtCA1npdso3^XO<$^*`oIi8Q{R!enUMcuI_ypsacn-YwXN8v5nrJk3gp7+P; z*ED@Q_C%WV_k2RVc1DE6^pLNr@V&s-*T)fwb#7hw-kyn^hW8#jpw2t+&XqCMy?^?d zm%n}G!GF{L(vN-R?r+^?Iuec(4P%Kr5$Wq=GS-y{Iq@WOL-;$`kudRxQ4mGU2_5W2 zsYD&74@Nup#UF8E2p^L$!}jQ^{@&=mc>Uv{SbQ(Lj$cEKyc0ubdrUN8nAl^G=b{zL z5l82H@D5?f=|>F=9EGQ8Utj(6DC?3ZD@KtZ0H|+5u^6C1F={%_zIaA@F=*b!vVPPL zIWdCMAL|cy?{-4b{@cuLCcMLmh5BPVBc1VU_^)=GiLZxl!!OkW%D#;n=X)(;LLruR zCQN_)S{I6H@oSuK43NblrUPRiJlGTI49gUvu_%G-4`aw!G>VGhXqO4IQfDL_jfM$y zEWRGaBmVBb`UYym6uyHU5huPEKXBof~lk`d#3Wo3Z@;0);IfL|ik`2han8y{d| zrP;8`eS_?A4NudZ!FdmiA4Df_w5Gx zI5H0K3J5rEd@m3b0@NU`SeNE-j^St|(!u_s(MTtr_{Y((XegE3j(GhmSea0l!ul1g z5kUS*tiw2=u&f$qgm#@^tok=V1EA_}L?a=D_`fs4B+BCT7rBIQ;c}fM0*ICP(!+OUm9T6?JLV27Vwxt5ar-vD5RN!ej2I79_k^Yf!7z2$MNd* zXtZwwKeKKaVqrJ9+VPFvzKy;pB)~>*y#A69^puop_${g5M{?NMC#C(8Bk}rcyTB;* z*Ww!oP#TN%g8$I(?GPfp(#Lner&xrI?_v_H(E~U(ZjV2Vb@`1>(Bp+z935=j?h#S^ z;e#l^i`F7;cSb-2V1fE8_@B}e6oD94%RZ%$D-abHJQULPg@D0y4(%cW4&i@Y-h(np zrUl5C(GLiD<4`XI<;EePW*_j<3(7%floTPbDhlvF76fGXo%qIKWRZSA5e?v8!~6v} z$gcWp9&mgTxYznXgy>o3rxO7tm?L8xJQzuIaODnyE27ALm25-F2*~O$an)Ahr?7-k z!j6@!zeqmCLze$#&a?j9fk+g*N9F|fUbU#)I2~UXbUf2Z`Tk6IteZl={u2I223CL% zgt1+iC)Tk3l7}bAT7p`TDNM#EF%~e>!&?-;2`2HtBqyc*YkvLi2-sG@ z!9?WQ!}Z+P_sl*J!#<$9{;JLp56TXtJGu~f^L{k~^6lp^fN$dvxEx@VPJwvOtSMhtCWNChD*0;}wX8_{J0l?vEde z5IHAB6#@lONF_+5`b$t9@qPw}u=on5P*su~N;)Pv_ZN#;j#XM=$*0MkWPIY zGlCpotp18H%uFJ(JH8j1QR( z{$93YhW`B1YhU{DbAPpZ+vgtt{oi`r{ZD`RrZ?UF{7;X5`0d}j@u`p9aU{0))$jh) zyDvUFcxCnJc-IT>T=@0pKD9d<`S@@D`Cnvy^L<~v<@(LL|6Av`|MY6?>P6FM{ax16VLtSV}Ee)=-8dV`hgqoTzc^%U-+|+)yB%7 z{DaS&eet1hT>2S+0RSBags!8X0XW=ru%rWoZ92LbL>NRFbTin&pa;QQ-}voq46rkJ z^RVM@@vq}=82mMZ=MmIDGvL(UV?U4V{Y*meBd!DX%dY;1T^m2?awK7YI$LY zh)^BXXhhmWkD|tlXm$mEmpi(kW+gSO6$l#|Ptf?(CYWOf>|bP| zUIJ0imfy>$q&-algV*%!hG>8d5{vKLL2V1B!Hxj51hQV(hlz+3Tg}@w#3#`jR+;REU<-B{EH*|1#Jk156`;fjgOLTG zBnky1mY6={mnq`bL8Cwt;~|i$K$;Q=Q?kA3OOaaoQW0uV*mSV5LSYy>w5u^`SWeg= z#efrp)Y&hCgpmJAd=hI6wh-OS8A8=giXB0n`{Ew2R{cf4nwCP>I_Mi3rQcTC080G6 zAeIkNyBMgsL!NO{f3;6LBr$oT3SR54aUXyt{d|DuXe0J&))1K@h6K$XtP%8IT}tY8 z&PQgWQ`3p9V4oKSU&dE@B?2`rWA$*g)ec#SK&?V)uMm&mW%PMUqNmWK<9DOcC@RT1 z3n1WCG8iO^WMkQPB)Ui_{D*$~j&K%6Fe3&4nbF(*VKCZ)Fe$!-JLVz$9mHR>;~s3~ z5yTLH&5;#jB*B1LeY+9#$0GMYERf9j56nQVQWTPJ; zkc!-1saa>uQ&GoIsTk}up$#E%`C|_F$;8I*sNkoyOE)SG>QO)89*1LM@&W0@LTRab zBZHqDG&>y=(Yz77bmW*sj1C;r!A1s-Q>hrUk#Wq%qyEoK@oSHjfND8CI5<2y$bX|J z-D8=dvD~raCr*wG z9?KrjjV%og4<65)IF>m!k{vyf&2Xp_gJUO8=8n6ryL5agd-6nPF*kH#?D*J;;jvtH z@K`S6W{xi&Us}u!yC;sH7#$kSom_O?V;F5X1E_Pk-0_pcIX8P^DKk1ax|kU~c5=u) zF*=qxkzE=&mUD-PvctKNvEh-$?1|ji*s;v<Je zy{GU6NBQ-DGr4qnWDFOk9Mh5H4{+h%uRQ(fGkp(CrLKfu4!!T%U!K3^H|uYCWb)fD z{phEc_B`6TF+2V8`|tauAAIiY$Nu<}@7nvGvrl!r`}p_&*3aK{@m)W&bJxHB+rcjm z+>!X+zy0$c`PR>VzHh+!lSkLC-F&{jG5zuBU-aLgik_w9LPOJ1xNXCfzIe(DxPmj3Pcp z?OrLm)uX_wUplasTjb#XpZ)vM8KEU>4s5 zcjcGp*!FJ^p^x3|d-?n3I?~}SxW&-i17)j$*L-t6>pg_O%a1$eYqa~le_soaB6iU% z;O$GkUp|kRp5LeOoP|$)PHKL&<1hY(JDDz{jqUU8UO(JLsNnW8@R-D(gI?*U*7G!1 z&Q5rm$bWC)=Eyr|;`zJ1ZX`E9q{c6FBxqLxCZ5vMFTdQTr@zL)4rXot8^w(m;J~~I zxsKdj)lbFf)gI{>zVcm-GTtWPb+cJKdA`Vh{_!(Ub9m-fg`b@>(ef+OyPXwJ^V+-v z(bSK<9h&e?2K0+U37l}u0`Dmh$tdDbJb)c0OkvpuAMjj9H3xciY+ozBVn16F#V$+S(1Zr)0 z9~CfO=MCq;IC{Fs+eUiIcNO^KzaZZAq&Nf2=pBt$Htlw^(CIvThLOuL0qT&W$MuHU+ft!sEf+KdAWJms=?S6ff9H?KX% d|L1@I1TgRp$Lz#3fA#b~fw}(k6gOeu{{r;Q>xuvX literal 0 HcmV?d00001 diff --git "a/Cs13_1_t01/\320\227\320\260\320\262\320\264\320\260\320\275\320\275\321\217 Delegates.Reports.docx" "b/Cs13_1_t01/\320\227\320\260\320\262\320\264\320\260\320\275\320\275\321\217 Delegates.Reports.docx" new file mode 100644 index 0000000000000000000000000000000000000000..f421b73c8e37838963ec5ab37418ae1bdaf746fb GIT binary patch literal 12223 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 WeFZX)-)ey20X-m!VxRuE-v0quB)J&? literal 0 HcmV?d00001 diff --git a/Cs14_1_t01/App.config b/Cs14_1_t01/App.config new file mode 100644 index 0000000..193aecc --- /dev/null +++ b/Cs14_1_t01/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cs14_1_t01/Cs14_1_t01.csproj b/Cs14_1_t01/Cs14_1_t01.csproj new file mode 100644 index 0000000..59da846 --- /dev/null +++ b/Cs14_1_t01/Cs14_1_t01.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {54CC5AC2-8EAB-4600-8EE7-2A901E052C7E} + Exe + Cs14_1_t01 + Cs14_1_t01 + v4.8 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs14_1_t01/Cs14_1_t01.sln b/Cs14_1_t01/Cs14_1_t01.sln new file mode 100644 index 0000000..97bbb04 --- /dev/null +++ b/Cs14_1_t01/Cs14_1_t01.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30114.105 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cs14_1_t01", "Cs14_1_t01.csproj", "{54CC5AC2-8EAB-4600-8EE7-2A901E052C7E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {54CC5AC2-8EAB-4600-8EE7-2A901E052C7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {54CC5AC2-8EAB-4600-8EE7-2A901E052C7E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {54CC5AC2-8EAB-4600-8EE7-2A901E052C7E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {54CC5AC2-8EAB-4600-8EE7-2A901E052C7E}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {E9978395-3BFB-4154-8C5D-8350A560112E} + EndGlobalSection +EndGlobal diff --git a/Cs14_1_t01/Program.cs b/Cs14_1_t01/Program.cs new file mode 100644 index 0000000..13cf9dd --- /dev/null +++ b/Cs14_1_t01/Program.cs @@ -0,0 +1,151 @@ +// Task 1. Дана целочисленная последовательность. +// Извлечь из нее все положительные числа, сохранив их исходный порядок следования. +// +// Task 2. Дана целочисленная последовательность. +// Извлечь из нее все нечетные числа, сохранив их исходный порядок следования и удалив все вхождения повторяющихся элементов, кроме первых. +// +// Task 3. Дана целочисленная последовательность. +// Извлечь из нее все четные отрицательные числа, поменяв порядок извлеченных чисел на обратный. +// +// Task 4. Даны цифра D (целое однозначное число) и целочисленная последовательность A. +// Извлечь из A все различные положительные числа, оканчивающиеся цифрой D (в исходном порядке). +// +// Task 6. Даны целое число K (> 0) и строковая последовательность A. +// Из элементов A, извлечь те строки, которые имеют длину > K и начинаются с заглавной латинской буквы. + +// Task 7. Исходная последовательность содержит сведения о клиентах фитнес-центра. +// Каждый элемент последовательности включает следующие целочисленные поля: +// <Код клиента> <Год> <Номер месяца> <Продолжительность занятий (в часах)> +// Найти элемент последовательности с минимальной продолжительностью занятий. +// Вывести эту продолжительность, а также соответствующие ей год и номер месяца (в указанном порядке на той же строке). +// Если имеется несколько элементов с минимальной продолжительностью, то вывести данные того из них, который является последним в исходной последовательности. + +// Указание. Для нахождения требуемого элемента следует использовать методы OrderByDescending и Last. + + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Cs14_1_t01 +{ + public static class CollectionsExtension + { + public static void Print(this int[] mas) + { + if (mas.Length != 0) + for (int i = 0; i < mas.Length; i++) + Console.Write("{0,4}{1}", mas[i], (i + 1) % 14 == 0 && (i + 1) < mas.Length ? "\n\n" : "\t"); + else + Console.WriteLine("Таких чисел нет\n"); + Console.WriteLine("\n"); + } + public static void Print(this string[] mas) + { + if (mas.Length != 0) + for (int i = 0; i < mas.Length; i++) + Console.WriteLine(mas[i]); + else + Console.WriteLine("Таких строк нет\n"); + Console.WriteLine("\n"); + } + } + + class Client + { + public int ClientCode { get; set; } + public int Year { get; set; } + public int Month { get; set; } + public int Duration { get; set; } + public Client(int C, int Y, int M, int D) + { + ClientCode = C; + Year = Y; + Month = M; + Duration = D; + } + } + + class Program + { + private const int N = 4 * 14, MIN = -100, MAX = 100; + private static Random rnd = new Random(); + private static int[] masRND = Enumerable.Repeat(0, N).Select(i => rnd.Next(MIN, MAX + 1)).ToArray(); + + static void Task_01() + { + Console.WriteLine("Извлечь все положительные числа, сохранив их исходный порядок следования:\n"); + masRND.Where(i => i > 0).ToArray().Print(); + } + + static void Task_02() + { + Console.WriteLine("Извлечь все нечетные числа, сохранив их исходный порядок следования\nи удалив все вхождения повторяющихся элементов, кроме первых:\n"); + masRND.Where(i => (i & 1) == 1).Distinct().ToArray().Print(); + } + + static void Task_03() + { + Console.WriteLine("Извлечь все четные отрицательные числа, поменяв порядок извлеченных чисел на обратный:\n"); + masRND.Where(i => (i & 1) != 1 && i < 0).Reverse().ToArray().Print(); + } + + static void Task_04() + { + Console.WriteLine("Даны цифра D (целое однозначное число) и целочисленная последовательность A.\n" + + "Извлечь из A все различные положительные числа, оканчивающиеся цифрой D (в исходном порядке):\n"); + int D = rnd.Next(0, 10); + Console.WriteLine($"D = {D}\n"); + masRND.Where(i => i > 0 && i % 10 == D).Distinct().ToArray().Print(); + } + + static void Task_06() + { + Console.WriteLine("Даны целое число K (> 0) и строковая последовательность A.\n" + + "Из элементов A, извлечь те строки, которые имеют длину > K и начинаются с заглавной латинской буквы.:\n"); + int K = rnd.Next(0, 30); + Console.WriteLine($"K = {K}\n"); + string[] sequence = { + "Random Paragraphs and Sentences", + "Implement a class that randomizes", + "sentences and paragraphs using Random.", + "Random paragraphs and sentences", + "can be generated.", + "The text must look like", + "regular English writing.", + "An algorithm can generate", + "language that appears natural.", + " " + }; + sequence.Where(i => i.Length > K && (i[0] >= 'A') && (i[0] <= 'Z')).ToArray().Print(); + } + + static void Task_07() + { + List List = new List(Enumerable.Range(1, 100). + Select(i => new Client(rnd.Next(1, 1001), rnd.Next(2010, 2021), rnd.Next(1, 13), rnd.Next(1, 1001)))); + + Client Result = List.OrderByDescending(i => i.Duration).Last(); + + Console.WriteLine("Вывести продолжительность, а также соответствующие ей год и номер месяца\n" + + "(в указанном порядке на той же строке).\n"); + + Console.WriteLine($"Duration = {Result.Duration}\tYear = {Result.Year}\tMonth = {Result.Month}\n"); + } + + static void Main(string[] args) + { + Console.OutputEncoding = Encoding.Unicode; + Console.InputEncoding = Encoding.Unicode; + + masRND.Print(); + Task_01(); + Task_02(); + Task_03(); + Task_04(); + Task_06(); + Task_07(); + } + } +} diff --git a/Cs14_1_t01/Properties/AssemblyInfo.cs b/Cs14_1_t01/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..9a2244a --- /dev/null +++ b/Cs14_1_t01/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cs14_1_t01")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cs14_1_t01")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("54cc5ac2-8eab-4600-8ee7-2a901e052c7e")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs15_1_t01/App.config b/Cs15_1_t01/App.config new file mode 100644 index 0000000..193aecc --- /dev/null +++ b/Cs15_1_t01/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cs15_1_t01/Cs15_1_t01.csproj b/Cs15_1_t01/Cs15_1_t01.csproj new file mode 100644 index 0000000..9ee7db9 --- /dev/null +++ b/Cs15_1_t01/Cs15_1_t01.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {37C86B1F-2A2D-4748-A42D-B11EBDB849F5} + Exe + Cs15_1_t01 + Cs15_1_t01 + v4.8 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs15_1_t01/Cs15_1_t01.sln b/Cs15_1_t01/Cs15_1_t01.sln new file mode 100644 index 0000000..82b682a --- /dev/null +++ b/Cs15_1_t01/Cs15_1_t01.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30128.74 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cs15_1_t01", "Cs15_1_t01.csproj", "{37C86B1F-2A2D-4748-A42D-B11EBDB849F5}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {37C86B1F-2A2D-4748-A42D-B11EBDB849F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {37C86B1F-2A2D-4748-A42D-B11EBDB849F5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {37C86B1F-2A2D-4748-A42D-B11EBDB849F5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {37C86B1F-2A2D-4748-A42D-B11EBDB849F5}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {4AA0598B-363B-4F1F-B342-163C488FB60F} + EndGlobalSection +EndGlobal diff --git a/Cs15_1_t01/Program.cs b/Cs15_1_t01/Program.cs new file mode 100644 index 0000000..202f3e2 --- /dev/null +++ b/Cs15_1_t01/Program.cs @@ -0,0 +1,167 @@ +// Игра «Автомобильные гонки» +// Разработать игру "Автомобильные гонки" с использованием делегатов. +// 1. В игре использовать несколько типов автомобилей: +// спортивные, легковые, грузовые и автобусы. +// 2. Реализовать игру «Гонки». +// Принцип игры: Автомобили двигаются от старта к финишу со скоростями, +// которые изменяются в установленных пределах случайным образом. +// Победителем считается автомобиль, пришедший к финишу первым. +// Рекомендации по выполнению работы +// 1. Разработать абстрактный класс «автомобиль» (класс Car). +// Собрать в нем все общие поля, свойства (например, скорость) методы (например, ехать). +// 2. Разработать классы автомобилей с конкретной реализацией конструкторов и методов, свойств. +// В классы автомобилей добавить необходимые события (например, финиш). +// 3. Класс игры должен производить запуск соревнований автомобилей, выводить сообщения о текущем +// положении автомобилей, выводить сообщение об автомобиле, победившем в гонках. +// Создать делегаты, обеспечивающие вызов методов из классов автомобилей +// (например, выйти на старт, начать гонку). +// 4. Игра заканчивается, когда какой-то из автомобилей проехал определенное расстояние +// (старт в положении 0, финиш в положении 100). +// Уведомление об окончании гонки (прибытии какого-либо автомобиля на финиш) реализовать с помощью событий. + + +using System; +using System.Text; + +namespace Cs15_1_t01 +{ + delegate void MoveAction(); // делегат перемещения + delegate void PosSetter(int Position); // установка позиции + delegate void FinishAction(object Winner); // обратная связь + + class Game + { + protected bool isGameStarted = false; + + public MoveAction Move; + public PosSetter MoveTo; + + public object Winner; + + public void Run() + { + // перемещаем всех на старт + MoveTo(0); + System.Threading.Thread.Sleep(1000); + Console.Clear(); + + // двигаем всех вперед, пока кто-нибудь не приедет к финишу + isGameStarted = true; + while (isGameStarted) + { + Move(); + System.Threading.Thread.Sleep(500); + Console.Clear(); + } + } + + public void OnFinish(object Winner) + { + // кто-то приехал к финишу + isGameStarted = false; + this.Winner = Winner; + } + } + + // Абстрактный класс «автомобиль» + abstract class Car + { + public FinishAction Finish; + public string Name; + + int _pos; + public int Position + { + get { return _pos; } + set + { + _pos = value; + Console.WriteLine(this + " на позиции " + _pos); + if (_pos >= 100) Finish(this); + } + } + + public override string ToString() + { + return Name; + } + + public void JoinGame(Game Game) + { + // Подписываемся на игру + Game.Move += this.Move; + Game.MoveTo += this.MoveTo; + Finish = Game.OnFinish; + } + + public abstract void Move(); + + public void MoveTo(int Position) + { + this.Position = Position; + } + } + + class PassengerCar : Car + { + public int Speed; + public override void Move() + { + Position += Speed; + } + } + + class SportCar : Car + { + public int Speed; + public override void Move() + { + Position += Speed; + } + } + + class Truck : Car + { + public int Speed; + public override void Move() + { + Position += Speed; + } + } + + class Bus : Car + { + public int Speed; + public override void Move() + { + Position += Speed; + } + } + + static class Program + { + static void Main() + { + Console.OutputEncoding = Encoding.Unicode; + Console.InputEncoding = Encoding.Unicode; + + Game game = new Game(); + + Random rnd = new Random(); + Car car1 = new PassengerCar() { Name = "Легковой", Speed = rnd.Next(10, 12) }; + Car car2 = new SportCar() { Name = "Спортивный", Speed = rnd.Next(12, 20) }; + Car car3 = new Truck() { Name = "Грузовой", Speed = rnd.Next(7, 10) }; + Car car4 = new Bus() { Name = "Автобус", Speed = rnd.Next(8, 10) }; + + // Подписываемся на участие в игре + car1.JoinGame(game); + car2.JoinGame(game); + car3.JoinGame(game); + car4.JoinGame(game); + + game.Run(); + + Console.WriteLine("Победил " + game.Winner + " автомобиль\n"); + } + } +} \ No newline at end of file diff --git a/Cs15_1_t01/Properties/AssemblyInfo.cs b/Cs15_1_t01/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..342d1d9 --- /dev/null +++ b/Cs15_1_t01/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cs15_1_t01")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cs15_1_t01")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("37c86b1f-2a2d-4748-a42d-b11ebdb849f5")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs16_1_t01/App.config b/Cs16_1_t01/App.config new file mode 100644 index 0000000..193aecc --- /dev/null +++ b/Cs16_1_t01/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cs16_1_t01/Cs16_1_t01.csproj b/Cs16_1_t01/Cs16_1_t01.csproj new file mode 100644 index 0000000..644f4d7 --- /dev/null +++ b/Cs16_1_t01/Cs16_1_t01.csproj @@ -0,0 +1,56 @@ + + + + + Debug + AnyCPU + {79A9632C-1357-43D4-BD69-06ABC0F3E489} + Exe + Cs16_1_t01 + Cs16_1_t01 + v4.8 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs16_1_t01/Cs16_1_t01.sln b/Cs16_1_t01/Cs16_1_t01.sln new file mode 100644 index 0000000..83a3127 --- /dev/null +++ b/Cs16_1_t01/Cs16_1_t01.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30128.74 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cs16_1_t01", "Cs16_1_t01.csproj", "{79A9632C-1357-43D4-BD69-06ABC0F3E489}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {79A9632C-1357-43D4-BD69-06ABC0F3E489}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {79A9632C-1357-43D4-BD69-06ABC0F3E489}.Debug|Any CPU.Build.0 = Debug|Any CPU + {79A9632C-1357-43D4-BD69-06ABC0F3E489}.Release|Any CPU.ActiveCfg = Release|Any CPU + {79A9632C-1357-43D4-BD69-06ABC0F3E489}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {8300C4A3-52CA-42C6-8B2F-2D5BD860B7B4} + EndGlobalSection +EndGlobal diff --git a/Cs16_1_t01/Program.cs b/Cs16_1_t01/Program.cs new file mode 100644 index 0000000..e9f9f53 --- /dev/null +++ b/Cs16_1_t01/Program.cs @@ -0,0 +1,227 @@ +// Написать приложение, позволяющее: +// • создать новый файл с именем «Day17.txt». В случае наличия файла с таким именем — вывести сообщение; +// • открыть и прочесть файл с именем «Day17.txt». В случае отсутствия — вывести сообщение об отсутствии; +// • записать форматированную информацию в файл. +// Структура записываемой информации: +// Исходные данные: двумерный массив дробных чисел, +// двумерный массив целых чисел. +// - фамилия, имя, отчество, дата рождения, +// - с новой строки количество строк и столбцов массива дробных чисел, +// - с новой строки значения элементов двумерного массива дробных чисел (каждая строка массива в новой строке файла). +// - с новой строки количество строк и столбцов массива целых чисел. +// - с новой строки двумерный массив целых чисел, записанных в одну строку. +// - с новой строки текущая дата. +// • прочесть информацию из файла и преобразовать ее в соответствии с исходной структурой. +// Реализовать простейшее меню. + + +using System; +using System.Text; +using System.IO; + +namespace Cs16_1_t01 +{ + class Menu + { + const ConsoleColor FOREGROUND = ConsoleColor.Gray; + const ConsoleColor ITEMSELECT = ConsoleColor.White; + const int MENULEFT = 20; + const int MENUTOP = 4; + static string[] menuItems; + public static string[] MenuItems { set { menuItems = value; } } + public static int Selected { get; private set; } = 0; + static void PaintMenu() + { + Console.ForegroundColor = FOREGROUND; + Console.Clear(); + Console.SetCursorPosition(MENULEFT, MENUTOP); + Console.WriteLine("......MENU......\n"); + for (int i = 0; i < menuItems.Length; i++) + { + Console.SetCursorPosition(MENULEFT, MENUTOP + i + 1); + if (i == Selected) + { + Console.ForegroundColor = ITEMSELECT; + Console.Write("=>"); + } + else + { + Console.Write(" "); + } + Console.WriteLine(menuItems[i]); + Console.ForegroundColor = FOREGROUND; + } + } + public static void MenuSelect() + { + ConsoleKey c = ConsoleKey.DownArrow; + while (true) + { + if (c == ConsoleKey.UpArrow || c == ConsoleKey.DownArrow) + { + PaintMenu(); + } + c = Console.ReadKey().Key; + switch (c) + { + case ConsoleKey.Escape: //Esc + Selected = -1; + return; + case ConsoleKey.DownArrow: //down + ++Selected; + if (Selected == menuItems.Length) Selected = 0; + break; + case ConsoleKey.UpArrow://up + if (Selected == 0) Selected = menuItems.Length; + --Selected; + break; + case ConsoleKey.Enter: //Enter + return; + } + } + } + + } + + class Program + { + static void SaveFileSW(string file) + { + using (StreamWriter stream = new StreamWriter(file, false, Encoding.Unicode)) + { + // - фамилия, имя, отчество, дата рождения, + stream.WriteLine("Рудницкий Станислав Александрович, 22.03.1983"); + + // - с новой строки количество строк и столбцов массива дробных чисел, + int n = 5, m = 10; + stream.WriteLine(n + ", " + m); + + // - с новой строки значения элементов двумерного массива дробных чисел (каждая строка массива в новой строке файла). + double dMin = -10.34, dMax = 53.44; + double[,] mas = new double[n, m]; + Random rnd = new Random(); + for (int i = 0; i < mas.GetLength(0); i++) + { + for (int j = 0; j < mas.GetLength(1); j++) + { + mas[i, j] = Math.Round(rnd.NextDouble() * (dMax - dMin) + dMin, 2); + stream.Write($"{mas[i, j]}; "); + } + stream.WriteLine(); + } + + // - с новой строки количество строк и столбцов массива целых чисел. + stream.WriteLine(n + ", " + m); + + // - с новой строки двумерный массив целых чисел, записанных в одну строку. + int Min = -10, Max = 99; + int[,] intmas = new int[n, m]; + for (int i = 0; i < intmas.GetLength(0); i++) + { + for (int j = 0; j < intmas.GetLength(1); j++) + { + intmas[i, j] = rnd.Next(Min, Max + 1); + stream.Write($"{intmas[i, j]}; "); + } + } + + // - с новой строки текущая дата. + stream.WriteLine("\n" + DateTime.Now.ToShortDateString()); + + Console.WriteLine("\nFile Saved Successfully\n"); + } + } + + static void LoadFileSW(string file) + { + using (StreamReader stream = new StreamReader(file, Encoding.Unicode)) + { + string[] str = stream.ReadLine().Split(','); + string fullName = str[0]; + + DateTime Bday = DateTime.Parse(str[1]); + Console.WriteLine(fullName + ", " + Bday.ToShortDateString() + "\n"); + + str = stream.ReadLine().Split(','); + double[,] mas = new double[int.Parse(str[0]), int.Parse(str[1])]; + for (int i = 0; i < mas.GetLength(0); i++) + { + str = stream.ReadLine().Split(';'); + for (int j = 0; j < mas.GetLength(1); j++) + { + mas[i, j] = double.Parse(str[j]); + Console.Write($"{mas[i, j],6:N2}\t"); + } + Console.WriteLine(); + } + Console.WriteLine(); + + str = stream.ReadLine().Split(','); + int[,] intmas = new int[int.Parse(str[0]), int.Parse(str[1])]; + + str = stream.ReadLine().Split(';'); + for (int i = 0; i < intmas.GetLength(0); i++) + { + for (int j = 0; j < intmas.GetLength(1); j++) + { + intmas[i, j] = int.Parse(str[i + j]); + Console.Write($"{intmas[i, j],6}\t"); + } + Console.WriteLine(); + } + Console.WriteLine(); + + DateTime Today = DateTime.Parse(stream.ReadLine()); + Console.WriteLine(Today.ToShortDateString()); + + Console.WriteLine("\nFile Loaded Successfully\n"); + } + } + + static void Main(string[] args) + { + Console.OutputEncoding = Encoding.Unicode; + Console.InputEncoding = Encoding.Unicode; + + string fileName = "Day17.txt"; + + Menu.MenuItems = new string[] { + "Создать новый файл с именем «" + fileName + "»", + "Открыть и прочесть файл с именем «" + fileName + "»" }; + + while (true) + { + Menu.MenuSelect(); + Console.Clear(); + if (Menu.Selected < 0) break; + if (Menu.Selected == 0) + { + if (File.Exists("Day17.txt")) + { + Console.WriteLine("Файл с таким именем уже существует."); + string ch; + do + { + Console.Write("Перезаписать? (y/n): "); + ch = Console.ReadLine().ToLower(); + } while (ch.Length == 0 || ch[0] != 'y' && ch[0] != 'n'); + if (ch[0] == 'y') + SaveFileSW(fileName); + } + else + SaveFileSW(fileName); + }; + if (Menu.Selected == 1) + { + if (!File.Exists("Day17.txt")) + Console.WriteLine("Файл не найден."); + else + LoadFileSW(fileName); + }; + Console.ForegroundColor = ConsoleColor.DarkGreen; + Console.WriteLine("\ndone\n"); + Console.ReadKey(); + } + } + } +} \ No newline at end of file diff --git a/Cs16_1_t01/Properties/AssemblyInfo.cs b/Cs16_1_t01/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..bdddcb8 --- /dev/null +++ b/Cs16_1_t01/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cs16_1_t01")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cs16_1_t01")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("79a9632c-1357-43d4-bd69-06abc0f3e489")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs16_1_t01/packages.config b/Cs16_1_t01/packages.config new file mode 100644 index 0000000..9c782f9 --- /dev/null +++ b/Cs16_1_t01/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Cs16_1_t02/App.config b/Cs16_1_t02/App.config new file mode 100644 index 0000000..193aecc --- /dev/null +++ b/Cs16_1_t02/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cs16_1_t02/Cs16_1_t02.csproj b/Cs16_1_t02/Cs16_1_t02.csproj new file mode 100644 index 0000000..737f617 --- /dev/null +++ b/Cs16_1_t02/Cs16_1_t02.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {4DCBF198-B263-40B6-A75B-0D04748A0F2F} + Exe + Cs16_1_t02 + Cs16_1_t02 + v4.8 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs16_1_t02/Cs16_1_t02.sln b/Cs16_1_t02/Cs16_1_t02.sln new file mode 100644 index 0000000..68d7120 --- /dev/null +++ b/Cs16_1_t02/Cs16_1_t02.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30204.135 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cs16_1_t02", "Cs16_1_t02.csproj", "{4DCBF198-B263-40B6-A75B-0D04748A0F2F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4DCBF198-B263-40B6-A75B-0D04748A0F2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4DCBF198-B263-40B6-A75B-0D04748A0F2F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4DCBF198-B263-40B6-A75B-0D04748A0F2F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4DCBF198-B263-40B6-A75B-0D04748A0F2F}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {CE489962-9401-46B6-917B-CAE2325AD702} + EndGlobalSection +EndGlobal diff --git a/Cs16_1_t02/Program.cs b/Cs16_1_t02/Program.cs new file mode 100644 index 0000000..53a2b9b --- /dev/null +++ b/Cs16_1_t02/Program.cs @@ -0,0 +1,51 @@ +// Прочитать текст C#-программы (выбрать самостоятельно) и все слова public в объявлении полей классов заменить +// на слово private. В исходном коде в каждом слове длиннее двух символов все строчные символы заменить прописными. +// Также в коде программы удалить все «лишние» пробелы и табуляции, оставив только необходимые для разделения операторов. +// Записать символы каждой строки программы в другой файл в обратном порядке. + +using System; +using System.Linq; +using System.Text; +using System.IO; + +namespace Cs16_1_t02 +{ + class Program + { + static void SaveFileSW(string inputFile, string outputFile) + { + using (StreamReader reader = new StreamReader(inputFile, Encoding.Unicode)) + { + using (StreamWriter writer = new StreamWriter(outputFile, false, Encoding.Unicode)) + { + string line; + while ((line = reader.ReadLine()) != null) + { + string[] words = line.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); + + if (words.Length > 0 && words[0] == "public") + words[0] = "private"; + + for (int i = 0; i < words.Length; i++) + if (words[i].Length > 2) + words[i] = words[i].ToUpper(); + + writer.WriteLine(string.Join(" ", words).Reverse().ToArray()); + } + Console.WriteLine("\nOutput File Saved Successfully\n"); + } + } + } + + static void Main(string[] args) + { + Console.OutputEncoding = Encoding.Unicode; + Console.InputEncoding = Encoding.Unicode; + + string inputFile = "Program_SortedArrayList.cs"; + string outputFile = "Program_SortedArrayList_2.cs"; + + SaveFileSW(inputFile, outputFile); + } + } +} \ No newline at end of file diff --git a/Cs16_1_t02/Properties/AssemblyInfo.cs b/Cs16_1_t02/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ec89fe7 --- /dev/null +++ b/Cs16_1_t02/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cs16_1_t02")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cs16_1_t02")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("4dcbf198-b263-40b6-a75b-0d04748a0f2f")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs17_1_t01/App.config b/Cs17_1_t01/App.config new file mode 100644 index 0000000..193aecc --- /dev/null +++ b/Cs17_1_t01/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cs17_1_t01/Cs17_1_t01.csproj b/Cs17_1_t01/Cs17_1_t01.csproj new file mode 100644 index 0000000..f902624 --- /dev/null +++ b/Cs17_1_t01/Cs17_1_t01.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {8368F6D3-A056-47AA-8A07-89E10599CB03} + Exe + Cs17_1_t01 + Cs17_1_t01 + v4.8 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs17_1_t01/Cs17_1_t01.sln b/Cs17_1_t01/Cs17_1_t01.sln new file mode 100644 index 0000000..eb4d7e2 --- /dev/null +++ b/Cs17_1_t01/Cs17_1_t01.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30204.135 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cs17_1_t01", "Cs17_1_t01.csproj", "{8368F6D3-A056-47AA-8A07-89E10599CB03}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8368F6D3-A056-47AA-8A07-89E10599CB03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8368F6D3-A056-47AA-8A07-89E10599CB03}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8368F6D3-A056-47AA-8A07-89E10599CB03}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8368F6D3-A056-47AA-8A07-89E10599CB03}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {01774C6D-C39B-4EED-9B91-8C1EDA5931C0} + EndGlobalSection +EndGlobal diff --git a/Cs17_1_t01/Program.cs b/Cs17_1_t01/Program.cs new file mode 100644 index 0000000..c1e6208 --- /dev/null +++ b/Cs17_1_t01/Program.cs @@ -0,0 +1,95 @@ +// С страницы http://finance.i.ua/ (сохранить файл как html страницу). +// Выполнить экспорт курса доллара по всем банкам. +// Из input файла забрать только необходимую информацию о названии банка, +// курсе покупки и продажи и записать ее в output.xml файл + +using System; +using System.Text; +using System.Xml; +using System.IO; +using System.Text.RegularExpressions; + +namespace Cs17_1_t01 +{ + class Program + { + static void ExportRates() + { + using (StreamReader reader = new StreamReader("finance.html")) + { + string line; + Regex regex = new Regex(@".+<\/table>"); + while ((line = reader.ReadLine()) != null) + { + MatchCollection matches = regex.Matches(line); + if (matches.Count > 0) + { + line = matches[0].Value; + break; + } + } + + using (var writer = new XmlTextWriter("output.xml", Encoding.UTF8)) + { + writer.Formatting = Formatting.Indented; + writer.WriteStartDocument(); + { + writer.WriteDocType("banks", null, null, null); + writer.WriteStartElement("banks"); + { + + try + { + XmlDocument doc = new XmlDocument(); + doc.LoadXml(line); + + XmlElement xRoot = doc.DocumentElement; + foreach (XmlNode xnode in xRoot) + { + if (xnode.Name == "tbody" && xnode.Attributes[0].Value == "bank_rates_usd") + foreach (XmlNode childnode in xnode.ChildNodes) + { + writer.WriteStartElement("bank"); + { + writer.WriteStartElement("name"); + { + writer.WriteString(childnode.ChildNodes[0].InnerText); + } + writer.WriteEndElement(); + writer.WriteStartElement("buy_rate"); + { + writer.WriteString(childnode.ChildNodes[1].InnerText); + } + writer.WriteEndElement(); + writer.WriteStartElement("sell_rate"); + { + writer.WriteString(childnode.ChildNodes[2].InnerText); + } + writer.WriteEndElement(); + } + writer.WriteEndElement(); + } + } + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + } + } + writer.WriteEndElement(); + } + writer.WriteEndDocument(); + Console.WriteLine("\nOutput File Saved Successfully\n"); + } + } + } + + static void Main(string[] args) + { + Console.OutputEncoding = Encoding.Unicode; + Console.InputEncoding = Encoding.Unicode; + + ExportRates(); + } + } +} \ No newline at end of file diff --git a/Cs17_1_t01/Properties/AssemblyInfo.cs b/Cs17_1_t01/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..88031db --- /dev/null +++ b/Cs17_1_t01/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cs17_1_t01")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cs17_1_t01")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("8368f6d3-a056-47aa-8a07-89e10599cb03")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs18_1_t01/App.config b/Cs18_1_t01/App.config new file mode 100644 index 0000000..193aecc --- /dev/null +++ b/Cs18_1_t01/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cs18_1_t01/ClassLib/ClassLib.csproj b/Cs18_1_t01/ClassLib/ClassLib.csproj new file mode 100644 index 0000000..0780c77 --- /dev/null +++ b/Cs18_1_t01/ClassLib/ClassLib.csproj @@ -0,0 +1,48 @@ + + + + + Debug + AnyCPU + {B324EA8F-E1E6-4888-B06C-A116A97E677D} + Library + Properties + ClassLib + ClassLib + v4.8 + 512 + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs18_1_t01/ClassLib/PC.cs b/Cs18_1_t01/ClassLib/PC.cs new file mode 100644 index 0000000..b563a38 --- /dev/null +++ b/Cs18_1_t01/ClassLib/PC.cs @@ -0,0 +1,41 @@ +using System; + +namespace ClassLib +{ + [Serializable] + public class PC + { + public string Brand { get; set; } + public string SN { get; set; } + public DateTime PurchaseDate { get; set; } + public int State { get; set; } + public PC() : this(null, null, DateTime.Now, 0) { } + public PC(string Brand, string SN, DateTime PurchaseDate, int State) + { + this.Brand = Brand; + this.SN = SN; + this.PurchaseDate = PurchaseDate; + this.State = State; + } + public override string ToString() + { + return $"{Brand,-10} {SN,-10} {PurchaseDate.ToShortDateString(),-15} {State,-3}"; + } + public void PCOn() + { + State = 1; + Console.WriteLine($"PC {SN} is ON"); + } + public void PCOff() + { + State = 0; + Console.WriteLine($"PC {SN} is OFF"); + } + public void PCRestart() + { + State = 0; + State = 1; + Console.WriteLine($"PC {SN} is Restarted"); + } + } +} diff --git a/Cs18_1_t01/ClassLib/Properties/AssemblyInfo.cs b/Cs18_1_t01/ClassLib/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..081ddc1 --- /dev/null +++ b/Cs18_1_t01/ClassLib/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ClassLib")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ClassLib")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("b324ea8f-e1e6-4888-b06c-a116a97e677d")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs18_1_t01/Cs18_1_t01.sln b/Cs18_1_t01/Cs18_1_t01.sln new file mode 100644 index 0000000..7b37c76 --- /dev/null +++ b/Cs18_1_t01/Cs18_1_t01.sln @@ -0,0 +1,37 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30204.135 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SerializConsolApp", "SerializConsolApp.csproj", "{A7E5780E-41C7-426C-A27C-C57F3B3FBB33}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassLib", "ClassLib\ClassLib.csproj", "{B324EA8F-E1E6-4888-B06C-A116A97E677D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DeserializConsolApp", "DeserializConsolApp\DeserializConsolApp.csproj", "{282BCA53-5F34-436E-A167-0137230E2B79}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A7E5780E-41C7-426C-A27C-C57F3B3FBB33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A7E5780E-41C7-426C-A27C-C57F3B3FBB33}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A7E5780E-41C7-426C-A27C-C57F3B3FBB33}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A7E5780E-41C7-426C-A27C-C57F3B3FBB33}.Release|Any CPU.Build.0 = Release|Any CPU + {B324EA8F-E1E6-4888-B06C-A116A97E677D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B324EA8F-E1E6-4888-B06C-A116A97E677D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B324EA8F-E1E6-4888-B06C-A116A97E677D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B324EA8F-E1E6-4888-B06C-A116A97E677D}.Release|Any CPU.Build.0 = Release|Any CPU + {282BCA53-5F34-436E-A167-0137230E2B79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {282BCA53-5F34-436E-A167-0137230E2B79}.Debug|Any CPU.Build.0 = Debug|Any CPU + {282BCA53-5F34-436E-A167-0137230E2B79}.Release|Any CPU.ActiveCfg = Release|Any CPU + {282BCA53-5F34-436E-A167-0137230E2B79}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {3EFFBE4A-4277-4ED8-93F7-D70418AEAA69} + EndGlobalSection +EndGlobal diff --git a/Cs18_1_t01/DeserializConsolApp/App.config b/Cs18_1_t01/DeserializConsolApp/App.config new file mode 100644 index 0000000..193aecc --- /dev/null +++ b/Cs18_1_t01/DeserializConsolApp/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cs18_1_t01/DeserializConsolApp/DeserializConsolApp.csproj b/Cs18_1_t01/DeserializConsolApp/DeserializConsolApp.csproj new file mode 100644 index 0000000..29ec4a3 --- /dev/null +++ b/Cs18_1_t01/DeserializConsolApp/DeserializConsolApp.csproj @@ -0,0 +1,59 @@ + + + + + Debug + AnyCPU + {282BCA53-5F34-436E-A167-0137230E2B79} + Exe + DeserializConsolApp + DeserializConsolApp + v4.8 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + {b324ea8f-e1e6-4888-b06c-a116a97e677d} + ClassLib + + + + \ No newline at end of file diff --git a/Cs18_1_t01/DeserializConsolApp/Program.cs b/Cs18_1_t01/DeserializConsolApp/Program.cs new file mode 100644 index 0000000..3e39b7d --- /dev/null +++ b/Cs18_1_t01/DeserializConsolApp/Program.cs @@ -0,0 +1,64 @@ +using System; +using System.IO; +using System.Collections.Generic; +using System.Runtime.Serialization.Formatters.Binary; +using ClassLib; + +namespace DeserializConsolApp +{ + class Program + { + static T LoadBinary(string fname) + { + T s = default; + try + { + using (Stream stream = File.OpenRead(fname)) + { + BinaryFormatter format = new BinaryFormatter(); + s = (T)format.Deserialize(stream); + } + Console.WriteLine("LoadBinary is OK.\n"); + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + } + return s; + } + + static List LoadBinaryFromSeparateFiles(string fname) + { + List s = new List(); + try + { + int i = 0; + while (File.Exists("..\\..\\..\\" + fname + "\\объект" + (++i).ToString() + ".txt")) + { + using (Stream stream = File.OpenRead("..\\..\\..\\" + fname + "\\объект" + (i).ToString() + ".txt")) + { + BinaryFormatter format = new BinaryFormatter(); + s.Add((T)format.Deserialize(stream)); + } + } + Console.WriteLine("Successfully loaded from " + --i + " binary files.\n"); + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + } + return s; + } + + static void Main(string[] args) + { + string fname = "..\\..\\..\\listSerial.txt"; + List PCList = LoadBinary>(fname); + Console.WriteLine(String.Join("\n", PCList) + "\n"); + + fname = "Folder"; + List PCList2 = LoadBinaryFromSeparateFiles(fname); + Console.WriteLine(String.Join("\n", PCList2) + "\n"); + } + } +} diff --git a/Cs18_1_t01/DeserializConsolApp/Properties/AssemblyInfo.cs b/Cs18_1_t01/DeserializConsolApp/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..5532507 --- /dev/null +++ b/Cs18_1_t01/DeserializConsolApp/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("DeserializConsolApp")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("DeserializConsolApp")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("282bca53-5f34-436e-a167-0137230e2b79")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git "a/Cs18_1_t01/Folder/\320\276\320\261\321\212\320\265\320\272\321\2021.txt" "b/Cs18_1_t01/Folder/\320\276\320\261\321\212\320\265\320\272\321\2021.txt" new file mode 100644 index 0000000000000000000000000000000000000000..1c65cfe478c3054cbdffa212da637e236aa8db0f GIT binary patch literal 252 zcmZQzWME+U4+J0@1bCQ$guQc4VsWugW|EFVSZYymW`3Tnp`HN<>L@su=9H8crP}7D zmX;JH=IAH{lqTh5CVQt=hU90b=Go?z=H#$~Oyh4qzKyt`=N`;+60sqC1)fSr@ADTq@v4;*#wth5oQEh%F6+AJ{vQTU~x&! g$zcOo%;n;0YG!U~Vr*i>z>w;GFXB1}P?Uii0Ml4URR910 literal 0 HcmV?d00001 diff --git "a/Cs18_1_t01/Folder/\320\276\320\261\321\212\320\265\320\272\321\2022.txt" "b/Cs18_1_t01/Folder/\320\276\320\261\321\212\320\265\320\272\321\2022.txt" new file mode 100644 index 0000000000000000000000000000000000000000..8d311f2a47d1062fabd8aadc9869f1cffd32b8ce GIT binary patch literal 250 zcmZQzWME+U4+J0@1bCQ$guQc4VsWugW|EFVSZYymW`3Tnp`HN<>L@su=9H8crP}7D zmX;JH=IAH{lqTh5CVQt=hU90b=Go?z=H#$~Oyh4qzKyt`=N`;+60sqC1)fSr@ADTq@v4;*#wth5oQEh%F6+AJ{vQTVDboH c16j-E5nyU&YG!6`X3F4jP1-2<8VA^Q05(%bR{#J2 literal 0 HcmV?d00001 diff --git "a/Cs18_1_t01/Folder/\320\276\320\261\321\212\320\265\320\272\321\2023.txt" "b/Cs18_1_t01/Folder/\320\276\320\261\321\212\320\265\320\272\321\2023.txt" new file mode 100644 index 0000000000000000000000000000000000000000..6b3b4d0224b9bb7b7b0b6bafcff67002a4514d21 GIT binary patch literal 252 zcmZQzWME+U4+J0@1bCQ$guQc4VsWugW|EFVSZYymW`3Tnp`HN<>L@su=9H8crP}7D zmX;JH=IAH{lqTh5CVQt=hU90b=Go?z=H#$~Oyh4qzKyt`=N`;+60sqC1)fSr@ADTq@v4;*#wth5oQEh%F6+AJ{vQTU~x=N fEn)*%%;o58VQy?!0rP8;E70& literal 0 HcmV?d00001 diff --git "a/Cs18_1_t01/Folder/\320\276\320\261\321\212\320\265\320\272\321\2024.txt" "b/Cs18_1_t01/Folder/\320\276\320\261\321\212\320\265\320\272\321\2024.txt" new file mode 100644 index 0000000000000000000000000000000000000000..f0e3fcc5863b0783fd152e5ff687a6563a0d4bc5 GIT binary patch literal 254 zcmZQzWME+U4+J0@1bCQ$guQc4VsWugW|EFVSZYymW`3Tnp`HN<>L@su=9H8crP}7D zmX;JH=IAH{lqTh5CVQt=hU90b=Go?z=H#$~Oyh4qzKyt`=N`;+60sqC1)fSr@ADTq@v4;*#wth5oQEh%F6+AJ{vQL@JY?f hFUw~GS) +// и добавить в коллекцию 4–5 объектов класса «РС». +// 5. Произвести сериализацию коллекции в бинарный файл с именем «listSerial.txt» в каталоге на диске D. +// В случае наличия аналогичного файла в каталоге старый файл перезаписать новым файлом и вывести об этом уведомление. +// 6. Создать новый проект (тип — консольное приложение) с именем «DeserializConsolApp». +// Добавить ссылку на библиотеку «ClassLib». +// 7. В функции Main() произвести десериализацию коллекции, созданной в проекте с именем «SerializConsolApp» и вывести на экран. +// +// Дополнительно: +// 8. В проекте «SerializConsolApp» реализовать функцию сохранения каждого объекта коллекции +// в отдельном каталоге с именами («объект1.txt», «объект2.txt», «объект3.txt»…). +// В проекте «DeserializConsolApp» функцию чтения объектов из файлов и вывода на экран значений полей объектов. + + +using System; +using System.Collections.Generic; +using System.IO; +using System.Runtime.Serialization.Formatters.Binary; +using ClassLib; + +namespace SerializConsolApp +{ + class Program + { + static void SaveBinary(string fname, T s) + { + try + { + if (File.Exists(fname)) + { + Console.WriteLine("Файл с таким именем уже существует. Он будет перезаписан."); + } + using (Stream stream = File.Create(fname)) + { + BinaryFormatter format = new BinaryFormatter(); + format.Serialize(stream, s); + } + Console.WriteLine("SaveBinary is OK.\n"); + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + } + } + + static void SaveBinaryToSeparateFiles(ICollection s) + { + try + { + Directory.CreateDirectory("..\\..\\Folder"); + int i = 0; + foreach (T item in s) + { + using (Stream stream = File.Create("..\\..\\Folder\\объект" + (++i).ToString() + ".txt")) + { + BinaryFormatter format = new BinaryFormatter(); + format.Serialize(stream, item); + } + } + Console.WriteLine("Successfully saved to " + i + " binary files.\n"); + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + } + } + + static void Main(string[] args) + { + List PCList = new List { + new PC("Dell", "DE56754342", new DateTime(2019, 10, 25), 0), + new PC("HP", "HP56566765", new DateTime(2018, 11, 26), 1), + new PC("Acer", "AC87343983", new DateTime(2018, 06, 21), 1), + new PC("Lenovo", "LE32657548", new DateTime(2017, 12, 29), 0)}; + + string fname = "..\\..\\listSerial.txt"; + SaveBinary(fname, PCList); + + SaveBinaryToSeparateFiles(PCList); + } + } +} diff --git a/Cs18_1_t01/Properties/AssemblyInfo.cs b/Cs18_1_t01/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..de3407e --- /dev/null +++ b/Cs18_1_t01/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cs18_1_t01")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cs18_1_t01")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("a7e5780e-41c7-426c-a27c-c57f3b3fbb33")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs18_1_t01/SerializConsolApp.csproj b/Cs18_1_t01/SerializConsolApp.csproj new file mode 100644 index 0000000..03e2fce --- /dev/null +++ b/Cs18_1_t01/SerializConsolApp.csproj @@ -0,0 +1,65 @@ + + + + + Debug + AnyCPU + {A7E5780E-41C7-426C-A27C-C57F3B3FBB33} + Exe + Cs18_1_t01 + Cs18_1_t01 + v4.8 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + + + + + + + + + + + + + + + + + + + + + + {b324ea8f-e1e6-4888-b06c-a116a97e677d} + ClassLib + + + + \ No newline at end of file diff --git a/Cs18_1_t01/listSerial.txt b/Cs18_1_t01/listSerial.txt new file mode 100644 index 0000000000000000000000000000000000000000..c78fd7b4db26cd1ef8f1fc0d4a443383de13717d GIT binary patch literal 625 zcmbtQT}s115Z=^wo3vIRggz)j4^VYn^^X<$xOB6!Lmt45xTFpo}u(>BhkKI-)R}cvn2JKya2fu2? zPI#O|&<-GpBac@rPIAkce-6{jZ~{R)NI1`8wa39!#PFcoA?M)7vWU>nAb^PZdXI_t zW_LJT^wAw#R{mep(P%|>r7n|AMa~uM8C3V_$9|TO(xSZVH5}oTs;c1)nM?mX9tb*5 znc|Wj)f%!|4uK-%CFGD>7UH?wI*zW6z(k;O>+GA8)h<{omYn%Sj^t-V@OA zV)&gcw+8Vav?48*RJ24@3E2*CPBj@7Iwz*pFzZIWMhKjJT)$(UDCilD(Sn3b*P%tZ z7rKsVnU>YCOmaBistx8Uj;`QrsdyEGBOfAKLiv&1Y#4Q8uW69Cmrw0|_9MqvNabrX epgjn}r;x7Wh2Du#vrK8HNe*8(FZ#38Oz|7}xRuxd literal 0 HcmV?d00001 diff --git a/Cs18_1_t01/packages.config b/Cs18_1_t01/packages.config new file mode 100644 index 0000000..281c145 --- /dev/null +++ b/Cs18_1_t01/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file