528
ранка Дискета прилагается учебный курс И> ПРОГРАММИРОВАНИЕ

Франка П. C++

  • Upload
    miqamk

  • View
    173

  • Download
    1

Embed Size (px)

DESCRIPTION

lissen cours

Citation preview

  • >

  • Paulo Franca

    No experience required

    SYBEX

  • -

    --

    -

    2003

  • .

    C++: .

    .

    .

    .

    .

    .

    .

    32.973.2-018.1 681.3.04 .

    83 C++: . .: , 2003. 521 .: .ISBN 5-314-00136-5 C++ ,

    . C++: , C++. ,

    , , -

    , . ,

    26- , . .

    , C++.

    Sybex, 1997 , , 2003 , , , 2003

    Published by arrangement with the original publisher, Sybex Inc., U.S.A. Sybex Inc., .

    ISBN 5-314-00136-5ISBN 0252-112111- (.)

    .

    , , , .

    , ,

    , '

    . 196105, -, . , . 67. 05784 07.09.01.

    04.04.03. 70'/ |6. . . . 42,9. . 4500 . 2728. - 005-93, 2; 953005 - .

    . . .

    , .

    197110, -, ., 15.

  • 0. 22 0. 23

    I. 82 1. 83 2. 94 3. 107

    II. 117 4. 118 5. 136 6. iso

    III. 170 7. 171 8. 195 9. 212

    IV. 221 10. 222 11. 248 12. 258

  • V. 266 13. 267 14. 281 15.

    VI. 328 16. 329 17. 350 18. 366

    VII. 381 19. 382 20. 407 21. 424

    VIII. 436 22. franca.h 437 23. 458 24. 484

    IX. 491 25. -

    492 26. 509

    516

  • 0. 22 0. 23

    C++ 25 25 ? 25

    C++? 26Turbo C++ Visual C++ 26Windows 3.1 Windows 95? 27 -? 27 ? 27 ? 27

    28 28

    33 34 34

    35 36

    37Borland Turbo C++ 4.5 37Borland C++ 4 44Borland C++ 5 50Microsoft Visual C++ 1,5 56Microsoft Visual C++ 4 64Microsoft Visual C++5 73

    80 ? 81

  • 8

    I. 82 1. 83

    84 86

    87 athlete 89

    89

    C++ 90 91 92 92

    93 ? 93

    2. 94 Clock 95

    Clock 95 Clock 96 ? 97 ,....98

    Box 99 100

    Robot 100 101 102 103 103 104 104

    ? 106 3. 107

    108 108 109 109

    .... ..

  • 9

    111 111 112 112 112 113 113

    , 114 114 114 114 115 115 116

    ? 116

    II. 117 4. 118

    119 121

    123 124 127 129

    130 131

    131 132

    134 ? 135

    5. 136

    137-

    139 141

    142

    143 143

  • 10

    144 ask{) 145 On 145

    146 Cout 146

    ? 149 6. 150

    152 153 157

    157 159

    162 165 166 167

    168 ? 169

    III. 170 7. 171

    173 while 173

    177 do...while 177 for 178

    181 181 182 yesnof) 184

    186 Tracer 188

    189 193 ? 194

  • 1_1

    8. 195 196

    197 199 200

    201 201

    201 203

    206 206 206 207 207

    210 ? 211

    9. 212 213

    214 217

    219 219 220

    220 ? 220

    IV. 221 10. 222

    if 223 226

    227 228

    if..else 229 230

    230

  • 12 _

    231 231 233

    234 234 235 235 236

    238 break 239 continue 240

    242 243

    245 ? 247

    11. 248 249

    250 253

    255 ? 257

    12. 258 259

    259 260 262

    263 264 ? 265

    V. 266 13. 267

    268 268 274 278 mafh.h 279

    ? 280

  • j_3

    14. 281 282

    282 283

    290 290

    , 293 293

    293 294 294

    296 296

    297 297

    ? 299 15.

    301 302 305

    306 307

    307 312 313

    314 315

    318

    318 319 Stage 321

    322 323 325

    327 ? 327

  • 14

    VI. 328 16. 329

    331 332 335, 338 339 340

    341 342 Stage 343

    345 346 348 - 348

    348 ? 349

    17. 350 351

    352 353 355 356 358 361

    364 ? 365

    18. 366 367

    367 368 369 372

    374 satellite 375 377 378

    ? 380

  • ^ _ jj

    VII. 381 19. 382

    383 385 390

    392 392 395

    396 397

    398 401

    403 404 405

    ? 406 20. 407

    C++ 408 char 408

    410 410 413 , 416

    417 418

    419 421 423 ? 423

    21. 424 425

    425 431

    431 433 ? 435

  • .16

    VIII. 436 22. franca.h 437

    C++ 439 440

    / C++ 440 iostream.h 441 442 443/ 444

    445 446 446 / 447 451 454 askfl, askwordsf) yesnof) 454

    457 ? 457

    23. 458 459

    460 468

    471 textfile 471

    473- 473- 473 474 475

    476 476 477

    479 479

    479 480 payfile , 481

  • ]_7

    483 ? 483

    24. 484 485

    485 489

    ? 490

    IX. 491 25. -

    492- 493

    493.

    496 496- 498

    ? 508 26. 509

    C++ 510 510 511 511 512 513 514 514 , 514

    514 515

    ? 515 516

  • ? , ! .

    -

    .

    ! , 80 . - (Ramamoorthy-Ram) . (Daniel Lewis) . , -

    , .

    -

    (Brazilian Research Council, CNPq) -- (Federal University of Rio de Janeiro, UFRJ). , (NCE-UFRJ) .

    (Adriano Cruz), . - ,

    .

    , Sybex, (Kristine Plachy) : (Peter Kuhns), (Ronn Jost), (Kim Wimpsett) (Dale Wright), : (Amy Eoff), (Robin Kibby) - (Andrew Benzie). (Andrea Franca) (Frederico Arentz). , , ,

    .

    (Eunhee Kim) . - , .

    ,

    . ,

    .

    (Santa Clara) , .

    , , -

    (Coffee Society in Cupertino), . -

    , .

    .

    , 24 1997 .

  • - ...

    , C++ - (Object Oriented Programming, OOP) . -

    C++ , .

    - ,

    , -

    , ,

    OOP. , , - C++ C++ .

    , , -

    .

    C++ - ?

    , ,

    . , -

    , .

    , .

    . /- , , . -

    ,

    .

    Windows , . , , , -

    , . . ,

    ,

    . , -

    , , -

    . -

    ,

    .

  • 20

    , ,

    , . ,

    . -

    IBM- , - ( -), Microsoft Windows, -, PC.

    , . -

    Borland Turbo C++, - Borland C++ Microsoft Visual C++.

    -

    , . -

    Windows. , Windows!

    , , , .

    .

    ?

    . 10 , 0 IX. - 0? , C++ - . , 0 - . - -

    , , (Turbo C++, Borland C++,Visual C++) .

    , ,

    0.

    IIII , . -

    .

    .

    ,

    .

    . , -

    , ,

  • _ ._ _ ._ ._ _ __ ._,..- , -- '

    . -

    .

    ,

    . -

    III. ( ) ,

    , ,

    . .

    IV . - , .

    V. , ,

    - . V . , ,

    , .

    . -

    VI.

    VII . - ( , . .) .

    , , / . -

    (), , . / Windows -, /, , - VIII.

    IX - .

    , .

    ,

    . -

    ,

    .

    .

    ,

    Web- Sybex http://www.sybex.com.- (Paulo Bianchi Franca, Ph.D.),

    : http://www.franca.com.

  • 0

    0 C++ . -

    , C++ , , -

    C++. , -

    . -

    .

    Web-, , .

    -

    , .

    , C++, , .

  • Q Q

  • ,

    , -

    . , -

    , , -

    . , , ,

    . , , .

    . ,

    , ! .

    .

    , , -

    , , , . ., ,

    , - !

    ! ! ( ) - , -

    , .

    : ! - , , -

    . , , -

    ! , - , , .

    . , -

    !

    0 , , . . , -

    .

    , -

    . , , -

    , , -

    -

    , , -

    .

    , -

    , .

    1/ , , .

  • __++ 25

    C++ . -

    , .

    , ! ,

    , .

    , , -

    ! . , ,

    ,

    .

    , ,

    ( ) - . , -

    , .

    :

    1. , C++.

    2. ( - .OB J).

    3. . 2.

    4. , .

    ( .). - .

    5. . - - . -

    , 1-5,

    ? , , -

    . , -

  • 26 (X ^

    , ,

    . , -

    .

    , , -

    . ,

    , , -

    .

    C++? . ( -) , . C++ - ,

    .

    C++ ! -, , .

    , C++ (- ), ( ). - , C++! - , -

    , 1.

    Turbo C++ Visual C++Turbo C++ , BorlandInternational, C++. Borland - Borland C++, ( -) .Visual C++ , - Microsoft2.

    C++.

    --_ ^^ ^^ ^^ ^^ ^ ^1^ ^.^) C++ .

    .

    1 C++, . -

    -*+: ( ). .

    2 Visual C++ . Visual C++ 6:

    ( ).

  • C++? _ 27

    __ ___ ___

    Web- . , - .

    -

    :

    Turbo C++ Windows 4,5 (Borland). Borland C++ 4 5 Windows.

    Microsoft Visual C++ 1.56, 4 5 Windows.

    Windows 3.1 Windows 95? .

    Windows 3.1, Windows 95.

    , ,

    , .

    , .

    -? ! -. .

    - .

    , -

    -.

    ? , ? , . ,

    . -

    .

    ? -

    . ,

    . -

    -

    .

  • 28 0.

    . . -

    , -

    .

    .

    , , , -

    ( ), . . , ,

    C++, ..

    ,

    . ,

    , . ,

    , -

    .

    ,

    ,

    ,

    .

    , ,

    . ,

    .

    . , ,

    .

    , -

    , ! ,

    .

    , ,

    - .

    . -

    .

  • 29

    , FRANCA( ). :

    , -

    : C:\FRANCA,

    ) -. ,

    C:\FRANCA.

    -

    (*) . - . -

    -. , *. -

    ., *.* .

    , -

    MYDIR, . , -, , .

    , -

    , . -

    , MYDIR COMPUT, PHISICS,PERSONAL.

    . ,

    , ; , . 0.1 - . , :. -

    : .

    , FRANCA TCWIN. FRANCA OBJ FILES. , .

    , . -

    , OHBOY.CPP FRANCA, TCWIN. ? . - ( - ). , - , . ,

    .

    , . -

    .

  • 30 0.

    . 0,1.

    :

    C:\FRANCA\OHBOY.CPPC:\TCWIN\OHBOY.CPP

    , PERSONAL. , MYDIR. ; Turbo ++4.5, . 0.2, Windows 95, - . 0.3.

    () ( :)

    :

    ,

    :

    . 0.2. : (Turbo C++ 4.5)

    ,

    ' ,

  • : ( :)

    ,

    ,

    ,

    . 0.3> : (Borland C++ 5)

    mremmoniloi

    L3 mpf Cj mtdevstd

    miotficemvc

    3

    ,

    . 0.4. MYDIR (Turbo C++ 4.5)

    , MYDIR, (, , ). - . ? , - , .

    , . 0.4 . 0.5.

  • 32 0.

    ,

    Puc. 0.5. MYDIR (Borland C++ 5)

    , , MYDIR. , . 0.6, . 0.7.

    . , -

    MYDIR PERSONAL.

    MYDIR ()

    ( )

    (MYDIR)I (:)

    . 0.6. MYDIR (Turbo C++ 4.5)

  • 33

    ( :\), (MYDIR)

    . 0.7. MYDIR (Borland C++ 5)

    ,

    , , -

    .

    .

    ,

    ( ); . - , -

    , .

    .

    , .

    . ,

    . -

    ,

    .

  • 34 0.

    (Borland Microsoft) - . , , -

    .

    :

    .

    .

    .

    . FRANCA :.

    Windows (Windows Explorer) - (File Manager) Windows 3.1. Windows :, (File) (New) (Folder), FRANCA .

    CPPNER.EXE FRANCA.

    ,

    . CPPNER.EXE , -

    .

    Windows, - CPPNER.EXE , C:\FRANCA - sounds (). . CCPNER.EXE , , .

  • 35

    Ha , - FRANCA :. , , .

    |^ , ,

    , , .

    -

    , , .

    ,

    . .

    .

    ) . - , -

    .

    , :

    .

    , .

    , .

    , -

    .

    C:\FRANCA.

    , , -

    . , , -

    . .

    , : PAULO.RC,FRAN * * * .OB J (, , -) ( C_SAL.CPP).

    , -

    .

    , -

    .

  • 36 0.

    , .

    . , -

    .

    .

    .

    .

    , . -

    . -

    .

    C_SAL,CPP, - , . 0.8.

    I Paulo France's C+

    Hi!

    . 0.8. C^SAL.CPP

    1 , , - .

    . ,

    . - . -

  • 37

    , .

    . , .

    . PAULO.RC . Windows . - .OBJ . , ( .), *. , , :

    , ,

    .

    , .

    , , , -

    , , .

    :

    Turbo C++ 4.5 Windows.

    Borland C++4 Windows.

    Borland C++ 5 Windows.

    Microsoft Visual C++ 1.56 Windows.

    Microsoft Visual C++4 Windows.

    Microsoft Visual C++ 5 Windows.

    , Web- http://www.sybex.com -

    .

    Borland Turbo C++ 4.5 Borland Turbo C++ 4.5, .

    Turbo C++ 4.5. , . 0.9.

  • 38 0,

    . 0.9- Turbo C++ 4.5

    .

    Project Open Project ( - Project > Open Project). OpenProject File, . 0.10.

    FRANCA ( )

    ,

    ,

    I , :

    .IDE. 0.10. Turbo C++ 4.5

  • 39

    ,

    (C:\FRANCA). , File Name , -

    .

    FRANCA45 . - , ( , ).s^ -^ ^^ ^^ ^^ _*^ -^ ^^ _^ ^^ -^^ -^

    ^

    ^^ _

    J . .

    , .

    :

    PAULO,RC

    FRANCA45.0BJ

    (LSALCPP (PAULO.RC FRANCA45.0BJ) . (C_SAL.CPP) , . , ,

    .

    !, , .

    1. .2. , .3. .4. , . , -

    ?5. .

    ..

    C++, . .

    . , . -

    ,

    .

  • 40 0.

    . -

    , Delete node.

    ) , , FRANCA.EXE, .

    ,

    (FRANCA45.IDE) Add node. Add to Project List, . 0.11. , .

    ,

    ,

    . 0.11.

    , . ,

    ( ) .. - Debug >- Run.

    C_SALCPP. , - . 0.8. , . -

    Windows 3.1,

  • 41

    . Windows 95 .

    ! C_SAL.CPP.1. , .2. .

    , . 0.8?3. .4. .

    C_SALCPP. C_SOUND.CPP.

    5. . , - -.

    6. .7. C_SOUND.CPP C_SALCPP.8. .

    .

    , File > New. , (. 0.12).

    . 0.12.

  • 42 0.

    NONAME.CPP -. File > Save As, Save File As, . 0.13. , NONAME.CPP . File Name , , , -

    .

    . 0.13.

    , -

    , File > Open. FileOpen. , . , . -

    . ( ). , .

    ,

    , (, C_SALCPP). , . ,

    , ,

    . 0.14. . , -

    , . ,

    .

    J , . , File > Save As .

  • 43

    ''-, Turbo C++ - tianca45.-. jj . : _ o r . ' . - 1 ':'".'. - :,';

    . .

    ! C_SALCPP.

    1. , .2. , CJsALCPP

    .. , -

    . C_SALCPP.3. C_SAL.CPP.4. : Sal say (Hi!) ( (!*)); -

    ! Hello! ( . Hello Delete - , Hi).

    5. C_SALNEW.CPP. , ,

    ( C:\FRANCA). , , ? Hi Hello? - Hi, C_SALNEW,CPP . , .

    6. C_SAL.CPP C^SALNEW.CPP.7. . Hello?8. C_SALNEW.CPP C_SALCPP .

  • 44 .

    Borland C++ 4 Borland C++ 4, .

    Borland C++ 4. , . 0.15.

    . 0,15. Borland C++ 4

    .

    Project > Open Project. Open ProjectFile, . 0.16.,

    (C:\FRANCA). , File Name , -

    .

  • 45

    Borland C++ 4 FRANCA40 ,

    .IDE ( ). 0.16. Borland C++ 4

    FRANCA40 . - , ( , ). ,

    , . 0.17.

    :

    PAULO.RC

    FRANCA40.QBJ

    C_SALCPP

    (PAULO.RC FRANCA40.0BO) . (C^SALCPP) , . , ,

    .

    "

    !, , .

    1. .2. , .3. .

  • 46 0.

    Q fianca40 [.objj c_l I.cpp]D paulnl.u:]

    . 0.17. FRANCA40 Borland C++4

    4. , . , - ?

    5. .

    -.

    C++, . .

    . , . -

    ,

    .

    . -

    , Delete node.

    ) , , FRANCA40.EXE, .

  • 47

    ,

    (FRANCA40.EXE) Add node. , .

    , . ,

    ( ) .. - Debug v Run.

    C_SAL.CP , , . 0.8.

    , . -

    Windows 3.1, . Windows 95 .

    !

    C_SALCPP:

    1. , .2. .

    , . 0.8?3. ,4. .

    C_SALCPP. C_SOUND.CPP.

    5. . , - -.

    6. .7. C_SOUND.CPP C_SAL.CPP.8. .

    -

    .

  • 48 0.

    , File > New. , (. 0.18). , File > Save As, .

    . 0.18. (NONAMEOO.CPP)

    , -

    , File > Open. FileOpen. , . , . -

    . ( ). - , .

    ,

    , . , -

    . , ,

    , . 0.19.

    .

    , , -

    . ,

    .

  • 49

    . . 9.

    J , . , File > Save As .

    ! C_SAL.CPP.1. , .2. , C_SAL.CPP

    ,. , -

    . CJsAL.CPP.3. C_SALCPP.4. : Sal say (Hi!) ( (!)); -

    Hi! HeLLo! ( . Hello Delete - , Hi).

    5. C_SALNEW.GPP. , ,

    ( C:\FRANCA). , , ? Hi Hello? - Hi, C_SALNEW.CPP . , .

  • 50 0.

    6. C_SAL.CPP C_SALNEW.CPP.7. . Hello?8. C_SALNEW.CPP C_SAL.CPP .

    Borland C++ 5 Borland C++ 5, .

    Borland C++ 4. , . 0.20.

    . 0.20. Borland C++ 5

    .

    Project >- Open Project. Open ProjectFile, . 0.21.

    .

    , (C:\FRANCA). , File Name , .

    FRANCA50 Borland C++ 5. , ( - , ), , . 0.22.

  • 51

    Borland C++ 5 FRANCA50 ,

    ,

    ,

    .IDE PRJ

    . 0,21. Borland C++ 5

    . 0.22, FRANCA50 Borland C++ 5

    :

    PAULO.RC

    FRANCA50.0BJ

    CJ5AL.CPP

    (PAULO.RC FRANCA50.0B3) . (C^SALCPP) ,

  • 52 0.

    . , ,

    .

    !, , .

    1. .2. , .3. .4. , . , -

    ?5. .

    -.

    C++, . .

    . , . -

    ,

    .

    . -

    , Delete node.

    ,

    , FRANCA50.EXE, .

    ,

    (FRANCA50.EXE) Add node. , .

    Add to Project List, . 0.23. .

    , . ,

    ( ) .. - Debug > R u n .

  • 53

    Add to !'i,i|.-i 1 I isl

    C2ckcpj!clock |fC2input

    i?C2jmpbd1

    ffC2squa[2JSf CSasklor

    |f C3doli

    . 0,23.

    C_SAL.CPP, , . 0.8.

    , . -

    Windows , . Windows 95 .

    ! C_SAL.CPP.

    1. , .2. .

    , . 0.8?3. .4. .

    C^SAL.CPP. C_SOUND.CPP.

    5. . , - -.

    6. .7. C_SOUND.CPP

    C_SAL.CPP.8. .

    -

    .

  • 54 0.

    , Fi le > N ew. , (. 0.24). , File >- Save As, . (,: \ FRANCA) , File name, - . 0,25.

    . 0.24.

    1

    1

    j_i___rrv,r-^=r - . jga&jjnf / .j iii Franca

    P'c.somd|F Cl clock|ff C1 boll^C1iobot2

    4\ ,

    f:>e n- ;, |rSch-iS isj.^ .i ]'-

    ?C2change

    IfCZnput

    |f C2jmpbdy

    J

    ... *.. . . IN .> . t

    '^-^-^'"* "

    |! C2jmpick Id'CSfll ?;^fC25t:ope |fC3saIe ,|

    j^1 C3dotiffe ^C3stwe2 ;|

    M|'ff!f;fffiJ-^ -3

    narncOO | . Save 1++ source (",cpp;".c]

    , , -"

    ,

    . 0.25.

    , -

    , File > Open. FileOpen. , . , . -

    - ( ). - , .

  • 55

    ,

    , . , -

    . , ,

    , . 0.26.

    .

    , , -

    . ,

    .

    , .

    , File > Save As .

    Borland C++ - Iranca50 PIP! ITt ?- -^

    Puc. 0.26. C_SAL.CPP Borland C++ 5

    ! C_SALCPP.1. , .2. , C_SALCPP

    .. , -

    . C_SAL.CPP.3. C_SAL.CPP.4. : Sal say (Hi!) ( (!)); -

    Hi! Hello! ( . Hello Delete - , Hi).

  • 56 0.

    5. C_SALNEW.CPP. , ,

    ( C:\FRANCA). , , ? Hi Hello? - Hi, C_SALNEW.CPP . , .

    6. C_SALCPP C_SALNEW.CPP.7. . Helios-?8. C_SALNEW.CPP C_SALCPP .

    Microsoft Visual C++ 1.5 Microsoft: Visual C++ 1.5, - .

    Microsoft Visual C++ 1.5. , . 0.27.

    . 0,27. Microsoft, Visual

    .

    Projects Open Project, Open Project, . 0.28.

  • 57

    ,

    (C:\FRANCA). , File name .

    FRANCAM1 Visual C++ 1.5. , ( - , ). ,

    Projects Edit. Edit, . 0.29). ,

    ,

    File Name

    .

    ,

    , :

    ,

    . 0.28. Open Project Visual C++ 1.5

    , .

    ,

    Edit-FRANCAM1.

    XliSI |;]cj al.cpp

    c_i pund.cppcl i lock cppclmbotl.cppc1iobot2 cpp 2 change, cppc2clnout.cppc2clkcpy.cpp

    ',;j fiancaffij debug

    ,

    ) JrJ

    ;! c:\franca\c_sal.cpp; cAFiancaUrancamt .def' c:\francaMiancam1 .obj

    ranca\paul .

    : *haip_v1 1

    : ,

    . 0.29.

  • 58 0.

    :

    PAULO.RC

    FRANCAM1.0BJ

    FRANCA.DEF

    C_SAL.CPP

    (PAULO.RC, FRANCAM1.0BJ FRANCAM1.DEF) . (C_SAL.CPP) -, . , -

    , .

    !, , .

    1. .2. , .3. .4. , . , -

    ?5. .

    ..

    C++, . .

    . , . -

    ,

    . ,

    , .

    Project^ Edit.

    Project >- Edit. , -

    . . ,

    . 0.30 C_SAL.CPP.

    ,^ ^^^ ^^ ^^ ^*^ ^^ ^^ ^^ ^^ .^ ^^^ _^ ^^ _^ ^^) . FRANCAM1.0BJ PAULO.RC .

  • 59

    c_*al.cppc_ound cppcl lock, cppcliobotl.cppcl iobot2.cppc2change.cppc2cnoul.cppc2cfccpf,cpp

    Source (*.;*.;*.}

    c:\franca\fiancaml. delc:\franca\fiancam1 .objc:\lranca

    Puc. 0.30. C_SALCPP

    C_SALCPP Edit , . 0.31.

    _ sound, cpp1 clock.cppcliobotl.cppcl robot2.cppc2change.cppcZcinout.cpp

    cpp

    c:\tranca\ri ancaml .ob|c: \f ranc a\pau lo. ic

    Puc. 0.31. C_SALCPP

    , .

    Projects Edit. Edit, . 0.31. . - , , -

    . , C_SOUND.CPP, , ( . 0.32), Add. , - . 0.33.

  • 60_ 0.

    c1 clock, clioboH.cppdiobot2cppc2change.cppc2cinoul.cppc2dkcpu.cpp

    : \fianca\fiancam1. obj: \franca\paulo ic

    . 0.32. C_SOUND.CPP

    Edit -FRANCAMI MAC

    cl clock, diobatl.cppc1iobot2.cppc2change.cppc2cinout.cppc2cbcpji.cpp

    Source (-.c;".cppj'.ci)

    cAfrancaVe round, cpp: MrancaViancaml .delc: VfrancaUiancaml .obj: \ I anca\ paolo ic

    . 0.33. C_SOUND,CPP

    , . , -

    ( ) ..Visual C++ ( ), - . ,

    Project > Build, - Debug > Go. C_SALCPP, , - , . 0.8. . -!

  • 61

    , . -

    Windows 3.1, . Windows 95 .

    ) Debug > Go. Visual C++ , ( , , ), , Debug > Go.

    ! C_SAL.CPP.

    1. , .2. .

    , . 0.8?3. .4. .

    C_SALCPP. C_SOUND.CPP.

    5. . , - -.

    6. .7. C_SOUND.CPP C_SALCPP.8. .

    .

    , File> New. , (. 0.34). , File > Save As, . -

    , File Name, . 0.35.

  • 62 0.

    . 0.34.

    ,

    -4.-..-.

    :1!^

    . 0.55.

    , -

    , File > Open. Open File. , . , . -

    . ( ). - , .

  • 63

    Open File

    c_*al.cppc_tound.cppcl clock cppdtobotl.cppc1robol2.cppc2charige.cppc2cinout.cpp

    . 0.36.

    ,

    , . , -

    . , - ,

    , . 0.37.

    trenca.hathlete Sal;void nainprogt )

    Sal.ready() ;Sal.say("Hi! "

    PMC. 0.37. C_SAL.CPP Visual C++ 1.5

    .

    , , -

    . ,

    .

    , . , -

    File > Save As. Save As, . 0.38. File Name

  • 64 0.

    (C_SALCPP) , (, NEWSAL.CPP), .

    . 0.38.

    ! C_SAL.CPP.

    1. , .

    2. , C_SALCPP .. , -

    . C_SALCPP.

    3. C_SAL.CPP.

    4. : Sal say (Hi!) ( (!)); - Hi! Hello! ( . Hello Delete - , Hi).

    5. C_SALNEW.CPP. , ,

    ( C:\FRANCA). , , ? Hi Hello? - Hi, CJJALNEW.CPP . , .

    6. C__SALCPP C_SALNEW.CPP.7. . Hello?

    8. C_SALNEW.CPP C_SAL.CPP .

    Microsoft Visual C++ 4 Microsoft Visual C++ 4, .

  • 65

    Microsoft Visual C++ 4. , . 0.39.

    . 0.39. Microsoft Developer Studio

    Microsoft Developer Studio :

    .

    .

    .

    , . -

    , -

    Hide. ,

    Docking View. - , View > Project Workspace View > Output, , .

  • 66 0.

    .

    File > Open Workspace. Open ProjectWorkspace, . 0.40.

    ,

    ,.._

    : -^ Debug

    -,

    ^^^, ,.,

    Visual C++ 4

    FRANMS4 | Project Wofk*pace*(".mdp] ,

    .MDP

    , 0.40, Open Project Workspace Visual C++4

    , Look in (C:\FRANCA). , .

    FRANMS4 Visual C++ 4. , ( - , ). , -

    , . 0.41.

    -

    . .

    , -

    . , . 0.42.

    , .

    , -

    . , . 0.43.

    :

    PAULO.RC FRANCMS4.0BJ

    SALCPP

  • 67

    . 0.41. FRANMS4

    ,

    . 0.42.

  • 68 0.

    Ipi r;f5s - / i i

    Puc. 0.43.

    (PAULO.RC FRANCMS4.0BJ) . (C_SAL.CPP) , . ,

    .

    .

    !, , .

    1. .2. , .3. .4. , . , -

    ?5. .

    ..

    C++, .

  • 69

    .

    . , . -

    ,

    . ,

    , .

    , -

    ( ) Edit > Delete.

    .

    .

    ) . FRANMS4.0BJ PAULO.RC .

    -

    Inserts Files into Project, Insert Files into Project, . 0.44. .

    _

    Iribetl Files into Picm

    jj l] j3JC2change

    cinout

    ^ C2npul,f C2irnpbd1

    C2|mpjckjj$ C2scopeJlf3 C2squ2

    avgrd

    |JC3sale2

    Ja C3store1Jf QstoreZ

    1C MUM

    * .^::{:|Source Files [*.;".;*.)

    ,

    . 0.44.

    ,

  • 70 0.

    , . , -

    ( ) .. , Build > Debug > Go. C__SAL.CPP, , , - . 0.8.

    , . -

    Windows 3.1, . Windows 95 .

    !

    C_SAL.CPP.

    1. , .

    2. . , . 0.8?

    3. .

    4. .

    C_SALCPP.

    C_SOUND.CPP.

    5. . , - -.

    6. .

    7. C_SOUND.CPP C_SALCPP.

    8. .

    .

    , File v New. - New, . 0.45.

  • 71

    . 0.45.

    , , 0.46. File > Save As, . , , , -

    , FileName.

    . 0.46.

    , -

    , File>0pen. OpenFile. , . , . -

    . ( ). - , .

    ,

    , . , -

  • 72 0.

    . , ,

    , . 0.47.

    Elude tranceathlete Sal:

    d nainprog()Sal.reedyO;Sal.sayfHi I " ) ;

    -

    . 0.47. C_SAL. CPP Visual C++ 4

    .

    , , -

    . ,

    .

    , . , -

    File >- Save As. Save As, . 0.48. File Name (C_SALCPP) , (, NEWSALCPP), .

    |f C1robo(2f?C2changeif C2cinout

    ;T:F|e |* Jovial cpp) . :,..i... j

    ?.. .-; ,-v., !

    Puc. 0.48.

  • 73

    ! C_SALCPP.

    1. , .2. , C_SAL.CPP

    .. , -

    . C_SAL.CPP.3. C_SALCPP.4. : Sal say (Hi!} ( (!)); -

    Hi! Hello! ( . Hello Delete - , Hi),

    5. C_SALNEW.CPP. , ,

    ( C:\FRANCA). , , ? Hi Hello? - Hi, C_SALNEW.CPP . , .

    6. C_SAL.CPP C_SALN EW.CPP.7. . Hello?8. C_SALNEW.CPP C_SAL.CPP .

    Microsoft Visual C++ 5 Microsoft Visual C++ 5,

    1.

    Microsoft Visual C++ 4. , . 0.49.

    , . -

    , -

    Hide. ,

    Docking View. - , View > Project Workspace View> Output, , .

    Visual C++ 5 . Visual C++ 5 , -, Visual C++ 6: ( ),

  • 74 0.

    ,

    . 0.49. Microsoft Developer Studio Visual C++ 5

    .

    File> Open Workspace. Open Workspace, . 0.50.

    Open Woikspace

    'i . ." '

    3 franmsS.dsw

    . 0.50. Open Workspace Visual C++ 5

    , Look In (C:\FRANCA). , .

  • 75

    FRANMS5 Visual C++ 4. , ( - , ). , -

    , . 0.51.

    . 0.51. FRANMS5

    .

    , -

    , .

    :

    PAULO.RC FRANMS5.0BJ C_SAL.CPP (PAUU). RC FRANCMS4.0BJ) -. (C_SAL.CPP) , . , , .

    !, , .

    1. .2. , .3. .4. , . , -

    ?5. .

  • 76 0.

    ..

    C++, . .

    . , . -

    ,

    . ,

    , .

    , -

    ( -) Edit >- Delete.

    .

    .

    J ^ . FRANMS5.0BJ PAULO.RC .

    -

    Project > Add To Project > Files, Insert Files intoProject, . 0.52. . - ,

    (FRANMS5) Add Files To Project.,

    ,

    . 0.52.

    ,

    ,

  • 77

    , . , -

    ( ) .. , Build > Execute Build v Start Debug >Go. C_SAL.CPP, , - , . 0.8.

    (.). , . Yes, Build> Execute Build Start DebugvGo. , . -

    Windows 3.1, . Windows 95 .

    ! C_SALCPP.1. , .2. .

    , . 0.8?3. .4. .

    C_SALCPP. C_SOUND.CPP.

    5. . , - -.

    6. .7. C_SOUND.CPP C_SALCPP.8. .

    .

    , File > New. New, . 0.53. , , 0.54. File > Save As, .

  • 78 0.

    , , ,

    , File Name.

    Server PageBinary FileBitmap FileC/C++ Headei FileC++ Source FileCursor FieHTML PageIcon FileMacro FileResource ScriptResource Tempi ale

    _J

    J

    Puc. 0.53-

    CLsal.obj - 0 eccar(s). U vaxni&gfs)

    . 0,54.

    , -

    , File > Open. FileOpen. , . , . -

  • 79

    . ( ). - , .

    ,

    , . , -

    . , ,

    , . 0.55.

    , , . -

    , File> Save As. Save As, . 0.56. FileName (C_SAL.CPP) , (-, NEW5AL.CPP), .

    . 0.55. C_SAL.CPP, Microsoft Visual C++ 5

    I DebugI C_saLcppIC_sound.cpp

    FrancaplrarrnsS.dsp

    j^ franrntS.ncbfranmsS.ctii

    . 0.56.

  • 80 0.

    ! C_SALCPP.

    1. , .

    2. , C_SALCPP .. , -

    . C_SALCPP.

    3. (LSAL.CPP.4. : SaL say (Hi!) ( (!)); -

    Hi! Hello! ( . Hello Delete - , Hi).

    5. C_SALNEW.CPP. , ,

    ( C:\FRANCA). , , ? Hi Hello? - Hi, C_SALNEW.CPP . , .

    6. C_SALCPP C_SALNEW.CPP.

    7. . Hello?

    8. C_SALN EW.CPP C_SALCPP .

    , ,

    , , FRANCA. H .

    ,

    ( C:\FRANCA).

    .

    . , -

    ! .

    .WAV. .

    ,

    :

  • _ ? 81

    (/include "franca.h"athIete SaI; //c_sound.cppvoid mainprogO{

    Sal.readyf);sound("hel lo.way");

    ?

    0 .

    0 .

    0 .

    0 .

    0 .

    0 - .

  • I

    I - . -

    C++, 0. ,

    , . -

    -

    . -

    , (-). I.

    , , -

    , -

    .

  • U

    G

  • , .

    ,

    0. , - - .

    ,

    . , , -

    . , -

    .

    ,

    , 0.

    C_SAL.CPP . -:

    include "franca.h"ath I ete Sa IvoidmainprogO{

    Sa1. ready();Sal .sayC'Hir);

    } .

    tfincLude , , , , -

    . ,

    .

    franca.h. C++. - ( , ) - .

  • 85

    , -

    , - . -

    ! , , - (, , , ). - tfinclude.

    athlete Sal - . franca.h , athlete (). (Sal). , - - , Sal athlete. athlete , .

    void mainprogO - , . -

    , -

    ({}), .

    C++ -.

    C++ - mainQ winmain(). mainprogQ . -

    .

    mainprogQ , -

    . winmain()

    mainprog(). winmainQ , - Windows. , VIII, - main prog ().

    Sal.ready () . ready Sal. (Sal) (ready), , ((}).Sal.say("Hi!") , . , - Hi (). ? , , - , ! ,

  • 86 1.

    , .

    .

    , . -

    .

    ! . 1.1.

    Hi!

    . 1.1. C_SAL.CPP

    0, . -, -

    . 0 - C++.

    , , , -

    .

    (objects). , -

    . Sal, , . :

  • 87

    ready()up ( )left ( )right ( ) Sal - . , ,

    ready, up, left right , - .

    1 , , ,

    - . C++, - (memberfunction) . . (message) , , -

    , ,

    , -.

    -

    Hi. , - ,

    .

    (statements) . - .

    . ( ) - . -

    , , -

    .

    , .

    ready, up, Left right. , , ( to go down), , , - !

    J athlete - ( , -}.

  • 1,

    . 1.2 .

    ready up left right

    . i.2. , Sal ()

    , .

    . ,

    : . up, , , ? ? ? ? , ,

    :

    Sal . readyO; ,

    .

    C++ . Sal , sal, - ,

    ) , - . SaL, sal .

    ( , include void main()). , ,

    , (- - ). :S a l . readyO; .

    , ( - , . .) - ( , , ). - , ,

    .

  • 89

    - , ,

    ! , , - , . -

    (bugs).

    athlete athlete -. ,

    1 1 . i.i.

    .

    ,

    .

    :

    readyupleftright . ,

    say ( ).

    (arguments) . , -, , , , -

    . say - , , .

    .

    ,

    . , 5 - , 8 :

    Sal.left(5);Sal.up(8);, ready, up, left right, -. ,

    Sal.left(0.5); , -

    . , -

    . (, ')

  • 90 1.

    ready, up, Left right , -, , ,

    say , , , ,

    .

    J , ! , File > Save As .

    , - , -

    ? , hello:

    Sai.say(hello); , hello - , :

    hello* hello. , , -

    , .

    C++, . C++ - hello "hello".

    C++ , -

    . , -

    . - -

    . ,

    , - ! , ,

    .

    , , -

    . -

    , . ( , .), ,

    , , ,

    ! . !

  • C++ 91

    C++ (//), - .

    , -

    :

    //**-// C_Sal.CPP

    // // Paulo Franca, 21.08.94// 21.08.94

    #i nclude "franca, h" // ath lete Sal; // vo i d ma i nprog() // {

    Sal. readyO; // .

    // Sal.sayC'Hi!") ; // " H i ! "

    } // . -

    , , -

    SaLreadyQ. , . , !

    ,

    ,

    , .

    , . , -

    .

    ( , ).

    1

    , .

    , .

    ,

    . , -

    .

  • 92 1.

    ,

    , .

    .

    ,

    , -

    , . :

    , . , -

    , . , ,

    , , , .

    .

    . ,

    .

    , . ,

    :

    readyupready

    , ?, , .

    . -

    ! :

    .

    .

    , , ,

    . , SaLrightQ, Sal.leftQ . . , ,

    , .

    ? -:

    readyupleft

  • ? 93

    upreadyuprightupready

    , , .

    , .

    , , -

    .

    ,

    . , 5, - ready, up, left, right.

    , .

    0.

    C_SAL.CPP , Sab Hils>. Sal , Sally (),

    .

    , : ready, up,left, up, right, up, ready.

    ,

    (ready, up, left, up, right, up, ready).

    ?

    0 C++.

    0 , (,Hello!) .

    0 .

    0 athlete.

    0 .

  • Clock () Box ()Q Robot ()

  • , ,

    . -

    Clock.

    ,

    . -

    , . -

    Box, -- (label), - .

    , -

    , Robot. . ( , .)

    Clock Clock ( Clock, ), - .

    Clock, , :

    Clock mywatch; // mywatch - Clock

    , :

    , .

    .

    .

    Clock Clock :

    wait(4noio );tirneO;reset(); wait ( ) -, . .

  • 96 2.

    timeQ Clock ( ), - ( , ). resetQ Clock . - 0, - Clock .

    Clock, :Hello!, 3 : How are you?. :

    1. "Hello!".2. Clock 3 .3. "How are you?". athlete ( Sal) Clock. , , - (, ready), ! C1CLOCK.CPP mywatch.

    // // 19.10.94.// C1CLOCK.CPP^include "franca.h"v o i d mainprogO{

    Clock mywatch;athlete Sal;Sa I . ready(); // Sal say("Hel lo!") ; // "Hel l o ! "mywatch. wait(3); // ,

    // 3 Sal .say("How are you?"); // "How are you?"mywatch. wa i t{ 1); // 1

    i

    Clock , ., time(), - . ,

    , , :

    mywatch.waitfO.5);

  • Clock 97

    mywatch ., ,

    . :

    Sal.say(mywatch.time()); , -

    , mywatch.timeQ Clock , -

    .

    ?

    . , , -

    . -

    .

    . -

    .

    .

    , , : Sally!Where are you? (! ?), 5 : Here I am! ( !). , , -

    ( Box) - . -

    , . ,

    : Sally! Where are you?, - . -

    ,

    :

    // ( athlete)// // "Sal ly! Where are you?",// 2 // 5 // // " I !",// 2

  • 98 2,

    .

    , , , -

    . , ,

    .

    , ,

    . , .

    :

    // "Sal ly!"// 2 // "Where"// 2 // "are you?"

    , :

    // ( athlete)// // "Sal ly !"// 2 // "Where"// 2 // "are you?"// 5 // // "Here I am!",// 2

    , -

    ( -). .

    , , -

    C++. , :

    // ( athlete)

  • Box 99

    :

    athlete Sal , S a l l y ; .

    ,

    . , , ,

    .

    Box, -

    , . -

    Clock, ?

    , , -

    . -

    - , .

    Box athlete. Box, , , , athlete. Box athlete:

    .

    Box .

    ( Box) .

    , , -

    :

    Box d isp lay ( " T i m e : " ) ;

    , (my watch):d i spI ay.say(mywatch.t i me()); , Time: , .

    Box, . 14 ( Box).

  • 100 2.

    Robot , , , .

    Robot Robot , , .

    Robot . , -

    . . 2.1.

    ! Paulo France's C-

    . 2.1. Robot

    Robot, ( ) . Robot Tracer.

    , . 2.1, - clrobotl.cpp.

  • _ 101

    include "franca. h"//1 robot! . Robot Tracer;void rnainprogO{

    Tracer. face(3);Tracer. step();

    Tracer, Robot, :

    Step() . . .

    , timescale (. ), .

    left() 90 .right() 90 .seewallQ ( ). ,

    . ( 8.)seenowalL() ( ). - , -

    . ( 8.)() . (0, 1, 2 3), , , . -

    4.

    mark() . - , , -

    ( ). . 2.1.5(") . - ( ), ( ). - 12.

  • 1 02 2.

    2.1. markQ

    0

    1

    2

    3

    4

    5

    6

    7

    51() . , , , ,

    0,1 . , , 0,5 , -:

    Trace .t i mescaIe(0.5); C++ : , . -

    , , .

    , cl robotl. cpp, Tracer , :

    Tracer. stepO;f*w Tracer , -. Tracer , , . -

    , .

    clrobotl.cpp . .

    :

    Tracer, stepO;Tracer.stepO;

  • 1 03

    Tracer.step();Tracer.step(); :

    Tracer.step(4); .

    .

    , ,

    . ,

    .

    , -

    :

    Tracer, ma rk();Tracer.step();Tracer.mark();Tracer.step();Tracer. mark();Tracer.step();Tracer.rnark();Tracer.stepC); Tracer . .

    , -

    . ,

    . 2.2.

    , , -

    .

    ? . - . ? ( leftQ right()), - ( face()). , , :

    Tracer.face(1);

  • 104 2.

    2.2. face()

    ( ) ( ) ( ) ( )

    0

    1

    2 i3

    , -

    . , . :

    Tracer. sayC'Done!");, , ? - ? ...

    , , -

    , going () . -, coming back () .

    , , -

    . . -

    3 3. , , , . .

    :

  • :

    #IIude "f .h" //drobot2.Robot Tracer;voidmainprogO

    Tracer.face(3);Tracer.mark();Tracer.step();Tracer.mark();Tracer.step();Tracer.mark();Tracer.step();Tracer, rightQ;Tracer. mark();Tracer.step();Tracer. markO;Tracer.step();Tracer.mark();Tracer. stepO;Tracer.right();Tracer.mark();Tracer.stepC);Tracer.mark();Tracer.stepO;Tracer. markO;Tracer.stepO;Tracer,right();Tracer. markO;Tracer.stepO;

    //

    //

    //

  • 1 06 _ 2.

    Tracer. ma rk();Tracer. stepO;Tracer. markO;Tracer. stepO; // Tracer. rlght();

    , , , . -

    ! . 2.2.

    . 2.2.

    ? 4, 3 ? , ?! , 3 , , 4 . 3 , .

    ?

    0 , Clock.

    0 , Box.

    0 Robot.

  • -

    . -

    , , , . ,

    . ,

    , , .

    . -

    ,

    : ,

    . . ,

    .

    . .

    , . , -

    , . ,

    , .

    ( - ). . , -

    . ? ?, :

    3 .

    , 3!

  • )9

    ,

    , .

    , , .

    . -

    , , . -

    ,

    :

    , , .

    . :

    .

    , . ,

    . -

    ? , , , .

    , . , ,

    ?

    . -

    ,

    . , -

    , ( , ) -, - .

  • 110 3.

    ? - . ,

    . ,

    -

    .

    c_sat.cpp -:

    Sal.readyQ, SaL.ready);. .

    tfindude.

    5("1!");. , , -

    , , . , -

    . , ,

    , -

    , , ,

    , ,

    :

    Sal.readyO Sal ,say("Hi !") ; , , -

    , , .

    , . -

    , ; . .

    .

    , , Hi! . .

    . ,

    , .

    , , . -

    , , , . , ,

    ,

    . -

    .

  • 111

    .

    , -

    , -

    . , .

    , ,

    , .

    () , , - , , ,

    . , -

    :

    (_). , ( 0 )

    .

    32 (, , , 32).

    .

    ( -, ).

    , -

    .

    *^ ^^ ^^ ^V^

    ^ .

    :

    2waystop ( ). my number ( ). this-number ( ). "Sal" ( ). :

    twowaystop mynumber thisnumber Sal

  • 112 3.

    . -

    , void, , , . .

    , .

    ( ).

    ( ), . -

    .

    .

    ,

    . int () , . int - . ,

    ( athlete). , .

    . , , athlete - .

    ,

    -

    .

    . , athlete , . ,

    (, athlete), .

    (declaration) , . :

    _ _;

    _ , -

    (, athlete clock franca,h), _ - . ,

    , , , :

    athlete Sal, Sal I;

  • ^ 113

    , .

    . ;

    Clock mywatch; // mywatch Clock. int number_of_tirnes; // nu(nber_of_tinies

    .

    .

    , .

    (), , . . -

    :

    _.(); SaL ():Sal.upO; Sal () 2:Sal.up(2); ,

    2 .

    C++ --. - 16.

    , -

    . . C++ :

    (//). (/*) (*/)

    .

    :

    /* $

    */

    :

    int/* */ iapcount;

  • 114 3.

    ,

    c_salcpp:

    include "franca.h"athlete Sal;voidmainprogO

    sal. readyf);Saf.say(Hi);} . . -

    .

    , -

    . ( ) -, .

    , ,

    . 3.1 ( ). - .

    t fready up left right

    . 3.1.

    -

    c_sal.cpp:

    ^include "franca.h"voidmainprogO

  • 115

    ready;Sal.sayC'Hi!");I . , ,

    .

    :

    2nd! imeapol 1-13apol 13 i gT i memy friendmy. friendmy_friendvoid

    , ,

    . 3.2.

    . 3.2. -

    :

    , -

    .

    .

    . , -

    ? , , , , - ?

  • 116 _ 3.

    . ? ?

    voidmainprogC){

    athlete bi 1 1 , John doe, ann3;Clocks days, my-clock, O'Hara, other;Box show;show.say(thetime);bi 1 1 .say(other.timeO);Marie. readyO;Robert.upO;

    ?

    0 .

    0 .

  • II

    . II . ,

    ,

    . -

    .

    II .

  • Q

    Q U

  • -

    . ,

    . , ,

    . , ,

    , , .

    , . -

    , -

    .

    .

    , , -

    ,

    . ,

    . , -

    , .

    . -

    , -

    .

    :

    S a l . u p C ) ;Sal.leftO;Sal.upQ;S a l . r i g h t C ) ;S a l . u p f ) ;Sal. readyO;

    , .

    , -

    , , -,

    . ,

    ,

    ', . -

    .

    C++ (function), -- (procedure).

  • 1 20 4.

    , -

    .

    .

    . -

    , -

    . , ! , - .

    , -

    .

    / .

    , , ,

    . , ,

    :

    . -

    , , -

    .

    , , --

    , :

    -

    , .

    , -

    .

    -

    . ,

    , ,

    .

    . ,

    .

  • 1 2 1

    . ,

    ( ), , , .

    :

    .

    C++ ;

    void JumpJackO{

    Sal.up();S a l . r e a d y C ) ;

    }

    , -, , -, .

    - : . -

    , -

    .

    -

    ?

    . -

    ,

    {}. . -

    . ,

    .

    "^ ^ ^ "^^ ^^ ^^ ^^ ^^ ^^ ^^ -^^ ^^ ^^ ^^ ^^ ^^ ^) { , ).

    , , -

    ( ).

  • 1 22 4.

    void, , {). .

    c2jmpjck.cpp:// c2jmpjck.cpp// Paulo Franca// 05.01.96// // JumpJack^include "franca.h" //

    // athIete S a I ; // SaI athIetevoid JumpJack() // JumpJack{

    Sal .up(); // Sa I. ready(); //

    } // JumpJackvoid mainprogO // {

    SaI.ready() ; // JumpJackO; // !

    } // JumpJackQ mainprog(). , mainprog , , . ,

    , . -

    mainprogf) . - JumpJackO.

    -

    .

    , ,

    .

    mainprogO :

    void mainprogO // {

    SaI.ready(); // JumpJackO; // !

  • 1 23

    JumpJack(); // !JumpJackO; // !

    } // , , , , -

    . , -

    . ,

    .

    , , .

    , -

    :

    athlete S a l , Sal I; ,

    athlete , , ;

    S a l . readyO;Sal I. readyO;

    , . , ,

    ? JumpJackQ, . ? :

    JumpJack(). , .

    . , ,

    , . ( - , , -

    , ?)

    , -

    . -

    , , .

    - . ,

    . , , ,

    . ,

    ,

    .

  • 1 24 4.

    , ,

    . ,

    , (parameters). - . , -

    , (argu-ments). ., , JumpJackQ c2jmpjck.cpp - , ( , ). , - , athlete.

    1. , -. - , (- somebody). - . ,

    . , - .

    2. , ( ) - . , -

    ( , ), .

    , c2jmpbdy.cpp:// c2jmpbdy.cpp//^ inc lude "franca.h"athlete S a l , S a l l y ;v o i d JnpJack(athlete somebody){

    somebody.up();somebody. readyC);

    >v o i d mainprogO{

    S a l . readyO;JmpJack(Sal) ;S a l l y readyC);JmpJack(Sal ly) ;

    } 3mpJack() sombody, , , . ,

  • 1 25

    , . -

    , , JumpJackQ :JmpJack(Sal) ;J m p J a c k f S a l l y ) ;

    Sal. ?

    JumpJackQ, somebody SaL - , - .

    Sally. - , . 4.1.

    ; Paulo France's C

    . 4.1. c2jmpbdy.cpp

    ,

    :

    . -

    JmpJack() . .

    , JmpJackQ , .

    JmpJackQ : , - . .

    , JmpJack(SalLy);, JmpJack(Sal);.

    . -

    , -

    ( )., , ,

    .

    , . , -

  • 1 26 4.

    JmpJackf) , ,

    ( ):void JmpJack(athlete sombody=Sal) ,

    JmpJack(); ,

    JmpJack(Sal);

    . -

    . , ,

    , ;

    JmpJack(Sally);

    , -

    (. - ).

    . , -

    ,

    . C++ - , () . JmpJackQ, - . ,

    JmpJackQ :void JmpJack(athlete first, athlete second)

    JfnpJack(fiKst);JmpJack(second);

    } . , ,

    , ? - ,

    . ,

    .

    , -

    0 , - .

  • 1 27

    . ,

    . ,

    ( ), . .

    JmpJackQ :

    .

    .

    .

    .

    .

    .

    ? :

    void JmpJackfathlete first, athlete second)

    .

    , -

    . , -

    , Sally JmpJack():

    Sally , , - . C++ . , .

    .

    , -

    . , , -

    .

    , ,

    Clock (). Clock, - timer (), . ,

    .

    ,

    , .

    Before:, D u r i n g : After:. - c2clkcpy.cpp:

  • 128 ^4.

    #include "franca.h" // c2clkcpy.cpp// Box before ("Before:"), during ( " D u r i n g : " ) , after ("After:");v o i d zerofClock clone)t

    clone.reset(); // dur ing.sayfc lone.t imeO); //

    }void mainprogOI

    Clock timer;timer.wait(1); // 1 before.say(timer.timeO); // zero(timer); // after. say(tImer. timeO); //

    , .

    , . - -

    wait(l) 1. , , -

    zeroQ. 0. , ,

    . , , ,

    , , , timer . ! , , 1 . , timer, -. . 4.2.

    3efore:1.00During:.

    After:1.01

    . 4.2. c2clkcpy.cpp

    -

    , , .

  • 1 29

    C++ , , . ,

    (value), (reference). . , ( - ). C++ - &. :

    v o i d zero(Clock &cione){

    clone.reset(); // during.say(clone.t imeO); //

    ! . (&) , . .

    , & , -

    .

    , ,

    . , .

    . -

    . , -

    . , athlete - . , -

    , ,

    .

    , -

    . -

    . , ,

    . -. -

    - 16 17.

    athletes, ready, up, Left right. -

  • 130 4.

    . ,

    .

    - --

    -

    . , athlets :

    ready()up()left()rightf)say()

    . , -

    athlets. - - . . -

    , JmpJackf) , . ,

    , --.

    ,

    . , ,

    . ,

    .

    ( ) . , - ,

    tfindude. , , .

    franca.h. - , franca.h :

    include "franca.h"

    .

    JumpJackQ , jumpjack.cpp, :

    ^include "jumpjack.cpp"

  • 131

    JumpJackQ ( franca.h). , , -

    , ^include.

    , ,

    , (, C:\franca). , : include "c:\franca\jumpjack.cpp" , ,

    . -

    , (- , ). - . :

    #inc!ude;jf include ;

    (directive) . , - , .

    C++, .

    (#) . ,

    tfinclude.

    , ,

    , (header file) - .h ( .). ., , -

    .h. File >- Store As File > Save As .

    .h (. ).

    JmpJackQ. , -

    jump] ack.h.

  • 132 4.

    : , , ,

    . -

    , , , , .

    - ,

    (scope). , - , , -

    , .

    C++ - ,

    .

    , ,

    . ,

    , .

    .

    cZjmpjck.cpp Sal. JmpJackQ - .

    c2jmpbdy.cpp Sal Sally. JmpJackQ somebody - . Sal Sally - -, mainprogO Sal Sally.

    , .

    c2jmbdl.cpp, c2jmpbdy.cpp.// c2jmbd1.cpp//// // JumpJackO athlete ^include "franca.h"void JrnpJackfathlete somebody){

    somebody.up( );somebody. ready( );

    }void mainprogO{

    athlete Sal, Saily;S a l . readyO;JmpJack(Sal);

  • 133

    Sal ly . ready() ;JmpJack(Sal ly) ;

    , Sal Sally - mainprogQ. , .

    . -

    Jmp3ack(). somebody - Sal.

    Sal:

    void JmpJack(athlete Sal){

    S a l , u p ( ) ;S a l . readyO;

    ; Sal Sally:

    void mainprogO

    * athlete S a l , S a l l y ;S a l . readyO;JmpJack(Sal);S a l l y . r e a d y ( ) ;JmpJack(Sally);

    1

    -

    . , .

    JmpJackQ Sal , - . Sal, - mainprogO,a Sally.

    . -

    . -

    .

    ( ). SaL . - JmpJackQ , ,

    . , , -

    , , -

    .

  • 134 4.

    Sal ():athlete S a l ; Sal :

    void JmpJack(athlete S a l }{

    S a l . u p C ) ;Sal.readyO;

    } Sal Sally:

    void mainprogO

    athlete Sal I;S a l . readyO;JmpJack(Sal);Sal ly. readyO;JmpJack{Sal ly) ;

    , -

    , , -

    .

    .

    ,

    . , somebody . :

    v o i d JmpJack(athlete sombody){

    athlete sombody; // ! somebody !

    -

    . Sal mainprogQ. . Sal .

    void mainprogO

    athlete Sal;

  • ? 1 35

    jmpjack(Sal);athlete Sal; // ! Sal

    // ; , C++ .

    .

    . Sal -. -,

    . SaL - . Sal .

    void mainprogO1

    athlete Sal;Sa I . ready() // SaI{ //

    athlete Sal;athlete S a l l y ;Sal . upO; // SalSally.left( );

    ; // Sa I . i ght(); // I

    }

    Sally. Salty (, ). Sally - .

    ?

    0 .

    0 .

    0 .

    0 .

    0 .

  • ,

    -

    Q U

  • . -

    , , ,

    .

    I, . .

    , -

    -

    .

    . -

    , . ( -) , . , , , , . C++ .

    . .

    int long. int , -

    32768 +32767. Long , -

    -2147483648 +2147483647.

    . . -

    float double.

    float , -

    3.4x10"38 38. . double

    ,

    l.TxlO"308 UxlO308, .

  • 138 5.

    . char , - - .

    char .

    ) int Long .

    ,

    . . -

    , , .

    :

    athlete S a l ;Clock my t ime; , , . -

    :

    int count, howmanytimes;float elapsedtime; , unsigned int . -

    . . -

    , lapcount, 0 65 535:

    unsined int lapcount;

    J , , . -

    .

    ? - . -

    -

    .

    , . ,

    ( ), , -, .

    -

    .

  • 1 39

    , ;

    (). , .

    .

    , -

    .

    ) , - - .

    , .

    , int, -

    , , -

    .

    :

    .

    .

    0 .

    :

    Sinclude "franca.h"void mainprogO1 II ", , "

    Athlete Sal;int one, two, three;Sal ready(5);Sal .sayC'one");Sal.say(one);Sal,say("two");Sal.say(two);Sal,say("three");Sal.say(three);

  • 140 5.

    one, two three? -, , , - ,

    . ,

    .

    S^ *-^ ^^ ^^ ^^ ^ !-*.-^ ^^ ^^ ^^ ^^ ^ ^^ ^^ ^^^ ^^ ^^ ^^ ^ ^^ -^ ^*-1^ ^ ^^ ) - , - (, , - }. , - , ,

    ( ) .

    =.

    ,

    . - ,

    , -

    . , howmany 21, :

    howmany=21;

    , howmany :int howmany;

    , C++ = , ,

    ,

    . ! , - C++ , - howmany 21:21=howmany; // !

    , 21 - 21!

    . , new old. , new 15, old 13, , 13, - -

    , :

    new=old;

    :

    old=new;

  • 141

    , - -

    13, , new 13.

    new old, , ,

    new old, - new :

    new=old;old=new;

    , -

    , . :

    temp=new;new=old;old=temp;

    , ,

    . , -

    maybe, 21:

    int maybe=21;

    , , , :

    int =1, two=2, three=3;

    .

    , -

    (+) (-), -. , ( *) (/), .

    ,

    = . -

    :

    intrnaybe, hisage, difference; //

  • 142 5.

    maybe=21; // 21// maybe

    difference=5; // 5// difference

    hisage=maybe+difference; // maybe// d ifference// // hi sage

    hisage 26.

    ( -). :maybe=maybe-i-1; maybe, . (, - ?) :

    maybe=maybe-1;

    ++

    C++ -.

    (--) (-). :maybe++;

    : - :

    maybe=25;hisage=maybe++;

    maybe, . -

    :

    maybe 26, -.

    hisage 25, - maybe.

  • 143

    ,

    maybe, hisage:

    rnaybe=25;hisage=++maybe; , (maybe hisage) 26. :

    maybe=25;hisage=++maybe++; , hisage maybe? maybe , .

    ~ .

    ++ ~ , -

    .

    (), ,

    , :

    int 1=1, j=2, k=3; , k - . , -

    . , .

    k=++k+j;

    k= i - j ;i+j=k;k++=j ;

    . ,

    , , :

  • 144 5._

    == .

    != . < .

    .

    >= .

    , -

    ( ).

    .

    - .

    . -

    .

    .

    , , -

    . ,

    , .

    , , -

    .

    .

    (input) , - (-, ). .

    , , . -

    , -

    .

    .

    23. , -

    .

    j C++ - VIII.

    , -

    , . , , -

  • 145

    ,

    . -

    .

    :

    ask .

    Ci n -, C++.

    ask() ask() , . -

    , . ask() - :

    ask{3anpoc); ,

    . ,

    (. 5.1), :

    Price=ask("Please enter the pr ice:"); ( Enter), - Price.

    Paulo France's Please enter the price:

    . 5.1. ask()

    Cancel .

    Cin Cin, C++. - ask();C i n _;

  • 146 5.

    _ , -

    . , -

    .

    (. - ). Gin , ask(). , - , (. 5.2).

    Paulo Franca's *+Input a number

    . 5-2. Cin

    , -

    , -

    . , -

    , (output). ,

    , , , -

    , . . -

    . .

    , -

    . ,

    . C++ ( ) , - , , -

    .

    Cout, Cin. Cout - -

    C++.

    Cout Cout . ,

  • 147

    . ,

    (. 5.3).Paulo France's '

    !

    Output:12.00

    . 5.3. Cout

    Cout Cin, . ,

    Cout Cin e .

    Cout ^; Price:

    Cout Price;

    ask(), say():# include "franca. h"athlete Jul ia;v o i d mainprogO

    // c2input.cpp

    float Price;Jul ia. ready();Price=ask("Please enter the price: ");JuJ ia.say(Price);

  • 148 _ 5.

    C++ cin cout ( ), VIII.

    Cin Cout

    ft include "franca, h" // c2inout.cppvoid mainprogO

    p

    float Price;Cout"Enter the p r i c e : " ;CinPrice;CoutPrice;

    } Cout , - ( ), Cin -.

    .

    , .

    :

    ^include "franca. h"void rnainprogf){

    float Price, tax=8.25; // Cout"Enter the price: ";CinPrice;Price=Price+(Price*tax/10Q); // CoutPrice;

    tax, 8.25, . -

    Price - Price.

  • ? 149

    ?

    0 .

    0 .

    0 .

  • Q G CJ

  • , , ,

    . -

    ,

    . , -

    .

    - -

    .

    , , ,

    . , , -

    , !

    , ( - ). - , .

    . -

    :

    .

    , .

    , , -

    .

    , , -

    .

    , ,

    . -

    . , , .

    , .

    :

    .

    .

    .

    , .

    .

    .

    .

  • 152 6.

    , , -

    . -

    ( ).

    .

    ( JmpJackQ), ( Clock) . . -

    :

    ( JmpJackQ). (

    ).

    . ,

    . -

    :

    , theprice (). , theamount (). , thechange ( ). . -

    , -

    . , .

    ,

    .

    .

    theprice theamount - , thechange - .

    mainprog().

    Ha C++ :

    void dif(float theprice, f loat theamount, float &thechange){

    thechange=theamout-theprice;

  • 1 53

    amount price, - , :

    dif(price, amount, &change);Coutchange;

    :

    Coutdif(price, amount, change); , -

    , . , -

    , , . -

    , , , -

    .

    , ? , , :

    Number=JumpJack(Sal); :

    Price=ask("Please enter the pr ice"); ?

    C++ , - . , -

    :

    v o i d dlff(float theprice, float theamount, f loat &thechange) .

    void - ? , -.

    , :

    . -

    void, . , C++ int.

    return, -, .

    , , dif() - ,

  • 154 6.

    . -

    , :

    float dif(f loat valuel, float value2) . ,

    dif valuel valueZ ( -) , -. .

    , -

    . return, - - :

    return ;

    . :

    float dif(f loat valuel, float value2){

    return value1-value2;

    return ! , return, .

    c2change.cpp. , .

    , -

    .

    .

    :

    price, amount change.

    .

    .

    ( dif()). .

    c2change.cpp ( . 6.1):

  • 155

    tfinclude "franca. h" //c2change.cppfloat d iff (float valuel, float value2){

    return value1-value2;

    void mainprogf){

    float price, amount, change;Box given("Amount: "), thechange("Change: ")price=ask("What is the price to pay?"};amount=ask("How much are you g i v i n g me?");change=d if (amount, price);given. say(amount);thechange. say(change) ;

    , 6.1. c2change.cpp

    , price amount :

    change=dif(amount, price);

  • 156 _ 6.

    dif(). , .

    change.

    price amount. dif () valuel value2 . dif(), valuel - amount, value2 price. , - .

    ,

    . -

    :

    change=dif (price, amount);

    ( ), . dif(), :

    float d i f (float valuel, f loat value2)

    value1=value1-value2;Coutvalue1;return valuel;

    valuel, . Cout. , valuel .

    valuel - ( amount), , . amount- .

    -

    . -

    dif() mainprogQ, - .

    , -

    .

  • 157

    , , -

    , ,

    . , -

    , .

    . , ,

    ,

    .

    C++ , -, . -

    (inline functions). , , - , .

    , ,

    .

    . -

    , ,

    , ( 7.)

    inline. , C++ .

    ,

    ,

    2. .

    . , -

    , , !

    :

  • 158 6.

    , ,

    .

    ( Tracer). , .

    .

    3 :

    ,

    , , , .

    . ,

    .

    3 , :

    // //

    //

    -

    :

    Robot Tracer;v o i d I ine3(){

    Tracer mark();Tracer step();Tracer mark();Tracer stepC);

  • 1J9

    , , -

    . .

    , -

    . , .

    ,

    :

    void I ine3(int color)

    Tracer mark(color);Tracer step();Tracer mark(color);Tracer step();

    }, , -

    ? ! - :

    void I ine3(int color=2) -

    . -

    . - -

    .

    :

    void square3(int color=2)

    I ineS(color);Tracer. rlghtC);I ine3(color);Tracer. r ightC);I ine3(color);Tracer.r ightC);I ineS(color);Tracer.right();

    -

    :

  • Tj50 6.

    () square3(). squareBQ Iine3(), .

    pointQ, Line3() squareSQ. pointQ ,

    Iine3 (). Line3(). square3()

    .

    . -

    mainprogQ.

    , , .

    . ,

    .

    ,

    . , ,

    , . -

    :

    .

    .

    , ,

    . , . -

    . , , -

    .

    , ,

    , , -

    .

    -

    . , ,

    . , .

    , , -

    . -

    .

    ? ! ,

    . ?

    , ,

    , . -

  • _ 1 6 \

    , -

    . : -

    .

    ,

    C++. ?

    , ,

    .

    c2squar2.cpp . mainprog() , . .

    include "franca.h" //c2square2.cppRobot Tracer;inl ine void paint(int color=2)

    Tracer.mark(color);Tracer. step();

    ,

    void I ine3(int color=2);paint(color)paint(color)

    void square3(int color=2);i

    I ine3(color);Tracer. right();Iine3(color);

    Tracer.right();I ine3(color);Tracer. rightO;Iine3(color);Tracer.right;

    void mainprogO(

    Tracer.face(3);Tracer.step(5);Tracer.right();Tracer,step(7);Tracer. leftO;square3();Tracer.step(5);square3(3);

  • ]62. ^^

    -

    .

    (function definition) , , . -

    . -

    :

    {

    }

    (function header) : ( -

    void). ( ) , , -

    ( , - ).

    ' void . , float time (void) , , float time().

    ,

    ( ). -.

    ,

    void Jrnp Jack (athlete somebody), :

    (void). JmpJack. somebody athlete (, -

    somebody athlete).

  • 1jS3

    (function body) , -. , -

    , .

    , 3mpJack() :somebody. up();somebody. readyO; :

    void JmpJack(athlete somebody){

    somebody.up();somebody. readyO;

    } :

    , -

    .

    , !

    (type matching) . , -

    , Clock, athlete:

    void jumps(Clock timekeeper, athlete somebody) ,

    .

    , C++

    . (function overloading)., JmpJackQ, , . 3mpJack() athlete .

    :

    JmpJack(Sal);JmpJack(Sal, Sal ly);

  • ]64 6.

    . ,

    ( ), - . ,

    .

    -

    &, , .

    , -

    . ,

    . -

    ( ). , :float d i f ( f l o a t &value1, f loat Svalue) ;

    change=dif(100.00, pr ice); valuel, 100.00 . ( - ) .

    , -

    , (function call). :

    _ (_); .

    ,

    .

    . -

    , ,

    . -

    , , -

    . , -

    (function prototype).

    ) - , ,

    .

    .

  • , -

    :

    :

    float change (f I oat price, float amount); , :

    float change(f loat, float); , -

    , . -

    .

    ^include, - . ,

    tfincLude , , ^include, , -, .

    , gymnasth, , , QmpJack.h. , , gymnast.h tfinclude 3mp3ack.h.

    :

    ftinclude "gymnast. h"tt include "JmpJack.h" gymnast. h:

    -

    include "JmpJack.h" , -

    OmpJack.h. . :

    ffifndef JUMPJACK_Hdefine JUMPJACK H

    .

    :

    ttendif OUMPJACK^H .

    , #, C++. , .

    .

  • 6 .

    #include, JmpJack.h. - JumpJack.h .

    , , -

    -. -

    athlete. fitness. h .

    , -

    fitness.h . - .

    -32 768 +32 767. int - . -

    float, , , float. . :

    int number, alpha, count;float x, , z;

    .

    ;

    intone=1, two=2, three=3, other;float x=3.45, y, z;

    : one, two, three other, 1, 2 3, . ,

    3.45, z , -.

    ,

    , (=) -. -

    . :

    =54;two=one+three;

    . :

    one+two=three;

  • 1 67

    float int, . ,

    ( , -). , , .

    (expressions) , ,

    , (). , - .

    :

    +

    -

    *

    /

    %

    , -

    .

    +, -,*,/,% =.

    (), .

    .

    , -

    .

    . -

    *, / %, + -. -, , -

    ( ). -.

    . ( , , -)

  • 68 6.

    .

    .

    , ,

    .

    (++) (--) - .

    .

    ( ) - (=). ,

    .

    , -

    , .

    . ,--

    howmany=times=times-fl . - times+1, times, howmany. howmany=times+l=5, times+1, , .

    semmetry (athlete he, athlete she), .

    * he :

  • ? 169

    she :

    , -

    .

    ?

    0 .

    0 .

    0 .

    .

  • III

    / ,

    ,

    .

    ,

    ,

    , ,

    .

    .

    -

    , .

    -

    .

  • Q while do...whileQ forQ a

  • -

    . , , .

    -

    . , -

    15 . , . -

    , , .

    , , -

    . , ,

    15 . - , ,

    , , .

    , :

    ! ! !... . 7,1.

    Count

    JumpJack

    Count =Count-

    !. 7.1.

    , ,

    . ( count). , -

    .

  • 173

    (loops), . :

    while

    do...while

    for

    while . 7.1 :

    ( count) 15, :

    ( Jump3ack())

    !

    ,

    . ,

    .

    , .., , ( ) ,

    15 .

    ? .

    . 7.1 . - (flowchart). (count=0) , - 15 ( count

  • 7. 1

    , .

    .

    15 ( 0 14 ). 14, - JumpJackQ 15. , 15 ( count

  • V75

    (compound statement) ( ), . - ( ) - , , .

    , C++, , - .

    , mainprog(), - ( - ).

    while ! -.

    ,

    , Count 15, ... :

    whi le(Count

  • 1176 7. ]11

    C++ :

    count=0; // while(count=

    <

  • 17/

    , ,

    15. < () (relational operator) (conditional operator), . , -

    .

    . 10 - .

    ,

    -.

    , ,

    -.

    , , -

    .

    ,

    .

    3mpJack() :void JmpJack(athlete somebody, int howmany) somebody athlete

    , howmany.

    do...while do...while while. while . , -

    , !

    do.. .while , . 7.2., ,

    . -

    .

    do.. .while do , while, , . , - !

    , -

    :

    count=0do -&

  • 178 7.

    JmpJack(Sal);count++;Iwhi le(count

  • , , -

    for , , , -

    :

    (count=0) , - . ,

    .

    (count

  • 1 80 \^7 ^

    void mainprogO

    {athlete Kim;

    int howmany, done;// : " ?"howmany=Kim.ask("How many jumping Jacks?");// for(done=1; done

  • 181

    ,

    .

    ,

    . ,

    - ,

    .

    .

    > - . ,

    .

    -

    . , ,

    , .

    :

    float value;// value=ask{"Enter a posit ive value;");while(value

  • 182 ^ _. _. _. _7._^

    float pr ice, change, amount, tax=8.25;// price=ask("Input the pr ice:");price=price+price*tax/lOO;Coutprice;// amount=ask{"Enter the amount:");whi le(arnount

    ( amount) while , . ,

    ( ) . -, ,

    . , -

    , , -

    !

    do.. .while. - , -

    . while do...while:

    do{

    // amount=ask("Enter the amount:");

    }whi le(amount

  • 183

    . -

    , .

    ,

    while, do.. .while for.

    , , , -

    12 . -, , 12 (, , ). .

    , -

    cSdotime.cpp:

    // . . .// 08.08.1994((include "franca. h"void JumpJackC athlete she) // JumpJackO

    c3dotime.cpp

    she ready();she up();she readyO;

    void mainprogO //

    athlete Kim; // Kim athleteint howmany=1; // Clock timex; // whi le(timex.time(}

  • 184 VpjjK^.

    , Kim . , -

    ready up, . , , 12 -. . , -

    , . -

    , .

    yesnoQ ,

    .

    c3st.orel.cpp. - .

    , ,

    , -

    . -

    . ? : Do you want to continue?Yes or No? ( ? ?). Yes, .

    ?

    franca.h, -, Yes No. ( Do you want tocontinue ?), . . 7.3 , yesnoQ.

    . 7.3. yesno()

    yesno():yesnof'Do you want to continue?"}; yesnoQ , . Yes,

  • _ 1 85

    , No . , c3store2.cpp.

    ,

    do.. .while. yesnoQ .

    include "franca. h"void malnprogC) //c3store2,cpp

    float pr ice, change, amount, tax=8.25;do{// price=ask(" Input the price:");price=price+price*tax/1GO;Countprice;// amount=ask("Enter the amount: ");wh i le(amount

  • 1 86 7.

    , -

    . ,

    10 . 10 , . , -

    :

    10 :

    2 :

    20 .

    , .

    , . . 7.4 (inner loop), , (nested loop), - , . 7.5 , (outer loop), .

    . 7.4. ,

    . -

    , :

    5 :

    10 :

    5 :

    -

    3 :

  • 187

    . I I; I

    I]

    . 7.5.

    10 , -, 5 ( 50 25 ) , 3 .

    , , -

    . C++ :

    ^include "franca, h"void mainprogO

    athlete Sal;int bigcount, smal Icount; // -for(bigcount=1; bigcount

  • 7.

    leftr ight(Sal);

    } I/ for(smallcount=1; smallcount

  • Tracer _ 89

    , ,

    .

    . cBsquare.cpp, - .

    I no I ude "franca, h" //cSsquare. cppRobot Tracer;// 1 ine void I ine( int size, int color=2)(

    for (int howmany=1; howmany

  • 1_90 _ 7.

    Tracer. seewal l(); , :

    Tracer.seenowal l(); , , -

    , -

    . Tracer.seenowallQ , - . :

    for(; Tracer.seenowal l(); ){

    // Tracer. mark();Tracer. stepC);

    } for? ! . , -

    .

    ,

    , :

    for(lnt howrnany=0; Tracer.seenowal I; howmany++){

    // Tracer, markf);Tracer, step();

    , ( . 7.6), , , ( Tracer). , ? -, , :

    , .

    , ,

    . ! ?

    ? ! .

  • Tracer 191

    . 7.6. ,

    1. . -

    , , ,

    . .

    :

    ,

    ,

    ,

    ,

    , .

    . ,

    .

  • 7.

    j !

    2. .

    :

    :

    ,

    . , , 3.

    3. , :

    void f i n d w a l l ( ) ; , ,

    . ,

    :

    :

    findwallQ

    4. ,

    . , -

    , .

    :

    int f i n d w a l l ( ){

    int steps=Q;whi le(Tracer.seenowal!()){

    Tracer.step();step++;

    }tracer. right();return steps;

  • 193

    . , -

    . , -

    :

    int howfar;howfar=findwalI (); , , -

    , :

    for(int=1; i

  • 194 7.

    . 7.8.

    , . 7.9.

    . 73.

    , -

    (. . 7.77.9)?

    ?

    0 .

    0 while, do...while for.

    0 .

    0 .

  • Q

    Q

  • -

    , , ,

    - .

    , ,

    .

    ! , -, . . :

    .

    .

    , , -

    .

    . 8.1 8.2 .

    . 8.1.

  • 197

    . 8.2.

    , , -

    , ,

    , ,

    .

    ,

    . , ,

    12 , 8 4. :

    . 8.2. , 12,8 4! , - 12 , 4 .

    , .

    ;

    12

    8 4

    , .

    ! , .

  • 198 _ 8.

    :

    ^include "franca. h"Robot Tracer;void mairtprogO{

    square(12);square(8);s q u a r e ( 4 ) ;

    } , .

    I !

    , ? ! - , : 3, 15 100, - . .

    () :

    # include "franca. h"Robot Tracer;void malnprogO

    int many, size;size=12;for(many=1; many

  • _ 199

    :

    include "franca. h" //cSsqS.cppRobot Tracer;void mainprogC){

    int many, size;size=12;for(many=1; many

  • 200 8.

    , -

    .

    .

    .

    total, :

    for(many=1; many

  • 201

    .

    squareQ. , , - .

    , .

    . 8.2.

    . 8.2.

    , -

    .

    .

    , , -

    .

    -

    10.

    ,

    , . -

    , ,

    , .

    , :

    ?

    ?

    ?

    ?

    , -

    . , -

  • 202 8,

    , . ,

    . -

    ,

    .

    ,

    , (loop invariant).

    , c3sq3.cpp:

    square(12); , .

    . ,

    , . -

    , :

    , .

    .

    4 . , for. -, ,

    , (, - ). 10 , . ,

    , , .

    . ,

    , .

    , -

    . . -

    .

    . -

    12, - 1.

  • 203

    ,

    . ?

    , -

    . :

    ?

    , :

    ,

    :

    + () - () , :

    ,

    :

    , -

    , -

    .

    , :

    C++ :

    // grade=ask("Please enter next grade:");tota!=total+grade; ,

    .

    . .

  • 204 8.

    .

    . , 26, - :

    for(int which=0; which

  • 205

    , -

    which :

    for(intwhich=1; which

  • 206 8.

    , .

    , { - }, -. :

    for(int times=1; times

  • 207

    -

    . .

    , -

    .

    ( ), , - ( ). (), , . :int i , j;for( i=0; i

  • 208 8.

    , , C++ - . , .

    , -

    . :

    i f (a=b) . . . ; C++ , - . -

    b