Hirdetmény egydimenziós tömbök
Array (tömb) programozás - rendezett halmaza azonos elemeket. A tömbök széles körben használják tárolására és feldolgozására információt homogén, például asztalok, vektorok, mátrixok, stb ..
A tömb mindegyik eleme egyedileg definiált egy neve és index. tömb nevét (ID) alapján választják ki, hogy ugyanazokat a szabályokat a változók. Az indexek meghatározza a helyét az elem a tömbben. Például, a vektor elemek egy index - a szám a sorrendben; elemei a matricát és táblázatok a két index: az első határozza meg a sor számát, a második - az oszlop számát. A számú tagolás határozza tömb méreteit. Például, olyan vektorokat, programok - ez az egydimenziós tömbök, mátrix - kétdimenziós. Eddig csak egydimenziós tömböket kell tekinteni.
Dimenziós tömb nyilvánítják a programban az alábbiak szerint:
data_type array_name [razmer_massiva];
--_ a neve a tömb - a tömb ID. DataType definiálja az elemet típus a bejelentett tömb. Razmer_massiva zárójelbe beállítja a tömb elemeinek számát. Ellentétben Pascal, C nem tesztelték túlmutató tömb, hogy elkerüljék a hibákat a programban, meg kell, hogy kövesse a leírt méretekkel tömbök.
Array neve [znachenie_indeksa]
Az index értékek közötti tartományban nullától értéket eggyel kevesebb, mint a megadott méret a leírásában, mert a nyelv C ++ számozás indexek mindig nulláról indul.
kijelenti nevű tömbben A, amely 10 egészek. A [0] - az érték az első elem A [1] - Másodszor, A [9] - az utóbbi.
Íme néhány példa a nyilatkozatok tömbök:
int fokozat [125];
kettős vektor [1500];
Az első tömb 20 tartalmaz N szimbólumokat. Kapcsolatfelvétel a tömb elemek lehetnek N [0], N [1]. N [19].
A második tömb tartalmaz 125 fokozat egész számok. Kapcsolatfelvétel a tömb elemek lehetnek fokozat [0], fokozat [1]. fokozat [124].
Harmadik tömb 30 tartalmaz egy tömege valós számok. Kapcsolatfelvétel a tömb elemei lehetnek tömeg [0], tömege [1]. tömege [1499].
Az utolsó példában felsorolt csak az első három elem, illetve a többi vége előtt a tömb lesz egyenlő 0.
Példák problémák sorozatát alkalmazó
Probléma 1. Írja 8 dimenziós tömb elemeinek valós Memo és kiszámítja az összeg az összes tömb elemeit.
Példa formák, az eredményeket az 1. ábrán formájában komponensek található Memo1, Edit1, Címke 1, Button1, Button2, Button3. Gombok „Tisztítás” és a „Kilépés” nem látja, mert a kódot már felhasználták az előző témakörökben.

1. ábra - Alak Program
void fastcall TForm1 :: Button1Click (TObject * Sender) // «összeg” gombot
A (int i = 0; i <8; i++) // создаем цикл для считывания каждого элемента массива. Еще //один вариант записи цикла такой: for (int i=0; i<=7; i++). На выбор один из двух //вариантов
összege + = A [i];> // hozzá összege i-edik eleme az a tömb, és befejezése a ciklus testet
Edit1-> Text = FormatFloat ( "0.000", összeg);> // kiírja az összeget
2. Feladat létrehozása dimenziós tömb 15 elemek által képletű Ai = lg (i) + tg (2 i). ahol i = 1, 2, 15 és azokat alakítani, és meghatározzuk azt a minimális elem és annak sorozatszámát.
Reakcióvázlat algoritmus program és egy példa a forma az eredmények a bemutatott formában a 2., 3. és 4. A formában lévő részegységek Memo1, Edit1, Button1, Button2.

2. ábra - Alak Program
úszó egy [15]; int i; // állapítsa meg a tömböt, és az index elemében. Hirdette, hogy a gombok
void fastcall TForm1 :: Button1Click (TObject * Sender) // «vektor számítás” gomb
for (i = 0; i <15; i++) // цикл для создания массива
Memo1->-vonalak> hozzáadása (FormatFloat ( "0.000", A [i]));> // levezetni (add) megszámoltuk // i-edik eleme a tömbben Memo
> // vége a funkció gombokat
void fastcall TForm1 :: Button2Click (TObject * Sender) // gomb "Min Element"
int ind = 0; // hogy egy változót az index, és hozzá egy index az első elem
for (i = 1; i <15; i++) // создаем цикл для нахождения мин. элемента, но уже не с 0, а с 1, //т.к. значение первого элемента уже хранится в переменной min
Edit1-> Text = FormatFloat ( "0.000", min) + "index -" + IntToStr (IND + 1);> // // megjeleníti minimális eleme Edith együtt indexe. Az is lehetséges, hogy egy olyan index // külön Edith. Levezetjük nemcsak ind, ind + 1, és mert azt látjuk, az index min. elem, de ez az index ovsky C ++ és a valós index további 1.

3. ábra - vázlatos a „Számítási vektor” gombra

4. ábra - vázlata „Min Element” gombot
Probléma 3. Adjon meg egy tömb N egész szám feljegyzés. Minden a páratlan elemek (nem érdemben index.) Helyett az egységek, és még elemek - nullák.
Reakcióvázlat program algoritmus van az 5. ábrán látható.
void fastcall TForm1 :: Button1Click (TObject * Sender)
int N = StrToInt (Edit1-> Text); // beállítja a méret a tömb (N<=50)
A (int i = 0; i ha a (V [i]% 2 == 0) // beállított állapotban paritást //, ha az i-dik eleme - még, ez egyenlő 0 mást // egyébként i-edik elem megegyezik 1 Memo2->-vonalak> Add (IntToStr (V [i]));> // vezessünk le már helyébe egy új elem Memo Levezetni a megváltozott elemeket a feljegyzés lehet létrehozni egy külön hurok kimenete (ami a legtöbb feladatot tenni), de itt azonnal levezetni a módosított értékeket a feljegyzés egy ciklusban, mivel az összes működési lépéseket a program készül az egyes tömb elem.
5. ábra - Diagram a program
4. feladat létrehozása egy sor N elemek (30) által a VI általános képletű = 3 cos (4i) + e -2i és kiadásához őket, hogy a projekt formájában Memo komponenst. Keresés:
1) A terméket a nem nulla vektor elemek;
2) a több negatív elemei a vektor;
3) cserélni első elem vektorba minimális
A célkitűzések megvalósítása érdekében, hogy dolgozzon ki egy külön gomb kiszámításához egy adott feladatot. projekt adatlap az eredményeket a rendszer és algoritmusok összes gomb ábrán mutatjuk be 6-8.

6. ábra - Alak Program
float v [30]; int i, N; // létre globális változók (UP) gombot az összes gomb // jönne ezeket a változókat
void fastcall TForm1 :: Button1Click (TObject * Sender) // «vektor” gombot
N = StrToInt (Edit1-> Text); // Írja be a tömb elemeinek számát
for (i = 0; i Memo1->-vonalak> hozzáadása (FormatFloat ( "0.000", v [i])); // kimenet alkotnak void fastcall TForm1 :: Button2Click (TObject * Sender) // gomb "" A munka nem nulla elemek // " for (i = 0; i > // P felhalmozódnak a termék nem nulla v [i] Edit2-> Text = FloatToStr (P); // megjeleníti az eredményt void fastcall TForm1 :: Button3Click (TObject * Sender) // gomb „elemek száma <0» for (i = 0; i > // ha a negatív elem, k értékét megnöveljük 1- Edit3-> Text = IntToStr (Kol); // megjeleníti az eredményt void fastcall TForm1 :: Button4Click (TObject * Sender) // «átrendezése” gombot int ind = 0; // És az index nulla for (i = 1; i min = v [i]; >> // és annak értékét. = Temp v [0]; // temp tároljuk változó értéke az első elem v [0] = min; // A helyszínen az első elem lesz a legkisebb elem v [ind] = temp; // A megfelelő minimális értéke az első elem (temp üzletek) for (i = 0; i 7. ábra - sémája a „Vector” gombra 8. ábra - rendszere gombok: a) „A munka ...” b) „Az összeg a ...” 1. Adja meg a tömb 11 egészek keresztül Memo. Keresse az átlag az összes elem. 2. Készítsen egy sor 10 elemek a következő képlettel: Bi =. Keresse meg a maximális elem. 3. Adjon meg egy tömb N egészek keresztül feljegyzés. Keresse az elemek száma, amelyek nagyobbak, mint 3. 4. Írja be a tömb a valós számok R keresztül feljegyzés. Ha néhány tömb elemeinek 0 (feltételezve, hogy nem lehet csak egy nulla elemet, vagy egyáltalán nem), hogy megjelenjen egy üzenet:”... Az elem index értéke 0" . Ellenkező esetben megjelenik egy üzenet: „A tömb elemei nem nulla!”. 5 *. Készítsen egy sor 25 elemek a következő képlet szerint: fi =. Keresse meg a terméket a páratlan elemek (az Index, nem érték). Cserélje a maximális tömb elem a számtani átlaga valamennyi elemét, és hogy az eredményül kapott tömböt egy másik feljegyzés. Megjegyzés. Páratlan elem - egy elem a matematikai indexek i = 1,3,5,7 ... 25. És igen, akkor érkezik erő)