Вот и началась моя 3 статья по делфи.
Здесь мы рассмотрим циклы и массивы, а также много коечто интересного.
Говорю сразу, что программы придуманы не мной!...
Итак, начнем
........................
ЦИКЛЫ
Цикл - это многократный повтор какого-то действия. Ну, чтоб легче вам было понять, наверняка вам мама в детстве говорила
что ты зациклился на какой-то вещи, тоесть вам понравилась какаето игрушка, и вы постоянно напоминали про ее покупку, вот это
и есть цикл....))))
В цикле обязательно должно выполняться какое то условие.
Рассмотрим 2 случая:
1.) Если условие прописуется в начале тела цикла, то этот цикл называется "
ПОКА";
2.) Если условие прописуется в конце тела цикла, то такой цикл называется "
ДО";
В цикле "Пока" сначала проверяется условие, и если оно выполняется, то есть логическое выражение истинно, выполняется
оператор, а потом снова проверяется условие. Как только оно перестанет выполняться, цикл завершается.
Вот общий вид цикла "Пока":
while условие
do оператор;
ПРИМЕР алгоритма Евклида:
while a<>d do //Вот это то самое условие, при выполнение которого цикл останавливается
if a>b then a:=a-b //Здесь используется условный оператор(если a>b тогда значению а присваиваем разность между числами a и b
else b:=b-a; //В противном случае значению b присваиваем разность между b и a......)))
С этим циклом думаю разобрались, поехали дальше
Оператор цикла "
до".
Проверка условия в цикле "
до" осуществляется после выполнения оператора.
Ну в общем тот же цикл пока, тока перевернутый

Общий вид цикла "
До":
repeat оператор until условие;
Тот же пример алгоритма Евклида, тока осуществленный циклом "до":
repeat
if a>b then a:=a-b; //Это условный оператор
if b>a then b:=b-a //Это условный оператор
until a=b; //это условие
Надеюсь вы усвоили, а если неусвоили читайте еще раз, и еще раз, ну вобщем пока не дойдет
А теперь перейдем к наиболее часто используемому циклу, и имя ему - "Перечень".
Он используется если известно число повторений, тоесть вы до выполнения программы уже знаете сколько раз он будет выполняться)
Перечень бывает двух видов:
1.) Прямой
2.) Обратный
Прямой перечень идет от известного меньшего числа к известному большему, и на каждом шаге прибавляестя единица(...К примеру...)
Общий вид цикла "Перечень":
for i:=n1 to n2 do оператор;
читается как "для i, начиная с n1 до n2, выполняется оператор".
Переменная i называется переменной цикла, которая при прямом перечне всегда изменяется от меньшего значения к большему...
Вот пример:
for i:=1 to 5 do
j:=j+i;
Работает это дело так---- У нас значение i изменяется от 1 до 5, мы вобщем невидем как компьютер считает. В наше время
скорость компьютера очень велика, но всеже, для общего развития, для того чтоб программа работала быстрее лутьше записать
2+2+2+2+2 чем 2*5, ну ладно, вернемся к теме))
компьютер выполняет сложение 5 раз, вот как это выполняется
0:=0+1;
1:=1+2;
3:=3+3;
6:=6+4;
10:=10+5;
И на выводе мы получаем значение j равное 15.....
Надеюсь разобрались, теперь разберем оператор обратного перечня. Он работает аналогично оператору цикла прямого перечня, но
переменная цикла не увеличивается на единицу с каждым шагом, а уменьшается. Этот оператор имеет вид:
for i:=n2 downto n1 do оператор;
К примеру
for i:=5 downto 1 do j:=j+i;
0:=0+5;
5:=5+4;
9:=9+3;
12:=12+2;
14:=14+1;
Ну и ответ получаем опять же 15
С ЦИКЛАМИ ЗАКОНЧИЛИ...........переходим к массивам.
МАССИВЫ
Массив - это упорядоченный именованный набор из фиксированного количества однотипных данных. Доступ к любому элементу массива
осуществляется по его номеру.
Массивы бывают одномерные, двумерные и т.д. Рассматривать будем тока одномерный массив...
Одномерный массив может быть набором чисел, совокупностью символьных данных или элементов иной приводы (даже массивом массивов).
Так же, как и в последовательности, в одномерном массиве можно указать элемент с конкретным номером, например номер 3.
Имеем массив к примеру:
a:array[1..5] of integer = (23,1,64,2,7);
В нашем случае имеем массив из 5 элементов, а нам нужно выдать к примеру тока 3 элемент, чтоб вывести его на экран нужно написать
a[3]
Под a[3] кроется число 64..........видите как все просто


Ах да, общий вид записи массива:
a:array[n1..n2] of integer;
array в переводе с английского - массив, n1 обычно число 0 или 1, n2 это любое число большее n1, integer
это тип чисел, в данном случае стоят целочисленные цифры.
А теперь рассмотрим пример нахождения максимального элемента массива:
const n=7; //здесь прописуем константу, тоесть n число постоянное и равное 7
var a:array[1..n] of integer; max,i:integer; //описуем переменные
begin //начало программы
max:=a[1]; //присваиваем максимальному элементу массива значение 1
for i:=2 to n do //устанавливаем цикл от 2 до 7
if max<a[i] //если максимальный элемент меньше всех элементов массива
then max:=a[i]; //тогда максимальному значению присваиваем максимальный элемент
end; //конец
Вот и все....
Хочу немного рассказать про упорядочивание элементов массива. Метод называется Пузырьковый

Ну как бы объяснить поподробней.. Ну допустим у вас есть 2 полных стакана с водой и вам нужно воду перелить с одного стакана
в другой без потери воды, а как это сделать спросите Вы, да очень просто, нужно взять третий стакан и перелить в него воду
с первого стакана, а со второго перелить воду в первый, а с третьего во второй.
Так и в программировании, нужно ввести новую переменную к примеру "c" и сделать следующее
c:=a;
a:=b;
b:=c;
Надеюсь теперь вы себе представляете что такое циклы и массивы, если нет, то читайте еще раз, пробуйте, изменяйте код программы
сделайте допустим нахождение минимального элемента массива или ченибудь еще, фантазируйте
