Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Automata 1
Automata 1
galejandrer1400@alumno.ipn.mx
gerardoaxrv@hotmail.com
Σ={0,1}Σ={0,1}
((01+10)(11)∗0)∗(01+10)(11)∗((01+10)(11)∗0)∗(01+10)(11)∗
(01+10)(01+10)
(01+10)(11)∗(01+10)(11)∗
Hemos añadido sólo un arco etiquetado con 1 del estado 4 (el final) al estado 2.
Veamos su funcionamiento:
que el arco acabe en el estado 2 asegura que una vez se accede al arco,
necesariamente tiene que haber otro 1 para poder alcanzar el estado final,
es decir, este arco sirve para concatenar la palabra 11,
((01+10)(11)∗0)∗((01+10)(11)∗0)∗
Está claro que el arco etiquetado con 0 tiene que comenzar en el estado 4. Nos
vemos obligados a cambiar el estado final ya que, hasta ahora, no todas las
palabras acaban en 0 (sólo la palabra 10). Así pues, el estado final actual será el
estado inicial anterior:
Observaciones:
εε
(01+10)(11)∗(01+10)(11)∗
a=(01+10)(11)∗a=(01+10)(11)∗
(a0)∗a(a0)∗a
De este modo,
(a0)1(a0)2...(a0)na0(a0)1(a0)2...(a0)na0
//EN LA CONSOLA
//
//
//3NM41
//
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <time.h>
#include <string>
//Se generan variables globales para evitar el paso de parametros o argumentos entre las funciones
int guardacn;
int temp;
int cont=0;
int ban=0;
double secs;
struct Entrada { //declaracion de estructura que permiten leer y copiar los numeros en el arreglo
"arreglo"
int valor;
} entrada;
struct Salida { //declaracion de estructura que permiten los numeros ordenados en el arreglo "arreglo"
guardalos en el archivo de salida
int valor;
} salida;
void leeArchivo(){
cout<<"\n Teclea el nombre del archivo de entrada (sin espacio, ni caracteres especiales): ";
cin>>nombrearchivo;
cout<<"\n No se puede abrir el archivo "; //si no se puede abrir el archivo termina con error el
programa
exit(1);
else{
cn=0;
for (int i=0; !feof(archivo1); i++) { // Repite hasta que sea el fin del archivo
cn--;
n=cn;
void grabaArchivo(){
cout<<"\n Teclea el nombre del archivo de salida (sin espacios, ni caracteres especiales): ";
cin>>nombrearchivo2;
if(archivo2== NULL ){
exit(1);
else{
guardacn=0;
salida.valor=arreglo[i];
guardacn++;
cout<<"\n\n";
fclose(archivo2);
int main() {
cout<<"\n\n"; // se utiliza printf porque es una sentencia mas poderosa que cout
cout<<"\n\n";
return 0;