«Спагетти» код.
Область видимости метки - по тем же правилам, что и для других объектов (?)
Переменная t доступна только внутри блока
В программе может быть недоступный код
goto следует использовать только в крайних случаях.
If “a” <= с And c<=“z” _
Or “а” <= c And c<=“п” Then
с = Chr(Asc(c)-&H20)
ElseIf “р” <= c And c<=“я” Then
c = Chr(Asc(c)-&H50)
End If
VB:
C:
с = (‘a’ <= с && c<=‘z’
|| ‘а’ <= c && c<=‘п’
? с - 0x20
: ‘р’ <=c && c<=‘я’
? c - 0x50
: c);
Операторы внутри выражений (Algol-68)
(вещ s:=0; для i = 1 до N цк s+:= A[i] кц; s)
*(x>0 ? p : q) +=
(y>0 ? 1 : -1)
Условный оператор не вычисляет значения (а в Algol-68, Автокоде Эльбрус – вычисляет).
L = 0
R = N-1
FOUND = 0
100 IF (L-R) 101,101, 200
101 I = (L+R) / 2
IF (A(I) – X) 102, 103, 104
102 R = I - 1
GO TO 100
103 L = I + 1
GO TO 100
104 FOUND = 1
200
C:
выход:
int t = x % 6;
if (t==0) goto L0
if (t==1) goto L1;
if (t==2) goto L2;
goto Ldefault;
L0 :
L2 : x += 2;
Ldefault : x += 1;
goto Ldone;
L1 : x = 0;
Ldone:
switch (x % 6)
{
case 0 :
case 2:
x += 2;
default :
x += 1;
break;
case 1 :
x = 0;
break;
}
Интервалы значений в альтернативых:
Наглядность
Возможность транслятору эффективно реализовать переход
Выражения в Case – не обязательно константы
Последовательный выбор альтернативы
Полностью эквивалентно If … ElseIf… Else … End If
t = X – (X/6)*6 +1
GOTO (0,1,2,3,3,3) t
0 CONTINUE
2 X = X+2
3 X = X+1
GO TO 100
X = 0
100
t = X – (X/6)*6
ASSIGN 3 TO L
IF (t .EQ.0) ASSIGN 0 TO L
IF (t .EQ.1) ASSIGN 1 TO L
IF (t .EQ.2) ASSIGN 2 TO L
GOTO L, (0,1,2,3)
0 CONTINUE
2 X = X+2
3 X = X+1
GO TO 100
1 X = 0
100
print({n in {2..N} |
forall m in {2..n - 1} | n mod m > 0});
for (i=0; i for (i=0; i iloop:
for (i=0; i Java: Неправильно:
Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть