ВУЗ:
Составители:
Рубрика:
friend-ɮɭɧɤɰɢɹ ɡɚɜɢɫɢɬ ɨɬ ɩɚɪɚɦɟɬɪɚ, ɛɭɞɟɬ ɢɫɩɨɥɶɡɨɜɚɬɶɫɹ ɫɜɨɹ
friend-ɮɭɧɤɰɢɹ ɞɥɹ ɤɚɠɞɨɝɨ ɡɧɚɱɟɧɢɹ ɩɚɪɚɦɟɬɪɚ.
x ȿɫɥɢ ɜ ɩɚɪɚɦɟɬɪɢɡɨɜɚɧɧɨɦ ɤɥɚɫɫɟ ɢɦɟɸɬɫɹ ɫɬɚɬɢɱɟɫɤɢɟ (
static)
ɤɨɦɩɨɧɟɧɬɵ, ɬɨ ɞɥɹ ɤɚɠɞɨɝɨ ɡɧɚɱɟɧɢɹ ɩɚɪɚɦɟɬɪɚ ɛɭɞɟɬ ɢɫɩɨɥɶɡɨ-
ɜɚɬɶɫɹ ɫɜɨɣ ɷɤɡɟɦɩɥɹɪ ɫɬɚɬɢɱɟɫɤɨɣ ɤɨɦɩɨɧɟɧɬɵ.
6. ɉɪɢɥɨɠɟɧɢɹ
6.1. Ɂɚɞɚɱɢ ɩɨ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɸ ɧɚ ɹɡɵɤɟ C++
1. ɋɨɫɬɚɜɢɬɶ ɮɭɧɤɰɢɸ ɞɥɹ ɩɨɞɫɱɟɬɚ ɱɢɫɥɚ ɫɟɪɢɣ ɞɥɢɧɨɣ ɧɟ ɦɟɧɟɟ Ʉ ɩɨɥɨ-
ɠɢɬɟɥɶɧɵɯ, ɨɬɪɢɰɚɬɟɥɶɧɵɯ ɱɢɫɟɥ ɢ ɧɭɥɟɣ ɜ ɨɞɧɨɦɟɪɧɨɦ ɦɚɫɫɢɜɟ ɰɟɥɵɯ
ɱɢɫɟɥ. ɋɟɪɢɟɣ ɧɚɡɵɜɚɟɬɫɹ ɩɨɫɥɟɞɨɜɚɬɟɥɶɧɨɫɬɶ ɷɥɟɦɟɧɬɨɜ ɦɚɫɫɢɜɚ, ɩɪɢɧɚɞ-
ɥɟɠɚɳɢɯ ɨɞɧɨɦɭ ɤɥɚɫɫɭ:
int series(int n, int *mas, int *kzero, int *kplus,
int *kminus, int k);
2. ɋɨɫɬɚɜɢɬɶ ɮɭɧɤɰɢɸ ɞɥɹ ɫɥɢɹɧɢɹ ɞɜɭɯ ɭɩɨɪɹɞɨɱɟɧɧɵɯ ɩɨ ɜɨɡɪɚɫɬɚɧɢɸ
ɦɚɫɫɢɜɨɜ ɰɟɥɵɯ ɱɢɫɟɥ:
int merge(int n, int m, int *mas1, int *mas2, int *res);
3. ɋɨɫɬɚɜɢɬɶ ɮɭɧɤɰɢɸ ɞɥɹ ɩɨɫɬɪɨɟɧɢɹ ɫɩɢɫɤɚ ɢɧɞɟɤɫɨɜ (ɧɨɦɟɪɨɜ), ɫɬɪɨɤ
ɭɩɨɪɹɞɨɱɟɧɧɨɝɨ ɩɨ ɜɨɡɪɚɫɬɚɧɢɸ ɷɥɟɦɟɧɬɨɜ ɡɚɞɚɧɧɨɝɨ (
k-ɝɨ) ɫɬɨɥɛɰɚ ɦɚɬ-
ɪɢɰɵ. ɗɥɟɦɟɧɬɵ ɦɚɬɪɢɰɵ - ɰɟɥɵɟ ɱɢɫɥɚ:
void sort(int n, int *mas, int k, int* index);
4. ɋɨɫɬɚɜɢɬɶ ɮɭɧɤɰɢɸ ɞɥɹ ɨɩɪɟɞɟɥɟɧɢɹ ɷɥɟɦɟɧɬɚ ɦɚɬɪɢɰɵ, ɹɜɥɹɸɳɟɝɨɫɹ
ɫɟɞɥɨɜɨɣ ɬɨɱɤɨɣ. ɋɟɞɥɨɜɨɣ ɬɨɱɤɨɣ ɧɚɡɵɜɚɟɬɫɹ ɷɥɟɦɟɧɬ, ɭɞɨɜɥɟɬɜɨɪɹɸɳɢɣ
ɭɫɥɨɜɢɹɦ:
a[k,l]=max min(a[i,j])=min max(a[i,j])
i<=n,j<=m j<=m,i<=n
ȿɫɥɢ ɫɟɞɥɨɜɨɣ ɬɨɱɤɢ ɧɟɬ, ɭɫɬɚɧɨɜɢɬɶ
k=l=-1.
5. ɋɨɫɬɚɜɢɬɶ ɮɭɧɤɰɢɸ ɞɥɹ ɩɨɞɫɱɟɬɚ ɤɨɥɢɱɟɫɬɜɚ ɪɚɡɥɢɱɧɵɯ ɱɢɫɟɥ ɜ ɦɚɫɫɢ-
ɜɟ, ɫɨɞɟɪɠɚɳɟɦ
n ɰɟɥɵɯ ɱɢɫɟɥ.
int count(int *a, int n);
59
friend-ɮɭɧɤɰɢɹ ɡɚɜɢɫɢɬ ɨɬ ɩɚɪɚɦɟɬɪɚ, ɛɭɞɟɬ ɢɫɩɨɥɶɡɨɜɚɬɶɫɹ ɫɜɨɹ
friend-ɮɭɧɤɰɢɹ ɞɥɹ ɤɚɠɞɨɝɨ ɡɧɚɱɟɧɢɹ ɩɚɪɚɦɟɬɪɚ.
x ȿɫɥɢ ɜ ɩɚɪɚɦɟɬɪɢɡɨɜɚɧɧɨɦ ɤɥɚɫɫɟ ɢɦɟɸɬɫɹ ɫɬɚɬɢɱɟɫɤɢɟ (static)
ɤɨɦɩɨɧɟɧɬɵ, ɬɨ ɞɥɹ ɤɚɠɞɨɝɨ ɡɧɚɱɟɧɢɹ ɩɚɪɚɦɟɬɪɚ ɛɭɞɟɬ ɢɫɩɨɥɶɡɨ-
ɜɚɬɶɫɹ ɫɜɨɣ ɷɤɡɟɦɩɥɹɪ ɫɬɚɬɢɱɟɫɤɨɣ ɤɨɦɩɨɧɟɧɬɵ.
6. ɉɪɢɥɨɠɟɧɢɹ
6.1. Ɂɚɞɚɱɢ ɩɨ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɸ ɧɚ ɹɡɵɤɟ C++
1. ɋɨɫɬɚɜɢɬɶ ɮɭɧɤɰɢɸ ɞɥɹ ɩɨɞɫɱɟɬɚ ɱɢɫɥɚ ɫɟɪɢɣ ɞɥɢɧɨɣ ɧɟ ɦɟɧɟɟ Ʉ ɩɨɥɨ-
ɠɢɬɟɥɶɧɵɯ, ɨɬɪɢɰɚɬɟɥɶɧɵɯ ɱɢɫɟɥ ɢ ɧɭɥɟɣ ɜ ɨɞɧɨɦɟɪɧɨɦ ɦɚɫɫɢɜɟ ɰɟɥɵɯ
ɱɢɫɟɥ. ɋɟɪɢɟɣ ɧɚɡɵɜɚɟɬɫɹ ɩɨɫɥɟɞɨɜɚɬɟɥɶɧɨɫɬɶ ɷɥɟɦɟɧɬɨɜ ɦɚɫɫɢɜɚ, ɩɪɢɧɚɞ-
ɥɟɠɚɳɢɯ ɨɞɧɨɦɭ ɤɥɚɫɫɭ:
int series(int n, int *mas, int *kzero, int *kplus,
int *kminus, int k);
2. ɋɨɫɬɚɜɢɬɶ ɮɭɧɤɰɢɸ ɞɥɹ ɫɥɢɹɧɢɹ ɞɜɭɯ ɭɩɨɪɹɞɨɱɟɧɧɵɯ ɩɨ ɜɨɡɪɚɫɬɚɧɢɸ
ɦɚɫɫɢɜɨɜ ɰɟɥɵɯ ɱɢɫɟɥ:
int merge(int n, int m, int *mas1, int *mas2, int *res);
3. ɋɨɫɬɚɜɢɬɶ ɮɭɧɤɰɢɸ ɞɥɹ ɩɨɫɬɪɨɟɧɢɹ ɫɩɢɫɤɚ ɢɧɞɟɤɫɨɜ (ɧɨɦɟɪɨɜ), ɫɬɪɨɤ
ɭɩɨɪɹɞɨɱɟɧɧɨɝɨ ɩɨ ɜɨɡɪɚɫɬɚɧɢɸ ɷɥɟɦɟɧɬɨɜ ɡɚɞɚɧɧɨɝɨ (k-ɝɨ) ɫɬɨɥɛɰɚ ɦɚɬ-
ɪɢɰɵ. ɗɥɟɦɟɧɬɵ ɦɚɬɪɢɰɵ - ɰɟɥɵɟ ɱɢɫɥɚ:
void sort(int n, int *mas, int k, int* index);
4. ɋɨɫɬɚɜɢɬɶ ɮɭɧɤɰɢɸ ɞɥɹ ɨɩɪɟɞɟɥɟɧɢɹ ɷɥɟɦɟɧɬɚ ɦɚɬɪɢɰɵ, ɹɜɥɹɸɳɟɝɨɫɹ
ɫɟɞɥɨɜɨɣ ɬɨɱɤɨɣ. ɋɟɞɥɨɜɨɣ ɬɨɱɤɨɣ ɧɚɡɵɜɚɟɬɫɹ ɷɥɟɦɟɧɬ, ɭɞɨɜɥɟɬɜɨɪɹɸɳɢɣ
ɭɫɥɨɜɢɹɦ:
a[k,l]=max min(a[i,j])=min max(a[i,j])
i<=n,j<=m j<=m,i<=n
ȿɫɥɢ ɫɟɞɥɨɜɨɣ ɬɨɱɤɢ ɧɟɬ, ɭɫɬɚɧɨɜɢɬɶ k=l=-1.
5. ɋɨɫɬɚɜɢɬɶ ɮɭɧɤɰɢɸ ɞɥɹ ɩɨɞɫɱɟɬɚ ɤɨɥɢɱɟɫɬɜɚ ɪɚɡɥɢɱɧɵɯ ɱɢɫɟɥ ɜ ɦɚɫɫɢ-
ɜɟ, ɫɨɞɟɪɠɚɳɟɦ n ɰɟɥɵɯ ɱɢɫɟɥ.
int count(int *a, int n);
59
Страницы
- « первая
- ‹ предыдущая
- …
- 57
- 58
- 59
- 60
- 61
- …
- следующая ›
- последняя »
