function greatest_common_divisor(m, n: integer): integer; var modulo: integer; begin modulo := m mod n; if modulo = 0 then greatest_common_divisor := n else greatest_common_divisor := greatest_common_divisor(n, modulo) end;
procedure reduce_the_fraction(a, b: integer); var gcd: integer; sign: string; begin gcd := greatest_common_divisor(a, b); if a * b < 0 then sign := '-'; writeln(sign, abs(a) / gcd, '/', abs(b) / gcd); end;
begin write('Enter two numbers: '); readln(a, b); reduce_the_fraction(a, b); end.
Ищем в именах файлов закономерности, чтобы выделить пять из них. 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.
a, b: integer;
function greatest_common_divisor(m, n: integer): integer;
var
modulo: integer;
begin
modulo := m mod n;
if modulo = 0 then
greatest_common_divisor := n
else
greatest_common_divisor := greatest_common_divisor(n, modulo)
end;
procedure reduce_the_fraction(a, b: integer);
var
gcd: integer;
sign: string;
begin
gcd := greatest_common_divisor(a, b);
if a * b < 0 then
sign := '-';
writeln(sign, abs(a) / gcd, '/', abs(b) / gcd);
end;
begin
write('Enter two numbers: ');
readln(a, b);
reduce_the_fraction(a, b);
end.
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.
ответ:
p+[a-z]*.[a-z]*