IALweb Homepage
Forum Home Forum Home > Programmazione > Programmazione > C/C++ - VISUAL C++
  New Posts New Posts RSS Feed - permutazioni
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

Topic Closedpermutazioni

 Post Reply Post Reply
Author
Message
the_jackal212 View Drop Down
Nuovo Utente
Nuovo Utente


Joined: 15/Dic/2005
Status: Offline
Points: 23
Direct Link To This Post Topic: permutazioni
    Posted: 15/Dic/2005 at 00:27

Allora mi servirebbe un aiuto riguardo alle permutazioni. cerco un aiuto nel creare un codice che mi dia tutte le permutazioni di una parola, non solo quelle utilizzando tutte le lettere ma anche quelle con meno lettere. mi spiego meglio.

la parola cia in questo programmma dovrebbe darmi le seguenti permutazioni

cia,cai,aic,aci,iac,ica,ia,ic,ac,ai,ca,ci. se la parola e' di 5 lettere deve darmi tutte le permutazioni di 6,5,4,3 lettere.

io ho trovato in intenet un codice per le permutazioni ma se inserisco parole di 4 lettere non mi ritorna le permutazioni di 3 e 2 lettere.

qualcuno potrebbe genilmente aiutarmi? grazie mille.

Back to Top
the_jackal212 View Drop Down
Nuovo Utente
Nuovo Utente


Joined: 15/Dic/2005
Status: Offline
Points: 23
Direct Link To This Post Posted: 18/Dic/2005 at 22:38

allora ho scritto il codice per questo porgrammino, ma ho un problema. mi trova solo la prima parola del dizionario(che e' aardvark) e solo sel la scirvo uguale o se lascio le a all'inizio ...qualcunio mi potrebbe dare una mano per favore. Questo e' il miop rgetto per fine semestre...vi prego.

/*
  Name: Text Twist Solver
  Copyright: the_jackal212
  Author: Christian Piccolo
  Date: 08/12/05 21:29
  Description: Solve the famous game text twist. What else?!
*/

#include <iostream>
#include <cstring>
#include <windows.h>
#include <fstream>

using namespace std;

class texttwist
{

public:
    void solve(int);
    void insertLetter();
    void copy();
    void reset();
    bool findWord(char *);
    bool findSequence(char *, char *);
private:
    char goal[10];
    char temp[10];
};
//---------------------------------------------------
void texttwist::insertLetter()
{
    cout<<"Enter the letters (lower-case): ";
    cin>>goal;
    copy();
}
//---------------------------------------------------
bool texttwist::findWord(char *word)
{
   if(strlen(word)==0) return false;
   for(int j=0; j<10;j++)
      if(goal[j]==word[0] && findSequence(word,temp)) return true;
   return false;
}
//---------------------------------------------------
bool texttwist::findSequence(char *word, char *temp)
{
 int i, m=0;
 for (i=0; i<10; i++)
 {   
     if (word[m]=='\0')
         return true;
     if(temp==word[m])
     {  
          temp=' ';
          m++;
          i=0;
     }
 }
 return false;
}
//---------------------------------------------------
void texttwist::solve(int size)
{
 char w[29];
 ifstream in("boggle.dic");
 if (!in)
 {
    cerr<<"The file couldn't be opened\n";
    system("pause");
    exit (1);
 }
 while(!in.eof())
 {
  in.getline(w,27);
  int s=strlen(w);
  if(s>=size)
  if(findWord(w))
  {
   cout << w << endl;
  }
 }
 in.close();
}
//---------------------------------------------------
void texttwist::copy()
{
    for (int k=0; k<10; k++)
      temp[k]=goal[k];
}
//---------------------------------------------------
void texttwist::reset()
{
    for (int k=0; k<10; k++)
      temp[k]=goal[k]=' ';
}
//---------------------------------------------------
bool AskRepeat ()
/*  Function to ask another answer if the user doesn't input Y/N
    Post: the right answer is passed to the main()               */  
{
    string answer;
    do {
        cout<<"Do you wanna search again (Y/N)? ";
        cin>>answer;
    } while ((answer!="y")&&(answer!="Y")&&(answer!="n") &&(answer!="N"));
    cout<<endl;
    if ((answer=="y")||(answer=="Y")) return true;
    else return false;
}      
//---------------------------------------------------
void cls()
{
  COORD coordScreen = { 0, 0 }; /* here's where we'll home the cursor */
  DWORD cCharsWritten;
  CONSOLE_SCREEN_BUFFER_INFO csbi; /* to get buffer info */
  DWORD dwConSize; /* number of character cells in the current buffer */
 
  /* get the output console handle */
  HANDLE hConsole=GetStdHandle(STD_OUTPUT_HANDLE);
  /* get the number of character cells in the current buffer */
  GetConsoleScreenBufferInfo(hConsole, &csbi);
  dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
  /* fill the entire screen with blanks */
  FillConsoleOutputCharacter(hConsole, (TCHAR) ' ',
      dwConSize, coordScreen, &cCharsWritten);
  /* get the current text attribute */
  GetConsoleScreenBufferInfo(hConsole, &csbi);
  /* now set the buffer's attributes accordingly */
  FillConsoleOutputAttribute(hConsole, csbi.wAttributes,
      dwConSize, coordScreen, &cCharsWritten);
  /* put the cursor at (0, 0) */
  SetConsoleCursorPosition(hConsole, coordScreen);
  return;
}
//---------------------------------------------------
int main()
{
    texttwist t;
    string answer;

     do {
             t.reset();
             cls() ;
             cout<<"Text Twister Helper (by Christian Piccolo)\n\n";
             t.insertLetter();
             t.solve(3);
             cout<<"Nothing else found\n\n";
    } while (AskRepeat());
  
 return 0;
}

 

 

queste sdono le le prime parole del mio dizionario. un file txt con le parole una sotto l'altra.

aardvark
aardvarks
aback
abacterial
abacus
abacuses
abaft
abalone
abalones
abandon
abandoned
abandonee
abandoner
abandoning
abandonment
abandonments
abandons
abase
abased
abasement
abasements
abaser
abases
abash
abashed.

grazie ancora per qualsiasi aiuto

Back to Top
the_jackal212 View Drop Down
Nuovo Utente
Nuovo Utente


Joined: 15/Dic/2005
Status: Offline
Points: 23
Direct Link To This Post Posted: 22/Dic/2005 at 03:28
per favore qualcuno mi puo' aiutare, devo consegnare sto progetto prima della fine del quadrimestre vi prego.
Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 10.17
Copyright ©2001-2013 Web Wiz Ltd.

This page was generated in 0,125 seconds.