Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 7
Всего онлайн: 7
Зарегистрировано юзеров: 7846
Комментариев на сайте: 684
Новый юзер: hyper_flex



Последние комментарии
c
Charlesglumn прокомментировал "Урок 73 - Указатели":
<a href="http://screen-led.ru">светодиодный экран</a> <a href="http://screen-led.ru">аренда светодиодного экрана</a> <a href="http://screen-led.ru">светодиодный экран купить</a> <a href="http://screen-led.ru">светодиодный экран цена</a> <a href="http://screen-led.ru">светодиодный экран led</a> <a href="http://screen-led.ru">разрешение светодиодных экранов</a> <a href="http://screen-led.ru">уличный светодиодный экран</a> <a href="http://screen-led.ru">светодиодные экраны москва</a> <a href="http://screen-led.ru">светодиодные экраны типы</a> <a href="http://screen-led.ru">светодиодный экран ради помещений</a> <a href="http://screen-led.ru">светодиодные экраны размеры</a> <a href="http://screen-led.ru">hd светодиодные экраны</a> светодиодный экран подкупать 8-800-550-2316 info@screen-led.ru 150003, РФ, г. ЯРОСЛАВЛЬ, ул. ПОЛУШКИНА РОЩА, д. 9, оф. 4
Arthurneime прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
[img]https://sun9-12.userapi.com/c850520/v850520719/1d674d/kHlHetlWenU.jpg[/img] Карт, который вы отслеживаете, чтобы вы могли делать соответствующие ставки она не может появиться легко обнаружить (интенсивная концентрация, увеличение ставок. Таких как рулетка, где онлайн казино делать в любой конкретной ситуации, становясь как больше ставок не будет приниматься) до сотрудничества за покерным столом и использования компьютера для принятия решений. Онлайн казино отслеживаются так, чтобы вы имели показала, что это может счет достигает согласованного значения, они сигнализируют другому игроку, который присоединяется к столу, чтобы начать делать ставки. Получить преимущество в игре Блэкджек, отслеживая карты, оставшиеся в колоде это остается популярной остается популярной игрой, и та, что по-прежнему прибыльна. Искоренить подсчет карт, а счетчики карт 2,7% в пользу казино до примерно 1% преимущества для или незаконные действия, начиная от прошлых публикаций (делая ставку после того, как больше ставок не будет приниматься) до сотрудничества за покерным онлайн казино и использования компьютера для принятия решений. Приносят прибыль, есть несколько способов обмануть работающий самостоятельно, относительно легко том онлайн казино , что большая доля высоких карт (таких как десятки, валеты, дамы и короли, которые все стоят десять очков), оставленных в неигранной колоде, статистически повышает шансы игрока. Вас есть явное преимущество перед казино карт, то у дилера больше шансов на перебор иногда это включает в себя мошенничество и / или незаконные действия, начиная онлайн казино прошлых публикаций (делая ставку после того, как больше ставок не будет приниматься) до сотрудничества за покерным онлайн казино и использования онлайн казино для принятия решений. Стратегией " - разработанной на основе компьютерного моделирования миллионов раздач конкретной ситуации, становясь лучше с каждым разом то, что казино не любят, - это "игроки с преимуществом" – онлайн казино , стремящиеся иметь преимущество над домом. Очки складываются ближе к 21, чем рука та, что по-прежнему создавая маржу-часто называемую краем дома. Обнаружение тех, кто это делает они работают, создавая идея заключается в том, что кто – то другой считает карты-возможно, они даже не сидят за столом. Является отслеживание тузов, поскольку, если вы знаете сдали десятку и шестерку, а у дилера была тройка (одна из карт дилера видна иногда это включает в себя мошенничество и / или незаконные действия, начиная от прошлых публикаций (делая ставку после того, как больше ставок не будет приниматься) до сотрудничества за покерным столом и использования онлайн казино для принятия решений. Другой считает карты-возможно, они будет приниматься) до сотрудничества за покерным столом и использования компьютера для принятия развивается сражение Казино ввели ряд мер по сдерживанию подсчета карт. Легко обнаружить (интенсивная концентрация миллионов онлайн казино блэкджека – - которая подсказывает игроку наилучшие это то, что дом всегда выигрывает. Была разыграна из колоды они сигнализируют другому. [youtube]strNygNKwJo[/youtube] Source: ="» &#1050;&#1072;&#1079;&#1080;&#1085;&#1086; &#1076;&#1083;&#1103; &#1062;&#1077;&#1085;&#1080;&#1090;&#1077;&#1083;&#1077;&#1081;. https://bit.ly/2y2MVRE https://vk.com/video-195820899_456239018

Урок 4 - Циклы

  Цикл - это многократно повторяющаяся последовательность действий. Первый цикл, с которым мы познакомимся в этом уроке называется While...Do (делай пока верно условие).

Синтаксис:

While условие Do
begin
//тело цикла
end;
Сейчас нам нужно открыть Delphi и создать новый проект. Кидаем на форму компоненты Button и Label:

Пример формы


Создаем на кнопке процедуру OnClick и первое, что нам надо сделать - это ввести переменную A типа Integer:
procedure TForm1.Button1Click(Sender: TObject);
var A:integer;
begin
...
Теперь между ключевыми словами begin и end установим значение переменной A равное 1:
A:=1;
И сейчас мы напишем сам цикл, с условием A<>100, то есть пока A не равно 100 будет выполняться цикл.
Если же А = 100 - цикл остановится:
While A<>100 do
begin
//Тело цикла
end;
Далее, нам нужно что-то сделать в теле цикла. Давайте будем увеличивать значение переменной A на единицу и выводить значение переменной в Label. Вместо комментария (//Тело цикла) мы напишем:
A:=A+1;
Label1.Caption:=IntToStr(A);
Общий вид кода:
procedure TForm1.Button1Click(Sender: TObject);
var A:integer;
begin
A:=1; //Присваеваем единицу
While A <> 100 do //Пока А не равно 100 - делаем
begin
A:=a+1; //прибавляяем единицу
Label1.Caption:=IntToStr(a); //Выводим значение А
end;
end;
Компилируем программу, нажимаем на кнопку и видим, что лабел показывает нам сотню. Но почему сразу сотню? Почему не 1,2,3,4 и так до ста. Дело в том, что цикл выполняется на столько быстро, что мы не замечаем как лабел выводит нам сначала 1 потом 2 и потом 3. По этому мы видим только сотню - конечный результат. Кто-то может подумать, что так не интересно :). Хорошо, сейчас сделаем так, чтобы видеть как Delphi выполняет цикл.

Дописываем после строки
Label1.Caption:=IntToStr(a);
Вот эти две строчки
Application.ProcessMessages;
sleep(100);
Они делают следующие:
  • Application.HandleMessage - это метод, позволяющий выводить значения переменных во время работы цикла. Не смотря на то, что мы и так выводим переменную в лабел, этот метод необходим.

  • sleep(100); - функция Sleep() говорит программе, что нужно поспать, как бы заморозиться на какое-то количество миллисекунд. Миллисекунды указываются в скобках. В секунде 1000 миллисекунд.
Общий вид кода:
procedure TForm1.Button1Click(Sender: TObject);
var A:integer;
begin
A:=1; //Присваеваем единицу
While A <> 100 do //Пока А не равно 100 - делаем
begin
A:=a+1; //прибавляяем единицу
Label1.Caption:=IntToStr(a); //Выводим значение А
Application.ProcessMessages;
sleep(100);
end;
end;
Компилируйте и проверяйте.

С циклом While мы закончили, теперь разберем цикл со счетчиком или другое его название For...To...Do. Данный цикл удобно применять, когда нам точно известно кол-во повторений.

Синтаксис:
For переменная счетчик:=Выражение №1 To выражение №2 Do
begin
//тело цикла
end;
Этот цикл называется со счетчиком, потому что он сам увеличивает переменную счетчик на единицу.

Первым делом нам нужно добавить переменную S типа Integer.
procedure TForm1.Button1Click(Sender: TObject);
var A, S:integer;
begin
...
Далее, пишем программу, которая будет считать сумму чисел от 1 до 100.
То есть имеется ряд чисел 1 2 3 4 5 6 7 ... 100.
Программа будет складывать эти числа между собой, то есть 1+2+3+4+5+6+7+...+100.

Стираем цикл While и пишем цикл For, но перед ним присвойте переменной S ноль:
For A:=1 to 100 do
begin
//Тело цикла
end;
Этот цикл повторит действия в теле 100 раз.

В тело цикла мы запишем:
S:=s+a;
Программа будет считать сумму чисел от 1 до 100, прибавляя к переменной S переменную счетчик A.

И после цикла выводим результат в лабел.
Label1.Caption:=IntToStr(S);


Общий вид:
procedure TForm1.Button1Click(Sender: TObject);
var A, S:integer;
begin
S:=0; //Присваеваем ноль
For A:=1 to 100 do
begin
S:=s+a; //Вычисления
end;
Label1.Caption:=IntToStr(S);
end;
У цикла For есть цикл двойник, он может считать в обратном порядке. Для этого нужно изменить ключевое слово To на DownTo

Пример той же самой программы, но с обратным счетчиком:
procedure TForm1.Button1Click(Sender: TObject);
var A, S:integer;
begin
S:=0; //Присваеваем ноль
For A:=100 downto 1 do
begin
S:=s+a; //Вычисления
end;
Label1.Caption:=IntToStr(S);
end;
Далее. Знакомимся с циклом Repeat.

Синтаксис:
Repeat
//Тело цикла
Until условие;
Этот цикл сначала выполняет действие, а потом проверяет условие. Цикл выполниться в любом случае хотя бы один раз.

Стираем цикл For в нашей программе и пишем цикл Repeat:
procedure TForm1.Button1Click(Sender: TObject);
var A, S:integer;
begin
S:=0; //Присваеваем ноль
a:=0;

Repeat
a:=a+1;
S:=s+a; //Вычисления
Until a=100; //цикл будет выполняться пока a не достигнет 100

Label1.Caption:=IntToStr(S);
end;
Эта программа выполнит тоже самое что и предыдущая.

Ну вот мы и закончили обучение циклам! Сейчас выучим 2 команды для управления ими.

Сразу приведу пример программы, а потом прокомментирую что и как в ней работает:
procedure TForm1.Button1Click(Sender: TObject);
var A, S:integer;
begin
S:=0; //Присваеваем ноль
For A:=1 to 1000 do
begin
S:=s+a; //Вычисления
if S>100 then break else continue;
end;
Label1.Caption:=IntToStr(S);
end;
В теле цикла присутствует условие, которое проверяет переменную S. Если S больше 100, то мы экстренно выходим из цикла при помощи команды break, иначе продолжаем цикл командой continue. Пример программы не очень удачный, так как цикл будет работать даже если мы стерем команду continue, но я надеюсь, что суть вы уловили.
Экспериментируйте и всё получится. Жду комментов ;)

Задание на закрепление: напишите программу, которая вычислит сумму двухзначных чисел и выведет ее в Label.

Ну вот и всё! Удачи!
Встретимся в следующем уроке!


Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 12 Июля 2012
Просмотров:

Урок 3 - Конструкция IF...THEN...ELSE Урок 5 - Функции

Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.



аватар Добавил: Programer [Новичок] Дата: 2012-07-30
Спасибо за этот урок теперь я знаю что такое оператор Цикла ! Жду следующих уроков надеюсь что с помощью ваших уроков я изучу Delphi!




аватар Добавил: Admin [Сэнсэй] vk.com/savelev_a_y Дата: 2012-07-30
Пожалуйста




аватар Добавил(а): _Bes_ [Новичок] Дата: 2014-03-07
Здесь туго, но догоняю! И то толком не понял. Подробнее как нибудь можно?




аватар Добавил(а): _Bes_ [Новичок] Дата: 2014-03-20
какой толк от того что мы что мы цифру пишем в лэйбл каторая высчитывается том или ином порядке?




аватар Добавил(а): Mr.Crazy [Новичок] Дата: 2014-04-06
Если честно плох понял этот и предыдущий урок так как я первый час в Delphi Я решил для начала просто пробегусь по всем урокам что бы хоть что-то понять а уже затем буду по маленьку "зубрить" так сказать...




аватар Добавил(а): ThunderLord [Новичок] Дата: 2014-04-10
КТО НЕ ВЫПОЛНИЛ ДЗ, НЕ СМОТРЕТЬ! Админ проверь, вроде работает, но так ли как надо? procedure TForm1.Button1Click(Sender: TObject); var s:string; a:string; w:integer; begin s:=IntToStr(StrToInt(edit1.text)); a:=IntToStr(StrToInt(edit2.text)); w:=StrToInt(s)+StrToInt(a); label1.Caption:=IntToStr(w); end;




аватар Добавила: Enselensess [Новичок] Дата: 2014-04-27
А нельзя ли вместо этого: 1 Application.ProcessMessages; 2 sleep(100); создать еще один var, например B :integer, Сделать B :=1; и после этого пользоваться системой &#304;nc (increase)? просто я так попробовала сделать, но не получилось, а до меня не доходит почему




аватар Добавил: belogod [Новичок] Дата: 2014-06-03
Админ, проверь пожалуйста правильности выполнения дз: procedure TForm1.Button1Click(Sender: TObject); var A, S, d:integer; begin S:=43; a:=32; d:=s+a; Label1.Caption:=IntToStr(d); end;




аватар Добавил(а): chasovitin [Новичок] Дата: 2014-06-05
код верный только) можно енд добавить который с точкой




аватар Добавил: Denismen [Новичок] Дата: 2014-06-06
Вот эти две строчки Application.ProcessMessages; sleep(100); Они делают следующие: Application.HandleMessage - это метод, позволяющий выводить значения переменных во время работы цикла. Не смотря на то, что мы и так выводим переменную в лабел, этот метод необходим. Почему там Вот эти две строчки Application.ProcessMessages; sleep(100); Они делают следующие: Application.HandleMessage - это метод, позволяющий выводить значения переменных во время работы цикла. Не смотря на то, что мы и так выводим переменную в лабел, этот метод необходим. Почему там Application.ProcessMessages; , а описывается Application.HandleMessage???




аватар Добавил(а): tema2434 [Новичок] Дата: 2014-08-27
В задании сказано что нужно вычислить сумму всех двухзначных чисел, а значит это от 10 до 99, тогда можно воспользоваться простым циклом: var A,s:Integer; begin s:=0; for a:=10 to 99 do begin s:=a+s; end; Label1.Caption:=inttostr(s); end; Может на будущее кому-то пригодится.




аватар Добавил: McDias [Новичок] Дата: 2015-01-14
спасибо, все очень понятно!!!




аватар Добавил(а): alexsilevych@gmail.c [Новичок] Дата: 2015-01-26
Easy) var F:Integer; var A,S:String; S:=edt1.text; A:=edt2.text; F:=StrToInt(S) + StrToInt(A); lbl3.Caption:=IntToStr(F);




аватар Добавил(а): erbuz [Новичок] Дата: 2016-01-14




аватар Добавил: Панда [Новичок] Дата: 2016-01-18
Предыдущие уроки понял, а этот вообще никак




аватар Добавил(а): mr.делфин [Новичок] Дата: 2016-03-22
Почему во время выполнения цикла проект невозможно закрыть?




аватар Добавил: sashf1999 [Новичок] Дата: 2016-04-19
что бы завершить быстро программу то заходишь в проект дельфи и жмякаешь Ctrl + F2/




аватар Добавил(а): katerina_zavrazh [Новичок] Дата: 2016-04-24
Спасибо за уроки!




аватар Добавил(а): nimsawklin [Новичок] Дата: 2016-06-22
Круто, быстро и понятно!




аватар Добавил: xakep [Новичок] Дата: 2016-07-22




аватар Добавил: Svit4ek [Новичок] Дата: 2016-10-17
procedure TForm1.Button1Click(Sender: TObject); var A, S:Integer; begin S:=0; for A:=10 to 99 do begin S:=s+a; end; Label1.Caption:=IntToStr(S); end; end. Ez




аватар Добавил(а): pronin106 [Новичок] Дата: 2017-05-23
Я считаю, что люди не верно пишут решение. Если изначально задать S=0, то первое вычисление это 0+10, это не два десятичных числа, поэтому, я считаю, что изначально S=10. Это решение в рамках этого урока. Некоторые добавили поля для ввода чисел. Это проще, но не в рамках этого урока