Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2009, 11:46   #1
Инспектор ГУЛ
Пользователь
 
Аватар для Инспектор ГУЛ
 
Регистрация: 21.05.2009
Сообщений: 55
Вопрос не понятен урок!

вот сам урок:


Цитата:
Инструкция (цикл) WHILE
Эта инструкция применяется в том случае, когда нужно выполнить несколько раз определенные действия. Причем заранее не известно, сколько раз этот цикл выполнять – это становится ясно только во время работы программы.

Синтаксис инструкции такой:

while условие do инструкция;
или расширенный вариант:

while условие do begin
инструкция 1;
инструкция 2;
...
инструкция n;
end;
Здесь условие – переменная или выражение логического типа. Сначала вычисляется условие. Если условие ложно (False), то цикл не выполняется и сразу заканчивает работу. Если же условие истинно (True), то цикл выполняет инструкции, затем вновь возвращается к условию. Если условие опять возвращает True, цикл выполняется еще раз, и так до тех пор, пока условие не вернет False. Будьте осторожны с этим циклом! Не включайте туда условие, которое никогда не станет False. Компьютер в таком случае "зациклится", то есть зависнет. Обычно для этого внутрь цикла помещают счетчик – переменную целого типа. Только в отличие от цикла for, здесь переменная не увеличивает свое значение автоматически, за этим должен следить сам программист. Пример применения инструкции:

i := 1;
while i < 10 do begin
ShowMessage('Число равно ' + IntToStr(i));
i := i + 1;
end;
В этом простом примере мы целой переменной i присваиваем значение 1. Затем выполняем цикл while до тех пор, пока i не станет больше или равно 10. Если бы мы внутри цикла не указали "i := i + 1;", то этого никогда бы не произошло, и мы зациклили бы программу! Попробуйте выполнить этот пример в новом проекте, привязав код к обработке нажатия кнопки. В дальнейшей практике Вам не раз придется использовать этот цикл с куда более полезными примерами.

мне не понятно какую программу нужно сделать вконце урока, и что она должна делать? Кто может - отправьте исходники, и если это не долго - объясните мне популярно?

Заранее всем мой Молодёжный РЕСПЕКТ!!!
В тюрьме столько не сидят, сколько в ИНЭТЕ!
Инспектор ГУЛ вне форума Ответить с цитированием
Старый 28.05.2009, 11:57   #2
fbus
Форумчанин
 
Аватар для fbus
 
Регистрация: 23.10.2008
Сообщений: 460
По умолчанию

ставишь на форму кнопку
в переменных объявляешь i как integer,
в обработчике пишешь
Код:
i := 1;
while i < 10 do begin
ShowMessage('Число равно ' + IntToStr(i));
i := i + 1;
end;

Последний раз редактировалось fbus; 28.05.2009 в 12:00.
fbus вне форума Ответить с цитированием
Старый 28.05.2009, 12:36   #3
Инспектор ГУЛ
Пользователь
 
Аватар для Инспектор ГУЛ
 
Регистрация: 21.05.2009
Сообщений: 55
По умолчанию

а что делает эта программа? и... можно всё таки исходники ваши помотреть, а так не очень то понятно...
В тюрьме столько не сидят, сколько в ИНЭТЕ!
Инспектор ГУЛ вне форума Ответить с цитированием
Старый 28.05.2009, 12:54   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Эта программа 10 раз вываливает сообщение мол число на этой итерации цикла равно тому-то. Фактически показывая чему равен счетчик цикла.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject); var i:integer;
begin
    i:= 1;
while i < 10 do begin
ShowMessage('Число равно ' + IntToStr(i));
i := i + 1;
end;
end;

end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.05.2009, 13:02   #5
Инспектор ГУЛ
Пользователь
 
Аватар для Инспектор ГУЛ
 
Регистрация: 21.05.2009
Сообщений: 55
По умолчанию

ничё не понял... вставляю этот код в делфи, предворительно создав кнопку, - запускаю приложение - выдаёт какую то ошибку... Да и что делает она я так и не понял... можно более понятным языком объяснить, просто я новичок, многих слов и терминов не знаю... а?
В тюрьме столько не сидят, сколько в ИНЭТЕ!
Инспектор ГУЛ вне форума Ответить с цитированием
Старый 28.05.2009, 13:38   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Инспектор ГУЛ
тупое копипасте не поможет. это не паскаль.
Для этого нужно создать в инспекторе обьектов в дизайнере (когда еще не запустил прогу) обработчик событий на создание формы. т.е. OnCreate.
Впрочем можно просто двойной клик по форме.
Откроется код обработчика. Пустой.
Его и переподделай кодом выше, тем который в
procedure TForm1.FormCreate(Sender: TObject);

Цитата:
Инспектор ГУЛ
Мож тее книжечку подчитать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.05.2009, 13:39   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а вы скажите какая ошибка?
и желательно код где она вылазит, обьясним все...

цикл while обычно полезен тогда когда кол-во итераций(проходов цикла)
неизвестно, например кол-во проходов зависит от того нашли мы например нужный файл или нет(например ищем файлы с майкой Файл**.txt где ** это число, и нужно искать самый последний файл из таких)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 28.05.2009, 13:42   #8
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Слушай, как ты думаешь чем мы можем помочь, если ты пишешь выдаёт какую то ошибку?
Поставь себя на место тех, кто пытается тебе помочь.
Ты мне сможешь помочь в вопросах в которых ты разбираешься, если я спрошу: У меня что-там, не знаю где, но как-то так.
Задавай конретно вопросы. Какой ты вставил, куда. Купи книжку по Delphi почитай.
Hollander вне форума Ответить с цитированием
Старый 28.05.2009, 13:44   #9
Инспектор ГУЛ
Пользователь
 
Аватар для Инспектор ГУЛ
 
Регистрация: 21.05.2009
Сообщений: 55
По умолчанию

Цитата:
Мож тее книжечку подчитать?
Какую например? Сколько книг не читал, всегда попадалось ... А в этих курсах мне хоть чуть чуть что то понятно. Ну если вы знаете хорошую книгу, где учат программированию с нуля - дайте ссылку пожалуйста! Буду рад!
В тюрьме столько не сидят, сколько в ИНЭТЕ!

Последний раз редактировалось Stilet; 28.05.2009 в 15:01.
Инспектор ГУЛ вне форума Ответить с цитированием
Старый 28.05.2009, 14:13   #10
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Цитата:
Сообщение от Инспектор ГУЛ Посмотреть сообщение
Сколько книг не читал, всегда попадалось полное Г****!!!
Конечно бывают не очень понятные книги, но судя по этим словам, проблема совсем не книгах. На ум приходит пословица: Гляжу в книгу - вижу фигу.
Вот тут неплохие книги http://www.programmersclub.ru/book/
И вот http://wm-help.net/books/category/delphi.html вторая книга "Delphi Быстрый СтартЭю
Если они не помогут обратись к репетитору.
Hollander вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конвертор валют... не понятен принцип работы mid Помощь студентам 7 25.02.2011 23:33
не понятен смысл функции *.getTime() IQDDD JavaScript, Ajax 4 23.06.2009 19:03
Не понял урок beygul Помощь студентам 24 22.05.2009 09:53
Напишите кто то урок по OpenGL. spamer Обсуждение статей 2 07.05.2009 23:50
Не понятен вопрос(системное программирование) student_63 Помощь студентам 2 03.04.2008 20:21