elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Problemas con programa c++ en: 16 Febrero 2014, 02:58 am
Necesito un poco de ayuda tengo el siguiente programa que un AFD(Automata Finito Deterministico) que verifica si una cadena es valida.

Se introduce la información desde la terminal.pero necesito que la cargue la información desde un fichero, excepto la validacion de cadenas esas si tienen que ser introducidas desde la terminal.

Mi manejo de programas cargando información desde ficheros es nula, por eso necesito su ayuda, si alguien sabe como hacerlo se lo agradecería.

Código:
#include <cstdlib>
#include <iostream>
#include <string.h>
#include <stdlib.h>
using namespace std;

int main(int argc, char *argv[])
{
    int n, na,ne,qi,nq,nqf,opc;
    string palabra;
   
    cout<<"Ingrese el numero de simbolos del Alfabeto: ";
    cin>>na;
   
    char alfabeto[na];
   
    for(int i=0;i<na;i++){
        cout<<"Ingrese el simbolo "<<i+1<<" : ";
        cin>>alfabeto[i];
    }
   
    cout<<"Ingrese el numero de estados: ";
    cin>>nq;
   
    cout<<"Ingrese el numero del estado inicial: ";
    cin>>qi;
   
    cout<<"Ingrese el numero de estados finales: ";
    cin>>nqf;
   
    int qf[nqf];
   
    for(int i=0;i<nqf;i++){
        cout<<"Ingrese el "<<i+1<<" estado final: ";
        cin>>qf[i];
    }
   
    int transiciones[nq][na];
   
    for(int i=0;i<nq;i++){
        for(int j=0;j<na;j++){
            cout<<"d(q"<<i<<","<<alfabeto[j]<<"):";
            cin>>transiciones[i][j];
        }
    }
    // Validacion de Cadenas
inicio:
    cout<<"Ingrese una cadena:\n";
    cin>>palabra;
   
    n = palabra.length();
    int ea = qi;
    bool band=true;
   
    for(int i=0;i<n;i++){
        for(int j=0;j<na;j++){
            if(palabra[i]==alfabeto[j]){
                cout<<"d(q"<<ea<<","<<palabra[i]<<")= ";
                ea = transiciones[ea][j];
                cout<<"q"<<ea<<endl;
                if (ea==-1){
                    cout<<"Palabra rechazada"<<endl;
                    goto inicio;
                }
            }
        }
    }
   
    for(int i=0;i<nqf;i++){
        if(ea==qf[i]){
            cout<<"Palabra aceptada.\n"<<endl;
            cout<<"1.Ingresar Otra Palabra\n2.Salir\n"<<endl;
            cin>>opc;
            if(opc==1){
                goto inicio;
            }
            else{
                goto fin;
            }
    }
            cout<<"Palabra rechazada\n"<<endl;
        cout<<"1.Ingresar Otra Palabra\n2.Salir\n"<<endl;
            cin>>opc;
        if(opc==1){
             goto inicio;
        }

        else{
            goto fin;
        }
   
        }
fin: return 0;
}
2  Programación / Programación C/C++ / problemas con el uso de tuberias en: 5 Septiembre 2013, 02:38 am
Hola a todos, pues bien tengo un pequeño con un problema con tuberias  lo que sucede es que tengo el siguiente código y necesito modificarlo para que determine cual es el tamaño de la tubería en el sistema, alguna sugerencia? , espero y me puedan ayudar, de antemano muchas gracias
                                                                

Código
  1. # include <sys/types.h>
  2. # include <unistd.h>
  3. # include <stdlib.h>
  4. # include <stdio.h>
  5. # include <string.h>
  6. int main ()
  7. {
  8.        int bytes_enviados, bytes_leidos, i, descriptor_archivo [2];
  9.        char buffer [BUFSIZ + 1];
  10.        pid_t pid;
  11.  
  12.        if (pipe(descriptor_archivo) == 0){
  13.                pid = fork ();
  14.                if (pid == -1) {
  15.                        perror ("Error al ejecutar fork");
  16.                        exit (-1);
  17.                }
  18.                if ( pid == 0) { //Proceso hijo
  19.                        for(i = 1; i < 27; i++){
  20.                                memset(buffer, '\0', sizeof(buffer));
  21.                                bytes_leidos = read(descriptor_archivo[0], buffer, BUFSIZ);
  22.                                printf("El proceso hijo ha leido %d bytes y el contenido es : %s\n", bytes_leidos, buffer);
  23.                        }
  24.                        exit (0);
  25.                }
  26.                else { //Proceso Padre
  27.                        for( i = 65; i < 91; i++){
  28.                                bytes_enviados = write(descriptor_archivo[1], (char*) &i, sizeof(char));
  29.                                printf("El proceso padre ha enviado por la tuberia %d bytes \n", bytes_enviados);
  30.                                sleep(1);
  31.                        }
  32.                }
  33.        }
  34.        exit (0);
  35. }
  36.  
  37.  
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines