From 8bba9c559e3884778de63a013332006dd90d3609 Mon Sep 17 00:00:00 2001 From: ShchegolikhYR Date: Fri, 11 Apr 2025 11:31:00 +0300 Subject: [PATCH] initial commit --- Gistogramma.xcodeproj/project.pbxproj | 279 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 35442 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 104 +++++++ .../xcschemes/xcschememanagement.plist | 14 + main.cpp | 75 +++++ 6 files changed, 479 insertions(+) create mode 100644 Gistogramma.xcodeproj/project.pbxproj create mode 100644 Gistogramma.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Gistogramma.xcodeproj/project.xcworkspace/xcuserdata/macbookpro.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 Gistogramma.xcodeproj/xcuserdata/macbookpro.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist create mode 100644 Gistogramma.xcodeproj/xcuserdata/macbookpro.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 main.cpp diff --git a/Gistogramma.xcodeproj/project.pbxproj b/Gistogramma.xcodeproj/project.pbxproj new file mode 100644 index 0000000..2981d53 --- /dev/null +++ b/Gistogramma.xcodeproj/project.pbxproj @@ -0,0 +1,279 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXBuildFile section */ + 523FBF7E2DA909BA0044A741 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 523FBF7D2DA909BA0044A741 /* main.cpp */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 52E197542D5F35A1004F8E3E /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + ); + runOnlyForDeploymentPostprocessing = 1; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 523FBF7D2DA909BA0044A741 /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; + 52E197562D5F35A1004F8E3E /* Gistogramma */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = Gistogramma; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 52E197532D5F35A1004F8E3E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 52E1974D2D5F35A1004F8E3E = { + isa = PBXGroup; + children = ( + 523FBF7D2DA909BA0044A741 /* main.cpp */, + 52E197572D5F35A1004F8E3E /* Products */, + ); + sourceTree = ""; + }; + 52E197572D5F35A1004F8E3E /* Products */ = { + isa = PBXGroup; + children = ( + 52E197562D5F35A1004F8E3E /* Gistogramma */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 52E197552D5F35A1004F8E3E /* Gistogramma */ = { + isa = PBXNativeTarget; + buildConfigurationList = 52E1975D2D5F35A1004F8E3E /* Build configuration list for PBXNativeTarget "Gistogramma" */; + buildPhases = ( + 52E197522D5F35A1004F8E3E /* Sources */, + 52E197532D5F35A1004F8E3E /* Frameworks */, + 52E197542D5F35A1004F8E3E /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Gistogramma; + packageProductDependencies = ( + ); + productName = Gistogramma; + productReference = 52E197562D5F35A1004F8E3E /* Gistogramma */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 52E1974E2D5F35A1004F8E3E /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastUpgradeCheck = 1620; + TargetAttributes = { + 52E197552D5F35A1004F8E3E = { + CreatedOnToolsVersion = 16.2; + }; + }; + }; + buildConfigurationList = 52E197512D5F35A1004F8E3E /* Build configuration list for PBXProject "Gistogramma" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 52E1974D2D5F35A1004F8E3E; + minimizedProjectReferenceProxies = 1; + preferredProjectObjectVersion = 77; + productRefGroup = 52E197572D5F35A1004F8E3E /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 52E197552D5F35A1004F8E3E /* Gistogramma */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + 52E197522D5F35A1004F8E3E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 523FBF7E2DA909BA0044A741 /* main.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 52E1975B2D5F35A1004F8E3E /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 15.1; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Debug; + }; + 52E1975C2D5F35A1004F8E3E /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 15.1; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + }; + name = Release; + }; + 52E1975E2D5F35A1004F8E3E /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 52E1975F2D5F35A1004F8E3E /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 52E197512D5F35A1004F8E3E /* Build configuration list for PBXProject "Gistogramma" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 52E1975B2D5F35A1004F8E3E /* Debug */, + 52E1975C2D5F35A1004F8E3E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 52E1975D2D5F35A1004F8E3E /* Build configuration list for PBXNativeTarget "Gistogramma" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 52E1975E2D5F35A1004F8E3E /* Debug */, + 52E1975F2D5F35A1004F8E3E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 52E1974E2D5F35A1004F8E3E /* Project object */; +} diff --git a/Gistogramma.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Gistogramma.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/Gistogramma.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Gistogramma.xcodeproj/project.xcworkspace/xcuserdata/macbookpro.xcuserdatad/UserInterfaceState.xcuserstate b/Gistogramma.xcodeproj/project.xcworkspace/xcuserdata/macbookpro.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..1521f013fe3fde51671a54913745b39f464a4664 GIT binary patch literal 35442 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 SW4{m@e@hCDzfGU5tNtJPO=Tni literal 0 HcmV?d00001 diff --git a/Gistogramma.xcodeproj/xcuserdata/macbookpro.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/Gistogramma.xcodeproj/xcuserdata/macbookpro.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 0000000..19c3f2d --- /dev/null +++ b/Gistogramma.xcodeproj/xcuserdata/macbookpro.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Gistogramma.xcodeproj/xcuserdata/macbookpro.xcuserdatad/xcschemes/xcschememanagement.plist b/Gistogramma.xcodeproj/xcuserdata/macbookpro.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..f0752e7 --- /dev/null +++ b/Gistogramma.xcodeproj/xcuserdata/macbookpro.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + Gistogramma.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..ad05828 --- /dev/null +++ b/main.cpp @@ -0,0 +1,75 @@ +#include +#include +#include +using namespace std; + +int main () { + vector inscriptions; + vector numbers; + vector baskets; + size_t numbers_count; + size_t baskets_count; + size_t baskets_max_count; + const size_t screen_width = 80; + const size_t max_asterisk = screen_width - 3 - 1; + float basket_max; + float basket_min; + float basket_size; + cout.precision(4); + + cerr << "Введите кол-во чисел в строке: "; + cin >> numbers_count; + numbers.resize(numbers_count); + + cerr << "Введите строку чисел: "; + for (float& i : numbers) { + cin >> i; + } + + cerr << "Введите кол-во корзин: "; + cin >> baskets_count; + + baskets.resize(baskets_count); + inscriptions.resize(baskets_count); + + cerr << "Введите подписи к столбцам:" << endl; + for (string& i : inscriptions) { + cin >> i; + } + + basket_max = numbers[0]; + for (int i : numbers) { + if (i > basket_max) basket_max = i; + } + basket_min = numbers[0]; + for (int i : numbers) { + if (i < basket_min) basket_min = i; + } + + basket_size = (basket_max - basket_min) / baskets_count; + + for (int i = 0; i < baskets_count; i++) { + for (int j = 0; j < numbers_count; j++) { + if ((numbers[j] >= (basket_min + i * basket_size) and numbers[j] < (basket_min + (i + 1) * basket_size)) or (i == baskets_count - 1 and numbers[j] == basket_max)) { + baskets[i]++; + } + } + } + + baskets_max_count = baskets[0]; + for (size_t i : baskets) { + if (i > baskets_max_count) baskets_max_count = i; + } + + for (int i = 0; i < baskets_count; i++) { + size_t height = baskets[0]; + if (baskets_max_count > max_asterisk) { + height = max_asterisk * (static_cast(baskets[i]) / baskets_max_count); + } + cout << inscriptions[i] << "|"; + for (int j = 0; j < height; j++) cout << "*"; + cout << endl; + } + return 0; +} +