Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΈΠΌΠΏΠ»Π΅ΠΊΡ-ΠΌΠ΅ΡΠΎΠ΄Π° Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠ»Π΅Π½Π°ΠΌΠΈ
Double **bv — Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±Π°Π·ΠΈΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π·Π°Π΄Π°ΡΠΈ. ΠΠ°Π½Π½ΡΠΉ ΡΠ»Π΅Π½ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π½Π° ΠΌΠ°ΡΡΠΈΠ² ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ num_v x 2, Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΡΠΎΠ±ΡΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ. Π‘Π°ΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±Π°Π·ΠΈΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π·Π°Π΄Π°ΡΠΈ, Π° Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ Π½ΠΎΠΌΠ΅ΡΠ° ΡΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ. ΠΠΎΠΌΠ΅ΡΠ° Π±Π°Π·ΠΈΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ … Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΈΠΌΠΏΠ»Π΅ΠΊΡ-ΠΌΠ΅ΡΠΎΠ΄Π° Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠ»Π΅Π½Π°ΠΌΠΈ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π€ΠΠΠ£ Π‘ΠΠ ΠΠΎΠ»Π³ΠΎΠ³ΡΠ°Π΄ΡΠΊΠΈΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ»Π»Π΅Π΄ΠΆ Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΡ 230 105 «ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ»
ΠΠ£Π Π‘ΠΠΠΠ― Π ΠΠΠΠ’Π ΠΠ ΠΠΠ‘Π¦ΠΠΠΠΠΠ «ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ»
«Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΈΠΌΠΏΠ»Π΅ΠΊΡ-ΠΌΠ΅ΡΠΎΠ΄Π° Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠ»Π΅Π½Π°ΠΌΠΈ»
ΠΡΠΎΠ²Π΅ΡΠΈΠ»:
Π’Π΅ΡΠΊΠΈΠ½ Π.Π.
ΠΡΠΏΠΎΠ»Π½ΠΈΠ»:
Π‘ΡΡΠ΄Π΅Π½Ρ Π³Ρ. ΠΠ’-3−1
ΠΠ΅Π²ΠΈΡΠΈΠ½ Π‘. Π ΠΠΎΠ»Π³ΠΎΠ³ΡΠ°Π΄ 2011
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ΅Π»ΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π½Π°Π½ΠΈΠΉ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ Π±Π°Π·ΠΎΠ²ΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΌΠΏΠ»Π΅ΠΊΡ — ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ, ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠ΅ΠΌ Π² Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΏΠ»Π°Π½Π° ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π‘++.
Π‘ΠΈΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ — Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ — ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΎΡ ΠΎΠ΄Π½ΠΎΠΉ Π±Π°Π·ΠΈΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΊ Π΄ΡΡΠ³ΠΎΠΉ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π»Π΅-Π²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΠΎΠ»ΡΡΠ΅ (ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΠΊΡΠΈΡΡΡΡΡΡ Π² ΡΠΈΠΌΠΏΠ»Π΅ΠΊΡ-Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅). ΠΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ΅ΡΡ-Π²ΡΠ΅Ρ, ΡΠΎ ΠΎΠ½ΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ°Π³ΠΎΠ² (Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΉ «Π²ΡΡΠΎΠΆΠ΄Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ; ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²Π»Π΅Π½ΠΈΠ΅ «Π·Π°ΡΠΈΠΊΠ»ΠΈΠ²Π°Π½ΠΈΡ», Ρ. Π΅. ΠΌΠ½ΠΎΠ³ΠΎ-ΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈ ΡΠΎΠΌΡ ΠΆΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ).
ΠΠ°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π°ΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΠΊΠΈΠΌ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΎΠΌ ΠΠΆΠΎΡΠ΄ΠΆΠ΅ΠΌ ΠΠ°Π½ΡΠΈΠ³ΠΎΠΌ (George Dantzig) Π² 1947 Π³ΠΎΠ΄Ρ.
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ΅ΡΠ°ΡΡΡΡ Π±Π°Π·ΠΎΠ²ΡΡ Π·Π°Π΄Π°ΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΌΠΏΠ»Π΅ΠΊΡ-ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΌΠΏΠ»Π΅ΠΊΡ-ΡΠ°Π±Π»ΠΈΡ. Π‘Π²ΠΎΠ±ΠΎΠ΄Π½ΡΠ΅ ΡΠ»Π΅Π½Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π·Π°Π΄Π°ΡΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌΠΈ.
ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ Π·Π°Π΄Π°ΡΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π»Π΅Π²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠΊΡΡΡΠ΅ΠΌΡΠΌΠ° ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
F (X) = 3×1 + 5×2 + 4×3 => max
0,1×1 + 0,2×2 + 0,4×3 <= 1100
0.05×1 + 0.02×2 — 0.02×3 <= 120
3x1 + x2 + 2×3 <= 8000
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡΠΈ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΏΠ»Π°Π½ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΌΠΏΠ»Π΅ΠΊΡ-ΠΌΠ΅ΡΠΎΠ΄Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΠΌΠΏΠ»Π΅ΠΊΡ-ΡΠ°Π±Π»ΠΈΡΡ.
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΡΠ°Π±ΠΎΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΠ½ΡΡΡ ΡΠ°ΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΈΠΌΠΏΠ»Π΅ΠΊΡ-ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ°Π»ΠΎΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°Π΄Π°Ρ ΠΏΠΈΡΡΠΌΠ΅Π½Π½ΠΎ. ΠΠΎΡΠ»Π΅ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π±ΡΠ»Π° ΠΏΡΠΎΠ΄ΡΠΌΠ°Π½Π° ΡΡΡΡΠΊΡΠΎΡΠ° ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ Π±ΡΠ» Π½Π°ΠΏΠΈΡΠ°Π½ ΠΊΠ»Π°ΡΡ user_data, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅, Ρ. Π΅. Π‘Π°ΠΌΡ Π·Π°Π΄Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅ΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΌΠΏΠ»Π΅ΠΊΡ-ΠΌΠ΅ΡΠΎΠ΄Π°. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
ΠΠΈΡΡΠΈΠ½Π³ 1. user_data.h
#ifndef _USER_DATA_H_
#define _USER_DATA_H_
class user_data {
public:
void get_data_from_user ();
void user_data_is_valid ();
protected:
double *function;
double *fm;
double **system;
int *sign;
int num_v;
int num_l;
bool way;
};
#endif /* _USER_DATA_H_ */
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΡΠ΅ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅-ΡΠ»Π΅Π½Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
int num_v Ρ ΡΠ°Π½ΠΈΡ Π² ΡΠ΅Π±Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ.
Int num_l Ρ ΡΠ°Π½ΠΈΡ Π² ΡΠ΅Π±Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ.
double *function Ρ ΡΠ°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠ² ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°Π΄Π°ΡΠΈ. ΠΠ°Π½Π½ΡΠΉ ΡΠ»Π΅Π½ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ ΡΠΈΠΏΠ° double, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π΅Π»Π΅Π½Π° ΠΏΠ°ΠΌΡΡΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ num_v.
double *fm Ρ ΡΠ°Π½ΠΈΡ Π² ΡΠ΅Π±Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡ ΡΠ»Π΅Π½ΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ. Π’Π°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ ΡΠΈΠΏΠ° double, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ num_l.
double **system Ρ ΡΠ°Π½ΠΈΡ Π² ΡΠ΅Π±Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠ² ΡΠ°ΠΌΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ. ΠΡΠΎ ΡΠ»Π΅Π½ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π½Π° ΠΌΠ°ΡΡΠΈΠ² ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΠΈΡΠ°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ ΠΏΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ (num_l x num_v).
int *sign Ρ ΡΠ°Π½ΠΈΡ Π² ΡΠ΅Π±Π΅ Π·Π½Π°ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ. Π―Π²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ ΡΠΈΠΏΠ° int, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΡΠΈΠΏΠ° Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ num_l. Π Π°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΉ ΡΠΈΠΏ, Π° Π½Π΅ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΉ. Ρ.ΠΊ. Π£ Π½Π°Ρ Π΅ΡΡΡ ΡΡΠΈ Π·Π½Π°ΠΊΠ°: <=, = ΠΈ >=, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΡΠ°Π½ΡΡΡΡΡ Π² *sign ΠΊΠ°ΠΊ 0, 1 ΠΈ 2 ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
bool way Ρ ΡΠ°Π½ΠΈΡ Π² ΡΠ΅Π±Π΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°Π΄Π°ΡΠΈ (min/max). ΠΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°ΡΠΈ Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ ΡΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ-ΡΠ»Π΅Π½ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π² ΡΠ΅Π±Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΡΡΠΈΠ½Ρ (true). Π ΠΏΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ Π½Π° ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π»ΠΎΠΆΡ (false). Π’Π°ΠΊΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΠΈΠΎΠ½Π°Π»Π΅Π½ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅Π»ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π°. ΠΠΎΡΡΠΎΠΌΡ ΡΠΈΠΏ bool ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ.
Π€ΡΠ½ΠΊΡΠΈΡ void get_data_from_user (), ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π² Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅-ΡΠ»Π΅Π½Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π²ΡΡΠ΅. Π Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Ρ ΡΠ°Π½ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠΎΡΠΈΠΏ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. Π‘Π°ΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ user_data.cpp. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°.
ΠΠΈΡΡΠΈΠ½Π³ 2. user_data.cpp
#include
#include
#include
#include «user_data.h»
using std: cout;
using std: cin;
using std: endl;
using std: string;
void error (int err_no)
{
switch (err_no) {
case 0:
cout << «nΠΡ Π²Π²Π΅Π»ΠΈ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. n» << endl;
break;
case 1:
cout << «nΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΡ ΠΌΠ΅Π½Π΅Π΅ Π΄Π²ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ. n» << endl;
break;
case 2:
cout << «nΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ 500 ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ. n» << endl;
break;
case 3:
cout << «nΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΡ ΠΌΠ΅Π½Π΅Π΅ Π΄Π²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . n» << endl;
break;
case 4:
cout << «nΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ 500 ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ. n» << endl;
break;
}
}
void user_data:get_data_from_user ()
{
string num_limits, num_vars, s_var, fr_m, sn, func, w;
int i, j;
bool validator = false;
do {
cout << «ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅: «;
getline (cin, num_limits);
if (atoi (num_limits.c_str ()) < 2)
error (1);
else if (atoi (num_limits.c_str ()) > 500)
error (2);
else
validator = true;
} while (!validator);
num_l = atoi (num_limits.c_str ());
validator = false;
do {
cout << «ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ: «;
getline (cin, num_vars);
if (atoi (num_vars.c_str ()) < 2)
error (3);
else if (atoi (num_vars.c_str ()) > 500)
error (4);
else
validator = true;
} while (!validator);
num_v = atoi (num_vars.c_str ());
validator = false;
function = new double [num_v];
system = new double *[num_l];
for (i = 0; i < num_l; i++)
system[i] = new double [num_v];
fm = new double [num_l];
sign = new int [num_l];
cout << «nΠΠ°ΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΡ ΠΏΡΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. n» << endl;
for (i = 0; i < num_v; i++) {
do {
cout << «ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΡΠΊΠ½ΡΠΈΠΈ ΠΏΡΠΈ x» << i + 1 << «: «;
getline (cin, func);
if (atof (func.c_str ()) == 0)
error (0);
else {
validator = true;
function[i] = atof (func.c_str ());
}
} while (!validator);
validator = false;
}
do while (!validator);
cout << «nΠΠ°ΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ. n» << endl;
for (i = 0; i < num_l; i++) {
cout << «ΠΠ°ΠΏΠΎΠ»Π½ΠΈΡΠ΅ «<< i + 1 << «-Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅. n» << endl;
for (j = 0; j < num_v; j++) {
do {
cout << «ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΡΡΡΠΈΡΠΈΡΠ½Ρ ΠΏΡΠΈ x» << j + 1 << «: «;
getline (cin, s_var);
if (atof (s_var.c_str ()) == 0)
error (0);
else {
validator = true;
}
} while (!validator);
system[i][j] = atof (s_var.c_str ());
validator = false;
}
do {
cout << «ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π·Π½Π°ΠΊ ΠΏΡΠΈ «<< i + 1 << «-ΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΈ (<=, =, >=): «;
getline (cin, sn);
if (sn == «<=» || sn == «=» || sn == «>=») {
validator = true;
if (sn == «<=»)
sign[i] = 0;
if (sn == «=»)
sign[i] = 1;
if (sn == «>=»)
sign[i] = 2;
}
else
error (0);
cout << sign[i] << endl;
} while (!validator);
validator = false;
do {
cout << «ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΉ ΡΠ»Π΅Π½ ΠΏΡΠΈ «<< i + 1 << «-ΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΈ: «;
getline (cin, fr_m);
if (atof (fr_m.c_str ()) == 0)
error (0);
else
validator = true;
} while (!validator);
fm[i] = atof (fr_m.c_str ());
validator = false;
cout << endl;
}
}
Π€ΡΠ½ΠΊΡΠΈΡ error (int err_no) ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π½ΠΎΠΌΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ²Π΅ΡΡΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π²Π²Π΅Π» Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠ°Π»Π΅Π΅ Π½ΠΎΠΌΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΉ Π² ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ switch (), ΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°, Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° cout.]
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ-ΡΠ»Π΅Π½ get_data_from_user () ΠΊΠ»Π°ΡΡΠ° user_data. ΠΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π²ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° string, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ , Π΅ΡΠ»ΠΈ Π²ΡΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΎ Π²Π΅ΡΠ½ΠΎ, ΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· std: string Π² int ΠΈΠ»ΠΈ double Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ atoi () ΠΈ atof () ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
Π‘Π½Π°ΡΠ°Π»Π° Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΡΠ»ΠΈ Π±ΡΠ»ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΎ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΠΎΡ 2 Π΄ΠΎ 500, ΡΠΎ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² int ΠΈ Π·Π°Π½ΠΎΡΡΠΈΡΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ-ΡΠ»Π΅Π½ num_l. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ error () Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΠ²ΡΡΡΠ΅ΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΡΠ½ΠΎΠ²Π° Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½ΡΡ .
ΠΠ°Π»Π΅Π΅, ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²ΠΎΠ΄ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π·Π°Π΄Π°ΡΠΈ.
ΠΠ°ΡΠ΅ΠΌ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎΠ΄ ΠΌΠ°ΡΡΠΈΠ² function ΠΈ ΠΌΠ°ΡΡΠΈΡΡ system, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ΄Π΅Ρ Π²Π²ΠΎΠ΄ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅Π»ΠΈ Π² ΡΠΈΠΊΠ»Π΅. ΠΠΎΡΠ»Π΅ ΠΈΠ΄Π΅Ρ Π²Π²ΠΎΠ΄ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠ»ΠΈ ΠΎΠ½ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΎ Π²Π΅ΡΠ½ΠΎ, ΡΠΎ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ-ΡΠ»Π΅Π½ way Π·Π°Π½ΠΎΡΠΈΡΡΡ true ΠΈΠ»ΠΈ false, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π Π΅Π³ΠΈΡΡΡ ΠΏΡΠΈ Π²Π²ΠΎΠ΄Π΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π΅ ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅. ΠΡΠ»ΠΈ Π²ΡΠ΅ Π²Π΅ΡΠ½ΠΎ, Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΌΠ°ΡΡΠΈΡΠ° system ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ. ΠΠ°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² Π΄Π²ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΠΈΠΊΠ»Π°Ρ , Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ , ΡΠ°ΠΊΠΆΠ΅ Π²Π²ΠΎΠ΄ΠΈΡΡΡ Π·Π½Π°ΠΊ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ»Π΅Π½Π° ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΈ. ΠΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΡ Π²Π²ΠΎΠ΄, Π²ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ-ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° user_data Π±ΡΠ΄ΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ, ΠΈ ΡΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ°ΠΌΠΎΠΌΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² ΠΊΠ»Π°ΡΡΠ΅ simplex, ΡΠ²Π»ΡΡΡΠΈΠΌΡΡ ΠΏΡΡΠΌΡΠΌ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° user_data. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
ΠΠΈΡΡΠΈΠ½Π³ 3. simplex. h
#ifndef _SIMPLEX_H_
#define _SIMPLEX_H_
#include
#include «user_data.h»
class simplex: public user_data {
public:
void init ();
void gen_plane ();
bool plane_is_valid ();
bool function_is_undefined ();
void print_result_to_file (int it_num);
private:
double func;
double **bv;
double **sv;
double *istr;
double *th;
double alm;
int i_lrow;
int i_lcol;
std:stringstream table;
};
#endif /* _SIMPLEX_H_ */
Π‘Π½Π°ΡΠ°Π»Π° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π·Π°ΠΊΡΡΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°ΡΡΠ»Π΅Π½Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
double func — ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΠ½ΠΎ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ.
double **bv — Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±Π°Π·ΠΈΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π·Π°Π΄Π°ΡΠΈ. ΠΠ°Π½Π½ΡΠΉ ΡΠ»Π΅Π½ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π½Π° ΠΌΠ°ΡΡΠΈΠ² ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ num_v x 2, Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΡΠΎΠ±ΡΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ. Π‘Π°ΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±Π°Π·ΠΈΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π·Π°Π΄Π°ΡΠΈ, Π° Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ Π½ΠΎΠΌΠ΅ΡΠ° ΡΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ. ΠΠΎΠΌΠ΅ΡΠ° Π±Π°Π·ΠΈΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡΠ²Π΅Ρ ΠΈ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅.
double **sv — ΠΠ°ΡΡΠΈΡΠ° ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠ² ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π·Π°Π΄Π°ΡΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ num_l x num_v * 2. ΠΠ΅ΡΠ²ΡΠ΅ num_v ΡΡΠΎΠ»Π±ΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ, Π° ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ num_v ΡΡΠΎΠ»Π±ΡΡ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΠ΅ΠΉ, Π΅ΡΠ»ΠΈ ΡΠ΅ΡΠ°Π΅ΡΡΡ Π·Π°Π΄Π°ΡΠ° Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ, Π΅ΡΠ»ΠΈ ΠΆΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ Π½Π° ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΠΉ Π·Π½Π°ΠΊ.
double *istr — ΠΈΠ½Π΄Π΅ΠΊΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ°, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ num_v * 2, ΠΏΠ΅ΡΠ²Π°Ρ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠ°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ-ΡΠ΅Π»ΠΈ Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌ Π·Π½Π°ΠΊΠΎΠΌ, Π° Π²ΡΠΎΡΠ°Ρ Π½ΡΠ»ΡΠΌΠΈ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ. ΠΠ° ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΌΠ΅Π½ΡΡΡΡΡ.
Int i_lcol = ΠΈΠ½Π΄Π΅ΠΊΡ Π²Π΅Π΄ΡΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π±ΡΠ° ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠ»Π°Π½Π°.
double *th (Π³ΡΠ΅Ρ. «ΡΠ΅ΡΠ°») — ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΡΠΎΠ»Π±Π΅Ρ ΡΠΈΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ num_l.
Int i_lrow = ΠΈΠ½Π΄Π΅ΠΊΡ Π²Π΅Π΄ΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠ»Π°Π½Π°.
double alm — ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠΉΡΡ Π½Π° ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠΈ Π²Π΅Π΄ΡΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π±ΡΠ° ΠΈ Π²Π΅Π΄ΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ.
std:stringstream table — ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° std: stringstream, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²Π΅ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²ΡΠ²ΠΎΠ΄ Π² Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ».
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠ΅ΠΉΡΠ°Ρ Π±ΡΠ»ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ-ΡΠ»Π΅Π½Π° ΠΊΠ»Π°ΡΡΠ° simplex. ΠΠ΅ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ simplex.cpp.
ΠΠΈΡΡΠΈΠ½Π³ 4. simplex. cpp
#include
#include
#include
#include
#include
#include «user_data.h»
#include «simplex.h»
using std: cout;
using std: endl;
void simplex: init ()
{
int i, j;
func = 0;
sv = new double *[num_l];
for (i = 0; i < num_l; i++)
sv[i] = new double [num_v * 2];
for (i = 0; i < num_l; i++) {
for (j = 0; j < num_v; j++)
sv[i][j] = system[i][j];
for (; j < num_v * 2; j++)
if (i + num_v == j)
if (way)
sv[i][j] = 1;
else
sv[i][j] = -1;
else
sv[i][j] = 0;
}
istr = new double [num_v * 2];
bv = new double *[num_l];
for (i = 0; i < num_l; i++) {
bv[i] = new double [2];
bv[i][0] = i + num_v;
bv[i][1] = fm[i];
}
for (i = 0; i < num_v * 2; i++)
if (i < num_v)
istr[i] = function[i] * -1;
else
istr[i] = 0;
i_lcol = 0;
for (i = 0; i < num_v * 2 — 1; i++) {
if (istr[i] < 0)
if (fabs (istr[i + 1]) > fabs (istr[i]))
i_lcol = i + 1;
}
th = new double [num_l];
for (i = 0; i < num_l; i++)
th[i] = bv[i][1] / sv[i][i_lcol];
i_lrow = 0;
for (i = 0; i < num_l — 1; i++)
if (th[i] > th[i + 1])
i_lrow = i + 1;
alm = sv[i_lrow][i_lcol];
print_result_to_file (0);
}
bool simplex: plane_is_valid ()
{
int i;
bool result = true;
if (way)
for (i = 0; i < num_v * 2; i++)
if (istr[i] < 0) {
result = false;
break;
}
if (!way)
for (i = 0; i < num_v * 2; i++)
if (istr[i] >= 0) {
result = false;
break;
}
return result;
}
bool simplex: function_is_undefined ()
{
int i;
for (i = 0; i < num_l; i++)
if (th[i] < 0) {
return false;
}
return true;
}
void simplex: gen_plane ()
{
int i, j, it_num = 0;
double A, B;
while (!plane_is_valid () && function_is_undefined ()) {
A = bv[i_lrow][1];
B = istr[i_lcol];
func -= A * B / alm;
double *tmp_bv = new double [num_l];
bv [i_lrow][0] = i_lcol;
A = bv[i_lrow][1];
for (i = 0; i < num_l; i++) {
B = sv[i][i_lcol];
tmp_bv[i] = bv[i_lrow][1];
if (i ≠ i_lrow)
tmp_bv[i] = bv[i][1] - A * B / alm;
else
tmp_bv[i] /= alm;
}
for (i = 0; i < num_l; i++)
bv[i][1] = tmp_bv[i];
double *tmp_istr = istr;
B = istr[i_lcol];
for (i = 0; i < num_v * 2; i++) {
A = sv[i_lrow][i];
tmp_istr[i] = istr[i] - A * B / alm;
}
istr = tmp_istr;
double **tmp_sv = new double *[num_l];
for (i = 0; i < num_l; i++)
tmp_sv[i] = new double [num_v * 2];
for (i = 0; i < num_l; i++)
for (j = 0; j < num_v * 2; j++) {
tmp_sv[i][j] = sv[i][j];
A = sv[i_lrow][j];
B = sv[i][i_lcol];
if (i == i_lrow)
tmp_sv[i][j] /= alm;
else
tmp_sv[i][j] = sv[i][j] - A * B / alm;
}
sv = tmp_sv;
i_lcol = 0;
for (i = 0; i < num_l; i++)
th[i] = bv[i][1] / sv[i][i_lcol];
i_lrow = 0;
for (i = 0; i < num_l -1; i++)
if (th[i] > th[i + 1])
i_lrow = i + 1;
alm = sv[i_lrow][i_lcol];
it_num++;
print_result_to_file (it_num);
}
if (!function_is_undefined ())
cout << «nΠ¦Π΅Π»Π΅Π²Π°Ρ ΡΡΠΊΠ½ΡΠΈΡ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π°, Π΄Π°Π½Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρn» << endl;
else {
cout << «nf (x) = «<< func << «n» << endl;
for (i = 0; i < num_l; i++) {
cout << «x» << bv[i][0] + 1 << «= «<< bv[i][1] << endl;
}
cout << «nΠΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π±ΡΠ»ΠΈ Π·Π°ΠΏΠΈΡΠ°Π½Ρ Π² ΡΠ°ΠΉΠ» table. txtn» << endl;
}
}
void simplex: print_result_to_file (int it_num)
{
int i, j;
if (!it_num) {
table << «ΠΠ°Π΄Π°Π½Π° ΡΠ΅Π»Π΅Π²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ: n» << endl;
std:stringstream f_x;
f_x << «f (x) = «;
for (i = 0; i < num_v; i++) {
if (!i)
f_x << function[i] << «x» << i + 1 << ««;
else {
if (function[i] < 0)
f_x << «- «<< fabs (function[i]) << «x» << i + 1 << ««;
if (function[i] > 0)
f_x << «+ «<< function[i] << «x» << i + 1 << ««;
}
}
std:string minmax;
if (way)
minmax = «max» ;
else
minmax = «min» ;
f_x << «=> «<< minmax << «n» << endl;
table << f_x.str ();
table << «Π ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ: n» << endl;
std:stringstream math_sys;
std:string math_sign;
for (i = 0; i < num_l; i++) {
for (j = 0; j < num_v; j++) {
if (!j)
math_sys << system[i][j] << «x» << j + 1 << ««;
else
if (system[i][j] == 1)
if (!j)
math_sys << «x» << j + 1 << ««;
else
math_sys << «+ x» << j + 1 << ««;
else
if (system[i][j] == -1)
if (!j)
math_sys << «-x» << j + 1 << ««;
else
math_sys << «- x» << j + 1 << ««;
else {
if (system[i][j] < 0)
math_sys << «- «<< fabs (system[i][j])<< «x» << j + 1 << ««;
else
math_sys << «+ «<< system[i][j] << «x» << i + 1 << ««;
if (!sign[i])
math_sign = «<=»;
if (sign[i] == 1)
math_sign = «=»;
if (sign[i] == 2)
math_sign = «>=»;
}
}
math_sys << math_sign << «» << fm[i];
math_sys << endl;
}
std:string min_or_max;
if (way)
min_or_max = «ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ» ;
else
min_or_max = «ΠΌΠΈΠ½ΠΈΠΌΡΠΌ» ;
table << math_sys.str () << endl;
table << «Π Π΅ΡΠΈΠΌ Π΄Π°Π½Π½ΡΡ Π·Π°Π΄Π°ΡΡ Π½Π° «<< min_or_max << «ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΡΠΈΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡ. nΠΠΎΡΡΡΠΎΠΈΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΎΠΏΠΎΡΠ½ΡΠΉ ΠΏΠ»Π°Π½: n» << endl;
}
for (i = 0; i < num_l; i++) {
table << «x» << bv[i][0] + 1 << «t» << bv[i][1] << «t» ;
for (j = 0; j < num_v * 2; j++)
table << sv[i][j] << «t» ;
if (!plane_is_valid ())
table << th[i];
table << «n» << endl;
}
table << «f (x)t» << func << «t» ;
for (i = 0; i < num_v * 2; i++)
table << istr[i] << «t» ;
table << «n» ;
if (plane_is_valid ()) {
if (plane_is_valid () && function_is_undefined ())
table << «nΠΠ°Π½Π½ΡΠΉ ΠΏΠ»Π°Π½ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ. Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ.» << endl;
std:ofstream outfile («table.txt»);
outfile << table. str ();
}
else {
std:string ln_or_gn;
if (way)
ln_or_gn = «Π½Π΅ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠ΅» ;
else
ln_or_gn = «ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠ΅» ;
std:stringstream num_of_plane;
if (!it_num)
num_of_plane << «ΠΠ΅ΡΠ²ΡΠΉ ΠΎΠΏΠΎΡΠ½ΡΠΉ ΠΏΠ»Π°Π½» ;
else
num_of_plane << it_num + 1 << «-ΠΉ ΠΏΠ»Π°Π½ ΡΠ°ΠΊΠΆΠ΅» ;
table << «n» << num_of_plane.str () << «Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡnΠ² ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ «<< ln_or_gn << «ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.nErΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ»ΡΡΡΠΈΡΡ. n» << endl;
}
}
Π‘Π½Π°ΡΠ°Π»Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΎΠΏΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π°. ΠΡΠΈΠΌ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ-ΡΠ»Π΅Π½ init () ΠΊΠ»Π°ΡΡΠ° simplex.
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ-ΡΠ΅Π»ΠΈ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΎΠΏΠΎΡΠ½ΠΎΠΌ ΠΏΠ»Π°Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ°Π²Π½ΠΎ Π½ΡΠ»Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π² init () Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ-ΡΠ»Π΅Π½Π° func ΠΊΠ»Π°ΡΡΠ° simplex ΠΈΠΌΠ΅Π½Π½ΠΎ Π½ΡΠ»Π΅ΠΌ.
ΠΠ°ΡΠ΅ΠΌ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎΠ΄ ΠΌΠ°ΡΡΠΈΡΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠ² sv. Π ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π΅Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. ΠΠ΅ΡΠ²Π°Ρ ΡΠ°ΡΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ, Π²ΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΠ΅ΠΉ, Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ, Π΅ΡΠ»ΠΈ ΠΆΠ΅ ΡΠ΅ΡΠ°Π΅ΡΡΡ Π·Π°Π΄Π°ΡΠ° Π½Π° ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, Π΅Π΄ΠΈΠ½ΠΈΡΡ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΠ΅ ΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΠΉ Π·Π½Π°ΠΊ.
ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ sv ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΠ΄ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² istr ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° (ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΎΠΏΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π°). ΠΠ΅ΡΠ²Π°Ρ Π΅Π΅ ΡΠ°ΡΡΡ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌ Π·Π½Π°ΠΊΠΎΠΌ, Π²ΡΠΎΡΠ°Ρ Π΅Π΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π½ΡΠ»ΡΠΌΠΈ.
ΠΠ°ΡΠ΅ΠΌ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π²Π΅Π΄ΡΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π±ΡΠ° ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΎΠΏΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π° Π·Π°Π΄Π°ΡΠΈ. ΠΠ°Π½Π½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
ΠΠ°Π»Π΅Π΅ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎΠ΄ ΠΌΠ°ΡΡΠΈΠ² th ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π΅Π³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ ΠΏΡΡΠ΅ΠΌ Π΄Π΅Π»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π±Π°Π·ΠΈΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠ»Π°Π½Π° Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡcΡΠ²ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠ² Π²Π΅Π΄ΡΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π±ΡΠ°.
ΠΠΎΡΠ»Π΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ th ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π²Π΅Π΄ΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΡΠΎΠ»Π±ΡΠ΅ th.
Π Π°Π·ΡΠ΅ΡΠ°ΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠ»Π°Π½Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠΈ Π²Π΅Π΄ΡΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π±ΡΠ° ΠΈ Π²Π΅Π΄ΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠ»Π°Π½Π°. ΠΠΎΡΠ»Π΅ Π΅Π³ΠΎ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ print_result_to_file (), ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°Π½ΠΎΡΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π° Π² ΠΎΠ±ΡΠ΅ΠΊΡ table ΠΊΠ»Π°ΡΡΠ° std: stringstream, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ-ΡΠ»Π΅Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° simplex.
ΠΠΎΡΠ»Π΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΎΠΏΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΏΠ»Π°Π½ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ. ΠΡΡΠ±ΠΎ Π³ΠΎΠ²ΠΎΡΡ, Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΈΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΊΠ»Π°, ΠΏΠΎΠΊΠ° ΠΏΠ»Π°Π½ Π½Π΅ ΡΡΠ°Π½Π΅Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ. ΠΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠ»Π°Π½Π° Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ bool plane_is_valid, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΡ ΡΡΡΠΎΠΊΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠ»Π°Π½Π° Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ ΠΈ Π½Π΅ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅. ΠΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠ²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠΌΠ΅ΡΡΡΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΡΠΎ ΠΏΠ»Π°Π½ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΈ Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ»ΡΡΡΠΈΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅. ΠΡΠ»ΠΈ ΠΏΠ»Π°Π½ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ, ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ ΠΎ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΈΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠΈΠΊΠ»Π°, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π² ΡΡΠ½ΠΊΡΠΈΠΈ gen_pane ().
ΠΠΎ, ΡΠ°ΠΊΠΆΠ΅, Π±ΡΠ²Π°ΡΡ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° Π·Π°Π΄Π°ΡΠ° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, ΠΈΠ»ΠΈ, Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅Π»ΠΈ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π°. ΠΠ°Π½Π½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π² ΡΡΠΎΠ»Π±ΡΠ΅ th («ΡΠ΅ΡΠ°») ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ. ΠΠ°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ bool function_is_undefined (), ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡ ΠΈΡΡΠΈΠ½Ρ, Π΅ΡΠ»ΠΈ Π² ΡΡΠΎΠ»Π±ΡΠ΅ th Π½Π΅ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΈ Π»ΠΎΠΆΡ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠ²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠΌΠ΅ΡΡΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π²ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ ΠΊ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π°, Ρ. Π΅. ΠΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΊΠ»Π° Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΏΠ»Π°Π½ Π½Π΅ ΠΎΠΏΡΠΈΠΌΠ°Π»Π΅Π½ ΠΈ Π·Π°Π΄Π°ΡΠ° ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΈΠΌ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ gen_plane ().
ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΠ»Π°Π½Π° Π²Π΅ΡΡΠΌΠ° ΡΡ ΠΎΠΆΠ΅ Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΎΠΏΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π°. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ Π²Π΅ΡΠΎΠΌΡΠΌ ΠΎΡΠ»ΠΈΡΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ «ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°», ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ, ΠΊΡΠΎΠΌΠ΅ ΡΠ΅Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² Π²Π΅Π΄ΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΠ»Π°Π½Π°. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ ΠΏΡΡΠ΅ΠΌ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΠ»Π°Π½Π°. Π‘Π°ΠΌ ΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄ «ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°» ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠ°Π·ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ = Π‘Π’Π — (A * B) / Π Π.
ΠΠ΄Π΅ «ΠΠ» — Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π°, «Π‘Π’Π» — ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΠ»Π°Π½Π°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π Π — ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΠ»Π°Π½Π°. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ A ΠΈ B — ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΠ°ΡΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ°Π·ΡΡΡ «ΠΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ», Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ.
Π‘Π’Π = 1 A = 2
B = 3 Π Π = 4.
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π° Π±ΡΠ΄Π΅Ρ Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ ΠΏΠΎ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΡΠΎΡΠΌΡΠ»Π΅, Ρ. Π΅.
ΠΠ = 1 — (2 * 3) / 4 = 1 — 1.5 = 0.5
ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π²ΡΡΡΠ½ΡΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΆΠ΅ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎ. Π ΡΡΠΎΠΌ ΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΉ ΡΠΌΡΡΠ» Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠΎΠ³Π΄Π° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΠ»Π°Π½ ΡΡΠ°Π½Π΅Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΈΠ»ΠΈ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ Π·Π°Π΄Π°ΡΠ° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, ΡΠΈΠΊΠ» Π·Π°ΠΊΠΎΠ½ΡΠΈΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π½Π° ΡΠΊΡΠ°Π½ Π±ΡΠ΄ΡΡ Π²ΡΠ²Π΅Π΄Π΅Π½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ-ΡΠ΅Π»ΠΈ ΠΈ Π±Π°Π·ΠΈΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π°, Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΈΠΌΠ΅Π΅ΡΡΡ. ΠΡΠ»ΠΈ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π°, ΡΠΎ Π½Π° ΡΠΊΡΠ°Π½ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π²ΡΠ²Π΅ΡΡΠΈ Π½Π° ΡΠΊΡΠ°Π½ ΠΎΡΠ²Π΅Ρ, Π² ΡΠΈΠΊΠ»Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ print_result_to_file (), ΠΊΠΎΡΠΎΡΠ°Ρ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π½ΠΎΠΌΠ΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΠΊΠ»Π°, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π΅Π΄ΠΈΠ½ΠΈΡΡ. Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΠΈΡΠ΅Ρ Π² ΠΎΠ±ΡΠ΅ΠΊΡ table ΠΊΠ»Π°ΡΡΠ° std: stringstream Π²Π΅ΡΡ Π²ΡΠ²ΠΎΠ΄, ΠΏΡΠΈΡΠ΅ΠΌ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ «ΠΏΠΎ ΡΠΌΠ½ΠΎΠΌΡ», Ρ. Π΅. Π€ΠΎΡΠΌΡΠ»ΠΈΡΡΠ΅Ρ Π²Π΅ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΠΊΠΈΠΌ ΡΠ·ΡΠΊΠΎΠΌ. ΠΡΠ»ΠΈ ΠΏΠ»Π°Π½ ΠΏΡΠΈ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ°Π» ΠΎΠΏΡΠΈΠΌΠ°Π»Π΅Π½, ΡΡΠ½ΠΊΡΠΈΡ print_result_to_file () ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ outfile ΠΊΠ»Π°ΡΡΠ° std: oftream, Ρ. Π΅. ΠΡΡΠ±ΠΎ Π³ΠΎΠ²ΠΎΡΡ, Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ», Π² ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠΆΠ΅ ΠΈΠΌΠ΅ΡΡΠΈΠΉΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ table ΠΊΠ»Π°ΡΡΠ° std: stringstream. ΠΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, Ρ. ΠΊ., Π΅ΡΠ»ΠΈ Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ Π²ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΊΡΠ°Π½ ΠΈΠ»ΠΈ Π΅ΡΠ΅ ΠΊΡΠ΄Π°-Π»ΠΈΠ±ΠΎ, Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ «outfile <<οΏ½» Π½Π° «cout <<οΏ½» ΠΈΠ»ΠΈ Π½Π° Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΡΠ²ΠΎΠ΄Π°.
ΠΠΎ, ΡΡΠΎΠ±Ρ Π²Π΅ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠ°Ρ Π·Π°Π²Π΅Π»ΡΡ, Π½Π°ΠΌ, Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΡΡΠ½ΠΊΡΠΈΡ main (), Π±Π΅Π· ΠΊΠΎΡΠΎΡΠΎΠΉ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ.
ΠΠΈΡΡΠΈΠ½Π³ 5. main. cpp
#include «simplex.h»
int main ()
{
setlocale (LC_ALL, «Russian»);
simplex *ud = new simplex;
ud->get_data_from_user ();
ud->init ();
ud->gen_plane ();
return 0;
}
Π‘Π½Π°ΡΠ°Π»Π° Π·Π°Π΄Π°Π΅ΡΡΡ ΡΡΡΡΠΊΠ°Ρ Π»ΠΎΠΊΠ°Π»Ρ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Windows, Π·Π°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° simplex, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ get_data_from_user () Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° user_data, Π° Π·Π°ΡΠ΅ΠΌ init () ΠΈ gen_plane () ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ»ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π²ΡΡΠ΅. return 0. ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΠ± ΡΠ΄Π°ΡΠ½ΠΎΠΌ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ°Π΄Π°Π½Π° ΡΠ΅Π»Π΅Π²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ:
F (X) = 3×1 + 5×2 + 4×3 => max
Π ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ:
0,1×1 + 0,2×2 + 0,4×3 <= 1100
0.05×1 + 0.02×2 — 0.02×3 <= 120
3x1 + x2 + 2×3 <= 8000
Π Π΅ΡΠΈΠΌ Π΄Π°Π½Π½ΡΡ Π·Π°Π΄Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ» ΠΎΠΏΠΈΡΠ°Π½ ΡΠ°Π½Π΅Π΅.
ΠΠ°Π³Π»ΡΠ½Π΅ΠΌ Π² ΡΠ°ΠΉΠ» table. txt
Π Π΅ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π½Π° Π΄Π°Π½Π½ΡΡ ΡΠΊΡΠΈΠ½ΡΠΎΡΠ°Ρ Π±ΡΠ»ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΎ Π² MS Excel Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ «ΠΠΎΠΈΡΠΊ ΡΠ΅ΡΠ΅Π½ΠΈΡ» ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²Π΅ΡΠ½ΡΠΌ, ΡΠ°ΠΊΠΆΠ΅ Π΄Π°Π½Π½Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ° ΡΡΡΠΎΠΈΠ»Π°ΡΡ Π²ΡΡΡΠ½ΡΡ.
ΠΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ, ΡΠ΅ΡΡΡ ΠΈ ΡΠ°ΠΌ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΈΠ»Π°Π³Π°ΡΡΡΡ Π½Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π»ΠΎΠΆΠ΅Π½ Π² Π΄Π°Π½Π½ΡΡ ΠΏΠΎΡΡΠ½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΠΊΡ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΡΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° — ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π½Π°Π½ΠΈΠΉ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π½Π°Π²ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘++.
ΠΠΎΡΠ»Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ, Π΅Π΅ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π»Ρ, Π½Π΅ΡΠΎΠΌΠ½Π΅Π½Π½ΠΎ Π±ΡΠ»Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°. ΠΡΠ» ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠ²ΠΎΠ΅Π½ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΡΠΈΠΌΠΏΠ»Π΅ΠΊΡ-ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΈ, Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π½ΡΡ ΡΡΠΎΠ²Π΅Π½Ρ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠΎ Π΄Π»Ρ Π°Π²ΡΠΎΡΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ²Π»ΡΡΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠΌ ΡΠ°ΠΊΡΠΎΡΠΎΠΌ.
ΠΠ°Π½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π΅ΡΠΎΠΌΠ½Π΅Π½Π½ΠΎ, Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ, Π² ΡΠΊΠΎΡΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π±Π°Π·ΠΈΡΠ° ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ QT. Π£ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π² Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΈΠΌΠΏΠ»Π΅ΠΊΡ ΡΠ°Π±Π»ΠΈΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΡΠ΅ΡΠ½ Π‘ΡΡΠ°ΡΡΡΡΡΠΏ — Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π‘++ 2-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ 2007 Π³ΠΎΠ΄.
ΠΡΠ½Π³Ρ Π. Π. — ΠΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΊ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ. — 2005 Π³ΠΎΠ΄.
ΠΠ°ΡΡΠΎΠ»ΡΠ½Π°Ρ ΠΊΠ½ΠΈΠ³Π° Gentoo Linux — Π²Π΅Π±-ΠΈΠ·Π΄Π°Π½ΠΈΠ΅, 2008 Π³ΠΎΠ΄.
Π.Π. ΠΠ½Π΄ΡΠ΅Π΅Π² — ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ — 2006 Π³ΠΎΠ΄.
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ GIT, ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ — Π²Π΅Π± ΠΈΠ·Π΄Π°Π½ΠΈΠ΅, 2011 Π³ΠΎΠ΄.
Π’Π°ΠΊΠΆΠ΅ Π±ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΠΈΠ· ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ — Π‘Π²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Π±-ΡΠ½ΡΠΈΠΊΠ»ΠΎΠΏΠ΅Π΄ΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΡΠ΅ΡΡΡΡΠΎΠ².