Η σελίδα μας αναβαθμίστηκε, γι' αυτό τον λόγο τα μέλη μας θα πρέπει να ζητήσουν νέο κωδικό πρόσβασης από την υπηρεσία "Αποστολή κωδικού πρόσβασης".
Εάν το email με τον νέο κωδικό δεν έρθει στο inbox κοιτάξτε και στο spam folder. Ο server είναι φρέσκος και δεν έχει το reputation που του αξίζει.

Algorithmos sundiasmou arithmon

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Ntzes
Δημοσιεύσεις: 13
Εγγραφή: 16 Ιούλ 2008 19:45

Algorithmos sundiasmou arithmon

Δημοσίευση από Ntzes » 03 Αύγ 2008 15:32

Geia! Eimai neos sto xoro tou programatismou k den 3ero k polla.
Gnorizo ta vasika apo C++ k Java.
Thelo loipon na ftia3o ena programa pou tha kanei ta e3eis:
Thelo na ftia3o enan algorithmo pou tha tou dino ego kapoious arithmous, osous thelo ego (p.x. 10) k sti sunexeia tha tou leo posous arithmous thelo na mou sundiasei apo autous (p.x. 5) k na mou dosei stin e3odo mia lista me olous tous pithanous sundiasmous, (p.x. sundiazontas se 5ades k ta 10 noumera).
Parakato exo ton algorothmo pou me voitheia exo ftasei eos edo, alla exo kapoia lathi ta opoia den 3ero na diorthoso k epeisis den 3ero kata poso doulevei me ton tropo pou thelo ego, giati me ta lathi pou exei den mporo na kano compile.

Κώδικας: Επιλογή όλων

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


#define MEG_PYN 20
#define TEL_PYN 100

void main&#40;&#41;
&#123;

	int pyn&#91;MEG_PYN&#93;;
	int ap&#91;TEL_PYN&#93;;
	for&#40;int i=0;i<MEG_PYN;i++&#41;
	&#123;

	scanf&#40;"%d",pyn&#91;i&#93;&#41;;
	
	&#125;

		ap=metakinhshari8wmn&#40;pyn&#41;;

	for&#40;i=0;i<TEL_PYN;i++&#41;
	&#123;

	printf&#40;" %d, ",ap&#91;i&#93;&#41;;

	&#125;
&#125; // Paragei tyxaio ai8m ap to 1h to 0 mexri to MEG_PYN

int eyreshtyxaias8eshs&#40;&#41;
&#123;
	srand&#40;MEG_PYN&#41;;
	return rand&#40;&#41;;
&#125; //briskei ton ari8mo twn syndoiasmwn stwn ari8mwn
int eyreshari8moypi8anwnsydiasmwn&#40;int &#91;&#93; pyn&#41;
&#123;	
		int i=i;
		int j,z,e;
		int k,l,m;

		for&#40;i=1;i<MEG_PYN;i++&#41;
		&#123;
			z=i;
			j=z*&#40;z+1&#41;; //prospa8w na ypologsw paraontiko edw den jerw an to ekana kala
		
		&#125;
	if&#40;pyn!=NULL&#41;
	&#123;
		for&#40;i=1;i<MEG_PYN;i++&#41;
		&#123;
			 if&#40;psajimopynaka&#40;pyn,pyn&#91;i&#93;&#41;==1&#41;
			 &#123;
				 e++;
			 &#125;
		&#125;
		if&#40;e>0&#41;
		&#123;
			for&#40;i=1;i<e;i++&#41;
		&#123;
			k=i;
			l=k*&#40;k+1&#41;; //prospa8w na ypologsw paraontiko edw den jerw an to ekana kala
		&#125;
	&#125;
&#125;

if&#40;e>0&#41;
&#123;
	return &#40;int&#41;&#40;j/e&#41;;
&#125;

else
&#123;
	return &#40;int&#41;&#40;j&#41;;
&#125;

&#125; // an yparxei h timh einei 1 

int &#91;&#93; psajimopynaka&#40;int &#91;&#93; pyn, int val&#41;
&#123;
	int i=0;
	for&#40;i =0;i<MEG_PYN;i++&#41;
	&#123;
		if&#40;pyn&#91;i&#93;==val&#41;
		&#123;
			return 1;
		&#125;
		return 0;
	&#125;
&#125; // metakinei tous ari8moys

int metakinhshari8wmn&#40;int &#91;&#93; pyn&#41;;
&#123;
	int i,j;
	int ap&#91;TER_PYN&#93;;
	if&#40;pyn!=NULL&#41;
	&#123;
		int prosp=eyreshari8moypi8anwnsydiasmwn&#40;pyn&#41;;

			if&#40;prosp <=TER_PYN&#41;
			&#123;
				for&#40;i=0;i<prosp;i++&#41;
				&#123;
					j=eyreshtyxaias8eshs&#40;&#41;;
					ap&#91;i&#93;=pyn&#91;j&#93;;
				&#125;
			&#125;
			return ap;
	&#125;
&#125;

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Algorithmos sundiasmou arithmon

Δημοσίευση από soteres2002 » 04 Αύγ 2008 03:11

Ούι ο τζές! Το θέμα έχει συζητηθεί και άλλη φορά στο φόρουμ διότι το ρώτησε και κάποιος άλλος παλιότερα και έδωσα πλήρη εξήγηση για το πώς παράγεις τέτοιους συνδιασμούς (είναι απλό).

Το ότι δεν βγάζει πάντα το αποτέλεσμα που θές σημαίνει ότι δεν είναι γενικά σωστό => όχι σωστό => ο αλγόριθμός που έφτιαξες δεν λύνει το πρόβλημα που προσπαθείς να λύσεις => φτιάξε νέο αλγόριθμο και εξασφάλισε ότι δουλεύει γενικά => υλοποίησέ το σε γλώσσα της αρεσκείας σου (σωστά). Στην περίπτωσή σου επειδή το πας στατιστικά, η υλοποίηση που έχεις είναι τελείως ασταθής (όσο την εχω δει). Ηθικό δίδαγμα: άν έχεις να υλοποιήσεις κάτι που δεν ξέρεις καλά ακόμα και θεωρητικά κάνε ένα κόπο να μάθεις καλά έναν straightforward τρόπο να το λύσεις ή παίξε πρώτα στο χαρτί και δες αν αυτό που σκέφτεσαι όντως δουλέβει. Επίσης ταυτόχρονα σκέψου μήπως πάς Θεσ/νίκη Γιάννενα μέσω Πακιστάν χωρίς να ξέρεις το δρόμο, ενώ είναι ηδη γενικά γνωστό και μπορείς να μάθεις εύκολα. Αν δεις ότι κάνεις κάτι τέτοιο, ψάξε κάπου για κάποιο hint ή μια έτοιμη υλοποίηση. Αυτό με τους συνδιασμούς υπάρχει και σαν θεωρία εδώ και 300 χρόνια, κρίμα να ανακαλύψεις τη θεωρία πάλι μόνος. Είναι ανιαρό στην αρχή, αλλά αν μάθεις να ενεργείς με αυτόν τον τρόπο ίσα ίσα θα δείς ότι κερδίζεις και χρόνο. Αυτά τα λέω διότι κοιτώντας τον κώδικά σου φαίνεται ότι δεν έχεις συνειδητοποιήσει ή και δεν ξέρεις ότι αυτό γίνεται με ντετερμινιστικό τρόπο (υπάρχουν συγκεκριμένα βήματα) και όχι βάσει πιθανότητας (γιατί βλεπω ότι θες να βρείς κάτι τυχαίες θέσεις κτλ κτλ).

Βασικά αυτά με τα παραγοντικά τι τα θές; Συνδιασμό παράγεις αν βρεις το καρτεσιανό γινόμενο ενός συνόλου αντικειμένων (Cartesian Product). Για δεδομένο αριθμό ν αντικειμένων ο συνδιασμός αυτών ανα κ αντικείμενα είναι εκ των προτέρων γνωστός: (ν, κ) = ν! / [κ! * (ν - κ)! ] όπου κ <= ν, για ν,κ Ε Ζ. Ο αριθμός των μεταθέσεων ν αντικειμένων (χαρακτήρες ή οτιδήποτε) είναι επίσης γνωστό και είναι ν!. Αν θέλω να φτιάξω μια ακολουθία κ αντικειμένων χτίζωντάς την πέρνωντας κάθε φορά 1 αντικείμενο από ένα σύνολο ν αντικειμένων, τότε υπάρχουν pow(v, k) τέτοιες ακολουθίες/συνδιασμοί. Πχ το σύνολο όλων των δυαδικών ακολουθιών (από 0 και 1) με v bits έχει μέγεθος pow(2, v).

PS: mods, LaTeX πότε θα βάλουμε στο forum για να γράφουμε καθαρά κανένα μαθηματικό όταν χρειάζεται; :)

Ntzes
Δημοσιεύσεις: 13
Εγγραφή: 16 Ιούλ 2008 19:45

Algorithmos sundiasmou arithmon

Δημοσίευση από Ntzes » 04 Αύγ 2008 17:15

Ep ki allos tzes sto foroum. :lol:
Opos eipa k stin arxi ton algorithmo auto ton exo ftia3ei me voitheia giati eimai neos ston xoro tou programatismou k den 3ero k polla.
Diladi tora eimai entelos ektos topou k xronou me auto pou exo???
Auta pou eipes ok alla den 3ero k para polla gia mporeso na doulepso monos mou pano se auta.
Mipos exeis kapoion apo autous tous algorithmous pou mou eipes oti uparxoun idi oste na ton xrisimopoiiso san odigo k na ftia3o to programataki pou thelo????? :question:

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Algorithmos sundiasmou arithmon

Δημοσίευση από soteres2002 » 04 Αύγ 2008 18:02

Ntzes έγραψε:Ep ki allos tzes sto foroum. :lol:
Opos eipa k stin arxi ton algorithmo auto ton exo ftia3ei me voitheia giati eimai neos ston xoro tou programatismou k den 3ero k polla.
Diladi tora eimai entelos ektos topou k xronou me auto pou exo???
Auta pou eipes ok alla den 3ero k para polla gia mporeso na doulepso monos mou pano se auta.
Όχι δεν είσαι εκτός τόπου και χρόνου, σόρρυ αν έγινα κατανοητός έτσι! Όταν φτιάχνεις κάτι που δεν το ξέρεις καλά ή νομίζεις ότι δεν το ξέρεις είναι να ψάξεις λίγο στην αρχή πχ στο Google. Για προσπάθεια (κυρίως λόγω φαντασίας και πιθανόν περιέργειας να το παλέψεις τελείως μόνος) πολύ καλή προσπάθεια! Εύγε!

Btw, με το comment μου δεν ήθελα να σε κάνω να πεις οτι είσαι εκτός τόπου και χρόνου, απλά το λέω γενικά σαν συμβουλή, κι ας ερμηνεύτηκε έτσι. Και, btw, γεννήθηκα Θεσσαλονικιός και είμαι Τζες τα τελευταία 3 χρόνια. :p
Ntzes έγραψε: Mipos exeis kapoion apo autous tous algorithmous pou mou eipes oti uparxoun idi oste na ton xrisimopoiiso san odigo k na ftia3o to programataki pou thelo????? :question:
Σου δίνω μερικά links από Wikipedia και άλλες σελίδες μιας και το ζήτημα πιθανόν σε ενδιαφέρει γενικότερα ή λίγο παραπέρα (αφορά τη συνδιαστική / διακριτά μαθηματικά μόνο με θεωρία):

http://www.mathsisfun.com/combinatorics ... tions.html
http://en.wikipedia.org/wiki/Permutations
http://en.wikipedia.org/wiki/Combinations

Να και μερικά links από το φόρουμ + κάποια λινκς με άμεσες εφαρμογές όλων αυτών που πιθανόν θα σε ενδιαφέρουν εξίσου:
Πολλαπλασιαμός πολυωνύμων: άμεση εφαρμογή του καρτεσιανού γινομένου + εύρεση όλων των μεταθέσεων/συνδιασμών
μεταθέσεις αντικειμένων

Μάλλον υπάρχουν και άλλες αναφορρέςεδώ στο φόρουμ, με τα βίας ξέθαψα 2 από μια αναζήτηση.

Ntzes
Δημοσιεύσεις: 13
Εγγραφή: 16 Ιούλ 2008 19:45

Algorithmos sundiasmou arithmon

Δημοσίευση από Ntzes » 04 Αύγ 2008 19:23

Loipon ta epsa3a ola osa mou edoses k einai ola auta pou xriazomai.
An k den xonevo k polu ta mathimatika.....
Idika oi algoritmoi apo to wiki einai auto pou thelo.
Epsa3a loipon k vrika enan algorithmo pou nomizo oti einai auto pou thelo.
An k den prepei na einai se C++ pou ego gnorizo.

Κώδικας: Επιλογή όλων

#include <iostream>

#include <vector>

using namespace std;

#define SIZE 4

vector< vector< int > > reorder&#40; vector< int > set &#41;;

int main&#40;&#41;
&#123;
    vector< int > set;
	vector< vector< int > > sets;

	for &#40; int i = 0; i < SIZE; i ++ &#41; 
	&#123;
		set.push_back&#40; i &#41;;	
	&#125;
	sets = reorder&#40; set &#41;;
	for &#40; i = 0; i < sets.size&#40;&#41;; i ++ &#41;
	&#123;
		for&#40; int j = 0; j < SIZE; j ++ &#41;
		&#123;
			cout<< sets&#91; i &#93;&#91; j &#93; << " ";
		&#125;
		cout << endl;
	&#125;
	system&#40; "pause" &#41;;
&#125;

vector< vector< int > > reorder&#40; vector< int > set &#41;
&#123;
	vector< vector< int > > sets;

	if&#40; set.size&#40;&#41; == 2 &#41; 
	&#123;
		vector< int > set1;

		set1.push_back&#40; set&#91; 0 &#93; &#41;;
		set1.push_back&#40; set&#91; 1 &#93; &#41;;

		vector< int > set2;

		set2.push_back&#40; set&#91; 1 &#93; &#41;;
		set2.push_back&#40; set&#91; 0 &#93; &#41;;

		sets.push_back&#40; set1 &#41;;
		sets.push_back&#40; set2 &#41;;
	&#125; 
	else 
	&#123;
		for &#40; unsigned int i = 0; i < set.size&#40;&#41;; i ++ &#41;
		&#123;
			vector< vector< int > > setsI;
			int value = set&#91; i &#93;; 	//cout << value << endl;

			vector< int > setI;

			for &#40; unsigned int j = 0; j < set.size&#40;&#41;; j ++ &#41;
			&#123;
				if &#40; i != j &#41;
					setI.push_back&#40; set&#91; j &#93; &#41;;				
			&#125;	//cout << "size = " << setI.size&#40;&#41; << endl;

			setsI = reorder&#40; setI &#41;;
			for&#40; j = 0; j < setsI.size&#40;&#41;; j ++ &#41; 
			&#123;
				setsI&#91; j &#93;.push_back&#40; value &#41;;
				sets.push_back&#40; setsI&#91; j &#93; &#41;;
			&#125;			
		&#125;
	&#125;	
	return sets;
&#125;
To thema einai oti den gnorizo ti kanoun kapoia pragmata opos ta vector k to using namespace std;
Apo ekei k pera o kodikas einai auto pou thelo to etre3a k einai ok ektos tou oti kanei mono me 4 arithmous sundiasmous.
Pos tha to metatrepso na tou dino ego osous arithmous thelo na mou kanei k gia osous arithmous thelo ego kathe fora sundiasmous k oxi gia olous (p.x. na tou dino 10 aritmous k na tou leo na mou sundiasei se 5ades i se 3ades k tous 10) elpizo na ginome katanoitos... :( :( :( :( :(

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Algorithmos sundiasmou arithmon

Δημοσίευση από soteres2002 » 04 Αύγ 2008 20:33

Ntzes έγραψε: Idika oi algoritmoi apo to wiki einai auto pou thelo.
Καλώς.

Ntzes έγραψε: To thema einai oti den gnorizo ti kanoun kapoia pragmata opos ta vector k to using namespace std;
Ο κώδικας που παρέθεσες είναι κώδικας C++. Το using namespace std; είναι μια οδηγία που λέει στον compiler "ενεργοποίησε" στο global scope του κώδικα ολες τις κλάσεις, συναρτήσεις και global μεταβλητές (και ενδεχομένως και άλλα) που παρέχονται από τo standard namespace που της libstd++. Αν έχεις γράψει κώδικα σε Unix/Linux ίσως έχεις παρατηρήσει ότι ο compiler κάνει link το object αρχείο με την βιβλιοθήκη libc. Ε, ισχύει το ακριβώς ίδιο και για την C++, και ο compiler κάνει link με την libstdc++.

Το vector είναι ένα αντικείμενο, μια κλάση, η οποία είναι υλοποιημένη στην βιβλιοθήκη vector. Δές και το include. Το vector είναι ένας δυναμικός πίνακας, δηλαδή μπορεί να αποθηκεύει οποιοδήποτε αντικείμενο ανα πάσα στιγμή, να αυξάνει και να μειώνει το μέγεθός της. Δηλαδή σου παρέχει ότι δεν σου παρέχει ένας στατικός πίνακας.

Άν θέλεις να αποθηκεύεις ακέραιους σε ένα δυναμικό πίνακα vector, δηλώνεις ένα instance της κλάσης αυτής ώς:

Κώδικας: Επιλογή όλων

vector<int> set;
Για να προσθέσεις ένα ακέραιο στη δομή, καλείς την μέθοδο push_back της κλάσης vector. Δηλαδή:

Κώδικας: Επιλογή όλων

set.push_back&#40;10&#41;;
Για να αλλάξεις το μέγεθος των συμβολοσειρών/συνδιασμών απλά αλλάζεις τα αντίστοιχα μεγέθη στους βρόγχους και τις διαστάσεις των αντικειμένων vector.

Ntzes
Δημοσιεύσεις: 13
Εγγραφή: 16 Ιούλ 2008 19:45

Algorithmos sundiasmou arithmon

Δημοσίευση από Ntzes » 04 Αύγ 2008 22:35

Ok nomizo pos mpika sto noima.
10000000000000000000 euxaristo!!!
Tha to doulepso autes tis meres k molis to telioso i an andimetopiso kapoio provlima tha 3anagrapso.
Den se rotisa prin, pos k sta Giannena re Thessalonikogiannioti, logoi ergasias se eferan i tpt allo???

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Algorithmos sundiasmou arithmon

Δημοσίευση από soteres2002 » 05 Αύγ 2008 14:54

Ήρθα στα Γιάννενα λόγω σπουδών, και απ ότι φαίνεται θα μείνω αρκετά χρόνια ακόμα. Τα Γιάννενα είναι από τις πιο οκ πόλεις για να περάσεις χάρμα στα φοιτητικά χρόνια. Ας μη το αναλύσουμε γιατί... :P

Ntzes
Δημοσιεύσεις: 13
Εγγραφή: 16 Ιούλ 2008 19:45

Algorithmos sundiasmou arithmon

Δημοσίευση από Ntzes » 08 Αύγ 2008 02:21

Loipon eftia3a arxika auto pou ithela k apo do k pera peiramatizome me metatropes pano se auto.

Κώδικας: Επιλογή όλων

#include <iostream>

#include <vector>

using namespace std;

int SIZE;

vector< vector< int > > reorder&#40; vector< int > set &#41;;

int main&#40;&#41;
&#123;
    vector< int > set;
	vector< vector< int > > sets;
	
	cout <<"dose pluthos arithmon&#58;"<< endl;
	cin >> SIZE;
	int x;
	cout <<"dose pluthos sundiasmon&#58;"<< endl;
	cin >> x;
	for &#40; int i = 1; i <= SIZE; i ++ &#41; 
	&#123;
		set.push_back&#40;i&#41;;	
	&#125;
	sets = reorder&#40; set &#41;;
	for &#40; i = 0; i < sets.size&#40;&#41;; i ++ &#41;
	&#123;
		for&#40; int j = 1; j <= x; j ++ &#41;
		&#123;
			cout<< sets&#91; i &#93;&#91; j &#93; << " ";
		&#125;
		cout << endl;
	&#125;
	system&#40; "pause" &#41;;
&#125;

vector< vector< int > > reorder&#40; vector< int > set &#41;
&#123;
	vector< vector< int > > sets;

	if&#40; set.size&#40;&#41; == 2 &#41; 
	&#123;
		vector< int > set1;

		set1.push_back&#40; set&#91; 0 &#93; &#41;;
		set1.push_back&#40; set&#91; 1 &#93; &#41;;

		vector< int > set2;

		set2.push_back&#40; set&#91; 1 &#93; &#41;;
		set2.push_back&#40; set&#91; 0 &#93; &#41;;

		sets.push_back&#40; set1 &#41;;
		sets.push_back&#40; set2 &#41;;
	&#125; 
	else 
	&#123;
		for &#40; unsigned int i = 0; i < set.size&#40;&#41;; i ++ &#41;
		&#123;
			vector< vector< int > > setsI;
			int value = set&#91; i &#93;; 	
			//cout << value << endl;

			vector< int > setI;

			for &#40; unsigned int j = 0; j < set.size&#40;&#41;; j ++ &#41;
			&#123;
				if &#40; i != j &#41;
					setI.push_back&#40; set&#91; j &#93; &#41;;				
			&#125;	
			//cout << "size = " << setI.size&#40;&#41; << endl;

			setsI = reorder&#40; setI &#41;;
			for&#40; j = 0; j < setsI.size&#40;&#41;; j ++ &#41; 
			&#123;
				setsI&#91; j &#93;.push_back&#40; value &#41;;
				sets.push_back&#40; setsI&#91; j &#93; &#41;;
			&#125;			
		&#125;
	&#125;	
	return sets;
&#125;
Euxaristo k pali ston soteres2002 pou xoris tin voitheia tou k tis epe3igiseis tou akoma tha vriskomoun allou.
Ena teleutaio tora pou thelo einai pos ta to kano na trexei kateuthian sto termatiko xoris na anoigo tin C++???
Me tin Java 3ero pos ginete alla stin C++ den gnorizo.
Opoios 3erei.....

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Algorithmos sundiasmou arithmon

Δημοσίευση από soteres2002 » 08 Αύγ 2008 13:08

Ntzes έγραψε: Ena teleutaio tora pou thelo einai pos ta to kano na trexei kateuthian sto termatiko xoris na anoigo tin C++???
Me tin Java 3ero pos ginete alla stin C++ den gnorizo.
Opoios 3erei.....
Για να το τρέχεις αυτόνομα, πρέπει να κάνεις compile τον κώδικα. Αυτό ήδη γίνεται μέσα από το IDE που χρησιμοποιείς, άρα είτε παίρνεις το .exe binary είτε το unix binary αν είσαι σε windows/linux. Απλούστερα, παίρνεις τον κώδικα πχ είναι το αρχείο coςmbinatorics.cpp και αν:

1) είσαι σε Unix/Linux και έχεις τον g++ compiler (υπάρχει στα πακέτα σου αν δεν είναι ηδη εγκατεστημένο), τότε δίνεις την εντολή:

Κώδικας: Επιλογή όλων

g++ combinatorics.cpp -o combinatorics
Υπόψην, αν το πρόγραμμά σου είναι κατανεμημένο σε πολλά αρχεία που τα συνδέεις όλα με headers, στο compilation επιβάλλεται μετά το πρώτο αρχείο combinatorics.cpp να μπουν και τοιχόν άλλα αρχεία που αποτελούν το πρόγραμμα.

Μετά την μεταγλώττιση, θα δημιουργηθεί ένα .exe ή ένα unix binary. Ασχέτως το λειτουργικό, το πρόγραμμα εκτελείται από ένα terminal δίνωντας το όνομα του binary (και για Windows άν παραλείψεις το .exe δεν χαλάει τίποτα)

2) Στα Windows δεν υπάρχει standard compiler, υπάρχουν πάρα πολλοί από πολλές εταιρίες. Άρα δεν μπορώ να σου τα καλύψω όλα εδώ. Θα περιοριστώ στον vc compiler του Microsoft Visual Studio 2008 που χρησιμοποιώ εγώ:

Άν έχεις ένα αρχείο a.cpp, για να το κάνεις compile, αρκεί να ανοίξεις ένα τερματικό, να αλλάξεις directory στο directory που είναι ο κώδικας, δηλαδή το αρχείο a.cpp, και να δώσεις την εντολή:

Κώδικας: Επιλογή όλων

cl a.cpp
Άν όλα πάνε οκ, θα έχεις το εκτελέσιμο στο τρέχον directory. Υπόψην για το VS2008, πρέπει να αλλάξεις το PATH (my compupter > για προχωρημένους > μεταβλητές περιβάλλοντος. Κάνεις edit την PATH, προσθέτωντας στο τέλος ένα ";" και μετά το path στο folder που υπάρχουν τα εκτελέσιμα των compiler, profiler κτλ) ώστε να βρίσκει τα εκτελέσιμα cl καθώς και άλλα που χρησιμοποιούνται πολύ. Τη διαδρομή προς αυτά θα την βρείς στο vc φάκελο της εγκατάστασης στο φάκελο bin όπου περιέχονται όλα τα εκτελέσιμα βοηθήματα.

Συμπληρωματικά, στα Windows μπορείς να χρησιμοποιήσεις το Cygwin της Red Hat, το οποίο είναι ένα οικονικό περιβάλλον εξομοίωσης ενός πλήρους συστήματος Unix με την έννοια ότι έχεις ένα 1:1 Unix shell, ό,τι βιβλιοθήκη θές, χρησιμοποιείς τις ίδιες εντολές όπως και στο unix/linux, απλά όλα ελέγχονται από τον πυρήνα των Windows. Στο Cygwin, μπόρείς να ακολουθήσεις το βήμα 1, σαν να ήσουν σε κάποιο linux distro. Θα το βρείς εδώ: http://www.redhat.com/software/cygwin/.

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες