Основы языка программирования C++ с применением объектно-ориентированного программирования. Чернышов М.К. - 38 стр.

UptoLike

Составители: 

Ɉɬɦɟɬɢɦ, ɱɬɨ ɞɢɪɟɤɬɢɜɵ ɩɪɟɩɪɨɰɟɫɫɨɪɚ ɜɫɟɝɞɚ ɡɚɩɢɫɵɜɚɸɬɫɹ ɫ ɧɨɜɨɣ
ɫɬɪɨɤɢ ɢ ɩɟɪɜɵɦ ɫɢɦɜɨɥɨɦ ɞɢɪɟɤɬɢɜɵ ɞɨɥɠɟɧ ɛɵɬɶ ɡɧɚɤ
«#», ɤɨɬɨɪɨɦɭ
ɦɨɝɭɬ ɩɪɟɞɲɟɫɬɜɨɜɚɬɶ ɬɨɥɶɤɨ ɩɪɨɛɟɥɵ ɢ ɡɧɚɤɢ ɬɚɛɭɥɹɰɢɢ. Ʉɨɧɰɨɦ ɬɟɤɫɬɚ
ɞɢɪɟɤɬɢɜɵ ɫɥɭɠɢɬ ɤɨɧɟɰ ɫɬɪɨɤɢ. ȿɫɥɢ ɞɢɪɟɤɬɢɜɚ ɧɟ ɩɨɦɟɳɚɟɬɫɹ ɜ ɨɞɧɨɣ
ɫɬɪɨɤɟ, ɜ ɤɨɧɰɟ ɫɬɪɨɤɢ ɫɬɚɜɢɬɫɹ ɡɧɚɤ
«\», ɢ ɞɢɪɟɤɬɢɜɚ ɩɪɨɞɨɥɠɚɟɬɫɹ ɧɚ
ɫɥɟɞɭɸɳɟɣ ɫɬɪɨɤɟ. Ʉɨɥɢɱɟɫɬɜɨ ɫɬɪɨɤ ɩɪɨɞɨɥɠɟɧɢɹ ɧɟ ɨɝɪɚɧɢɱɢɜɚɟɬɫɹ.
3.2. ɉɪɟɩɪɨɰɟɫɫɨɪɧɵɟ ɩɟɪɟɦɟɧɧɵɟ
ɉɪɟɩɪɨɰɟɫɫɨɪɧɚɹ ɩɟɪɟɦɟɧɧɚɹ (ɦɚɤɪɨɢɦɹ) ɨɛɴɹɜɥɹɟɬɫɹ ɞɢɪɟɤɬɢɜɨɣ
#define ɢɞɟɧɬɢɮɢɤɚɬɨɪ ɡɧɚɱɟɧɢɟ
ɇɚɩɪɢɦɟɪ:
#define L_NAME 6
#define END_FORMULA ‘;’
#define DEBUG
ȿɫɥɢ ɨɛɴɹɜɥɟɧɧɨɟ ɬɚɤɢɦ ɫɩɨɫɨɛɨɦ ɦɚɤɪɨɢɦɹ ɜɫɬɪɟɬɢɬɫɹ ɜ ɩɨɫɥɟɞɭɸ-
ɳɟɦ ɬɟɤɫɬɟ ɩɪɨɝɪɚɦɦɵ, ɨɧɨ ɛɭɞɟɬ ɡɚɦɟɧɟɧɨ ɧɚ ɫɨɨɬɜɟɬɫɬɜɭɸɳɟɟ ɡɧɚɱɟɧɢɟ:
char namevar [L_NAME]; // ɷɤɜɢɜɚɥɟɧɬɧɨ char namevar[6];
if (c!=END_FORMULA) ... // if ( c != ‘;’) ...
ɉɟɪɟɦɟɧɧɚɹ
DEBUG ɨɛɴɹɜɥɟɧɚ, ɧɨ ɧɟ ɢɦɟɟɬ ɡɧɚɱɟɧɢɹ. ȼ ɩɨɫɥɟɞɭɸɳɟɦ
ɬɟɤɫɬɟ ɦɨɠɧɨ ɩɪɨɜɟɪɹɬɶ, ɨɛɴɹɜɥɟɧɨ ɢɥɢ ɧɟɬ ɷɬɨ ɢɦɹ ɢ ɜ ɡɚɜɢɫɢɦɨɫɬɢ ɨɬ
ɪɟɡɭɥɶɬɚɬɚ ɩɪɨɜɟɪɤɢ ɜɤɥɸɱɚɬɶ ɢɥɢ ɧɟ ɜɤɥɸɱɚɬɶ ɜ ɩɪɨɝɪɚɦɦɭ ɧɟɤɨɬɨɪɵɟ
ɨɩɟɪɚɬɨɪɵ.
Ɉɛɴɹɜɥɟɧɧɨɟ ɜ
define ɦɚɤɪɨɢɦɹ ɢɡɜɟɫɬɧɨ ɩɪɟɩɪɨɰɟɫɫɨɪɭ ɨɬ ɬɨɱɤɢ ɟɝɨ
ɨɛɴɹɜɥɟɧɢɹ ɞɨ ɤɨɧɰɚ ɮɚɣɥɚ ɢɥɢ ɩɨɤɚ ɧɟ ɜɫɬɪɟɬɢɬɫɹ ɞɢɪɟɤɬɢɜɚ
#undef ɢɦɹ
ɇɚɩɪɢɦɟɪ, #undef DEBUG.
ȿɫɥɢ ɜ ɩɨɫɥɟɞɭɸɳɟɦ ɬɟɤɫɬɟ ɜɫɬɪɟɬɢɬɫɹ ɢɦɹ
DEBUG, ɨɧɨ ɛɭɞɟɬ ɪɚɫ-
ɫɦɚɬɪɢɜɚɬɶɫɹ ɤɚɤ ɨɛɵɱɧɨɟ, ɚ ɧɟ ɩɪɟɩɪɨɰɟɫɫɨɪɧɨɟ ɢɦɹ.
ɂɦɟɟɬɫɹ ɪɹɞ ɩɪɟɞɨɩɪɟɞɟɥɟɧɧɵɯ ɦɚɤɪɨɢɦɟɧ, ɩɪɟɞɭɫɦɨɬɪɟɧɧɵɯ ɫɬɚɧ-
ɞɚɪɬɚɦɢ ɹɡɵɤɨɜ C ɢ C++, ɜ ɬɨɦ ɱɢɫɥɟ:
__LINE__: ɧɨɦɟɪ ɫɬɪɨɤɢ ɜ ɢɫɯɨɞɧɨɦ ɮɚɣɥɟ,
__FILE__: ɢɦɹ ɨɛɪɚɛɚɬɵɜɚɟɦɨɝɨ ɮɚɣɥɚ,
__DATE__: ɞɚɬɚ ɧɚɱɚɥɚ ɨɛɪɚɛɨɬɤɢ ɩɪɟɩɪɨɰɟɫɫɨɪɨɦ,
__TIME__: ɜɪɟɦɹ ɧɚɱɚɥɚ ɨɛɪɚɛɨɬɤɢ,
__STDC__: ɩɪɨɝɪɚɦɦɚ ɞɨɥɠɧɚ ɫɨɨɬɜɟɬɫɬɜɨɜɚɬɶ ɫɬɚɧɞɚɪɬɭ ANSI,
__cplusplus: ɤɨɦɩɢɥɢɪɨɜɚɬɶ ɩɪɨɝɪɚɦɦɭ ɜ ɫɨɨɬɜɟɬɫɬɜɢɢ ɫ
ɫɢɧɬɚɤɫɢɫɨɦ ɋɢ++,
__PASCAL__: ɩɨɫɥɟɞɭɸɳɢɟ ɢɦɟɧɚ ɩɨ ɭɦɨɥɱɚɧɢɸ ɢɦɟɸɬ ɬɢɩ «ɢɦɹ
ɹɡɵɤɚ Pascal»
ɉɪɟɞɨɩɪɟɞɟɥɟɧɧɵɟ ɢɦɟɧɚ ɧɟɥɶɡɹ ɨɛɴɹɜɥɹɬɶ ɜ
#define ɢɥɢ ɨɬɦɟɧɹɬɶ ɜ
#undef.
38
    Ɉɬɦɟɬɢɦ, ɱɬɨ ɞɢɪɟɤɬɢɜɵ ɩɪɟɩɪɨɰɟɫɫɨɪɚ ɜɫɟɝɞɚ ɡɚɩɢɫɵɜɚɸɬɫɹ ɫ ɧɨɜɨɣ
ɫɬɪɨɤɢ ɢ ɩɟɪɜɵɦ ɫɢɦɜɨɥɨɦ ɞɢɪɟɤɬɢɜɵ ɞɨɥɠɟɧ ɛɵɬɶ ɡɧɚɤ «#», ɤɨɬɨɪɨɦɭ
ɦɨɝɭɬ ɩɪɟɞɲɟɫɬɜɨɜɚɬɶ ɬɨɥɶɤɨ ɩɪɨɛɟɥɵ ɢ ɡɧɚɤɢ ɬɚɛɭɥɹɰɢɢ. Ʉɨɧɰɨɦ ɬɟɤɫɬɚ
ɞɢɪɟɤɬɢɜɵ ɫɥɭɠɢɬ ɤɨɧɟɰ ɫɬɪɨɤɢ. ȿɫɥɢ ɞɢɪɟɤɬɢɜɚ ɧɟ ɩɨɦɟɳɚɟɬɫɹ ɜ ɨɞɧɨɣ
ɫɬɪɨɤɟ, ɜ ɤɨɧɰɟ ɫɬɪɨɤɢ ɫɬɚɜɢɬɫɹ ɡɧɚɤ «\», ɢ ɞɢɪɟɤɬɢɜɚ ɩɪɨɞɨɥɠɚɟɬɫɹ ɧɚ
ɫɥɟɞɭɸɳɟɣ ɫɬɪɨɤɟ. Ʉɨɥɢɱɟɫɬɜɨ ɫɬɪɨɤ ɩɪɨɞɨɥɠɟɧɢɹ ɧɟ ɨɝɪɚɧɢɱɢɜɚɟɬɫɹ.

3.2. ɉɪɟɩɪɨɰɟɫɫɨɪɧɵɟ ɩɟɪɟɦɟɧɧɵɟ

    ɉɪɟɩɪɨɰɟɫɫɨɪɧɚɹ ɩɟɪɟɦɟɧɧɚɹ (ɦɚɤɪɨɢɦɹ) ɨɛɴɹɜɥɹɟɬɫɹ ɞɢɪɟɤɬɢɜɨɣ
     #define ɢɞɟɧɬɢɮɢɤɚɬɨɪ ɡɧɚɱɟɧɢɟ
ɇɚɩɪɢɦɟɪ:
     #define L_NAME 6
     #define END_FORMULA ‘;’
     #define DEBUG
   ȿɫɥɢ ɨɛɴɹɜɥɟɧɧɨɟ ɬɚɤɢɦ ɫɩɨɫɨɛɨɦ ɦɚɤɪɨɢɦɹ ɜɫɬɪɟɬɢɬɫɹ ɜ ɩɨɫɥɟɞɭɸ-
ɳɟɦ ɬɟɤɫɬɟ ɩɪɨɝɪɚɦɦɵ, ɨɧɨ ɛɭɞɟɬ ɡɚɦɟɧɟɧɨ ɧɚ ɫɨɨɬɜɟɬɫɬɜɭɸɳɟɟ ɡɧɚɱɟɧɢɟ:
     char namevar [L_NAME];      // ɷɤɜɢɜɚɥɟɧɬɧɨ char namevar[6];
     if (c!=END_FORMULA) ...     // if ( c != ‘;’) ...
    ɉɟɪɟɦɟɧɧɚɹ DEBUG ɨɛɴɹɜɥɟɧɚ, ɧɨ ɧɟ ɢɦɟɟɬ ɡɧɚɱɟɧɢɹ. ȼ ɩɨɫɥɟɞɭɸɳɟɦ
ɬɟɤɫɬɟ ɦɨɠɧɨ ɩɪɨɜɟɪɹɬɶ, ɨɛɴɹɜɥɟɧɨ ɢɥɢ ɧɟɬ ɷɬɨ ɢɦɹ ɢ ɜ ɡɚɜɢɫɢɦɨɫɬɢ ɨɬ
ɪɟɡɭɥɶɬɚɬɚ ɩɪɨɜɟɪɤɢ ɜɤɥɸɱɚɬɶ ɢɥɢ ɧɟ ɜɤɥɸɱɚɬɶ ɜ ɩɪɨɝɪɚɦɦɭ ɧɟɤɨɬɨɪɵɟ
ɨɩɟɪɚɬɨɪɵ.
    Ɉɛɴɹɜɥɟɧɧɨɟ ɜ define ɦɚɤɪɨɢɦɹ ɢɡɜɟɫɬɧɨ ɩɪɟɩɪɨɰɟɫɫɨɪɭ ɨɬ ɬɨɱɤɢ ɟɝɨ
ɨɛɴɹɜɥɟɧɢɹ ɞɨ ɤɨɧɰɚ ɮɚɣɥɚ ɢɥɢ ɩɨɤɚ ɧɟ ɜɫɬɪɟɬɢɬɫɹ ɞɢɪɟɤɬɢɜɚ
     #undef ɢɦɹ
ɇɚɩɪɢɦɟɪ, #undef DEBUG.
    ȿɫɥɢ ɜ ɩɨɫɥɟɞɭɸɳɟɦ ɬɟɤɫɬɟ ɜɫɬɪɟɬɢɬɫɹ ɢɦɹ DEBUG, ɨɧɨ ɛɭɞɟɬ ɪɚɫ-
ɫɦɚɬɪɢɜɚɬɶɫɹ ɤɚɤ ɨɛɵɱɧɨɟ, ɚ ɧɟ ɩɪɟɩɪɨɰɟɫɫɨɪɧɨɟ ɢɦɹ.
    ɂɦɟɟɬɫɹ ɪɹɞ ɩɪɟɞɨɩɪɟɞɟɥɟɧɧɵɯ ɦɚɤɪɨɢɦɟɧ, ɩɪɟɞɭɫɦɨɬɪɟɧɧɵɯ ɫɬɚɧ-
ɞɚɪɬɚɦɢ ɹɡɵɤɨɜ C ɢ C++, ɜ ɬɨɦ ɱɢɫɥɟ:
__LINE__:         ɧɨɦɟɪ ɫɬɪɨɤɢ ɜ ɢɫɯɨɞɧɨɦ ɮɚɣɥɟ,
__FILE__:         ɢɦɹ ɨɛɪɚɛɚɬɵɜɚɟɦɨɝɨ ɮɚɣɥɚ,
__DATE__:         ɞɚɬɚ ɧɚɱɚɥɚ ɨɛɪɚɛɨɬɤɢ ɩɪɟɩɪɨɰɟɫɫɨɪɨɦ,
__TIME__:         ɜɪɟɦɹ ɧɚɱɚɥɚ ɨɛɪɚɛɨɬɤɢ,
__STDC__:         ɩɪɨɝɪɚɦɦɚ ɞɨɥɠɧɚ ɫɨɨɬɜɟɬɫɬɜɨɜɚɬɶ ɫɬɚɧɞɚɪɬɭ ANSI,
__cplusplus:      ɤɨɦɩɢɥɢɪɨɜɚɬɶ ɩɪɨɝɪɚɦɦɭ ɜ ɫɨɨɬɜɟɬɫɬɜɢɢ ɫ
                  ɫɢɧɬɚɤɫɢɫɨɦ ɋɢ++,
__PASCAL__:       ɩɨɫɥɟɞɭɸɳɢɟ ɢɦɟɧɚ ɩɨ ɭɦɨɥɱɚɧɢɸ ɢɦɟɸɬ ɬɢɩ «ɢɦɹ
                  ɹɡɵɤɚ Pascal»
    ɉɪɟɞɨɩɪɟɞɟɥɟɧɧɵɟ ɢɦɟɧɚ ɧɟɥɶɡɹ ɨɛɴɹɜɥɹɬɶ ɜ #define ɢɥɢ ɨɬɦɟɧɹɬɶ ɜ
#undef.



                                 38