Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Δεν κοίταξα καν το συγκεκριμένο ποστ γιατί θεώρησα πως δεν θα χρειαστεί περαιτέρω ανάλυση μετά την ανάγνωση του link που δώσαμε κι εγώ κι ο direct-x.

 

Είναι δηλαδή προφανές μετά την ανάγνωση του link πως κάθε νέα κλήση συνάρτησης αυξάνει το stack-space και κάθε τερματισμός κλήσης το μειώνει.

 

 

Και ομως αυτο εδω http://www.sparknotes.com/cs/recursion/whatisrecursion/section1.html

 

που βρηκα μολις τωρα εχει πολυ καλυτερο διαγραμμα απο αυτο της Wikipedia και ειναι πιο κατανοητο

επειδη το παραδειγμα του εχει έκταση . Κοιταξε να δεις

 

ωρες ωρες βολευουν περισσοτερο και τα διαγραμματα .

 

ΔΙαφωνεις ?

 

το αρθρο της wikipedia δεν έκατσα να το διαβασω γιατι ηταν ολοκληρο κατεβατο

μονο το διαγραμμα ειδα. ΕΠειδη μ αρεσει να ειμαι ειλικρινης και εμενα.

  • Απαντ. 1,6k
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Δημοσ.

Δεν διαφωνώ, αλλά δεν μπορούμε σε κάθε απάντηση να παραθέτουμε 5-6 links ώστε να καλύψουμε όλες τις περιπτώσεις για το ποιο από όλα θα βολέψει καλύτερα όποιον διαβάσει την απάντηση.

 

Το αυτονόητο είναι να δώσουμε 1-2 links ως έναυσμα να ψάξει ο ενδιαφερόμενος για τα υπόλοιπα. Η ερώτηση που έκανες αφορούσε το stack, οπότε δώσαμε link που εξηγεί εμπεριστατωμένα το call stack. Αυτό που δίνεις τώρα ξεκινάει με recursion ως βασικό key.

Δημοσ.

Και ομως αυτο εδω http://www.sparknotes.com/cs/recursion/whatisrecursion/section1.html

 

που βρηκα μολις τωρα εχει πολυ καλυτερο διαγραμμα απο αυτο της Wikipedia και ειναι πιο κατανοητο

επειδη το παραδειγμα του εχει έκταση . Κοιταξε να δεις

 

ωρες ωρες βολευουν περισσοτερο και τα διαγραμματα .

 

ΔΙαφωνεις ?

 

το αρθρο της wikipedia δεν έκατσα να το διαβασω γιατι ηταν ολοκληρο κατεβατο

μονο το διαγραμμα ειδα. ΕΠειδη μ αρεσει να ειμαι ειλικρινης και εμενα.

 

Για αυτό λοιπόν εφεξής να βασίζεσαι στις δικές σου δυνάμεις ώστε με την βοήθεια του Google να βρίσκεις εκείνα τα άρθρα που ταιριάζουν περισσότερο στο στυλ διδασκαλίας που κατανοείς ή έχεις συνηθίσει --όπως και έκανες τελικά :)

 

@migf1:

.. No good deed goes unpunished :D

Δημοσ.

 

 

Πως θα μπορούσα να έχω πρόσβαση σε αυτό εδώ;

>
void eraseLetters(vector <char> *remainLetters, const char token)
{
   for(int i=0; i<remainLetters->size(); i++)
   {
       if(remainLetters[i] == token)
           remainLetters->erase(remainLetters->begin()+i);
   }
}

 

Μου βγάζει πρόβλημα στο remainLetters. Μπορώ κάπως να το φτιάξω;

 

 

no match for 'operator==' in '(&remainLetters->std::vector<_Tp, _Alloc>::begin [with _Tp = char, _Alloc = std::allocator<char>]())->__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator+ [with _Iterator = char*, _Container = std::vector<char, std::allocator<char> >](((const ptrdiff_t&)((const ptrdiff_t*)(&i)))) == token'

 

 

 

SOLVED:

 

 

:X

>
void eraseLetters(vector <char> &remainLetters, const char token)
{
   for(int i=0; i<remainLetters.size(); i++)
   {
       if(remainLetters[i] == token)
           remainLetters.erase(remainLetters.begin()+i);
   }
}

 

 

Δημοσ.

>

#include <iostream>
#include <algorithm>
int main()
{
std::string vector = "abcdabcdabcd";
std::remove(vector.begin(),vector.end(),'a');
return 0;
}

είναι πιο αποδοτικό έτσι;Επίσης επιστρέφει true ή false?

Δημοσ.

Ξέρει κανείς αν υπάρχει κάποιο e-book, ή κάποιο πρόγραμμα, που να έχει όλες τις εντολές της C# και τι κάνει η καθεμιά;

 

edit: εννοώ να περιέχει και τις μορφές π.χ. οτι το

>float[,] onoma= new float[5,4];

δημιουργεί πίνακα

Δημοσ.

Ξέρει κανείς αν υπάρχει κάποιο e-book, ή κάποιο πρόγραμμα, που να έχει όλες τις εντολές της C# και τι κάνει η καθεμιά;

 

edit: εννοώ να περιέχει και τις μορφές π.χ. οτι το

>float[,] onoma= new float[5,4];

δημιουργεί πίνακα

Υπάρχει εδώ (C# Language Specification Version 4.0) σε μορφή DOC ή HTML, προσοχή όμως διότι είναι μεν λεπτομερές αλλά και πολύ τεχνικό.

Δημοσ.

 

>

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <time.h>
int roll_dice(void);
bool play_game(void);

int main(void)
{
char ans = 'n' ;

int mres;    // main result 
    
    
	for(;
   {
	   
	mres= play_game();
	    
	if (mres != true && mres !=false)
	play_game();
	
	if (mres == true || mres == false)
	{
		printf(" Play again?");
		
		scanf(" %c" , &ans);
		
		if( 'y' == ans )
		play_game();
		
		else
		
		break;
	}
}

       return 0;
}

//----------------------------------------------------------------------

int roll_dice(void)
{
int froll , sroll , sum;   // first roll , second roll 

srand ( time(NULL) );

froll= rand() % 6 + 1;
sroll= rand() % 6 + 1;

sum= froll + sroll;

   return  sum; 
}
//----------------------------------------------------------------------

bool play_game(void)
{
int res;


for(;
{

res= roll_dice();
	
if( 7 == res || 11 == res )
{
printf(" You win with : %d score " , res); 
return true;
}


else if( 2 == res || 3 == res || 12 == res)
{
printf(" You lose with : %d score " , res);
return false;
}

else

printf(" You rolled: %d " , res);
return 2;
}	

        	
}

//----------------------------------------------------------------------

 

 

> kostas@kostas-SSL:~/PROGRAMS$ ./tests4
You rolled: 10  Play again?y
You lose with : 12 score  You lose with : 12 score  Play again?

 

Γιατι με ξαναβαζει να παιξω εφοσον δεν εχω κερδισει ή χασει??? ( 7 , 11 / 2 , 3 , 12 )

 

το res ειναι 10 αρα δεν επιστρεφω ουτε true ουτε false .

 

Υ.Γ Ψιλο χαλια μου φαινεται ο κωδικας οπως εχει γραφτει.

Δημοσ.

Υπάρχει εδώ (C# Language Specification Version 4.0) σε μορφή DOC ή HTML, προσοχή όμως διότι είναι μεν λεπτομερές αλλά και πολύ τεχνικό.

Φίλε Directx, σε ευχαριστώ για την απάντηση, αλλά δεν είναι αυτό που θέλω. Το "CSharp Language Specification" (που έκανες λινκ) είναι οι σχεδόν πλήρεις οδηγίες για όλη τη γλώσσα C#. Σου εξηγεί και τι μπορείς να κάνεις και πώς να το κάνεις.

Εγώ αυτό που θέλω, είναι κάτι απλά σαν μια λίστα με δυο στήλες ας πούμε. Η μια στήλη να έχει τις εντολές, και η άλλη να λέει συνοπτικά, σε μια φράση, τι κάνει η εντολή.

Αυτό που είχα ακούσει ότι υπάρχει, είναι ένα πρόγραμμα, που όταν γράψεις την εντολή, την αναγνωρίζει και σου λέει τη γενική της μορφή και τι κάνει.. κάπως έτσι. Δε θυμόταν και καλά, το παιδί που μου το λεγε, πώς ακριβώς ήταν το πρόγραμμα εκείνο.

 

Υ.Γ. πολύ καλό βέβαια κατά τα άλλα το αρχείο που έκανες λίνκ. Θα μου χρειαστεί αλλού.

Δημοσ.

Star_Light true θεωρείται οτιδήποτε μη μηδενικό αν θυμάμαι καλά! Γράψε λάθος. Είδα την stdbool.h.

 

edit: στον κώδικα έχεις την play_game() να επιστρέφει bool, δηλαδή μόνο 0 ή 1,

αλλά βλέπω στον κώδικα return 2. χμμ...

>
else
       
       printf(" You rolled: %d " , res);
       return 2;

 

Μήπως αυτό φταίει που το παιχνίδι δε συμπεριφέρεται όπως θέλεις;

 

Δοκίμασε αν θέλεις αυτό. Έβαλα κάποια printf και άλλαξα την play_game να επιστρέφει int. Δυστυχώς δεν μπορώ να το δοκιμάσω τώρα αλλά πιστεύω ότι θα σε βοηθήσει!

 

>
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <time.h>

#define DEBUG 1

int roll_dice(void);
int play_game(void);

int main(void)
{
       char ans = 'n' ;
       
       int mres;    // main result 
           
           
              for(;
          {
                  
               mres= play_game();
                   
               if (mres != true && mres !=false)
               play_game();
	if(DEBUG)
               	printf("mres = %d\n", mres);
               if (mres == 1 || mres == 0)
               {
                       printf(" Play again?");
                       
                       scanf(" %c" , &ans);
                       
                       if( 'y' == ans )
                       play_game();
                       
                       else
                       
                       break;
               }
       }
       
       return 0;
}

//----------------------------------------------------------------------

int roll_dice(void)
{
       int froll , sroll , sum;   // first roll , second roll 
       
       srand ( time(NULL) );
       
       froll= rand() % 6 + 1;
if(DEBUG)
        printf("froll=%d\n",froll);
       sroll= rand() % 6 + 1;
if(DEBUG)
	printf("sroll=%d\n",sroll);
       
       sum= froll + sroll;

   return  sum; 
}
//----------------------------------------------------------------------

int play_game(void)
{
       int res;
       
       
       for(;
       {
       
       res= roll_dice();
               
       if( 7 == res || 11 == res )
       {
       printf(" You win with : %d score " , res); 
       return true;
       }

       
       else if( 2 == res || 3 == res || 12 == res)
       {
       printf(" You lose with : %d score " , res);
       return false;
       }
       
       else
       
       printf(" You rolled: %d " , res);
       return 2;
}       

               
}

//----------------------------------------------------------------------    

 

Δημοσ.

Ευχαριστω akisk ;)

θα το κοιτάξω...

 

edit: Οντως οτι και να τις βαλεις στο return θα το λάβει υποψιν ειτε σαν 0 ειτε σαν 1... αναλογα. Το τεσταρα και μονος μου.

Επισκέπτης
Αυτό το θέμα είναι πλέον κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...