O que são Expressões Regulares?
As expressões regulares (regex) são padrões que descrevem conjuntos de sequências de caracteres. São usadas para validar, procurar e manipular texto de forma eficiente.
Neste contexto dos gelados, usamos regex para definir quais combinações de componentes são válidas!
Símbolos das Expressões Regulares
|OU (alternativa)Permite escolher entre opções. Ex: CONE|COPO significa CONE ou COPO.
+Uma ou mais repetiçõesO elemento deve aparecer pelo menos uma vez. Ex: BOLA+ significa 1 ou mais bolas.
*Zero ou mais repetiçõesO elemento pode não aparecer ou aparecer várias vezes. Ex: TOPPING* significa 0, 1, 2... toppings.
?Opcional (0 ou 1)O elemento é opcional. Ex: TOPPING? significa com ou sem topping.
{n,m}Intervalo de repetiçõesDefine mínimo e máximo. Ex: BOLA{1,3} significa 1 a 3 bolas.
O que são Autómatos Finitos?
Um autómato finito é uma máquina abstrata que processa sequências de símbolos, transitando entre estados conforme lê cada símbolo.
🔵 Estados
Representam situações ou fases do processamento. Desenhados como círculos.
➡️ Transições
Setas que ligam estados, etiquetadas com os símbolos que provocam a mudança.
▶️ Estado Inicial
Onde o autómato começa. Indicado por uma seta de entrada.
⭕ Estados Finais
Estados de aceitação. Desenhados com círculo duplo.
Se o autómato terminar num estado final após processar toda a sequência, o gelado é válido!
As Regras do Gelado
📋 Regra Inicial
(CONE|COPO) BOLA+ TOPPING?- ✅ O gelado começa com CONE ou COPO
- ✅ Tem obrigatoriamente pelo menos uma bola
- ✅ Pode ter no máximo um topping (opcional)
📋 Regra Atualizada
(CONE|COPO) BOLA{1,3} TOPPING*- ✅ O gelado começa com CONE ou COPO
- ✅ Tem entre 1 a 3 bolas (por estabilidade)
- ✅ Pode ter qualquer número de toppings