ВУЗ:
Составители:
Рубрика:
if (sign==0) break;
}
return;
}
ȿɫɥɢ ɜ ɩɪɨɝɪɚɦɦɟ ɛɭɞɭɬ ɨɛɴɹɜɥɟɧɵ ɦɚɫɫɢɜɵ
int aint[10];
double afl[20];
ɢ ɭɫɬɚɧɨɜɥɟɧɵ ɡɧɚɱɟɧɢɹ ɷɥɟɦɟɧɬɨɜ ɷɬɢɯ ɦɚɫɫɢɜɨɜ, ɬɨ ɜɵɡɨɜ ɮɭɧɤɰɢɢ
sort(aint, 10);
ɨɛɟɫɩɟɱɢɬ ɜɵɡɨɜ sort ɞɥɹ ɭɩɨɪɹɞɨɱɟɧɢɹ ɦɚɫɫɢɜɚ ɰɟɥɵɯ, ɚ ɜɵɡɨɜ ɮɭɧɤɰɢɢ
sort(afl, 20);
ɨɛɟɫɩɟɱɢɬ ɜɵɡɨɜ sort ɞɥɹ ɭɩɨɪɹɞɨɱɟɧɢɹ ɦɚɫɫɢɜɚ ɫ ɷɥɟɦɟɧɬɚɦɢ ɬɢɩɚ
double.
ȿɫɥɢ ɷɥɟɦɟɧɬɚɦɢ ɦɚɫɫɢɜɚ ɹɜɥɹɸɬɫɹ ɨɛɴɟɤɬɵ ɤɚɤɨɝɨ-ɥɢɛɨ ɨɩɪɟɞɟɥɟɧ-
ɧɨɝɨ ɩɪɨɝɪɚɦɦɢɫɬɨɦ ɤɥɚɫɫɚ, ɞɥɹ ɤɨɬɨɪɨɝɨ ɨɩɪɟɞɟɥɟɧɚ ɨɩɟɪɚɰɢɹ ɨɬɧɨɲɟɧɢɹ
«>», ɬɨ ɮɭɧɤɰɢɹ sort ɦɨɠɟɬ ɛɵɬɶ ɜɵɡɜɚɧɚ ɢ ɞɥɹ ɬɚɤɨɝɨ ɦɚɫɫɢɜɚ. Ɋɚɡɭɦɟ-
ɟɬɫɹ, ɜ ɨɛɴɟɤɬɧɨɦ ɤɨɞɟ ɩɪɨɝɪɚɦɦɵ ɛɭɞɭɬ ɩɪɢɫɭɬɫɬɜɨɜɚɬɶ ɜɫɟ ɜɚɪɢɚɧɬɵ ɪɟ-
ɚɥɶɧɨ ɜɵɡɵɜɚɦɨɣ ɮɭɧɤɰɢɢ
sort. ɉɚɪɚɦɟɬɪɢɡɚɰɢɹ ɮɭɧɤɰɢɢ ɫɨɤɪɚɳɚɟɬ
ɨɛɴɟɦ ɢɫɯɨɞɧɨɝɨ ɬɟɤɫɬɚ ɩɪɨɝɪɚɦɦɵ ɢ ɩɨɜɵɲɚɟɬ ɟɝɨ ɧɚɞɟɠɧɨɫɬɶ.
ȼ ɨɩɢɫɚɬɟɥɟ
template ɦɨɠɧɨ ɭɤɚɡɵɜɚɬɶ ɧɟɫɤɨɥɶɤɨ ɩɚɪɚɦɟɬɪɨɜ ɜɢɞɚ
class ɢɦɹ_ɬɢɩɚ,
ɚ ɬɚɤɠɟ ɩɚɪɚɦɟɬɪɵ ɛɚɡɨɜɵɯ ɬɢɩɨɜ. ɇɚɩɪɢɦɟɪ, ɮɭɧɤɰɢɹ
template <class T1, class T2>
void copy(T1 a[], T2 b[], int n)
{
for (int i=0; i<n; i++)
a[i]=b[i];
}
ɤɨɩɢɪɭɟɬ ɩɟɪɜɵɟ
n ɷɥɟɦɟɧɬɨɜ ɦɚɫɫɢɜɚ b ɬɢɩɚ T2 ɜɩɟɪɜɵɟn ɷɥɟɦɟɧɬɨɜ
ɦɚɫɫɢɜɚ
a ɬɢɩɚ T1. Ɋɚɡɭɦɟɟɬɫɹ, ɩɪɨɝɪɚɦɦɢɫɬ ɧɟɫɟɬ ɨɬɜɟɬɫɬɜɟɧɧɨɫɬɶ ɡɚ ɬɨ,
ɱɬɨɛɵ ɬɚɤɨɟ ɤɨɩɢɪɨɜɚɧɢɟ ɛɵɥɨ ɜɨɡɦɨɠɧɵɦ.
5.2. ɒɚɛɥɨɧɵ ɤɥɚɫɫɨɜ
ɉɨ ɚɧɚɥɨɝɢɢ ɫ ɩɚɪɚɦɟɬɪɢɡɨɜɚɧɧɨɣ ɮɭɧɤɰɢɟɣ ɦɨɠɧɨ ɩɨɫɬɪɨɢɬɶ ɩɚɪɚ-
ɦɟɬɪɢɡɨɜɚɧɧɨɟ ɨɩɢɫɚɧɢɟ ɤɥɚɫɫɚ, ɩɨɡɜɨɥɹɸɳɟɟ ɫɨɡɞɚɜɚɬɶ ɷɤɡɟɦɩɥɹɪɵ ɤɥɚɫ-
ɫɨɜ ɞɥɹ ɤɨɧɤɪɟɬɧɵɯ ɡɧɚɱɟɧɢɣ ɩɚɪɚɦɟɬɪɨɜ. ɉɚɪɚɦɟɬɪɢɡɨɜɚɧɧɵɣ ɤɥɚɫɫ ɨɩɢ-
ɫɵɜɚɟɬɫɹ ɫɥɟɞɭɸɳɢɦ ɨɛɪɚɡɨɦ:
template <class T>
class ɨɩɢɫɚɧɢɟ_ɤɥɚɫɫɚ
Ʉɚɤ ɢ ɞɥɹ ɮɭɧɤɰɢɣ, ɜ ɨɩɢɫɚɬɟɥɟ template ɦɨɠɟɬ ɛɵɬɶ ɡɚɞɚɧɨ ɧɟɫɤɨɥɶ-
ɤɨ ɩɚɪɚɦɟɬɪɨɜ. ȼ ɫɚɦɨɦ ɨɩɢɫɚɧɢɢ ɤɥɚɫɫɚ ɢɦɟɧɚ ɩɚɪɚɦɟɬɪɨɜ ɢɫɩɨɥɶɡɭɸɬɫɹ
ɤɚɤ ɢɦɟɧɚ ɬɢɩɨɜ ɞɚɧɧɵɯ, ɬɢɩɨɜ ɩɚɪɚɦɟɬɪɨɜ ɮɭɧɤɰɢɣ ɢ ɬɢɩɨɜ ɡɧɚɱɟɧɢɣ,
ɜɨɡɜɪɚɳɚɟɦɵɯ ɮɭɧɤɰɢɹɦɢ.
57
if (sign==0) break; } return; } ȿɫɥɢ ɜ ɩɪɨɝɪɚɦɦɟ ɛɭɞɭɬ ɨɛɴɹɜɥɟɧɵ ɦɚɫɫɢɜɵ int aint[10]; double afl[20]; ɢ ɭɫɬɚɧɨɜɥɟɧɵ ɡɧɚɱɟɧɢɹ ɷɥɟɦɟɧɬɨɜ ɷɬɢɯ ɦɚɫɫɢɜɨɜ, ɬɨ ɜɵɡɨɜ ɮɭɧɤɰɢɢ sort(aint, 10); ɨɛɟɫɩɟɱɢɬ ɜɵɡɨɜ sort ɞɥɹ ɭɩɨɪɹɞɨɱɟɧɢɹ ɦɚɫɫɢɜɚ ɰɟɥɵɯ, ɚ ɜɵɡɨɜ ɮɭɧɤɰɢɢ sort(afl, 20); ɨɛɟɫɩɟɱɢɬ ɜɵɡɨɜ sort ɞɥɹ ɭɩɨɪɹɞɨɱɟɧɢɹ ɦɚɫɫɢɜɚ ɫ ɷɥɟɦɟɧɬɚɦɢ ɬɢɩɚ double. ȿɫɥɢ ɷɥɟɦɟɧɬɚɦɢ ɦɚɫɫɢɜɚ ɹɜɥɹɸɬɫɹ ɨɛɴɟɤɬɵ ɤɚɤɨɝɨ-ɥɢɛɨ ɨɩɪɟɞɟɥɟɧ- ɧɨɝɨ ɩɪɨɝɪɚɦɦɢɫɬɨɦ ɤɥɚɫɫɚ, ɞɥɹ ɤɨɬɨɪɨɝɨ ɨɩɪɟɞɟɥɟɧɚ ɨɩɟɪɚɰɢɹ ɨɬɧɨɲɟɧɢɹ «>», ɬɨ ɮɭɧɤɰɢɹ sort ɦɨɠɟɬ ɛɵɬɶ ɜɵɡɜɚɧɚ ɢ ɞɥɹ ɬɚɤɨɝɨ ɦɚɫɫɢɜɚ. Ɋɚɡɭɦɟ- ɟɬɫɹ, ɜ ɨɛɴɟɤɬɧɨɦ ɤɨɞɟ ɩɪɨɝɪɚɦɦɵ ɛɭɞɭɬ ɩɪɢɫɭɬɫɬɜɨɜɚɬɶ ɜɫɟ ɜɚɪɢɚɧɬɵ ɪɟ- ɚɥɶɧɨ ɜɵɡɵɜɚɦɨɣ ɮɭɧɤɰɢɢ sort. ɉɚɪɚɦɟɬɪɢɡɚɰɢɹ ɮɭɧɤɰɢɢ ɫɨɤɪɚɳɚɟɬ ɨɛɴɟɦ ɢɫɯɨɞɧɨɝɨ ɬɟɤɫɬɚ ɩɪɨɝɪɚɦɦɵ ɢ ɩɨɜɵɲɚɟɬ ɟɝɨ ɧɚɞɟɠɧɨɫɬɶ. ȼ ɨɩɢɫɚɬɟɥɟ template ɦɨɠɧɨ ɭɤɚɡɵɜɚɬɶ ɧɟɫɤɨɥɶɤɨ ɩɚɪɚɦɟɬɪɨɜ ɜɢɞɚ class ɢɦɹ_ɬɢɩɚ, ɚ ɬɚɤɠɟ ɩɚɪɚɦɟɬɪɵ ɛɚɡɨɜɵɯ ɬɢɩɨɜ. ɇɚɩɪɢɦɟɪ, ɮɭɧɤɰɢɹ templatevoid copy(T1 a[], T2 b[], int n) { for (int i=0; i class ɨɩɢɫɚɧɢɟ_ɤɥɚɫɫɚ Ʉɚɤ ɢ ɞɥɹ ɮɭɧɤɰɢɣ, ɜ ɨɩɢɫɚɬɟɥɟ template ɦɨɠɟɬ ɛɵɬɶ ɡɚɞɚɧɨ ɧɟɫɤɨɥɶ- ɤɨ ɩɚɪɚɦɟɬɪɨɜ. ȼ ɫɚɦɨɦ ɨɩɢɫɚɧɢɢ ɤɥɚɫɫɚ ɢɦɟɧɚ ɩɚɪɚɦɟɬɪɨɜ ɢɫɩɨɥɶɡɭɸɬɫɹ ɤɚɤ ɢɦɟɧɚ ɬɢɩɨɜ ɞɚɧɧɵɯ, ɬɢɩɨɜ ɩɚɪɚɦɟɬɪɨɜ ɮɭɧɤɰɢɣ ɢ ɬɢɩɨɜ ɡɧɚɱɟɧɢɣ, ɜɨɡɜɪɚɳɚɟɦɵɯ ɮɭɧɤɰɢɹɦɢ. 57
Страницы
- « первая
- ‹ предыдущая
- …
- 55
- 56
- 57
- 58
- 59
- …
- следующая ›
- последняя »