Вроде N=2i (только i должна быть маленькой в верху)
Тернарный оператор должен возвращать значение (или ссылку на переменную), которое потом можно использовать. Например, если в целочисленной переменной a записано число -3, то используя такой синтаксис:
int absa = a >= 0 ? a : -a;
можно присвоить переменной absa значение |-3| = 3.
Выражения break, continue (и, например, return) управляют выполнением программы, показывая, какую инструкцию выполнять следующей, и не возвращают никакого значения (даже void). Поэтому при попытке использовать такие выражения в качестве аргументов тернарного оператора, ожидающего, что оба аргумента вернут какое-то значение, возникает ошибка компиляции.
Если очень хочется использовать тернарный оператор для выхода из цикла (но зачем?) можно выбрасывать исключение, которое потом обрабатывать, например, так:
try {
int a = 5;
while(true) {
a == 0 ? throw "a equals 0" : (void) 0;
a--;
}
} catch (<span>char const*</span> s) {
if (s != "a equals 0") throw s;
};
// PascalABC.NET 3.3, сборка 1611 от 06.01.2018
// Внимание! Если программа не работает, обновите версию!
Begin
var (a,b,c):=ReadInteger3('a, b, c ->');
var x:= min(a,min(b,c));
var y:= max(a,max(b,c));
var z:= 0;
if (a <> x)and(a <> y)
then z:= a;
if (b <> x)and(b <> y)
then z:= b;
if (c <> x)and(c <> y)
then z:= c;
Writeln(x, ' ', z, ' ', y);
end.
Материнская плата, процессор, оперативная память, блок питания, контроллеры или карты расширений, видеокарта, жесткий диск, оптический привод для чтения дисков.
Все слова в этом языке имеют вид aba, где a, b - неодинаковые буквы.
На место a можно поставить букву 31 способом, на место b - 30 cпособами (нельзя ставить букву, которая уже стоит на месте a). По правилу умножения получается не более 31 * 30 = 930 комбинаций.