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

Κολημα σε εργασια πανω σε C++ !!


padelis71992

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

Δημοσ.

Το βρηκα το προβλημα γιατι κλεινει κατι παιζει μετα l-- και m++ που εχω βαλει τα αλλαξα σε l=l-1 και τωρα δεν βγαζει προβλημα...

Αλλα τωρα δεν συνεχιζει το προγραμμα κατι γινεται με την for και την while. Βλεπετε κατι λαθος; :-( :-( :-(

Καταρχήν άλλαξε την δήλωση μεγέθους πίνακα σε κάθε κλήση της emfanisi από 30 σε 29, κάνε το ίδιο και για το emfanisi του τελικού πίνακα (δηλαδή άλλαξε το μέγεθος από 15 σε 14).

Ύστερα αφαίρεσε το do & while βρόχο από την for(k=0;..

 

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

void emfanisi(int v[],int n)
{
int i;
for(i=0;i<=n;i++){
	cout<<v[i]<<endl;
}
}
int main(int argc, char *argv[])
{
int PinA[30];
int i;
for(i=0;i<=29;i++) {
	PinA[i]= rand()%10 + 1;
}
cout<<"o pinakas PinA apoteleitai apo"<<endl;
emfanisi(PinA,29);

int Npin[15];
int k,l=0,m=29;
for(k=0;k <=14;k++) {
//		do {
			Npin[k]=PinA[l]-PinA[m];
			l++;
			m--;
//		}	while (l==14);
}

cout<<"o pinakas Npin apoteleitai apo"<<endl;
emfanisi (Npin,14);

getchar();
return EXIT_SUCCESS;
}

 

Η έξοδος που θα πάρεις με αυτές τις μετατροπές είναι:

 

>
o pinakas PinA apoteleitai apo
1
3
1
7
8
6
6
9
7
5
9
2
10
3
1
3
2
4
8
10
2
1
6
5
10
3
2
10
7
2
o pinakas Npin apoteleitai apo
-1
-4
-9
5
5
-4
1
3
6
3
-1
-6
6
1
-2

 

* Προσπάθησα να μην κάνω καμία σημαντική αλλαγή στον κώδικα σου για να μην σε μπερδέψω.

* Οι τιμές του πίνακα είναι τυχαίες αλλά δεν αλλάζουν ποτέ μεταξύ των εκτελέσεων του προγράμματος (διότι δεν κάνεις seed την γεννήτρια ψευδοτυχαίων αριθμών) και μπορεί να διαφέρουν [?] από compiler σε compiler.

Δημοσ.

Και μια generic λυση απο μενα rolleyes.gif

>template< class _It>
void Print(_It first, _It last)
{
for(; first != last; ++first)
{
	std::cout<< *first << std::endl;
}
}
template< class _It> // το _It ειναι ο Χ τυπος μας, στη περιπτωση μας ειναι το int*
void DoSomthing(
_It pin1First, // πρωτο στοιχειο του πρωτου πινακα (pinN)
_It pin1Last,  // τελευταιο +1 στοιχειο του πρωτου πινακα (pinN+15) 
_It pin2First, // πρωτο στοιχειο του δευτερου πινακα (PinA)
_It pin2Last)  // τελευταιο +1 στοιχειο του δευτερου πινακα (PinA+30)
{
for(--pin2Last ; // εφοσον το pin2Last ειναι το τελευταιο +1 στοιχειο, πρεπει να το παμε μια θεση πισω

	pin1First != pin1Last && pin2First != pin2Last;
	// οσο η θεση του πρωτου στοιχειου του πρωτου πινακα δεν εχει φτασει το
	// τελευταιο +1 στοιχειο του πρωτου πινακα ΚΑΙ αντιστοιχα για το δευτερου
	// πινακα κανε τα παρακατω

	++pin1First, // βαλε το pin1First να δειχνει το επομενο στοιχειο
	--pin2Last,  // βαλε το pin2Last να δειχνει το προηγουμενο στοιχειο
	++pin2First) // βαλε το pin2First να δειχνει το επομενο στοιχειο
	
{
	*pin1First = *pin2Last -  *pin2First ; // κανε τη πραξη 
}
/*
φαση 1
=================================================================================================
pinN
 ___________________________________
|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|
|_|_|_|_|_|_|_|_|_|_|__|__|__|__|__|
 ^                       			^
 +-----------------------------------|----- pin1First
                                     +----- pin1Last
PinA
_____________________________________________________________________________
|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|29|
|_|_|_|_|_|_|_|_|_|_|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
 ^                                                                 			^
 +-----------------------------------------------------------------------------|--- pin2First
                                                                               +--- pin2Last
================================================================================================
φαση 2 ( for(--pin2Last ;....)
=================================================================================================
pinN
 ___________________________________
|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|
|_|_|_|_|_|_|_|_|_|_|__|__|__|__|__|
 ^                       			^
 +-----------------------------------|----- pin1First
                                     +----- pin1Last
PinA
_____________________________________________________________________________
|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|29|
|_|_|_|_|_|_|_|_|_|_|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
 ^                                                             			^
 +-------------------------------------------------------------------------|--- pin2First
                                                                           +--- pin2Last
================================================================================================
φαση 3 ( looping )
=================================================================================================
pinN
 ___________________________________
|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|
|_|_|_|_|_|_|_|_|_|_|__|__|__|__|__|
   ^                     			^
   +---------------------------------|----- pin1First
                                     +----- pin1Last
PinA
_____________________________________________________________________________
|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|29|
|_|_|_|_|_|_|_|_|_|_|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
   ^                                                                    ^
   +--------------------------------------------------------------------|--- pin2First
                                                            			+--- pin2Last
================================================================================================
φαση 4 ( looping... )
=================================================================================================
pinN
 ___________________________________
|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|
|_|_|_|_|_|_|_|_|_|_|__|__|__|__|__|
     ^                   			^
     +-------------------------------|----- pin1First
                                     +----- pin1Last
PinA
_____________________________________________________________________________
|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|29|
|_|_|_|_|_|_|_|_|_|_|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
     ^                                                   			^
     +---------------------------------------------------------------|--- pin2First
                                                                     +--- pin2Last
================================================================================================
φαση 16 ( looping... )
=================================================================================================
pinN
 ___________________________________
|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|
|_|_|_|_|_|_|_|_|_|_|__|__|__|__|__|
                                 ^   ^
                                 +---|----- pin1First
                                     +----- pin1Last
PinA
_____________________________________________________________________________
|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|29|
|_|_|_|_|_|_|_|_|_|_|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
                      			^                                    
                      			+----------------------------------------------- pin2First
                      			+----------------------------------------------- pin2Last
================================================================================================
                               The End
*/

}


int main(int argc, char *argv[])

{
int PinA[30];
int i;
for(i=0;i<=29;i++) {
	PinA[i]=rand()%10+1;
}
cout<<"o pinakas PinA apoteleitai apo"<<endl;
Print(PinA,PinA+30);

int Npin[15];

DoSomthing(Npin,Npin+15,PinA,PinA+30);
cout<<"o pinakas Npin apoteleitai apo"<<endl;
Print(Npin,Npin+15);
system("PAUSE");
return EXIT_SUCCESS;
}

 

 

EDIT: Best view at 1020p mrgreen.png

Δημοσ.

Ευχαριστω παιδια για τη λυση της ασκησης την εστειλα μολις. Βεβαια σωστη μονο τη μια γιατι την αλλη δεν την μπορεσα. Αλλα δεν πειραζει

Ευχαριστω και παλι!

Αρχειοθετημένο

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

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