ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² Π‘/Π‘++

Лабораторная Ρ€Π°Π±ΠΎΡ‚Π°ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ОбъявлСниС массива являСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ компилятору Π½Π° Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти для хранСния Π΅Π³ΠΎ элСмСнтов. ΠžΠ±Ρ‰Π΅Π΅ количСство Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ памяти зависит Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ Ρ‡ΠΈΡΠ»Π° элСмСнтов, Π½ΠΎ ΠΈ ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΡ‚ Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ°. НапримСр, тСкстовая строка ΠΈΠ· 1000 символов (Ρ‚ΠΈΠΏ char) Π·Π°ΠΉΠΌΠ΅Ρ‚ P = 1000*sizeof (char) = 1000 Π±Π°ΠΉΡ‚ΠΎΠ², Π° ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ количСства вСщСствСнных чисСл Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ точности (Ρ‚ΠΈΠΏ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² Π‘/Π‘++ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Лабораторная Ρ€Π°Π±ΠΎΡ‚Π°

На Ρ‚Π΅ΠΌΡƒ: ΠœΠΠ‘Π‘Π˜Π’Π« Π² Π‘/Π‘++

ΠŸΠΎΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

1. ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ (Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Π΅) массивы

Π›ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌ массивом Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° C++ называСтся упорядочСнный Π½Π°Π±ΠΎΡ€ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ

Массив являСтся ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΉ структурой Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π±ΠΎΠ»ΡŒΡˆΠΈΠΌΠΈ объСмами ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΡƒΡ‚Π΅ΠΌ ΠΈΡ… ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½ΠΈΡ. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ с ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ, упорядочСниС происходит Π·Π° ΡΡ‡Π΅Ρ‚ индСксирования элСмСнтов, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ обращСния ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ· Π½ΠΈΡ… ΠΏΠΎ ΠΏΠΎΡ€ΡΠ΄ΠΊΠΎΠ²ΠΎΠΌΡƒ Π½ΠΎΠΌΠ΅Ρ€Ρƒ. ΠŸΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ массив состоит ΠΈΠ· n элСмСнтов с ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ ΠΎΡ‚ 0 Π΄ΠΎ n-1, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ записаны числа 5, 21, 0, 12 ΠΈ Ρ‚. Π΄.

Π›ΡŽΠ±ΠΎΠΉ массив Π² C++ характСризуСтся трСмя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ: ΠΈΠΌΠ΅Π½Π΅ΠΌ, Ρ‚ΠΈΠΏΠΎΠΌ элСмСнтов ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ. Как ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Π°Ρ пСрСмСнная, ΠΏΠ΅Ρ€Π΅Π΄ использованиСм массив Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ объявлСн. ΠžΠ±Ρ‰Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° записи объявлСния:

Ρ‚ΠΈΠΏ_элСмСнтов имя_массива[Ρ€Π°Π·ΠΌΠ΅Ρ€_массива];

Π—Π΄Π΅ΡΡŒ Ρ‚ΠΈΠΏ_элСмСнтов — это любой ΠΈΠ· ΠΈΠ·Π²Π΅ΡΡ‚Π½Ρ‹Ρ… стандартных Ρ‚ΠΈΠΏΠΎΠ² (int, float, double, char ΠΈ Ρ‚. Π΄.), имя_массива — ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ имя (ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ для обращСния ΠΊ ΠΌΠ°ΡΡΠΈΠ²Ρƒ, Ρ€Π°Π·ΠΌΠ΅Ρ€_массива — количСство Π΅Π³ΠΎ элСмСнтов. Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ послСднСго ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π² ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована Ρ‚ΠΎΠ»ΡŒΠΊΠΎ цСлочислСнная константа ΠΈΠ»ΠΈ константноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ объявлСний

int A[15]; // массив ΠΈΠ· 15 цСлочислСнных элСмСнтов с ΠΈΠΌΠ΅Π½Π΅ΠΌ A

float x[3]; // массив x ΠΈΠ· 3-Ρ… элСмСнтов Ρ‚ΠΈΠΏΠ° float

ОбъявлСниС массива являСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ компилятору Π½Π° Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти для хранСния Π΅Π³ΠΎ элСмСнтов. ΠžΠ±Ρ‰Π΅Π΅ количСство Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ памяти зависит Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ Ρ‡ΠΈΡΠ»Π° элСмСнтов, Π½ΠΎ ΠΈ ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΡ‚ Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ°. НапримСр, тСкстовая строка ΠΈΠ· 1000 символов (Ρ‚ΠΈΠΏ char) Π·Π°ΠΉΠΌΠ΅Ρ‚ P = 1000*sizeof (char) = 1000 Π±Π°ΠΉΡ‚ΠΎΠ², Π° ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ количСства вСщСствСнных чисСл Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ точности (Ρ‚ΠΈΠΏ double) Π·Π°ΠΉΠΌΠ΅Ρ‚ ΡƒΠΆΠ΅ Π² Π²ΠΎΡΠ΅ΠΌΡŒ Ρ€Π°Π· большС — P = 1000*sizeof (double) = 8000 Π±Π°ΠΉΡ‚ΠΎΠ².

НумСрация элСмСнтов Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ начинаСтся с Π½ΡƒΠ»Ρ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт массива ΠΈΠΌΠ΅Π΅Ρ‚ индСкс 0, Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ — индСкс n-1, Π³Π΄Π΅ n — Ρ€Π°Π·ΠΌΠ΅Ρ€ массива. ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρƒ производится с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ массива ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ° элСмСнта Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках. НапримСр, запись «x[0] = 5.5;» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ «ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 5.5 Π½ΡƒΠ»Π΅Π²ΠΎΠΌΡƒ элСмСнту массива x».

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ΠΌ являСтся использованиС ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² for. Π‘ ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ организуСтся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ со Π²ΡΠ΅ΠΌΠΈ элСмСнтами массива, Π² Ρ‡Π°ΡΡ‚ности, поэлСмСнтный Π²Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄, поэлСмСнтныС арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Π΄Ρ€. Рассмотрим это Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Сля 10 Ρ†Π΅Π»Ρ‹Ρ… чисСл, ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΡΡ‰ΡƒΡŽ Π΅Π΅ Π½Π° ΡΠΊΡ€Π°Π½ ΠΈΡ… ΡΡƒΠΌΠΌΡƒ.

РСшСниС. Π‘ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ массив с ΠΈΠΌΠ΅Π½Π΅ΠΌ A ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 10 для хранСния Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… чисСл. Π’Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡΡƒΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ поэлСмСнтно с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»ΠΎΠ² for.

//—————- Π‘ΡƒΠΌΠΌΠ° элСмСнтов массива ——————;

#pragma hdrstop

#include

#include

#pragma argsused

int main (int argc, char* argv[])

{

int A[10]; // объявляСм массив ΠΈΠ· 10 Ρ†Π΅Π»Ρ‹Ρ…

for (int i=0; i<10; i++) // ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ Ρ†ΠΈΠΊΠ» ΠΏΠΎ i ΠΎΡ‚ 0 Π΄ΠΎ 9

{

cout << «input A[» << i << «] = «; // ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅

cin >> A[i]; // Π²Π²ΠΎΠ΄ΠΈΠΌ A[i]

}

int sum = 0; // объявляСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ

for (int i=0; i<10; i++) // ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ Ρ†ΠΈΠΊΠ»

sum = sum + A[i]; // Π² Ρ†ΠΈΠΊΠ»Π΅ суммируСм элСмСнты

cout << «nSumma: «<< sum; // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° ΡΠΊΡ€Π°Π½

getch (); // Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°

return 0;

}

//————————————————————————;

НабСритС ΠΊΠΎΠ΄ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΡΡ€Π΅Π΄Π΅ Turbo C++ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ Π΅Π΅ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Ρ… с Π΅Π΅ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ². НарисуйтС Π±Π»ΠΎΠΊ-схСму ΠΈ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹. ΠžΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅ смысл использования Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ sum Π² ΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

2. ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… C++ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌΠΈ. Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ частым являСтся использованиС Π΄Π²ΡƒΡ… — (ΠΈ Π±ΠΎΠ»Π΅Π΅) -ΠΌΠ΅Ρ€Π½Ρ‹Ρ… структур. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° — типичная структура, прСдставимая с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива; Π° 3D-Ρ‚Π΅Π½Π·ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записан ΠΊΠ°ΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив.

ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π² C++ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ «ΠΌΠ°ΡΡΠΈΠ²Π° массивов». ΠžΠ±Ρ‰ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π΅Π³ΠΎ объявлСния Ρ‚ΠΈΠΏ имя[N1][N2]…[NM];

Π—Π΄Π΅ΡΡŒ M — число индСксов (ΠΈΠ»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ) массива. Π˜Π½Π΄Π΅ΠΊΡΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΡ‚ 0 Π΄ΠΎ N1 — 1, ΠΎΡ‚ 0 Π΄ΠΎ N2 — 1, ΠΎΡ‚ 0 Π΄ΠΎ N3 — 1, …, ΠΎΡ‚ 0 Π΄ΠΎ NM — 1, соотвСтствСнно.

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, запись int G[5][4]; ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ объявлСниС Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива Ρ†Π΅Π»Ρ‹Ρ… чисСл с ΠΈΠΌΠ΅Π½Π΅ΠΌ G ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ 54. На Ρ€ΠΈΡ. справа Ρ‚Π°ΠΊΠΎΠΉ массив прСдставлСн Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π—Π΄Π΅ΡΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ индСкс являСтся Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ строки, Π²Ρ‚ΠΎΡ€ΠΎΠΉ — Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ столбца Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, с Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°ΠΌΠΈ измСнСния ΠΎΡ‚ 0 Π΄ΠΎ 4, ΠΈ ΠΎΡ‚ 0 Π΄ΠΎ 3, соотвСтствСнно.

Доступ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ производится Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΌ случаС, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡƒΡ‚Π΅ΠΌ указания ΠΈΠΌΠ΅Π½ΠΈ массива ΠΈ Π½Π°Π±ΠΎΡ€Π° индСксов Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках. НапримСр, опСрация присваивания значСния 0 послСднСму элСмСнту Π±ΡƒΠ΄Π΅Ρ‚ записана ΠΊΠ°ΠΊ G[4][3] = 0.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ for. Π‘ ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ дСйствиС с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² массива ΠΏΡƒΡ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° всСх Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ индСксов. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° ΡΠΊΡ€Π°Π½ всС элСмСнты массива G.

for (int i=0; i<5; i++) // Ρ†ΠΈΠΊΠ» ΠΏΠΎ ΡΡ‚Ρ€ΠΎΠΊΠ°ΠΌ i

{

for (int j=0; j<4; j++) // Ρ†ΠΈΠΊΠ» ΠΏΠΎ ΡΡ‚Ρ€ΠΎΠΊΠ°ΠΌ j

cout << G[i][j] << «t»; // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ G[i][j]

cout << endl; // ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку

}

Алгоритм Ρ€Π°Π±ΠΎΡ‚Ρ‹ этого Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π±Π»ΠΎΠΊ-схСмой Π—Π΄Π΅ΡΡŒ внСшний Ρ†ΠΈΠΊΠ» ΠΏΠΎ I ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π³Π°Π΅Ρ‚ всС значСния ΠΎΡ‚ 0 Π΄ΠΎ 5. ΠŸΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ i Π·Π°ΠΏΡƒΡΠΊΠ°Π΅Ρ‚ся Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Ρ†ΠΈΠΊΠ» ΠΏΠΎ j ΠΎΡ‚ 0 Π΄ΠΎ 4. Π’ Ρ‚Π΅Π»Π΅ этого Ρ†ΠΈΠΊΠ»Π° Π½Π° ΡΠΊΡ€Π°Π½ выводятся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта G[i][j] ΠΈ Π·Π½Π°ΠΊ табуляции (Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ отступ). Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Ρ†ΠΈΠΊΠ» продолТаСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Π½Ρ‹ всС значСния j, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Π° вся i-я строка. По Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»Π°, экранный курсор пСрСмСщаСтся Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку манипулятором endl, ΠΈ Π΄Π°Π»Π΅Π΅ внСшний Ρ†ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ выводя Π½Π° ΡΠΊΡ€Π°Π½ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ строки массива.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2. Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ вСщСствСнная квадратная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 44. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ элСмСнтов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΅Π΅ ΡΡ‚Ρ€ΠΎΠΊΠ΅. ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° вводится с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹.

РСшСниС. Условимся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для хранСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ массив float X[4][4]. РасчСт произвСдСния Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ согласно ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ. Π’Π²Π΅Π΄Π΅ΠΌ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ (ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, float P). Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² i-ΠΉ строкС располоТСны элСмСнты X[i][j], Π³Π΄Π΅ j ΠΌΠ΅Π½ΡΠ΅Ρ‚ся ΠΎΡ‚ 0 Π΄ΠΎ 3, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. ΠžΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ Ρ†ΠΈΠΊΠ» ΠΏΠΎ j, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅ΠΌ Π΄ΠΎΠΌΠ½ΠΎΠΆΠ°Ρ‚ΡŒ P Π½Π° X[i][j]. Π’ΠΎΠ³Π΄Π° Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° P Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ искомоС ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅. Π’Ρ‹Π²Π΅Π΄Π΅ΠΌ Π΅Π³ΠΎ Π½Π° ΡΠΊΡ€Π°Π½ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ расчСты для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строки. Для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ расчСтов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ P Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1.

//———— ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ элСмСнтов строки ————-;

#pragma hdrstop

#include

#include

#pragma argsused

int main (int argc, char* argv[])

{

float X[4][4]; // объявляСм массив 44

for (int i=0; i<4; i++)

for (int j=0; j<4; j++)

{

cout << «input X[» << i <<

" ," << j << «] = «;

cin >> X[i][j]; // Π²Π²ΠΎΠ΄ΠΈΠΌ элСмСнты ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

}

cout << «n Results: n» ;

for (int i=0; i<4; i++) // Ρ†ΠΈΠΊΠ» ΠΏΠΎ ΡΡ‚Ρ€ΠΎΠΊΠ°ΠΌ

{

float P = 1.0; // Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ пСрСмСнная

for (int j=0; j<4; j++) // Ρ†ΠΈΠΊΠ» ΠΏΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌ Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅

P = P * X[i][j]; // Π΄ΠΎΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌ P Π½Π° X[i][j]

cout << «n proizvedenie «<< i

<< «-i stroki = «<< P; // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° ΡΠΊΡ€Π°Π½

}

getch ();

return 0;

}

//————————————————————————;

НабСритС ΠΈ ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ΄ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Turbo C++. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ.

3. Π’ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ константы

Π’ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ содСрТит явныС выраТСния, Π·Π°Π΄Π°ΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ массива X. Он ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ ΠΊΠ°ΠΊ float X[4][4], Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ с ΡΠ²Π½Ρ‹ΠΌ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ размСрности, ΠΈ Π΄Π°Π»Π΅Π΅ Π²Π΅Π·Π΄Π΅ ΠΏΠΎ Ρ…ΠΎΠ΄Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ†ΠΈΡ„Ρ€Π° 4 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ явно ΠΏΡ€ΠΈ записи Ρ†ΠΈΠΊΠ»ΠΎΠ² for.

Вакая Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° программирования являСтся допустимой ΠΈ Π΄Π°ΠΆΠ΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ создаСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ трудности Π² ΠΏΠ»Π°Π½Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΏΠΎΠ΄ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ пСрСстроСна для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ². Π’ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива X Π½Π°ΠΌ придСтся ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ вСсь ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, замСняя 4 Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число.

Π­Ρ‚ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ, Ссли ввСсти Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ константы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для указания Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² массива. Π’Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ, типизированная константа ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ имя ΠΈ Ρ‚ΠΈΠΏ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΏΠΎ Ρ…ΠΎΠ΄Ρƒ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π² ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΠΈ массива.

Випизированная константа Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ объявлСна с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом const, вслСд Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ указываСтся Π΅Π΅ Ρ‚ΠΈΠΏ (int, float, double, char, ΠΈ Ρ‚. Π΄.), Π΄Π°Π»Π΅Π΅, Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π», — Π΅Π΅ ΠΈΠΌΡ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

const Ρ‚ΠΈΠΏ имя = Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅;

НапримСр, запись const int N = 4; ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ объявлСниС цСлочислСнной константы с ΠΈΠΌΠ΅Π½Π΅ΠΌ N ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 4. Π’ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ N ΠΌΠΎΠ³Π»Π° Π±Ρ‹Ρ‚ΡŒ использована ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ объявлСнии массива float X[N][N], Ρ‚Π°ΠΊ ΠΈ Π²Π΅Π·Π΄Π΅ Π΄Π°Π»Π΅Π΅ вмСсто 4. Вакая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ Π² ΡΠΈΠ»Ρƒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΉ достаточно ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ N Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ².

Випизированная константа ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ объявлСна Π² Π»ΡŽΠ±ΠΎΠΌ мСстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° своСго ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ использования. Однако Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ стилСм считаСтся объявлСниС всСх констант Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, послС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°ΠΌΠΈ #include.

4. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ элСмСнтов массива

Π’ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ значСния элСмСнтов массива задавались ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. МоТно ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΈΠ½Π°Ρ‡Π΅ ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° «=». Π­Ρ‚ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ довольно большого количСства записСй — ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ². C++ Π΄Π°Π΅Ρ‚ программисту Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½, Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ, способ. Массив ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΡ€ΠΈ объявлСнии. Для этого Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ объявлСния сразу вслСд Π·Π° ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ° элСмСнтов, ΠΈΠΌΠ΅Π½ΠΈ массива ΠΈ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², записываСтся Π·Π½Π°ΠΊ присваивания, ΠΈ Π΄Π°Π»Π΅Π΅ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках Π·Π°Π΄Π°ΡŽΡ‚ΡΡ значСния элСмСнтов Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ Ρ‚ΠΈΠΏ имя[Ρ€Π°Π·ΠΌΠ΅Ρ€N] = { Π·Π½Π°Ρ‡1, Π·Π½Π°Ρ‡2, Π·Π½Π°Ρ‡3, …, Π·Π½Π°Ρ‡N };

Π—Π°ΠΏΠΈΡΡŒ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ сразу послС размСщСния массива Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ присвоСно ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°. Если список Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках ΠΊΠΎΡ€ΠΎΡ‡Π΅, Ρ‡Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива, Ρ‚ΠΎ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ элСмСнты Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ±Π½ΡƒΠ»Π΅Π½Ρ‹.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅

float mark[5] = { 7.3, 4.0, 2.2, 12.1, 8.9 };

создаСтся массив с ΠΈΠΌΠ΅Π½Π΅ΠΌ mark, состоящий ΠΈΠ· 5 чисСл Ρ‚ΠΈΠΏΠ° float, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ значСниями 7.3, 4.0, 2.2 ΠΈ Ρ‚. Π΄. Π­Ρ‚ΠΎ эквивалСнтно ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²

float mark[5]; mark[0]=7.3; mark[1]=4.0; mark[2]=2.2 ΠΈ Ρ‚. Π΄.

ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ объявлСния. Для этого достаточно ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π² C++ - это «ΠΌΠ°ΡΡΠΈΠ² массивов», ΠΎ Ρ‡Π΅ΠΌ ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ€

int F[3][3] = { {3, 0, 2}, (1, 9, 8}, {5, 7, 4} };

Π—Π΄Π΅ΡΡŒ создаСтся Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив с ΠΈΠΌΠ΅Π½Π΅ΠΌ F ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ 33, элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ значСния F[0][0] = 3, F[0][1] = 0, F[0][2] = 2, F[1][0] = 1 ΠΈ Ρ‚. Π΄.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3. ΠŸΡƒΡΡ‚ΡŒ ΠΈ — Π΄Π²Π΅ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 33. ВрСбуСтся Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΈΡ… ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅

РСшСниС. ИскомоС ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ — это Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° 33, элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ (). Аналогично ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρƒ 1, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ суммированиС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ s ΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎ k. Для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° всСх ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΄Π²Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ Π² Π΄Ρ€ΡƒΠ³Π° Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎ i ΠΈ ΠΏΠΎ j. Π­Ρ‚ΠΈ Ρ†ΠΈΠΊΠ»Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ внСшними ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Ρ†ΠΈΠΊΠ»Ρƒ ΠΏΠΎ k.

//——————— ΠŸΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ——————-;

#pragma hdrstop

#include

#include

#pragma argsused

const int N = 3; // ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ константу N=3

int main (int argc, char* argv[])

{

float A[N][N] = { {1, 1, 1},

{2, 2, 2},

{3, 3, 3} }; // исходная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° A

float B[N][N] = { {1, 2, 3},

{1, 2, 3},

{1, 2, 3} }; // исходная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° B

float C[N][N]; // ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° произвСдСния Π‘

for (int i=0; i

{

for (int j=0; j

{

float s = 0.0; // Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ пСрСмСнная

for (int k=0; k

s += A[i][k]*B[k][j]; // добавляСм ΠΊ s Π½ΠΎΠ²ΠΎΠ΅ слаг-ΠΎΠ΅

C[i][j] = s; // записываСм s Π² C[i][j]

}

}

cout << «Results: n»; // Π΄Π°Π»Π΅Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ C Π½Π° ΡΠΊΡ€Π°Π½

for (int i=0; i

{

for (int j=0; j

cout << C[i][j] << «t» ;

cout << endl;

}

getch ();

return 0;

}

//————————————————————————;

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ