Π€ΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ»Π΅ΠΊΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡ Π΅ΠΌΡ
Π€ΡΠ½ΠΊΡΠΈΡ int **memory (int k) Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎΠ΄ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΌΠ°ΡΡΠΈΡΡ. Π§ΡΠ΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΏΠΎ ΡΠ΅ΠΏΡΠΌ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ (ΡΠ΅ΠΏΡ-Π΄Π΅ΡΠ΅Π²ΠΎ) Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°. Π€ΡΠ½ΠΊΡΠΈΡ int kol_elem (CepCont *st) ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠΎ Π²Ρ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡ Π΅ΠΌΡ ΡΡΠΎΡΠΌΠΈΡΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ²ΡΠ·Π½ΠΎΡΡΠΈ. Else MessageBox (hwnd, «ΠΠ΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅», «ΠΡΠΈΠ±ΠΊΠ°!», 0); Else… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π€ΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ»Π΅ΠΊΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡ Π΅ΠΌΡ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠ½Π½ΠΎΡΠ°ΡΠΈΡ Π Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΡΡΠ½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΊΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ»Π΅ΠΊΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡ Π΅ΠΌΡ. Π Π°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ ΡΡ Π΅ΠΌΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ. Π ΡΡΠ΅Π΄Π΅ Microsoft Visual Studio 2005 (C++) ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π° ΠΈ ΠΎΡΠ»Π°ΠΆΠ΅Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ. Π’Π°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π³ΡΠ°ΡΠΎΠ²Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°
1.ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
1.1ΠΠ±ΡΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ
1.2Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
1.3ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ
1.4CΡΡΡΠΊΡΡΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
1.5ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ vvod ()
1.6 ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ int **matr ()
2.ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
1. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
1.1 ΠΠ±ΡΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ»Π΅ΠΊΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡ Π΅ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π² ΡΡΠ΅Π΄Π΅ Microsoft Visual Studio 2005.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΠΌΠ΅Π΅Ρ ΠΈΠΌΡ «PraktikaDasha».
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Visual Studio 2005 C++, Π² ΡΠ»ΡΡΠ°Π΅ ΠΆΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π·Π°ΠΏΡΡΠΊ ΠΈΠ· ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Windows.
1.2 Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ»Π΅ΠΊΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡ Π΅ΠΌΡ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
1. Π§ΡΠ΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΏΠΎ ΡΠ΅ΠΏΡΠΌ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°.
2. Π€ΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΏΠΎ ΡΠ΅ΠΏΡΠΌ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ° (Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ — Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°)
3. Π€ΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π²ΡΠ²ΠΎΠ΄ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ²ΡΡ Π½ΠΎΡΡΠΈ.
4. Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ (ΡΠ΅ΠΏΡ-Π΄Π΅ΡΠ΅Π²ΠΎ) Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°.
1.3 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π·Π±ΠΈΡΠ° Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠ°ΡΡΠΈ — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΡΡΠΎΠ²Π½ΡΠΌ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ. ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΠ΅ΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²ΠΎΡ Π½Π΅Π±ΠΎΠ»ΡΡΡΡ Π·Π°Π΄Π°ΡΡ ΠΏΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΠ΅Π»ΠΎΠΌ. ΠΠ°Π»Π΅Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΉ.
Π€ΡΠ½ΠΊΡΠΈΡ CepCont *vvod_file (char file_name [ ]) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ±ΡΠ°ΡΡ ΡΠ°ΠΉΠ» ΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ.
Π€ΡΠ½ΠΊΡΠΈΡ void vivod_spis (CepCont *st, HWND hwndEdit) Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎ ΡΠ΅ΠΏΡΠΌ Π½Π° ΡΠΊΡΠ°Π½.
Π€ΡΠ½ΠΊΡΠΈΡ int kol_elem (CepCont *st) ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
Π€ΡΠ½ΠΊΡΠΈΡ void del_matr (int **matr, int k) ΡΠ΄Π°Π»ΡΠ΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΌΠ°ΡΡΠΈΡΡ.
Π€ΡΠ½ΠΊΡΠΈΡ int **memory (int k) Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎΠ΄ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΌΠ°ΡΡΠΈΡΡ.
Π€ΡΠ½ΠΊΡΠΈΡ int **form_matr (CepCont *st, int k) ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π² ΠΌΠ°ΡΡΠΈΡΡ.
Π€ΡΠ½ΠΊΡΠΈΡ void vivod_matr (int **matr, int k, HWND hwndEdit) Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ²ΡΠ·Π½ΠΎΡΡΠΈ Π½Π° ΡΠΊΡΠ°Π½.
Π€ΡΠ½ΠΊΡΠΈΡ void save_matr (char file_name [ ], int **matr, int k) ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΡΡ Π² ΡΠ°ΠΉΠ».
Π€ΡΠ½ΠΊΡΠΈΡ void del_spis (CepConrt *BegSpis) ΡΠ΄Π°Π»ΡΠ΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ.
Π€ΡΠ½ΠΊΡΠΈΡ MyDlgProc (HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π΄ΠΈΠ°Π»ΠΎΠ³Π°.
1.4 CΡΡΡΠΊΡΡΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
1.5 ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ vvod ():
1.6 ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ int **matr ()
2. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΠ°Π½Π° ΡΡ Π΅ΠΌΠ° Π²Π°ΡΠΈΠ°Π½ΡΠ° № 12:
Π‘ΠΎΡΡΠ°Π²ΠΈΠΌ Π²Ρ ΠΎΠ΄Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΡ Π΅ΠΌΡ Π² Π²ΠΈΠ΄Π΅ ΡΠΏΠΈΡΠΊΠ° ΠΏΠΎ ΡΠ΅ΠΏΡΠΌ:
1 3
1 1
7 1
7 3
2 2
2 1
7 2
3 2
1 2
3 1
4 4
1 3
2 2
3 2
4 1
5 2
3 3
5 1
6 3
4 2
6 1
7 5
7 2
4 3
6 2
8 3
5 2
6 3
7 4
ΠΠΎ Π²Ρ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡ Π΅ΠΌΡ ΡΡΠΎΡΠΌΠΈΡΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ²ΡΠ·Π½ΠΎΡΡΠΈ
0 1 1 0 0 0 1
1 0 1 0 0 0 1
1 1 0 1 1 0 0
0 0 1 0 0 2 0
0 0 1 0 0 1 0
0 0 0 2 1 0 2
1 1 0 0 0 2 0
ΠΠΎΡΡΡΠΎΠΈΠΌ Π³ΡΠ°Ρ:
ΠΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π²Π΅ΡΠ½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
#include
#include
#include «resource.h»
#include
#include
char file_name[MAX_PATH+1], customfilter[100];
int **matr, k, flag;
OPENFILENAME of, sf;
struct CepCont
{
int ce, kk;
CepCont *adres;
};
CepCont *BegSpis=NULL;
CepCont *vvod_file (char file_name[])
{
int ce, kk;
FILE*f_in;
f_in=fopen (file_name," r");
if (f_in≠NULL)
{
CepCont *st=NULL;
CepCont *sp=NULL;
while (fscanf (f_in," %d%d" ,&ce,&kk)==2)
{
st=new CepCont;
if (BegSpis==NULL) BegSpis=st;
else sp->adres=st;
sp=st;
st->ce=ce;
st->kk=kk;
}
if (sp≠NULL) sp->adres=NULL;
fclose (f_in);
return BegSpis;
}
else
{
return NULL;
}
}
void vivod_spis (CepCont *st, HWND hwndEdit)
{
int n, i;
char buf[25];
while (st≠NULL)
{
sprintf (buf, «Π¦Π΅ΠΏΡ%dtΠΠΎΠ½ΡΠ°ΠΊΡΠΎΠ²%d», st->ce, st->kk);
SendMessage (hwndEdit, EM_REPLACESEL, 0,(LPARAM)buf);
SendMessage (hwndEdit, EM_REPLACESEL, 0,(LPARAM)" rn");
n=st->kk;
st=st->adres;
for (i=0; i
{
sprintf (buf, «ΠΠ»Π΅ΠΌΠ΅Π½Ρ%d ΠΠΎΠ½ΡΠ°ΠΊΡ%d», st->ce, st->kk);
SendMessage (hwndEdit, EM_REPLACESEL, 0,(LPARAM)buf);
SendMessage (hwndEdit, EM_REPLACESEL, 0,(LPARAM)" rn");
st=st->adres;
}
SendMessage (hwndEdit, EM_REPLACESEL, 0,(LPARAM)" rn");
}
}
int kol_elem (CepCont *st)
{
int max=0, i, n;
while (st≠NULL)
{
n=st->kk;
st=st->adres;
for (i=0; i
{
if (st->ce>max) max=st->ce;
st=st->adres;
}
}
return max;
}
void del_matr (int **matr, int k)
{
for (int i=0; i
delete []matr[i];
delete []matr;
}
int **memory (int k)
{
int **matr=new int *[k];
if (matr==NULL) return NULL;
for (int i=0; i
{
matr[i]=new int [k];
if (matr[i]==NULL)
{
del_matr (matr, i);
return NULL;
}
}
return matr;
}
int **form_matr (CepCont *st, int k)
{
int i, j, n;
int **matr=memory (k);
CepCont *sp;
if (matr==NULL) return NULL;
for (i=0; i
for (j=0; j
matr[i][j]=0;
while (st≠NULL)
{
n=st->kk;
st=st->adres;
if (n≠0)
{
for (i=0; i
{
sp=st;
st=st->adres;
if (sp->ce≠st->ce)
{
matr[sp->ce-1][st->ce-1]++;
matr[st->ce-1][sp->ce-1]++;
}
}
st=st->adres;
}
}
return matr;
}
void vivod_matr (int **matr, int k, HWND hwndEdit)
{
char buf[256];
for (int i=0;i
{
for (int j=0;j
{
sprintf (buf," %d «, matr[i][j]);
SendMessage (hwndEdit, EM_REPLACESEL, 0,(LPARAM)buf);
}
SendMessage (hwndEdit, EM_REPLACESEL, 0,(LPARAM)" rn");
}
}
void save_matr (char file_name[], int **matr, int k)
{
FILE*f_out;
f_out=fopen (file_name," w");
if (f_out≠NULL)
{
fprintf (f_out," ΠΠ°ΡΡΠΈΡΠ° ΡΠ²ΡΠ·Π½ΠΎΡΡΠΈn");
for (int i=0;i
{
for (int j=0;j
fprintf (f_out," %d «, matr[i][j]);
fprintf (f_out, «n»);
}
fclose (f_out);
}
}
void del_spis (CepCont *BegSpis)
{
CepCont *sp=NULL;
while (BegSpis≠NULL)
{
sp=BegSpis->adres;
delete BegSpis;
BegSpis=sp;
}
}
int CALLBACK MyDlgProc (HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
{
const double pi=3.14 159;
switch (msg)
{
case WM_INITDIALOG:break;
case WM_COMMAND:
switch (LOWORD (wp))
{
case IDCANCEL:
{
del_spis;
del_matr;
return EndDialog (hwnd, IDCANCEL);
}
case IDOPEN:
{
char initialdir[MAX_PATH+1];
getcwd (initialdir, MAX_PATH+1);
memset (&of, 0, sizeof (of));
of.lStructSize=sizeof (of);
of.lpstrFilter="Π’Π΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ (*.txt)*.txt" «ΠΡΠ΅ ΡΠ°ΠΉΠ»Ρ (*.*)*.*» ;
of.nFilterIndex=1;
of.lpstrCustomFilter=customfilter;
of.nMaxCustFilter=100;
file_name[0]='';
of.lpstrFile=file_name;
of.nMaxFile=MAX_PATH+1;
of.lpstrInitialDir=initialdir;
of.lpstrTitle="ΠΠΈΠ°Π»ΠΎΠ³ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»Π°" ;
if (GetOpenFileName (&of)≠0)
{
SetWindowText (GetDlgItem (hwnd, IDC_EDIT1), 0);
SetWindowText (GetDlgItem (hwnd, IDC_EDIT2), 0);
InvalidateRect (hwnd, 0, 0);
if (BegSpis≠NULL)
{
del_spis (BegSpis);
BegSpis=NULL;
}
if (matr≠NULL)
{
del_matr (matr, k);
matr=NULL;
}
if ((BegSpis=vvod_file (file_name))==NULL)
{
MessageBox (hwnd, «Π€Π°ΠΉΠ» Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΠΈΠ»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ Π²Π΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅», «ΠΡΠΈΠ±ΠΊΠ°!», 0);
break;
}
}
break;
}
case IDSPIS:
{
if (BegSpis≠NULL)
{
SetWindowText (GetDlgItem (hwnd, IDC_EDIT1), 0);
vivod_spis (BegSpis, GetDlgItem (hwnd, IDC_EDIT1));
}
else MessageBox (hwnd, «ΠΠ΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅», «ΠΡΠΈΠ±ΠΊΠ°!», 0);
break;
}
case IDMATRIX:
{
if (BegSpis≠NULL)
{
if (matr==NULL)
{
k=kol_elem (BegSpis);
matr=form_matr (BegSpis, k);
vivod_matr (matr, k, GetDlgItem (hwnd, IDC_EDIT2));
}
}
else MessageBox (hwnd, «ΠΠ΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅», «ΠΡΠΈΠ±ΠΊΠ°!», 0);
break;
}
case IDGRAF:
{
if (matr≠NULL)
{
flag=1;
RECT rect;
rect.left=150;
rect.top=50;
rect.right=550;
rect.bottom=400;
InvalidateRect (hwnd,&rect, 1);
}
else MessageBox (hwnd, «ΠΠ΅ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π° ΠΌΠ°ΡΡΠΈΡΠ°», «ΠΡΠΈΠ±ΠΊΠ°!», 0);
break;
}
case IDSAVE:
{
char initialdir[MAX_PATH+1];
getcwd (initialdir, MAX_PATH+1);
memset (&of, 0, sizeof (of));
sf.lStructSize=sizeof (of);
sf.lpstrFilter="Π’Π΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ (*.txt)*.txt" «ΠΡΠ΅ ΡΠ°ΠΉΠ»Ρ (*.*)*.*» ;
sf.nFilterIndex=1;
sf.lpstrCustomFilter=customfilter;
sf.nMaxCustFilter=100;
file_name[0]='';
sf.lpstrFile=file_name;
sf.nMaxFile=MAX_PATH+1;
sf.lpstrInitialDir=initialdir;
sf.lpstrTitle="ΠΠΈΠ°Π»ΠΎΠ³ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°" ;
if (GetSaveFileName (&sf)≠0) save_matr (file_name, matr, k);
else MessageBox (hwnd, «ΠΠ΅ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π° ΠΌΠ°ΡΡΠΈΡΠ°», «ΠΡΠΈΠ±ΠΊΠ°!», 0);
}
default: return 0;
}
case WM_PAINT:
int *xe, *ye, xc, yc, i, j;
char str[10];
float f;
HDC hdc;
HPEN hpen, old_pen;
HBRUSH hbrush, old_brush;
PAINTSTRUCT ps;
hdc=BeginPaint (hwnd,&ps);
if ((matr≠NULL)&&(flag==1))
{
xe=new int [k];
ye=new int [k];
SetBkMode (hdc, TRANSPARENT);
hpen=CreatePen (PS_SOLID, 1, RGB (0,0,255));
hbrush=CreateSolidBrush (RGB (255,0,0));
f=2*pi/k;
for (i=0;i
{
xe[i]=150*cos (f*i)+360;
ye[i]=150*sin (f*i)+230;
}
old_pen=(HPEN)SelectObject (hdc, hpen);
old_brush=(HBRUSH)SelectObject (hdc, hbrush);
for (i=0; i
for (j=0; j
{
if (matr[i][j]>0)
{
MoveToEx (hdc, xe[i], ye[i], 0);
LineTo (hdc, xe[j], ye[j]);
sprintf (str, «%d», matr[i][j]);
xc=(xe[i]+xe[j]-10)/2;
yc=(ye[i]+ye[j]-10)/2;
TextOut (hdc, xc, yc, str, 1);
}
}
for (i=0;i
{
sprintf (str," %d", i+1);
Ellipse (hdc, xe[i]-20,ye[i]-20,xe[i]+20,ye[i]+20);
TextOut (hdc, xe[i]-5,ye[i]-5,str, 1);
}
EndPaint (hwnd,&ps);
DeleteObject (hpen);
DeleteObject (hbrush);
delete[] xe, ye;
}
else EndPaint (hwnd,&ps);
default: return 0;
}
return 1;
}
int WINAPI WinMain
(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
DialogBox (0,MAKEINTRESOURCE (IDD_DIALOG), 0, MyDlgProc);
}