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

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

Πώς τρέχω σταδιακά το πρόγραμμα στο MS Visual stidio C++;


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


Μέλος από: 06 Σεπ 2002
Μηνύματα: 256+
Περιοχή: Volos
View users profile Visit posters website
ΜήνυμαΣτις: 24 Νοε 2007 16:26    Θέμα: Πώς τρέχω σταδιακά το πρόγραμμα στο MS Visual stidio C++; Απάντηση με παράθεση  Mark this post and the followings unread

Μήπως ξέρει κανείς πώς μπορώ να τρέξω σταδιακά τον κώδικά μου στο MS Visual studio C++, ώστε να μου βγάλει ένα σημαδάκι πάνω στον κώδικα και να μου λέει σε ποιό σημείο βρίσκεται η εκτέλεσή του;
Έχω ακούσει ότι γίνεται ,ίσως να μην το εκφράζω σωστά..

_________________
PRO-PRO.gr
Πρωτάθλημα Προγνωστικών
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 24 Νοε 2007 18:34    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Κάνεις build το project σου σε debug mode (debug build), μετά μπορείς να βάλεις breakpoints (F9) στις γραμμές που θέλεις σταματήσει η εκτέλεση όταν τρέχεις το πρόγραμμα σου (F5) ή να τρέχεις το πρόγραμμα σου γραμμή γραμμή (F10,F11).

Σε ποιά Version του Visual Studio αναφέρεσαι γιατί τα πλήκτρα (F5,F9,F10,F11) μπορεί να αλλάζουν από έκδοση σε έκδοση.
Στο VS 6, και στο VS2003 είναι αυτά που αναφέρω.

[edit]
Δες επίσης και αυτά για ξεκίνημα αν και αναφέρονται στο VS 6 θα σου δώσουν μια καλή ιδέα.
http://cplus.about.com/od/learningc/ss/vc6compile_4.htm
http://www.cs.iit.edu/~resource/supporting/vc/vc_debug.html
[/edit]
xarisss


Μέλος από: 06 Σεπ 2002
Μηνύματα: 256+
Περιοχή: Volos
View users profile Visit posters website
ΜήνυμαΣτις: 24 Νοε 2007 22:14    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

for (int m=0;m<totalNodes;m++)
{
if (nodeMatrix[minNode,m]==0)
continue;
if (d[m]==0)
{
d[m]=minValue+nodeMatrix[minNode][m];
continue;
}

if (((d[minNode]+nodeMatrix[minNode][m])<d[m])&&(nodeMatrix[minNode][m]!=0))
{
d[m]=minValue+nodeMatrix[minNode][m];
}
}

Να τωτήσω και κάτι άλλο. Στον παραπάνω κώδικα, το continue τι ρόλο παίζει; Αν δεν ισχύει το stetement του if μας μας βγάζει έξω και συνεχίζει το for;

_________________
PRO-PRO.gr
Πρωτάθλημα Προγνωστικών
xarisss


Μέλος από: 06 Σεπ 2002
Μηνύματα: 256+
Περιοχή: Volos
View users profile Visit posters website
ΜήνυμαΣτις: 24 Νοε 2007 22:34    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Ουσιαστικά αυτό που θέλω είναι να σταματάνε να εκτελείται ένα από τα if κάθε φορά, αν δεν ισχύει το πρώτο που προσπελάζεται, να μην προχωράει παρακάτω.

ΥΓ: ευχαριστώ για την προηγούμενη απάντηση..

_________________
PRO-PRO.gr
Πρωτάθλημα Προγνωστικών
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 24 Νοε 2007 23:36    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Με το continue "πηδάει" όλες τις εντολές και συνεχίσει με την επόμενη επανάληψη του for.
Με break αντί για continue βγαίνει εντελώς έξω από το for.
Τι από τα δύο θέλεις να κάνεις;

Π.χ.
for (i=0; i<10; i++) {
printf("*");
continue;
printf("/");
}

Θα τυπώσει 10 αστεράκια (το / δεν θα τυπωθεί ποτέ) και στο τέλος το i θα έχει τιμή 10 (αυξάνεται κανονικά με κάθε loop), ενώ το

for (i=0; i<10; i++) {
printf("*");
break;
printf("/");
}

θα τυπώσει 1 αστεράκι, θα βγεί από το for και το i θα εξακολουθεί να έχει τιμή 0.
xarisss


Μέλος από: 06 Σεπ 2002
Μηνύματα: 256+
Περιοχή: Volos
View users profile Visit posters website
ΜήνυμαΣτις: 27 Νοε 2007 22:00    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Ευχαριστώ για τη βοήθεια. Πρόσεξα όμως ότι η δική μου έκδοση compiler δεν υποστήριζε έτσι το continue.Ήταν σαν να μην το έβλεπε νομίζω..

_________________
PRO-PRO.gr
Πρωτάθλημα Προγνωστικών
Programmer


Μέλος από: 22 Σεπ 2007
Μηνύματα: 67

View users profile
ΜήνυμαΣτις: 27 Νοε 2007 23:20    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

xarisss ανέφερε:
Ευχαριστώ για τη βοήθεια. Πρόσεξα όμως ότι η δική μου έκδοση compiler δεν υποστήριζε έτσι το continue.Ήταν σαν να μην το έβλεπε νομίζω..


αποκλείεται! To continue είναι δεσμευμένη λέξη της C/C++ και σε όλους τους compilers η εντολή άλματος continue συμπεριφέρεται ακριβώς το ίδιο! Είσαι αρχάριος και μπορεί να νομίζεις διάφορα, αλλά μην πιστεύεις και πολύ αυτά που νομίζεις, αν δεν μπορείς να τα τεκμηριώσεις με αποδείξεις.... Το πιθανότερο είναι να έκανες κάποιο λογικό λάθος και ο κώδικας να μην λειτουργούσε όπως νόμιζες...

Last edited by Programmer on 28 Νοε 2007 02:56, edited 1 time in total
Programmer


Μέλος από: 22 Σεπ 2007
Μηνύματα: 67

View users profile
ΜήνυμαΣτις: 27 Νοε 2007 23:30    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

xarisss ανέφερε:
Ουσιαστικά αυτό που θέλω είναι να σταματάνε να εκτελείται ένα από τα if κάθε φορά, αν δεν ισχύει το πρώτο που προσπελάζεται, να μην προχωράει παρακάτω.

ΥΓ: ευχαριστώ για την προηγούμενη απάντηση..


να χρησιμοποιήσεις τον συνδυασμό if...else που εξασφαλίζει ότι ένα από τα δύο σώματα εντολών θα εκτελεστεί.

px.
if ( συνθήκη )
{
εντολές....
}
else
{
εντολές....
}

Το ένα από τα δύο σύνολα εντολών θα εκτελεστεί ότι και να κάνεις (εκτός από το να βάλεις στο ένα σώμα κανενα goto στο άλλο σώμα, και μας τρελάνεις!)

πιο συγκεκριμένα για να εκτελεστεί μόνο ένα από τα τρια if του παρακάτω κώδικα
for (int m=0;m<totalNodes;m++)
{
if (nodeMatrix[minNode,m]==0)
continue;
if (d[m]==0)
{
d[m]=minValue+nodeMatrix[minNode][m];
continue;
}

if (((d[minNode]+nodeMatrix[minNode][m])<d[m])&&(nodeMatrix[minNode][m]!=0))
{
d[m]=minValue+nodeMatrix[minNode][m];
}
}

μπορέις να τον γράψεις σαν

for (int m=0;m<totalNodes;m++)
{
if (! (nodeMatrix[minNode][m]==0) ) //ή if (nodeMatrix[minNode][m] != 0 )
{
if (d[m]==0)
{
d[m]=minValue+nodeMatrix[minNode][m];

}
else if (((d[minNode]+nodeMatrix[minNode][m])<d[m]) && (nodeMatrix[minNode][m]!=0))
{
d[m]=minValue+nodeMatrix[minNode][m];
}
}//END IF (! (nodeMatrix[minNode][m]==0))
}//END FOR

Εσύ τον έγραψες τον λογικά λάθος κώδικα ή τον βρήκες κάπου?
xarisss


Μέλος από: 06 Σεπ 2002
Μηνύματα: 256+
Περιοχή: Volos
View users profile Visit posters website
ΜήνυμαΣτις: 28 Νοε 2007 09:19    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Αυτό που βρήκα ήταν κώδικας της C#, οπότε υπέθεσα ότι το continue λειτουργεί εκεί και όχι στη C++. Δεν αποκλείεται να υπάρχει λάθος κάπου αλλού και γι' αυτό να μη λειτουργεί το continue.

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


Σχετικά θέματα
 Θέματα   Απ/σεις   Αποστολέας   Τελευταίο μήνυμα 
Πώς τα πάμε από λίστες??SOS 1 karetta_seaworld 23 Ιουλ 2015 10:12
gvre Εμφάνιση τελευταίου μηνύματος
 
Τώρα είναι 30 Μαρ 2017 14:36 | 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