Delphi для начинающих. Урок 10. Циклы. Работа с массивами

  • Автор темы HHIDE_DUMP
  • Дата начала
  • Просмотры 605
  • На форуме работает ручное одобрение пользователей. Это значит, что, если Ваша причина регистрации не соответствует тематике форума, а также Вы используете временную почту, Ваша учётная запись будет отклонена без возможности повторной регистрации. В дальнейшем - пожизненная блокировка обоих аккаунтов за создание мультиаккаунта.
  • Мы обновили Tor зеркало до v3!
    Для входа используйте следующий url: darkv3nw2...bzad.onion/
  • Мы вновь вернули telegram чат форуму, вступайте, общайтесь, задавайте любые вопросы как администрации, так и пользователям!
    Ссылка: https://t.me/chat_dark_time

HHIDE_DUMP

Гость
H

HHIDE_DUMP

Гость
В этом уроке я покажу вам способы работы с массивами и обработки их элементов.

Как я уже говорил в предыдущих уроках — чтобы хорошо понять и запомнить основные принципы программирования, лучше всего изучить ряд примеров, чем пытаться разобраться в теоретическом материале. Поэтому в этом уроке я не буду нагружать вас теорией, а сразу перейду к примерам, в которых постараюсь максимально подробно все прокомментировать.

Для обработки нескольких элементов массива, программисты очень часто используют циклы. Циклы позволяют совершать ряд однотипных действий или операций. В языке программирования Pascal/Delphi существует всего 3 вида циклов: for, while, repeat. Их работу мы и разберем в следующем примере:

Пусть массив содержит 100 целочисленных переменных integer. Объявление такого массива в разделе var будет выглядеть следующим образом:

1 var a: array [0..99] of integer;

Требуется посчитать кол-во элементов массива, значение которых больше 10.

Рассмотрим реализацию поставленной задачи, используя существующие виды циклов.

Цикл for:

1 var i,n:integer;
2 begin
3 n:=0;
4 for i:=0 to 99 do
5 if a>10 then inc(n);
6 end;

Цикл for использует для своей работы переменную i типа integer. «for i:=0 to 99 do» означает, что в первой итерации цикла (сначала) i присвоится «0», а затем i будет увеличиваться с каждой итерацией цикла на 1 и, когда достигнет 99, после прохождения последней итерации, цикл закончится. Содержимое цикла идет либо после ключевого слова «do» и может указываться между ключевыми словами «begin» и «end». Внутри цикла мы проверяем, является i-ый элемент в массиве a большим 10. Если да, то увеличиваем показатель n на единицу. Перед циклом n нужно обнулить, т.е. присвоить нулю, чтобы счет начинался с нуля. Если необходимо, чтобы итерации в цикле шли в обратном порядке (от 99 до 0), то цикл приобретет следующий вид:

1 for i:=99 downto 0 do
2 if a>10 then inc(n);
3 end;

Цикл While:

1 n:=0;
2 i:=0;
3 while i<100 do begin
4 if a>10 then inc(n);
5 inc(i);
6 end;

В этом цикле мы вручную увеличиваем счетчик итераций i, и пока i<100 цикл работает. Перед циклом следует вручную присвоить начальный показатель для счетчика итераций i. Цикл Repeat:

1 n:=0;
2 i:=0;
3 repeat
4 if a>10 then inc(n);
5 inc(i);
6 until i=99;

Цикл repeat представляет из себя цикл с постусловием, т.е. цикл закончится, когда выполниться постусловие, указанное после until, после прохождения последней итерации.

Теперь давайте напишем небольшой пример заполнения массива целочисленных элементов случайными числами.

1 var a: array [0..99] of integer;
2 i: integer;
3 begin
4 randomize; // инициализация генератора чисел
5 for i:=0 to 99 do begin
6 a:=random(100); // присваиваем элементу массива случайное целочисленное число (от 0 до 99)
7 end;
8 end;
 

О нас

  • Наше сообщество существует уже много лет и гордится тем, что предлагает непредвзятое, критическое обсуждение различных тем среди людей разных слоев общества. Мы работаем каждый день, чтобы убедиться, что наше сообщество является одним из лучших.

    Dark-Time 2015 - 2022

    При поддержке: XenForo.Info

Быстрая навигация

Меню пользователя