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