freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

Help in C++ (Μεταθέσεις και C++)


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [2 Μηνύματα]      Bookmarks Tags: c Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
Christos75


Μέλος από: 07 Φεβ 2008
Μηνύματα: 12
Περιοχή: Αθήνα
View users profile Send email to user Visit posters website
ΜήνυμαΣτις: 26 Μαη 2009 14:39    Θέμα: Help in C++ (Μεταθέσεις και C++)
Περιγραφή θέματος: Μεταθέσεις και C++
Απάντηση με παράθεση  Mark this post and the followings unread

Μου έχει τεθεί το παρακάτω πρόβλημα:
Να γραφεί πρόγραμμα το οποίο δεδομένου του προτύπου της μετάθεσης, να εμφανίζει τις μεταθέσεις που το ακολουθούν.
Πχ ++- 2341
+-+ 2314,2413,3412

Στην προσπάθειά μου να βγάλω τον κώδικα,έχω φτάσει μέχρι σ'ένα σημείο αν και δεν νομίζω να είναι σωστό.Θα ήθελα την βοήθειά σας:
κώδικας:

#include <iostream>
#include <cmath>
using namespace std;

int i,my_number;
char j;
main()
{     int pattern[9]={1,2,3,4,5,6,7,8,9};
      char x[10]={'+','-'};
      cout << "Give me pattern: " ;
      cin >> x[j];
      for(int i=1;i<10;i++)
      do{
              if(j=='+'){
                 i++;
                 };
                  i--;
             
                 
        my_number=j;
        }
        while (x[j]!='/0');
        cout << " The asked permutations are: " << my_number << endl;
        system("pause");
}               


_________________
If there's a will there's always a way!!!!!
virxen75


Μέλος από: 18 Φεβ 2009
Μηνύματα: 256+
Περιοχή: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ
View users profile
ΜήνυμαΣτις: 28 Μαη 2009 02:50    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

για όποιον ενδιαφέρετε για το ίδιο (το θέμα έχει απαντηθεί αλλού)

κώδικας:

#include <iostream>

using namespace std;
int value1[363000];
int value_size=0;
char x[100];

void visit(int *, int , int);
int  power(int);
bool checkPattern(int);

int main(){
bool ok=false;
while(!ok){
    cout << "Give me pattern:(only + & - max 8) " ;
   cin >> x;
   ok=true;
   for (int i=0;i<strlen(x);i++){
   if (x[i]!='+' && x[i]!='-') ok=false;
   }
   if (strlen(x)>8) ok=false;
   if (!ok) cout<<"Wrong pattern i accept only + & -";
}

int xx[10];
  int N = strlen(x)+1;
  for (int i = 0; i < N; i++) {
    xx[i] = 0;
  }
  visit(xx, N, 0);

for (int j=0;j<value_size;j++)
if (checkPattern(value1[j])) {
   printf("\n value=%d accepted!!!\n ",value1[j]);
}



   cin >> x[0];
   return 0;

}

void visit(int *Value, int N, int k)
{
  static int level = -1;
  level = level+1; Value[k] = level;

  if (level == N){
   int a=0;
   value1[value_size]=0;
   for (int i=N-1;i>=0;i--){
        int gg=*(Value+a);
        int gg2=power(i);
      value1[value_size]=value1[value_size]+gg*gg2;
               a++;
   }

   value_size++;

  }
  else
    for (int i = 0; i < N; i++)
      if (Value[i] == 0)
        visit(Value, N, i);

  level = level-1; Value[k] = 0;
}

bool checkPattern(int value){
bool ok=true;
char str[10];
itoa(value,str,10);
for (int i=0;i<strlen(x);i++){
   if (x[i]=='+'){
      char str2[2];
         str2[0]=str[i];
          str2[1]='\0';
         char str3[2];
         str3[0]=str[i+1];
          str3[1]='\0';
      int prin=atoi(str2);
      int meta=atoi(str3);
         if (prin>=meta) ok=false;
   }
   else{
      char str2[2];
         str2[0]=str[i];
          str2[1]='\0';
         char str3[2];
         str3[0]=str[i+1];
          str3[1]='\0';

      int prin=atoi(str2);
      int meta=atoi(str3);
         if (prin<=meta) ok=false;
   }

}
return ok;
}
int power(int n){
    int powerOf10=1;
    for (int i=0;i<n;i++){
      powerOf10=powerOf10*10; 
    }
    return powerOf10;
}

   






Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [2 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++


Σχετικά θέματα
 Θέματα   Απ/σεις   Αποστολέας   Τελευταίο μήνυμα 
ενας κωδικας σε C που βγαζει μη αναμενομενο αποτεσμα 1 teresa92 13 Αυγ 2016 21:26
teresa92 Εμφάνιση τελευταίου μηνύματος
Bitwise operators in C 3 Kappa4 15 Δεκ 2014 20:38
mariosal Εμφάνιση τελευταίου μηνύματος
 
Τώρα είναι 04 Δεκ 2016 20:21 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos