diff --git a/Lab20/Lab20.sln b/Lab20/Lab20.sln new file mode 100644 index 0000000..f98a931 --- /dev/null +++ b/Lab20/Lab20.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35312.102 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Lab20", "Lab20\Lab20.vcxproj", "{BB058FAE-9FAC-4094-A7D0-BEB0E36FF1B4}" +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 + {BB058FAE-9FAC-4094-A7D0-BEB0E36FF1B4}.Debug|x64.ActiveCfg = Debug|x64 + {BB058FAE-9FAC-4094-A7D0-BEB0E36FF1B4}.Debug|x64.Build.0 = Debug|x64 + {BB058FAE-9FAC-4094-A7D0-BEB0E36FF1B4}.Debug|x86.ActiveCfg = Debug|Win32 + {BB058FAE-9FAC-4094-A7D0-BEB0E36FF1B4}.Debug|x86.Build.0 = Debug|Win32 + {BB058FAE-9FAC-4094-A7D0-BEB0E36FF1B4}.Release|x64.ActiveCfg = Release|x64 + {BB058FAE-9FAC-4094-A7D0-BEB0E36FF1B4}.Release|x64.Build.0 = Release|x64 + {BB058FAE-9FAC-4094-A7D0-BEB0E36FF1B4}.Release|x86.ActiveCfg = Release|Win32 + {BB058FAE-9FAC-4094-A7D0-BEB0E36FF1B4}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {EE9CBB1C-290E-4F58-858E-3C60C5EDD527} + EndGlobalSection +EndGlobal diff --git a/Lab20/Lab20/Lab20.vcxproj b/Lab20/Lab20/Lab20.vcxproj new file mode 100644 index 0000000..00ce72d --- /dev/null +++ b/Lab20/Lab20/Lab20.vcxproj @@ -0,0 +1,135 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {bb058fae-9fac-4094-a7d0-beb0e36ff1b4} + Lab20 + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + 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/Lab20/Lab20/Lab20.vcxproj.filters b/Lab20/Lab20/Lab20.vcxproj.filters new file mode 100644 index 0000000..e8deb3d --- /dev/null +++ b/Lab20/Lab20/Lab20.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/Lab20/Lab20/main.cpp b/Lab20/Lab20/main.cpp new file mode 100644 index 0000000..f71251b --- /dev/null +++ b/Lab20/Lab20/main.cpp @@ -0,0 +1,214 @@ +// addToHead, printList, deleteFromHead, contains, clearList. +#define _CRT_SECURE_NO_WARNINGS + +#include +#include +#include + +struct Node { + int data; + struct Node* next; +}; + + +struct Node* first = NULL; + + +void printList() { + struct Node* ptr = first; + while (ptr != NULL) { + printf("(%d) -> ", ptr->data); + ptr = ptr->next; + } + printf("NULL\n"); +} + + +void addToHead(int value) { + struct Node* newNode = (struct Node*)malloc(sizeof(struct Node)); + + newNode->next = first; + newNode->data = value; + + first = newNode; +} + + +int deleteFromHead() { + int value = first->data; + struct Node* delNode = first; + first = first->next; + free(delNode); + return value; +} + + +int contains(int value) { + struct Node* ptr = first; + while (ptr != NULL) { + if (ptr->data == value) { + return 1; + } + ptr = ptr->next; + } + return 0; +} + + +void clearList() { + while (first != NULL) + { + struct Node* delNode = first; + first = first->next; + free(delNode); + } +} + + +int sum() { + struct Node* ptr = first; + int s = 0; + while (ptr != NULL) { + s += ptr->data; + ptr = ptr->next; + } + return s; +} + + +int even() { + struct Node* ptr = first; + int s = 0; + int cnt = 0; + while (ptr != NULL && s % 2 == 0) { + s += ptr->data; + ptr = ptr->next; + cnt++; + } + return cnt; +} + + +void printListX10() { + struct Node* ptr = first; + int s = 0; + while (ptr != NULL) { + if (ptr->data % 2 == 1) { + printf("(%d) -> ", ptr->data*10); + } + else { + printf("(%d) -> ", ptr->data); + } + ptr = ptr->next; + } + printf("NULL\n"); +} + +void elementIx100(int i) { + struct Node* ptr = first; + int s = 0, index = 0; + while (ptr != NULL) { + if (index == i) { + ptr->data = ptr->data * 100; + return; + } + ptr = ptr->next; + index++; + } + printf("NULL\n"); +} + +void elementIx10Left(int i) { + struct Node* ptr = first; + int s = 0, index = 0; + while (ptr != NULL) { + if (index < i) { + ptr->data = ptr->data * 10; + } + ptr = ptr->next; + index++; + } + printf("NULL\n"); +} + + +void main() { + first = NULL; + printList(); + + addToHead(10); + printList(); + + addToHead(20); + printList(); + + addToHead(30); + printList(); + + printf("sum = %d\n", sum()); + + clearList(); + printList(); + printf("sum = %d\n", sum()); + int x, a; + scanf("%d", &x); + addToHead(x); + printList(); + scanf("%d", &x); + addToHead(x); + printList(); + scanf("%d", &x); + addToHead(x); + printList(); + scanf("%d", &x); + addToHead(x); + printList(); + printf("even = %d\n", even()); + printf("sum = %d\n", sum()); + printListX10(); + printf("Pick num of Element to X 100 - "); + scanf_s("%d", &a); + printf("\n"); + elementIx100(a); + printList(); + + printf("Pick num of Element to X 10 all Left - "); + scanf_s("%d", &a); + printf("\n"); + elementIx10Left(a); + printList(); + + int x1 = deleteFromHead(); + printf("x1 = %d\n", x1); + printList(); + + int x2 = deleteFromHead(); + printf("x2 = %d\n", x2); + printList(); + + + clearList(); + first = NULL; + printList(); + + addToHead(400); + addToHead(300); + addToHead(200); + addToHead(100); + printList(); + + printf("contains(100) = %d\n", contains(100)); + printf("contains(150) = %d\n", contains(150)); + printf("contains(200) = %d\n", contains(200)); + + clearList(); + printList(); + + printf("contains(100) = %d\n", contains(100)); + printf("contains(150) = %d\n", contains(150)); + printf("contains(200) = %d\n", contains(200)); + + +} + +