мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
pascal:clauses [21/10/2009 22:26] ocapascal:clauses [20/10/2010 10:15] (текущий) oca
Строка 1: Строка 1:
 ===== Ветвление в программе ===== ===== Ветвление в программе =====
 FIXME FIXME
 +
 +Оператор //if// (или условный оператор) в **краткой форме** служит, чтобы выполнить какие-то действия, если выполняется некоторое условие.
  
 <code pascal| Простой условный оператор - проверка условия> <code pascal| Простой условный оператор - проверка условия>
Строка 6: Строка 8:
   x,y,z:integer;   x,y,z:integer;
 begin begin
-  if x 0 then+  if x <> 0 then
   begin   begin
-    writeln(y);+    writeln(y / x);
   end;   end;
      
 end. end.
 </code> </code>
 +
 +**Полный** оператор //if// служит для разделения ход выполнения программы на две ветви в соответствии с некоторым условием, 
 +
 <code pascal| Полный условный оператор - разветвление программы> <code pascal| Полный условный оператор - разветвление программы>
 var  var 
Строка 19: Строка 24:
   if x < 0 then   if x < 0 then
   begin   begin
-    writeln('Ветка с отрицательным значением X');+    ...  // Ветка с отрицательным значением X;
   end   end
   else   else
   begin   begin
-    writeln('Ветка с положительным или нулевым значением X');+    ... // Ветка с положительным или нулевым(!!!) значением X;
   end;   end;
 end. end.
Строка 33: Строка 38:
 begin begin
   case x of   case x of
-    1: writeln(x); +    1           : writeln (x); 
-    2,4,5: writeln(y); +    2, 34     : writeln (y); 
-    .. 8,9: writeln(z)+    .. 7      : writeln (z); 
 +    8, 9 .. 12  : writeln (x, y, z);
   else   else
     writeln ('Ошибка')     writeln ('Ошибка')
Строка 41: Строка 47:
 end. end.
 </code> </code>
 +
 +В большинстве версий языка Pascal, включая Free Pascal, допускается чтобы метки были неупорядочены, но не допускается неоднозначность: 
 +
 +<code pascal| Перебор вариантов>
 +var 
 +  x,y,z:integer;
 +begin
 +  case x of
 +    1, 2        : writeln (x);
 +    2, 3, 6     : writeln ('Ошибка, о которой нам скажет компилятор');
 +    5 .. 7      : writeln (z);
 +  else
 +    writeln ('Ошибка !')
 +  end; 
 +end.
 +</code>
 +
 +__Обратите внимание__ - 
 +в операторе ''case'' перед ''else'' можно ставить точку с запятой;
 +оператор ''case'' заканчивается непарной операторной скобкой ''end'' !