Обявяване на едномерни
Array (масив) програмиране - подреден набор от еднакви елементи. Решетките са широко използвани за съхранение и обработка на информация хомогенна, например, маси, вектори, матрици и др ..
Всеки спектър елемент е еднозначно определена от име и индекс. име масив (ID) са избрани в съответствие със същите правила като за променливи. Индексите определят местоположението на елемента в масива. Например, векторни елементи имат един индекс - броя на реда; елементи на матриците и таблиците са с по два показателя: първата се посочва номера на реда, а втората - номера на колоната. Броят на индекси определя размери масив. Например, векторите в програми - това едномерни, матрица - двумерен. Засега ще бъдат разглеждани само едномерни.
Едномерен масив е обявено в програмата, както следва:
DATA_TYPE array_name [razmer_massiva];
--_ името на масива - е ID на масива. Типът данни определя типа на елемента е обявен масив. Razmer_massiva скоби определя броя на елементите на масива. За разлика от Pascal, C не е тестван в надхвърляне на масива, така че да се избегнат грешки в програмата, трябва да следвате размерите описани масиви.
име Array [znachenie_indeksa]
Стойностите му трябва да са в диапазона от нула до стойност, един по-малък от размера, посочен в описанието му, защото на езика C ++ номериране индекси винаги започват от нулата.
декларира масив наречен А, съдържаща 10 числа. А [0] - стойността на първия елемент А [1] - Второ, [9] - последната.
Ето някои примери за декларациите за масиви:
INT класове [125];
двойно вектор [1500];
Първият масив 20 съдържа N символи. Връзка елементи масив може да бъде N [0], N [1]. N [19].
Вторият масив съдържа 125 класове числа. Връзка елементи масив може да бъде класове [0], класове [1]. класове [124].
Трето масив 30 се състои от маса на реалните числа. Връзка елементи масив може да бъде маса [0], маса [1]. маса [1499].
В последния пример изброени само първите три елемента, съответно, а останалите до края на масива ще бъде равна на 0.
Примери на проблеми с използване на масиви
Проблем 1. Въведете 8-мерен масив от елементи в реално Memo и да се изчисли сумата на всички елементи на масива.
Пример форми с резултатите, показани на Фигура 1. В компоненти форма разположени Memo1, Edit1, етикет 1, Button1, BUTTON2, Button3. Бутоните "почистване" и "Изход" не виждат, тъй като техният код вече е бил използван в предишните теми.
Фигура 1 - Форма програма
бутон невалидни fastcall TForm1 :: Button1Click (TObject * Sender) // «сума"
за (INT I = 0; и <8; i++) // создаем цикл для считывания каждого элемента массива. Еще //один вариант записи цикла такой: for (int i=0; i<=7; i++). На выбор один из двух //вариантов
сума + = A [Ь];> // добавят към сумата от I-ия елемент на масива, и завършени тялото цикъл
Edit1-> Текст = FormatFloat ( "0,000", сума);> // извежда сумата
2. Създаване на Задача двумерен масив от 15 елемента от формула Ai = LG (I) + TG (2 I). където I = 1, 2, 15 и да ги доведе до оформянето и определяне на минималния елемент и неговия сериен номер.
програма алгоритъм Схема и пример на формата с резултатите от формата, показани на фигури 2, 3 и 4. В компоненти форма разположени Memo1, Edit1, Button1, BUTTON2.
Фигура 2 - Форма програма
поплавък А [15]; Int I; // декларира масива и индексът на нейните елементи. Прогласена бутоните
бутон невалидни fastcall TForm1 :: Button1Click (TObject * Sender) // «изчисляване вектор"
за (I = 0; и <15; i++) // цикл для создания массива
Memo1-> Lines-> Добавяне (FormatFloat ( "0,000", А [Ь]));> // извлече (добавяне) Брой // I-ия елемент в Memo масив
> // край на функционалните бутони
нищожен fastcall TForm1 :: Button2Click (TObject * Sender) // Бутон "Мин Element"
Int инд = 0; // декларира променлива за индекса и определя индекс на първия елемент
за (I = 1; и <15; i++) // создаем цикл для нахождения мин. элемента, но уже не с 0, а с 1, //т.к. значение первого элемента уже хранится в переменной min
Edit1-> Текст = FormatFloat ( "0,000", мин) + "индекс -" + IntToStr (инд + 1);> // // показва минимално елемент Edith заедно с индекс. Също така е възможно да се конструира индекс на // отделен Edith. Ние не се получи точно инд, инд + 1 и защото ние намерите индекс мин. елемент, но този индекс ovsky C ++ и недвижими индекс за 1 повече.
Фигура 3 - схематичен за бутона "Изчисление вектор"
Фигура 4 - схематичен за бутона "Мин елемент"
Проблем 3. Въведете масив от N цели числа на бележка. Всички странни елементи (. Не по значение индекс) за замяна на единици и дори елементи - нули.
Схема програма алгоритъм е показано на фигура 5.
нищожен fastcall TForm1 :: Button1Click (TObject * Sender)
Int N = StrToInt (Edit1-> текст); // определя размера на масива (N<=50)
за (INT I = 0; и ако (V [Ь]% 2 == 0) // избран състояние паритет // ако I-тия елемент - дори, е равно на 0 друго // иначе-ти елемент е равно на 1 Memo2-> Lines-> Добавяне (IntToStr (V [Ь]));> // извличат вече заменен с нов елемент бележка За да се извлече променените елементи в бележката може да създаде отделна линия за резултатите от дейността си (което в повечето задачи направи), но тук може незабавно да изведем променени стойности в бележката в един цикъл, тъй като всички етапи на работата на програмата са направени за всеки елемент на масива.
Фигура 5 - схема на програмата
Задача 4. Създаване на масив от N елементи (30) с формула VI = 3 COS (4i) + д -2К и ги извежда на проекта в компонент форма бележка. Намерете:
1) продуктът от нула във векторни елементи;
2) броят на отрицателните елементи на вектора;
3) сменяте първи елемент вектор с минимално
За постигане на целите за развитие на отделен бутон за изчисляване на конкретна задача. форма на проекта с резултатите от схемата и алгоритми за всички бутони са показани на фигури от 6 - 8.
Фигура 6 - Форма програма
поплавък V [30]; Int I, N; // създаване на глобални променливи (UP бутон) до всички бутони // биха могли да използват тези променливи
// бутон невалидни fastcall TForm1 :: Button1Click (TObject * Sender) «Vector"
N = StrToInt (Edit1-> текст); // въведете броя на елементите масив
за (I = 0; и Memo1-> Lines-> Добавяне (FormatFloat ( "0,000", о [Ь])); // изход за образуване нищожен fastcall TForm1 :: Button2Click (TObject * Sender) // Бутон "" Работата на ненулевите елементи // " за (I = 0; и > // P натрупват в продукта от нула об [Ь] Edit2-> Текст = FloatToStr (Р); // показване на резултата нищожен fastcall TForm1 :: Button3Click (TObject * Sender) // Бутон "редица елементи <0» за (I = 0; и > // ако отрицателен елемент, к се увеличава с 1 Edit3-> Текст = IntToStr (кол); // показване на резултата бутон невалидни fastcall TForm1 :: Button4Click (TObject * Sender) // «Пренареждане" Int инд = 0; // И индекса нула за (I = 1; и мин = о [Ь]; >> // и неговата стойност. = Темп об [0]; // температура се съхранява в променлива стойност на първия елемент о [0] = мин; // На мястото на първия елемент ще бъде минимален елемент о [инд] = температура; // минимум подходяща стойност на първия елемент (временни магазини) за (I = 0; и Фигура 7 - схема на бутона "Вектор" Фигура 8 - схема за бутони: а) "Работата ..." б) "Размерът на ..." 1. Въведете масив от 11 числа чрез Memo. Намерете средната стойност на всички елементи. 2. Създаване на масив от 10 елемента с формулата: Bi =. Намерете максималния елемент. 3. Въведете масив от N цели числа, чрез бележка. Намерете броя на елементите, които са по-големи от 3. 4. Въведете масив от реални числа R чрез бележка. Ако някои от елементите на масив е 0 (ако приемем, че може да има само един елемент нула или изобщо) за показване на съобщение: "... индекс елемент е равно на 0". В противен случай, се появи съобщение: "Масивът на елементите не е нула!". 5 *. Създаване на масив от 25 елементи съгласно формулата: Fi =. Намери продукт на нечетни елементи (индекса, не по стойност). Замяна на максималния елемент масив на средната аритметична стойност на всички елементи и да доведе в резултат на масив в друг бележка. Забележка. Odd елемент - елемент на математически индекси I = 1,3,5,7 ... 25. И да ви ще пристигне със сила)