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;
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;
3 end;
Цикл While:
1 n:=0;
2 i:=0;
3 while i<100 do begin
4 if a>10 then inc;
5 inc(i);
6 end;
В этом цикле мы вручную увеличиваем счетчик итераций i, и пока i<100 цикл работает. Перед циклом следует вручную присвоить начальный показатель для счетчика итераций i. Цикл Repeat:
1 n:=0;
2 i:=0;
3 repeat
4 if a>10 then inc;
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;
Как я уже говорил в предыдущих уроках — чтобы хорошо понять и запомнить основные принципы программирования, лучше всего изучить ряд примеров, чем пытаться разобраться в теоретическом материале. Поэтому в этом уроке я не буду нагружать вас теорией, а сразу перейду к примерам, в которых постараюсь максимально подробно все прокомментировать.
Для обработки нескольких элементов массива, программисты очень часто используют циклы. Циклы позволяют совершать ряд однотипных действий или операций. В языке программирования 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;
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;
3 end;
Цикл While:
1 n:=0;
2 i:=0;
3 while i<100 do begin
4 if a>10 then inc;
5 inc(i);
6 end;
В этом цикле мы вручную увеличиваем счетчик итераций i, и пока i<100 цикл работает. Перед циклом следует вручную присвоить начальный показатель для счетчика итераций i. Цикл Repeat:
1 n:=0;
2 i:=0;
3 repeat
4 if a>10 then inc;
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;