ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Делфи для новичков. Урок 3
  #1  
Старый 29.03.2006, 18:25
Аватар для ~Fenix~
~Fenix~
Banned
Регистрация: 26.07.2005
Сообщений: 240
Провел на форуме:
1266236

Репутация: 75
Отправить сообщение для ~Fenix~ с помощью ICQ
По умолчанию Делфи для новичков. Урок 3

Вот и началась моя 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;

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

Последний раз редактировалось VIYu; 29.03.2006 в 18:35..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Делфи для Новичков..... ~Fenix~ С/С++, C#, Delphi, .NET, Asm 21 10.06.2006 14:11
какОй трой ИСпоЛЬзоваТЬ длЯ поЛНого УПРАвЛЕиЕ уд.КОМПОМ? UnKn0wN E-Mail 32 08.04.2006 04:20
MySQL-injection для новичков LoFFi Статьи 11 12.03.2006 18:20
Делфи для Новичков. Урок 2 ~Fenix~ С/С++, C#, Delphi, .NET, Asm 13 07.03.2006 10:48
Перепрошивка Bios видеокарт ~Fenix~ Чужие Статьи 4 05.03.2006 23:08



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ