ВУЗ:
Составители:
Рубрика:
x ɉɟɪɟɨɩɪɟɞɟɥɹɟɦɵɟ ɨɩɟɪɚɰɢɢ new ɢ delete ɞɨɥɠɧɵ ɛɵɬɶ static-
ɤɨɦɩɨɧɟɧɬɚɦɢ ɤɥɚɫɫɚ.
ȼ ɨɫɬɚɥɶɧɨɦ ɤ ɩɟɪɟɨɩɪɟɞɟɥɹɟɦɵɦ ɨɩɟɪɚɰɢɹɦ ɩɪɟɞɴɹɜɥɹɸɬɫɹ ɬɟ ɠɟ
ɬɪɟɛɨɜɚɧɢɹ, ɱɬɨ ɢ ɤ ɮɭɧɤɰɢɹɦ.
5. ɒɚɛɥɨɧɵ ɮɭɧɤɰɢɣ ɢ ɤɥɚɫɫɨɜ
5.1. ɒɚɛɥɨɧɵ ɮɭɧɤɰɢɣ
ɑɚɫɬɨ ɜɫɬɪɟɱɚɸɬɫɹ ɮɭɧɤɰɢɢ, ɪɟɚɥɢɡɭɸɳɢɟ ɨɞɧɢ ɢ ɬɟ ɠɟ ɞɟɣɫɬɜɢɹ ɞɥɹ
ɚɪɝɭɦɟɧɬɨɜ ɪɚɡɥɢɱɧɵɯ ɬɢɩɨɜ. ɇɚɩɪɢɦɟɪ, ɫɨɪɬɢɪɨɜɤɚ ɦɚɫɫɢɜɚ ɩɨ ɜɨɡɪɚɫɬɚ-
ɧɢɸ ɟɝɨ ɷɥɟɦɟɧɬɨɜ ɦɨɠɟɬ ɜɵɩɨɥɧɹɬɶɫɹ ɨɞɧɢɦ ɢ ɬɟɦ ɠɟ ɦɟɬɨɞɨɦ ɢ ɞɥɹ ɞɚɧ-
ɧɵɯ ɬɢɩɚ
int, ɢ ɞɥɹ ɞɚɧɧɵɯ ɬɢɩɚ double. Ɋɚɡɥɢɱɢɟ ɫɨɫɬɨɢɬ ɬɨɥɶɤɨ ɜ ɬɢ-
ɩɚɯ ɩɚɪɚɦɟɬɪɨɜ ɢ ɧɟɤɨɬɨɪɵɯ ɜɧɭɬɪɟɧɧɢɯ ɩɟɪɟɦɟɧɧɵɯ.
ȼ ɛɨɥɟɟ ɩɨɡɞɧɢɟ ɜɟɪɫɢɢ ɹɡɵɤɚ ɋ++ ɜɤɥɸɱɟɧɨ ɫɩɟɰɢɚɥɶɧɨɟ ɫɪɟɞɫɬɜɨ,
ɩɨɡɜɨɥɹɸɳɟɟ ɩɚɪɚɦɟɬɪɢɡɨɜɚɬɶ ɨɩɪɟɞɟɥɟɧɢɟ ɮɭɧɤɰɢɢ, ɱɬɨɛɵ ɤɨɦɩɢɥɹɬɨɪ
ɦɨɝ ɩɨɫɬɪɨɢɬɶ ɤɨɧɤɪɟɬɧɭɸ ɪɟɚɥɢɡɚɰɢɸ ɮɭɧɤɰɢɢ ɞɥɹ ɭɤɚɡɚɧɧɨɝɨ ɬɢɩɚ ɩɚ-
ɪɚɦɟɬɪɨɜ ɮɭɧɤɰɢɢ. ɉɚɪɚɦɟɬɪɢɡɨɜɚɧɧɨɟ ɨɩɪɟɞɟɥɟɧɢɟ ɮɭɧɤɰɢɢ ɫɬɪɨɢɬɫɹ ɩɨ
ɫɯɟɦɟ:
template <class ɢɦɹ_ɤɥɚɫɫɚ>
Ɂɚɝɨɥɨɜɨɤ ɮɭɧɤɰɢɢ
{
/* Ɍɟɥɨ ɮɭɧɤɰɢɢ */
}
ɂɦɹ ɤɥɚɫɫɚ ɹɜɥɹɟɬɫɹ ɩɚɪɚɦɟɬɪɨɦ ɢ ɡɚɞɚɟɬɫɹ ɢɞɟɧɬɢɮɢɤɚɬɨɪɨɦ, ɥɨɤɚ-
ɥɢɡɨɜɚɧɧɵɦ ɜ ɩɪɟɞɟɥɚɯ ɨɩɪɟɞɟɥɟɧɢɹ ɮɭɧɤɰɢɢ. ɏɨɬɹ ɛɵ ɨɞɢɧ ɢɡ ɩɚɪɚɦɟɬ-
ɪɨɜ ɮɭɧɤɰɢɢ ɞɨɥɠɟɧ ɢɦɟɬɶ ɬɢɩ, ɫɨɨɬɜɟɬɫɬɜɭɸɳɢɣ ɷɬɨɦɭ ɢɞɟɧɬɢɮɢɤɚɬɨɪɭ.
ɉɚɪɚɦɟɬɪɢɡɨɜɚɧɧɨɟ ɨɩɪɟɞɟɥɟɧɢɟ ɮɭɧɤɰɢɢ ɫɨɪɬɢɪɨɜɤɢ ɦɚɫɫɢɜɚ ɦɟɬɨ-
ɞɨɦ ɩɟɪɟɫɬɚɧɨɜɨɤ ɦɨɠɟɬ ɛɵɬɶ ɩɨɫɬɪɨɟɧɨ ɫɥɟɞɭɸɳɢɦ ɨɛɪɚɡɨɦ:
template <class T >
void sort (T a[], int n)
{
T temp;
int sign;
for (int k=0; k>n; k++)
{
sign = 0;
for (i=0; i<n-k; i++)
if (a [i]>a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
sign++;
}
56
x ɉɟɪɟɨɩɪɟɞɟɥɹɟɦɵɟ ɨɩɟɪɚɰɢɢ new ɢ delete ɞɨɥɠɧɵ ɛɵɬɶ static- ɤɨɦɩɨɧɟɧɬɚɦɢ ɤɥɚɫɫɚ. ȼ ɨɫɬɚɥɶɧɨɦ ɤ ɩɟɪɟɨɩɪɟɞɟɥɹɟɦɵɦ ɨɩɟɪɚɰɢɹɦ ɩɪɟɞɴɹɜɥɹɸɬɫɹ ɬɟ ɠɟ ɬɪɟɛɨɜɚɧɢɹ, ɱɬɨ ɢ ɤ ɮɭɧɤɰɢɹɦ. 5. ɒɚɛɥɨɧɵ ɮɭɧɤɰɢɣ ɢ ɤɥɚɫɫɨɜ 5.1. ɒɚɛɥɨɧɵ ɮɭɧɤɰɢɣ ɑɚɫɬɨ ɜɫɬɪɟɱɚɸɬɫɹ ɮɭɧɤɰɢɢ, ɪɟɚɥɢɡɭɸɳɢɟ ɨɞɧɢ ɢ ɬɟ ɠɟ ɞɟɣɫɬɜɢɹ ɞɥɹ ɚɪɝɭɦɟɧɬɨɜ ɪɚɡɥɢɱɧɵɯ ɬɢɩɨɜ. ɇɚɩɪɢɦɟɪ, ɫɨɪɬɢɪɨɜɤɚ ɦɚɫɫɢɜɚ ɩɨ ɜɨɡɪɚɫɬɚ- ɧɢɸ ɟɝɨ ɷɥɟɦɟɧɬɨɜ ɦɨɠɟɬ ɜɵɩɨɥɧɹɬɶɫɹ ɨɞɧɢɦ ɢ ɬɟɦ ɠɟ ɦɟɬɨɞɨɦ ɢ ɞɥɹ ɞɚɧ- ɧɵɯ ɬɢɩɚ int, ɢ ɞɥɹ ɞɚɧɧɵɯ ɬɢɩɚ double. Ɋɚɡɥɢɱɢɟ ɫɨɫɬɨɢɬ ɬɨɥɶɤɨ ɜ ɬɢ- ɩɚɯ ɩɚɪɚɦɟɬɪɨɜ ɢ ɧɟɤɨɬɨɪɵɯ ɜɧɭɬɪɟɧɧɢɯ ɩɟɪɟɦɟɧɧɵɯ. ȼ ɛɨɥɟɟ ɩɨɡɞɧɢɟ ɜɟɪɫɢɢ ɹɡɵɤɚ ɋ++ ɜɤɥɸɱɟɧɨ ɫɩɟɰɢɚɥɶɧɨɟ ɫɪɟɞɫɬɜɨ, ɩɨɡɜɨɥɹɸɳɟɟ ɩɚɪɚɦɟɬɪɢɡɨɜɚɬɶ ɨɩɪɟɞɟɥɟɧɢɟ ɮɭɧɤɰɢɢ, ɱɬɨɛɵ ɤɨɦɩɢɥɹɬɨɪ ɦɨɝ ɩɨɫɬɪɨɢɬɶ ɤɨɧɤɪɟɬɧɭɸ ɪɟɚɥɢɡɚɰɢɸ ɮɭɧɤɰɢɢ ɞɥɹ ɭɤɚɡɚɧɧɨɝɨ ɬɢɩɚ ɩɚ- ɪɚɦɟɬɪɨɜ ɮɭɧɤɰɢɢ. ɉɚɪɚɦɟɬɪɢɡɨɜɚɧɧɨɟ ɨɩɪɟɞɟɥɟɧɢɟ ɮɭɧɤɰɢɢ ɫɬɪɨɢɬɫɹ ɩɨ ɫɯɟɦɟ: templateɁɚɝɨɥɨɜɨɤ ɮɭɧɤɰɢɢ { /* Ɍɟɥɨ ɮɭɧɤɰɢɢ */ } ɂɦɹ ɤɥɚɫɫɚ ɹɜɥɹɟɬɫɹ ɩɚɪɚɦɟɬɪɨɦ ɢ ɡɚɞɚɟɬɫɹ ɢɞɟɧɬɢɮɢɤɚɬɨɪɨɦ, ɥɨɤɚ- ɥɢɡɨɜɚɧɧɵɦ ɜ ɩɪɟɞɟɥɚɯ ɨɩɪɟɞɟɥɟɧɢɹ ɮɭɧɤɰɢɢ. ɏɨɬɹ ɛɵ ɨɞɢɧ ɢɡ ɩɚɪɚɦɟɬ- ɪɨɜ ɮɭɧɤɰɢɢ ɞɨɥɠɟɧ ɢɦɟɬɶ ɬɢɩ, ɫɨɨɬɜɟɬɫɬɜɭɸɳɢɣ ɷɬɨɦɭ ɢɞɟɧɬɢɮɢɤɚɬɨɪɭ. ɉɚɪɚɦɟɬɪɢɡɨɜɚɧɧɨɟ ɨɩɪɟɞɟɥɟɧɢɟ ɮɭɧɤɰɢɢ ɫɨɪɬɢɪɨɜɤɢ ɦɚɫɫɢɜɚ ɦɟɬɨ- ɞɨɦ ɩɟɪɟɫɬɚɧɨɜɨɤ ɦɨɠɟɬ ɛɵɬɶ ɩɨɫɬɪɨɟɧɨ ɫɥɟɞɭɸɳɢɦ ɨɛɪɚɡɨɦ: template void sort (T a[], int n) { T temp; int sign; for (int k=0; k>n; k++) { sign = 0; for (i=0; i a[i+1]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; sign++; } 56
Страницы
- « первая
- ‹ предыдущая
- …
- 54
- 55
- 56
- 57
- 58
- …
- следующая ›
- последняя »