I got 2 Declaration syntax error... i really need help :D Thanks!
Btw .. i'm using Borland C++

    #include<iostream.h>
    #include<graphics.h>
    #include<stdlib.h>
    #include<stdio.h>
    #include<ctype.h>
    #include<conio.h>
    void main()
    {clrscr();
    int opt,opt1,opt2,opt3,opt4,opt5,opt6;
    /* request auto detection */
    int gdriver = DETECT, gmode, errorcode;
    int style, midx, midy;
    int size = 1;
    int x,y;

    /* initialize graphics and local variables */
    initgraph(&gdriver, &gmode, "C:\\BorlandC\\BGI");
    Repeat:
    cleardevice();
    do
    {
    setbkcolor(BLUE);
    settextstyle(TRIPLEX_FONT,0,4);
    setcolor(GREEN);
    outtextxy(265,10,"::Menu::");
    settextstyle(TRIPLEX_FONT,0,3);
    outtextxy(190,40,"::Metoda Backtracking::");
    settextstyle(TRIPLEX_SCR_FONT,0,1);
    outtextxy(20,100,"1. Teorie.");
    settextstyle(TRIPLEX_SCR_FONT,0,1);
    outtextxy(20,120,"2. Subprogramul Fix Back().");
    settextstyle(TRIPLEX_SCR_FONT,0,1);
    outtextxy(20,140,"3. Probleme.");
    settextstyle(TRIPLEX_SCR_FONT,0,1);
    outtextxy(20,160,"4. Iesire.");
    gotoxy(24,13);
    settextstyle(TRIPLEX_SCR_FONT,0,1);
    outtextxy(20,184,"Alegeti Optiunea: ");cin>>opt;
    switch(opt)
    {
    case 1:
    {
           clrscr();
           //system("cls");
           cleardevice();
           setbkcolor(BLUE);
           settextstyle(TRIPLEX_FONT,0,3);
           setcolor(GREEN);
           outtextxy(200,10,"::Metoda Backtracking::");
           cout<<endl<<endl;
           settextstyle(DEFAULT_FONT,0,1);
           outtextxy(8,50,"La dispozitia celor care rezolva probleme cu ajutorul calculatorului exista mai");
           outtextxy(3,60,"multe metode. Dintre acestea cel mai des utilizate sunt: ");
           outtextxy(5,70," ¯ Metoda Greedy;");
           outtextxy(5,80," ¯ Metoda Divide et Impera;");
           outtextxy(5,90," ¯ Metoda Branch and Bound;");
           outtextxy(5,100," ¯ Metoda Backtracking.");
           outtextxy(5,110,"Metoda Backtracking se aplica problemelor in care solutia poate fi reprezentata");
           outtextxy(3,120,"sub forma unui vector - x=(x1,x2,x3,...xk,...xn) î S, unde S este multimea");
           outtextxy(3,130,"solutiilor probleme si S=S1*S2*...*Sn, si Si sunt multimi finite avand s elem.");
           outtextxy(3,140,"si xi î Si, ()i = 1...n.");
           outtextxy(8,150,"Pentru fiecare problema se dau relatii intre componentele vectorului x, care");
           outtextxy(3,160,"sunt numite conditii interne; solutiile posibile care satisfac conditiile");
           outtextxy(3,170,"interne se numesc solutii rezultat. Metoda de generare a tuturor solutiilor");
           outtextxy(3,180,"posibile si apoi de determinare a solutiilor rezultat prin verificarea");
           outtextxy(3,190,"indeplinirii conditiilor interne necesita foarte mult timp.");
           outtextxy(8,200,"Metoda backtracking evita aceasta generare si este mai eficienta. Elementele");
           outtextxy(3,210,"vectorului x, primesc pe rand valori in ordinea crescatoare a indicilor,x[k]");
           outtextxy(3,220,"va primi o valoare numai daca au fost atribuite valori elementelor x1...x[k-1].");
           outtextxy(3,230,"La atribuirea valorii lui x[k] se verifica indeplinirea unor conditii de");
           outtextxy(3,240,"continuare referitoare la x1...x[k-1]. Daca aceste conditii sunt indeplinite,");
           outtextxy(3,250,"la pasul km acest lucru inseamna ca orice valori i'am atribui lui x[k+1]..x[n]");
           outtextxy(3,260,"nu se va ajunge la o solutie rezultat.");
           outtextxy(8,270,"Metoda backtracking construieste un vector solutie in mod progresiv incepand");
           outtextxy(3,280,"cu prima componenta a vectorului si mergand spre ultima cu eventuale reveniri");
           outtextxy(3,290,"asupra atribuirilor anterioare.");
           outtextxy(8,300,"Metoda se aplica astfel: ");
           outtextxy(5,310," ¯ se alege prima valoare din S1 si i se atribuie lui x1;");
           outtextxy(5,320," ¯ se presupun generate elementele x1...x[k-1], cu valori din S1...S[k-1];");
           outtextxy(3,330,"pentru generarea lui x[k] se alege primul element din S[k] disponibil si pentru");
           outtextxy(3,340,"valoarea aleasa se testeaza indeplinirea conditiilor de continuare.");
           outtextxy(8,350,"Pot aparea urmatoarele situatii:");
           outtextxy(5,360," ¯ x[k] indeplineste conditiile de continuare. Daca s'a ajuns la solutia finala");
           outtextxy(3,370,"(k==n) atunci se afiseaza solutia obtinuta. Daca nu s'a ajuns la solutia finala");
           outtextxy(3,380,"se trece generarea elementului urmator - x[k-1];");
           outtextxy(5,390," ¯ x[k] nu indeplineste conditiile de continuare. Se incearca urmatoarea valoare");
           outtextxy(3,400,"disponibila din S[k]. Daca nu se gaseste nici o valoare in S[k] care sa");
           outtextxy(3,410,"indeplineasca conditiile de continuare, se revine la elem. x[k-1] si se reia");
           outtextxy(3,420,"algoritmul pentru o noua valoare a acestuia. Algoritmul se incheie cand au fost");
           outtextxy(3,430,"luate in considerare toate elementele lui S1.");
           outtextxy(8,440,"Este o tehnica de programare aplicabila algoritmilor care ofera mai multe solutii");
           outtextxy(3,450,"si are ca rezultat obtinerea tuturor solutiilor problemei.");
        do
        {outtextxy(5,460,"1. Continuare Teorie.");
        gotoxy(1,1);
        outtextxy(5,470,"Alegeti Optiunea: ");cin>>opt1;
        switch(opt1)
        {case 1:
            {clrscr();
            //system("cls");
            cleardevice();
            setbkcolor(BLUE);
            setcolor(GREEN);
            outtextxy(8,10,"Fiecare solutie se memoreaza intr'o structura de date de tip stiva implemenetata");
            outtextxy(3,20,"cu ajutorul unui vector. Deci fiecare solutie poate fi pusa sub forma unui vector.");
            outtextxy(8,30,"Intr'un algoritm backtracking ne intereseaza toate solutiile posibile. Pentru a");
            outtextxy(3,40,"obtine fiecare solutie finala se completeaza stiva nivel cu nivel trecand astfel");
            outtextxy(3,50,"prin niste solutii partiale. Astfel solutiile finale cat si cele partiale pentru");
            outtextxy(3,60,"a fi luate in considerare trebuie sa indeplineasca anumite conditii, numite");
            outtextxy(3,70,"conditii de validare. O solutie care indeplineste o astfel de conditie se numeste");
            outtextxy(3,80,"solutie valida. Toate configuratiile stivei ce reprezinta solutii finale sunt");
            outtextxy(3,90,"alcatuite din elementele aceleiasi multimi bine definite pe care o numim multimea");
            outtextxy(3,100,"solutiilor. Fiecare noua solutie partiala se obtine prin completarea solutiei");
            outtextxy(3,110,"partiale precedente cu inca un nivel pe stiva. La fiecare nivel se pun valori");
            outtextxy(3,120,"din multimea solutiilor care nu au fost incercate pana cand se obtine o solutie");
            outtextxy(3,130,"valida. In acest moment se trece la nivelul urmator in stiva pentru a completa");
            outtextxy(3,140,"mai departe solutia reluand incercarile pe noul nivel.");
            outtextxy(8,150,"La un moment dat pe un anumit nivel nu mai exista nici o valoare neincercata");
            outtextxy(3,160,"din multimea valorilor probleme. In acest caz se face un pas inapoi in stiva");
            outtextxy(3,170,"la nivelul anterior si se reia cautarea cu valorile ramase neincercate pe acest");
            outtextxy(3,180,"nivel anterior. Respectivul nivel a mai fost vizitat dar l'am abandonat dupa ce");
            outtextxy(3,190,"am pus o valoare care a general o solutie valida. Deci este posobil sa fi ramas");
            outtextxy(3,200,"aici valori neincercate.Daca nici pe acest nivel nu mai avem valori neincercate");
            outtextxy(3,210,"mai facem un pas inapoi in stiva. Mecanismul revenirilor a determinat denumirea");
            outtextxy(3,220,"de metoda backtracking.Plecand de la nivelul 1 si repetand algoritmul pana cand");
            outtextxy(3,230,"pe toate nivelele au fost incercate toate valorile din multimea valorilor se");
            outtextxy(3,240,"obtin solutii finale care se tiparesc.");
            outtextxy(8,250,"Vom implementa metoda backtracking iterativ folosind o rutina unica aplicabila");
            outtextxy(3,260,"oricarei probleme. Rutina va apela proceduri si functii care au intotdeauna");
            outtextxy(3,270,"acelasi nume si parametri si care din punct de vedere al metodei realizeaza");
            outtextxy(3,280,"acelasi lucru.");
            outtextxy(8,290,"Metoda backtracking are urmatoarele subprograme: ");
            outtextxy(5,300," ¯Init() - functia de initializare.");
            outtextxy(5,310," ¯Succesor() - gasirea unui element al multimii Ak.");
            outtextxy(5,320," ¯Valid() - testeaza daca elementul ales indeplineste conditiile de continuare.");
            outtextxy(5,330," ¯Solutie() - face testul daca s'a ajuns sau nu la solutie finala.");
            outtextxy(5,340," ¯Tipar() - tipareste rezultatul.");
                do{
                   outtextxy(5,363,"1. Meniu.");
                   gotoxy(19,24);
                   outtextxy(5,373,"Alegeti Optiunea: ");cin>>opt2;
                     if(opt2=='1')
                     clrscr();
                     //system("cls");
                     goto Repeat;
                     system("pause");
                     system("cls");
                     break;
                   }
                     while(opt2!='1');
                    system("pause");
                    system("cls");
                    break;
            }
                            default:
    {       clrscr();
        //system("cls");
        cleardevice();
        setbkcolor(BLUE);
        setcolor(GREEN);
        outtextxy(250,150," Optiune Gresita!");
        system("pause");
        clrscr();
        cleardevice();
        //system("cls");
        break;

    }
        } }
        while(opt1!='1');
           system("pause");
           system("cls");
           break;
    }

    case 2:
    {       clrscr();
        //system("cls");
        cleardevice();
        setbkcolor(BLUE);
        settextstyle(TRIPLEX_FONT,0,3);
        setcolor(GREEN);
        outtextxy(220,10,"::Suprogramul Fix::");
        settextstyle(TRIPLEX_FONT,0,2);
        outtextxy(285,40,"::Back::");
        settextstyle(DEFAULT_FONT,0,1);
        outtextxy(5,90,"void back()              //partea fixa a algoritmului.");
        outtextxy(5,100," {k=1;                  //se initializeaza varful stivei.");
        outtextxy(5,110,"  init();               //se initializeaza stiva pentru primul element al sol.");
        outtextxy(5,120,"  while(k>0)            //cat timp stiva nu s'a golit.");
        outtextxy(5,130,"   {as=1;ev=0; ");
        outtextxy(5,140,"   while(as && !ev)     //cat timp are succesor si nu s'a gasit elementul k");
        outtextxy(212,150,"al solutiei.");
        outtextxy(5,160,"    {as=succesor();     //se cauta succesor.");
        outtextxy(5,170,"     if(as)             //daca are succesor.");
        outtextxy(5,180,"        ev=valid();}    //se verifica daca este element al solutiei.");
        outtextxy(5,190,"                        //se iese din structura repetitiva while daca nu mai");
        outtextxy(212,200,"exista succesor sau daca s'a gasit elementul solutiei.");
        outtextxy(5,210,"   if(as)               //daca are succesor, atunci.");
        outtextxy(5,220,"    if(solutie())       //daca s'au obtinut toate elementele solutiei,");
        outtextxy(5,230,"        tipar();        //atunci se afiseaza elementele solutiei.");
        outtextxy(5,240,"      else {k++;        //altfel, se urca in stiva pentru a inregistra.");
        outtextxy(5,250,"                        //urmatorul element al solutiei.");
        outtextxy(5,260,"            init();}    //si se initializeaza stiva pentru urmatorul element");
        outtextxy(212,270,"al solutiei.");
        outtextxy(5,280,"   else k--;}           //altfel, se coboara in stiva pentru a reveni la");
        outtextxy(212,290,"elementul anterior al solutiei.");
        outtextxy(5,300," }");
        do{
        outtextxy(5,314,"1. Meniu.");
        gotoxy(19,21);
        outtextxy(5,324,"Alegeti Optiunea: ");cin>>opt3;
         if(opt3=='1')
          system("cls");
          clrscr();
          goto Repeat;
          system("pause");
          system("cls");

        }
        while(opt3!='1');
           system("pause");
           system("cls");
           break;}
    case 3:
    {      clrscr();
           //system("cls");
           cleardevice();
           do{setbkcolor(BLUE);
           settextstyle(TRIPLEX_SCR_FONT,0,1);
           setcolor(GREEN);
           outtextxy(5,12,"1. Prima Problema.");
           outtextxy(5,32,"2. A doua Problema.");
           outtextxy(5,52,"3. Meniu.");
           gotoxy(22,6);
           outtextxy(5,72,"Alegeti Optiunea: ");cin>>opt4;
           switch(opt4)
           {case 1:
        {clrscr();
        //system("cls");
        cleardevice();
           setbkcolor(BLUE);
           settextstyle(TRIPLEX_FONT,0,3);
           setcolor(GREEN);
           outtextxy(160,5,"::Generarea Aranjamentelor::");

           int st[100],n,m,ev,as,k;
               void init()
               {st[k]=0;}                                             // DECLARATION SYNTAX ERROR!
               int succesor()
               {if(st[k]<n)
            {st[k]=st[k]+1;
                return 1;}
            else
                return 0;
               }
               int valid()
               {int i;
               for(i=1;i<k;i++)
            if(st[k]==st[i])
                return 0;
            return 1;
            }
               int solutie()
               {return k==m;}
               void tipar()
               {for(int i=1;i<=k;i++)
            cout<<st[i]<<" ";
                cout<<endl;
            }
             void back()
            {k=1;init();
               while(k>=1)
            {ev=0;as=1;
               while(as&&!ev)
               {as=succesor();
            if(as)
                ev=valid();}
            if(as)
                if(solutie())
                    tipar();
                else
                    {k++;
                    init();}
                else
                    k--;}
            }
            void main()
            {cout<<"n=";cin>>n;
            cout<<"m=";cin>>m;
            back();
            }
           system("pause");
           clrscr();
           cleardevice();
          //system("cls");
           break;
           }
           case 2:
           {clrscr();
           //system("cls");
           cleardevice();
        setbkcolor(BLUE);
        settextstyle(TRIPLEX_FONT,0,3);
        setcolor(GREEN);
        outtextxy(180,5,"::Generarea Combinarilor::");

        int st[100],n,m,ev,as,k;
        void init()
        {st[k]=0;}                                     // DECLARATION SYNTAX ERROR!
        int succesor()
        {if(st[k]<m)
            {st[k]=st[k]+1;
                return 1;
            else
                return 0;
            }
        }
        int valid()
        {if(k>1)
            if(st[k]<=st[k-1])
                return 0;
            return 1;
        }
        int solutie()
        {return k==m;}
        void tipar()
        {for(int i=1;i<=k;i++)
            cout<<st[i]<<" ";
        cout<<endl;
        }
        void back()
        {k=1;init();
        while(k>=1)
        {ev=0;as=1;
           while(as&&!ev)
              {as=succesor();
              if(as)
                ev=valid();}
              if(as)
                if(solutie())
                    tipar();
                else
                    {k++;
                    init();}
                else
                    k--;}
            }
        void main()
        {cout<<"n=";cin>>n;
        cout<<"m=";cin>>m;
        back();
        } 
           system("pause");
           //system("cls");
           clrscr();
           cleardevice();
           break;
           }
           case 3:
           {clrscr();
           //system("cls");
           goto Repeat;
           clrscr();
           cleardevice();
           system("pause");
           cleardevice();
           system("cls");
           break;
           }
        default:
        {clrscr();
        //system("cls");
        cleardevice();
        setbkcolor(BLUE);
        setcolor(GREEN);
        outtextxy(5,10," Optiune Gresita!");
        system("pause");
        clrscr();
        cleardevice();
        //system("cls");
        break;}


        }
           }
           while(opt4!='3');
        system("pause");
        system("cls");
        break;
    }
    case 4:
    {
        exit(1);
    }
    default:
    {       clrscr();
        //system("cls");
        cleardevice();
        setbkcolor(BLUE);
        setcolor(GREEN);
        outtextxy(5,10," Optiune Gresita!");
        system("pause");
        clrscr();
        cleardevice();
        //system("cls");
        break;

    }
    }
    }
    while(opt!='4');
    getch();
    }

Recommended Answers

All 5 Replies

Well you never initialize k before you use it as your array subscript. you never want to use a variable before you initialize it. void main() is NOT standard. You have two mains in your program. You should use loops instead of goto statements. Your indentation could be cleaned up but thats more of a style thing. You might want to pick better variable names. I could go on but I'll leve it here for now.

Your indentation could be cleaned up but thats more of a style thing.

Actually, your indentation needs to be cleaned up. It's a readability thing.

You need to be consistent. See this

@ Kryptonitex

You are using Turbo C++. You must quickly switch to standard Compilers, which are available freely in the internet.

Also would you post the error or the lines where the syntax error are present ? It really helps a lot and saves time.

You are using Turbo C++. You must quickly switch to standard Compilers, which are available freely in the internet.

Won't he fail the class by not using the compiler the instructor insists on?
And could you tell him what compiler other than Borland could possibly compile the posted code?

borland it's not the only compiler i use .. i'm still using Mingw Developer Studio and dev C++... but for graphics i use borland turbo c++

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.