diff --git a/Lab09.10.OAIP.ProkonovKirill.sln b/Lab09.10.OAIP.ProkonovKirill.sln
new file mode 100644
index 0000000..2420c4a
--- /dev/null
+++ b/Lab09.10.OAIP.ProkonovKirill.sln
@@ -0,0 +1,61 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.33529.622
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Lab09.10.OAIP.ProkonovKirill", "Lab09.10.OAIP.ProkonovKirill\Lab09.10.OAIP.ProkonovKirill.vcxproj", "{1D560CA6-0490-49B7-BB1D-6A7900EBBAF4}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Lab10.OAIP.ProkonovKirill", "Lab10.OAIP.ProkonovKirill\Lab10.OAIP.ProkonovKirill.vcxproj", "{1EF50C36-9FBC-4C69-8136-D3B886A28BD6}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Lab11_1.OAIP.ProkonovKirill", "Lab11_1.OAIP.ProkonovKirill\Lab11_1.OAIP.ProkonovKirill.vcxproj", "{EB446AE9-F444-42AF-B2C9-25D435A8E914}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Lab12.OAIP.ProkonovKirill", "Lab12.OAIP.ProkonovKirill\Lab12.OAIP.ProkonovKirill.vcxproj", "{25CCD917-E83B-4E45-94AD-6A3F90325A1E}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {1D560CA6-0490-49B7-BB1D-6A7900EBBAF4}.Debug|x64.ActiveCfg = Debug|x64
+ {1D560CA6-0490-49B7-BB1D-6A7900EBBAF4}.Debug|x64.Build.0 = Debug|x64
+ {1D560CA6-0490-49B7-BB1D-6A7900EBBAF4}.Debug|x86.ActiveCfg = Debug|Win32
+ {1D560CA6-0490-49B7-BB1D-6A7900EBBAF4}.Debug|x86.Build.0 = Debug|Win32
+ {1D560CA6-0490-49B7-BB1D-6A7900EBBAF4}.Release|x64.ActiveCfg = Release|x64
+ {1D560CA6-0490-49B7-BB1D-6A7900EBBAF4}.Release|x64.Build.0 = Release|x64
+ {1D560CA6-0490-49B7-BB1D-6A7900EBBAF4}.Release|x86.ActiveCfg = Release|Win32
+ {1D560CA6-0490-49B7-BB1D-6A7900EBBAF4}.Release|x86.Build.0 = Release|Win32
+ {1EF50C36-9FBC-4C69-8136-D3B886A28BD6}.Debug|x64.ActiveCfg = Debug|x64
+ {1EF50C36-9FBC-4C69-8136-D3B886A28BD6}.Debug|x64.Build.0 = Debug|x64
+ {1EF50C36-9FBC-4C69-8136-D3B886A28BD6}.Debug|x86.ActiveCfg = Debug|Win32
+ {1EF50C36-9FBC-4C69-8136-D3B886A28BD6}.Debug|x86.Build.0 = Debug|Win32
+ {1EF50C36-9FBC-4C69-8136-D3B886A28BD6}.Release|x64.ActiveCfg = Release|x64
+ {1EF50C36-9FBC-4C69-8136-D3B886A28BD6}.Release|x64.Build.0 = Release|x64
+ {1EF50C36-9FBC-4C69-8136-D3B886A28BD6}.Release|x86.ActiveCfg = Release|Win32
+ {1EF50C36-9FBC-4C69-8136-D3B886A28BD6}.Release|x86.Build.0 = Release|Win32
+ {EB446AE9-F444-42AF-B2C9-25D435A8E914}.Debug|x64.ActiveCfg = Debug|x64
+ {EB446AE9-F444-42AF-B2C9-25D435A8E914}.Debug|x64.Build.0 = Debug|x64
+ {EB446AE9-F444-42AF-B2C9-25D435A8E914}.Debug|x86.ActiveCfg = Debug|Win32
+ {EB446AE9-F444-42AF-B2C9-25D435A8E914}.Debug|x86.Build.0 = Debug|Win32
+ {EB446AE9-F444-42AF-B2C9-25D435A8E914}.Release|x64.ActiveCfg = Release|x64
+ {EB446AE9-F444-42AF-B2C9-25D435A8E914}.Release|x64.Build.0 = Release|x64
+ {EB446AE9-F444-42AF-B2C9-25D435A8E914}.Release|x86.ActiveCfg = Release|Win32
+ {EB446AE9-F444-42AF-B2C9-25D435A8E914}.Release|x86.Build.0 = Release|Win32
+ {25CCD917-E83B-4E45-94AD-6A3F90325A1E}.Debug|x64.ActiveCfg = Debug|x64
+ {25CCD917-E83B-4E45-94AD-6A3F90325A1E}.Debug|x64.Build.0 = Debug|x64
+ {25CCD917-E83B-4E45-94AD-6A3F90325A1E}.Debug|x86.ActiveCfg = Debug|Win32
+ {25CCD917-E83B-4E45-94AD-6A3F90325A1E}.Debug|x86.Build.0 = Debug|Win32
+ {25CCD917-E83B-4E45-94AD-6A3F90325A1E}.Release|x64.ActiveCfg = Release|x64
+ {25CCD917-E83B-4E45-94AD-6A3F90325A1E}.Release|x64.Build.0 = Release|x64
+ {25CCD917-E83B-4E45-94AD-6A3F90325A1E}.Release|x86.ActiveCfg = Release|Win32
+ {25CCD917-E83B-4E45-94AD-6A3F90325A1E}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {21830DFB-7789-4EB6-9F51-9AD1FE9C8194}
+ EndGlobalSection
+EndGlobal
diff --git a/Lab09.10.OAIP.ProkonovKirill/Lab09.10.OAIP.ProkonovKirill.vcxproj b/Lab09.10.OAIP.ProkonovKirill/Lab09.10.OAIP.ProkonovKirill.vcxproj
new file mode 100644
index 0000000..1d5e9ec
--- /dev/null
+++ b/Lab09.10.OAIP.ProkonovKirill/Lab09.10.OAIP.ProkonovKirill.vcxproj
@@ -0,0 +1,147 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {1d560ca6-0490-49b7-bb1d-6a7900ebbaf4}
+ Lab0910OAIPProkonovKirill
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ _DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Lab09.10.OAIP.ProkonovKirill/Lab09.10.OAIP.ProkonovKirill.vcxproj.filters b/Lab09.10.OAIP.ProkonovKirill/Lab09.10.OAIP.ProkonovKirill.vcxproj.filters
new file mode 100644
index 0000000..ef66db6
--- /dev/null
+++ b/Lab09.10.OAIP.ProkonovKirill/Lab09.10.OAIP.ProkonovKirill.vcxproj.filters
@@ -0,0 +1,22 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Исходные файлы
+
+
+
\ No newline at end of file
diff --git a/Lab09.10.OAIP.ProkonovKirill/Source.cpp b/Lab09.10.OAIP.ProkonovKirill/Source.cpp
new file mode 100644
index 0000000..596aa93
--- /dev/null
+++ b/Lab09.10.OAIP.ProkonovKirill/Source.cpp
@@ -0,0 +1,281 @@
+#include
+
+//void main() {
+// printf("main() start\n" "main() finish\n");
+//
+// //printf("main() finish\n");
+//}
+
+
+//int isPrime(int num) {
+// int del = 2;
+// while (del < num) {
+// // num del
+// if (num % del == 0) {
+// // 0, ..
+// return 0;
+// }
+// del++;
+// }
+// // 1, .. 2 num-1
+// //
+// return 1;
+//}
+// labsa
+//
+////void main() {
+//// int n = 10000;
+////
+//// int a = 1;
+//// int i = 0;
+//// while (i < n) {
+//// if (isPrime(a)) {
+//// printf("%d ", a);
+//// i++;
+//// }
+//// a++;
+//// }
+////}
+//
+//void main() {
+// int num = 20;
+//
+// while (1) {
+// if (isPrime(num)) {
+// printf("%d ", num);
+// break;
+// }
+// num++;
+// }
+//
+//}
+#include
+#include
+
+void print1_10() {
+ int a = 1;
+ do {
+ printf("%d ", a);
+ a += 1;
+ } while (a <= 10);
+}
+
+void print10_1() {
+ int a = 10;
+ do {
+ printf("%d ", a);
+ a -= 1;
+ } while (a >= 1);
+}
+
+void print50dds() {
+ int a = 1;
+ int i = 1;
+ do {
+ printf("%d ", a);
+ a += 2;
+ i += 1;
+ } while (i <= 5);
+}
+
+void print_100to10_step10() {
+ int a = 100;
+ //int i = 100;
+
+ while(a >= 10) {
+ printf("%d ", a);
+ a -= 10;
+ }
+}
+
+void print_1000_to100_step100() {
+ int a = 1000;
+ while (a >= 100) {
+ printf("%d ", a);
+ a -= 100;
+ }
+}
+
+void print_checkout() {
+ float s;
+ float procent;
+ int years;
+
+ printf("S = ");
+ scanf_s("%f", &s);
+
+ printf(" = ");
+ scanf_s("%f", &procent);
+
+ printf(" = ");
+ scanf_s("%d", &years);
+
+ int i = 1;
+ float current_amount = s;
+
+
+ while (i <= years) {
+ current_amount *= (1 + procent / 100);
+ printf(" %d : %.2f\n", i, current_amount);
+ ++i;
+ }
+}
+
+
+void print_1000_to0_step23() {
+ int a = 1000;
+ label_while:
+ if (a>=0) {
+ printf("%d ", a);
+ a -= 23;
+ goto label_while;
+ }
+}
+
+void print_factorial() {
+ int a = 1;
+ int n;
+ printf(" (N): ");
+ scanf_s("%d", &n);
+ int factorial1 = 1;
+ while (a <= n) {
+ factorial1 *= a;
+ printf("%d ", factorial1);
+ a++;
+ }
+}
+
+void print_Fibonachi(){
+ printf("N :\n");
+ int f;
+ printf(" N: ");
+ scanf_s("%d", &f);
+
+ int a1 = 1, b1 = 1, c1;
+ if (f == 1) {
+ printf("0 ");
+ }
+ else if (f == 2) {
+ printf("0 1 ");
+ }
+ else {
+ printf("0 1 1 ");
+ int count = 3;
+ while (count < f) {
+ c1 = a1 + b1;
+ printf("%d ", c1);
+ a1 = b1;
+ b1 = c1;
+ count++;
+ };
+ }
+
+ printf("\n");
+}
+
+
+void prime_factors() {
+ int n;
+
+ printf(" n: ");
+
+ scanf_s("%d", &n);
+ printf(" %d : ", n);
+
+ int del = 2;
+
+ label_while:
+ if (n > 1) {
+ if (n % del == 0) {
+ printf("%d ", del);
+ n = n/del;
+ }
+ else {
+ del++;
+ }
+ goto label_while;
+ }
+
+ printf("\n");
+}
+
+void main() {
+ SetConsoleCP(1251);
+ SetConsoleOutputCP(1251);
+ int n;
+ do {
+ printf("\n");
+ printf("\n");
+ printf(" :\n");
+ printf("1: 1 10\n");
+ printf("2: 10 1\n");
+ printf("3: 5 1\n");
+ printf("\n");
+ printf("0: \n");
+ printf("11: 100 10 10\n");
+ printf("12: 1000 100 100\n");
+ printf("13: \n");
+ printf("\n");
+ printf("20: 1000 0 23\n");
+ printf("21: \n");
+ printf("22: N \n");
+ printf("23: \n");
+
+ scanf_s("%d", &n);
+
+
+ switch (n) {
+ case 1:
+ printf("\n");
+ print1_10();
+ break;
+
+ case 2:
+ printf("\n");
+ print10_1();
+ break;
+
+ case 3:
+ printf("\n");
+ print50dds();
+ break;
+
+ case 11:
+ printf("\n");
+ print_100to10_step10();
+ break;
+
+ case 12:
+ printf("\n");
+ print_1000_to100_step100();
+ break;
+
+ case 13:
+ printf("\n");
+ print_checkout();
+ break;
+
+ case 20:
+ printf("\n");
+ print_1000_to0_step23();
+ break;
+
+ case 21:
+ printf("\n");
+ print_factorial();
+ break;
+
+ case 22:
+ printf("\n");
+ print_Fibonachi();
+ break;
+
+ case 23:
+ printf("\n");
+ prime_factors();
+ break;
+ }
+
+ } while (n != 0);
+}
+
diff --git a/Lab10.OAIP.ProkonovKirill/Lab10.OAIP.ProkonovKirill.vcxproj b/Lab10.OAIP.ProkonovKirill/Lab10.OAIP.ProkonovKirill.vcxproj
new file mode 100644
index 0000000..be40c28
--- /dev/null
+++ b/Lab10.OAIP.ProkonovKirill/Lab10.OAIP.ProkonovKirill.vcxproj
@@ -0,0 +1,147 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {1ef50c36-9fbc-4c69-8136-d3b886a28bd6}
+ Lab10OAIPProkonovKirill
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ _DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Lab10.OAIP.ProkonovKirill/Lab10.OAIP.ProkonovKirill.vcxproj.filters b/Lab10.OAIP.ProkonovKirill/Lab10.OAIP.ProkonovKirill.vcxproj.filters
new file mode 100644
index 0000000..ef66db6
--- /dev/null
+++ b/Lab10.OAIP.ProkonovKirill/Lab10.OAIP.ProkonovKirill.vcxproj.filters
@@ -0,0 +1,22 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Исходные файлы
+
+
+
\ No newline at end of file
diff --git a/Lab10.OAIP.ProkonovKirill/Source.cpp b/Lab10.OAIP.ProkonovKirill/Source.cpp
new file mode 100644
index 0000000..7dbcbae
--- /dev/null
+++ b/Lab10.OAIP.ProkonovKirill/Source.cpp
@@ -0,0 +1,117 @@
+#include
+
+#include
+
+void print_hours_m() {
+ printf("Example2() START\n");
+
+ int h = 0;
+ do {
+ int m = 0;
+ do {
+ printf("%02d:%02d ", h, m);
+ m += 10;
+ } while (m < 60);
+
+ printf("\n");
+ h++;
+ } while (h < 24);
+
+ printf("Example2() FINISH\n");
+}
+
+void print_NxM() {
+ printf("Task 1() START\n");
+
+ int n, m;
+ printf(" : ");
+ scanf_s("%d", &n);
+ printf("\n : ");
+ scanf_s("%d", &m);
+
+ int i = 1;
+ do {
+ int j = 1;
+ do {
+ printf("%d%d ", i, j);
+ j += 1;
+ if (j >= 10) break;
+ } while (j <= m);
+
+ printf("\n");
+ i++;
+ if (i >= 10) break;
+ } while (n >= i);
+
+ printf("Task 1() FINISH\n");
+}
+
+void print_Pifagor() {
+ printf("Task 2 Pifagor() START\n");
+
+ int i = 1;
+ do {
+ int j = 1;
+ do {
+ printf("%3d ", i*j);
+ j += 1;
+ } while (j <= 10);
+
+ printf("\n");
+ i++;
+ } while (i <= 10);
+
+ printf("Task 2 Pifagor() FINISH\n");
+}
+
+void print_DrawImage() {
+ printf("Task DrawImage() START\n");
+
+ int i = 5;
+ do {
+ int j = 5;
+ do {
+ printf("%d", j);
+ j -= 1;
+ } while (j >= 6-i);
+
+ printf("\n");
+ i--;
+ } while (i >= 1);
+
+ printf("Task DrawImage() FINISH\n");
+}
+
+void main() {
+ SetConsoleCP(1251);
+ SetConsoleOutputCP(1251);
+
+ int n;
+ do {
+ printf(" :\n");
+ printf("1: N x M\n");
+ printf("2: \n");
+ printf("3: \n");
+ printf("4: . = 10\n");
+ printf("0: \n");
+ scanf_s("%d", &n);
+
+ switch (n) {
+ case 1:
+ print_NxM();
+ break;
+ case 2:
+ print_Pifagor();
+ break;
+ case 3:
+ print_DrawImage();
+ break;
+ //case 4:
+ // print_DrawImage2();
+ // break;
+ case 4:
+ print_hours_m();
+ break;
+ }
+ } while (n != 0);
+}
\ No newline at end of file
diff --git a/Lab11.OAIP.ProkonovKirill/Lab11.OAIP.ProkonovKirill.vcxproj b/Lab11.OAIP.ProkonovKirill/Lab11.OAIP.ProkonovKirill.vcxproj
new file mode 100644
index 0000000..67b14ce
--- /dev/null
+++ b/Lab11.OAIP.ProkonovKirill/Lab11.OAIP.ProkonovKirill.vcxproj
@@ -0,0 +1,150 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+
+ 16.0
+ Win32Proj
+ {23532a75-5e82-46de-a638-b6c8b8f52174}
+ Lab11OAIPProkonovKirill
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+
+ Level3
+ true
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ _DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
diff --git a/Lab11.OAIP.ProkonovKirill/Lab11.OAIP.ProkonovKirill.vcxproj.filters b/Lab11.OAIP.ProkonovKirill/Lab11.OAIP.ProkonovKirill.vcxproj.filters
new file mode 100644
index 0000000..153170c
--- /dev/null
+++ b/Lab11.OAIP.ProkonovKirill/Lab11.OAIP.ProkonovKirill.vcxproj.filters
@@ -0,0 +1,17 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
\ No newline at end of file
diff --git a/Lab111.OAIP.ProkonovKirill/Lab111.OAIP.ProkonovKirill.cpp b/Lab111.OAIP.ProkonovKirill/Lab111.OAIP.ProkonovKirill.cpp
new file mode 100644
index 0000000..84d276f
--- /dev/null
+++ b/Lab111.OAIP.ProkonovKirill/Lab111.OAIP.ProkonovKirill.cpp
@@ -0,0 +1,20 @@
+// Lab111.OAIP.ProkonovKirill.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
+//
+
+#include
+
+int main()
+{
+ std::cout << "Hello World!\n";
+}
+
+// Запуск программы: CTRL+F5 или меню "Отладка" > "Запуск без отладки"
+// Отладка программы: F5 или меню "Отладка" > "Запустить отладку"
+
+// Советы по началу работы
+// 1. В окне обозревателя решений можно добавлять файлы и управлять ими.
+// 2. В окне Team Explorer можно подключиться к системе управления версиями.
+// 3. В окне "Выходные данные" можно просматривать выходные данные сборки и другие сообщения.
+// 4. В окне "Список ошибок" можно просматривать ошибки.
+// 5. Последовательно выберите пункты меню "Проект" > "Добавить новый элемент", чтобы создать файлы кода, или "Проект" > "Добавить существующий элемент", чтобы добавить в проект существующие файлы кода.
+// 6. Чтобы снова открыть этот проект позже, выберите пункты меню "Файл" > "Открыть" > "Проект" и выберите SLN-файл.
diff --git a/Lab111.OAIP.ProkonovKirill/Lab111.OAIP.ProkonovKirill.vcxproj b/Lab111.OAIP.ProkonovKirill/Lab111.OAIP.ProkonovKirill.vcxproj
new file mode 100644
index 0000000..c476ffe
--- /dev/null
+++ b/Lab111.OAIP.ProkonovKirill/Lab111.OAIP.ProkonovKirill.vcxproj
@@ -0,0 +1,147 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {77038eb4-9e4f-4349-b3b4-cf803984c2fd}
+ Lab111OAIPProkonovKirill
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ _DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Lab111.OAIP.ProkonovKirill/Lab111.OAIP.ProkonovKirill.vcxproj.filters b/Lab111.OAIP.ProkonovKirill/Lab111.OAIP.ProkonovKirill.vcxproj.filters
new file mode 100644
index 0000000..9d91b6e
--- /dev/null
+++ b/Lab111.OAIP.ProkonovKirill/Lab111.OAIP.ProkonovKirill.vcxproj.filters
@@ -0,0 +1,22 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Исходные файлы
+
+
+
\ No newline at end of file
diff --git a/Lab11_1.OAIP.ProkonovKirill/Lab11_1.OAIP.ProkonovKirill.cpp b/Lab11_1.OAIP.ProkonovKirill/Lab11_1.OAIP.ProkonovKirill.cpp
new file mode 100644
index 0000000..c3cc99a
--- /dev/null
+++ b/Lab11_1.OAIP.ProkonovKirill/Lab11_1.OAIP.ProkonovKirill.cpp
@@ -0,0 +1,500 @@
+// Lab11_1.OAIP.ProkonovKirill.cpp : Определяет точку входа для приложения.
+//
+
+#include "framework.h"
+#include "Lab11_1.OAIP.ProkonovKirill.h"
+
+#define MAX_LOADSTRING 100
+
+// Глобальные переменные:
+HINSTANCE hInst; // текущий экземпляр
+WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка
+WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна
+
+// Отправить объявления функций, включенных в этот модуль кода:
+ATOM MyRegisterClass(HINSTANCE hInstance);
+BOOL InitInstance(HINSTANCE, int);
+LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
+INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);
+
+int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
+ _In_opt_ HINSTANCE hPrevInstance,
+ _In_ LPWSTR lpCmdLine,
+ _In_ int nCmdShow)
+{
+ UNREFERENCED_PARAMETER(hPrevInstance);
+ UNREFERENCED_PARAMETER(lpCmdLine);
+
+ // TODO: Разместите код здесь.
+
+ // Инициализация глобальных строк
+ LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
+ LoadStringW(hInstance, IDC_LAB111OAIPPROKONOVKIRILL, szWindowClass, MAX_LOADSTRING);
+ MyRegisterClass(hInstance);
+
+ // Выполнить инициализацию приложения:
+ if (!InitInstance (hInstance, nCmdShow))
+ {
+ return FALSE;
+ }
+
+ HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_LAB111OAIPPROKONOVKIRILL));
+
+ MSG msg;
+
+ // Цикл основного сообщения:
+ while (GetMessage(&msg, nullptr, 0, 0))
+ {
+ if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
+ {
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
+ }
+ }
+
+ return (int) msg.wParam;
+}
+
+void TestImage0(HDC hdc, int cx, int cy) {
+ HPEN hPen;
+ hPen = CreatePen(PS_SOLID, 2, RGB(255, 0, 0));
+ SelectObject(hdc, hPen);
+
+ POINT p[4];
+ p[0].x = cx;
+ p[0].y = cy + 20;
+ p[1].x = cx + 20;
+ p[1].y = cy - 20;
+ p[2].x = cx - 20;
+ p[2].y = cy - 20;
+ p[3].x = cx;
+ p[3].y = cy + 20;
+
+ Polyline(hdc, p, 4);
+ DeleteObject(hPen);
+}
+
+void Image0(HDC hdc, int cx, int cy, COLORREF color) {
+ HPEN hPen;
+ hPen = CreatePen(PS_SOLID, 2, color);
+ SelectObject(hdc, hPen);
+
+ POINT p[5] = {
+ cx, cy + 20,
+ cx + 20, cy - 20,
+ cx - 20, cy - 20,
+ cx, cy + 20,
+ cx, cy + 20,
+ };
+
+ Polyline(hdc, p, 4);
+ DeleteObject(hPen);
+}
+
+void Image1(HDC hdc, int cx, int cy, COLORREF color) {
+ HPEN hPen = CreatePen(PS_SOLID, 2, color);
+ SelectObject(hdc, hPen);
+
+ POINT p[4] = {
+ cx, cy - 20,
+ cx + 20, cy + 20,
+ cx - 20, cy + 20,
+ cx, cy - 20
+ };
+ Polyline(hdc, p, 4);
+
+ DeleteObject(hPen);
+}
+
+void Image2(HDC hdc, int cx, int cy, COLORREF color) {
+ HPEN hPen = CreatePen(PS_SOLID, 2, color);
+ SelectObject(hdc, hPen);
+
+ POINT p[5] = {
+ cx, cy - 20,
+ cx + 20, cy - 40,
+ cx + 40, cy - 20,
+ cx + 20, cy,
+ cx, cy - 20,
+ };
+ Polyline(hdc, p, 5);
+
+ DeleteObject(hPen);
+}
+
+void Image3(HDC hdc, int cx, int cy, COLORREF color) {
+ HPEN hPen = CreatePen(PS_SOLID, 2, color);
+ SelectObject(hdc, hPen);
+
+ POINT p[5] = {
+ cx, cy,
+ cx - 20, cy - 20,
+ cx, cy + 20,
+ cx + 20, cy -20,
+ cx, cy,
+ };
+ Polyline(hdc, p, 5);
+
+ DeleteObject(hPen);
+}
+
+void Image4(HDC hdc, int cx, int cy, COLORREF color) {
+ HPEN hPen = CreatePen(PS_SOLID, 2, color);
+ SelectObject(hdc, hPen);
+
+ POINT p[7] = {
+ cx, cy,
+ cx + 20, cy + 10,
+ cx - 20, cy + 10,
+ cx - 20, cy + 30,
+ cx - 20, cy - 10,
+ cx + 20, cy - 10,
+ cx, cy
+ };
+ Polyline(hdc, p, 7);
+
+ DeleteObject(hPen);
+}
+
+void Image5(HDC hdc, int cx, int cy, COLORREF color) {
+ HPEN hPen = CreatePen(PS_SOLID, 2, color);
+ SelectObject(hdc, hPen);
+
+ POINT p[7] = {
+ cx, cy,
+ cx + 20, cy + 10,
+ cx + 20, cy - 10,
+ cx, cy,
+ cx - 20, cy + 10,
+ cx - 20, cy - 10,
+ cx, cy,
+ };
+ Polyline(hdc, p, 7);
+
+ DeleteObject(hPen);
+}
+
+void Image6(HDC hdc, int cx, int cy, COLORREF color) {
+ HPEN hPen = CreatePen(PS_SOLID, 2, color);
+ SelectObject(hdc, hPen);
+
+ POINT p[10] = {
+ cx - 40, cy + 20,
+ cx - 30, cy - 10,
+ cx - 20, cy + 10,
+ cx - 10, cy - 20,
+ cx, cy + 10,
+ cx + 10, cy - 20,
+ cx + 20, cy + 10,
+ cx + 30, cy - 10,
+ cx + 40, cy + 20,
+ cx - 40, cy + 20,
+ };
+
+ Polyline(hdc, p, 10);
+
+ DeleteObject(hPen);
+}
+
+void PictureFLineY(HDC hdc, void(*pfImage)(HDC hdc, int cx, int cy, COLORREF color)) {
+ short x = 40;
+ short y = 40;
+ char i = 0;
+ while (i < 6) {
+ pfImage(hdc, x, y, RGB(255, 0, 0));
+ y += 50;
+ i++;
+ }
+}
+
+
+
+void Picture0(HDC hdc) {
+ Image0(hdc, 40, 40, RGB(255, 0, 0)); // Код был в лекции
+ Image0(hdc, 140, 40, RGB(255, 0, 0));
+ Image0(hdc, 240, 40, RGB(255, 0, 0));
+ Image0(hdc, 240, 240, RGB(255, 0, 0));
+ Image0(hdc, 40, 240, RGB(255, 0, 0));
+}
+
+void Picture1(HDC hdc) {
+ Image1(hdc, 40, 40, RGB(255, 0, 0));
+ Image1(hdc, 140, 40, RGB(255, 0, 0));
+ Image1(hdc, 240, 40, RGB(255, 0, 0));
+ Image1(hdc, 240, 240, RGB(255, 0, 0));
+ Image1(hdc, 40, 240, RGB(255, 0, 0));
+}
+
+void Romb1(HDC hdc) {
+ Image2(hdc, 40, 40, RGB(255, 0, 0));
+ Image2(hdc, 140, 40, RGB(255, 0, 0));
+ Image2(hdc, 240, 40, RGB(255, 0, 0));
+ Image2(hdc, 240, 240, RGB(255, 0, 0));
+ Image2(hdc, 40, 240, RGB(255, 0, 0));
+}
+
+void CheckMark(HDC hdc) {
+ Image3(hdc, 40, 40, RGB(255, 0, 0));
+ Image3(hdc, 140, 40, RGB(255, 0, 0));
+ Image3(hdc, 240, 40, RGB(255, 0, 0));
+ Image3(hdc, 240, 240, RGB(255, 0, 0));
+ Image3(hdc, 40, 240, RGB(255, 0, 0));
+}
+
+void Flag1(HDC hdc) {
+ Image4(hdc, 40, 40, RGB(255, 0, 0));
+ Image4(hdc, 140, 40, RGB(255, 0, 0));
+ Image4(hdc, 240, 40, RGB(255, 0, 0));
+ Image4(hdc, 240, 240, RGB(255, 0, 0));
+ Image4(hdc, 40, 240, RGB(255, 0, 0));
+}
+
+void Infinity(HDC hdc) {
+ Image5(hdc, 40, 40, RGB(255, 0, 0));
+ Image5(hdc, 140, 40, RGB(255, 0, 0));
+ Image5(hdc, 240, 40, RGB(255, 0, 0));
+ Image5(hdc, 240, 240, RGB(255, 0, 0));
+ Image5(hdc, 40, 240, RGB(255, 0, 0));
+}
+
+void Crown(HDC hdc) {
+ Image6(hdc, 40, 40, RGB(255, 0, 0));
+ Image6(hdc, 140, 40, RGB(255, 0, 0));
+ Image6(hdc, 240, 40, RGB(255, 0, 0));
+ Image6(hdc, 240, 240, RGB(255, 0, 0));
+ Image6(hdc, 40, 240, RGB(255, 0, 0));
+}
+
+void Picture4Lines(HDC hdc) {
+ short y = 40;
+ char i = 0;
+
+ while (i < 6) {
+ short x = 40;
+ char j = 0;
+ while (j < 10) {
+ Image4(hdc, x, y, RGB(255, 0, 0));
+ x += 50;
+ j++;
+ }
+ y += 50;
+ i++;
+ }
+}
+
+void Picture4ColorLines(HDC hdc) {
+ unsigned char r = 255;
+ unsigned char g = 0;
+ short y = 40;
+ char i = 0;
+
+ while (i < 6) {
+ short x = 40;
+ char j = 0;
+ unsigned char b = 0;
+
+ while (j < 10) {
+ Image4(hdc, x, y, RGB(r, g, b));
+ x += 50;
+ j++;
+
+ b += 25;
+ }
+ y += 50;
+ i++;
+
+ g += 50;
+ }
+
+}
+
+
+enum Modes {
+ image0,
+ image1,
+ romb1,
+ checkMark,
+ flag1,
+ image1_line,
+ //image1_with_colors,
+ image2,
+ infinity,
+ crown,
+ //image2_with_colors,
+ //image3,
+ //image3_lines,
+ //image3_with_colors,
+ //image4,
+ image4_lines,
+ image4_with_colors,
+ mode_none
+};
+
+enum Modes mode = image0;
+
+
+//
+// ФУНКЦИЯ: MyRegisterClass()
+//
+// ЦЕЛЬ: Регистрирует класс окна.
+//
+ATOM MyRegisterClass(HINSTANCE hInstance)
+{
+ WNDCLASSEXW wcex;
+
+ wcex.cbSize = sizeof(WNDCLASSEX);
+
+ wcex.style = CS_HREDRAW | CS_VREDRAW;
+ wcex.lpfnWndProc = WndProc;
+ wcex.cbClsExtra = 0;
+ wcex.cbWndExtra = 0;
+ wcex.hInstance = hInstance;
+ wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_LAB111OAIPPROKONOVKIRILL));
+ wcex.hCursor = LoadCursor(nullptr, IDC_ARROW);
+ wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
+ wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_LAB111OAIPPROKONOVKIRILL);
+ wcex.lpszClassName = szWindowClass;
+ wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
+
+ return RegisterClassExW(&wcex);
+}
+
+//
+// ФУНКЦИЯ: InitInstance(HINSTANCE, int)
+//
+// ЦЕЛЬ: Сохраняет маркер экземпляра и создает главное окно
+//
+// КОММЕНТАРИИ:
+//
+// В этой функции маркер экземпляра сохраняется в глобальной переменной, а также
+// создается и выводится главное окно программы.
+//
+BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
+{
+ hInst = hInstance; // Сохранить маркер экземпляра в глобальной переменной
+
+ HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
+ CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr);
+
+ if (!hWnd)
+ {
+ return FALSE;
+ }
+
+ ShowWindow(hWnd, nCmdShow);
+ UpdateWindow(hWnd);
+
+ return TRUE;
+}
+
+
+//
+// ФУНКЦИЯ: WndProc(HWND, UINT, WPARAM, LPARAM)
+//
+// ЦЕЛЬ: Обрабатывает сообщения в главном окне.
+//
+// WM_COMMAND - обработать меню приложения
+// WM_PAINT - Отрисовка главного окна
+// WM_DESTROY - отправить сообщение о выходе и вернуться
+//
+//
+LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ switch (message)
+ {
+ case WM_COMMAND:
+ {
+ int wmId = LOWORD(wParam);
+ // Разобрать выбор в меню:
+ switch (wmId)
+ {
+ case IDM_ABOUT:
+ DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
+ break;
+ case IDM_EXIT:
+ DestroyWindow(hWnd);
+ break;
+ default:
+ return DefWindowProc(hWnd, message, wParam, lParam);
+ }
+ }
+ break;
+ case WM_KEYDOWN:
+ mode = (enum Modes)(mode + 1); // переключение на следующий режим
+ if (mode == mode_none) mode = image0; // если режимы закончились - начинаем заново
+ InvalidateRect(hWnd, NULL, TRUE);
+ break;
+ case WM_PAINT:
+ {
+ PAINTSTRUCT ps;
+ HDC hdc = BeginPaint(hWnd, &ps);
+ // TODO: Добавьте сюда любой код прорисовки, использующий HDC...
+
+ switch (mode) {
+ case image0:
+ Picture0(hdc); // Код выше
+ break;
+ case image1:
+ Picture1(hdc); // Код выше
+ break;
+ case romb1:
+ Romb1(hdc); // Код выше
+ break;
+ case checkMark:
+ CheckMark(hdc); // Код выше
+ break;
+ case flag1:
+ Flag1(hdc); // Код выше
+ break;
+ case image1_line:
+ PictureFLineY(hdc, Image1); // Код был в лекции
+ break;
+ case image2:
+ PictureFLineY(hdc, Image2); // Код был в лекции
+ break;
+ case infinity:
+ Infinity(hdc); // Код был в лекции
+ break;
+ case image4_lines:
+ Picture4Lines(hdc);
+ break;
+ case image4_with_colors:
+ Picture4ColorLines(hdc);
+ break;
+ case crown:
+ Crown(hdc);
+ break;
+ }
+
+ EndPaint(hWnd, &ps);
+ }
+ break;
+
+ case WM_DESTROY:
+ PostQuitMessage(0);
+ break;
+ default:
+ return DefWindowProc(hWnd, message, wParam, lParam);
+ }
+ return 0;
+}
+
+// Обработчик сообщений для окна "О программе".
+INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ UNREFERENCED_PARAMETER(lParam);
+ switch (message)
+ {
+ case WM_INITDIALOG:
+ return (INT_PTR)TRUE;
+
+ case WM_COMMAND:
+ if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
+ {
+ EndDialog(hDlg, LOWORD(wParam));
+ return (INT_PTR)TRUE;
+ }
+ break;
+ }
+ return (INT_PTR)FALSE;
+}
diff --git a/Lab11_1.OAIP.ProkonovKirill/Lab11_1.OAIP.ProkonovKirill.h b/Lab11_1.OAIP.ProkonovKirill/Lab11_1.OAIP.ProkonovKirill.h
new file mode 100644
index 0000000..d00d47e
--- /dev/null
+++ b/Lab11_1.OAIP.ProkonovKirill/Lab11_1.OAIP.ProkonovKirill.h
@@ -0,0 +1,3 @@
+#pragma once
+
+#include "resource.h"
diff --git a/Lab11_1.OAIP.ProkonovKirill/Lab11_1.OAIP.ProkonovKirill.ico b/Lab11_1.OAIP.ProkonovKirill/Lab11_1.OAIP.ProkonovKirill.ico
new file mode 100644
index 0000000..b3ec03b
Binary files /dev/null and b/Lab11_1.OAIP.ProkonovKirill/Lab11_1.OAIP.ProkonovKirill.ico differ
diff --git a/Lab11_1.OAIP.ProkonovKirill/Lab11_1.OAIP.ProkonovKirill.rc b/Lab11_1.OAIP.ProkonovKirill/Lab11_1.OAIP.ProkonovKirill.rc
new file mode 100644
index 0000000..d93fdad
Binary files /dev/null and b/Lab11_1.OAIP.ProkonovKirill/Lab11_1.OAIP.ProkonovKirill.rc differ
diff --git a/Lab11_1.OAIP.ProkonovKirill/Lab11_1.OAIP.ProkonovKirill.vcxproj b/Lab11_1.OAIP.ProkonovKirill/Lab11_1.OAIP.ProkonovKirill.vcxproj
new file mode 100644
index 0000000..448b3ce
--- /dev/null
+++ b/Lab11_1.OAIP.ProkonovKirill/Lab11_1.OAIP.ProkonovKirill.vcxproj
@@ -0,0 +1,160 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {eb446ae9-f444-42af-b2c9-25d435a8e914}
+ Lab111OAIPProkonovKirill
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ _DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Lab11_1.OAIP.ProkonovKirill/Lab11_1.OAIP.ProkonovKirill.vcxproj.filters b/Lab11_1.OAIP.ProkonovKirill/Lab11_1.OAIP.ProkonovKirill.vcxproj.filters
new file mode 100644
index 0000000..007c0d9
--- /dev/null
+++ b/Lab11_1.OAIP.ProkonovKirill/Lab11_1.OAIP.ProkonovKirill.vcxproj.filters
@@ -0,0 +1,49 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Файлы заголовков
+
+
+ Файлы заголовков
+
+
+ Файлы заголовков
+
+
+ Файлы заголовков
+
+
+
+
+ Исходные файлы
+
+
+
+
+ Файлы ресурсов
+
+
+
+
+ Файлы ресурсов
+
+
+ Файлы ресурсов
+
+
+
\ No newline at end of file
diff --git a/Lab11_1.OAIP.ProkonovKirill/Resource.h b/Lab11_1.OAIP.ProkonovKirill/Resource.h
new file mode 100644
index 0000000..9281b2f
--- /dev/null
+++ b/Lab11_1.OAIP.ProkonovKirill/Resource.h
@@ -0,0 +1,30 @@
+//{{NO_DEPENDENCIES}}
+// Включаемый файл, созданный в Microsoft Visual C++.
+// Используется Lab11_1.OAIP.ProkonovKirill.rc
+
+#define IDS_APP_TITLE 103
+
+#define IDR_MAINFRAME 128
+#define IDD_LAB111OAIPPROKONOVKIRILL_DIALOG 102
+#define IDD_ABOUTBOX 103
+#define IDM_ABOUT 104
+#define IDM_EXIT 105
+#define IDI_LAB111OAIPPROKONOVKIRILL 107
+#define IDI_SMALL 108
+#define IDC_LAB111OAIPPROKONOVKIRILL 109
+#define IDC_MYICON 2
+#ifndef IDC_STATIC
+#define IDC_STATIC -1
+#endif
+// Следующие стандартные значения для новых объектов
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+
+#define _APS_NO_MFC 130
+#define _APS_NEXT_RESOURCE_VALUE 129
+#define _APS_NEXT_COMMAND_VALUE 32771
+#define _APS_NEXT_CONTROL_VALUE 1000
+#define _APS_NEXT_SYMED_VALUE 110
+#endif
+#endif
diff --git a/Lab11_1.OAIP.ProkonovKirill/framework.h b/Lab11_1.OAIP.ProkonovKirill/framework.h
new file mode 100644
index 0000000..a8f6dc8
--- /dev/null
+++ b/Lab11_1.OAIP.ProkonovKirill/framework.h
@@ -0,0 +1,15 @@
+// header.h: включаемый файл для стандартных системных включаемых файлов
+// или включаемые файлы для конкретного проекта
+//
+
+#pragma once
+
+#include "targetver.h"
+#define WIN32_LEAN_AND_MEAN // Исключите редко используемые компоненты из заголовков Windows
+// Файлы заголовков Windows
+#include
+// Файлы заголовков среды выполнения C
+#include
+#include
+#include
+#include
diff --git a/Lab11_1.OAIP.ProkonovKirill/small.ico b/Lab11_1.OAIP.ProkonovKirill/small.ico
new file mode 100644
index 0000000..b3ec03b
Binary files /dev/null and b/Lab11_1.OAIP.ProkonovKirill/small.ico differ
diff --git a/Lab11_1.OAIP.ProkonovKirill/targetver.h b/Lab11_1.OAIP.ProkonovKirill/targetver.h
new file mode 100644
index 0000000..d90003d
--- /dev/null
+++ b/Lab11_1.OAIP.ProkonovKirill/targetver.h
@@ -0,0 +1,6 @@
+#pragma once
+
+// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows.
+// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и
+// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h.
+#include
diff --git a/Lab12.OAIP.ProkonovKirill/Lab12.OAIP.ProkonovKirill.cpp b/Lab12.OAIP.ProkonovKirill/Lab12.OAIP.ProkonovKirill.cpp
new file mode 100644
index 0000000..18cd0ff
--- /dev/null
+++ b/Lab12.OAIP.ProkonovKirill/Lab12.OAIP.ProkonovKirill.cpp
@@ -0,0 +1,381 @@
+// Lab12.OAIP.ProkonovKirill.cpp : Определяет точку входа для приложения.
+//
+
+#include "framework.h"
+#include "Lab12.OAIP.ProkonovKirill.h"
+
+#define MAX_LOADSTRING 100
+
+// Глобальные переменные:
+HINSTANCE hInst; // текущий экземпляр
+WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка
+WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна
+
+// Отправить объявления функций, включенных в этот модуль кода:
+ATOM MyRegisterClass(HINSTANCE hInstance);
+BOOL InitInstance(HINSTANCE, int);
+LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
+INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);
+
+int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
+ _In_opt_ HINSTANCE hPrevInstance,
+ _In_ LPWSTR lpCmdLine,
+ _In_ int nCmdShow)
+{
+ UNREFERENCED_PARAMETER(hPrevInstance);
+ UNREFERENCED_PARAMETER(lpCmdLine);
+
+ // TODO: Разместите код здесь.
+
+ // Инициализация глобальных строк
+ LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
+ LoadStringW(hInstance, IDC_LAB12OAIPPROKONOVKIRILL, szWindowClass, MAX_LOADSTRING);
+ MyRegisterClass(hInstance);
+
+ // Выполнить инициализацию приложения:
+ if (!InitInstance (hInstance, nCmdShow))
+ {
+ return FALSE;
+ }
+
+ HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_LAB12OAIPPROKONOVKIRILL));
+
+ MSG msg;
+
+ // Цикл основного сообщения:
+ while (GetMessage(&msg, nullptr, 0, 0))
+ {
+ if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
+ {
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
+ }
+ }
+
+ return (int) msg.wParam;
+}
+
+void Image0(HDC hdc, int cx, int cy, COLORREF color) {
+ HPEN hPen;
+ hPen = CreatePen(PS_SOLID, 2, color);
+ SelectObject(hdc, hPen);
+
+ POINT p[5] = {
+ cx, cy + 20,
+ cx + 20, cy - 20,
+ cx - 20, cy - 20,
+ cx, cy + 20,
+ cx, cy + 20,
+ };
+
+ Polyline(hdc, p, 4);
+ DeleteObject(hPen);
+}
+
+
+void Image1(HDC hdc, int cx, int cy, COLORREF color) {
+ HPEN hPen = CreatePen(PS_SOLID, 2, color);
+ SelectObject(hdc, hPen);
+
+ POINT p[4] = {
+ cx, cy - 20,
+ cx + 20, cy + 20,
+ cx - 20, cy + 20,
+ cx, cy - 20
+ };
+ Polyline(hdc, p, 4);
+
+ DeleteObject(hPen);
+}
+
+void Image2(HDC hdc, int cx, int cy, COLORREF color) {
+ HPEN hPen = CreatePen(PS_SOLID, 2, color);
+ SelectObject(hdc, hPen);
+
+ POINT p[5] = {
+ cx, cy,
+ cx - 20, cy - 20,
+ cx, cy + 20,
+ cx + 20, cy - 20,
+ cx, cy,
+ };
+ Polyline(hdc, p, 5);
+
+ DeleteObject(hPen);
+}
+
+void Image3(HDC hdc, int cx, int cy, COLORREF color) {
+ HPEN hPen = CreatePen(PS_SOLID, 2, color);
+ SelectObject(hdc, hPen);
+
+ POINT p[7] = {
+ cx, cy,
+ cx + 20, cy + 10,
+ cx - 20, cy + 10,
+ cx - 20, cy + 30,
+ cx - 20, cy - 10,
+ cx + 20, cy - 10,
+ cx, cy
+ };
+ Polyline(hdc, p, 7);
+
+ DeleteObject(hPen);
+}
+
+void Image4(HDC hdc, int cx, int cy, COLORREF color) {
+ HPEN hPen = CreatePen(PS_SOLID, 2, color);
+ SelectObject(hdc, hPen);
+
+ POINT p[7] = {
+ cx, cy,
+ cx + 20, cy + 10,
+ cx + 20, cy - 10,
+ cx, cy,
+ cx - 20, cy + 10,
+ cx - 20, cy - 10,
+ cx, cy,
+ };
+ Polyline(hdc, p, 7);
+
+ DeleteObject(hPen);
+}
+
+struct Image {
+ int x; // координата X
+ int y; // координата Y
+ int vx; // изменение координаты X = скорость по X
+ int vy; // изменение координаты Y = скорость по Y
+ COLORREF color; // цвет фигуры
+};
+
+typedef struct Image IMAGE;
+
+IMAGE im2 = { 400, 200, -10, 0, RGB(0, 100, 0) };
+
+IMAGE im3 = { 600, 200, 0, 10, RGB(0, 100, 0) };
+
+IMAGE im4 = { 800, 200, 0, -10, RGB(0, 100, 0) };
+
+struct Image im1 = { 100, 200, 10, 0 , RGB(128, 128, 0) };
+
+IMAGE im5[3] = {
+ {500, 100, 10, 5, RGB(100, 100, 100)},
+ {500, 100, 0, 10, RGB(150, 150, 150)},
+ {500, 100, -10, 5, RGB(200, 200, 200)}
+};
+
+#define NUM_IM_A 9
+
+IMAGE imA[NUM_IM_A] = {
+ {700, 300, 10, 0, RGB(255, 0, 255)},
+ {700, 300, 9, 4, RGB(255, 30, 255)},
+ {700, 300, 7, 7, RGB(255, 60, 255)},
+ {700, 300, 4, 9,RGB(255, 90, 255)},
+ {700, 300, 0, 10, RGB(255, 120, 255)},
+ {700, 300, 4, 9, RGB(255, 150, 255)},
+ {700, 300, 7, 7, RGB(255, 180, 255)},
+ {700, 300, 9, 4, RGB(255, 210, 255)},
+ {700, 300, -10, 0, RGB(255, 240, 255)}
+};
+
+void Image5(HDC hdc, int cx, int cy, COLORREF color) {
+ HPEN hPen = CreatePen(PS_SOLID, 2, color);
+ SelectObject(hdc, hPen);
+
+ POINT p[10] = {
+ cx - 40, cy + 20,
+ cx - 30, cy - 10,
+ cx - 20, cy + 10,
+ cx - 10, cy - 20,
+ cx, cy + 10,
+ cx + 10, cy - 20,
+ cx + 20, cy + 10,
+ cx + 30, cy - 10,
+ cx + 40, cy + 20,
+ cx - 40, cy + 20,
+ };
+
+ Polyline(hdc, p, 10);
+
+ DeleteObject(hPen);
+}
+
+//
+// ФУНКЦИЯ: MyRegisterClass()
+//
+// ЦЕЛЬ: Регистрирует класс окна.
+//
+ATOM MyRegisterClass(HINSTANCE hInstance)
+{
+ WNDCLASSEXW wcex;
+
+ wcex.cbSize = sizeof(WNDCLASSEX);
+
+ wcex.style = CS_HREDRAW | CS_VREDRAW;
+ wcex.lpfnWndProc = WndProc;
+ wcex.cbClsExtra = 0;
+ wcex.cbWndExtra = 0;
+ wcex.hInstance = hInstance;
+ wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_LAB12OAIPPROKONOVKIRILL));
+ wcex.hCursor = LoadCursor(nullptr, IDC_ARROW);
+ wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
+ wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_LAB12OAIPPROKONOVKIRILL);
+ wcex.lpszClassName = szWindowClass;
+ wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
+
+ return RegisterClassExW(&wcex);
+}
+
+//
+// ФУНКЦИЯ: InitInstance(HINSTANCE, int)
+//
+// ЦЕЛЬ: Сохраняет маркер экземпляра и создает главное окно
+//
+// КОММЕНТАРИИ:
+//
+// В этой функции маркер экземпляра сохраняется в глобальной переменной, а также
+// создается и выводится главное окно программы.
+//
+BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
+{
+ hInst = hInstance; // Сохранить маркер экземпляра в глобальной переменной
+
+ HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
+ CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr);
+
+ if (!hWnd)
+ {
+ return FALSE;
+ }
+
+ ShowWindow(hWnd, nCmdShow);
+ UpdateWindow(hWnd);
+
+ return TRUE;
+}
+
+//
+// ФУНКЦИЯ: WndProc(HWND, UINT, WPARAM, LPARAM)
+//
+// ЦЕЛЬ: Обрабатывает сообщения в главном окне.
+//
+// WM_COMMAND - обработать меню приложения
+// WM_PAINT - Отрисовка главного окна
+// WM_DESTROY - отправить сообщение о выходе и вернуться
+//
+//
+LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ switch (message)
+ {
+ case WM_COMMAND:
+ {
+ int wmId = LOWORD(wParam);
+ // Разобрать выбор в меню:
+ switch (wmId)
+ {
+ case IDM_ABOUT:
+ DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
+ break;
+ case IDM_EXIT:
+ DestroyWindow(hWnd);
+ break;
+ default:
+ return DefWindowProc(hWnd, message, wParam, lParam);
+ }
+ }
+ break;
+ case WM_PAINT:
+ {
+ PAINTSTRUCT ps;
+ HDC hdc = BeginPaint(hWnd, &ps);
+ // TODO: Добавьте сюда любой код прорисовки, использующий HDC...
+ Image0(hdc, im1.x, im1.y, im1.color);
+ Image1(hdc, im2.x, im2.y, im2.color);
+ Image2(hdc, im3.x, im3.y, im3.color);
+ Image3(hdc, im4.x, im4.y, im4.color);
+
+ Image4(hdc, im5[0].x, im5[0].y, im5[0].color);
+ Image4(hdc, im5[1].x, im5[1].y, im5[1].color);
+ Image4(hdc, im5[2].x, im5[2].y, im5[2].color);
+
+ //Со звёздочкой
+ int i = 0;
+
+ while (i < NUM_IM_A) {
+
+ Image5(hdc, imA[i].x, imA[i].y, imA[i].color);
+
+ i += 1;
+
+ }
+
+ EndPaint(hWnd, &ps);
+ }
+ break;
+ case WM_CREATE:
+ SetTimer(hWnd, 1, 500, 0);
+ break;
+
+ case WM_TIMER:
+ {
+ im1.x += im1.vx;
+ im1.y += im1.vy;
+
+ im2.x += im2.vx;
+ im2.y += im2.vy;
+
+ im3.x += im3.vx;
+ im3.y += im3.vy;
+
+ im4.x += im4.vx;
+ im4.y += im4.vy;
+
+ im5[0].x += im5[0].vx;
+ im5[0].y += im5[0].vy;
+
+ im5[1].x += im5[1].vx;
+ im5[1].y += im5[1].vy;
+
+ im5[2].x += im5[2].vx;
+ im5[2].y += im5[2].vy;
+
+ int i = 0;
+ while (i < NUM_IM_A) {
+ imA[i].x += imA[i].vx;
+ imA[i].y += imA[i].vy;
+ i += 1;
+ }
+
+ InvalidateRect(hWnd, NULL, TRUE);
+ break;
+ }
+
+ case WM_DESTROY:
+ PostQuitMessage(0);
+ break;
+ default:
+ return DefWindowProc(hWnd, message, wParam, lParam);
+ }
+ return 0;
+}
+
+// Обработчик сообщений для окна "О программе".
+INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ UNREFERENCED_PARAMETER(lParam);
+ switch (message)
+ {
+ case WM_INITDIALOG:
+ return (INT_PTR)TRUE;
+
+ case WM_COMMAND:
+ if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
+ {
+ EndDialog(hDlg, LOWORD(wParam));
+ return (INT_PTR)TRUE;
+ }
+ break;
+ }
+ return (INT_PTR)FALSE;
+}
diff --git a/Lab12.OAIP.ProkonovKirill/Lab12.OAIP.ProkonovKirill.h b/Lab12.OAIP.ProkonovKirill/Lab12.OAIP.ProkonovKirill.h
new file mode 100644
index 0000000..d00d47e
--- /dev/null
+++ b/Lab12.OAIP.ProkonovKirill/Lab12.OAIP.ProkonovKirill.h
@@ -0,0 +1,3 @@
+#pragma once
+
+#include "resource.h"
diff --git a/Lab12.OAIP.ProkonovKirill/Lab12.OAIP.ProkonovKirill.ico b/Lab12.OAIP.ProkonovKirill/Lab12.OAIP.ProkonovKirill.ico
new file mode 100644
index 0000000..b3ec03b
Binary files /dev/null and b/Lab12.OAIP.ProkonovKirill/Lab12.OAIP.ProkonovKirill.ico differ
diff --git a/Lab12.OAIP.ProkonovKirill/Lab12.OAIP.ProkonovKirill.rc b/Lab12.OAIP.ProkonovKirill/Lab12.OAIP.ProkonovKirill.rc
new file mode 100644
index 0000000..6f6a8c3
Binary files /dev/null and b/Lab12.OAIP.ProkonovKirill/Lab12.OAIP.ProkonovKirill.rc differ
diff --git a/Lab12.OAIP.ProkonovKirill/Lab12.OAIP.ProkonovKirill.vcxproj b/Lab12.OAIP.ProkonovKirill/Lab12.OAIP.ProkonovKirill.vcxproj
new file mode 100644
index 0000000..f773baa
--- /dev/null
+++ b/Lab12.OAIP.ProkonovKirill/Lab12.OAIP.ProkonovKirill.vcxproj
@@ -0,0 +1,160 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {25ccd917-e83b-4e45-94ad-6a3f90325a1e}
+ Lab12OAIPProkonovKirill
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ _DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Lab12.OAIP.ProkonovKirill/Lab12.OAIP.ProkonovKirill.vcxproj.filters b/Lab12.OAIP.ProkonovKirill/Lab12.OAIP.ProkonovKirill.vcxproj.filters
new file mode 100644
index 0000000..8c13961
--- /dev/null
+++ b/Lab12.OAIP.ProkonovKirill/Lab12.OAIP.ProkonovKirill.vcxproj.filters
@@ -0,0 +1,49 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Файлы заголовков
+
+
+ Файлы заголовков
+
+
+ Файлы заголовков
+
+
+ Файлы заголовков
+
+
+
+
+ Исходные файлы
+
+
+
+
+ Файлы ресурсов
+
+
+
+
+ Файлы ресурсов
+
+
+ Файлы ресурсов
+
+
+
\ No newline at end of file
diff --git a/Lab12.OAIP.ProkonovKirill/Resource.h b/Lab12.OAIP.ProkonovKirill/Resource.h
new file mode 100644
index 0000000..9a7fac2
--- /dev/null
+++ b/Lab12.OAIP.ProkonovKirill/Resource.h
@@ -0,0 +1,30 @@
+//{{NO_DEPENDENCIES}}
+// Включаемый файл, созданный в Microsoft Visual C++.
+// Используется Lab12.OAIP.ProkonovKirill.rc
+
+#define IDS_APP_TITLE 103
+
+#define IDR_MAINFRAME 128
+#define IDD_LAB12OAIPPROKONOVKIRILL_DIALOG 102
+#define IDD_ABOUTBOX 103
+#define IDM_ABOUT 104
+#define IDM_EXIT 105
+#define IDI_LAB12OAIPPROKONOVKIRILL 107
+#define IDI_SMALL 108
+#define IDC_LAB12OAIPPROKONOVKIRILL 109
+#define IDC_MYICON 2
+#ifndef IDC_STATIC
+#define IDC_STATIC -1
+#endif
+// Следующие стандартные значения для новых объектов
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+
+#define _APS_NO_MFC 130
+#define _APS_NEXT_RESOURCE_VALUE 129
+#define _APS_NEXT_COMMAND_VALUE 32771
+#define _APS_NEXT_CONTROL_VALUE 1000
+#define _APS_NEXT_SYMED_VALUE 110
+#endif
+#endif
diff --git a/Lab12.OAIP.ProkonovKirill/framework.h b/Lab12.OAIP.ProkonovKirill/framework.h
new file mode 100644
index 0000000..a8f6dc8
--- /dev/null
+++ b/Lab12.OAIP.ProkonovKirill/framework.h
@@ -0,0 +1,15 @@
+// header.h: включаемый файл для стандартных системных включаемых файлов
+// или включаемые файлы для конкретного проекта
+//
+
+#pragma once
+
+#include "targetver.h"
+#define WIN32_LEAN_AND_MEAN // Исключите редко используемые компоненты из заголовков Windows
+// Файлы заголовков Windows
+#include
+// Файлы заголовков среды выполнения C
+#include
+#include
+#include
+#include
diff --git a/Lab12.OAIP.ProkonovKirill/small.ico b/Lab12.OAIP.ProkonovKirill/small.ico
new file mode 100644
index 0000000..b3ec03b
Binary files /dev/null and b/Lab12.OAIP.ProkonovKirill/small.ico differ
diff --git a/Lab12.OAIP.ProkonovKirill/targetver.h b/Lab12.OAIP.ProkonovKirill/targetver.h
new file mode 100644
index 0000000..d90003d
--- /dev/null
+++ b/Lab12.OAIP.ProkonovKirill/targetver.h
@@ -0,0 +1,6 @@
+#pragma once
+
+// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows.
+// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и
+// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h.
+#include
diff --git a/Project1/Project1.vcxproj b/Project1/Project1.vcxproj
new file mode 100644
index 0000000..6c8577c
--- /dev/null
+++ b/Project1/Project1.vcxproj
@@ -0,0 +1,150 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+
+ 16.0
+ Win32Proj
+ {58950c5f-3432-4f41-8d8b-1856de4da894}
+ Project1
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+
+ Level3
+ true
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ _DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
diff --git a/Project1/Project1.vcxproj.filters b/Project1/Project1.vcxproj.filters
new file mode 100644
index 0000000..153170c
--- /dev/null
+++ b/Project1/Project1.vcxproj.filters
@@ -0,0 +1,17 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
\ No newline at end of file
diff --git a/Новая папка/5.docx b/Новая папка/5.docx
new file mode 100644
index 0000000..e69de29