/Taller_1_Analisis_de_Algoritmos

Taller 1 de Análisis de Algoritmos Grupo Charlie

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Taller 1 de Análisis de algoritmos

Lenguaje formal

Suponiendo siguiente lenguaje formal:

L_5={ S_5, \varphi _5 } donde: S_5={ a, b, o, *} \varphi _5={ x \in E_S_5 / x empieza con a y no contiene * }.

Ejemplo

./dist/programa a**o
NO Cumple con la condición.

Simplificación Lógica

El programa en C/C++ debe simplificar expresiones lógicas con las reglas de sustitución necesarias para la ejecución del mismo. El programa que sólo se ingresarán caracteres válidos y que el argumento estará entre comillas dobles.

Usar sólo los siguientes símbolos:

  • Letras: p, q y r.
  • Negación: ¬ por ~
  • Implicancia: → por =>
  • Conjunción: v por &&
  • Disyunción: ʌ por ||

Ejemplo

./dist/programa “~ [ p => ~ ( q && p ) ]”
p || q

Demostración:

“~ [ p => ~ ( q && p ) ]”
“~ [~ p && ~ ( q && p ) ]”
“~ [~ p && ~ q || ~p ) ]”
“~ [~ p &&~p ||~ q ) ]”
“~ [~ p &&~ q ) ]”
“p || q”

Como usar ?

Para compilar el proyecto debe posicionarse en la carpeta correspondiente a la tarea que quiere ejecutar:

  • app --> Lenguaje formal
  • app2 --> Simplificación Lógica

compilar:

make

y luego para ejecutar el programa :

./dist/programa [argumento]

Grupo C

  • Edgar Matus
  • Oscar Peñaloza
  • Daniela Galleguillos