C++ за 21 день седьмое издание


int MyNumbers [5] = {34, 56, -21, 5002, 365}



Download 1,38 Mb.
bet55/437
Sana22.02.2022
Hajmi1,38 Mb.
#89455
TuriРеферат
1   ...   51   52   53   54   55   56   57   58   ...   437
Bog'liq
word1

int MyNumbers [5] = {34, 56, -21, 5002, 365};


  • 8

    :

    cout

    «

    "First

    element at index 0: " «

    MyNumbers

    [0]

    «

    endl;

    9:

    cout

    «

    "Second element at index 1: " «

    MyNumbers

    [1]

    «

    endl;

    1 0

    :

    cout

    «

    "Third element

    at

    index 2: " «

    MyNumbers

    [2]

    «

    endl;

    1 1

    :

    cout

    «

    "Fourth element at index 3: " «

    MyNumbers

    [3]

    «

    endl;

    1 2

    :

    cout

    «

    "Fifth

    element

    at

    index 4: " «

    MyNumbers

    [4]

    «

    endl;

    13:



    1. return 0;




    1. }

    76 ЗАНЯТИЕ 4. Массивы и строки




    Результат


    First element at index 0: 34


    Second element at index 1: 56


    Third element at index 2: -21


    Fourth element at index 3: 5002


    Fifth element at index 4: 365


    Анализ



    1. строке 6 объявляется массив из пяти целых чисел с исходными значениями, опре­ деленными для каждого из них. Последующие строки просто отображают целые числа, используя оператор c o u t и переменную типа массива MyNumbers с соответствующим ин­ дексом.



    ПРИМЕЧАНИЕ Чтобы вы лучше ознакомились с концепцией отсчитываемых от нуля индексов,

    используемых для доступа к элементам массива, с листинга 4.1 строки кода


    нумеруются начиная с нуля, а не с единицы.


    Изменение хранимых в массиве данных



    1. коде предыдущего листинга пользовательские данные не вводились в массив. Син­ таксис присвоения целого числа элементу в этом массиве очень похож на присвоение зна­ чения целочисленной переменной.

    Например, присвоение значения 2011 целочисленной переменной выглядит так:




    int AnlntegerValue;


    AnlntegerValue = 2011;

    Присвоение значения 2011 четвертому элементу в рассматриваемом массиве выглядит так:




    MyNumbers [3] = 2011; // Присвоение 2011 четвертому элементу

    Листинг 4.2 демонстрирует использование констант в объявлении длины массива, а так­ же присвоение значений отдельным элементам массива во время выполнения программы.


    ЛИСТИНГ 4.2. Присвоение значений элементам массива____________________________________





    1. #include




    1. using namespace std;

    2 :

    1. int main()




    1. {

    2. const int ARRAY_LENGTH = 5;

    6 :

    1. // Массив из 5 целых чисел, инициализированных нулями




    1. int MyNumbers [ARRAY_LENGTH] = {0};



    9:



    1. cout « "Enter index of the element to be changed: ";




    1. int nElementlndex = 0;




    1. cin » nElementlndex;



    13:


    14:. cout « "Enter new value: ";


    15: cin » MyNumbers [nElementlndex];



    16:

    Что такое массив

    77




    1. cout « "First element at index 0: " « MyNumbers [0] « endl;




    1. cout « "Second element at index 1: " « MyNumbers [1] « endl;




    1. cout « "Third element at index 2: " « MyNumbers [2] << endl;




    1. cout « "Fourth element at index 3: " « MyNumbers [3] « endl;



    21: cout « "Fifth element at index 4: " « MyNumbers [4] « endl;
    2 2 :

    1. return 0;




    1. }



    Результат


    Enter index of the element to be changed: 2


    Enter new value: 2011


    First element at index 0: 0


    Second element at index 1: 0


    Third element at index 2: 2011


    Fourth element at index 3: 0


    Fifth element at index 4: 0


    Анализ

    Синтаксис объявления массива в строке 8 использует константу c o n s t i n t e g e r ARRAY LENGTH, инициализированную предварительно значением пять. Поскольку это статический массив, его длина фиксируется во время компиляции. Компилятор заменяет константу ARRAY LENGTH значением 5 и компилирует код, полагая, что М уАггау — это


    целочисленный массив, содержащий пять элементов. В строках 10-12 пользователя спра­ шивают, какой элемент массива он хочет изменить, а введенный индекс сохраняется в целочисленной переменной E le m e n tln d e x . Это значение используется в строке 14 для изменения содержимого массива. Вывод демонстрирует, что изменился элемент по индек­ су 2, а фактически это был третий элемент массива, поскольку индексы отсчитываются от нуля. Вы должны привыкнуть к этому.





    ПРИМЕЧАНИЕ
    Многие новички в программировании на языке C++ присваивают значение пятому элементу массива из пяти целых чисел по индексу пять. Обратите вни­ мание: это уже за пределами массива, и откомпилированный код попытается обратиться к шестому элементу массива, состоящему из пяти элементов.

    Этот вид ошибки вызывается ошибкой поста охранения (fence-post error). Дан­ ное название происходит из того факта, что количество постов для построения охранения всегда на один больше, чем количество охраняемых участков.





    ВНИМАНИЕ!
    В листинге 4.2 отсутствует нечто фундаментальное: проверка введенного пользователем индекса на соответствие границам массива. Фактически пред­ ыдущая программа должна проверять, находится ли значение переменной nElementindex в пределах от 0 до 4, и отбрасывать все остальные значения. Отсутствие этой проверки позволяет пользователю присвоить значение вне границ массива. Потенциально это может привести к нарушению работы при­ ложения, а в самом плохом случае и операционной системы.

    Более подробная информация о проверках приведена на занятии 6, "Ветвление процесса выполнения программ”.



    1. ЗАНЯТИЕ 4. Массивы и строки


    Download 1,38 Mb.

    Do'stlaringiz bilan baham:
  • 1   ...   51   52   53   54   55   56   57   58   ...   437




    Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
    ma'muriyatiga murojaat qiling

    kiriting | ro'yxatdan o'tish
        Bosh sahifa
    юртда тантана
    Боғда битган
    Бугун юртда
    Эшитганлар жилманглар
    Эшитмадим деманглар
    битган бодомлар
    Yangiariq tumani
    qitish marakazi
    Raqamli texnologiyalar
    ilishida muhokamadan
    tasdiqqa tavsiya
    tavsiya etilgan
    iqtisodiyot kafedrasi
    steiermarkischen landesregierung
    asarlaringizni yuboring
    o'zingizning asarlaringizni
    Iltimos faqat
    faqat o'zingizning
    steierm rkischen
    landesregierung fachabteilung
    rkischen landesregierung
    hamshira loyihasi
    loyihasi mavsum
    faolyatining oqibatlari
    asosiy adabiyotlar
    fakulteti ahborot
    ahborot havfsizligi
    havfsizligi kafedrasi
    fanidan bo’yicha
    fakulteti iqtisodiyot
    boshqaruv fakulteti
    chiqarishda boshqaruv
    ishlab chiqarishda
    iqtisodiyot fakultet
    multiservis tarmoqlari
    fanidan asosiy
    Uzbek fanidan
    mavzulari potok
    asosidagi multiservis
    'aliyyil a'ziym
    billahil 'aliyyil
    illaa billahil
    quvvata illaa
    falah' deganida
    Kompyuter savodxonligi
    bo’yicha mustaqil
    'alal falah'
    Hayya 'alal
    'alas soloh
    Hayya 'alas
    mavsum boyicha


    yuklab olish