паскаль, pascal, turbo pascal, borland pascal, TP, BP функции паскаль, pascal массивы, процедуры паскаль pascal программирование, pascal 7.0, pascal 6.0, pascal 5.0
Rambler's Top100


Помните выпуск про циклы? Конечно помните! Так вот если попробовали сотавить парочку программ самостоятельно (боже, как я на это надеюсь!) у вас могла возникнуть необходимость выйдти из цикла. Как этого добится я не упомянул. Пришло время закрыть это белое пятно. Итак для управления циклами есть 2 функции. break и continue. Судя по названиям они служат для прерывания и продолжения циклов. BREAK (англ. сломать, испортить) - немедленно прекращает выполнение цикла, переходя на следующий за циклом оператор. CONTINUE (англ. продолжение) - обеспечивает продолжение цикла. Давайте рассмотрим примеры:

j := 0;
for i := 0 to 10 do
begin
      j := j + 1;
      if j = 5 then break
end;
Этот цикл прервётся при j = 5, несмотря на то что i в этот момент равно 4!
j := 0;
i := 0;

while i  <> 10 do
begin
     j := j + 1;
     if j > 5 then
        continue;
     i := i + 1
end;

При выходе из цикла в i будет 10, а j =-32764. Почему так? Просто при j >= 5 происходит продолжение цикла, т.е. i := i + 1 не выполняется. Управление передаётся на while i <> 10 do. Но когда j = 32767 прибавляя 1 мы получаем j < 5 и тогда цикл продолжает выполняться нормально. Однако существует второй способ выхода из цикла. Это оператор безусловного перехода. Его смысл заключается в переходе на определённую строчку программы. Записывается он в виде:

goto Метка;
Метки объявляются в отдельном разделе программы под названием label. И шаблон программы превращается во всё более сложное творение:

Program ИмяПрограммы;
uses список подключаемых модулей;
const
   Здесь идёт объявление констант.
label здесь объявляются метки.
var
  Здесь идёт объявление переменных.
begin
  Здесь идёт текст программы.
end.

Пометить строчку, т.е. поставить на неё метку, можно так:

label normal, bad;
.....
......
goto normal;
......
normal : writeLn ('All Ok!');
.......
bad:
	writeLn ('All bad!');
.....
......
goto bad;
.......

Итак как вы видите мы просто ставим на строке имя метки и двоеточие. Когда программа натыкается на goto она сразу же переходит на метку, несмотря ни на что! Сразу хочу сказать, что использование goto является плохим тоном. Программа должна быть легко читаемой, а при goto происходят постоянные прыжки по тексту программы. Если вы используете Бейсик, то забудьте об этом !!! Поэтому мы не будем использовать goto в своих программах, ну разве только сегодня для примера.

Программа

Program  GotoTest;
uses  CRT;
label start;

var
   key : char;
   i : integer;

begin
start:
   for i := 0 to 20 do
      writeLn ('Do something...');
   write ('Ещё раз? [Y/N] ');
   key := readkey;
   writeLn (key);
   if key = 'Y' then
      goto start
   else
       if key = 'y' then
          goto start;
   WriteLn ('Thanks for using our product [c] 2002')
end.

Сия простая программка демонстрирует принцип построения программы, которая делает что-то, а потом спрашивает надо ли это повторить. Обратите внимание, что когда мы проверям какую клавишу нажал юзер, мы проверяем на клавишу 'Y' и 'y' . Эти клавиши имеют раные коды, поэтому мы должны проверить оба варианта! Естественно этот вариант не является единственным. Мы могли сделать цикл while 1 do ... и потом просто проверяя клавишу на совпадение использовать break. Вот так безо всяких вредных goto!




программирование на Паскале, Pascal, BP, TP, BorlandPascal, TurboPascal turbo pascal 7.0, borland pascal 7.0, языки программирования, pascal учебник
Рад приветствовать! =) Начнем мы с истории данного сайта. Изначально он разрабатывался как типично авторский проект, не неся в себе особых целей. Я лишь хотел освоить азы html верстки и опробывать свои силы в разработке web-сайтов. Тематика "программирование на Паскале" была выбрана не случайно, до этого я долго изучал этот ЯП и всё это вылилось в написание собственного самоучителя по Паскалю. Сейчас это всё вспоминается с некоторой долей иронии и улыбкой на лице. В нынешнее время я полностью занимаюсь web-разработками и отошел от прикладного программирования, но данный проект решил всё же не забрасывать и вдохнуть в него новую жизнь, освежив дизайн и контент.

С уважением, Евгений Злобин
турбо-паскаль скачать, файлы паскаль, бесплтано скачать pascal