Код ошибки майнкрафт 1073740940

Whenever I load into a world the game crashes after like 30 seconds, The exit code was -1073740940

By

Dr_Freakman · Posted 38 minutes ago

I made a modpack similar to RLCraft because I wanted to experience the Scape and Run: Parasites from Phase 0. 

It works fine for the most part until I go to the Lost Cities Dimension. After a while the game will crash and give me the «Ticking Player» error. 

I tried running the modpack on a server and instead of crashing it boots me from the server, but the server itself doesn’t crash.

Any help would be appreciated.

 

Below is the crash log that it gave.

 

 

—- Minecraft Crash Report —-

WARNING: coremods are present:
  LibLoader (# LibLoader.jar)
  LibrarianLib Plugin (librarianlib-1.12.2-4.22.jar)
  WolfArmorCore (WolfArmorAndStorage-3.8.1+1.12.2.alpha.1-SNAPSHOT-signed.jar)
  BlockOverlayFixPlugin (BlockOverlayFix-1.12.2-1.0.0.jar)
  ParticleCullingLoadingPlugin (particleculling-1.12.2-v1.3.1.jar)
  ItemPatchingLoader (ItemPhysic_Full_1.4.37_mc1.12.2.jar)
  CoreMod (TickProfiler-1.12-0.0.10.jar)
  TransformLoader (DynamicSurroundings-1.12.2-3.6.2.1.jar)
  Quark Plugin (Quark-r1.6-179.jar)
  ObfuscatePlugin (obfuscate-0.4.2-1.12.2.jar)
  EntityCullingPlugin (EntityCulling-1.12.2-4.2.5.jar)
  PhosphorFMLLoadingPlugin (phosphor-1.12.2-0.2.6+build50-universal.jar)
  MixinLoader (BedBreakBegone-1.0.1.jar)
  MMFMLCorePlugin (MultiMine-1.12.2.jar)
  LoadingPlugin (ResourceLoader-MC1.12.1-1.5.3.jar)
  IvToolkit (IvToolkit-1.3.3-1.12.jar)
  LoadingPlugin (Reskillable-1.12.2-1.13.0.jar)
  LoadingPlugin (ChunkAnimator-MC1.12-1.2.jar)
  Inventory Tweaks Coremod (InventoryTweaks-1.64+dev.151.jar)
  RBLoadingPlugin (RealBench-1.12.2-1.3.3.jar)
  SoManyEnchantments ASM (SoManyEnchantments-0.5.5.jar)
  ForgelinPlugin (Forgelin-1.8.4.jar)
  CreativePatchingLoader (CreativeCore_v1.10.70_mc1.12.2.jar)
  Do not report to Forge! (If you haven’t disabled the FoamFix coremod, try disabling it in the config! Note that this bit of text will still appear.) (foamfix-0.10.14-1.12.2.jar)
  Born in a Barn (Born In A Barn V1.8-1.12-1.1.jar)
  CharmLoadingPlugin (Charm-1.12.2-1.4.1.jar)
  llibrary (llibrary-core-1.0.11-1.12.2.jar)
  CorePlugin (ForgeEndertech-1.12.2-4.5.6.0-build.0619.jar)
  SpartanWeaponry-MixinLoader (SpartanWeaponry-1.12.2-1.4.1.jar)
  TNTUtilities Core (tnt_utilities-mc1.12-1.2.3.jar)
Contact their authors BEFORE contacting forge

// Hi. I’m Minecraft, and I’m a crashaholic.

Time: 2/12/23 2:14 PM
Description: Ticking player

java.lang.NullPointerException: Ticking player
    at net.minecraft.world.gen.structure.MapGenStronghold.func_189104_c(MapGenStronghold.java:141)
    at net.minecraft.world.gen.structure.MapGenStronghold.func_180706_b(MapGenStronghold.java:77)
    at ivorius.reccomplex.world.gen.feature.structure.MapGenStructureHook.func_180706_b(MapGenStructureHook.java:115)
    at ivorius.reccomplex.events.handlers.RCTerrainGenEventHandler$5.func_180706_b(RCTerrainGenEventHandler.java:323)
    at mcjty.lostcities.dimensions.world.LostCityChunkGenerator.func_180513_a(LostCityChunkGenerator.java:677)
    at net.minecraft.world.gen.ChunkProviderServer.func_180513_a(ChunkProviderServer.java:305)
    at svenhjol.meson.helper.WorldHelper.getNearestStructure(WorldHelper.java:88)
    at svenhjol.meson.helper.WorldHelper.getNearestStructure(WorldHelper.java:145)
    at svenhjol.charm.world.feature.SpectreHaunting.onTick(SpectreHaunting.java:107)
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_1123_SpectreHaunting_onTick_PlayerTickEvent.invoke(.dynamic)
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
    at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
    at net.minecraftforge.fml.common.FMLCommonHandler.onPlayerPostTick(FMLCommonHandler.java:370)
    at net.minecraft.entity.player.EntityPlayer.func_184808_cD(EntityPlayer.java:378)
    at net.minecraft.entity.player.EntityPlayer.func_70071_h_(EntityPlayer.java:288)
    at net.minecraft.entity.player.EntityPlayerMP.func_71127_g(EntityPlayerMP.java:382)
    at net.minecraft.network.NetHandlerPlayServer.func_73660_a(NetHandlerPlayServer.java:173)
    at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher$1.func_73660_a(NetworkDispatcher.java:209)
    at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:285)
    at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:180)
    at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:790)
    at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668)
    at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:279)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526)
    at java.lang.Thread.run(Thread.java:745)

A detailed walkthrough of the error, its code path and all known details is as follows:
—————————————————————————————

— Head —
Thread: Server thread
Stacktrace:
    at net.minecraft.world.gen.structure.MapGenStronghold.func_189104_c(MapGenStronghold.java:141)
    at net.minecraft.world.gen.structure.MapGenStronghold.func_180706_b(MapGenStronghold.java:77)
    at ivorius.reccomplex.world.gen.feature.structure.MapGenStructureHook.func_180706_b(MapGenStructureHook.java:115)
    at ivorius.reccomplex.events.handlers.RCTerrainGenEventHandler$5.func_180706_b(RCTerrainGenEventHandler.java:323)
    at mcjty.lostcities.dimensions.world.LostCityChunkGenerator.func_180513_a(LostCityChunkGenerator.java:677)
    at net.minecraft.world.gen.ChunkProviderServer.func_180513_a(ChunkProviderServer.java:305)
    at svenhjol.meson.helper.WorldHelper.getNearestStructure(WorldHelper.java:88)
    at svenhjol.meson.helper.WorldHelper.getNearestStructure(WorldHelper.java:145)
    at svenhjol.charm.world.feature.SpectreHaunting.onTick(SpectreHaunting.java:107)
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_1123_SpectreHaunting_onTick_PlayerTickEvent.invoke(.dynamic)
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
    at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
    at net.minecraftforge.fml.common.FMLCommonHandler.onPlayerPostTick(FMLCommonHandler.java:370)
    at net.minecraft.entity.player.EntityPlayer.func_184808_cD(EntityPlayer.java:378)
    at net.minecraft.entity.player.EntityPlayer.func_70071_h_(EntityPlayer.java:288)

— Player being ticked —
Details:
    Entity Type: null (net.minecraft.entity.player.EntityPlayerMP)
    Entity ID: 1190
    Entity Name: Dr_Freakman
    Entity’s Exact location: 56.21, 76.73, 287.08
    Entity’s Block location: World: (56,76,287), Chunk: (at 8,4,15 in 3,17; contains blocks 48,0,272 to 63,255,287), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
    Entity’s Momentum: 0.00, 0.00, 0.00
    Entity’s Passengers: []
    Entity’s Vehicle: ~~ERROR~~ NullPointerException: null
Stacktrace:
    at net.minecraft.entity.player.EntityPlayerMP.func_71127_g(EntityPlayerMP.java:382)
    at net.minecraft.network.NetHandlerPlayServer.func_73660_a(NetHandlerPlayServer.java:173)
    at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher$1.func_73660_a(NetworkDispatcher.java:209)
    at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:285)

— Ticking connection —
Details:
    Connection: net.minecraft.network.NetworkManager@37984f77
Stacktrace:
    at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:180)
    at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:790)
    at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668)
    at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:279)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526)
    at java.lang.Thread.run(Thread.java:745)

— System Details —
Details:
    Minecraft Version: 1.12.2
    Operating System: Windows 10 (amd64) version 10.0
    Java Version: 1.8.0_51, Oracle Corporation
    Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    Memory: 5597048392 bytes (5337 MB) / 7771521024 bytes (7411 MB) up to 7771521024 bytes (7411 MB)
    JVM Flags: 3 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx8000m -Xms8000m
    IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95
    FML: MCP 9.42 Powered by Forge 14.23.5.2860 Optifine OptiFine_1.12.2_HD_U_G5 150 mods loaded, 150 mods active
    States: ‘U’ = Unloaded ‘L’ = Loaded ‘C’ = Constructed ‘H’ = Pre-initialized ‘I’ = Initialized ‘J’ = Post-initialized ‘A’ = Available ‘D’ = Disabled ‘E’ = Errored

    | State  | ID                          | Version              | Source                                                       | Signature                                |
    |:—— |:————————— |:——————— |:———————————————————— |:—————————————- |
    | LCHIJA | minecraft                   | 1.12.2               | minecraft.jar                                                | None                                     |
    | LCHIJA | mcp                         | 9.42                 | minecraft.jar                                                | None                                     |
    | LCHIJA | FML                         | 8.0.99.99            | forge-1.12.2-14.23.5.2860.jar                                | e3c3d50c7c986df74c645c0ac54639741c90a557 |
    | LCHIJA | forge                       | 14.23.5.2860         | forge-1.12.2-14.23.5.2860.jar                                | e3c3d50c7c986df74c645c0ac54639741c90a557 |
    | LCHIJA | creativecoredummy           | 1.0.0                | minecraft.jar                                                | None                                     |
    | LCHIJA | entity_culling              | 4.2.5                | minecraft.jar                                                | None                                     |
    | LCHIJA | itemphysic                  | 1.4.0                | minecraft.jar                                                | None                                     |
    | LCHIJA | ivtoolkit                   | 1.3.3-1.12           | minecraft.jar                                                | None                                     |
    | LCHIJA | foamfixcore                 | 7.7.4                | minecraft.jar                                                | None                                     |
    | LCHIJA | obfuscate                   | 0.4.2                | minecraft.jar                                                | None                                     |
    | LCHIJA | tnt_utilities_core          | 1.2.3                | minecraft.jar                                                | None                                     |
    | LCHIJA | forgeendertech              | 1.12.2-4.5.6.0       | ForgeEndertech-1.12.2-4.5.6.0-build.0619.jar                 | None                                     |
    | LCHIJA | adhooks                     | 1.12.2-3.3.1.0       | AdHooks-1.12.2-3.3.1.0-build.0626.jar                        | None                                     |
    | LCHIJA | tombstone                   | 4.6.0                | tombstone-4.6.0-1.12.2.jar                                   | None                                     |
    | LCHIJA | advanced-fishing            | 1.3.3                | Advanced-Fishing-1.12.2-1.3.3.jar                            | None                                     |
    | LCHIJA | aireducer                   | 0.3.0                | AIReducer-1.12.2-0.3.0.jar                                   | None                                     |
    | LCHIJA | alcatrazcore                | 1.0.4                | alcatrazcore-1.0.4.jar                                       | 3c2d6be715971d1ed58a028cdb3fae72987fc934 |
    | LCHIJA | antiqueatlas                | 4.6.3                | antiqueatlas-1.12.2-4.6.3.jar                                | None                                     |
    | LCHIJA | antiqueatlasoverlay         | 1.2                  | antiqueatlas-1.12.2-4.6.3.jar                                | None                                     |
    | LCHIJA | anvilpatch                  | 1.1.1                | anvilpatch-1.1.1.jar                                         | None                                     |
    | LCHIJA | aquaculture                 | 1.6.8                | Aquaculture-1.12.2-1.6.8.jar                                 | None                                     |
    | LCHIJA | astikorcarts                | 1.12.2-0.1.2.8       | astikorcarts-1.12.2-0.1.2.8.jar                              | None                                     |
    | LCHIJA | crafttweaker                | 4.1.20               | CraftTweaker2-1.12-4.1.20.674.jar                            | None                                     |
    | LCHIJA | mtlib                       | 3.0.7                | MTLib-3.0.7.jar                                              | None                                     |
    | LCHIJA | modtweaker                  | 4.0.19               | modtweaker-4.0.20.5.jar                                      | None                                     |
    | LCHIJA | jei                         | 4.16.1.302           | jei_1.12.2-4.16.1.302.jar                                    | None                                     |
    | LCHIJA | quark                       | r1.6-179             | Quark-r1.6-179.jar                                           | None                                     |
    | LCHIJA | autoreglib                  | 1.3-32               | AutoRegLib-1.3-32.jar                                        | None                                     |
    | LCHIJA | base                        | 3.14.0               | base-1.12.2-3.14.0.jar                                       | None                                     |
    | LCHIJA | battletowers                | 1.6.5                | BattleTowers-1.12.2.jar                                      | None                                     |
    | LCHIJA | baubles                     | 1.5.2                | Baubles-1.12-1.5.2.jar                                       | None                                     |
    | LCHIJA | bedbreakbegone              | 1.0.1                | BedBreakBegone-1.0.1.jar                                     | None                                     |
    | LCHIJA | mujmajnkraftsbettersurvival | 1.4.1                | better_survival-1.4.1.jar                                    | None                                     |
    | LCHIJA | bettercaves                 | 1.12.2               | bettercaves-1.12.2-2.0.4.jar                                 | None                                     |
    | LCHIJA | bettermineshafts            | 1.12.2-2.2.1         | BetterMineshaftsForge-1.12.2-2.2.1.jar                       | None                                     |
    | LCHIJA | betternether                | 0.1.8.6              | betternether-0.1.8.6.jar                                     | None                                     |
    | LCHIJA | betterquesting              | 3.5.329              | BetterQuesting-3.5.329.jar                                   | None                                     |
    | LCHIJA | forgelin                    | 1.8.4                | Forgelin-1.8.4.jar                                           | None                                     |
    | LCHIJA | librarianlib                | 4.22                 | librarianlib-1.12.2-4.22.jar                                 | None                                     |
    | LCHIJA | classyhats                  | %VERSION%            | classyhats-1.6.0.jar                                         | None                                     |
    | LCHIJA | levelup2                    | ${version}           | Level Up! 2-1.1.23-1.12.jar                                  | None                                     |
    | LCHIJA | lycanitesmobs               | 2.0.8.5 — MC 1.12.2  | lycanitesmobs-1.12.2-2.0.8.5.jar                             | None                                     |
    | LCHIJA | bettertabs                  | 1.0.2                | BetterTabs-1.0.2.jar                                         | None                                     |
    | LCHIJA | blockoverlayfix             | 1.0.0                | BlockOverlayFix-1.12.2-1.0.0.jar                             | None                                     |
    | LCHIJA | bnbgaminglib                | 2.17.6               | BNBGamingLib-1.12.2-2.17.6.jar                               | None                                     |
    | LCHIJA | bountifulbaubles            | 0.0.1                | Bountiful Baubles-1.12.2-0.1.8.jar                           | None                                     |
    | LCHIJA | bountiful                   | 2.2.3                | Bountiful-1.12.2-2.2.3.jar                                   | None                                     |
    | LCHIJA | reccomplex                  | 1.4.8.2              | RecurrentComplex-1.4.8.2.jar                                 | None                                     |
    | LCHIJA | bq_msi                      | 1.0.7                | BQ_Multiblock_Structure_Integration-1.0.7.jar                | None                                     |
    | LCHIJA | bqtweaker                   | 1.3.3                | BQTweaker-1.3.3.jar                                          | None                                     |
    | LCHIJA | callablehorses              | 1.1.1                | callablehorses-1.12.2-1.1.1.jar                              | None                                     |
    | LCHIJA | carrots                     | 1.0.0b1              | carrotslib-mc1.12.2-1.0.0b1.jar                              | None                                     |
    | LCHIJA | carryon                     | 1.12.3               | carryon-1.12.2-1.12.6.20.jar                                 | fd21553434f4905f2f73ea7838147ac4ea07bd88 |
    | LCHIJA | charm                       | 1.4                  | Charm-1.12.2-1.4.1.jar                                       | None                                     |
    | LCHIJA | chunkanimator               | 1.2                  | ChunkAnimator-MC1.12-1.2.jar                                 | None                                     |
    | LCHIJA | comforts                    | 1.4.1.3              | comforts-1.12.2-1.4.1.3.jar                                  | 2484ef4d131fdc0dca0647aa21b7b944ddb935a1 |
    | LCHIJA | reskillable                 | 1.12.2-1.13.0        | Reskillable-1.12.2-1.13.0.jar                                | None                                     |
    | LCHIJA | compatskills                | 1.12.2-1.17.0        | CompatSkills-1.12.2-1.17.0.jar                               | None                                     |
    | LCHIJA | contenttweaker              | 1.12.2-4.10.0        | ContentTweaker-1.12.2-4.10.0.jar                             | None                                     |
    | LCHIJA | controlling                 | 3.0.10               | Controlling-3.0.10.jar                                       | None                                     |
    | LCHIJA | coralreef                   | 2.0                  | CoralReef-2.5-1.12.2.jar                                     | None                                     |
    | LCHIJA | wearablebackpacks           | 3.1.4                | WearableBackpacks-1.12.2-3.1.4.jar                           | None                                     |
    | LCHIJA | corpsecomplex               | 1.0.12.0             | corpsecomplex-1.12.2-1.0.12.0.jar                            | b33d2c8df492beff56d1bbbc92da49b8ab7345a1 |
    | LCHIJA | craftablehorsearmour        | 1.3                  | CraftableHorseArmour-1.3.0-1.12.jar                          | None                                     |
    | LCHIJA | ctgui                       | 1.0.0                | CraftTweaker2-1.12-4.1.20.674.jar                            | None                                     |
    | LCHIJA | crafttweakerjei             | 2.0.3                | CraftTweaker2-1.12-4.1.20.674.jar                            | None                                     |
    | LCHIJA | creativecore                | 1.10.0               | CreativeCore_v1.10.70_mc1.12.2.jar                           | None                                     |
    | LCHIJA | custommainmenu              | 2.0.9.1              | CustomMainMenu-MC1.12.2-2.0.9.1.jar                          | None                                     |
    | LCHIJA | defiledlands                | 1.4.3                | defiledlands-1.12.2-1.4.3.jar                                | None                                     |
    | LCHIJA | disenchanter                | 1.8                  | disenchanter[1.12]1.8.jar                                    | None                                     |
    | LCHIJA | dldungeonsjbg               | 1.14.10              | DoomlikeDungeons-1.14.11-MC1.12.2.jar                        | None                                     |
    | LCHIJA | orelib                      | 3.6.0.1              | OreLib-1.12.2-3.6.0.1.jar                                    | 7a2128d395ad96ceb9d9030fbd41d035b435753a |
    | LCHIJA | dsurround                   | 3.6.2.1              | DynamicSurroundings-1.12.2-3.6.2.1.jar                       | 7a2128d395ad96ceb9d9030fbd41d035b435753a |
    | LCHIJA | dynamictrees                | 1.12.2-0.9.27        | DynamicTrees-1.12.2-0.9.27.jar                               | None                                     |
    | LCHIJA | dynamictreesdefiledlands    | 1.12.2-1.0.0         | dynamictreesdefiledlands-1.12.2-1.0.0.jar                    | None                                     |
    | LCHIJA | traverse                    | 1.6.0                | Traverse-1.12.2-1.6.0-69.jar                                 | None                                     |
    | LCHIJA | dttraverse                  | 1.12.2-2.1           | DynamicTreesTraverse-1.12.2-2.1.jar                          | None                                     |
    | LCHIJA | elenaidodge                 | 2.1                  | ElenaiDodge-1.12.2-2.1.jar                                   | None                                     |
    | LCHIJA | enchdesc                    | 1.1.20               | EnchantmentDescriptions-1.12.2-1.1.20.jar                    | d476d1b22b218a10d845928d1665d45fce301b27 |
    | LCHIJA | llibrary                    | 1.7.20               | llibrary-1.7.20-1.12.2.jar                                   | b9f30a813bee3b9dd5652c460310cfcd54f6b7ec |
    | LCHIJA | iceandfire                  | 1.7.1                | iceandfire-1.7.1-1.12.2.jar                                  | None                                     |
    | LCHIJA | eyeofdragons                | 0.0.1                | eyeofdragons-0.0.2.jar                                       | None                                     |
    | LCHIJA | familiarfauna               | 1.0.11               | FamiliarFauna-1.12.2-1.0.11.jar                              | None                                     |
    | LCHIJA | fbp                         | 2.4.1                | FancyBlockParticles-1.12.x-2.4.1.jar                         | None                                     |
    | LCHIJA | fantasticlib                | 1.12.2.047           | FantasticLib-1.12.2.047.jar                                  | None                                     |
    | LCHIJA | fishingmadebetter           | 2.2.4                | FishingMadeBetter-1.12.2-2.2.4.jar                           | None                                     |
    | LCHIJA | foamfix                     | 0.10.14-1.12.2       | foamfix-0.10.14-1.12.2.jar                                   | None                                     |
    | LCHIJA | foodexpansion               | 1.3                  | FoodExpansion1.3.3-1.12.2.jar                                | None                                     |
    | LCHIJA | tschipplib                  | 1.1.6                | tschipplib-1.12.2-1.1.7.jar                                  | None                                     |
    | LCHIJA | forgottenitems              | 1.2.1                | forgottenitems-1.12.2-1.3.1.jar                              | None                                     |
    | LCHIJA | friendlyendermite           | 1.0                  | FriendlyEndermite_v1.0.1_mc1.12.2.jar                        | None                                     |
    | LCHIJA | fxcontrol                   | 0.1.14               | fxcontrol-1.12-0.1.15.jar                                    | None                                     |
    | LCHIJA | globalgamerules             | 2.2                  | GlobalGameRules-1.12.2-2.2.7.jar                             | None                                     |
    | LCHIJA | ichunutil                   | 7.2.2                | iChunUtil-1.12.2-7.2.2.jar                                   | 4db5c2bd1b556f252a5b8b54b256d381b2a0a6b8 |
    | LCHIJA | googlyeyes                  | 7.1.1                | GooglyEyes-1.12.2-7.1.1.jar                                  | 4db5c2bd1b556f252a5b8b54b256d381b2a0a6b8 |
    | LCHIJA | grapplemod                  | 1.12.2-v12.2         | grapplemod-1.12.2-v12.2.jar                                  | None                                     |
    | LCHIJA | cgm                         | 0.15.3               | guns-0.15.3-1.12.2.jar                                       | None                                     |
    | LCHIJA | mantle                      | 1.12-1.3.3.55        | Mantle-1.12-1.3.3.55.jar                                     | None                                     |
    | LCHIJA | inspirations                | 1.12.2-0.2.9         | Inspirations-1.12.2-0.2.9.jar                                | None                                     |
    | LCHIJA | inventorytweaks             | 1.64+dev.151.822d839 | InventoryTweaks-1.64+dev.151.jar                             | 55d2cd4f5f0961410bf7b91ef6c6bf00a766dcbe |
    | LCHIJA | iseedragons                 | 1.2                  | ISeeDragons-1.2.jar                                          | None                                     |
    | LCHIJA | loottweaker                 | 0.3.1                | LootTweaker-0.3.1+MC1.12.2.jar                               | None                                     |
    | LCHIJA | lostcities                  | 2.0.22               | lostcities-1.12-2.0.22.jar                                   | None                                     |
    | LCHIJA | reborncore                  | 3.19.5               | RebornCore-1.12.2-3.19.5-universal.jar                       | None                                     |
    | LCHIJA | mainmenuscale               | 1.0                  | MainMenuScale-1.3.2.jar                                      | None                                     |
    | LCHIJA | mcwbridges                  | 1.0.6                | mcw-bridges-1.0.6b-mc1.12.2.jar                              | None                                     |
    | LCHIJA | mobends                     | 1.2.1                | MoBends_1.12.2-1.2.1-19.12.21.jar                            | None                                     |
    | LCHIJA | mousetweaks                 | 2.10.1               | MouseTweaks-2.10.1-mc1.12.2.jar                              | None                                     |
    | LCHIJA | multimine                   | 1.6.2                | MultiMine-1.12.2.jar                                         | None                                     |
    | LCHIJA | neat                        | 1.4-17               | Neat 1.4-17.jar                                              | None                                     |
    | LCHIJA | particleculling             | v1.3                 | particleculling-1.12.2-v1.3.1.jar                            | None                                     |
    | LCHIJA | pigstep                     | 1.12                 | pigstep-1.12.jar                                             | None                                     |
    | LCHIJA | placebo                     | 1.6.0                | Placebo-1.12.2-1.6.0.jar                                     | None                                     |
    | LCHIJA | potioncore                  | 1.9_for_1.12.2       | PotionCore-1.9_for_1.12.2.jar                                | None                                     |
    | LCHIJA | potionfingers               | r1.0-8               | PotionFingers-r1.0-8.jar                                     | None                                     |
    | LCHIJA | qualitytools                | 1.0.7_for_1.12.2     | QualityTools-1.0.7_for_1.12.2.jar                            | None                                     |
    | LCHIJA | resourceloader              | 1.5.3                | ResourceLoader-MC1.12.1-1.5.3.jar                            | d72e0dd57935b3e9476212aea0c0df352dd76291 |
    | LCHIJA | roguelike                   | 2.4.1                | RoguelikeDungeonsFnarEdition-1.12.2-2.4.1.jar                | None                                     |
    | LCHIJA | ruins                       | 17.2                 | Ruins-1.12.2.jar                                             | None                                     |
    | LCHIJA | rustic                      | 1.1.7                | rustic-1.1.7.jar                                             | None                                     |
    | LCHIJA | silentlib                   | 3.0.13               | SilentLib-1.12.2-3.0.14+168.jar                              | None                                     |
    | LCHIJA | scalinghealth               | 1.3.37               | ScalingHealth-1.12.2-1.3.42+147.jar                          | None                                     |
    | LCHIJA | setbonus                    | 1.12.2.020           | SetBonus-1.12.2.020.jar                                      | None                                     |
    | LCHIJA | somanyenchantments          | 0.5.5                | SoManyEnchantments-0.5.5.jar                                 | None                                     |
    | LCHIJA | soundfilters                | 0.12.1_for_1.12      | SoundFilters-0.12.1_for_1.12.jar                             | None                                     |
    | LCHIJA | spartandefiled              | 1.0                  | spartandefiled-1.0.jar                                       | None                                     |
    | LCHIJA | xat                         | 0.31.4               | Trinkets and Baubles-0.31.4.jar                              | None                                     |
    | LCHIJA | spartanweaponry             | 1.4.1                | SpartanWeaponry-1.12.2-1.4.1.jar                             | None                                     |
    | LCHIJA | spartanfire                 | 0.05                 | spartanfire-0.05.jar                                         | None                                     |
    | LCHIJA | spartanhudbaubles           | 1.0.0 Indev 1        | SpartanHUDBaubles-1.12.2-1.0.0.jar                           | None                                     |
    | LCHIJA | spartanshields              | 1.5.5                | SpartanShields-1.12.2-1.5.5.jar                              | None                                     |
    | LCHIJA | spawnercontrol              | 1.6.3b               | SpawnerControl-1.6.3b.jar                                    | None                                     |
    | LCHIJA | srparasites                 | 1.9.10               | SRParasites-1.12.2v1.9.10.jar                                | None                                     |
    | LCHIJA | bq_standard                 | 3.4.173              | StandardExpansion-3.4.173.jar                                | None                                     |
    | LCHIJA | switchbow                   | 1.6.8                | switchbow-1.6.8.jar                                          | None                                     |
    | LCHIJA | tickprofiler                | 1.12-0.0.10          | TickProfiler-1.12-0.0.10.jar                                 | None                                     |
    | LCHIJA | tnt_utilities               | 1.2.3                | tnt_utilities-mc1.12-1.2.3.jar                               | None                                     |
    | LCHIJA | toastcontrol                | 1.8.1                | Toast Control-1.12.2-1.8.1.jar                               | None                                     |
    | LCHIJA | toolbelt                    | 1.9.14               | ToolBelt-1.12.2-1.9.14.jar                                   | None                                     |
    | LCHIJA | trashslot                   | 8.4.10               | TrashSlot_1.12.2-8.4.10.jar                                  | None                                     |
    | LCHIJA | trumpetskeleton             | 1.12-1.0.2.1         | trumpetskeleton-1.12-1.0.2.1.jar                             | None                                     |
    | LCHIJA | variedcommodities           | 1.12.2               | VariedCommodities_1.12.2-(13Jan22).jar                       | None                                     |
    | LCHIJA | waystones                   | 4.1.0                | Waystones_1.12.2-4.1.0.jar                                   | None                                     |
    | LCHIJA | wolfarmor                   | 3.8.1+alpha.1        | WolfArmorAndStorage-3.8.1+1.12.2.alpha.1-SNAPSHOT-signed.jar | e94e38a605842477f3ec218e6fcf781f6b3f7f89 |
    | LCHIJA | xpfromharvest               | 1.2.0                | XPFromHarvest-1.12.2-1.2.0.jar                               | None                                     |
    | LCHIJA | xpbook                      | v1.1.6               | xptome-1.12.2-v1.1.6.jar                                     | None                                     |
    | LCHIJA | yungslaw                    | 1.12.2               | YungsLaw-1.12.2-1.0.4.jar                                    | None                                     |
    | LCHIJA | dshuds                      | 3.6.0.0              | DynamicSurroundingsHuds-1.12.2-3.6.0.0.jar                   | 7a2128d395ad96ceb9d9030fbd41d035b435753a |
    | LCHIJA | phosphor-lighting           | 1.12.2-0.2.6         | phosphor-1.12.2-0.2.6+build50-universal.jar                  | f0387d288626cc2d937daa504e74af570c52a2f1 |
    | LCHIJA | librarianliblate            | 4.22                 | librarianlib-1.12.2-4.22.jar                                 | None                                     |

    Loaded coremods (and transformers): 
LibLoader (# LibLoader.jar)
  
LibrarianLib Plugin (librarianlib-1.12.2-4.22.jar)
  com.teamwizardry.librarianlib.asm.LibLibTransformer
WolfArmorCore (WolfArmorAndStorage-3.8.1+1.12.2.alpha.1-SNAPSHOT-signed.jar)
  
BlockOverlayFixPlugin (BlockOverlayFix-1.12.2-1.0.0.jar)
  
ParticleCullingLoadingPlugin (particleculling-1.12.2-v1.3.1.jar)
  
ItemPatchingLoader (ItemPhysic_Full_1.4.37_mc1.12.2.jar)
  com.creativemd.itemphysic.ItemTransformer
CoreMod (TickProfiler-1.12-0.0.10.jar)
  
TransformLoader (DynamicSurroundings-1.12.2-3.6.2.1.jar)
  
Quark Plugin (Quark-r1.6-179.jar)
  vazkii.quark.base.asm.ClassTransformer
ObfuscatePlugin (obfuscate-0.4.2-1.12.2.jar)
  com.mrcrayfish.obfuscate.asm.ObfuscateTransformer
EntityCullingPlugin (EntityCulling-1.12.2-4.2.5.jar)
  meldexun.entityculling.asm.EntityCullingClassTransformer
PhosphorFMLLoadingPlugin (phosphor-1.12.2-0.2.6+build50-universal.jar)
  
MixinLoader (BedBreakBegone-1.0.1.jar)
  
MMFMLCorePlugin (MultiMine-1.12.2.jar)
  atomicstryker.multimine.common.fmlmagic.MMTransformer
LoadingPlugin (ResourceLoader-MC1.12.1-1.5.3.jar)
  lumien.resourceloader.asm.ClassTransformer
IvToolkit (IvToolkit-1.3.3-1.12.jar)
  
LoadingPlugin (Reskillable-1.12.2-1.13.0.jar)
  codersafterdark.reskillable.base.asm.ClassTransformer
LoadingPlugin (ChunkAnimator-MC1.12-1.2.jar)
  lumien.chunkanimator.asm.ClassTransformer
Inventory Tweaks Coremod (InventoryTweaks-1.64+dev.151.jar)
  invtweaks.forge.asm.ContainerTransformer
RBLoadingPlugin (RealBench-1.12.2-1.3.3.jar)
  pw.prok.realbench.asm.RBTransformer
SoManyEnchantments ASM (SoManyEnchantments-0.5.5.jar)
  com.Shultrea.Rin.Transformer.SMEASM
ForgelinPlugin (Forgelin-1.8.4.jar)
  
CreativePatchingLoader (CreativeCore_v1.10.70_mc1.12.2.jar)
  
Do not report to Forge! (If you haven’t disabled the FoamFix coremod, try disabling it in the config! Note that this bit of text will still appear.) (foamfix-0.10.14-1.12.2.jar)
  pl.asie.foamfix.coremod.FoamFixTransformer
Born in a Barn (Born In A Barn V1.8-1.12-1.1.jar)
  com.chocohead.biab.BornInABarn
CharmLoadingPlugin (Charm-1.12.2-1.4.1.jar)
  svenhjol.charm.base.CharmClassTransformer
llibrary (llibrary-core-1.0.11-1.12.2.jar)
  net.ilexiconn.llibrary.server.core.plugin.LLibraryTransformer
  net.ilexiconn.llibrary.server.core.patcher.LLibraryRuntimePatcher
CorePlugin (ForgeEndertech-1.12.2-4.5.6.0-build.0619.jar)
  
SpartanWeaponry-MixinLoader (SpartanWeaponry-1.12.2-1.4.1.jar)
  
TNTUtilities Core (tnt_utilities-mc1.12-1.2.3.jar)
  ljfa.tntutils.asm.ExplosionTransformer
    GL info: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.
    Pulsar/inspirations loaded Pulses: 
        — InspirationsShared (Enabled/Forced)
        — InspirationsBuilding (Enabled/Not Forced)
        — InspirationsUtility (Enabled/Not Forced)
        — InspirationsTools (Enabled/Not Forced)
        — InspirationsRecipes (Enabled/Not Forced)
        — InspirationsTweaks (Enabled/Not Forced)
        — InspirationsShared (Enabled/Forced)

    RebornCore: 
        Plugin Engine: 0
        RebornCore Version: 3.19.5
        Runtime Debofucsation 1
        Invalid fingerprint detected for RebornCore!
        RenderEngine: 1
    Profiler Position: N/A (disabled)
    Player Count: 1 / 8; [EntityPlayerMP[‘Dr_Freakman’/1190, l=’New World’, x=56.21, y=76.73, z=287.08]]
    Type: Integrated Server (map_client.txt)
    Is Modded: Definitely; Client brand changed to ‘fml,forge’
    OptiFine Version: OptiFine_1.12.2_HD_U_G5
    OptiFine Build: 20210124-142939
    Render Distance Chunks: 10
    Mipmaps: 4
    Anisotropic Filtering: 1
    Antialiasing: 0
    Multitexture: false
    Shaders: null
    OpenGlVersion: 4.6.0 NVIDIA 528.49
    OpenGlRenderer: NVIDIA GeForce RTX 3060/PCIe/SSE2
    OpenGlVendor: NVIDIA Corporation
    CpuCount: 16

1) Скачайте последнюю версию лаунчера с главной страницы TLauncher

2) Нужно проверить, действительно ли у вас данная версия драйверов видеокарты. Нажимаем «Пуск» пишем в поиск «dxdiag. exe» и запускаем данную программу. В ней выбираем вкладку «Экран» (Монитор) и если находим такую надпись возле «Версии:» . 3.7849 (что и означает версию 378.49), то у вас проблема в драйверах! Переходите к следующему пункту.

3.1) Установите более новую версию драйвера, например 378.66, через их программу Geforce Experience.

Или второй вариант:

3.2) Так же, можно установить чуть более старую версию драйверов видеокарты, например 376.33. Ссылка для скачивания: https://www. nv >

На данной странице, вам придётся выбрать вашу модель видеокарты и версию операционной системы, нажать «Поиск» и скачать драйвера.

Если Ваша проблема остаётся актуальной, запросите поддержку у TLauncher:

Details

> [16:03:10] [Server thread/INFO]: Preparing spawn area: 100%

> [16:03:10] [Server thread/INFO]: Time elapsed: 22561 ms

> [16:03:13] [Server thread/INFO]: Changing view distance to 6, from 10

> [16:03:13] [Server thread/WARN]: Can’t keep up! Is the server overloaded? Running 2827ms or 56 ticks behind

> [16:03:15] [Server thread/INFO]: ****[local:E:e26e0339] logged in with entity id 401 at (34.5, 76.0, 22.5)

> [16:03:15] [Server thread/INFO]: ****joined the game

> [16:03:16] [Server thread/INFO]: Saving and pausing game.

> [16:03:16] [Server thread/INFO]: Saving chunks for level ‘New World’/overworld

> [16:03:16] [Client thread/INFO]: Loaded 0 advancements

[VersionManager] Refreshing versions locally.

[VersionManager] Versions has been refreshed (17 ms)

[Launcher] Launcher exited.

Tried almost everything, uinstalled java and installed few different versions, checked my drivers and all of them are the newest, tried something from internet videos what i saw. Does someone know?

Самая популярная песочница собрала внушительную армию фанатов, которая запускает миллионы игровых сессий ежедневно. Естественно, при таких масштабах нельзя обойтись без сбоев. Одной из популярных проблем является ошибка “Minecraft closed with exit code 1” или “TLauncher: произошла непредвиденная ошибка”, которая появляется при запуске TLauncher Forge любой версии. Сегодня мы постараемся рассказать о всех возможных причинах данного бага, а также покажем как устранить большинство из них.

Ошибка “Minecraft closed with exit code 1”

Причины ошибки в Майнкрафт

Сама ошибка указывает лишь на то, что произошел сбой. Конкретную информацию можно увидеть в информационном окне, где будет указанна сама причина. Источники проблемы могут быть разными, отчего пользователи получают различные уведомления:

Непредвиденная ошибка в TLauncher

В основном проблема появляется после смены версии ОС, применении системных обновлений или переходе на новую версию игрового лаунчера. Также стоит упомянуть про влияние модов и расширений.

Как исправить Minecraft closed with exit code 1

Мы собрали все отмеченные игроками решения, а описание сделали начиная с самых простых. Далее действуйте по-пунктам, каждый раз проверяя работоспособность игры.

Описанная ошибка в Майнкрафт является очень распространенной. Поочередно проверьте все пункты, которые обязательно должны помочь в устранении бага.

Про смартфон — цены, обзоры и реальные отзывы покупателей

1) Скачайте последнюю версию лаунчера с главной страницы TLauncher

2) Нужно проверить, действительно ли у вас данная версия драйверов видеокарты. Нажимаем «Пуск» пишем в поиск «dxdiag. exe» и запускаем данную программу. В ней выбираем вкладку «Экран» (Монитор) и если находим такую надпись возле «Версии:» . 3.7849 (что и означает версию 378.49), то у вас проблема в драйверах! Переходите к следующему пункту.

3.1) Установите более новую версию драйвера, например 378.66, через их программу Geforce Experience.

Или второй вариант:

3.2) Так же, можно установить чуть более старую версию драйверов видеокарты, например 376.33. Ссылка для скачивания: https://www. nv >

На данной странице, вам придётся выбрать вашу модель видеокарты и версию операционной системы, нажать «Поиск» и скачать драйвера.

Если Ваша проблема остаётся актуальной, запросите поддержку у TLauncher:

Некоторые пользователи операционной системы Windows при запуске какого-либо приложения с правами администратора могут столкнуться с ошибкой «Ошибка файловой системы 1073741819». Довольно часто это происходит при переходе и соответствующем обновлении с Windows 7 на Windows 10, но бывают случаи, что с данной проблемой встречаются пользователями Windows 7 и Windows 8. В этой статье я расскажу, в чём суть ошибки 1073741819, каковы её причины, и как исправить ошибку файловой системы на ваших ПК.

Скриншот — Error code: — 1073741819

Причины ошибки файловой системы 1073741819

Наиболее часто с данной ошибкой встречаются пользователи ОС Виндовс 10, после перехода на неё с Виндовс 7. Возникновение данной ошибки не только мешает запуску программ с административными правами, но и просто не даёт установить в системе какой-либо новый софт. Каждый раз, когда пользователь пытается выполнить подобное, UAC (система контроля учётных записей пользователя) выдаёт ошибку 1073741819, по сути блокируя административную активность в операционной системе.

Основной причиной, как не странно, обычно является звуковая схема, которая перешла с вашей Windows 7 на Windows 10 при обновлении из одной ОС в другую. По определённым причина Виндовс 10 не способна проигрывать некоторые системные звуки звуковой схемы Виндовс 7, и, как результат, UAC блокирует административный доступ к системному функционалу.

Доступ заблокирован

Как исправить ошибку файловой системы 1073741819

В соответствии с вышеописанным, пресловутая ошибка файловой системы 1073741819 исправляется следующими способами:

Способ 1. Измените звуковую схему на «по умолчанию»

Для этого перейдите в «Панель Управления» – «Звуки», найдите там параметр «Звуковую схема» и установите на «По умолчанию» (или «Windows по умолчанию»). Рассматриваемая мной ошибка после этого должна пропасть.

Выбираем звуковую схему «По умолчанию»

Рекомендую также отключить уведомления UAC, для чего откройте стартовое меню, найдите и кликните на «Контроль учётных записей пользователя» (User Access Control), нажмите на «Изменение параметров контроля учётной записи» (Change User Access Control»), и установите ползунок в самое нижнее значение.

Способ 2. Измените рабочую тему ОС Windows

Способ 3. Отключите UAC

Выбираем «Никогда не уведомлять»

Способ 4. Создайте другой пользовательский аккаунт

Ещё одним, и довольно эффективным способом решения проблемы 1073741819, будет создание новой учётной записи и работа с ней. Обычно в новой «учётке» рассматриваемая мной проблема пропадает.

Способ 5. Измените параметры питания

Способ 6. Удалите AVAST

В довольно редких случаях причиной рассматриваемой проблемы выступал функционал антивируса AVAST, установленного на компьютере пользователя. Для избавления от ошибки 1073741819 рекомендуется полностью удалить данный антивирус с вашего компьютера, заменив его более стабильной альтернативой.

Заключение

Основным решением проблемы «Ошибка файловой системы 1073741819» является схема звуковой схемы, использующейся по умолчанию в ОС Windows. Если данный вариант не помог, попробуйте другие, перечисленные мной, советы, они помогут устранить ошибку 1073741819 на ваших ПК.

We are currently investigating the root cause of this issue. In order to solve this issue, some known workarounds include reinstalling the JVM or updating your graphics drivers, this error may also be caused by having «D3Dgear» installed.

How to fix this

Due to the quite vagueness of the error, we are unsure of the exact cause. Please try the following and attempt to see it they solve your case:

Reinstalling Java

Minecraft, runs on a platform called Java. Java comes in many shapes, and forms, which may make it confusing exactly which version of it you should have installed, which is what this should hopefully explain.

First, we want to find out our OS’s processor architecture.

If you are on Windows — Press your Windows + R keys, to bring up a run dialogue, in it, type in: «cmd«, and hit enter. This will bring up a command prompt window. In the window, type in: echo %processor_architecture% then hit enter.
If the output was amd64, you have a 64-bit OS. If the output was x86, you have a 32-bit OS.

If you are on Mac OSX — You have a 64-bit OS, all good!

Now that we have that, look at the diagram below, and download the proper Java version for your OS and processor architecture. If you are prompted that said version of Java is already installed, please uninstall your current version of Java and redo this step.

# 32 bit OS 64 bit OS
Windows jre-7u25-windows-i586.exe jre-7u25-windows-x64.exe
Mac OSX jre-7u25-macosx-x64.dmg
Linux jre-7u25-linux-i586.rpm jre-7u25-linux-x64.rpm

Once you have installed the proper Java version, you should give the game a go!

Источники:

https://window-10.ru/launcher-minecraft-closed-with-exit-code/

https://pro-smartfon. ru/minecraft-closed-with-exit-code-1073741819/

На чтение 2 мин Просмотров 523

Содержание

  1. Details
  2. Description
  3. Setup closed with exit code 0x84c40013

Ошибка может возникать из-за обновления драйверов видеокарты NVIDIA до версии 378.49 . Симптомами являются: ошибка при запуске Майнкрафта с кодом -1073740791 или даже лаунчера.

1) Скачайте последнюю версию лаунчера с главной страницы TLauncher

2) Нужно проверить, действительно ли у вас данная версия драйверов видеокарты. Нажимаем «Пуск» пишем в поиск «dxdiag.exe» и запускаем данную программу. В ней выбираем вкладку «Экран» (Монитор) и если находим такую надпись возле «Версии:» . 3.7849 (что и означает версию 378.49), то у вас проблема в драйверах! Переходите к следующему пункту.

3.1) Установите более новую версию драйвера, например 378.66, через их программу Geforce Experience.

Или второй вариант:

3.2) Так же, можно установить чуть более старую версию драйверов видеокарты, например 376.33. Ссылка для скачивания: http://www.nv >

На данной странице, вам придётся выбрать вашу модель видеокарты и версию операционной системы, нажать «Поиск» и скачать драйвера.

Если Ваша проблема остаётся актуальной, запросите поддержку у TLauncher:

Details

Description

Put the summary of the bug you’re having here

What I expected to happen was.
for me to start a new survival world and have fun

What actually happened was.
after playing for 2 mins it minecraft stopped responding and a little box came up and said «java tm platform se binary has stopped working».
this is what the console said

Game ended with bad state (exit code -1073740940)
Ignoring visibility rule and showing launcher due to a game crash
Deleting C:UsersUserAppDataRoaming.minecraftversions1.6.41.6.4-natives-205206925374666
Couldn’t delete C:UsersUserAppDataRoaming.minecraftversions1.6.41.6.4-natives-205206925374666 – scheduling for deletion upon exit

Steps to Reproduce:
1. login to my minecraft launcher
2. open a world
3. play minecraft for about 1-2 min and it crashes

Setup closed with exit code 0x84c40013

Автор Sanewell задал вопрос в разделе Прочие

Что делать? И что это за ошибка? Minecraft closed with exit code: -1073740791 и получил лучший ответ

Ответ от
Можно в ютубе посмотреть

ЧТО ЗА ОШИБКА [L] Launcher exited. [L] Minecraft closed with exit code: 1
Вы закрыли Launcher игры или саму игру но не через кнопку выйти

Nikis0715

0 / 0 / 0

Регистрация: 06.10.2020

Сообщений: 26

1

30.01.2021, 17:55. Показов 7706. Ответов 17

Метки с++ (Все метки)


Здравствуйте, пишу калькулятор двоичных чисел. Почему-то часто вылезает ошибка -1073740940 и программа не считает. В чем может быть дело?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
#include <iostream>
#include <string>
 
using namespace std;
 
class Binary {
public:
    int mem;
    int* bin;
    int dec;
 
    Binary();
    Binary(int dec);
    Binary(int dec, int mem);
    Binary(int* bin, int mem);
    Binary(const Binary& num2);
    ~Binary() {
        delete[]bin;
        bin = nullptr;
    }
    friend Binary operator+(Binary num1, Binary num2);
    friend Binary operator-(Binary num1, Binary num2);
    friend Binary operator*(Binary num1, Binary num2);
    friend void dectobin(int dec, int* bin, int mem);
    friend int bintodec(int* bin, int mem);
    int getmem();
    int getdec();
    int* getbin();
    void printbin();
    void printdec();
};
 
void dectobin(int dec, int* bin, int mem) {
    int dec1 = dec;
    for (int i = 0; i < mem; i++) {
 
        bin[i] = dec1 % 2;
        dec1 = (dec1 - bin[i]) / 2;
    }
}
 
int bintodec(int* bin, int mem) {
    int dec = 0;
    for (int i = 0; i < mem; i++) {
        dec = dec + bin[i] * (int) pow(2, i);
    }
    return dec;
}
 
Binary::Binary() {
    mem = 8;
    dec = 0;
    bin = new int[mem];
    dectobin(dec, bin, mem);
}
 
Binary::Binary(int d) {
    dec = d;
    mem = 8;
    if (d >= 0 && d < pow(2, 8)) mem = 8;
    if (d >= pow(2, 8) + 1 && d < pow(2, 16)) mem = 16;
    if (d >= pow(2, 16) + 1 && d < pow(2, 32)) mem = 32;
    bin = new int[mem];
    dectobin(dec, bin, mem);
}
 
Binary::Binary(int d, int m) {
    dec = d;
    mem = m;
    bin = new int[mem];
    dectobin(dec, bin, mem);
}
 
Binary::Binary(int* b, int m) {
    mem = m;
    bin = new int[mem];
    for (int i = 0; i < mem; i++) {
        bin[i] = b[i];
    }
    dec = bintodec(bin, mem);
}
 
Binary::Binary(const Binary& num2) {
    mem = num2.mem;
    dec = num2.dec;
    bin = new int[mem];
    for (int i = 0; i < mem; i++) {
        bin[i] = num2.bin[i];
    }
}
 
int Binary::getmem() {
    return this->mem;
}
 
int* Binary::getbin() {
    int* bin1 = new int[mem];
    for (int i = 0; i < mem; i++) {
        bin1[i] = bin[i];
    }
    return bin1;
}
 
int Binary::getdec() {
    return this->dec;
}
 
void Binary::printbin() {
    for (int i = mem - 1; i >= 0; i--) {
        cout << bin[i];
    }
}
 
void Binary::printdec() {
    cout << dec;
}
 
Binary operator+(Binary num1, Binary num2) {
    int* bin1 = num1.getbin();
    int* bin2 = num2.getbin();
    int mem3 = 8;
    if (num1.getmem() > num2.getmem()) {
        mem3 = num1.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3; i++) {
            bin3[i] = 0;
        }
        for (int i = 0; i < mem3 - 8; i++) {
            bin3[i] += bin1[i] + bin2[i];
            if (bin3[i] > 1) {
                bin3[i] -= 2;
                bin3[i + 1] += 1;
            }
        }
        for (int i = mem3 - 8; i < mem3; i++) {
            bin3[i] += bin1[i];
            if (i == mem3 - 1 && bin3[i] == 2) {
                cout << endl << "Ошибка. Недостаточно выделенной памяти в размере " << mem3 << " бит" << endl;
                return Binary(0);
            }
            if (bin3[i] > 1) {
                bin3[i] -= 2;
                bin3[i + 1] += 1;
            }
        }
        return Binary(bin3, mem3);
    }
 
    if (num1.getmem() == num2.getmem()) {
        mem3 = num1.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3; i++) {
            bin3[i] = 0;
        }
        for (int i = 0; i < mem3; i++) {
            bin3[i] += bin1[i] + bin2[i];
            if (i == mem3 - 1 && bin1[i] + bin2[i] > 1) {
                cout << endl << "Ошибка. Недостаточно выделенной памяти в размере " << mem3 << " бит" << endl;
                return Binary(0);
            }
            if (bin3[i] > 1) {
                bin3[i] -= 2;
                if (i < mem3 - 1) bin3[i + 1] += 1;
            }
 
        }
        return Binary(bin3, mem3);
    }
 
    if (num1.getmem() < num2.getmem()) {
        mem3 = num2.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3; i++) {
            bin3[i] = 0;
        }
        for (int i = 0; i < mem3 - 8; i++) {
            bin3[i] += bin1[i] + bin2[i];
            if (bin3[i] > 1) {
                bin3[i] -= 2;
                bin3[i + 1] += 1;
            }
        }
        for (int i = mem3 - 8; i < mem3; i++) {
            if (i == mem3 - 1 && bin3[i] == 2) {
                cout << endl << "Ошибка. Недостаточно выделенной памяти в размере " << mem3 << " бит" << endl;
                return Binary(0);
            }
            if (bin3[i] > 1) {
                bin3[i] -= 2;
                bin3[i + 1] += 1;
            }
 
        }
        return Binary(bin3, mem3);
    }
    return Binary(0);
}
 
Binary operator-(Binary num1, Binary num2) {
    int* bin1 = num1.getbin();
    int* bin2 = num2.getbin();
 
    int mem3 = 8;
    if (num1.getmem() > num2.getmem()) {
        mem3 = num1.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3 - 8; i++) {
            if (bin1[i] < bin2[i]) {
                bin1[i + 1] -= 1;
                bin1[i] += 2;
                bin3[i] = bin1[i] - bin2[i];
            }
            else bin3[i] = bin1[i] - bin2[i];
        }
        for (int i = mem3 - 8; i < mem3; i++) {
            bin3[i] = bin1[i];
        }
 
        return Binary(bin3, mem3);
    }
 
    if (num1.getmem() < num2.getmem()) {
        mem3 = num1.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3 - 8; i++) {
            if (bin2[i] < bin1[i]) {
                bin2[i + 1] -= 1;
                bin2[i] += 2;
                bin3[i] = bin2[i] - bin1[i];
            }
            else bin3[i] = bin2[i] - bin1[i];
        }
        for (int i = mem3 - 8; i < mem3; i++) {
            bin3[i] = bin2[i];
        }
 
        return Binary(bin3, mem3);
    }
 
    if (num1.getmem() == num2.getmem()) {
        mem3 = num1.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3; i++) {
            if (num1.getdec() > num2.getdec()) {
                if (bin1[i] < bin2[i]) {
                    bin1[i + 1] -= 1;
                    bin1[i] += 2;
                    bin3[i] = bin1[i] - bin2[i];
                }
                else bin3[i] = bin1[i] - bin2[i];
            }
            if (num1.getdec() <= num2.getdec()) {
                if (bin2[i] < bin1[i]) {
                    bin2[i + 1] -= 1;
                    bin2[i] += 2;
                    bin3[i] = bin2[i] - bin1[i];
                }
                else bin3[i] = bin2[i] - bin1[i];
            }
        }
 
        return Binary(bin3, mem3);
    }
    return Binary(0);
}
 
Binary operator*(Binary num1, Binary num2) {
    int* bin1 = num1.getbin();
    int* bin2 = num2.getbin();
    int mem3 = 8;
    int mem1 = num1.getmem();
    int mem2 = num2.getmem();
    int d1 = num1.getdec();
    int d2 = num2.getdec();
    int d = d1 * d2;
    if (d >= 0 && d < pow(2, 8)) mem3 = 8;
    if (d >= pow(2, 8) + 1 && d < pow(2, 16)) mem3 = 16;
    if (d >= pow(2, 16) + 1 && d < pow(2, 32)) mem3 = 32;
    if (d > pow(2, 32)) {
        cout << "Максимального размера выделяемой памяти недостаточно для получения ответа. Операция прервана";
        return Binary(0);
    }
    int* bin3 = new int[mem3];
    for (int i = 0; i < mem3; i++) {
        bin3[i] = 0;
    }
 
    for (int i = 0; i < mem1; i++) {
        for (int j = 0; j < mem2; j++) {
            bin3[i + j] += bin1[i] * bin2[j];
            if (bin3[i + j] > 1) {
                bin3[i + j] -= 2;
                bin3[i + j + 1] += 1;
            }
        }
    }
 
    return Binary(bin3, mem3);
}
 
int main() {
    setlocale(LC_ALL, "Rus");
    int otv(1);
    //while (otv == 1) {
        int d1(0), d2(0), count(0);
        char zn1('+'), zn2('+'), zn3('+'); //переменные для хранения знаков. Знак 2 определяем действие между числами. Знаки 1 и 3 - знаки чисел
        string v;//строка, для считывания выражения
        string D1, D2; //строки, в которые запишем числа
        cout << "Введите выражение" << endl;
        getline(cin, v); //считываем введенное выражение в строку
        int length = v.length(); // определяем длину строки
        /////////////////////////////////////////////
        //1 ЭТАП: ОПРЕДЕЛЕНИЕ ЗНАКОВ В ВЫРАЖЕНИИ//
        count = 0; //зануляем счетчик кол-ва знаков в строке
        for (int i = 0; i < length; i++) {
            if (v[i] == '-' || v[i] == '+' || v[i] == '*') count++; //узнаем кол-во знаков в строке
        }
 
        int* pointer = new int[3];//в этот массив сохраним номера позиций знаков, чтобы разграничить и считать числа
        for (int i = 0; i < 3; i++) {
            pointer[i] = 0;
        }
        if (count == 1) { // если в строке только 1 знак
            zn1 = '+';
            zn3 = '+'; // то 1 и 3 знак - это +
            for (int i = 0; i < length; i++) {
                if (v[i] == '-' || v[i] == '+' || v[i] == '*') {
                    zn2 = v[i]; //определяем знак 2
                    pointer[0] = i;
                }
            }
            D1.assign(v, 0, pointer[0]);//сохраняем первое число в строку
            d1 = atoi(D1.c_str());//переводим строку в число
            D2.assign(v, pointer[0] + 1, length - pointer[0]);//по аналогии
            d2 = atoi(D2.c_str());
        }
 
 
        if (count == 2) { //если в строке  2 знака, то
            if (v[0] == '-') {// если первый знак -, то далее ищем второй знак
                zn1 = '-';
                for (int i = 0; i < length; i++) {
                    if (v[i] == '-' || v[i] == '+' || v[i] == '*') {
                        zn2 = v[i];
                        pointer[0] = i;
                    }
                }
                zn3 = '+';
                D1.assign(v, 1, pointer[0] - 1);//сохраняем первое число в строку
                d1 = atoi(D1.c_str());//переводим строку в число
                D2.assign(v, pointer[0] + 1, length - pointer[0]);//по аналогии
                d2 = atoi(D2.c_str());
            }
            else { //иначе 
                count = 0; //зануляем счетчик кол-ва знаков
                for (int i = 0; i < length; i++) {
                    if (v[i] == '-' || v[i] == '+' || v[i] == '*') {
                        if (count == 1) {
                            zn3 = v[i];
                            count++;
                            pointer[1] = i;
                        }
                        if (count == 0) {
                            zn2 = v[i];
                            count++;
                            pointer[0] = i;
                        }
                    }
                }
                D1.assign(v, 0, pointer[0]);//сохраняем первое число в строку
                d1 = atoi(D1.c_str());//переводим строку в число
                D2.assign(v, pointer[1] + 1, length - pointer[1]);//по аналогии
                d2 = atoi(D2.c_str());
            }
        }
 
 
        if (count == 3) {//если в строке 3 знака, то сохраняем знаки поочередно 
            for (int i = 0; i < length; i++) {
                if (v[i] == '-' || v[i] == '+' || v[i] == '*') {
                    if (count == 2) {
                        zn3 = v[i];
                        count++;
                        pointer[2] = i;
                    }
                    if (count == 1) {
                        zn2 = v[i];
                        count++;
                        pointer[1] = i;
                    }
                    if (count == 0) {
                        zn1 = v[i];
                        count++;
                        pointer[0] = i;
                    }
                }
            }
            D1.assign(v, pointer[0] + 1, pointer[1] - pointer[0] - 1);//сохраняем первое число в строку
            d1 = atoi(D1.c_str());//переводим строку в число
            D2.assign(v, pointer[2] + 1, length - pointer[2]);//по аналогии
            d2 = atoi(D2.c_str());
        }
        /////////////////////
        //2 ЭТАП. ВЫЧИСЛЕНИЕ ВЫРАЖЕНИЯ//
        if (count == 1) {
            Binary bin1(d1), bin2(d2);
            Binary bin3(bin1 + bin2), bin4(bin1 - bin2), bin5(bin1 * bin2), bin6(bin2 - bin1);
            switch (zn2)
            {
            case '+':
                bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = "; bin3.printbin(); cout << endl;
                bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = "; bin3.printdec(); cout << endl;
                break;
            case '-':
                if (bin1.getdec() < bin2.getdec()) {
                    bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; bin6.printbin(); cout << endl;
                    bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; bin6.printdec(); cout << endl;
                    break;
                }
                bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = "; bin4.printbin(); cout << endl;
                bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = "; bin4.printdec(); cout << endl;
                break;
            case '*':
                bin1.printbin(); cout << " * "; bin2.printbin(); cout << " = "; bin5.printbin(); cout << endl;
                bin1.printdec(); cout << " * "; bin2.printdec(); cout << " = "; bin5.printdec(); cout << endl;
                break;
            default: cout << "Введен неверный знак. Попробуйте еще раз" << endl;
                break;
            }
        }
        else {
            Binary bin1(d1), bin2(d2);
            Binary bin3(bin1 + bin2), bin4(bin1 - bin2), bin5(bin1 * bin2), bin6(bin2 - bin1);
            switch (zn2)
            {
            case '+':
                if (zn1 == '+' && zn3 == '+') {
                    bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = "; bin3.printbin(); cout << endl;
                    bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = "; bin3.printdec(); cout << endl;
                    break;
                }
                if (zn1 == '-' && zn3 == '+') {
                    if (bin1.getdec() <= bin2.getdec()) {
                        cout << "-"; bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = "; bin6.printbin(); cout << endl;
                        cout << "-"; bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = "; bin6.printdec(); cout << endl;
                        break;
                    }
                    else {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; bin4.printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; bin4.printdec(); cout << endl;
                        break;
                    }
                }
                if (zn1 == '+' && zn3 == '-') {
                    if (bin1.getdec() < bin2.getdec()) {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; bin6.printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; bin6.printdec(); cout << endl;
                        break;
                    }
                    else {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; bin4.printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; bin4.printdec(); cout << endl;
                        break;
                    }
                }
            case '-':
                if (zn1 == '+' && zn3 == '+') {
                    if (bin1.getdec() < bin2.getdec()) {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; bin6.printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; bin6.printdec(); cout << endl;
                        break;
                    }
                    else {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; bin4.printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; bin4.printdec(); cout << endl;
                        break;
                    }
                }
                if (zn1 == '-' && zn3 == '+') {
                        cout << "-"; bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; bin3.printbin(); cout << endl;
                        cout << "-"; bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; bin3.printdec(); cout << endl;
                        break;
                }
                if (zn1 == '+' && zn3 == '-') {
                        bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = "; bin3.printbin(); cout << endl;
                        bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = "; bin3.printdec(); cout << endl;
                        break;
                }
            case '*':
                if (zn1 == '+' && zn3 == '+') {
                    bin1.printbin(); cout << " * "; bin2.printbin(); cout << " = "; bin5.printbin(); cout << endl;
                    bin1.printdec(); cout << " * "; bin2.printdec(); cout << " = "; bin5.printdec(); cout << endl;
                    break;
                }
                if (zn1 == '-' && zn3 == '+') {
                    cout << "-"; bin1.printbin(); cout << " * "; bin2.printbin(); cout << " = -"; bin5.printbin(); cout << endl;
                    cout << "-"; bin1.printdec(); cout << " * "; bin2.printdec(); cout << " = -"; bin5.printdec(); cout << endl;
                    break;
                }
                if (zn1 == '+' && zn3 == '-') {
                    bin1.printbin(); cout << " * (-"; bin2.printbin(); cout << ") = -"; bin5.printbin(); cout << endl;
                    bin1.printdec(); cout << " * (-"; bin2.printdec(); cout << ") = -"; bin5.printdec(); cout << endl;
                    break;
                }
                if (zn1 == '-' && zn3 == '-') {
                    bin1.printbin(); cout << " * "; bin2.printbin(); cout << " = "; bin5.printbin(); cout << endl;
                    bin1.printdec(); cout << " * "; bin2.printdec(); cout << " = "; bin5.printdec(); cout << endl;
                    break;
                }
            default: cout << "Введен неверный знак. Попробуйте еще раз" << endl;
                break;
            }
        }
        /*cout << "Если хотите продолжить, введите 1" << endl;
        cin >> otv;
        cout << endl;*/
        
    //}
    return 0;
}

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



1270 / 1027 / 470

Регистрация: 25.12.2016

Сообщений: 3,333

30.01.2021, 19:10

2

В отладчике программу запускали?

Добавлено через 6 секунд
На каких входных данных возникает ошибка?



0



0 / 0 / 0

Регистрация: 06.10.2020

Сообщений: 26

30.01.2021, 19:21

 [ТС]

3

На сложениях чисел с одинаковым и разным количеством выделяемой памяти.

Отладчик выдает: wntdll.pdb содержит отладочную информацию, необходимую для поиска исходного кода для модуля ntdll.dll



0



1270 / 1027 / 470

Регистрация: 25.12.2016

Сообщений: 3,333

30.01.2021, 19:27

4

Цитата
Сообщение от Nikis0715
Посмотреть сообщение

На сложениях чисел с одинаковым и разным количеством выделяемой памяти.

Приведите конкретные числа.



0



0 / 0 / 0

Регистрация: 06.10.2020

Сообщений: 26

30.01.2021, 21:11

 [ТС]

5

260 и 2



0



1270 / 1027 / 470

Регистрация: 25.12.2016

Сообщений: 3,333

30.01.2021, 21:37

6

Цитата
Сообщение от Nikis0715
Посмотреть сообщение

260 и 2

У меня работает без ошибок (ввожу 260 + 2).

Цитата
Сообщение от Nikis0715
Посмотреть сообщение

Отладчик выдает: wntdll.pdb содержит отладочную информацию, необходимую для поиска исходного кода для модуля ntdll.dll

Ну выдаёт и выдаёт — пусть так.
Вопрос в том работает отладка или нет? Программу можно выполнить «по шагам»?



0



0 / 0 / 0

Регистрация: 06.10.2020

Сообщений: 26

30.01.2021, 21:41

 [ТС]

7

Я только скопировал код и создал новый проект и все заработало. Не знаю, в чем была проблема. Новый проект все решил



0



1270 / 1027 / 470

Регистрация: 25.12.2016

Сообщений: 3,333

30.01.2021, 21:43

8

Цитата
Сообщение от Nikis0715
Посмотреть сообщение

Новый проект все решил

Так бывает.



1



TheCalligrapher

Вездепух

Эксперт CЭксперт С++

10458 / 5725 / 1556

Регистрация: 18.10.2014

Сообщений: 14,134

30.01.2021, 22:03

9

Цитата
Сообщение от Nikis0715
Посмотреть сообщение

Почему-то часто вылезает ошибка

Ну так а чем вас не устроила первая очевидная причина: Распространенные ошибки

Цитата
Сообщение от Nikis0715
Посмотреть сообщение

260 и 2

Что такое «260 и 2»? Ваша программа поддерживает операцию «и»?

Цитата
Сообщение от Nikis0715
Посмотреть сообщение

Новый проект все решил

Нет, не нужно выдумывать. Ничего он не решил. Программа действительно падает.

В operator * написана какая-то чушь при вычислении размера памяти mem3. В результате происходит вылет за пределы выделенной памяти и разрушение кучи. Отсюда и падение.

Точнее сказать, памяти этой хватило бы, если бы цикл бинарного умножения был написан грамотно. Но цикл бинарного умножения ведет себя «нагло»

C++
1
2
3
4
5
6
7
8
9
    for (int i = 0; i < mem1; i++) {
        for (int j = 0; j < mem2; j++) {
            bin3[i + j] += bin1[i] * bin2[j];
            if (bin3[i + j] > 1) {
                bin3[i + j] -= 2;
                bin3[i + j + 1] += 1;
            }
        }
    }

Вот этот цикл разрушает память.

Отдельно хотелось бы обратить внимание на такое

C++
1
2
3
4
    if (d > pow(2, 32)) {
        cout << "Максимального размера выделяемой памяти недостаточно для получения ответа. Операция прервана";
        return Binary(0);
    }

при int d. Это какого же размера у вас int, если он может быть больше чем 2 в 32 степени? Что за платформа?

И почему вообще у вас в программе используется функция pow? Откуда возникла такая идея?

Цитата
Сообщение от Nikis0715
Посмотреть сообщение

пишу калькулятор двоичных чисел.

Непонятно, почему ваш «калькулятор двоичных чисел» параллельно делает вычисления во внутреннем формате и в вашем двоичном формате. Зачем вы писали двоичное умножение, если вы все равно в реализации operator * делаете обычное умножение int d = d1 * d2;? Какой смысл «писать калькулятор двоичных чисел», если вы все равно повторяете вычисления обычным образом???



1



Nikis0715

0 / 0 / 0

Регистрация: 06.10.2020

Сообщений: 26

30.01.2021, 22:15

 [ТС]

10

В фото требования к программе.

С умножением проблем нет. Проблемы с вычитанием и сложением 300 и 100, например. То есть, для одного выделяется массив с 16 элементами, а для другого — с 8.

Я убрал конструктор по умолчанию, и программа перестала падать.

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
#include <iostream>
#include <string>
 
using namespace std;
 
class Binary {
public:
    int mem;
    int* bin;
    int dec;
 
    //Binary();
    Binary(int dec);
    Binary(int dec, int mem);
    Binary(int* bin, int mem);
    Binary(const Binary& num2);
    ~Binary() {
        delete[]bin;
    }
    friend Binary operator+(Binary num1, Binary num2);
    friend Binary operator-(Binary num1, Binary num2);
    friend Binary operator*(Binary num1, Binary num2);
    friend void dectobin(int dec, int* bin, int mem);
    friend int bintodec(int* bin, int mem);
    int getmem();
    int getdec();
    int* getbin();
    void printbin();
    void printdec();
};
 
void dectobin(int dec, int* bin, int mem) {
    int dec1 = dec;
    for (int i = 0; i < mem; i++) {
 
        bin[i] = dec1 % 2;
        dec1 = (dec1 - bin[i]) / 2;
    }
}
 
int bintodec(int* bin, int mem) {
    int dec = 0;
    for (int i = 0; i < mem; i++) {
        dec = dec + bin[i] * (int)pow(2, i);
    }
    return dec;
}
/*
Binary::Binary() {
    mem = 8;
    dec = 0;
    bin = new int[mem];
    dectobin(dec, bin, mem);
}
*/
Binary::Binary(int d) {
    dec = d;
    mem = 8;
    if (d >= 0 && d < pow(2, 8)) mem = 8;
    if (d >= pow(2, 8) && d < pow(2, 16)) mem = 16;
    if (d >= pow(2, 16) && d < pow(2, 32)) mem = 32;
    bin = new int[mem];
    dectobin(dec, bin, mem);
}
 
Binary::Binary(int d, int m) {
    dec = d;
    mem = m;
    bin = new int[mem];
    dectobin(dec, bin, mem);
}
 
Binary::Binary(int* b, int m) {
    mem = m;
    bin = new int[mem];
    for (int i = 0; i < mem; i++) {
        bin[i] = b[i];
    }
    dec = bintodec(bin, mem);
}
 
Binary::Binary(const Binary& num2) {
    mem = num2.mem;
    dec = num2.dec;
    bin = new int[mem];
    for (int i = 0; i < mem; i++) {
        bin[i] = num2.bin[i];
    }
}
 
int Binary::getmem() {
    return this->mem;
}
 
int* Binary::getbin() {
    return bin;
}
 
int Binary::getdec() {
    return this->dec;
}
 
void Binary::printbin() {
    for (int i = mem - 1; i >= 0; i--) {
        cout << bin[i];
    }
}
 
void Binary::printdec() {
    cout << dec;
}
 
Binary operator+(Binary num1, Binary num2) {
    int* bin1 = num1.getbin();
    int* bin2 = num2.getbin();
    int mem3;
    if (num1.getmem() > num2.getmem()) {
        mem3 = num1.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3; i++) {
            bin3[i] = 0;
        }
        for (int i = 0; i < mem3 - 8; i++) {
            bin3[i] += bin1[i] + bin2[i];
            if (bin3[i] > 1) {
                bin3[i] -= 2;
                bin3[i + 1] += 1;
            }
        }
        for (int i = mem3 - 8; i < mem3; i++) {
            bin3[i] += bin1[i];
            if (i == mem3 - 1 && bin3[i] > 1) {
                cout << endl << "Ошибка. Недостаточно выделенной памяти в размере " << mem3 << " бит" << endl;
                return Binary(0);
            }
            if (bin3[i] > 1) {
                bin3[i] -= 2;
                bin3[i + 1] += 1;
            }
        }
        return Binary(bin3, mem3);
    }
 
    if (num1.getmem() == num2.getmem()) {
        mem3 = num1.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3; i++) {
            bin3[i] = 0;
        }
        for (int i = 0; i < mem3; i++) {
            bin3[i] += bin1[i] + bin2[i];
            if (i == mem3 - 1 && bin3[i] > 1) {
                cout << endl << "Ошибка. Недостаточно выделенной памяти в размере " << mem3 << " бит" << endl;
                return Binary(0);
            }
            if (bin3[i] > 1) {
                bin3[i] -= 2;
                if (i < mem3 - 1) bin3[i + 1] += 1;
            }
 
        }
        return Binary(bin3, mem3);
    }
 
    if (num1.getmem() < num2.getmem()) {
        mem3 = num2.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3; i++) {
            bin3[i] = 0;
        }
        for (int i = 0; i < mem3 - 8; i++) {
            bin3[i] += bin1[i] + bin2[i];
            if (bin3[i] > 1) {
                bin3[i] -= 2;
                bin3[i + 1] += 1;
            }
        }
        for (int i = mem3 - 8; i < mem3; i++) {
            bin3[i] += bin2[i];
            if (i == mem3 - 1 && bin3[i] == 2) {
                cout << endl << "Ошибка. Недостаточно выделенной памяти в размере " << mem3 << " бит" << endl;
                return Binary(0);
            }
            if (bin3[i] > 1) {
                bin3[i] -= 2;
                bin3[i + 1] += 1;
            }
 
        }
        return Binary(bin3, mem3);
    }
    return Binary(0);
}
 
Binary operator-(Binary num1, Binary num2) {
    int* bin1 = num1.getbin();
    int* bin2 = num2.getbin();
 
    int mem3 = 8;
    if (num1.getmem() > num2.getmem()) {
        mem3 = num1.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3 - 8; i++) {
            if (bin1[i] < bin2[i]) {
                bin1[i + 1] -= 1;
                bin1[i] += 2;
                bin3[i] = bin1[i] - bin2[i];
            }
            else bin3[i] = bin1[i] - bin2[i];
        }
        for (int i = mem3 - 8; i < mem3; i++) {
            bin3[i] = bin1[i];
        }
 
        return Binary(bin3, mem3);
    }
 
    if (num1.getmem() < num2.getmem()) {
        mem3 = num1.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3 - 8; i++) {
            if (bin2[i] < bin1[i]) {
                bin2[i + 1] -= 1;
                bin2[i] += 2;
                bin3[i] = bin2[i] - bin1[i];
            }
            else bin3[i] = bin2[i] - bin1[i];
        }
        for (int i = mem3 - 8; i < mem3; i++) {
            bin3[i] = bin2[i];
        }
 
        return Binary(bin3, mem3);
    }
 
    if (num1.getmem() == num2.getmem()) {
        mem3 = num1.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3; i++) {
            if (num1.getdec() > num2.getdec()) {
                if (bin1[i] < bin2[i]) {
                    bin1[i + 1] -= 1;
                    bin1[i] += 2;
                    bin3[i] = bin1[i] - bin2[i];
                }
                else bin3[i] = bin1[i] - bin2[i];
            }
            if (num1.getdec() <= num2.getdec()) {
                if (bin2[i] < bin1[i]) {
                    bin2[i + 1] -= 1;
                    bin2[i] += 2;
                    bin3[i] = bin2[i] - bin1[i];
                }
                else bin3[i] = bin2[i] - bin1[i];
            }
        }
 
        return Binary(bin3, mem3);
    }
    return Binary(0);
}
 
Binary operator*(Binary num1, Binary num2) {
    int* bin1 = num1.getbin();
    int* bin2 = num2.getbin();
    int mem3 = 8;
    int mem1 = num1.getmem();
    int mem2 = num2.getmem();
    int d1 = num1.getdec();
    int d2 = num2.getdec();
    int d = d1 * d2;
    if (d >= 0 && d < pow(2, 8)) mem3 = 8;
    if (d >= pow(2, 8) + 1 && d < pow(2, 16)) mem3 = 16;
    if (d >= pow(2, 16) + 1 && d < pow(2, 32)) mem3 = 32;
    if (d > pow(2, 32)) {
        cout << "Максимального размера выделяемой памяти недостаточно для получения ответа. Операция прервана";
        return Binary(0);
    }
    int* bin3 = new int[mem3];
    for (int i = 0; i < mem3; i++) {
        bin3[i] = 0;
    }
 
    for (int i = 0; i < mem1; i++) {
        for (int j = 0; j < mem2; j++) {
            bin3[i + j] += bin1[i] * bin2[j];
            if (bin3[i + j] > 1) {
                bin3[i + j] -= 2;
                bin3[i + j + 1] += 1;
            }
        }
    }
 
    return Binary(bin3, mem3);
}
 
void main() {
    setlocale(LC_ALL, "Ru");
    int otv(1);
    int d1(0), d2(0), count(0);
    char zn1('+'), zn2('+'), zn3('+'); //переменные для хранения знаков. Знак 2 определяем действие между числами. Знаки 1 и 3 - знаки чисел
    string v;//строка, для считывания выражения
    string D1, D2; //строки, в которые запишем числа
    //while (otv == 1) {
        cout << "Введите выражение" << endl;
        getline(cin, v); //считываем введенное выражение в строку
        int length = v.length(); // определяем длину строки
        /////////////////////////////////////////////
        //1 ЭТАП: ОПРЕДЕЛЕНИЕ ЗНАКОВ В ВЫРАЖЕНИИ//
        count = 0; //зануляем счетчик кол-ва знаков в строке
        for (int i = 0; i < length; i++) {
            if (v[i] == '-' || v[i] == '+' || v[i] == '*') count++; //узнаем кол-во знаков в строке
        }
 
        int* pointer = new int[3];//в этот массив сохраним номера позиций знаков, чтобы разграничить и считать числа
        for (int i = 0; i < 3; i++) {
            pointer[i] = 0;
        }
        if (count == 1) { // если в строке только 1 знак
            zn1 = '+';
            zn3 = '+'; // то 1 и 3 знак - это +
            for (int i = 0; i < length; i++) {
                if (v[i] == '-' || v[i] == '+' || v[i] == '*') {
                    zn2 = v[i]; //определяем знак 2
                    pointer[0] = i;
                }
            }
            D1.assign(v, 0, pointer[0]);//сохраняем первое число в строку
            d1 = atoi(D1.c_str());//переводим строку в число
            D2.assign(v, pointer[0] + 1, length - pointer[0]);//по аналогии
            d2 = atoi(D2.c_str());
        }
 
 
        if (count == 2) { //если в строке  2 знака, то
            count = 0;
            if (v[0] == '-') {// если первый знак -, то далее ищем второй знак
                zn1 = '-';
                for (int i = 0; i < length; i++) {
                    if (v[i] == '-' || v[i] == '+' || v[i] == '*') {
                        zn2 = v[i];
                        pointer[0] = i;
                    }
                }
                zn3 = '+';
                D1.assign(v, 1, pointer[0] - 1);//сохраняем первое число в строку
                d1 = atoi(D1.c_str());//переводим строку в число
                D2.assign(v, pointer[0] + 1, length - pointer[0]);//по аналогии
                d2 = atoi(D2.c_str());
            }
            else { //иначе 
                count = 0; //зануляем счетчик кол-ва знаков
                for (int i = 0; i < length; i++) {
                    if (v[i] == '-' || v[i] == '+' || v[i] == '*') {
                        if (count == 1) {
                            zn3 = v[i];
                            count++;
                            pointer[1] = i;
                        }
                        if (count == 0) {
                            zn2 = v[i];
                            count++;
                            pointer[0] = i;
                        }
                    }
                }
                D1.assign(v, 0, pointer[0]);//сохраняем первое число в строку
                d1 = atoi(D1.c_str());//переводим строку в число
                D2.assign(v, pointer[1] + 1, length - pointer[1]);//по аналогии
                d2 = atoi(D2.c_str());
            }
            count = 2;
        }
 
 
        if (count == 3) {//если в строке 3 знака, то сохраняем знаки поочередно 
            count = 0;
            for (int i = 0; i < length; i++) {
                if (v[i] == '-' || v[i] == '+' || v[i] == '*') {
                    if (count == 2) {
                        zn3 = v[i];
                        count++;
                        pointer[2] = i;
                    }
                    if (count == 1) {
                        zn2 = v[i];
                        count++;
                        pointer[1] = i;
                    }
                    if (count == 0) {
                        zn1 = v[i];
                        count++;
                        pointer[0] = i;
                    }
                }
            }
            D1.assign(v, pointer[0] + 1, pointer[1] - pointer[0] - 1);//сохраняем первое число в строку
            d1 = atoi(D1.c_str());//переводим строку в число
            D2.assign(v, pointer[2] + 1, length - pointer[2]);//по аналогии
            d2 = atoi(D2.c_str());
            count = 3;
        }
        /////////////////////
        //2 ЭТАП. ВЫЧИСЛЕНИЕ ВЫРАЖЕНИЯ//
        if (count == 1) {
            Binary bin1(d1), bin2(d2);
            Binary bin3(bin1 + bin2), bin4(bin1 - bin2), bin5(bin1 * bin2), bin6(bin2 - bin1);
            switch (zn2)
            {
            case '+':
                bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = "; bin3.printbin(); cout << endl;
                bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = "; bin3.printdec(); cout << endl;
                break;
            case '-':
                if (bin1.getdec() < bin2.getdec()) {
                    bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; bin6.printbin(); cout << endl;
                    bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; bin6.printdec(); cout << endl;
                    break;
                }
                else {
                    bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = "; bin4.printbin(); cout << endl;
                    bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = "; bin4.printdec(); cout << endl;
                    break;
                }
            case '*':
                bin1.printbin(); cout << " * "; bin2.printbin(); cout << " = "; bin5.printbin(); cout << endl;
                bin1.printdec(); cout << " * "; bin2.printdec(); cout << " = "; bin5.printdec(); cout << endl;
                break;
            default: cout << "Введен неверный знак. Попробуйте еще раз" << endl;
                break;
            }
        }
        else {
            Binary bin1(d1), bin2(d2);
            Binary bin3(bin1 + bin2), bin4(bin1 - bin2), bin5(bin1 * bin2), bin6(bin2 - bin1);
            switch (zn2)
            {
            case '+':
                if (zn1 == '+' && zn3 == '+') {
                    bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = "; bin3.printbin(); cout << endl;
                    bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = "; bin3.printdec(); cout << endl;
                    break;
                }
                if (zn1 == '-' && zn3 == '+') {
                    if (bin1.getdec() <= bin2.getdec()) {
                        cout << "-"; bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = "; bin6.printbin(); cout << endl;
                        cout << "-"; bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = "; bin6.printdec(); cout << endl;
                        break;
                    }
                    else {
                        cout << "-"; bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = -"; bin4.printbin(); cout << endl;
                        cout << "-"; bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = -"; bin4.printdec(); cout << endl;
                        break;
                    }
                }
                if (zn1 == '+' && zn3 == '-') {
                    if (bin1.getdec() < bin2.getdec()) {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; bin6.printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; bin6.printdec(); cout << endl;
                        break;
                    }
                    else {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = "; bin4.printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = "; bin4.printdec(); cout << endl;
                        break;
                    }
                }
                if (zn1 == '-' && zn3 == '-') {
                    cout << '-'; bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; bin3.printbin(); cout << endl;
                    cout << '-'; bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; bin3.printdec(); cout << endl;
                    break;
                }
            case '-':
                if (zn1 == '+' && zn3 == '+') {
                    if (bin1.getdec() < bin2.getdec()) {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; bin6.printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; bin6.printdec(); cout << endl;
                        break;
                    }
                    else {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = "; bin4.printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = "; bin4.printdec(); cout << endl;
                        break;
                    }
                }
                if (zn1 == '-' && zn3 == '+') {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; bin3.printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; bin3.printdec(); cout << endl;
                        break;
                        }
                if (zn1 == '+' && zn3 == '-') {
                    bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = "; bin3.printbin(); cout << endl;
                    bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = "; bin3.printdec(); cout << endl;
                    break;
                }
                if (zn1 == '-' && zn3 == '-') {
                    if (bin1.getdec() <= bin2.getdec()) {
                        cout << "-"; bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = "; bin6.printbin(); cout << endl;
                        cout << "-"; bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = "; bin6.printdec(); cout << endl;
                        break;
                    }
                    else {
                        cout << "-"; bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = -"; bin4.printbin(); cout << endl;
                        cout << "-"; bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = -"; bin4.printdec(); cout << endl;
                        break;
                    }
                }
            case '*':
                if (zn1 == '+' && zn3 == '+') {
                    bin1.printbin(); cout << " * "; bin2.printbin(); cout << " = "; bin5.printbin(); cout << endl;
                    bin1.printdec(); cout << " * "; bin2.printdec(); cout << " = "; bin5.printdec(); cout << endl;
                    break;
                }
                if (zn1 == '-' && zn3 == '+') {
                    cout << "-"; bin1.printbin(); cout << " * "; bin2.printbin(); cout << " = -"; bin5.printbin(); cout << endl;
                    cout << "-"; bin1.printdec(); cout << " * "; bin2.printdec(); cout << " = -"; bin5.printdec(); cout << endl;
                    break;
                }
                if (zn1 == '+' && zn3 == '-') {
                    bin1.printbin(); cout << " * (-"; bin2.printbin(); cout << ") = -"; bin5.printbin(); cout << endl;
                    bin1.printdec(); cout << " * (-"; bin2.printdec(); cout << ") = -"; bin5.printdec(); cout << endl;
                    break;
                }
                if (zn1 == '-' && zn3 == '-') {
                    bin1.printbin(); cout << " * "; bin2.printbin(); cout << " = "; bin5.printbin(); cout << endl;
                    bin1.printdec(); cout << " * "; bin2.printdec(); cout << " = "; bin5.printdec(); cout << endl;
                    break;
                }
            default: cout << "Введен неверный знак. Попробуйте еще раз" << endl;
                break;
            }
        }
        otv = 1;
    //}
 
}

Миниатюры

Программа завершила работу с кодом -1073740940
 



0



Вездепух

Эксперт CЭксперт С++

10458 / 5725 / 1556

Регистрация: 18.10.2014

Сообщений: 14,134

30.01.2021, 22:35

11

Цитата
Сообщение от Nikis0715
Посмотреть сообщение

С умножением проблем нет.

Если я сказал, что с умножением проблемы есть, значит с умножением проблемы есть. Я их вам указал. Это не обсуждается.

Что там у вас творится в остальных функциях я даже не смотрел, т.е. программа всегда уверенно падает на умножении.

Цитата
Сообщение от Nikis0715
Посмотреть сообщение

В фото требования к программе.

И каким же из этих требований соответствует ввод «260 и 2»?



0



0 / 0 / 0

Регистрация: 06.10.2020

Сообщений: 26

30.01.2021, 22:44

 [ТС]

12

Попробуйте ввести 260+2. Программа падает.

А что не так с циклом умножения?



0



TheCalligrapher

Вездепух

Эксперт CЭксперт С++

10458 / 5725 / 1556

Регистрация: 18.10.2014

Сообщений: 14,134

30.01.2021, 22:58

13

Цитата
Сообщение от Nikis0715
Посмотреть сообщение

Попробуйте ввести 260+2. Программа падает.

Верно. Именно это я и вводил. И ваша программа падает именно на умножении.

Цитата
Сообщение от Nikis0715
Посмотреть сообщение

А что не так с циклом умножения?

Я же написал уже выше.

Ваша программа вычислит d = 520 и решит, что для этого хватит 16 двоичных ячеек. То есть mem3 = 16 и размер массива bin3 равен 16.

А затем ваша программа запустит вышеупомянутые циклы двоичного умножения, в которых mem1 = 16 (это 260) и mem2 = 8 (это 2). В результате сумма i+j в

C++
1
2
3
4
    for (int i = 0; i < mem1; i++) {
        for (int j = 0; j < mem2; j++) {
            bin3[i + j] += bin1[i] * bin2[j];
            ...

запросто будет доходить до 22, то есть превышать 16. То есть будет происходить вылет за пределы массива bin3, разрушение памяти и падение.

Добавлено через 2 минуты

Цитата
Сообщение от Nikis0715
Посмотреть сообщение

Я убрал конструктор по умолчанию, и программа перестала падать.

Это бессмысленные танцы с бубном, которые ничего не меняет. С таким же успехом вы можете «пересоздать проект».



0



2066 / 1623 / 534

Регистрация: 29.06.2020

Сообщений: 6,124

30.01.2021, 23:03

14

целый int для 0 или 1 ?



0



Nikis0715

0 / 0 / 0

Регистрация: 06.10.2020

Сообщений: 26

30.01.2021, 23:11

 [ТС]

15

Моя проблема ушла. Убрал в main создание новых объектов класса при подсчетах

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
if (count == 1) {
            Binary bin1(d1), bin2(d2);
            //Binary bin3(bin1 + bin2), (bin1 - bin2)(bin1 - bin2), (bin2 * bin1)(bin1 * bin2), (bin2 - bin1)(bin2 - bin1);
            switch (zn2)
            {
                case '+':
                    bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = "; (bin1+bin2).printbin(); cout << endl;
                    bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = "; (bin1 + bin2).printdec(); cout << endl;
                    break;
                case '-':
                    if (bin1.getdec() < bin2.getdec()) {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; (bin2 - bin1).printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; (bin2 - bin1).printdec(); cout << endl;
                        break;
                    }
                    else {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = "; (bin1 - bin2).printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = "; (bin1 - bin2).printdec(); cout << endl;
                        break;
                    }
                case '*': {
                    bin1.printbin(); cout << " * "; bin2.printbin(); cout << " = "; (bin2 * bin1).printbin(); cout << endl;
                    bin1.printdec(); cout << " * "; bin2.printdec(); cout << " = "; (bin2 * bin1).printdec(); cout << endl;
                    break;
                }
                default: cout << "Введен неверный знак. Попробуйте еще раз" << endl;
                    break;
            }
            
        }
        else {
            Binary bin1(d1), bin2(d2);
            //Binary bin3(bin1 + bin2), (bin1 - bin2)(bin1 - bin2), (bin2 * bin1)(bin1 * bin2), (bin2 - bin1)(bin2 - bin1);
            switch (zn2)
            {
            case '+':
                if (zn1 == '+' && zn3 == '+') {
                    bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = "; (bin1 + bin2).printbin(); cout << endl;
                    bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = "; (bin1 + bin2).printdec(); cout << endl;
                    break;
                }
                if (zn1 == '-' && zn3 == '+') {
                    if (bin1.getdec() <= bin2.getdec()) {
                        cout << "-"; bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = "; (bin2 - bin1).printbin(); cout << endl;
                        cout << "-"; bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = "; (bin2 - bin1).printdec(); cout << endl;
                        break;
                    }
                    else {
                        cout << "-"; bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = -"; (bin1 - bin2).printbin(); cout << endl;
                        cout << "-"; bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = -"; (bin1 - bin2).printdec(); cout << endl;
                        break;
                    }
                }
                if (zn1 == '+' && zn3 == '-') {
                    if (bin1.getdec() < bin2.getdec()) {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; (bin2 - bin1).printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; (bin2 - bin1).printdec(); cout << endl;
                        break;
                    }
                    else {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = "; (bin1 - bin2).printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = "; (bin1 - bin2).printdec(); cout << endl;
                        break;
                    }
                }
                if (zn1 == '-' && zn3 == '-') {
                    cout << '-'; bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; (bin1 + bin2).printbin(); cout << endl;
                    cout << '-'; bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; (bin1 + bin2).printdec(); cout << endl;
                    break;
                }
            case '-':
                if (zn1 == '+' && zn3 == '+') {
                    if (bin1.getdec() < bin2.getdec()) {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; (bin2 - bin1).printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; (bin2 - bin1).printdec(); cout << endl;
                        break;
                    }
                    else {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = "; (bin1 - bin2).printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = "; (bin1 - bin2).printdec(); cout << endl;
                        break;
                    }
                }
                if (zn1 == '-' && zn3 == '+') {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; (bin1 + bin2).printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; (bin1 + bin2).printdec(); cout << endl;
                        break;
                        }
                if (zn1 == '+' && zn3 == '-') {
                    bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = "; (bin1 + bin2).printbin(); cout << endl;
                    bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = "; (bin1 + bin2).printdec(); cout << endl;
                    break;
                }
                if (zn1 == '-' && zn3 == '-') {
                    if (bin1.getdec() <= bin2.getdec()) {
                        cout << "-"; bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = "; (bin2 - bin1).printbin(); cout << endl;
                        cout << "-"; bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = "; (bin2 - bin1).printdec(); cout << endl;
                        break;
                    }
                    else {
                        cout << "-"; bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = -"; (bin1 - bin2).printbin(); cout << endl;
                        cout << "-"; bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = -"; (bin1 - bin2).printdec(); cout << endl;
                        break;
                    }
                }
            case '*':
                if (zn1 == '+' && zn3 == '+') {
                    bin1.printbin(); cout << " * "; bin2.printbin(); cout << " = "; (bin2 * bin1).printbin(); cout << endl;
                    bin1.printdec(); cout << " * "; bin2.printdec(); cout << " = "; (bin2 * bin1).printdec(); cout << endl;
                    break;
                }
                if (zn1 == '-' && zn3 == '+') {
                    cout << "-"; bin1.printbin(); cout << " * "; bin2.printbin(); cout << " = -"; (bin2 * bin1).printbin(); cout << endl;
                    cout << "-"; bin1.printdec(); cout << " * "; bin2.printdec(); cout << " = -"; (bin2 * bin1).printdec(); cout << endl;
                    break;
                }
                if (zn1 == '+' && zn3 == '-') {
                    bin1.printbin(); cout << " * (-"; bin2.printbin(); cout << ") = -"; (bin2 * bin1).printbin(); cout << endl;
                    bin1.printdec(); cout << " * (-"; bin2.printdec(); cout << ") = -"; (bin2 * bin1).printdec(); cout << endl;
                    break;
                }
                if (zn1 == '-' && zn3 == '-') {
                    bin1.printbin(); cout << " * "; bin2.printbin(); cout << " = "; (bin2 * bin1).printbin(); cout << endl;
                    bin1.printdec(); cout << " * "; bin2.printdec(); cout << " = "; (bin2 * bin1).printdec(); cout << endl;
                    break;
                }
            default: cout << "Введен неверный знак. Попробуйте еще раз" << endl;
                break;
            }
        }

Вот так исправил умножение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Binary operator*(Binary num1, Binary num2) {
    int* bin1 = num1.getbin();
    int* bin2 = num2.getbin();
    int mem1 = num1.getmem();
    int mem2 = num2.getmem();
    int mem3 = num1.getmem() + num2.getmem();
    if (mem3 > 32) {
        cout << "Максимального размера выделяемой памяти недостаточно для получения ответа. Операция прервана";
        return Binary(0);
    }
    int* bin3 = new int[mem3];
    for (int i = 0; i < mem3; i++) {
        bin3[i] = 0;
    }
 
    for (int i = 0; i < mem1; i++) {
        for (int j = 0; j < mem2; j++) {
            bin3[i + j] += bin1[i] * bin2[j];
            if (bin3[i + j] > 1) {
                bin3[i + j] -= 2;
                bin3[i + j + 1] += 1;
            }
        }
    }
 
    return Binary(bin3, mem3);
}

Но теперь почему-то 127+1 выдает 0. Вот весь получившийся код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
#include <iostream>
#include <string>
 
using namespace std;
 
class Binary {
public:
    int mem;
    int* bin;
    int dec;
 
    //Binary();
    Binary(int dec);
    Binary(int dec, int mem);
    Binary(int* bin, int mem);
    Binary(const Binary& num2);
    ~Binary() {
        delete[]bin;
    }
    friend Binary operator+(Binary num1, Binary num2);
    friend Binary operator-(Binary num1, Binary num2);
    friend Binary operator*(Binary num1, Binary num2);
    friend void dectobin(int dec, int* bin, int mem);
    friend int bintodec(int* bin, int mem);
    int getmem();
    int getdec();
    int* getbin();
    void printbin();
    void printdec();
};
 
void dectobin(int dec, int* bin, int mem) {
    int dec1 = dec;
    for (int i = 0; i < mem; i++) {
 
        bin[i] = dec1 % 2;
        dec1 = (dec1 - bin[i]) / 2;
    }
}
 
int bintodec(int* bin, int mem) {
    int dec = 0;
    for (int i = 0; i < mem; i++) {
        dec = dec + bin[i] * (int)pow(2, i);
    }
    return dec;
}
/*
Binary::Binary() {
    mem = 8;
    dec = 0;
    bin = new int[mem];
    dectobin(dec, bin, mem);
}
*/
Binary::Binary(int d) {
    dec = d;
    mem = 8;
    if (d >= 0 && d < pow(2, 8)) mem = 8;
    if (d >= pow(2, 8) && d < pow(2, 16)) mem = 16;
    if (d >= pow(2, 16) && d < pow(2, 32)) mem = 32;
    bin = new int[mem];
    dectobin(dec, bin, mem);
}
 
Binary::Binary(int d, int m) {
    dec = d;
    mem = m;
    bin = new int[mem];
    dectobin(dec, bin, mem);
}
 
Binary::Binary(int* b, int m) {
    mem = m;
    bin = new int[mem];
    for (int i = 0; i < mem; i++) {
        bin[i] = b[i];
    }
    dec = bintodec(bin, mem);
}
 
Binary::Binary(const Binary& num2) {
    mem = num2.mem;
    dec = num2.dec;
    bin = new int[mem];
    for (int i = 0; i < mem; i++) {
        bin[i] = num2.bin[i];
    }
}
 
int Binary::getmem() {
    return this->mem;
}
 
int* Binary::getbin() {
    return bin;
}
 
int Binary::getdec() {
    return this->dec;
}
 
void Binary::printbin() {
    for (int i = mem - 1; i >= 0; i--) {
        cout << bin[i];
    }
}
 
void Binary::printdec() {
    cout << dec;
}
 
Binary operator+(Binary num1, Binary num2) {
    int* bin1 = num1.getbin();
    int* bin2 = num2.getbin();
    int mem3;
    if (num1.getmem() > num2.getmem()) {
        mem3 = num1.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3; i++) {
            bin3[i] = 0;
        }
        for (int i = 0; i < mem3 - 8; i++) {
            bin3[i] += bin1[i] + bin2[i];
            if (bin3[i] > 1) {
                bin3[i] -= 2;
                bin3[i + 1] += 1;
            }
        }
        for (int i = mem3 - 8; i < mem3; i++) {
            bin3[i] += bin1[i];
            if (bin3[mem3 - 1] > 1) {
                cout << endl << "Ошибка. Недостаточно выделенной памяти в размере " << mem3 << " бит" << endl;
                return Binary(0);
            }
            if (bin3[i] > 1) {
                bin3[i] -= 2;
                if (i < mem3 - 2) bin3[i + 1] += 1;
            }
        }
        return Binary(bin3, mem3);
    }
 
    if (num1.getmem() == num2.getmem()) {
        mem3 = num1.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3; i++) {
            bin3[i] = 0;
        }
        for (int i = 0; i < mem3; i++) {
            bin3[i] += bin1[i] + bin2[i];
            if (bin3[mem3 - 1] > 1) {
                cout << endl << "Ошибка. Недостаточно выделенной памяти в размере " << mem3 << " бит" << endl;
                return Binary(0);
            }
            if (bin3[i] > 1) {
                bin3[i] -= 2;
                if (i < mem3 - 2) bin3[i + 1] += 1;
            }
 
        }
        return Binary(bin3, mem3);
    }
 
    if (num1.getmem() < num2.getmem()) {
        mem3 = num2.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3; i++) {
            bin3[i] = 0;
        }
        for (int i = 0; i < mem3 - 8; i++) {
            bin3[i] += bin1[i] + bin2[i];
            if (bin3[i] > 1) {
                bin3[i] -= 2;
                bin3[i + 1] += 1;
            }
        }
        for (int i = mem3 - 8; i < mem3; i++) {
            if (i == mem3 - 1 && bin3[mem3 -1 ] == 2) {
                cout << endl << "Ошибка. Недостаточно выделенной памяти в размере " << mem3 << " бит" << endl;
                return Binary(0);
            }
            if (bin3[i] > 1) {
                bin3[i] -= 2;
                if (i < mem3 - 2) bin3[i + 1] += 1;
            }
 
        }
        return Binary(bin3, mem3);
    }
    return Binary(0);
}
 
Binary operator-(Binary num1, Binary num2) {
    int* bin1 = num1.getbin();
    int* bin2 = num2.getbin();
 
    int mem3 = 8;
    if (num1.getmem() > num2.getmem()) {
        mem3 = num1.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3 - 8; i++) {
            if (bin1[i] < bin2[i]) {
                bin1[i + 1] -= 1;
                bin1[i] += 2;
                bin3[i] = bin1[i] - bin2[i];
            }
            else bin3[i] = bin1[i] - bin2[i];
        }
        for (int i = mem3 - 8; i < mem3; i++) {
            bin3[i] = bin1[i];
        }
 
        return Binary(bin3, mem3);
    }
 
    if (num1.getmem() < num2.getmem()) {
        mem3 = num2.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3 - 8; i++) {
            if (bin1[i] < bin2[i]) {
                bin1[i + 1] -= 1;
                bin1[i] += 2;
                bin3[i] = bin1[i] - bin2[i];
            }
            else bin3[i] = bin1[i] - bin2[i];
        }
        for (int i = mem3 - 8; i < mem3; i++) {
            bin3[i] = bin1[i];
        }
 
        return Binary(bin3, mem3);
    }
 
    if (num1.getmem() == num2.getmem()) {
        mem3 = num1.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3; i++) {
                if (bin1[i] < bin2[i]) {
                    bin1[i + 1] -= 1;
                    bin1[i] += 2;
                    bin3[i] = bin1[i] - bin2[i];
                }
                else bin3[i] = bin1[i] - bin2[i];
        }
        return Binary(bin3, mem3);
    }
    return Binary(0);
}
 
Binary operator*(Binary num1, Binary num2) {
    int* bin1 = num1.getbin();
    int* bin2 = num2.getbin();
    int mem1 = num1.getmem();
    int mem2 = num2.getmem();
    int mem3 = num1.getmem() + num2.getmem();
    if (mem3 > 32) {
        cout << "Максимального размера выделяемой памяти недостаточно для получения ответа. Операция прервана";
        return Binary(0);
    }
    int* bin3 = new int[mem3];
    for (int i = 0; i < mem3; i++) {
        bin3[i] = 0;
    }
 
    for (int i = 0; i < mem1; i++) {
        for (int j = 0; j < mem2; j++) {
            bin3[i + j] += bin1[i] * bin2[j];
            if (bin3[i + j] > 1) {
                bin3[i + j] -= 2;
                bin3[i + j + 1] += 1;
            }
        }
    }
 
    return Binary(bin3, mem3);
}
 
void main() {
    setlocale(LC_ALL, "Ru");
    int otv(1);
    int d1(0), d2(0), count(0);
    char zn1('+'), zn2('+'), zn3('+'); //переменные для хранения знаков. Знак 2 определяем действие между числами. Знаки 1 и 3 - знаки чисел
    string v;//строка, для считывания выражения
    string D1, D2; //строки, в которые запишем числа
    //while (otv == 1) {
        cout << "Введите выражение" << endl;
        getline(cin, v); //считываем введенное выражение в строку
        int length = v.length(); // определяем длину строки
        /////////////////////////////////////////////
        //1 ЭТАП: ОПРЕДЕЛЕНИЕ ЗНАКОВ В ВЫРАЖЕНИИ//
        count = 0; //зануляем счетчик кол-ва знаков в строке
        for (int i = 0; i < length; i++) {
            if (v[i] == '-' || v[i] == '+' || v[i] == '*') count++; //узнаем кол-во знаков в строке
        }
 
        int* pointer = new int[3];//в этот массив сохраним номера позиций знаков, чтобы разграничить и считать числа
        for (int i = 0; i < 3; i++) {
            pointer[i] = 0;
        }
        if (count == 1) { // если в строке только 1 знак
            zn1 = '+';
            zn3 = '+'; // то 1 и 3 знак - это +
            for (int i = 0; i < length; i++) {
                if (v[i] == '-' || v[i] == '+' || v[i] == '*') {
                    zn2 = v[i]; //определяем знак 2
                    pointer[0] = i;
                }
            }
            D1.assign(v, 0, pointer[0]);//сохраняем первое число в строку
            d1 = atoi(D1.c_str());//переводим строку в число
            D2.assign(v, pointer[0] + 1, length - pointer[0]);//по аналогии
            d2 = atoi(D2.c_str());
        }
 
 
        if (count == 2) { //если в строке  2 знака, то
            count = 0;
            if (v[0] == '-') {// если первый знак -, то далее ищем второй знак
                zn1 = '-';
                for (int i = 0; i < length; i++) {
                    if (v[i] == '-' || v[i] == '+' || v[i] == '*') {
                        zn2 = v[i];
                        pointer[0] = i;
                    }
                }
                zn3 = '+';
                D1.assign(v, 1, pointer[0] - 1);//сохраняем первое число в строку
                d1 = atoi(D1.c_str());//переводим строку в число
                D2.assign(v, pointer[0] + 1, length - pointer[0]);//по аналогии
                d2 = atoi(D2.c_str());
            }
            else { //иначе 
                count = 0; //зануляем счетчик кол-ва знаков
                for (int i = 0; i < length; i++) {
                    if (v[i] == '-' || v[i] == '+' || v[i] == '*') {
                        if (count == 1) {
                            zn3 = v[i];
                            count++;
                            pointer[1] = i;
                        }
                        if (count == 0) {
                            zn2 = v[i];
                            count++;
                            pointer[0] = i;
                        }
                    }
                }
                D1.assign(v, 0, pointer[0]);//сохраняем первое число в строку
                d1 = atoi(D1.c_str());//переводим строку в число
                D2.assign(v, pointer[1] + 1, length - pointer[1]);//по аналогии
                d2 = atoi(D2.c_str());
            }
            count = 2;
        }
 
 
        if (count == 3) {//если в строке 3 знака, то сохраняем знаки поочередно 
            count = 0;
            for (int i = 0; i < length; i++) {
                if (v[i] == '-' || v[i] == '+' || v[i] == '*') {
                    if (count == 2) {
                        zn3 = v[i];
                        count++;
                        pointer[2] = i;
                    }
                    if (count == 1) {
                        zn2 = v[i];
                        count++;
                        pointer[1] = i;
                    }
                    if (count == 0) {
                        zn1 = v[i];
                        count++;
                        pointer[0] = i;
                    }
                }
            }
            D1.assign(v, pointer[0] + 1, pointer[1] - pointer[0] - 1);//сохраняем первое число в строку
            d1 = atoi(D1.c_str());//переводим строку в число
            D2.assign(v, pointer[2] + 1, length - pointer[2]);//по аналогии
            d2 = atoi(D2.c_str());
            count = 3;
        }
        /////////////////////
        //2 ЭТАП. ВЫЧИСЛЕНИЕ ВЫРАЖЕНИЯ//
        if (count == 1) {
            Binary bin1(d1), bin2(d2);
            //Binary bin3(bin1 + bin2), (bin1 - bin2)(bin1 - bin2), (bin2 * bin1)(bin1 * bin2), (bin2 - bin1)(bin2 - bin1);
            switch (zn2)
            {
                case '+':
                    bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = "; (bin1+bin2).printbin(); cout << endl;
                    bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = "; (bin1 + bin2).printdec(); cout << endl;
                    break;
                case '-':
                    if (bin1.getdec() < bin2.getdec()) {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; (bin2 - bin1).printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; (bin2 - bin1).printdec(); cout << endl;
                        break;
                    }
                    else {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = "; (bin1 - bin2).printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = "; (bin1 - bin2).printdec(); cout << endl;
                        break;
                    }
                case '*': {
                    bin1.printbin(); cout << " * "; bin2.printbin(); cout << " = "; (bin2 * bin1).printbin(); cout << endl;
                    bin1.printdec(); cout << " * "; bin2.printdec(); cout << " = "; (bin2 * bin1).printdec(); cout << endl;
                    break;
                }
                default: cout << "Введен неверный знак. Попробуйте еще раз" << endl;
                    break;
            }
            
        }
        else {
            Binary bin1(d1), bin2(d2);
            //Binary bin3(bin1 + bin2), (bin1 - bin2)(bin1 - bin2), (bin2 * bin1)(bin1 * bin2), (bin2 - bin1)(bin2 - bin1);
            switch (zn2)
            {
            case '+':
                if (zn1 == '+' && zn3 == '+') {
                    bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = "; (bin1 + bin2).printbin(); cout << endl;
                    bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = "; (bin1 + bin2).printdec(); cout << endl;
                    break;
                }
                if (zn1 == '-' && zn3 == '+') {
                    if (bin1.getdec() <= bin2.getdec()) {
                        cout << "-"; bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = "; (bin2 - bin1).printbin(); cout << endl;
                        cout << "-"; bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = "; (bin2 - bin1).printdec(); cout << endl;
                        break;
                    }
                    else {
                        cout << "-"; bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = -"; (bin1 - bin2).printbin(); cout << endl;
                        cout << "-"; bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = -"; (bin1 - bin2).printdec(); cout << endl;
                        break;
                    }
                }
                if (zn1 == '+' && zn3 == '-') {
                    if (bin1.getdec() < bin2.getdec()) {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; (bin2 - bin1).printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; (bin2 - bin1).printdec(); cout << endl;
                        break;
                    }
                    else {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = "; (bin1 - bin2).printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = "; (bin1 - bin2).printdec(); cout << endl;
                        break;
                    }
                }
                if (zn1 == '-' && zn3 == '-') {
                    cout << '-'; bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; (bin1 + bin2).printbin(); cout << endl;
                    cout << '-'; bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; (bin1 + bin2).printdec(); cout << endl;
                    break;
                }
            case '-':
                if (zn1 == '+' && zn3 == '+') {
                    if (bin1.getdec() < bin2.getdec()) {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; (bin2 - bin1).printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; (bin2 - bin1).printdec(); cout << endl;
                        break;
                    }
                    else {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = "; (bin1 - bin2).printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = "; (bin1 - bin2).printdec(); cout << endl;
                        break;
                    }
                }
                if (zn1 == '-' && zn3 == '+') {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; (bin1 + bin2).printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; (bin1 + bin2).printdec(); cout << endl;
                        break;
                        }
                if (zn1 == '+' && zn3 == '-') {
                    bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = "; (bin1 + bin2).printbin(); cout << endl;
                    bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = "; (bin1 + bin2).printdec(); cout << endl;
                    break;
                }
                if (zn1 == '-' && zn3 == '-') {
                    if (bin1.getdec() <= bin2.getdec()) {
                        cout << "-"; bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = "; (bin2 - bin1).printbin(); cout << endl;
                        cout << "-"; bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = "; (bin2 - bin1).printdec(); cout << endl;
                        break;
                    }
                    else {
                        cout << "-"; bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = -"; (bin1 - bin2).printbin(); cout << endl;
                        cout << "-"; bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = -"; (bin1 - bin2).printdec(); cout << endl;
                        break;
                    }
                }
            case '*':
                if (zn1 == '+' && zn3 == '+') {
                    bin1.printbin(); cout << " * "; bin2.printbin(); cout << " = "; (bin2 * bin1).printbin(); cout << endl;
                    bin1.printdec(); cout << " * "; bin2.printdec(); cout << " = "; (bin2 * bin1).printdec(); cout << endl;
                    break;
                }
                if (zn1 == '-' && zn3 == '+') {
                    cout << "-"; bin1.printbin(); cout << " * "; bin2.printbin(); cout << " = -"; (bin2 * bin1).printbin(); cout << endl;
                    cout << "-"; bin1.printdec(); cout << " * "; bin2.printdec(); cout << " = -"; (bin2 * bin1).printdec(); cout << endl;
                    break;
                }
                if (zn1 == '+' && zn3 == '-') {
                    bin1.printbin(); cout << " * (-"; bin2.printbin(); cout << ") = -"; (bin2 * bin1).printbin(); cout << endl;
                    bin1.printdec(); cout << " * (-"; bin2.printdec(); cout << ") = -"; (bin2 * bin1).printdec(); cout << endl;
                    break;
                }
                if (zn1 == '-' && zn3 == '-') {
                    bin1.printbin(); cout << " * "; bin2.printbin(); cout << " = "; (bin2 * bin1).printbin(); cout << endl;
                    bin1.printdec(); cout << " * "; bin2.printdec(); cout << " = "; (bin2 * bin1).printdec(); cout << endl;
                    break;
                }
            default: cout << "Введен неверный знак. Попробуйте еще раз" << endl;
                break;
            }
        }
        
        //otv = 1;
    //}
 
}



0



TheCalligrapher

Вездепух

Эксперт CЭксперт С++

10458 / 5725 / 1556

Регистрация: 18.10.2014

Сообщений: 14,134

30.01.2021, 23:23

16

По-прежнему:
Распространенные ошибки
Распространенные ошибки

Добавлено через 2 минуты

Цитата
Сообщение от Nikis0715
Посмотреть сообщение

Вот так исправил умножение

После такого шага мне не ясно, зачем вы вообще тогда делаете вот это

Цитата
Сообщение от Nikis0715
Посмотреть сообщение

C++
1
2
3
    if (d >= 0 && d < pow(2, 8)) mem = 8;
    if (d >= pow(2, 8) && d < pow(2, 16)) mem = 16;
    if (d >= pow(2, 16) && d < pow(2, 32)) mem = 32;

Зачем нужны все эти манипуляции, если можно просто везде и всегда выделять ровно 32 и не мучаться?



0



Nikis0715

0 / 0 / 0

Регистрация: 06.10.2020

Сообщений: 26

31.01.2021, 00:21

 [ТС]

17

Такие вот требования у преподавателя

Добавлено через 29 минут
Добавил перегрузку оператора присваивания, поменял возвращаемое значение main. И самое главное, исправил ошибку в операторе сложения, из-за которой 127+1 было = 0. Вот итоговая программа, полностью рабочая

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
#include <iostream>
#include <string>
 
using namespace std;
 
class Binary {
public:
    int mem;
    int* bin;
    int dec;
 
    //Binary();
    Binary(int dec);
    Binary(int dec, int mem);
    Binary(int* bin, int mem);
    Binary(const Binary& num2);
    ~Binary() {
        delete[]bin;
    }
    friend Binary operator+(Binary num1, Binary num2);
    friend Binary operator-(Binary num1, Binary num2);
    friend Binary operator*(Binary num1, Binary num2);
    Binary& operator=(const Binary& num1);
    friend void dectobin(int dec, int* bin, int mem);
    friend int bintodec(int* bin, int mem);
    int getmem();
    int getdec();
    int* getbin();
    void printbin();
    void printdec();
};
 
void dectobin(int dec, int* bin, int mem) {
    int dec1 = dec;
    for (int i = 0; i < mem; i++) {
 
        bin[i] = dec1 % 2;
        dec1 = (dec1 - bin[i]) / 2;
    }
}
 
int bintodec(int* bin, int mem) {
    int dec = 0;
    for (int i = 0; i < mem; i++) {
        dec = dec + bin[i] * (int)pow(2, i);
    }
    return dec;
}
/*
Binary::Binary() {
    mem = 8;
    dec = 0;
    bin = new int[mem];
    dectobin(dec, bin, mem);
}
*/
Binary& Binary::operator=(const Binary& num2) {
    if (this == &num2) return *this;
    delete[] this->bin;
    dec = num2.dec;
    mem = num2.mem;
    bin = new int[mem];
    for (int i = 0; i < mem; i++) {
        bin[i] = num2.bin[i];
    }
    return *this;
}
Binary::Binary(int d) {
    dec = d;
    mem = 8;
    if (d >= 0 && d < pow(2, 8)) mem = 8;
    if (d >= pow(2, 8) && d < pow(2, 16)) mem = 16;
    if (d >= pow(2, 16) && d < pow(2, 32)) mem = 32;
    bin = new int[mem];
    dectobin(dec, bin, mem);
}
 
Binary::Binary(int d, int m) {
    dec = d;
    mem = m;
    bin = new int[mem];
    dectobin(dec, bin, mem);
}
 
Binary::Binary(int* b, int m) {
    mem = m;
    bin = new int[mem];
    for (int i = 0; i < mem; i++) {
        bin[i] = b[i];
    }
    dec = bintodec(bin, mem);
}
 
Binary::Binary(const Binary& num2) {
    mem = num2.mem;
    dec = num2.dec;
    bin = new int[mem];
    for (int i = 0; i < mem; i++) {
        bin[i] = num2.bin[i];
    }
}
 
int Binary::getmem() {
    return this->mem;
}
 
int* Binary::getbin() {
    return bin;
}
 
int Binary::getdec() {
    return this->dec;
}
 
void Binary::printbin() {
    for (int i = mem - 1; i >= 0; i--) {
        cout << bin[i];
    }
}
 
void Binary::printdec() {
    cout << dec;
}
 
Binary operator+(Binary num1, Binary num2) {
    int* bin1 = num1.getbin();
    int* bin2 = num2.getbin();
    int mem3;
    if (num1.getmem() > num2.getmem()) {
        mem3 = num1.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3; i++) {
            bin3[i] = 0;
        }
        for (int i = 0; i < mem3 - 8; i++) {
            bin3[i] += bin1[i] + bin2[i];
            if (bin3[i] > 1) {
                bin3[i] -= 2;
                bin3[i + 1] += 1;
            }
        }
        for (int i = mem3 - 8; i < mem3; i++) {
            bin3[i] += bin1[i];
            if (bin3[mem3 - 1] > 1) {
                cout << endl << "Ошибка. Недостаточно выделенной памяти в размере " << mem3 << " бит" << endl;
                return Binary(0);
            }
            if (bin3[i] > 1) {
                bin3[i] -= 2;
                if (i < mem3 - 1) bin3[i + 1] += 1;
            }
        }
        return Binary(bin3, mem3);
    }
 
    if (num1.getmem() == num2.getmem()) {
        mem3 = num1.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3; i++) {
            bin3[i] = 0;
        }
        for (int i = 0; i < mem3; i++) {
            bin3[i] += bin1[i] + bin2[i];
            if (bin3[mem3 - 1] > 1) {
                cout << endl << "Ошибка. Недостаточно выделенной памяти в размере " << mem3 << " бит" << endl;
                return Binary(0);
            }
            if (bin3[i] > 1) {
                bin3[i] -= 2;
                if (i < mem3 - 1) bin3[i + 1] += 1;
            }
 
        }
        return Binary(bin3, mem3);
    }
 
    if (num1.getmem() < num2.getmem()) {
        mem3 = num2.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3; i++) {
            bin3[i] = 0;
        }
        for (int i = 0; i < mem3 - 8; i++) {
            bin3[i] += bin1[i] + bin2[i];
            if (bin3[i] > 1) {
                bin3[i] -= 2;
                bin3[i + 1] += 1;
            }
        }
        for (int i = mem3 - 8; i < mem3; i++) {
            if (i == mem3 - 1 && bin3[mem3 -1 ] == 2) {
                cout << endl << "Ошибка. Недостаточно выделенной памяти в размере " << mem3 << " бит" << endl;
                return Binary(0);
            }
            if (bin3[i] > 1) {
                bin3[i] -= 2;
                if (i < mem3 - 1) bin3[i + 1] += 1;
            }
 
        }
        return Binary(bin3, mem3);
    }
    return Binary(0);
}
 
Binary operator-(Binary num1, Binary num2) {
    int* bin1 = num1.getbin();
    int* bin2 = num2.getbin();
 
    int mem3 = 8;
    if (num1.getmem() > num2.getmem()) {
        mem3 = num1.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3 - 8; i++) {
            if (bin1[i] < bin2[i]) {
                bin1[i + 1] -= 1;
                bin1[i] += 2;
                bin3[i] = bin1[i] - bin2[i];
            }
            else bin3[i] = bin1[i] - bin2[i];
        }
        for (int i = mem3 - 8; i < mem3; i++) {
            bin3[i] = bin1[i];
        }
 
        return Binary(bin3, mem3);
    }
 
    if (num1.getmem() < num2.getmem()) {
        mem3 = num2.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3 - 8; i++) {
            if (bin1[i] < bin2[i]) {
                bin1[i + 1] -= 1;
                bin1[i] += 2;
                bin3[i] = bin1[i] - bin2[i];
            }
            else bin3[i] = bin1[i] - bin2[i];
        }
        for (int i = mem3 - 8; i < mem3; i++) {
            bin3[i] = bin1[i];
        }
 
        return Binary(bin3, mem3);
    }
 
    if (num1.getmem() == num2.getmem()) {
        mem3 = num1.getmem();
        int* bin3 = new int[mem3];
        for (int i = 0; i < mem3; i++) {
                if (bin1[i] < bin2[i]) {
                    bin1[i + 1] -= 1;
                    bin1[i] += 2;
                    bin3[i] = bin1[i] - bin2[i];
                }
                else bin3[i] = bin1[i] - bin2[i];
        }
        return Binary(bin3, mem3);
    }
    return Binary(0);
}
 
Binary operator*(Binary num1, Binary num2) {
    int* bin1 = num1.getbin();
    int* bin2 = num2.getbin();
    int mem1 = num1.getmem();
    int mem2 = num2.getmem();
    int mem3 = num1.getmem() + num2.getmem();
    if (mem3 > 32) {
        cout << "Максимального размера выделяемой памяти недостаточно для получения ответа. Операция прервана";
        return Binary(0);
    }
    int* bin3 = new int[mem3];
    for (int i = 0; i < mem3; i++) {
        bin3[i] = 0;
    }
 
    for (int i = 0; i < mem1; i++) {
        for (int j = 0; j < mem2; j++) {
            bin3[i + j] += bin1[i] * bin2[j];
            if (bin3[i + j] > 1) {
                bin3[i + j] -= 2;
                bin3[i + j + 1] += 1;
            }
        }
    }
 
    return Binary(bin3, mem3);
}
 
int main() {
    setlocale(LC_ALL, "Ru");
    int otv(1);
    int d1(0), d2(0), count(0);
    char zn1('+'), zn2('+'), zn3('+'); //переменные для хранения знаков. Знак 2 определяем действие между числами. Знаки 1 и 3 - знаки чисел
    string v;//строка, для считывания выражения
    string D1, D2; //строки, в которые запишем числа
    //while (otv == 1) {
        cout << "Введите выражение" << endl;
        getline(cin, v); //считываем введенное выражение в строку
        int length = v.length(); // определяем длину строки
        /////////////////////////////////////////////
        //1 ЭТАП: ОПРЕДЕЛЕНИЕ ЗНАКОВ В ВЫРАЖЕНИИ//
        count = 0; //зануляем счетчик кол-ва знаков в строке
        for (int i = 0; i < length; i++) {
            if (v[i] == '-' || v[i] == '+' || v[i] == '*') count++; //узнаем кол-во знаков в строке
        }
 
        int* pointer = new int[3];//в этот массив сохраним номера позиций знаков, чтобы разграничить и считать числа
        for (int i = 0; i < 3; i++) {
            pointer[i] = 0;
        }
        if (count == 1) { // если в строке только 1 знак
            zn1 = '+';
            zn3 = '+'; // то 1 и 3 знак - это +
            for (int i = 0; i < length; i++) {
                if (v[i] == '-' || v[i] == '+' || v[i] == '*') {
                    zn2 = v[i]; //определяем знак 2
                    pointer[0] = i;
                }
            }
            D1.assign(v, 0, pointer[0]);//сохраняем первое число в строку
            d1 = atoi(D1.c_str());//переводим строку в число
            D2.assign(v, pointer[0] + 1, length - pointer[0]);//по аналогии
            d2 = atoi(D2.c_str());
        }
 
 
        if (count == 2) { //если в строке  2 знака, то
            count = 0;
            if (v[0] == '-') {// если первый знак -, то далее ищем второй знак
                zn1 = '-';
                for (int i = 0; i < length; i++) {
                    if (v[i] == '-' || v[i] == '+' || v[i] == '*') {
                        zn2 = v[i];
                        pointer[0] = i;
                    }
                }
                zn3 = '+';
                D1.assign(v, 1, pointer[0] - 1);//сохраняем первое число в строку
                d1 = atoi(D1.c_str());//переводим строку в число
                D2.assign(v, pointer[0] + 1, length - pointer[0]);//по аналогии
                d2 = atoi(D2.c_str());
            }
            else { //иначе 
                count = 0; //зануляем счетчик кол-ва знаков
                for (int i = 0; i < length; i++) {
                    if (v[i] == '-' || v[i] == '+' || v[i] == '*') {
                        if (count == 1) {
                            zn3 = v[i];
                            count++;
                            pointer[1] = i;
                        }
                        if (count == 0) {
                            zn2 = v[i];
                            count++;
                            pointer[0] = i;
                        }
                    }
                }
                D1.assign(v, 0, pointer[0]);//сохраняем первое число в строку
                d1 = atoi(D1.c_str());//переводим строку в число
                D2.assign(v, pointer[1] + 1, length - pointer[1]);//по аналогии
                d2 = atoi(D2.c_str());
            }
            count = 2;
        }
 
 
        if (count == 3) {//если в строке 3 знака, то сохраняем знаки поочередно 
            count = 0;
            for (int i = 0; i < length; i++) {
                if (v[i] == '-' || v[i] == '+' || v[i] == '*') {
                    if (count == 2) {
                        zn3 = v[i];
                        count++;
                        pointer[2] = i;
                    }
                    if (count == 1) {
                        zn2 = v[i];
                        count++;
                        pointer[1] = i;
                    }
                    if (count == 0) {
                        zn1 = v[i];
                        count++;
                        pointer[0] = i;
                    }
                }
            }
            D1.assign(v, pointer[0] + 1, pointer[1] - pointer[0] - 1);//сохраняем первое число в строку
            d1 = atoi(D1.c_str());//переводим строку в число
            D2.assign(v, pointer[2] + 1, length - pointer[2]);//по аналогии
            d2 = atoi(D2.c_str());
            count = 3;
        }
        /////////////////////
        //2 ЭТАП. ВЫЧИСЛЕНИЕ ВЫРАЖЕНИЯ//
        if (count == 1) {
            Binary bin1(d1), bin2(d2);
            //Binary bin3(bin1 + bin2), (bin1 - bin2)(bin1 - bin2), (bin2 * bin1)(bin1 * bin2), (bin2 - bin1)(bin2 - bin1);
            switch (zn2)
            {
                case '+':
                    bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = "; (bin1+bin2).printbin(); cout << endl;
                    bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = "; (bin1 + bin2).printdec(); cout << endl;
                    break;
                case '-':
                    if (bin1.getdec() < bin2.getdec()) {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; (bin2 - bin1).printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; (bin2 - bin1).printdec(); cout << endl;
                        break;
                    }
                    else {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = "; (bin1 - bin2).printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = "; (bin1 - bin2).printdec(); cout << endl;
                        break;
                    }
                case '*': {
                    bin1.printbin(); cout << " * "; bin2.printbin(); cout << " = "; (bin2 * bin1).printbin(); cout << endl;
                    bin1.printdec(); cout << " * "; bin2.printdec(); cout << " = "; (bin2 * bin1).printdec(); cout << endl;
                    break;
                }
                default: cout << "Введен неверный знак. Попробуйте еще раз" << endl;
                    break;
            }
            
        }
        else {
            Binary bin1(d1), bin2(d2);
            //Binary bin3(bin1 + bin2), (bin1 - bin2)(bin1 - bin2), (bin2 * bin1)(bin1 * bin2), (bin2 - bin1)(bin2 - bin1);
            switch (zn2)
            {
            case '+':
                if (zn1 == '+' && zn3 == '+') {
                    bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = "; (bin1 + bin2).printbin(); cout << endl;
                    bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = "; (bin1 + bin2).printdec(); cout << endl;
                    break;
                }
                if (zn1 == '-' && zn3 == '+') {
                    if (bin1.getdec() <= bin2.getdec()) {
                        cout << "-"; bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = "; (bin2 - bin1).printbin(); cout << endl;
                        cout << "-"; bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = "; (bin2 - bin1).printdec(); cout << endl;
                        break;
                    }
                    else {
                        cout << "-"; bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = -"; (bin1 - bin2).printbin(); cout << endl;
                        cout << "-"; bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = -"; (bin1 - bin2).printdec(); cout << endl;
                        break;
                    }
                }
                if (zn1 == '+' && zn3 == '-') {
                    if (bin1.getdec() < bin2.getdec()) {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; (bin2 - bin1).printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; (bin2 - bin1).printdec(); cout << endl;
                        break;
                    }
                    else {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = "; (bin1 - bin2).printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = "; (bin1 - bin2).printdec(); cout << endl;
                        break;
                    }
                }
                if (zn1 == '-' && zn3 == '-') {
                    cout << '-'; bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; (bin1 + bin2).printbin(); cout << endl;
                    cout << '-'; bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; (bin1 + bin2).printdec(); cout << endl;
                    break;
                }
            case '-':
                if (zn1 == '+' && zn3 == '+') {
                    if (bin1.getdec() < bin2.getdec()) {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; (bin2 - bin1).printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; (bin2 - bin1).printdec(); cout << endl;
                        break;
                    }
                    else {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = "; (bin1 - bin2).printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = "; (bin1 - bin2).printdec(); cout << endl;
                        break;
                    }
                }
                if (zn1 == '-' && zn3 == '+') {
                        bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = -"; (bin1 + bin2).printbin(); cout << endl;
                        bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = -"; (bin1 + bin2).printdec(); cout << endl;
                        break;
                        }
                if (zn1 == '+' && zn3 == '-') {
                    bin1.printbin(); cout << " - "; bin2.printbin(); cout << " = "; (bin1 + bin2).printbin(); cout << endl;
                    bin1.printdec(); cout << " - "; bin2.printdec(); cout << " = "; (bin1 + bin2).printdec(); cout << endl;
                    break;
                }
                if (zn1 == '-' && zn3 == '-') {
                    if (bin1.getdec() <= bin2.getdec()) {
                        cout << "-"; bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = "; (bin2 - bin1).printbin(); cout << endl;
                        cout << "-"; bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = "; (bin2 - bin1).printdec(); cout << endl;
                        break;
                    }
                    else {
                        cout << "-"; bin1.printbin(); cout << " + "; bin2.printbin(); cout << " = -"; (bin1 - bin2).printbin(); cout << endl;
                        cout << "-"; bin1.printdec(); cout << " + "; bin2.printdec(); cout << " = -"; (bin1 - bin2).printdec(); cout << endl;
                        break;
                    }
                }
            case '*':
                if (zn1 == '+' && zn3 == '+') {
                    bin1.printbin(); cout << " * "; bin2.printbin(); cout << " = "; (bin2 * bin1).printbin(); cout << endl;
                    bin1.printdec(); cout << " * "; bin2.printdec(); cout << " = "; (bin2 * bin1).printdec(); cout << endl;
                    break;
                }
                if (zn1 == '-' && zn3 == '+') {
                    cout << "-"; bin1.printbin(); cout << " * "; bin2.printbin(); cout << " = -"; (bin2 * bin1).printbin(); cout << endl;
                    cout << "-"; bin1.printdec(); cout << " * "; bin2.printdec(); cout << " = -"; (bin2 * bin1).printdec(); cout << endl;
                    break;
                }
                if (zn1 == '+' && zn3 == '-') {
                    bin1.printbin(); cout << " * (-"; bin2.printbin(); cout << ") = -"; (bin2 * bin1).printbin(); cout << endl;
                    bin1.printdec(); cout << " * (-"; bin2.printdec(); cout << ") = -"; (bin2 * bin1).printdec(); cout << endl;
                    break;
                }
                if (zn1 == '-' && zn3 == '-') {
                    bin1.printbin(); cout << " * "; bin2.printbin(); cout << " = "; (bin2 * bin1).printbin(); cout << endl;
                    bin1.printdec(); cout << " * "; bin2.printdec(); cout << " = "; (bin2 * bin1).printdec(); cout << endl;
                    break;
                }
            default: cout << "Введен неверный знак. Попробуйте еще раз" << endl;
                break;
            }
        }
        
        //otv = 1;
    //}
        return 0;
}



0



TheCalligrapher

Вездепух

Эксперт CЭксперт С++

10458 / 5725 / 1556

Регистрация: 18.10.2014

Сообщений: 14,134

31.01.2021, 00:54

18

Цитата
Сообщение от Nikis0715
Посмотреть сообщение

Такие вот требования у преподавателя

Да, но когда вы сделали

C++
1
int mem3 = num1.getmem() + num2.getmem();

в операторе умножения, вы не нарушили эти требования?



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

31.01.2021, 00:54

Помогаю со студенческими работами здесь

Выход из цикла for: требуется, чтобы программа завершила свою работу как только найдет первую единицу матрицы
дана матрица A размера MxN, состоящая из нулей и единиц,
Требуется, чтобы программа завершила свою…

Программа завершает работу с непонятным кодом
Чесnно говоря я понимаю от части почему программа в конце не выдает 0 , так как я не написал нигде…

Посимвольная конкатенация строк, программа завершает работу с кодом 3
Доброго времени суток. Программа крашится на 22 строке на 2-й итерации вложенного цикла, не…

Как сделать, чтобы пока одна функция не завершила работу, другая бы не могла начаться?
Здравствуйте, написал JS код, который анимирует две картинки, однако если запускать функцию…

Программа вылетает с ошибкой Process returned -1073740940 (0xC0000374)
Всем привет! Есть вот такое задание : &quot;Одномерный массив А, состоящий из N элементов, заполняется…

Процесс завершил работу с кодом 0
Здравствуйте,сейчас пишу текстовую игру для конкурса начинающих программистов.
Пишу в консоли и…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

18

Новички, да и обычные игроки часто сталкиваются с проблемами запуска лаунчера или сборки. Здесь описаны популярные проблемы, с которыми можно столкнуться. Если ничего из перечисленного не помогло, пролистайте в самый низ темы.

I. Не запускается лаунчер:


1) У вас установлено несколько версий Java.

Удалите одну из версий, перезапустить ПК и пытайтесь включить лаунчер.

2) У вас версия установлены Java и JDK разных версий.

Удалить JDK. Если понадобится, то скачайте его одной версии с Java. Чтобы было, например, вот так:

3) У вас установлена старая версия Java.

4) Разрядность Java должна совпадать с разрядностью ОС.

Узнаём разрядность операционной системы:

А после — скачиваете с официального сайта версию Java x64.

5) У вас стоит антивирусник, который блокирует запуск лаунчера (например, проблемы чаще всего наблюдались с Dr Web).

Со стандартным антивирусником от Windows данная проблема не наблюдалась. Если установлено что-то другое, то:
1) попробуйте добавить лаунчер в белый список (карантин и т.п.);
2) попробуйте временно отключить защиту (или навсегда, но сначала стоит попробовать временно).

6) Попробуйте отключить брандмауэр Windows.

Не должно из-за этого возникать проблем, но некоторым помогало следующее решение:
1) найдите в поиске брандмауэр защитника Windows, откройте.
2) слева откройте «Включите и отключение брандмауэра защитника Windows».
3) поставьте галочки возле красных крестиков (там, где написано «Отключить …»).

Альтернативный путь: Панель управленияВсе элементы панели управленияБрандмауэр Защитника WindowsНастроить параметры

Фото:

7) Не совпадают минимальные требования для Minecraft.

Здравствуйте. Причин множество, надо рассматривать ситуацию детально.
Важно понимать что у каждой игры есть минимальные системные требования.
Для версии майна 1.7.10 это:

  • Intel Core i3-3210 / AMD A8-7600 APU либо эквивалент
  • 2 ГБ свободной памяти, желательно DDR3 1333 МГц
  • Intel HD Graphics 4000 (Ivy Bridge) либо AMD Radeon R5 серии (Kaveri APU) с поддержкой OpenGL 4.4.
  • Windows 7 и новее

8) Проблемы с авторизацией в лаунчере

Для решения проблемы используйте впн

Данная проблема наблюдается на Windows 11.
К сожалению, с Windows 11 мы не работаем.
Вы можете попробовать следующий способ решения: изменить язык интерфейса(русский, английский), регион и время в настройках windows

II. Не запускается сборка / проблемы во время загрузки сборки
На данном этапе стоит пройтись в разделе №1 (не запускается лаунчер) по пунктам: 3,4,6,7 (а также попробовать переустановить сборку, сбросить путь к файлам на стандартный, перезапустить ПК). Если ничего не помогло, то в настройках лаунчера включите режим откладки и запустите сборку. А после — просмотрите текст из окна отладки.

1) У вас установлен КриптоПро.

Самый простой способ — удалить КриптоПро.
Если КриптоПро вам нужен для работы и вы не хотите его удалять, выполняем следующие действия:

  1. Запустить редактор реестра — regedit
  2. Перейти в раздел HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerCProExclude
  3. В разделе CProExclude создать две папки: VictoryCraft и VictoryCraft64
  4. В папке VictoryCraft создать строковый параметр FileName со значением: VictoryCraft.exe
  5. В папке VictoryCraft64 создать строковый параметр FileName со значением: VictoryCraft64.exe
  6. После всех действий обязательно перезагружаем пк!

Должно получится вот так:

2) Недостаток оперативной памяти.

Как узнать доступное кол-во оперативной памяти?

Стоит выделять такое количество памяти:
— для 1.7.10: от 512 Мегабайт до 4 Гбайт (больше не понадобится, но можете выделить);
— для 1.12.2: от 3-4 Гбайт (моды кушают довольно много).

Память выделяется в настройках лаунчера:

3) exit code -1073740791, -1073740940, Pixel format not accelerated

Exit Code: -1073740791 (HEX: 0xC0000005 — STATUS_ACCESS_VIOLATION).

Чтобы решить эту проблему, некоторые известные обходные пути включают переустановку JVM или обновление графических драйверов, эта ошибка также может быть вызвана установкой «D3Dgear» .

Как это исправить
Из-за весьма неопределенности ошибки, мы не уверены в точной причине. Пожалуйста, попробуйте следующее и попытайтесь увидеть, как они решат ваше дело:

Это может быть вызвано установкой D3Dgear (если это так, пожалуйста, дайте нам знать!)
— попробуйте переустановить Java
— попробуйте обновить ваши графические драйверы .
— переустановка Java
Minecraft работает на платформе под названием Java. Java бывает разных форм и форм, что может сбивать с толку, какую именно версию вы должны установить, и это, мы надеемся, объясним.

Во-первых, мы хотим выяснить архитектуру процессора нашей ОС.

  • Если вы работаете в Windows — нажмите клавиши Windows + R, чтобы вызвать диалог запуска, в нем введите: «cmd» и нажмите ввод. Это вызовет окно командной строки. В окне введите: echo %processor_architecture%затем нажмите Enter.
  • Если вывод был amd64, у вас 64-битная Ос. Если вывод был x86, у вас 32-битная Ос.
  • Если у вас Mac OSX — у вас 64-битная ОС, все хорошо!
  • Если вы находитесь на Linux — Введите эту команду в окне терминала: less /proc/cpuinfo.

Теперь, когда у нас это есть, посмотрите в Интернете сайты и загрузите соответствующую версию Java для вашей ОС и архитектуру процессора. Если вам будет предложено указать, что указанная версия Java уже установлена, удалите текущую версию Java и повторите этот шаг.

Нашёл еще решение данной ошибки (если у вас видеокарта geforce):
ошибка может возникать из-за обновления драйверов видеокарты NVIDIA до версии 378.49. Симптомами являются: ошибка при запуске Майнкрафта с кодом -1073740791 или даже лаунчера.

Решение:
1) нужно проверить, действительно ли у вас данная версия драйверов видеокарты. Нажимаем «Пуск» пишем в поиск «dxdiag.exe» и запускаем данную программу. В ней выбираем вкладку «Экран» (Монитор) и если находим такую надпись возле «Версии:» …3.7849 (что и означает версию 378.49), то у вас проблема в драйверах! Переходите к следующему пункту.

2.1) установите более новую версию драйвера, например 378.66, через их программу Geforce Experience (скачиватйе только с оф.сайта!).

Или второй вариант:
2.2) Так же, можно установить чуть более старую версию драйверов видеокарты, например 376.33 («загрузка драйверов nvidia» в поисковой запрос — и заходите на оф.сайт).
На данной странице, вам придётся выбрать вашу модель видеокарты и версию операционной системы, нажать «Поиск» и скачать драйвера.
[!] Скачивайте файлы только с официальных источников [!]

Если вы выполните все действия в прошлом моем ответе и этом, то отпишите — помогло или нет. Надеюсь, что все будет хорошо!

4) exit code -805306369

В основном эта проблема свидетельствует о нехватке оперативной памяти

Возможное исправление.
Эта проблема часто вызвана вредоносным или проблемным программным обеспечением в системе. Мы рекомендуем использовать ADWCleaner для его удаления.

Или попробуйте следующее:

  • Попробуйте посмотреть исправление в MC-74465 (Удаление _JAVA_OPTIONS, установленного некоторыми программами тюнера и клавиатуры) и в MCL-6022.
  • Если вы используете Discord, отключите его функцию наложения или полностью закройте Discord, см. Также MC-124460.
  • Вы также можете проверить неофициальный список известного несовместимого программного обеспечения Minecraft IRC и исправить его, следуя инструкциям на странице.

5) Зависает на 33% загрузки сборки (jinput.jar error)

Данная проблема возникает из за сторонних программ(эмуляторы геймпадов), программ управления звуком.
Также, проблема может появиться из-за определенного устройства, подключенного к компьютеру(геймпад, внешняя звуковая карта, клавиатура)

Список программ вызывающих проблему:

Программа Решение
FakerInput Удалить
Nefarius Software Solution e.U. HidHide Удалить
Nefarius Virtual Gamepad Emulation Bus Driver Удалить
Razer Synapse Отключить / если не поможет, удалить
Steelseries GG Отключить / если не поможет, удалить

Если отключение / удаление программ не помогло, открываем диспетчер устройств.
Отключаем / удаляем все лишние устройства(кроме мышки) в разделах: Контроллеры USB, устройства HID.

Если отключили / удалили что-то лишнее, не переживайте, работа устройства возобновится после переподключения его к компьютеру, либо после перезагрузки!

6) Крашит на 67% загрузки сборки (java.lang.IllegalStateException: From thread Thread[Client thread,10,main])

Отключаем полноэкранный режим в настройках лаунчера

7) Exception in thread «main» java.lang.IllegalArgumentException

Код:

Exception in thread "main" java.lang.IllegalArgumentException
at sun.instrument.InstrumentationImpl.appendToClassLoaderSearch0(Native Method)
at sun.instrument.InstrumentationImpl.appendToSystemClassLoaderSearch(Unknown Source)
at ru.gravit.launcher.VicTOrYCrafTjg.addJVMClassPath(Unknown Source)
at ru.gravit.launcher.vIcTORycRAFtGG.main(Unknown Source)
JVM stopped

Изменить директорию загрузки сборки(в настройках лаунчера) на путь, не содержащий русских символов:

8) Пустое окно отладки

Удаляем файл symsrv.dll из директории: C:WindowsSystem32

9) exit code -1, exit code 0, exit code 1

Это очень частая ошибка, в данной ситуации причин может быть множество.

Посмотрите ваш крашлог, чаще всего ошибка написана там.

В большинстве случаев помогает переустановка Java.
Также этот код ошибки может следовать из ошибок описанных выше, так что попробуйте все способы решения.

III. Если ошибки из окна отладки нет в решениях выше.
1) Прочтите крашлог или текст с режима откладки. Может быть там всё написано «чёрным по белому».
2) exit code …: попробуйте найти причину и решение вашего Exit Code в Интернете (или же поискать решение на https://bugs.mojang.com/browse/).
3) Если решить проблему не получилось, смотрите IV раздел.

IV. «Самый низ темы».
Если вам никакое решение не помогло, есть 2 варианта:
1) Переустановка Windows. Может у вас много лишних файлов, которые каким-то образом мешают загрузке лаунчера/сборке, может у вас стоят конфликтующие программы, может у вас каким-то образом сбиты настройки/не так настроена система. Это самый крайний способ.
2) Создайте тему в разделе «Вопросы и решения по запуску лаунчера» по форме.
ФОРМА НАПИСАНИЯ:

1. Версия вашей операционной системы (Windows 7,8,10,11; Linux; macOS):
2. Разрядность системы (32 бит/64 бит; описано в разделе №I, п.4):
3. Кол-во оперативной памяти на устройстве, кол-во выделенной памяти (описано в разделе №II, п.2):
4. Скриншот ошибки/текст с режима откладки (в текстовом документе)/крашлог:
5. Что вы предпринимали:

ВНИМАНИЕ: Заявки составленные не по форме будут закрыты автоматически и отправлены в неактуальные.

when playing 18w49a i encountered a different crash that i have now fixed, i had assumed 18w50a would work like the last snapshot but i was greated with a different error and i cant seem to find anyone else getting this problem, please help!
here is the game log that i had open.

12:58:43
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 2527 | 1410 | 0 | 1 ( 44% 0%)

12:58:44
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 2599 | 1404 | 0 | 1 ( 45% 0%)

12:58:44
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 2655 | 1321 | 0 | 2 ( 50% 0%)

12:58:45
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 2678 | 1320 | 0 | 2 ( 50% 0%)

12:58:45
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 2704 | 1314 | 0 | 2 ( 51% 0%)

12:58:46
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 2762 | 1305 | 0 | 5 ( 52% 1%)

12:58:46
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 2835 | 1304 | 0 | 12 ( 54% 2%)

12:58:47
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 2915 | 1300 | 0 | 12 ( 55% 2%)

12:58:47
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 2967 | 1298 | 0 | 14 ( 56% 3%)

12:58:48
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 3056 | 1204 | 0 | 22 ( 60% 4%)

12:58:48
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 3148 | 1190 | 0 | 25 ( 62% 5%)

12:58:49
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 3261 | 1195 | 0 | 30 ( 63% 6%)

12:58:49
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 3335 | 1196 | 0 | 30 ( 64% 6%)

12:58:50
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 3425 | 1190 | 0 | 36 ( 65% 8%)

12:58:50
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 3470 | 1092 | 0 | 39 ( 68% 8%)

12:58:51
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 3559 | 1080 | 0 | 40 ( 69% 9%)

12:58:51
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 3560 | 1080 | 0 | 40 ( 69% 9%)

12:58:52
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 3653 | 1082 | 0 | 49 ( 70% 11%)

12:58:52
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 3767 | 1075 | 0 | 52 ( 71% 11%)

12:58:53
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 3840 | 1066 | 0 | 54 ( 72% 12%)

12:58:53
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 3915 | 1067 | 0 | 54 ( 72% 12%)

12:58:54
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 4044 | 957 | 0 | 63 ( 76% 14%)

12:58:54
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 4187 | 956 | 0 | 70 ( 77% 15%)

12:58:55
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 4285 | 946 | 0 | 77 ( 77% 17%)

12:58:55
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 4365 | 946 | 0 | 81 ( 78% 18%)

12:58:56
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 4510 | 943 | 0 | 86 ( 79% 19%)

12:58:56
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 4635 | 813 | 0 | 90 ( 82% 20%)

12:58:57
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 4783 | 815 | 0 | 96 ( 82% 21%)

12:58:57
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 4811 | 812 | 0 | 96 ( 83% 21%)

12:58:58
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 5015 | 817 | 0 | 106 ( 83% 24%)

12:58:58
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 5112 | 802 | 0 | 113 ( 84% 25%)

12:58:59
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 5240 | 669 | 0 | 114 ( 87% 25%)

12:58:59
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 5398 | 665 | 0 | 124 ( 87% 28%)

12:59:00
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 5401 | 664 | 0 | 124 ( 87% 28%)

12:59:00
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 5540 | 674 | 0 | 127 ( 87% 28%)

12:59:01
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 5648 | 658 | 1 | 133 ( 88% 30%)

12:59:01
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 5798 | 659 | 0 | 142 ( 88% 32%)

12:59:02
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 5980 | 518 | 0 | 150 ( 91% 34%)

12:59:02
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 6032 | 525 | 0 | 152 ( 91% 34%)

12:59:03
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 6079 | 519 | 0 | 155 ( 91% 35%)

12:59:03
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 6199 | 510 | 0 | 160 ( 91% 36%)

12:59:04
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 6364 | 507 | 0 | 169 ( 92% 38%)

12:59:04
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 6548 | 509 | 0 | 176 ( 92% 39%)

12:59:05
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 6639 | 520 | 0 | 179 ( 92% 40%)

12:59:05
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 6691 | 520 | 0 | 183 ( 92% 41%)

12:59:06
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 6821 | 364 | 0 | 183 ( 94% 41%)

12:59:06
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 7022 | 365 | 0 | 190 ( 94% 43%)

12:59:07
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 7143 | 355 | 0 | 197 ( 95% 44%)

12:59:07
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 7309 | 350 | 0 | 212 ( 95% 48%)

12:59:08
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 7337 | 350 | 0 | 213 ( 95% 48%)

12:59:08
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 7477 | 361 | 0 | 213 ( 95% 48%)

12:59:09
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 7596 | 347 | 0 | 225 ( 95% 51%)

12:59:09
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 7694 | 223 | 0 | 225 ( 97% 51%)

12:59:10
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 7841 | 193 | 0 | 233 ( 97% 52%)

12:59:10
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 7911 | 190 | 0 | 233 ( 97% 52%)

12:59:11
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 8040 | 197 | 0 | 242 ( 97% 54%)

12:59:11
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 8231 | 196 | 0 | 255 ( 97% 57%)

12:59:12
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 8370 | 195 | 0 | 258 ( 97% 58%)

12:59:12
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 8463 | 182 | 0 | 258 ( 97% 58%)

12:59:13
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 8669 | 40 | 0 | 263 ( 99% 59%)

12:59:13
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 8677 | 40 | 0 | 272 ( 99% 61%)

12:59:14
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 8801 | 24 | 0 | 272 ( 99% 61%)

12:59:15
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 9168 | 8 | 0 | 272 ( 99% 61%)

12:59:15
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 9168 | 8 | 0 | 272 ( 99% 61%)

12:59:15
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 9221 | 18 | 0 | 292 ( 99% 66%)

12:59:16
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 9358 | 18 | 0 | 293 ( 99% 66%)

12:59:16
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 9450 | 3 | 1 | 298 ( 99% 67%)

12:59:17
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 9556 | 0 | 0 | 301 (100% 68%)

12:59:17
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 9559 | 0 | 0 | 301 (100% 68%)

12:59:18
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 9559 | 0 | 0 | 301 (100% 68%)

12:59:18
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 9559 | 0 | 0 | 301 (100% 68%)

12:59:19
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 9604 | 0 | 0 | 315 (100% 71%)

12:59:19
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 9646 | 0 | 0 | 325 (100% 73%)

12:59:20
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 9682 | 0 | 0 | 339 (100% 76%)

12:59:20
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 9685 | 0 | 0 | 340 (100% 77%)

12:59:21
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 9742 | 0 | 0 | 359 (100% 81%)

12:59:21
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 9769 | 0 | 0 | 364 (100% 82%)

12:59:22
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 9805 | 0 | 0 | 378 (100% 85%)

12:59:22
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 9817 | 0 | 0 | 379 (100% 85%)

12:59:23
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 9817 | 0 | 0 | 379 (100% 85%)

12:59:23
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 9847 | 0 | 0 | 387 (100% 87%)

12:59:24
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 9874 | 0 | 0 | 395 (100% 89%)

12:59:24
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 9931 | 0 | 0 | 414 (100% 93%)

12:59:25
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 9943 | 0 | 0 | 414 (100% 93%)

12:59:25
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 10006 | 0 | 0 | 439 (100% 99%)

12:59:25
net.minecraft.server.MinecraftServer
Server thread
info
Preparing spawn area: 10015 | 0 | 0 | 441 (100% 100%)

12:59:25
net.minecraft.server.MinecraftServer
Server thread
info
Time elapsed: 46299 ms

12:59:26
dqk
Server thread
info
Changing view distance to 12, from 10

12:59:32
wt
Server thread
info
gsy17[local:E:266884bb] logged in with entity id 668 at (-89.5, 68.0, 89.5)

12:59:32
net.minecraft.server.MinecraftServer
Server thread
info
gsy17 joined the game

12:59:33
net.minecraft.server.MinecraftServer
Server thread
warn
Can’t keep up! Is the server overloaded? Running 5357ms or 107 ticks behind

12:59:37
dqk
Server thread
info
Saving and pausing game…

12:59:37
net.minecraft.server.MinecraftServer
Server thread
info
Saving chunks for level ‘Copy of New World’/minecraft:the_nether

12:59:37
bry
Server thread
info
ThreadedAnvilChunkStorage (DIM-1): All chunks are saved

12:59:37
net.minecraft.server.MinecraftServer
Server thread
info
Saving chunks for level ‘Copy of New World’/minecraft:the_end

12:59:37
bry
Server thread
info
ThreadedAnvilChunkStorage (DIM1): All chunks are saved

12:59:37
net.minecraft.server.MinecraftServer
Server thread
info
Saving chunks for level ‘Copy of New World’/minecraft:overworld

12:59:38
o
Client thread
info
Loaded 0 advancements

12:59:40
launcher
main
info

07:59:40
monitor
Process Monitor
fatal
Process crashed with exit code -1073740940

Понравилась статья? Поделить с друзьями:
  • Код ошибки мазда 3 p2177
  • Код ошибки критикал процесс диет
  • Код ошибки крипер майнкрафт что означает
  • Код ошибки крипер как исправить
  • Код ошибки 800702e4