Ασκήσεις στην C

nefi

Πολύ δραστήριο μέλος

Η nefi αυτή τη στιγμή δεν είναι συνδεδεμένη. Μας γράφει από Θεσσαλονίκη (Θεσσαλονίκη). Έχει γράψει 1.097 μηνύματα.
:bye: οποιος γνωριζει απο dev c ++ ας με βοηθησει εχω κολλησει σε μια ασκ...:(:( (στειλτε μου πμ)

ασκ
Να γραφεί πρόγραμμα που θα υπολογίζει τα ρέστα που πρέπει να δώσει ένα αυτόματο μηχάνημα έκδοσης εισιτηρίων[FONT=Arial,Arial][FONT=Arial,Arial]. [/FONT][/FONT]Τα εισιτήρια κοστίζουν [FONT=Arial,Arial][FONT=Arial,Arial]0.75€. [/FONT][/FONT]Ο αλγόριθμος θα δέχεται το ποσό που πληρώνει ο πελάτης και θα επιστρέφει τον αριθμό των κερμάτων με αξία [FONT=Arial,Arial][FONT=Arial,Arial]2€, 1€, 0.50€, 0.20€ 0.10€ [/FONT][/FONT]και [FONT=Arial,Arial][FONT=Arial,Arial]0.05€. [/FONT][/FONT]Ο αλγόριθμος πρέπει να λειτουργεί με τέτοιο τρόπο ώστε τα ρέστα να δίνονται με τον μικρότερο δυνατό αριθμό νομισμάτων[FONT=Arial,Arial][FONT=Arial,Arial]. [/FONT]
[/FONT]
-----------------------------------------
κπς-κπ??

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

 
Που την βρήκες αυτή; Άσκηση στη σχολή;


Έτοιμη άσκηση δεν είναι και πολύ καλό να σου δώσουμε, ξεκίνα εσύ και όπου κολλήσεις βλέπουμε.

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

 
:bye: οποιος γνωριζει απο dev c ++ ας με βοηθησει εχω κολλησει σε μια ασκ...:(:( (στειλτε μου πμ)

ασκ
Να γραφεί πρόγραμμα που θα υπολογίζει τα ρέστα που πρέπει να δώσει ένα αυτόματο μηχάνημα έκδοσης εισιτηρίων[FONT=Arial,Arial][FONT=Arial,Arial]. [/FONT][/FONT]Τα εισιτήρια κοστίζουν [FONT=Arial,Arial][FONT=Arial,Arial]0.75?. [/FONT][/FONT]Ο αλγόριθμος θα δέχεται το ποσό που πληρώνει ο πελάτης και θα επιστρέφει τον αριθμό των κερμάτων με αξία [FONT=Arial,Arial][FONT=Arial,Arial]2?, 1?, 0.50?, 0.20? 0.10? [/FONT][/FONT]και [FONT=Arial,Arial][FONT=Arial,Arial]0.05?. [/FONT][/FONT]Ο αλγόριθμος πρέπει να λειτουργεί με τέτοιο τρόπο ώστε τα ρέστα να δίνονται με τον μικρότερο δυνατό αριθμό νομισμάτων[FONT=Arial,Arial][FONT=Arial,Arial]. [/FONT]
[/FONT]
-----------------------------------------
κπς-κπ??

Ελα ρε συ εύκολο είναι αυτό.Που αρκιβώς κολλάς?

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

 
:bye: οποιος γνωριζει απο dev c ++ ας με βοηθησει εχω κολλησει σε μια ασκ...:(:( (στειλτε μου πμ)

ασκ
Να γραφεί πρόγραμμα που θα υπολογίζει τα ρέστα που πρέπει να δώσει ένα αυτόματο μηχάνημα έκδοσης εισιτηρίων[FONT=Arial,Arial][FONT=Arial,Arial]. [/FONT][/FONT]Τα εισιτήρια κοστίζουν [FONT=Arial,Arial][FONT=Arial,Arial]0.75?. [/FONT][/FONT]Ο αλγόριθμος θα δέχεται το ποσό που πληρώνει ο πελάτης και θα επιστρέφει τον αριθμό των κερμάτων με αξία [FONT=Arial,Arial][FONT=Arial,Arial]2?, 1?, 0.50?, 0.20? 0.10? [/FONT][/FONT]και [FONT=Arial,Arial][FONT=Arial,Arial]0.05?. [/FONT][/FONT]Ο αλγόριθμος πρέπει να λειτουργεί με τέτοιο τρόπο ώστε τα ρέστα να δίνονται με τον μικρότερο δυνατό αριθμό νομισμάτων[FONT=Arial,Arial][FONT=Arial,Arial]. [/FONT]
[/FONT]
-----------------------------------------
κπς-κπ??

το dev δεν ειναι ο compiler?

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

 
δεν την θελω ετοιμη αλλα να με βοηθησετε να ξεκολλησω....

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

 
Το DevC++ που κολλάει με την ΑΕΠΠ; (btw άθλιο "IDE") Ασχολείσαι με C ή C++; Αν όχι, τότε μόνο και μόνο το γεγονός ότι σου πέρασε από το μυαλό ότι μπορείς να γράψεις ΓΛΩΣΣΑ στο DevC++ σημαίνει πως πρέπει να ξαναδιαβάσεις το σχολικό και να πάρεις χαμπάρι το τι γίνεται.... Αν πάλι ασχολείσαι, κλείσε μουσικές, πισιά κτλ και σκέψου ήρεμα.

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

 
Code:
#include <stdio.h>
main()
{ 
int e,z,r,h,k,w,c,f,g,j,l,x,re;
float poso; 
 
scanf("%f",&poso);
if (poso==0.75) {printf("δεν εχεις ρεστα");}
 
 if (poso<0.75) {printf("δεν συμπληρωνεται το ποσο");}
if (poso>0.75)
{
poso-0.75=re;
re*100=re;
re/200=e;
re%200=c;
c/100=z;
c%100=f;
f/50=r;
f%50=g;
g/20=h;
g%20=j;
j/10=k;
j%10=l;
l/5=w;
l%5=x; }
printf("τα %d%d%d%d%d%d ρεστα ειναι",e*2+z*1+r*0.5+h*0.2+k*0.1+w*0.05);
getchar();
getchar();}


τα e=2ευρα z=μονοευρα r=50λεπτα h=20λεπτα k=10λεπτα w=5λεπτα

re=ρεστα,
poso=τα λεφτα που βαζει κπς για το εισητηριο

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

 
Ωραία.
Για αρχή τις παρατηρήσεις που καλό θα ήταν να τις έχετε όλοι:

1. Βάζουμε ονόματα μεταβλητών που δηλώνουν, τουλάχιστον έμεσα στο τι αναφέρονται.
Πχ, την μεταβλητή για τα μονόευρα δεν χρειάζεται να την δηλώσεις σαν z, μπορείς κάλλιστα να την δηλώσεις oneEuroCoin, one_euro_coin, coin_of_one_euro κτλ.

2. Βάζουμε στηλοθέτες (tabs).
Κακό παράδειγμα κώδικα (πέραν του δικού σου)

Code:
int function ()
{
printf("this is a function");
return 0;
}

καλό παράδειγμα

Code:
int function ()
{
    printf("this is a function");
    return 0;
}

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


Έπειτα, το πιο σημαντικό λάθος όλων.
Το σύμβολο = στην C σημαίνει ανάθεση
και όχι ισότητα.

Δεν μπορείς να γράψεις:
Code:
poso-0.75=re;

Αν θες η re να πάρει την τιμή poso - 0.75 την γράφεις ως:
Code:
re = poso - 0.75;

Κάνε το ίδιο σε όλες.

Edit:

Άλλο ένα πεταχτό: δήλωνε τύπο στις συναρτήσεις σου.

Το
Code:
main()

κάντο:

Code:
int main(int argc, char **argv)

και κάτω κάτω πριν το τελευταίο } βάλε ένα:

Code:
return 0;

Edit 2: Άλλο ένα πολύ βασικό

Το [re] είναι integer και πας να του βάλεις τιμή float.

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

 
παλι λαθος μου βγαζει....:(

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

 
Έκανες τις αλλαγές που σου είπε ο Eruyomo? Δεν σου είπε την λύση, σου είπε τον τρόπο που πρέπει να γράψεις ώστε να καταλήξεις στην λύση.

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

 
παλι λαθος μου βγαζει....:(

Κάνε post τον νέο σου κώδικα καθώς και copy/paste το λάθος που σου βγάζει.

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

 
Code:
#include <stdio.h>
main()
{ 
int e,z,r,h,k,w,c,f,g,j,l,x,re;
float poso;
 
 
scanf("%f",&poso);
poso=poso*100;
if (poso==75) {printf("dn exeis resta");}

 if (poso<75) {printf("dn symplhronetai to poso");}
if (poso>75)
{
re=poso-75;
re=re*100;
e=re/200;
c=re%200;
z=c/100;
f=c%100;
r=f/50;
g=f%50;
h=g/20;
j=g%20;
k=j/10;
l=j%10;
w=l/5;
x=l%5; 
printf(" %dn",c);
printf(" %dn",z);
printf(" %dn",r);
printf(" %dn",h);
printf(" %dn",k);
printf(" %dn",w);
}
getchar();
getchar();
getchar();}
-----------------------------------------
το βρηκααααα!


Code:
#include <stdio.h>
main()
{ 
int e=0,z=0,r=0,h=0,k=0,w=0,c,f,g,j,l,x,re;
float poso;
printf("rikse lefta");
scanf("%f",&poso);
poso=poso*100;
if (poso==75) {printf("δν εχεις ρεστα");}

 if (poso<75) {printf("δν συμπληρωνεται το ποσο");}
if (poso>75)
{
re=poso-75;
e=re/200;
c=re%200;
z=c/100;
f=c%100;
r=f/50;
g=f%50;
h=g/20;
j=g%20;
k=j/10;
l=j%10;
w=l/5;
x=l%5; 
printf(" τα ρεστα ειναι: %d 2eura, %d 1eura, %d 50lepta, %d 20lepta, %d 10lepta, %d 5lepta", e,z,r,h,k,w);
}
getchar();
getchar();
getchar();}[code\]

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

 
Και ο Eruyomo μιλάει σε τοίχο μάλλον :P
Που είναι βρε όλες οι συμβουλές καλής συγγραφής κώδικα που σου έδωσε;

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

 
Και ο Eruyomo μιλάει σε τοίχο μάλλον :P
Που είναι βρε όλες οι συμβουλές καλής συγγραφής κώδικα που σου έδωσε;


τρεχει:D:P

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

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

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

 
οκ;)

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

 
Δες μια πιο καλλωπισμένη έκδοση και σύγκρινε μόνη σου.

Code:
int main(int argc, char **argv)
{ 
	int 2euroCoins, 1euroCoins, 50centCoins, 20centCoins, 10centCoins, 5centCoins, change;
	float poso;
	
	/* Εισαγωγή χρημάτων. */
	printf("Ρίξε λεφτά.n");
	scanf("%f", &poso);
	poso = poso * 100;
	
	/* Εάν το ποσό είναι ακριβές, δεν υπολογίζονται ρέστα. */
	if ( poso == 75 )
	{
		printf("Δεν έχεις ρέστα.n");
	}	
	
	/* Εάν το ποσό δεν επαρκεί, τυπώνεται αντίστοιχο μήνυμα. */
	else if ( poso < 75 )
	{
		printf("Δε συμπληρώνεται το ποσό.n");
	}	
	
	/* Αλλιώς, υπολογίζονται τα ρέστα. Ξεκινάμε με τα κέρματα μεγαλύτερης αξίας για να ελαχιστοποιήσουμε τον αριθμό των κερμάτων */
	else
	{
		change = poso - 75;
		
		2eurocoins = change / 200;
		change = change % 200;
		
		1euroCoins = change / 100;
		change = change % 100;
		
		50centCoins = change / 50;
		change = change % 50;
		
		20centCoins = change / 20;
		change = change % 20;
		
		10centCoins = change / 10;
		change = change % 10;
		
		5centCoins = change / 5;
		change = change % 5;
		
		/* Εκτύπωση ρέστων */
		printf("Τα ρέστα είναι: %d 2ευρα, %d 1ευρα, %d 50λεπτα, %d 20λεπτα, %d 10λεπτα, %d 5λεπτα", 2euroCoins, 1euroCoins, 50centCoins, 20centCoins, 10centCoins, 5centCoins);
	}
	
	return 0;
}

Έχει και newline στο τέλος eru :P

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

 
Δες μια πιο καλλωπισμένη έκδοση και σύγκρινε μόνη σου.

Code:
int main(int argc, char **argv)
{ 
    int 2euroCoins, 1euroCoins, 50centCoins, 20centCoins, 10centCoins, 5centCoins, change;
    float poso;
    
    /* Εισαγωγή χρημάτων. */
    printf("Ρίξε λεφτά.n");
    scanf("%f", &poso);
    poso = poso * 100;
    
    /* Εάν το ποσό είναι ακριβές, δεν υπολογίζονται ρέστα. */
    if ( poso == 75 )
    {
        printf("Δεν έχεις ρέστα.n");
    }    
    
    /* Εάν το ποσό δεν επαρκεί, τυπώνεται αντίστοιχο μήνυμα. */
    else if ( poso < 75 )
    {
        printf("Δε συμπληρώνεται το ποσό.n");
    }    
    
    /* Αλλιώς, υπολογίζονται τα ρέστα. Ξεκινάμε με τα κέρματα μεγαλύτερης αξίας για να ελαχιστοποιήσουμε τον αριθμό των κερμάτων */
    else
    {
        change = poso - 75;
        
        [COLOR=Red]2[/COLOR]eurocoins = change / 200;
        change = change % 200;
        
        [COLOR=Red]1[/COLOR]euroCoins = change / 100;
        change = change % 100;
        
        [COLOR=Red]50[/COLOR]centCoins = change / 50;
        change = change % 50;
        
        [COLOR=Red]20[/COLOR]centCoins = change / 20;
        change = change % 20;
        
        [COLOR=Red]10[/COLOR]centCoins = change / 10;
        change = change % 10;
        
        [COLOR=Red]5[/COLOR]centCoins = change / 5;
        change = change % 5;
        
        /* Εκτύπωση ρέστων */
        printf("Τα ρέστα είναι: %d 2ευρα, %d 1ευρα, %d 50λεπτα, %d 20λεπτα, %d 10λεπτα, %d 5λεπτα", 2euroCoins, 1euroCoins, 50centCoins, 20centCoins, 10centCoins, 5centCoins);
    }
    
    return 0;
}
Έχει και newline στο τέλος eru :P

Κόβεσαι.

Αλλα στην περίπτωση που δεν κοβόσουν, ο κώδικας σου διαβάζεται.

@nefi, αν δούλεψε, έχεις κάνει την μισή δουλειά (να το μεταφράσω, το μισό βαθμό).
Μετέτρεψε τον κώδικα σου σαν αυτόν του anarki (απλά δεν ξεκινάς με νούμερα τις μεταβλητές) και θα πάρεις και τον άλλο μισό.

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

 
Είναι demo πιο όμορφης εμφάνισης απλά.

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

 

Χρήστες Βρείτε παρόμοια

  • Τα παρακάτω 0 μέλη και 1 επισκέπτες διαβάζουν μαζί με εσάς αυτό το θέμα:
    Tα παρακάτω 2 μέλη διάβασαν αυτό το θέμα:
  • Φορτώνει...
Back
Top