×
Επεξεργασία Προφίλ Επεξεργασία Avatar Επεξεργασία Υπογραφής Επεξεργασία Επιλογών E-mail και Κωδικός Ρυθμίσεις Ειδοποιήσεων
×
Αποσύνδεση Οι Συνδρομές μου Το Προφίλ μου Τα Posts μου Τα Threads μου Λίστα Επαφών Αντιδράσεις σε Posts μου Παραθέσεις των Posts μου Αναφορές σε Εμένα Ενέργειες Συντονιστών Αόρατος Χρήστης
Τι;
Πως;
Ταξινόμηση
Που;
Σε συγκεκριμένη κατηγορία;
Ποιος;
Αποτελέσματα Αναζήτησης
Συμπληρώστε τουλάχιστον το πεδίο Τι;

Το e-steki είναι μια από τις μεγαλύτερες ελληνικές διαδικτυακές κοινότητες με 67,802 μέλη και 2,440,996 μηνύματα σε 76,701 θέματα. Αυτή τη στιγμή μαζί με εσάς απολαμβάνουν το e-steki άλλα 290 άτομα.

Καλώς ήρθατε στο e-steki!

Εγγραφή Βοήθεια

Πρόγραμμα ευρεσης μεγίστου σε C

p04155

Νεοφερμένος

Ο p04155 αυτή τη στιγμή δεν είναι συνδεδεμένος Είναι 31 ετών . Έχει γράψει 9 μηνύματα.

O p04155 έγραψε: στις 02:46, 22-11-10:

#1
Καλησπέρα σε όλους,είμαι καινουργιος στο forum ωστόσο είναι πολλές οι φορές που εχω βοηθηθεί διαβάζοντας κάποια threads. Μήπως θα μπορούσε να με βοηθήσει κάποιος με την δημιουργία κώδικα εύρεσης μεγίστου αριθμού από πίνακα ο οποίος θα χωρίζεται σε 2 υποπίνακες?όλο αυτό πρέπει να γίνεται αναδρομικά...έχω κανει αρκετές προσπάθειες όμως κολλάω και χρειάζομαι την βοήθεια ποιο έμπειρων ατόμων πάνω στο αντικείμενο...Ευχαριστώ!ο χρόνος που έχω στην διάθεση μου είναι περιορισμένος και δεν μπορώ να συνεχίσω με άλλα πειράματα!κάθε βοήθεια είναι δεκτή!!!
Πρέπει να συνδεθείτε για να αντιδράσετε σε μηνύματα
Παράθεση

Speedy

Διάσημο Μέλος

Ο Speedy αυτή τη στιγμή δεν είναι συνδεδεμένος Μας γράφει απο Αγρίνιο (Αιτωλο/νία). Έχει γράψει 656 μηνύματα.

O Speedy έγραψε: στις 09:41, 22-11-10:

#2
Δώσε την εκφώνηση της άσκησης είτε εδώ είτε με pm γιατί δεν κατάλαβα αυτό με τους υποπίνακες που ζητάς...
Πρέπει να συνδεθείτε για να αντιδράσετε σε μηνύματα
Παράθεση

p04155

Νεοφερμένος

Ο p04155 αυτή τη στιγμή δεν είναι συνδεδεμένος Είναι 31 ετών . Έχει γράψει 9 μηνύματα.

O p04155 έγραψε: στις 09:56, 22-11-10:

#3
Πρέπει να γράψω ένα πρόγραμμα σε C το οποίο να βρίσκει με αναδρομικό τρόπο το μέγιστο στοιχείο ενός πίνακα. Ο αλγόριθμος θα διαιρεί τον πίνακα σε δύο υποπίνακες και θα επιστρέφει το μέγιστο από τα μέγιστα στοιχεία των δύο υποπινάκων. Ελπίζω τώρα να έγινε σαφέστερο το πρόβλημά μου... Ευχαριστώ πολύ!
Πρέπει να συνδεθείτε για να αντιδράσετε σε μηνύματα
Παράθεση

woochoogirl (Αλεξάνδρα)

Τιμώμενο Μέλος

H Αλεξάνδρα αυτή τη στιγμή δεν είναι συνδεδεμένη. Είναι 30 ετών , επαγγέλεται Φοιτητής/τρια και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 1,799 μηνύματα.

H woochoogirl που βρίσκεται πολύ μακριά... έγραψε: στις 12:11, 22-11-10:

#4
Αν κατάλαβα καλά με divide and conquer πρέπει να το προσεγγίσεις. Ψάξε divide and conquer maximum element of an array ωστε να δεις καποιον ψευδοκωδικα και μετα το μεταφερεις σε C, στην οποια δυστυχως εχω μεσανυχτα πια ωστε να σε βοηθησω :/
Πρέπει να συνδεθείτε για να αντιδράσετε σε μηνύματα
Παράθεση

p04155

Νεοφερμένος

Ο p04155 αυτή τη στιγμή δεν είναι συνδεδεμένος Είναι 31 ετών . Έχει γράψει 9 μηνύματα.

O p04155 έγραψε: στις 13:39, 22-11-10:

#5
Αυτό είναι και εμένα το πρόβλημά μου, η προσέγγιση που προσπαθώ να κάνω είναι με Divide and Conquer δηλαδή διαίρει και βασίλευε οι πληροφορίες που βρίσκω στο διαδίκτυο είναι όλες για ψευδικώδικα. Η δυσκολία είναι να φτιαχτεί ο κώδικας που θα μπορεί να περάσει από τον compiler...
Πρέπει να συνδεθείτε για να αντιδράσετε σε μηνύματα
Παράθεση

Speedy

Διάσημο Μέλος

Ο Speedy αυτή τη στιγμή δεν είναι συνδεδεμένος Μας γράφει απο Αγρίνιο (Αιτωλο/νία). Έχει γράψει 656 μηνύματα.

O Speedy έγραψε: στις 16:45, 22-11-10:

#6
Η κυριότερη λύση είναι να σπασεις τον πίνακα στα 2 να κανεις αναζητηση μεγίστου σε κάθε έναν και έπειτα να συγκρίνεις τα 2 μέγιστα.. Αν θες αυτό είναι 5 min υπόθεση.. Το διαίρει και βασίλευε χρησιμοποιείται σε ταξινομήσεις πινάκων όπου δεν βρίσκει απλά μέγιστο αλλά ταξινομεί έναν πίνακα βλέπε Quick Sort, Merge Sort κτλ.. Για ποιο λόγο να κάνεις ταξινόμηση με διαίρει και βασίλευε απο τι στιγμή που θές απλά μέγιστο.. Πραγματικά Αν μπορείς δώσε την εκφώνηση δεν καταλαβαίνω πραγματικά τι ζητάς....
Πρέπει να συνδεθείτε για να αντιδράσετε σε μηνύματα
Παράθεση

p04155

Νεοφερμένος

Ο p04155 αυτή τη στιγμή δεν είναι συνδεδεμένος Είναι 31 ετών . Έχει γράψει 9 μηνύματα.

O p04155 έγραψε: στις 17:30, 22-11-10:

#7
Η ακριβής εκφώνηση είναι η εξής:
Να γράψετε ένα πρόγραμμα σε C το οποίο να βρίσκει με αναδρομικό τρόπο το μέγιστο στοιχείο ενός πίνακα. Ο αλγόριθμος θα διαιρεί τον πίνακα σε δύο υποπίνακες και θα επιστρέφει το μέγιστο από τα μέγιστα στοιχεία των δύο υποπινάκων. Επίσης, να κάνετε ανάλυση του χρόνου εκτέλεσης του προγράμματός σας και να αποδείξετε επαγωγικά ότι ο αλγόριθμός σας βρίσκει το μέγιστο στοιχείο του πίνακα. Μαζί με την απάντησή σας, να δώσετε και τα αποτελέσματα του προγράμματος σε έναν test πίνακα.
Ευχαριστώ και πάλι!
Πρέπει να συνδεθείτε για να αντιδράσετε σε μηνύματα
Παράθεση

JosefK (Μιχαήλ)

Δραστήριο Μέλος

Ο Μιχαήλ αυτή τη στιγμή δεν είναι συνδεδεμένος Επαγγέλεται Tatoo artist . Έχει γράψει 358 μηνύματα.

O JosefK Μην ακούς τι λέω, φοβάμαι έγραψε: στις 19:22, 22-11-10:

#8
Αρχική Δημοσίευση από Speedy
Η κυριότερη λύση είναι να σπασεις τον πίνακα στα 2 να κανεις αναζητηση μεγίστου σε κάθε έναν και έπειτα να συγκρίνεις τα 2 μέγιστα.. Αν θες αυτό είναι 5 min υπόθεση.. Το διαίρει και βασίλευε χρησιμοποιείται σε ταξινομήσεις πινάκων όπου δεν βρίσκει απλά μέγιστο αλλά ταξινομεί έναν πίνακα βλέπε Quick Sort, Merge Sort κτλ.. Για ποιο λόγο να κάνεις ταξινόμηση με διαίρει και βασίλευε απο τι στιγμή που θές απλά μέγιστο.. Πραγματικά Αν μπορείς δώσε την εκφώνηση δεν καταλαβαίνω πραγματικά τι ζητάς....
Μάλλον εννοεί μια αναδρομική συνάρτηση που σπάει τον πίνακα στη μέση και καλείται αναδρομικά, και όταν καλεστεί με πίνακα 2 στοιχεία τότε επιστρέφει το μέγιστο μεταξύ αυτών των 2, ή αν καλεστεί με πίνακα ενός στοιχείου επιστρέφει το στοιχείο αυτό.
Εντελώς βλακεία άσκηση, ούτε καν για εκπαιδευτικούς λόγους δεν αξίζει.

#include <stdio.h> int maximum(int array[],int n) { int x,y; if (n==1) return array[0]; else if (n==2) { if (array[0]> array[1]) return array[0]; else return array[1]; } else { x=maximum(array,n/2); y=maximum(array+n/2,n-n/2); if (x>y) return x; else return y; } } int main() { int array[] = {3,0,1212,1,7,23,10,352175,27,12}; printf ("%d\n",maximum(array,10)); return 0; }
Πρέπει να συνδεθείτε για να αντιδράσετε σε μηνύματα
Παράθεση

p04155

Νεοφερμένος

Ο p04155 αυτή τη στιγμή δεν είναι συνδεδεμένος Είναι 31 ετών . Έχει γράψει 9 μηνύματα.

O p04155 έγραψε: στις 20:08, 22-11-10:

#9
Νομίζω είναι αυτό που προσπαθώ να φτιάξω και εμένα μου φαίνεται βουνό.Ευχαριστώ πολύ μακάρι να φτάσω και εγώ καποια στιγμή στο επίπεδό σας για να μπορώ να βοηθάω τα υπόλοιπα μέλη...
Πρέπει να συνδεθείτε για να αντιδράσετε σε μηνύματα
Παράθεση

JosefK (Μιχαήλ)

Δραστήριο Μέλος

Ο Μιχαήλ αυτή τη στιγμή δεν είναι συνδεδεμένος Επαγγέλεται Tatoo artist . Έχει γράψει 358 μηνύματα.

O JosefK Μην ακούς τι λέω, φοβάμαι έγραψε: στις 20:21, 22-11-10:

#10
Να κάνω και μία διευκρίνηση!
Όταν έγραψα " Εντελώς βλακεία άσκηση, ούτε καν για εκπαιδευτικούς λόγους δεν αξίζει."
δεν εννοούσα ότι πρόκειται για πανεύκολη άσκηση για κάποιον αρχάριο, εννούσα ότι αυτός ο τρόπος εύρεσης μεγίστου είναι "κακός", ταλαιπωρία για το τίποτα. Γίνεται πολύ πιο απλά και πιο γρήγορα. Καλό είναι οι ασκήσεις που μπαίνουν για εκπαιδευτικούς λόγους να έχουν και κάποια πρακτική αξία και λογική.
Πρέπει να συνδεθείτε για να αντιδράσετε σε μηνύματα
Παράθεση

p04155

Νεοφερμένος

Ο p04155 αυτή τη στιγμή δεν είναι συνδεδεμένος Είναι 31 ετών . Έχει γράψει 9 μηνύματα.

O p04155 έγραψε: στις 23:15, 22-11-10:

#11
Θέλω να εισάγω στοιχεία στον πίνακα, θέλω να δίνω δηλαδή εγώ τα στοιχεία του πίνακα με την εκκίνηση του προγράμματος, όπως μου είπε ο josefk χρειάζεται μια εντολή for για να παίρνει και να αποθηκεύει τα στοιχεία..ξέρει κανείς να μου πει αυτη την εντολή θα την βάλω μέσα στην main()? ή θα είναι έξω από την main ? σαν μεταβλητη στην for θα βάλω την ίδια που χρησιμοποιείται στον κώδικα δηλαδή την n ή πρέπει να ορίσω μια καινούργια μεταβλητη?
Πρέπει να συνδεθείτε για να αντιδράσετε σε μηνύματα
Παράθεση

Speedy

Διάσημο Μέλος

Ο Speedy αυτή τη στιγμή δεν είναι συνδεδεμένος Μας γράφει απο Αγρίνιο (Αιτωλο/νία). Έχει γράψει 656 μηνύματα.

O Speedy έγραψε: στις 23:35, 22-11-10:

#12
Αρχική Δημοσίευση από JosefK

#include <stdio.h> int maximum(int array[],int n) { int x,y; if (n==1) return array[0]; else if (n==2) { if (array[0]> array[1]) return array[0]; else return array[1]; } else { x=maximum(array,n/2); y=maximum(array+n/2,n-n/2); if (x>y) return x; else return y; } } int main() { int array[50];//η όσα στοιχεία θές να έχεισ συνολικά αντι για 50. for(int i=0;i<50;i++){ printf("Dwse to %d stoixeio tou pinaka:",i+1); scanf("%d",&array[i]); } printf ("%d\n",maximum(array,10)); return 0; }
Υ.Γ. Στρώσου στο διάβασμα αυτά είναι τα πλέον βασικά που πρέπει να γνωρίζεις..
Πρέπει να συνδεθείτε για να αντιδράσετε σε μηνύματα
Παράθεση

p04155

Νεοφερμένος

Ο p04155 αυτή τη στιγμή δεν είναι συνδεδεμένος Είναι 31 ετών . Έχει γράψει 9 μηνύματα.

O p04155 έγραψε: στις 23:42, 22-11-10:

#13
Ευχαριστώ και πάλι το θέμα είναι πως διαβάζω αυτά που διαβάζω τα καταλαβαίνω είναι απλά και κατανοητά όταν όμως προσπαθώ να συνθέσω ένα τέτοιο πρόγραμμα όλα γίνονται βουνό και δύσκολα. Πολύ διαβασμα λοιπόν από εδώ και πέρα!
Πρέπει να συνδεθείτε για να αντιδράσετε σε μηνύματα
Παράθεση

Speedy

Διάσημο Μέλος

Ο Speedy αυτή τη στιγμή δεν είναι συνδεδεμένος Μας γράφει απο Αγρίνιο (Αιτωλο/νία). Έχει γράψει 656 μηνύματα.

O Speedy έγραψε: στις 23:51, 22-11-10:

#14
Σιγα σιγά μαθαίνεις προγραμματισμό... Είναι ένας μαγικός κόσμος και σου εύχομαι καλή περιήγηση!
Πρέπει να συνδεθείτε για να αντιδράσετε σε μηνύματα
Παράθεση

p04155

Νεοφερμένος

Ο p04155 αυτή τη στιγμή δεν είναι συνδεδεμένος Είναι 31 ετών . Έχει γράψει 9 μηνύματα.

O p04155 έγραψε: στις 22:49, 23-11-10:

#15
Να συνεχίσω να ρωτάω πράγματα? Πιστευω να μην σπάω τα νεύρα κανενός...και με τον πρωτο κώδικα και με τον δεύτερο κώδικα που διωρθώνει τον πρώτο καταργείτε η δυνατότητα εισαγωγής λιγότερων ή περισσότερων στοιχείων στον πίνακα...θέλω να πω ότι εφόσον δεν υπάρχει η δυνατότητα εισαγωγής ενός μοναδικού στοιχείου ή δύο στοιχείων τότε τα if που εξετάζουν το ενδεχόμενο εισαγωγής 1 ή 2 στοιχείων δεν χρησιμεύουν πουθενά. προσπαθώ να είσάγω από χτες το κομμάτι κώδικα που να ζητά το μέγεθος του πίνακα στην αρχή και εν συνεχεία να εισάγει ο χρήστης ένα-ένα τα στοιχεία που θέλει..αλλά κάτι κάνω λάθος με τις μεταβλητές. αυτό το κομμάτι του κώδικα με τα scanf/printf πρέπει να είναι μέσα στη main? οι μεταβλητές που θα χρησιμοποιώ στην main πρέπει να ταυτίζονται με αυτά της εξωτερικής συνάρτησης?
Πρέπει να συνδεθείτε για να αντιδράσετε σε μηνύματα
Παράθεση

JosefK (Μιχαήλ)

Δραστήριο Μέλος

Ο Μιχαήλ αυτή τη στιγμή δεν είναι συνδεδεμένος Επαγγέλεται Tatoo artist . Έχει γράψει 358 μηνύματα.

O JosefK Μην ακούς τι λέω, φοβάμαι έγραψε: στις 23:03, 23-11-10:

#16
Αρχική Δημοσίευση από p04155
θέλω να πω ότι εφόσον δεν υπάρχει η δυνατότητα εισαγωγής ενός μοναδικού στοιχείου ή δύο στοιχείων τότε τα if που εξετάζουν το ενδεχόμενο εισαγωγής 1 ή 2 στοιχείων δεν χρησιμεύουν πουθενά.
Δυστυχώς δεν έχεις καταλάβει ακόμα τη λειτουργία μιας αναδρομικής συνάρτησης. Δεν καλείται μία φορά, καλείται πολλές φορές αναδρομικά. Αν πχ έχουμε αρχικά ένα πίνακα 50 στοιχείων, θα καλεστεί μία φορά με όρισμα ολόκληρο τον πίνακα, μετά θα σπάσει τον πίνακα στα 2 και θα καλεστεί 2 φορές για πίνακες 25 στοιχείων, μετά τον κάθε πίνακα 25 στοιχείων τον σπάει και καλέιται από 2 φορές με ορίσματα πίνακες 12 και 13 στοιχείων κ.ο.κ., μέχρι να φτάσει στα 1 ή 2 στοιχεία.

Αρχική Δημοσίευση από p04155
αυτό το κομμάτι του κώδικα με τα scanf/printf πρέπει να είναι μέσα στη main?
ναι

Αρχική Δημοσίευση από p04155
οι μεταβλητές που θα χρησιμοποιώ στην main πρέπει να ταυτίζονται με αυτά της εξωτερικής συνάρτησης?
Κάθε συνάρτηση χρησιμοποιεί τις δικές της, διαφορετικές μεταβλητές. Μία συνάρτηση μπορεί να περνάει σε μία άλλη ως όρισμα τις τιμές κάποιων μεταβλητών.
1
Πρέπει να συνδεθείτε για να αντιδράσετε σε μηνύματα
Παράθεση

p04155

Νεοφερμένος

Ο p04155 αυτή τη στιγμή δεν είναι συνδεδεμένος Είναι 31 ετών . Έχει γράψει 9 μηνύματα.

O p04155 έγραψε: στις 23:29, 23-11-10:

#17
πολύ καίριες οι παρατηρήσεις σου josefk!
Να'σαι καλά!
Πρέπει να συνδεθείτε για να αντιδράσετε σε μηνύματα
Παράθεση
Απάντηση στο θέμα


Χρήστες

  • Τα παρακάτω 0 μέλη και 1 επισκέπτες διαβάζουν μαζί με εσάς αυτό το θέμα.
     
  • (View-All Tα παρακάτω 0 μέλη διάβασαν αυτό το θέμα τις τελευταίες 30 μέρες:
    Μέχρι και αυτή την στιγμή δεν έχει δει το θέμα κάποιο ορατό μέλος

Βρείτε παρόμοια