ВУЗ:
Составители:
Рубрика:
return s/3;
}
Ʉ ɬɚɤɨɣ ɮɭɧɤɰɢɢ ɦɨɠɧɨ ɨɛɪɚɳɚɬɶɫɹ ɫ ɞɜɭɦɹ ɢ ɫ ɬɪɟɦɹ ɚɪɝɭɦɟɧɬɚɦɢ.
3. Ɏɭɧɤɰɢɹ ɦɨɠɟɬ ɢɦɟɬɶ ɩɟɪɟɦɟɧɧɨɟ ɱɢɫɥɨ ɩɚɪɚɦɟɬɪɨɜ, ɞɥɹ ɱɚɫɬɢ ɩɚɪɚ-
ɦɟɬɪɨɜ ɦɨɝɭɬ ɛɵɬɶ ɧɟɢɡɜɟɫɬɧɵ ɢɯ ɬɢɩɵ. ɇɟɢɡɜɟɫɬɧɚɹ ɱɚɫɬɶ ɫɩɢɫɤɚ ɩɚɪɚ-
ɦɟɬɪɨɜ ɨɛɨɡɧɚɱɚɟɬɫɹ ɦɧɨɝɨɬɨɱɢɟɦ. ɇɚɩɪɢɦɟɪ, ɮɭɧɤɰɢɹ ɫ ɩɪɨɬɨɬɢɩɨɦ
int varfunc(int n, ...);
ɢɦɟɟɬ ɨɞɢɧ ɨɛɹɡɚɬɟɥɶɧɵɣ ɩɚɪɚɦɟɬɪ ɬɢɩɚ int ɢ ɧɟɨɩɪɟɞɟɥɟɧɧɨɟ ɱɢɫɥɨ ɩɚ-
ɪɚɦɟɬɪɨɜ ɧɟɢɡɜɟɫɬɧɵɯ ɬɢɩɨɜ. ɉɪɚɜɢɥɶɧɚɹ ɢɧɬɟɪɩɪɟɬɚɰɢɹ ɬɚɤɨɝɨ ɫɩɢɫɤɚ ɩɚ-
ɪɚɦɟɬɪɨɜ ɜ ɬɟɥɟ ɮɭɧɤɰɢɢ ɬɪɟɛɭɟɬ ɨɬ ɩɪɨɝɪɚɦɦɢɫɬɚ ɞɨɩɨɥɧɢɬɟɥɶɧɵɯ ɭɫɢ-
ɥɢɣ.
ɉɪɢ ɜɵɡɨɜɟ ɮɭɧɤɰɢɢ ɚɪɝɭɦɟɧɬɵ ɩɟɪɟɞɚɸɬɫɹ ɜ ɮɭɧɤɰɢɸ ɩɨ ɡɧɚɱɟɧɢɹɦ.
ɗɬɨ ɡɧɚɱɢɬ, ɱɬɨ ɞɥɹ ɤɚɠɞɨɝɨ ɚɪɝɭɦɟɧɬɚ ɜ ɩɚɦɹɬɢ ɫɨɡɞɚɟɬɫɹ ɟɝɨ ɤɨɩɢɹ, ɤɨɬɨ-
ɪɚɹ ɢ ɢɫɩɨɥɶɡɭɟɬɫɹ ɩɪɢ ɜɵɱɢɫɥɟɧɢɢ ɮɭɧɤɰɢɢ. ɋɥɟɞɨɜɚɬɟɥɶɧɨ, ɥɸɛɵɟ ɢɡ-
ɦɟɧɟɧɢɹ ɡɧɚɱɟɧɢɣ ɚɪɝɭɦɟɧɬɨɜ ɜ ɬɟɥɟ ɮɭɧɤɰɢɢ ɬɟɪɹɸɬɫɹ ɩɪɢ ɜɵɯɨɞɟ ɢɡ
ɮɭɧɤɰɢɢ. ȿɫɥɢ ɚɪɝɭɦɟɧɬ ɹɜɥɹɟɬɫɹ ɦɚɫɫɢɜɨɦ, ɬɨ ɜ ɮɭɧɤɰɢɸ ɩɟɪɟɞɚɟɬɫɹ ɭɤɚ-
ɡɚɬɟɥɶ ɧɚ ɧɚɱɚɥɶɧɵɣ ɷɥɟɦɟɧɬ ɦɚɫɫɢɜɚ ɢ ɩɪɢɫɜɚɢɜɚɧɢɹ ɷɥɟɦɟɧɬɚɦ ɦɚɫɫɢɜɚ ɜ
ɬɟɥɟ ɮɭɧɤɰɢɢ ɢɡɦɟɧɹɸɬ ɡɧɚɱɟɧɢɹ ɷɥɟɦɟɧɬɨɜ ɦɚɫɫɢɜɚ ɚɪɝɭɦɟɧɬɚ.
ȼɋ++ ɫ ɨɛɴɹɜɥɟɧɢɟɦ ɮɭɧɤɰɢɢ ɫɜɹɡɵɜɚɟɬɫɹ ɬɚɤ ɧɚɡɵɜɚɟɦɚɹ ɫɢɝɧɚɬɭɪɚ
ɮɭɧɤɰɢɢ, ɨɩɪɟɞɟɥɹɟɦɚɹ ɬɢɩɨɦ ɜɨɡɜɪɚɳɚɟɦɨɝɨ ɡɧɚɱɟɧɢɹ ɢ ɬɢɩɚɦɢ ɩɚɪɚɦɟɬ-
ɪɨɜ. ɗɬɨ ɩɨɡɜɨɥɹɟɬ ɧɚɡɧɚɱɚɬɶ ɮɭɧɤɰɢɹɦ, ɢɦɟɸɳɢɦ ɚɧɚɥɨɝɢɱɧɨɟ ɧɚɡɧɚɱɟ-
ɧɢɟ, ɧɨ ɢɫɩɨɥɶɡɭɸɳɢɦ ɩɚɪɚɦɟɬɪɵ ɪɚɡɧɵɯ ɬɢɩɨɜ, ɨɞɢɧɚɤɨɜɵɟ ɢɦɟɧɚ. ɇɚ-
ɩɪɢɦɟɪ, ɧɚɪɹɞɭ ɫ ɩɪɢɜɟɞɟɧɧɨɣ ɜɵɲɟ ɮɭɧɤɰɢɟɣ
sred ɞɥɹ ɜɟɳɟɫɬɜɟɧɧɵɯ ɚɪ-
ɝɭɦɟɧɬɨɜ ɜ ɬɨɣ ɠɟ ɩɪɨɝɪɚɦɦɟ ɦɨɠɟɬ ɩɪɢɫɭɬɫɬɜɨɜɚɬɶ ɮɭɧɤɰɢɹ
double sred(int x, int y, int z=0)
{
int s;
s = x+y+z;
return s/3;
}
Ɏɭɧɤɰɢɹ, ɜ ɬɟɥɟ ɤɨɬɨɪɨɣ ɨɬɫɭɬɫɬɜɭɸɬ ɨɩɟɪɚɬɨɪɵ ɰɢɤɥɚ ɢ ɩɟɪɟɤɥɸɱɚ-
ɬɟɥɢ, ɦɨɠɟɬ ɛɵɬɶ ɨɛɴɹɜɥɟɧɚ ɫ ɞɨɩɨɥɧɢɬɟɥɶɧɵɦ ɨɩɢɫɚɬɟɥɟɦ
inline. ȼ
ɬɨɱɤɟ ɜɵɡɨɜɚ ɬɚɤɨɣ ɮɭɧɤɰɢɢ ɩɪɢ ɤɨɦɩɢɥɹɰɢɢ ɩɪɨɫɬɨ ɜɫɬɚɜɥɹɟɬɫɹ ɬɟɥɨ
ɮɭɧɤɰɢɢ ɫ ɫɨɨɬɜɟɬɫɬɜɭɸɳɟɣ ɡɚɦɟɧɨɣ ɩɚɪɚɦɟɬɪɨɦ ɧɚ ɚɪɝɭɦɟɧɬɵ ɜɵɡɨɜɚ. ȼ
ɪɟɡɭɥɶɬɚɬɟ ɷɤɨɧɨɦɢɬɫɹ ɜɪɟɦɹ ɧɚ ɩɟɪɟɞɚɱɭ ɩɚɪɚɦɟɬɪɨɜ, ɩɟɪɟɯɨɞ ɧɚ ɩɨɞɩɪɨ-
ɝɪɚɦɦɭ ɢ ɨɪɝɚɧɢɡɚɰɢɸ ɜɨɡɜɪɚɬɚ ɜ ɜɵɡɵɜɚɸɳɭɸ ɩɪɨɝɪɚɦɦɭ. Ɏɭɧɤɰɢɢ ɫ
ɨɩɢɫɚɬɟɥɟɦ
inline ɧɚɡɵɜɚɸɬ ɜɫɬɪɨɟɧɧɵɦɢ, ɨɧɢ ɪɟɚɥɢɡɭɸɬɫɹ ɤɚɤ ɨɬɤɪɵɬɵɟ
ɩɨɞɩɪɨɝɪɚɦɦɵ. Ɍɢɩɢɱɧɵɣ ɩɪɢɦɟɪ ɬɚɤɨɣ ɮɭɧɤɰɢɢ – ɨɩɪɟɞɟɥɟɧɢɟ ɧɚɢɛɨɥɶ-
ɲɟɝɨ (ɧɚɢɦɟɧɶɲɟɝɨ) ɢɡ ɞɜɭɯ ɱɢɫɟɥ:
inline int max(int x1, int x2)
{
return x1>x2?x1:x2
}
ȼ ɫɢɫɬɟɦɚɯ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ Turbo C++ ɢ Borland C++ ɝɥɚɜɧɚɹ
ɮɭɧɤɰɢɹ (ɮɭɧɤɰɢɹ
main) ɦɨɠɟɬ ɩɪɢɧɢɦɚɬɶ ɬɪɢ ɩɚɪɚɦɟɬɪɚ, ɱɬɨ ɩɨɡɜɨɥɹɟɬ
31
return s/3; } Ʉ ɬɚɤɨɣ ɮɭɧɤɰɢɢ ɦɨɠɧɨ ɨɛɪɚɳɚɬɶɫɹ ɫ ɞɜɭɦɹ ɢ ɫ ɬɪɟɦɹ ɚɪɝɭɦɟɧɬɚɦɢ. 3. Ɏɭɧɤɰɢɹ ɦɨɠɟɬ ɢɦɟɬɶ ɩɟɪɟɦɟɧɧɨɟ ɱɢɫɥɨ ɩɚɪɚɦɟɬɪɨɜ, ɞɥɹ ɱɚɫɬɢ ɩɚɪɚ- ɦɟɬɪɨɜ ɦɨɝɭɬ ɛɵɬɶ ɧɟɢɡɜɟɫɬɧɵ ɢɯ ɬɢɩɵ. ɇɟɢɡɜɟɫɬɧɚɹ ɱɚɫɬɶ ɫɩɢɫɤɚ ɩɚɪɚ- ɦɟɬɪɨɜ ɨɛɨɡɧɚɱɚɟɬɫɹ ɦɧɨɝɨɬɨɱɢɟɦ. ɇɚɩɪɢɦɟɪ, ɮɭɧɤɰɢɹ ɫ ɩɪɨɬɨɬɢɩɨɦ int varfunc(int n, ...); ɢɦɟɟɬ ɨɞɢɧ ɨɛɹɡɚɬɟɥɶɧɵɣ ɩɚɪɚɦɟɬɪ ɬɢɩɚ int ɢ ɧɟɨɩɪɟɞɟɥɟɧɧɨɟ ɱɢɫɥɨ ɩɚ- ɪɚɦɟɬɪɨɜ ɧɟɢɡɜɟɫɬɧɵɯ ɬɢɩɨɜ. ɉɪɚɜɢɥɶɧɚɹ ɢɧɬɟɪɩɪɟɬɚɰɢɹ ɬɚɤɨɝɨ ɫɩɢɫɤɚ ɩɚ- ɪɚɦɟɬɪɨɜ ɜ ɬɟɥɟ ɮɭɧɤɰɢɢ ɬɪɟɛɭɟɬ ɨɬ ɩɪɨɝɪɚɦɦɢɫɬɚ ɞɨɩɨɥɧɢɬɟɥɶɧɵɯ ɭɫɢ- ɥɢɣ. ɉɪɢ ɜɵɡɨɜɟ ɮɭɧɤɰɢɢ ɚɪɝɭɦɟɧɬɵ ɩɟɪɟɞɚɸɬɫɹ ɜ ɮɭɧɤɰɢɸ ɩɨ ɡɧɚɱɟɧɢɹɦ. ɗɬɨ ɡɧɚɱɢɬ, ɱɬɨ ɞɥɹ ɤɚɠɞɨɝɨ ɚɪɝɭɦɟɧɬɚ ɜ ɩɚɦɹɬɢ ɫɨɡɞɚɟɬɫɹ ɟɝɨ ɤɨɩɢɹ, ɤɨɬɨ- ɪɚɹ ɢ ɢɫɩɨɥɶɡɭɟɬɫɹ ɩɪɢ ɜɵɱɢɫɥɟɧɢɢ ɮɭɧɤɰɢɢ. ɋɥɟɞɨɜɚɬɟɥɶɧɨ, ɥɸɛɵɟ ɢɡ- ɦɟɧɟɧɢɹ ɡɧɚɱɟɧɢɣ ɚɪɝɭɦɟɧɬɨɜ ɜ ɬɟɥɟ ɮɭɧɤɰɢɢ ɬɟɪɹɸɬɫɹ ɩɪɢ ɜɵɯɨɞɟ ɢɡ ɮɭɧɤɰɢɢ. ȿɫɥɢ ɚɪɝɭɦɟɧɬ ɹɜɥɹɟɬɫɹ ɦɚɫɫɢɜɨɦ, ɬɨ ɜ ɮɭɧɤɰɢɸ ɩɟɪɟɞɚɟɬɫɹ ɭɤɚ- ɡɚɬɟɥɶ ɧɚ ɧɚɱɚɥɶɧɵɣ ɷɥɟɦɟɧɬ ɦɚɫɫɢɜɚ ɢ ɩɪɢɫɜɚɢɜɚɧɢɹ ɷɥɟɦɟɧɬɚɦ ɦɚɫɫɢɜɚ ɜ ɬɟɥɟ ɮɭɧɤɰɢɢ ɢɡɦɟɧɹɸɬ ɡɧɚɱɟɧɢɹ ɷɥɟɦɟɧɬɨɜ ɦɚɫɫɢɜɚ ɚɪɝɭɦɟɧɬɚ. ȼ ɋ++ ɫ ɨɛɴɹɜɥɟɧɢɟɦ ɮɭɧɤɰɢɢ ɫɜɹɡɵɜɚɟɬɫɹ ɬɚɤ ɧɚɡɵɜɚɟɦɚɹ ɫɢɝɧɚɬɭɪɚ ɮɭɧɤɰɢɢ, ɨɩɪɟɞɟɥɹɟɦɚɹ ɬɢɩɨɦ ɜɨɡɜɪɚɳɚɟɦɨɝɨ ɡɧɚɱɟɧɢɹ ɢ ɬɢɩɚɦɢ ɩɚɪɚɦɟɬ- ɪɨɜ. ɗɬɨ ɩɨɡɜɨɥɹɟɬ ɧɚɡɧɚɱɚɬɶ ɮɭɧɤɰɢɹɦ, ɢɦɟɸɳɢɦ ɚɧɚɥɨɝɢɱɧɨɟ ɧɚɡɧɚɱɟ- ɧɢɟ, ɧɨ ɢɫɩɨɥɶɡɭɸɳɢɦ ɩɚɪɚɦɟɬɪɵ ɪɚɡɧɵɯ ɬɢɩɨɜ, ɨɞɢɧɚɤɨɜɵɟ ɢɦɟɧɚ. ɇɚ- ɩɪɢɦɟɪ, ɧɚɪɹɞɭ ɫ ɩɪɢɜɟɞɟɧɧɨɣ ɜɵɲɟ ɮɭɧɤɰɢɟɣ sred ɞɥɹ ɜɟɳɟɫɬɜɟɧɧɵɯ ɚɪ- ɝɭɦɟɧɬɨɜ ɜ ɬɨɣ ɠɟ ɩɪɨɝɪɚɦɦɟ ɦɨɠɟɬ ɩɪɢɫɭɬɫɬɜɨɜɚɬɶ ɮɭɧɤɰɢɹ double sred(int x, int y, int z=0) { int s; s = x+y+z; return s/3; } Ɏɭɧɤɰɢɹ, ɜ ɬɟɥɟ ɤɨɬɨɪɨɣ ɨɬɫɭɬɫɬɜɭɸɬ ɨɩɟɪɚɬɨɪɵ ɰɢɤɥɚ ɢ ɩɟɪɟɤɥɸɱɚ- ɬɟɥɢ, ɦɨɠɟɬ ɛɵɬɶ ɨɛɴɹɜɥɟɧɚ ɫ ɞɨɩɨɥɧɢɬɟɥɶɧɵɦ ɨɩɢɫɚɬɟɥɟɦ inline. ȼ ɬɨɱɤɟ ɜɵɡɨɜɚ ɬɚɤɨɣ ɮɭɧɤɰɢɢ ɩɪɢ ɤɨɦɩɢɥɹɰɢɢ ɩɪɨɫɬɨ ɜɫɬɚɜɥɹɟɬɫɹ ɬɟɥɨ ɮɭɧɤɰɢɢ ɫ ɫɨɨɬɜɟɬɫɬɜɭɸɳɟɣ ɡɚɦɟɧɨɣ ɩɚɪɚɦɟɬɪɨɦ ɧɚ ɚɪɝɭɦɟɧɬɵ ɜɵɡɨɜɚ. ȼ ɪɟɡɭɥɶɬɚɬɟ ɷɤɨɧɨɦɢɬɫɹ ɜɪɟɦɹ ɧɚ ɩɟɪɟɞɚɱɭ ɩɚɪɚɦɟɬɪɨɜ, ɩɟɪɟɯɨɞ ɧɚ ɩɨɞɩɪɨ- ɝɪɚɦɦɭ ɢ ɨɪɝɚɧɢɡɚɰɢɸ ɜɨɡɜɪɚɬɚ ɜ ɜɵɡɵɜɚɸɳɭɸ ɩɪɨɝɪɚɦɦɭ. Ɏɭɧɤɰɢɢ ɫ ɨɩɢɫɚɬɟɥɟɦ inline ɧɚɡɵɜɚɸɬ ɜɫɬɪɨɟɧɧɵɦɢ, ɨɧɢ ɪɟɚɥɢɡɭɸɬɫɹ ɤɚɤ ɨɬɤɪɵɬɵɟ ɩɨɞɩɪɨɝɪɚɦɦɵ. Ɍɢɩɢɱɧɵɣ ɩɪɢɦɟɪ ɬɚɤɨɣ ɮɭɧɤɰɢɢ – ɨɩɪɟɞɟɥɟɧɢɟ ɧɚɢɛɨɥɶ- ɲɟɝɨ (ɧɚɢɦɟɧɶɲɟɝɨ) ɢɡ ɞɜɭɯ ɱɢɫɟɥ: inline int max(int x1, int x2) { return x1>x2?x1:x2 } ȼ ɫɢɫɬɟɦɚɯ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ Turbo C++ ɢ Borland C++ ɝɥɚɜɧɚɹ ɮɭɧɤɰɢɹ (ɮɭɧɤɰɢɹ main) ɦɨɠɟɬ ɩɪɢɧɢɦɚɬɶ ɬɪɢ ɩɚɪɚɦɟɬɪɚ, ɱɬɨ ɩɨɡɜɨɥɹɟɬ 31
Страницы
- « первая
- ‹ предыдущая
- …
- 29
- 30
- 31
- 32
- 33
- …
- следующая ›
- последняя »