Anunțarea de matrice unidimensionale
Array (matrice) de programare - un set ordonat de elemente identice. Matricele sunt utilizate pe scară largă pentru stocarea și prelucrarea informațiilor omogene, de exemplu, tabele, vectori, matrice, etc ..
Fiecare element de matrice este definit în mod unic printr-un nume și index. nume matrice (ID) sunt selectate în conformitate cu aceleași reguli ca și variabile. Indicii determina locația elementului în matrice. De exemplu, elementele vectoriale au un index - numărul ordinului; elemente de matrici și tabele sunt doi indici: primul specifică numărul liniei, iar al doilea - numărul coloanei. Numărul de indici specifică dimensiuni matrice. De exemplu, vectorii în programe - această matrice unidimensională, matrice - bi-dimensional. Până în prezent, vor fi luate în considerare matrici doar o singură dimensiune.
matrice dimensional este declarat în program, după cum urmează:
data_type array_name [razmer_massiva];
--_ numele array - este ID-matrice. DataType definește tipul de element fiind matrice declarată. Razmer_massiva serializate setează numărul de elemente de matrice. Spre deosebire de Pascal, C nu este testat în a merge dincolo de matrice, astfel încât să se evite erorile din program, trebuie să respecte dimensiunile descrise matrici.
Denumirea Array [znachenie_indeksa]
Valorile indicelui trebuie să se situeze în intervalul de la zero la o valoare de o mai mică decât dimensiunea specificată în descrierea sa, deoarece limbajul C ++ numerotarea indicilor începe întotdeauna de la zero.
declară o matrice numită A, care conține 10 numere întregi. A [0] - valoarea primului element A [1] - În al doilea rând, A [9] - acesta din urmă.
Iată câteva exemple de declarații de matrice:
clasele int [125];
vector dublu [1500];
Prima matrice 20 cuprinde N simboluri. Contactarea elementele de matrice pot fi N [0], N [1]. N [19].
A doua matrice conține 125 de clasele întregi. Contactarea elementele de matrice pot fi note [0], note [1]. note [124].
A treia matrice 30 cuprinde o masă de numere reale. Contactarea elementele de matrice pot fi masa [0], masa [1]. masa [1499].
În ultimul exemplu enumerat doar primele trei elemente, respectiv, restul înainte de sfârșitul matrice va fi egal cu 0.
Exemple de probleme cu ajutorul arrays
Problema 1. Introduceți matrice de 8-dimensională de elemente în memo reale și se calculează suma tuturor elementelor de matrice.
Formele EXEMPLU cu rezultatele prezentate în figura 1. În componentele formei de localizate Memo1, edit1, Label 1, Button1, Button2, Button3. Butoanele „curatare“ si „Logout“ nu văd, deoarece codul lor a fost deja utilizat în subiectele anterioare.
Figura 1 - Programul Forma
void fastcall TForm1 :: Button1Click (TObject * Sender) // «Suma pe butonul“
pentru (int i = 0; i <8; i++) // создаем цикл для считывания каждого элемента массива. Еще //один вариант записи цикла такой: for (int i=0; i<=7; i++). На выбор один из двух //вариантов
sum + = A [i];> // adăugați la suma elementului i-lea de matrice, și completarea corpului ciclului
Edit1-> Text = FormatFloat ( "0.000", suma);> // scoate suma
2. Crearea unui tablou de sarcini tridimensionala a 15 elemente prin formula Ai = lg (i) + tg (2 i). unde i = 1, 2, 15 și să le aducă în formă și a determina elementul minim și numărul de serie.
program de algoritm Schema și un exemplu de formular cu rezultatele formularului prezentate în Figurile 2, 3 și 4. În componentele formei de localizate Memo1, edit1, Button1, Button2.
Figura 2 - Programul Forma
float A [15]; int i; // declara matrice și indicele elementelor sale. Proclamat la butoanele
void fastcall TForm1 :: Button1Click (TObject * Sender) // calcul vectorial «butonul“
pentru (i = 0; i <15; i++) // цикл для создания массива
Memo1-> Lines-> Add (FormatFloat ( "0.000", A [i]));> // deriva (add) numărat // elementul i-lea în Memo matrice
> // sfârșitul butoanelor de funcții
void fastcall TForm1 :: Button2Click (TObject * Sender) // Buton "Min Element"
int ind = 0; // declara o variabilă pentru index și îi atribuie un indice al primului element
pentru (i = 1; i <15; i++) // создаем цикл для нахождения мин. элемента, но уже не с 0, а с 1, //т.к. значение первого элемента уже хранится в переменной min
Edit1-> Text = FormatFloat ( "0.000", min) + "index -" + IntToStr (ind + 1);> // // afișa elementul minimal Edith împreună cu indexul său. Este de asemenea posibil de a construi un index // separat Edith. Noi nu derivă doar ind, ind + 1 și pentru că se află indicele min. Element, dar acest indice ovsky C ++ și indicele real, timp de 1 mai.
Figura 3 - schematică pentru butonul „vector de calcul“
Figura 4 - schematică pentru butonul „Min Element“
Problema 3. Introduceți o serie de numere întregi N de memo. Toate elementele impare (. Nu semnificativ indicele) Pentru a înlocui unitățile, și chiar elemente - zerouri.
Algoritmul programului Schema este prezentată în figura 5.
void fastcall TForm1 :: Button1Click (TObject * Sender)
int N = StrToInt (Edit1-> Text); // setează dimensiunea matrice (N<=50)
pentru (int i = 0; i if (V [i]% 2 == 0) // set condiție de paritate // dacă elementul i-lea - chiar, este egal cu 0 // altceva element de altfel i-lea este egal cu 1 Memo2-> Lines-> Add (IntToStr (V [i]));> // extragem deja înlocuit cu un nou element de memo Pentru a obține elementele modificate în memoria ar putea crea o buclă separată pentru capacitatea de producție (care, în cele mai multe sarcini de făcut), dar aici se poate deduce imediat valorile modificate în memoria într-un singur ciclu, deoarece toate etapele de funcționare ale programului sunt făcute pentru fiecare element de matrice.
Figura 5 - Diagrama programului
Sarcina 4. Crearea unui vector de N elemente (30) cu formula vi = 3 cos (4i) + e -2i și de a le transmite la proiect în componenta sub formă memo. Caută:
1) produsul elementelor vectoriale non zero;
2) numărul elementelor negative ale vectorului;
3) swap-vector prim element cu minim
Pentru a atinge obiectivele de a dezvolta un buton separat pentru a calcula o anumită sarcină. forma de proiect cu rezultatele schemei și algoritmi pentru toate butoanele sunt prezentate în Figurile 6 - 8.
Figura 6 - Programul Forma
float v [30]; int i, N; // crearea unor variabile globale (butonul UP) la toate butoanele // ar putea folosi aceste variabile
Butonul void fastcall TForm1 :: Button1Click (TObject * Sender) // «Vector“
N = StrToInt (Edit1-> Text); // Introduceți numărul de elemente de matrice
pentru (i = 0; i Memo1-> Lines-> Add (FormatFloat ( "0.000", v [i])); // de ieșire pentru a forma void fastcall TForm1 :: Button2Click (TObject * Sender) // Butonul "" Lucrarea de elemente de zero // " pentru (i = 0; i > // P se acumulează în produsul de v nenul [i] Edit2-> Text = FloatToStr (P); // Afișați rezultatul void fastcall TForm1 :: Button3Click (TObject * Sender) // Buton „număr de elemente <0» pentru (i = 0; i > // dacă elementul negativ, k este incrementat cu 1 Edit3-> Text = IntToStr (KOL); // Afișați rezultatul void fastcall TForm1 :: Button4Click (TObject * Sender) // «Rearanjarea butonul“ int ind = 0; // Și indicele de zero pentru (i = 1; i min = v [i]; >> // și valoarea sa. = Temp v [0]; // temp este stocată într-o valoare variabilă a primului element v [0] = min; // La locul primului element va fi elementul minim v [ind] = temp; // O valoare minimă adecvată a primului element (magazine temp) pentru (i = 0; i Figura 7 - Schema pentru butonul „Vector“ Figura 8 - Schema de butoane: a) „Lucrarea ...“ b) „Suma de ...“ 1. Introduceți o serie de 11 numere întregi prin Memo. Găsiți media tuturor elementelor. 2. Crearea unui tablou de 10 elemente prin formula: Bi =. Găsiți elementul maxim. 3. Introduceți o serie de numere întregi N prin memo. Găsiți numărul de elemente care sunt mai mari decât 3. 4. Introduceți o serie de numere reale R prin notă. Dacă unele dintre elementele de matrice este 0 (presupunând că nu poate exista decât un singur element de zero, sau deloc) pentru a afișa un mesaj:“... Indicele element este egal cu 0" . În caz contrar, afișează un mesaj: „Șirul de elemente nu este zero!“. 5 *. Creați o matrice de 25 de elemente conform formulei: fi =. Găsiți produsul elementelor impare (index, nu de valoare). Înlocuiți elementul maxim matrice pe media aritmetică a tuturor elementelor și să aducă matrice care rezultă într-o altă notă. Notă. Element ciudat - un element al indicilor matematice i = 1,3,5,7 ... 25. Și da, vei ajunge cu forța)