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

UptoLike

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

22. ɋɨɫɬɚɜɢɬɶ ɮɭɧɤɰɢɸ ɞɥɹ ɜɵɱɢɫɥɟɧɢɹ ɩɪɨɢɡɜɟɞɟɧɢɹ ɦɚɬɪɢɰ a ɢɡ n ɫɬɪɨɤ
ɢ
m ɫɬɨɥɛɰɨɜ ɢ b ɢɡ m ɫɬɪɨɤ ɢ k ɫɬɨɥɛɰɨɜ ɫ ɩɨɦɟɳɟɧɢɟɦ ɪɟɡɭɥɶɬɚɬɚ ɜ ɦɚɬ-
ɪɢɰɭ
c:
void matrprod(int n, int m, int k, float *a, float *b,
float *c);
6.2. Ɂɚɞɚɱɢ ɩɨ ɪɚɡɪɚɛɨɬɤɟ ɫɢɫɬɟɦ ɨɛɴɟɤɬɨɜ
1. ɉɨɫɬɪɨɢɬɶ ɫɢɫɬɟɦɭ ɤɥɚɫɫɨɜ ɞɥɹ ɨɩɢɫɚɧɢɹ ɩɥɨɫɤɢɯ ɝɟɨɦɟɬɪɢɱɟɫɤɢɯ ɮɢ-
ɝɭɪ: ɤɪɭɝɚ, ɤɜɚɞɪɚɬɚ, ɩɪɹɦɨɭɝɨɥɶɧɢɤɚ. ɉɪɟɞɭɫɦɨɬɪɟɬɶ ɦɟɬɨɞɵ ɞɥɹ ɫɨɡɞɚɧɢɹ
ɨɛɴɟɤɬɨɜ, ɩɟɪɟɦɟɳɟɧɢɹ ɧɚ ɩɥɨɫɤɨɫɬɢ, ɢɡɦɟɧɟɧɢɹ ɪɚɡɦɟɪɨɜ ɢ ɜɪɚɳɟɧɢɹ ɧɚ
ɡɚɞɚɧɧɵɣ ɭɝɨɥ.
2. ɉɨɫɬɪɨɢɬɶ ɨɩɢɫɚɧɢɟ ɤɥɚɫɫɚ, ɫɨɞɟɪɠɚɳɟɝɨ ɢɧɮɨɪɦɚɰɢɸ ɨ ɩɨɱɬɨɜɨɦ ɚɞ-
ɪɟɫɟ ɨɪɝɚɧɢɡɚɰɢɢ. ɉɪɟɞɭɫɦɨɬɪɟɬɶ ɜɨɡɦɨɠɧɨɫɬɶ ɪɚɡɞɟɥɶɧɨɝɨ ɢɡɦɟɧɟɧɢɹ ɫɨ-
ɫɬɚɜɧɵɯ ɱɚɫɬɟɣ ɚɞɪɟɫɚ, ɫɨɡɞɚɧɢɹ ɢ ɭɧɢɱɬɨɠɟɧɢɹ ɨɛɴɟɤɬɨɜ ɷɬɨɝɨ ɤɥɚɫɫɚ.
3. ɋɨɫɬɚɜɢɬɶ ɨɩɢɫɚɧɢɟ ɤɥɚɫɫɚ ɞɥɹ ɩɪɟɞɫɬɚɜɥɟɧɢɹ ɤɨɦɩɥɟɤɫɧɵɯ ɱɢɫɟɥ ɫ ɜɨɡ-
ɦɨɠɧɨɫɬɶɸ ɡɚɞɚɧɢɹ ɜɟɳɟɫɬɜɟɧɧɨɣ ɢ ɦɧɢɦɨɣ ɱɚɫɬɟɣ ɤɚɤ ɱɢɫɥɚɦɢ ɬɢɩɨɜ
double, ɬɚɤ ɢ ɰɟɥɵɦɢ ɱɢɫɥɚɦɢ. Ɉɛɟɫɩɟɱɢɬɶ ɜɵɩɨɥɧɟɧɢɟ ɨɩɟɪɚɰɢɣ ɫɥɨɠɟ-
ɧɢɹ, ɜɵɱɢɬɚɧɢɹ ɢ ɭɦɧɨɠɟɧɢɹ ɤɨɦɩɥɟɤɫɧɵɯ ɱɢɫɟɥ.
4. ɋɨɫɬɚɜɢɬɶ ɨɩɢɫɚɧɢɟ ɤɥɚɫɫɚ ɞɥɹ ɪɚɛɨɬɵ ɫ ɰɟɩɧɵɦɢ ɫɩɢɫɤɚɦɢ ɫɬɪɨɤ (ɫɬɪɨ-
ɤɢ ɩɪɨɢɡɜɨɥɶɧɨɣ ɞɥɢɧɵ) ɫ ɨɩɟɪɚɰɢɹɦɢ ɜɤɥɸɱɟɧɢɹ ɜ ɫɩɢɫɨɤ, ɭɞɚɥɟɧɢɹ ɢɡ
ɫɩɢɫɤɚ ɷɥɟɦɟɧɬɚ ɫ ɡɚɞɚɧɧɵɦ ɡɧɚɱɟɧɢɟɦ ɞɚɧɧɨɝɨ, ɭɞɚɥɟɧɢɹ ɜɫɟɝɨ ɫɩɢɫɤɚ
ɢɥɢ ɤɨɧɰɚ ɫɩɢɫɤɚ, ɧɚɱɢɧɚɹ ɫ ɡɚɞɚɧɧɨɝɨ ɷɥɟɦɟɧɬɚ.
5. ɋɨɫɬɚɜɢɬɶ ɨɩɢɫɚɧɢɟ ɤɥɚɫɫɚ ɞɥɹ ɨɛɴɟɤɬɨɜ-ɜɟɤɬɨɪɨɜ, ɡɚɞɚɜɚɟɦɵɯ ɤɨɨɪɞɢ-
ɧɚɬɚɦɢ ɤɨɧɰɨɜ ɜ ɬɪɟɯɦɟɪɧɨɦ ɩɪɨɫɬɪɚɧɫɬɜɟ. Ɉɛɟɫɩɟɱɢɬɶ ɨɩɟɪɚɰɢɢ ɫɥɨɠɟ-
ɧɢɹ ɢ ɜɵɱɢɬɚɧɢɹ ɜɟɤɬɨɪɨɜ ɫ ɩɨɥɭɱɟɧɢɟɦ ɧɨɜɨɝɨ ɜɟɤɬɨɪɚ (ɫɭɦɦɵ ɢɥɢ ɪɚɡɧɨ-
ɫɬɢ), ɜɵɱɢɫɥɟɧɢɹ ɫɤɚɥɹɪɧɨɝɨ ɩɪɨɢɡɜɟɞɟɧɢɹ ɞɜɭɯ ɜɟɤɬɨɪɨɜ, ɞɥɢɧɵ ɜɟɤɬɨɪɚ,
cos ɭɝɥɚ ɦɟɠɞɭ ɜɟɤɬɨɪɚɦɢ.
6. ɋɨɫɬɚɜɢɬɶ ɨɩɢɫɚɧɢɟ ɤɥɚɫɫɚ ɩɪɹɦɨɭɝɨɥɶɧɢɤɨɜ ɫɨ ɫɬɨɪɨɧɚɦɢ, ɩɚɪɚɥɥɟɥɶ-
ɧɵɦɢ ɨɫɹɦ ɤɨɨɪɞɢɧɚɬ. ɉɪɟɞɭɫɦɨɬɪɟɬɶ ɜɨɡɦɨɠɧɨɫɬɶ ɩɟɪɟɦɟɳɟɧɢɹ ɩɪɹɦɨ-
ɭɝɨɥɶɧɢɤɨɜ ɧɚ ɩɥɨɫɤɨɫɬɢ, ɢɡɦɟɧɟɧɢɹ ɪɚɡɦɟɪɨɜ, ɩɨɫɬɪɨɟɧɢɹ ɧɚɢɦɟɧɶɲɟɝɨ
ɩɪɹɦɨɭɝɨɥɶɧɢɤɚ, ɫɨɞɟɪɠɚɳɟɝɨ ɞɜɚ ɡɚɞɚɧɧɵɯ ɩɪɹɦɨɭɝɨɥɶɧɢɤɚ, ɢ ɩɪɹɦɨ-
ɭɝɨɥɶɧɢɤɚ, ɹɜɥɹɸɳɟɝɨɫɹ ɨɛɳɟɣ ɱɚɫɬɶɸ (ɩɟɪɟɫɟɱɟɧɢɟɦ) ɞɜɭɯ ɩɪɹɦɨɭɝɨɥɶ-
ɧɢɤɨɜ.
7. ɋɨɫɬɚɜɢɬɶ ɨɩɢɫɚɧɢɟ ɤɥɚɫɫɚ ɞɥɹ ɨɩɪɟɞɟɥɟɧɢɹ ɨɞɧɨɦɟɪɧɵɯ ɦɚɫɫɢɜɨɜ ɰɟ-
ɥɵɯ ɱɢɫɟɥ (ɜɟɤɬɨɪɨɜ). ɉɪɟɞɭɫɦɨɬɪɟɬɶ ɜɨɡɦɨɠɧɨɫɬɶ ɨɛɪɚɳɟɧɢɹ ɤ ɨɬɞɟɥɶɧɨ-
65
22. ɋɨɫɬɚɜɢɬɶ ɮɭɧɤɰɢɸ ɞɥɹ ɜɵɱɢɫɥɟɧɢɹ ɩɪɨɢɡɜɟɞɟɧɢɹ ɦɚɬɪɢɰ a ɢɡ n ɫɬɪɨɤ
ɢ m ɫɬɨɥɛɰɨɜ ɢ b ɢɡ m ɫɬɪɨɤ ɢ k ɫɬɨɥɛɰɨɜ ɫ ɩɨɦɟɳɟɧɢɟɦ ɪɟɡɭɥɶɬɚɬɚ ɜ ɦɚɬ-
ɪɢɰɭ c:

     void matrprod(int n, int m, int k, float *a, float *b,
                    float *c);

6.2. Ɂɚɞɚɱɢ ɩɨ ɪɚɡɪɚɛɨɬɤɟ ɫɢɫɬɟɦ ɨɛɴɟɤɬɨɜ

1. ɉɨɫɬɪɨɢɬɶ ɫɢɫɬɟɦɭ ɤɥɚɫɫɨɜ ɞɥɹ ɨɩɢɫɚɧɢɹ ɩɥɨɫɤɢɯ ɝɟɨɦɟɬɪɢɱɟɫɤɢɯ ɮɢ-
ɝɭɪ: ɤɪɭɝɚ, ɤɜɚɞɪɚɬɚ, ɩɪɹɦɨɭɝɨɥɶɧɢɤɚ. ɉɪɟɞɭɫɦɨɬɪɟɬɶ ɦɟɬɨɞɵ ɞɥɹ ɫɨɡɞɚɧɢɹ
ɨɛɴɟɤɬɨɜ, ɩɟɪɟɦɟɳɟɧɢɹ ɧɚ ɩɥɨɫɤɨɫɬɢ, ɢɡɦɟɧɟɧɢɹ ɪɚɡɦɟɪɨɜ ɢ ɜɪɚɳɟɧɢɹ ɧɚ
ɡɚɞɚɧɧɵɣ ɭɝɨɥ.

2. ɉɨɫɬɪɨɢɬɶ ɨɩɢɫɚɧɢɟ ɤɥɚɫɫɚ, ɫɨɞɟɪɠɚɳɟɝɨ ɢɧɮɨɪɦɚɰɢɸ ɨ ɩɨɱɬɨɜɨɦ ɚɞ-
ɪɟɫɟ ɨɪɝɚɧɢɡɚɰɢɢ. ɉɪɟɞɭɫɦɨɬɪɟɬɶ ɜɨɡɦɨɠɧɨɫɬɶ ɪɚɡɞɟɥɶɧɨɝɨ ɢɡɦɟɧɟɧɢɹ ɫɨ-
ɫɬɚɜɧɵɯ ɱɚɫɬɟɣ ɚɞɪɟɫɚ, ɫɨɡɞɚɧɢɹ ɢ ɭɧɢɱɬɨɠɟɧɢɹ ɨɛɴɟɤɬɨɜ ɷɬɨɝɨ ɤɥɚɫɫɚ.

3. ɋɨɫɬɚɜɢɬɶ ɨɩɢɫɚɧɢɟ ɤɥɚɫɫɚ ɞɥɹ ɩɪɟɞɫɬɚɜɥɟɧɢɹ ɤɨɦɩɥɟɤɫɧɵɯ ɱɢɫɟɥ ɫ ɜɨɡ-
ɦɨɠɧɨɫɬɶɸ ɡɚɞɚɧɢɹ ɜɟɳɟɫɬɜɟɧɧɨɣ ɢ ɦɧɢɦɨɣ ɱɚɫɬɟɣ ɤɚɤ ɱɢɫɥɚɦɢ ɬɢɩɨɜ
double, ɬɚɤ ɢ ɰɟɥɵɦɢ ɱɢɫɥɚɦɢ. Ɉɛɟɫɩɟɱɢɬɶ ɜɵɩɨɥɧɟɧɢɟ ɨɩɟɪɚɰɢɣ ɫɥɨɠɟ-
ɧɢɹ, ɜɵɱɢɬɚɧɢɹ ɢ ɭɦɧɨɠɟɧɢɹ ɤɨɦɩɥɟɤɫɧɵɯ ɱɢɫɟɥ.

4. ɋɨɫɬɚɜɢɬɶ ɨɩɢɫɚɧɢɟ ɤɥɚɫɫɚ ɞɥɹ ɪɚɛɨɬɵ ɫ ɰɟɩɧɵɦɢ ɫɩɢɫɤɚɦɢ ɫɬɪɨɤ (ɫɬɪɨ-
ɤɢ ɩɪɨɢɡɜɨɥɶɧɨɣ ɞɥɢɧɵ) ɫ ɨɩɟɪɚɰɢɹɦɢ ɜɤɥɸɱɟɧɢɹ ɜ ɫɩɢɫɨɤ, ɭɞɚɥɟɧɢɹ ɢɡ
ɫɩɢɫɤɚ ɷɥɟɦɟɧɬɚ ɫ ɡɚɞɚɧɧɵɦ ɡɧɚɱɟɧɢɟɦ ɞɚɧɧɨɝɨ, ɭɞɚɥɟɧɢɹ ɜɫɟɝɨ ɫɩɢɫɤɚ
ɢɥɢ ɤɨɧɰɚ ɫɩɢɫɤɚ, ɧɚɱɢɧɚɹ ɫ ɡɚɞɚɧɧɨɝɨ ɷɥɟɦɟɧɬɚ.

5. ɋɨɫɬɚɜɢɬɶ ɨɩɢɫɚɧɢɟ ɤɥɚɫɫɚ ɞɥɹ ɨɛɴɟɤɬɨɜ-ɜɟɤɬɨɪɨɜ, ɡɚɞɚɜɚɟɦɵɯ ɤɨɨɪɞɢ-
ɧɚɬɚɦɢ ɤɨɧɰɨɜ ɜ ɬɪɟɯɦɟɪɧɨɦ ɩɪɨɫɬɪɚɧɫɬɜɟ. Ɉɛɟɫɩɟɱɢɬɶ ɨɩɟɪɚɰɢɢ ɫɥɨɠɟ-
ɧɢɹ ɢ ɜɵɱɢɬɚɧɢɹ ɜɟɤɬɨɪɨɜ ɫ ɩɨɥɭɱɟɧɢɟɦ ɧɨɜɨɝɨ ɜɟɤɬɨɪɚ (ɫɭɦɦɵ ɢɥɢ ɪɚɡɧɨ-
ɫɬɢ), ɜɵɱɢɫɥɟɧɢɹ ɫɤɚɥɹɪɧɨɝɨ ɩɪɨɢɡɜɟɞɟɧɢɹ ɞɜɭɯ ɜɟɤɬɨɪɨɜ, ɞɥɢɧɵ ɜɟɤɬɨɪɚ,
cos ɭɝɥɚ ɦɟɠɞɭ ɜɟɤɬɨɪɚɦɢ.

6. ɋɨɫɬɚɜɢɬɶ ɨɩɢɫɚɧɢɟ ɤɥɚɫɫɚ ɩɪɹɦɨɭɝɨɥɶɧɢɤɨɜ ɫɨ ɫɬɨɪɨɧɚɦɢ, ɩɚɪɚɥɥɟɥɶ-
ɧɵɦɢ ɨɫɹɦ ɤɨɨɪɞɢɧɚɬ. ɉɪɟɞɭɫɦɨɬɪɟɬɶ ɜɨɡɦɨɠɧɨɫɬɶ ɩɟɪɟɦɟɳɟɧɢɹ ɩɪɹɦɨ-
ɭɝɨɥɶɧɢɤɨɜ ɧɚ ɩɥɨɫɤɨɫɬɢ, ɢɡɦɟɧɟɧɢɹ ɪɚɡɦɟɪɨɜ, ɩɨɫɬɪɨɟɧɢɹ ɧɚɢɦɟɧɶɲɟɝɨ
ɩɪɹɦɨɭɝɨɥɶɧɢɤɚ, ɫɨɞɟɪɠɚɳɟɝɨ ɞɜɚ ɡɚɞɚɧɧɵɯ ɩɪɹɦɨɭɝɨɥɶɧɢɤɚ, ɢ ɩɪɹɦɨ-
ɭɝɨɥɶɧɢɤɚ, ɹɜɥɹɸɳɟɝɨɫɹ ɨɛɳɟɣ ɱɚɫɬɶɸ (ɩɟɪɟɫɟɱɟɧɢɟɦ) ɞɜɭɯ ɩɪɹɦɨɭɝɨɥɶ-
ɧɢɤɨɜ.

7. ɋɨɫɬɚɜɢɬɶ ɨɩɢɫɚɧɢɟ ɤɥɚɫɫɚ ɞɥɹ ɨɩɪɟɞɟɥɟɧɢɹ ɨɞɧɨɦɟɪɧɵɯ ɦɚɫɫɢɜɨɜ ɰɟ-
ɥɵɯ ɱɢɫɟɥ (ɜɟɤɬɨɪɨɜ). ɉɪɟɞɭɫɦɨɬɪɟɬɶ ɜɨɡɦɨɠɧɨɫɬɶ ɨɛɪɚɳɟɧɢɹ ɤ ɨɬɞɟɥɶɧɨ-

                                  65