koala56 Δημοσ. 30 Μαρτίου 2010 Δημοσ. 30 Μαρτίου 2010 δεν μπορω να καταλαβω τι πρεπει να κανω??? Σχεδιάστε ένα πρόγραμμα που θα διαβάζει πραγματικούς αριθμούς από το πληκτρολόγιο και θα υπολογίζει 1. Τον μέγιστο από αυτούς, 2. Τον ελάχιστο από αυτούς, 3. Το άθροισμά τους, και 4. Το μέσο όρο τους. Αρχικά το πρόγραμμα θα ζητά από το χρήστη να καθορίσει πόσους πραγματικούς αριθμούς θα εισάγει. Τα ζητούμενα αποτελέσματα πρέπει να εμφανιστούν σε δεκαδική μορφή, με ακρίβεια 8 ψηφίων μετά την υποδιαστολή.. Δεν επιτρέπεται η χρήση πινάκων περίπου πώς να αρχίσω αν μπορείτε να βοηθήσετε ευχαριστώ!!
Dr.Fuzzy Δημοσ. 30 Μαρτίου 2010 Δημοσ. 30 Μαρτίου 2010 δεν μπορω να καταλαβω τι πρεπει να κανω???Σχεδιάστε ένα πρόγραμμα που θα διαβάζει πραγματικούς αριθμούς από το πληκτρολόγιο και θα υπολογίζει 1. Τον μέγιστο από αυτούς, 2. Τον ελάχιστο από αυτούς, 3. Το άθροισμά τους, και 4. Το μέσο όρο τους. Αρχικά το πρόγραμμα θα ζητά από το χρήστη να καθορίσει πόσους πραγματικούς αριθμούς θα εισάγει. Τα ζητούμενα αποτελέσματα πρέπει να εμφανιστούν σε δεκαδική μορφή, με ακρίβεια 8 ψηφίων μετά την υποδιαστολή.. Δεν επιτρέπεται η χρήση πινάκων περίπου πώς να αρχίσω αν μπορείτε να βοηθήσετε ευχαριστώ!! Είναι απλό, πρέπει να διαβάσεις!
sidisdim Δημοσ. 30 Μαρτίου 2010 Δημοσ. 30 Μαρτίου 2010 Μια πρώτη προσέγγιση από το κρεβάτι μου, Έχεις αρχικά σιγουρα max=0 min=0 Avrg=0 Sum=0 Συν ότι βγει παρακάτω extra Το προγραμματακι σου θα ζητάει από τον user αρχικά το πόσους αριθμούς θα δεχθεί . Printf scanf Πλέον σε μια μεταβλητή ,έστω Plithos έχεις το πόσες φορές θελουμε να τρέξει . Έπειτα με μια δομή επανάληψης ( επιλέγεις οποία νομίζεις ποιο κοντά στην σκέψη σου ) κάνεις απλά τα παρακάτω! Ζητάς & Διαβάζεις τον αριθμό που σου δίνει ο user Ελλατωνεις το Plithos προφανώς , Athrizeis sto sum Συγκρίνεις με τα min max κάνοντας αλλαγές αν χρειαστεί Μεχρις ότου το plithos να πάρει τιμή κατάλληλη Στο τέλος το avrg είναι απλά μαθηματικά έχεις ότι θα θες σε μεταβλητές. Στο sum έχεις άθροισμα στο min max τα ελάχιστα μέγιστα Εμφανίζεις και τέλος Ο τύπος κάθε μεταβλητης είναι εύκολο , όσο για τα8 ψηφία ψάξου λίγο ας πούμε κανε print έναν float όπου αντί για %f βάλε %.2f ή %2.6f δοκίμασε και σε αλλους τύπους (πχ int )να δεις αν γίνει και τι θα γίνει. Η δομή επανάληψης που θα διαλέξεις μπορεί να φέρει μικροαλλαγές στην σειρά που προανέφερα , αν έπισες την λογική και τον τρόπο σκέψης δεν νομίζω να εχεις κανένα προβληαματακι! Ότι θες μπορούμε να το συζητήσουμε Ελπίζω να σου άνοιξα λίγο τα μάτια και να ψάξεις την άκρη με διάβασμα. Σε δεύτερο επίπεδο Αν θέλεις κάνεις ελέγχους τιμών (πλαίσιο αμυντικού προγραμματισμού) αρχικά πρώτα καλύτερα προσπάθησε να καταλάβεις το βασικό κορμό της άσκησης και την ανάπτυξη της Αποστολή από iPhone με το Insomnia.app
ippo00 Δημοσ. 30 Μαρτίου 2010 Δημοσ. 30 Μαρτίου 2010 Δεν θα ξεκινήσει με όλα 0 αλλά οι πρώτες τιμές που θα διαβαστούν θα είναι απαραίτιτα μιν, μαξ κτλπ. Απλά επιδή μπορεί να μείνει το 0 ως μιν για παράδειγμα. Επίσης εχω την αίστηση ότι λέγεται βρόγχος επανάληψης και όχι δομή επανάληψης...
Kleanthis Δημοσ. 31 Μαρτίου 2010 Δημοσ. 31 Μαρτίου 2010 Χαίρετε. Είπα να μην ανοίξω νέο θέμα γιατί είναι στα πλαίσια μια άσκησης και αυτή.Ειλικρινά δεν ξέρω γιατί δε δουλεύει αυτό που έγραψα. Υπολογίζω μια μαθηματική σειρά και σε κάποιο σημείο γράφω τον τύπο της,στη συνάρτηση που έχω ορίσει: double pi_calc(int x) { int i; double product; product=1.0; for(i=2;i<=x;i+=2) product*=(i*i)/((i-1)*(i+1)); return(product); } Μου επιστρέφει συνέχεια 1.0 ενώ αν αντικαταστήσω το (i*i) με pow(i,2) επιστρέφει την αναμενόμενη τιμή. Έχει κανείς ιδέα γιατί το κάνει αυτό;Ευχαριστώ για το χρόνο σας.
virxen75 Δημοσ. 31 Μαρτίου 2010 Δημοσ. 31 Μαρτίου 2010 Χαίρετε. Είπα να μην ανοίξω νέο θέμα γιατί είναι στα πλαίσια μια άσκησης και αυτή.Ειλικρινά δεν ξέρω γιατί δε δουλεύει αυτό που έγραψα. Υπολογίζω μια μαθηματική σειρά και σε κάποιο σημείο γράφω τον τύπο της,στη συνάρτηση που έχω ορίσει: double pi_calc(int x) { int i; double product; product=1.0; for(i=2;i<=x;i+=2) product*=(i*i)/((i-1)*(i+1)); return(product); } Μου επιστρέφει συνέχεια 1.0 ενώ αν αντικαταστήσω το (i*i) με pow(i,2) επιστρέφει την αναμενόμενη τιμή. Έχει κανείς ιδέα γιατί το κάνει αυτό;Ευχαριστώ για το χρόνο σας. > ........ product*=[color="Red"](double)[/color](i*i)/((i-1)*(i+1)); ...............
Kleanthis Δημοσ. 31 Μαρτίου 2010 Δημοσ. 31 Μαρτίου 2010 Πράγματι,παράλειψις.Αυτό το type casting...Απλό αλλά λόγω απειρίας...Ευχαριστώ θερμά!Καλό Πάσχα με υγεία.
Kleanthis Δημοσ. 2 Απριλίου 2010 Δημοσ. 2 Απριλίου 2010 Αν κάποιος μπορεί να βοηθήσει, παρακαλώ πολύ... Έχω φτιάξει ένα πρόγραμμα που ζητά έναν ακέραιο αριθμό και κάνει κάποιες λειτουργίες μέσω συναρτήσεων κτλ, εφόσον δεν είναι μηδέν ο αριθμός που δόθηκε.Αν δοθεί το μηδέν απλά δεν κάνει τίποτα. Με ποιον τρόπο μπορώ να το κάνω να ζητά συνέχεια τον αριθμό και με το μηδέν να σταματά χωρίς να γίνονται οι λειτουργίες τουλάχιστον μία φορά; Ευχαριστώ.
virxen75 Δημοσ. 2 Απριλίου 2010 Δημοσ. 2 Απριλίου 2010 ο κώδικας μέχρι τώρα που είναι? πως ζητάς τον αριθμό πως αποφασίζεις ποια συνάρτηση θα εκτελέσει το πρόγραμμα σου με βάση τον αριθμό. στείλε τον κώδικα να σου κάνω τις διορθώσεις.
Kleanthis Δημοσ. 2 Απριλίου 2010 Δημοσ. 2 Απριλίου 2010 Άυτός με την εύρεση των πρώτων αριθμών είναι κάτι που θα με βοηθήσει και θα βρω και την άκρη στ άλλα μόνος μου ( για να μάθω )΄. main() { int ar,i,a,found=0; printf("Enter a number:"); scanf("%d",&ar); if(ar!=0) { for(i=2;i<ar;i++) if(ar%i==0) { a=ar/i; found=1; } if(found) printf("Den einai prwtos.Brethike diairetis:%d\n",a); else printf("Einai prwtos!\n"); } else printf("You pressed ZERO!Bye Bye!\n"); system("PAUSE"); } Απλά θέλω να το τρέχει επαναληπτικά μέχρι να πατήσω 0.Θέλω όμως και στην πρώτη επανάληψη να βγεις εκτός με μηδέν,οπότε do while κτλ δεν έπαιξε. Ευχαριστώ πολύ για τη βοήθεια σου,είναι χρήσιμη για μένα.
virxen75 Δημοσ. 2 Απριλίου 2010 Δημοσ. 2 Απριλίου 2010 δες τον κώδικα έχει αναλυτικά σχόλια > #include <stdio.h> int main(){//πάντα int main() συνήθισε το τώρα που είναι αρχή ακόμα int ar=1,i=0,a=0,found=0;//είναι καλό να αρχικοποιείς τις τιμές των μεταβλητών σου while (ar!=0){//όσο το ar δεν είναι ίσο με 0 κάνε... στο ar έδωσα αρχική τιμή=1 για να εκτελεστεί ο βρόγχος τουλάχιστον 1 φορά found=0;//οι μεταβλητές που επηρεάζουν το πρόβλημα πρέπει να αρχικοποιοούνται σε κάθε κύκλο του βρόγχου printf("Enter a number:"); scanf("%d",&ar); getchar();//πάντα μετά απο scanf για να μαζεύεις τα "σκουπίδια" if(ar!=0){//χρήση της στοίχισης με εσοχής κάνει πιο ευανάγνωστο τον κώδικα και εντοπίζεις πιο ευκολα τυχόν λάθη for(i=2;i<ar;i++) if(ar%i==0){ a=ar/i; found=1; } if(found) printf("Den einai prwtos.Brethike diairetis:%d\n",a); else printf("Einai prwtos!\n"); }else printf("You pressed ZERO!\n"); } //system("PAUSE"); getchar();//για pause καλύτερα να κάνεις την χρήση της getchar() return 0;//πάντα στο τέλος της main βάζε ένα return }
Kleanthis Δημοσ. 2 Απριλίου 2010 Δημοσ. 2 Απριλίου 2010 Χρήσιμες οι παρατηρήσεις σου.Η στοίχιση μου ήταν όπως πρέπει αλλά έτσί όπως το δημοσίευσα,χάνεται. Θα λάβω υπόψιν μου τα λοιπά ,μαζί με ό,τι έχω μαζέψει.Ελπίζω να μη σε κούρασα.Σ'ευχαριστώ πολύ.
virxen75 Δημοσ. 3 Απριλίου 2010 Δημοσ. 3 Απριλίου 2010 Χρήσιμες οι παρατηρήσεις σου.Η στοίχιση μου ήταν όπως πρέπει αλλά έτσί όπως το δημοσίευσα,χάνεται. Θα λάβω υπόψιν μου τα λοιπά ,μαζί με ό,τι έχω μαζέψει.Ελπίζω να μη σε κούρασα.Σ'ευχαριστώ πολύ. τον κώδικα σου όταν τον στέλνεις εδώ να τον βάζεις μέσα σε code tags χρησιμοποίησε το σύμβολο # από την μπάρα εργαλείων πάνω από εκεί που γράφεις τα μηνύματα σου.
Kleanthis Δημοσ. 6 Απριλίου 2010 Δημοσ. 6 Απριλίου 2010 Έχω έναν πολύ μεγάλο αριθμό και θέλω να κάνω κάποιες πράξεις μεταξύ των ψηφίων του.Πως θα καταφέρω να τ'απομονώσω;Μόνο διαιρώντας κάτι έκανα,αλλά για μικρούς αριθμούς.Ευχαριστώ.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.