Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

СПО_Praktikum_k_lab_rabotam

.pdf
Скачиваний:
15
Добавлен:
16.05.2015
Размер:
1.26 Mб
Скачать

51

M& 8 ) CloseHandle 1! 0 ! / 0 "i ! hObject.

F! . 5.1a / ! / 9 B )

Create Process. K B B/! / ! 8 ! Calculator ( . 5.1b 5.1c). G , B Create Process B 1!- & 9 8 / ) ! /! ! 9 & ) ! Windows. .B-

Calculator 0# ) & & 8 02 # 1!/! / ! !1./ !8 02 8 )2, / ) & & # )

# !, 8 0# ) & 0 & 9 01 7& 8

VOID Sleep(

DWORD dwMilliseconds // ) " 1/ 6 ), & /!2

);

K ! 7& 8 ) ! ! ! 0 ! ! 1!/! 06

B& .

) # "0 / # 8 0 0 ! 9 6 -

"2 / 01 7& 8 CreateProcess 7 ! & dwCreationFlags 9 1 !# CREATE_NEW_CONSOLE.

5.3. 2 -2 .= ;2F2 -0

 

 

 

 

 

 

 

N!1 !" ! 9 / ! 0. .!) 0# ) & &

1

1

# N1 / N2 (N1 < N2) 0 /

1 !# ! G !. !) ! ! 1! & ! -

 

 

 

 

&< !# 9 1/! 8 !.

 

 

N!1 !" ! 9 / ! 0. .!) 0# ) 1-

2

1

/ # N1 / N2 0 / 1 !-

# ! G !. !) ! ! 1! & ! &<

 

 

 

 

!# 9 1/! 8 !.

52

 

 

N!1 !" ! 9 / ! 0. .!) 0# ) 7!-

3

1

! # ! N 0 / 1 !# ! G-

!. !) ! ! 1! & ! &< !#

 

 

 

 

9 1/! 8 !.

 

 

 

 

 

 

 

 

 

 

N!1 !" ! 9 / ! 0. .!) 0# ) 1 !#-

 

 

7 &:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

1 +

2 +

 

 

 

 

 

 

 

4

2

 

 

 

3 + + !"

 

 

 

 

 

0 / 1 !# ! G !. !) -

 

 

! ! 1! & ! &< !# 9 1/!

 

 

8 !.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N!1 !" ! 9 / ! 0. .!) 0# ) 1 !#-

 

 

7 &:

 

 

 

 

 

 

 

1

 

 

5

2

=

 

1

 

 

+

1

 

 

 

+ +

 

 

 

 

 

#$ 1

 

#$ 1 + #$ 2

 

#$ 1 + + #$ "

 

 

0 / 1 !# ! G !. !) -

 

 

! ! 1! & ! &< !# 9 1/!

 

 

8 !.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N!1 !" ! 9 / ! 0. .!) 0# ) 1 !#-

 

 

& 0 " # )/!

 

%&

 

 

6

2

# % = %

&

+

 

%&

 

+

%&

 

+ +

+

 

 

 

1 + %&

1 + %& '

1 + %& (

 

 

1!/! 6 # 9< 0 / 1 !#

 

 

! G !. !) ! ! 1! & ! &< !#-

 

 

9 1/! 8 !.

 

 

 

 

 

 

 

N!1 !" ! 9 / ! 0. .!) 0# ) 1 !#-

 

 

& 0 " # )/!

 

%&

 

 

7

2

# % = %

&

+

 

%&

 

+

%&

 

+ +

+

 

 

 

1 + %&

1 + %& '

1 + %& (

 

 

1!/! 6 # 9< 0 / 1 !#

 

 

! G !. !) ! ! 1! & ! &< !#-

 

 

9 1/! 8 !.

 

 

 

 

 

53

N!1 !" ! 9 / ! 0. .!) 0# ) 1 !#-

& 0 " # )/!

8 2

# % = % −

%&

+

%)

6

+ + −1

(*+ %&(

+

 

3!

5!

7!

2 − 1 !

1!/! 6 # 9< 0 / 1 !# ! G !. !) ! ! 1! & ! &< !#-

9 1/! 8 !.

N!1 !" ! 9 / ! 0. .!) 0# ) 1 !#-

& 0 " # )/!

9 2

 

&

 

'

(

(

 

# % = 1 − % + %

− %

% .−∞; 0

 

 

 

+ + −1 %

 

1!/! 6 # 9< 0 / 1 !# ! G !. !) ! ! 1! & ! &< !#-

9 1/! 8 !.

N!1 !" ! 9 / ! 0. .!) 0# ) 1 !#-

& 0 " # )/!

10

2

1

+

1

1

+

1

1

+

1

1

+ 4 % 1; ∞

 

 

# % = 2 13

3

%'

5

%2

7

%3

1!/! 6 # 9< 0 / 1 !# ! G !. !) ! ! 1! & ! &< !#-

9 1/! 8 !.

N!1 !" ! 9 / ! 0. .!) 0# ) 1 !#-

& 0 " # )/!

11 2

# % =

1

6% −

%'

%2

%3

 

!25

2 ∙ 3 +

2& ∙ 2! ∙ 5

2' ∙ 3! ∙ 7 + 7

1!/! 6 # 9< 0 / 1 !# ! G !. !) ! ! 1! & ! &< !#-

9 1/! 8 !.

54

 

 

N!1 !" ! 9 / ! 0. .!) 0# ) 1 !#-

 

 

& 0 " # )/!

 

12

2

# % = % +

%&

+

%)

+

%8

+ +

%&(

+

 

 

 

2!

4!

6!

 

2 !

 

 

 

1!/! 6 # 9< 0 / 1 !#

 

 

! G !. !) ! ! 1! & ! &< !#-

 

 

9 1/! 8 !.

 

 

 

! 9 ! & 1 / ) ! & ! 9 # !

 

 

!/ ! 7 &:

 

 

 

 

 

 

 

 

1& = 1

 

 

 

 

 

 

 

 

 

13

2

2& = 1 + 3

 

 

 

 

 

 

 

 

 

 

 

3& = 1 + 3 + 5

 

 

 

 

 

 

 

 

 

 

4& = 1 + 3 + 5 + 7

 

 

 

 

 

 

 

 

&

= 1 + 3 + 5 + 7 + +

2" − 1

 

 

 

"

 

 

 

N!1 !" ! 9 / ! 0. .!) !

14

2

91 ! ) !/ ! &< ! 8&, 0# ) & &

G, B!? 2 !

! 6 / ! !, 0-

 

 

/ 1& 9 ! ! G !. !) ! ! 1! & !

 

 

&< !# 9 1/! 8 !.

 

 

N!1 !" ! 9 / ! 0. .!) # ! 1 7!6 !

15

2

/ ) & 9 0 ! 80, 1! 0 ! -

 

 

06 7!6 2 & &. !) ! ! 1! & ! -

 

 

&< !# 9 1/! 8 !.

 

 

N!1 !" ! 9 / ! 0. .!) !

 

 

91 ! ) &, 2 ! )?&< 1 ! 8 #,

 

 

0 / ! G ! 06 G ! G # !

16

3

9< (!, / «-1211» / B / 9

 

 

0 /& «& 0 )#! / / !/8! 9»). !)

 

 

! ! 1! & ! &< !# 9 1/!-

 

 

8 !.

 

 

 

 

 

 

 

 

 

 

55

 

 

 

 

 

N!1 !" ! 9 / ! 0. .!) # ! 1 7!6 !

17

3

/ ) & 9 0 ! 80, 1! 0 ! -

 

 

06 7!6 2 1 /. !) ! ! 1! & !-

 

 

&< !# 9 1/! 8 !.

 

 

N!1 !" ! 9 / ! 0. .!) # ! 1 7!6 !

 

 

/ 06 8 # 06 !, & )/ # !

18

4

1 ! ! < 91 ! <" ! -

! ! 0 / 1& 9 ! 0

 

 

 

 

06 7!6. !) ! ! 1! & ! &<

 

 

!# 9 1/! 8 !.

 

 

N!1 !" ! 9 / ! 0. .!) !

 

 

91 ! ) &, 2 ! )?&< # 1 !

 

 

! !<? 6 # 6, 0 / ! G ! 06 G-

194 ! G # ! 9< (!, /

«−10.13» / B / 9 0 /& «& / ) 9 8 02 !/8! 9 02»). !) ! ! 1! & !-

&< !# 9 1/! 8 !.

N!1 !" ! 9 / ! 0. .!) # ! 1 7!6 ! / 06 !/ ! &< ! 8&, 0# ) & & 20 4 G, B!? 2 ! ! 6 " # 6 / ! - !, 0 / 1& 9 ! ! G !. !) ! !

1! & ! &< !# 9 1/! 8- !.

N!1 !" ! 9 / ! 0. .!) !

91 ! ) & 1 & 6 / 8 – «" &<

&», & , 0 / ! G ! 1 !#

214 ! 6 , / # / )- # 7 ! 0 / # ! G !.

!) ! ! 1! & ! &< !# 9

1/! 8 !.

N!1 !" ! 9 / ! 0. .!) !

91 ! ) " 11 ! 8 #. m ) )- 22 4 ) 9< / 6, ! G ! 0 / ) !1!-

9 , "? « ) ) ) 9<

/ 6» !. !) ! ! 1! &- ! &< !# 9 1/! 8 !.

56

) & 1! / ) 0# 6, 91&6 7&-

8 < Sleep.

5.4. % F =4- 2< .=

1.1/!6 D /2 /)? .

2.! !2 1/! D ), / /&! 9- 0 1!/!, 1/!6 B / ) D ) - 6 1!/!#. 0 / !, !/ & !

G B ).

3.G B D 1/!6 B ) D!<?&<

&< 1!/!#& 1! & B ) ! 8- !.

5.5. F I2- ., .2

1.M & ! / /&! 9 1!/! ).

2.! !) # !) #! 9.

3.5 7!6 cpp h.

4.N 1& 9 ! 0 ! ) ! 0, / G ! 02 6.

5.6. . 5 = 4 =

1.! 6 8 9< 1/!< ) 8 0?

2.! !) 7& 8 ) &B / ) 1/! ) 8 !?

3.N! !B !1 !# 7& 8 WaitForSingleObject.

4.N! !B !1 !# 7& 8 CloseHandle.

5.! " !1, !8 !) ! ! / ) ) !- " 0 8 ! B/& 1! &? 0 8 !?

57

6.& )6. ;F2- / G 4 . , =H 4-I-0 F Windows.

6.1.! 5 2< .=

> 9< !" 0 ) ) ) 1 ! ! 0

7& 8 ) / ) A Windows.

6.2. .-, 2 ,2 .5

. 8 B / & ! 9 9 ! ! 9 02 & 6 -

) ! /!. K & !10 !< ) !

(threads). F "2 / 9, # /!B / # B-

/! 9 / , 06 !10 ! ) ! 0 (main threads). A/ # 0 B ) ! ! ! 9 !" ! 6 !" •5, / # 9 &? ) ! 9 ! & 8-

.

N! / 8 # - B ) 2 / B/& 8 !, ! B/& !, # )- ) ) 6 ! 9 6 1!/!# (multitasking). #- /, # # B / 9 06 8 - B "0 9 0 "0, # / ! B. A/ !-, 8 )/ !, 91 ! # &?-

0D! G77 9 ! 0. ,! /!-

) /! 91 ! !, B 0 ) 9 )

!1" ! ! ! 80, ! 7 !7, 7 2 ! / & ! ! /!.

A ! / ) 8 ) B/& !, -

8 / ! 9 2 / / 6 ! /0 / &- 6. / 8 !, # / # 02 -

58

B 6, # 0 91&< "? " ! ! 6 !- ), 7!6 0 !6 0 / & & 6 !. K 1 !#!, #

91&< / B "! 9 0 0.

. B "0 9 0 0 < 0 ) 9 ) ( . 6.1). , 9 B 2 / 9 1 ) ) -

) < 0 ) ! ". G , B !2 / 9- ) ) B /! ) (") B/! 9 #! ) /!- 0 /! 2 1 &<? "0 ) / & !. /!- 6 !" ! 6 !" "&/& 1!/ 6 ! 0 9 0 / ! -

) ).

 

 

" P Q

 

 

Q R

 

0

 

" R

 

" , % -

 

 

 

 

- D R %

 

 

* 9 AB /!

S - P Q

P Q D R

T , P )

. 6.1. U % %

) 0 ) . 6.1 B !2 / 9 ) 9 /

8. .G & / ) ! 1!8 ! 6 1!/!# "& )

# /9 ( . 6.2) 1!" ! 02 . F!

. 6.2 !1! ! # /9 , 0 "&/& 0 ) 9 ) -

/ ! 9: A, B, E, D, C.

A ! 9

 

 

 

A ! 9

 

A ! 9

 

 

A ! 9

 

 

A ! 9

!

 

 

 

! B

 

! C

 

 

! D

 

 

! E

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 !

 

 

 

0 !

 

0 !

 

 

0 !

 

 

0 !

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

. 6.2. ,

59

) 1/! ) ! !/ ! 1! &?-

8 ! &B 7& 8 ) CreateThread.

static HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpsa, DWORD dwStackSize,

LPTHREAD_START_ROUTINE pfnThreadProc, void* pvParam,

DWORD dwCreationFlags, DWORD* pdwThreadId

);

 

 

2< -32 6.1

 

.! ! 0 7& 8 CreateThread

 

 

 

"

 

,

lpsa

 

!1! 9 ! & & &, / B!?&< ! "& 0 1!-

 

 

? 0

dwStackSize

 

F!#! 9 06 !1 ! "!6 !2

pfnThreadProc

 

!1! 9 ! 7& 8 < !

pvParam

 

& 7& 8 !

dwCreationFlags

 

M ! 1/! ) !

pdwThreadId

 

!1! 9 ! &<, 6 "&/

 

 

/ 7 ! !

. ! 0 ! 1&<? 6 , / ! -

6.1.

&- .- G 6.1. M!6 Thread1.cpp

#include "stdafx.h" #include <windows.h> #include <iostream> #include <locale> #include <cmath>

using namespace std;

const int g_MaxThreads = 10; const int g_BufSize = 255;

DWORD WINAPI MyThreadFunction(LPVOID lpParam );

60

// ! > #

struct MyData { int numb; int val1; int val2;

double rezult;

};

int _tmain()

{

setlocale(LC_CTYPE, "Russian_Russia.1251"); ::SetConsoleTitle(L"Threads1");

MyData *pDataArray[g_MaxThreads];

HANDLE hThreadArray[g_MaxThreads];

DWORD dwThreadIdArray[g_MaxThreads];

// % ! = ! …! • . for( int i=0; i<g_MaxThreads; i++ )

{

// ‚=! ! ! =? #. pDataArray[i] = new MyData;

if( pDataArray[i] == NULL )

{

//y > g g #=!

//> # g #=

return 0;

}

pDataArray[i]->numb = i; //

pDataArray[i]->val1 = 1000 + int((double)rand()/RAND_MAX*10000);

pDataArray[i]->val2 = 1000 + int((double)rand()/RAND_MAX*10000);

}

// >! # MAX_THREADS ? #. for( int i=0; i<g_MaxThreads; i++ )

{

// >! #. hThreadArray[i] = CreateThread(

NULL,

// > P =

0,

// = >

MyThreadFunction,

// > #

pDataArray[i],

//

// • #

0,

// • >!

&dwThreadIdArray[i]); // # ># P = ! //

//# # ># P >. y > g

//g, # …! .

if (hThreadArray[i] == NULL)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]