Ищем в именах файлов закономерности, чтобы выделить пять из них. 1. Есть ровно пять файлов, начинающихся символом "p". В расширении имени (после точки) они имеют от одного до трех символов. Регулярное выражение будет иметь вид p[a-z]*.[a-z]* 2. Есть ровно пять файлов, имена которых завершаются символом "r". В расширении имени (после точки) они имеют от двух до трех символов. Регулярное выражение будет иметь вид [a-z]*r.[a-z]*
Ищем среди ответов похожий. p+[a-z]*.[a-z]* - в принципе, то же, знак + тут необязателен, но и не мешает. [a-z]*r+.[a-z]{3} - все портит это {3}, требующее ровно 3 повторения, а у нас от 2 до 3.
Самый простой решить данную задачу - просто построить таблицу истинности каждого из заданных вариантов и проверить на соответствие. Сначала приведу таблицы истинности конъюнкции, дизъюнкции и инверсии. Сразу стоит отметить, что приоритет инверсии выше конъюнкции и дизъюнкции, а приоритет конъюнкции выше дизъюнкции. То есть, например, отрицание будет выполнено раньше логического ИЛИ. Логическое И, конъюнкция (&) X Y F 0 0 0 0 1 0 1 0 0 1 1 1 Логическое ИЛИ, дизъюнкция (|) X Y F 0 0 0 0 1 1 1 0 1 1 1 1 Инверсия(¬) X F 0 1 1 0 Перейдём непосредственно к перебору вариантов: а) X & Y & ¬ Z 1 1 1 0 - не подходит, 1 И 1=1, 1 И 0=0, а должно быть 1 б) X & Y & Z 1 1 1 1 1 1 0 0 - не подходит, 1 И 1=1, 1 И 0=0, а должно быть 1 в) X | ¬ Y | Z 1 1 1 1 1 1 0 1 1 0 1 1 в) подходит г) ¬X | Y | ¬Z 1 1 1 1 1 1 0 1 1 0 1 0 - не подходит, так 0 ИЛИ 0=0, 0 ИЛИ 0=0, а нужно 1 ответ: в)
3-я задача:
program qq;
var a,b,c,f,m: integer;
begin
writeln('Введите три числа');
readln(a,b,c);
if (a mod 2=0) or (b mod 2=0) or (c mod 2=0) then
begin
if a>b then f:=a else f:=b;
if f>c then f:=f else f:=c;
Writeln('Максимальное число =: ',f);
end
else
if a>b then m:=b else m:=a;
if m>c then m:=c else m:=m;
Writeln('Минимальное число =: ',m);
end.