Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Obsługa ISCAS89 w C++;

Ostatnio zmodyfikowano 2014-11-01 07:55
Autor Wiadomość
ChomikPL
Temat założony przez niniejszego użytkownika
Obsługa ISCAS89 w C++;
» 2014-11-01 07:55:23
Witam,


Mam za zadanie napisać program rozwiązujący D-Algorythm opisany w pliku typu ISCAS89. Zacząłem robić to na piechotę oto kod ISCAS'A:

input (G0)
input (G1)
input (G2)
input (G3)
output (G8)
AND1 = AND(G0, NOT1)
NOT1 = NOT(G1)
AND2 = AND(NOT1, G3)
OR1 = OR(G4, NOT1)
NOR1 = NOR(AND1, AND2, OR1)


To jest w miarę mały plik tego typu, zastanawiam się jak zmusić program do wyszukiwania frazy "G<Liczba 0 ... n>"  tak żebym mógł dowiedzieć się G(ile) jest w AND1 a G(ile) jest w AND2 w przypadku nawet gdy tych "G" będzie G100 ... Proszę o pomoc, lub podpowiedź jak w prostszy sposób mógłbym sprawić, że program zrozumie te dane ;))
A oto program:

C/C++
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <cstdlib>
#include <algorithm>

std::string to_upper( std::string napis )
{
    transform( napis.begin(), napis.end(), napis.begin(),::toupper );
    return napis;
}




int main() {
   
    std::ifstream plik;
    std::string Tekst;
    plik.open( "iscas89.txt" );
   
   
    int IloscWejsc = 0;
    int IloscWyjsc = 0;
   
    while( !plik.eof() )
    {
       
        std::getline( plik, Tekst );
       
        Tekst = to_upper( Tekst );
        if( Tekst.find( "INPUT" ) != std::string::npos )
        {
            std::cout << "Jest Input\n";
            IloscWejsc++;
        }
        if( Tekst.find( "OUTPUT" ) != std::string::npos )
        {
            std::cout << "Jest Output\n";
            IloscWyjsc++;
        }
    }
   
   
    int IloscAND = 0;
    int IloscOR = 0;
    int IloscNOT = 0;
    int IloscNOR = 0;
   
    plik.close();
    plik.open( "iscas89.txt" );
   
    while( !plik.eof() )
    {
       
        std::getline( plik, Tekst );
       
        Tekst = to_upper( Tekst );
       
        if( Tekst.find( "AND" ) != std::string::npos )
        {
            std::cout << "Jest AND\n";
            IloscAND++;
        }
        if( Tekst.find( "OR" ) != std::string::npos )
        {
            std::cout << "Jest OR\n";
            IloscOR++;
        }
        if( Tekst.find( "NOT" ) != std::string::npos )
        {
            std::cout << "Jest NOT\n";
            IloscNOT++;
        }
        if( Tekst.find( "NOR" ) != std::string::npos )
        {
            std::cout << "Jest NOR\n";
            IloscNOR++;
        }
       
    }
    bool Input[ IloscWejsc ];
    bool Output[ IloscWyjsc ];
   
   
   
   
   
   
   
}
P-119790
« 1 »
  Strona 1 z 1