Τα πάντα για την C

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 02 Σεπ 2011, 14:23

Πλάκωσε ξαφνική δουλειά για αυτό άργησα.

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

// ------------------------------------------------------------------------------
float negpower( int base, int exponent )
{
if ( exponent == 0)
return 1.0;

return ( 1.0 / base ) * ( 1.0 / negpower(base, exponent-1 ) );
}

@Stamatiou: με το μάτι δεν το βλέπω να δουλεύει σωστά, το δοκίμασες με τα test-cases που έχω δώσει; Αυτό είναι το ζουμί, να βρεις μόνος σου αν, που και γιατί δεν δουλεύει ;)
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό stamatiou » 02 Σεπ 2011, 14:29

Τα test cases μου φαίνεται πως βγήκαν σωστά τώρα μπορει και να έκανα και κάνα λάθος, όμως έχω την εντύπωση πως δουλεύει :D
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 02 Σεπ 2011, 14:38

λοιπον παω να δω το χθεσινο trace και μετα θα ξανακοιταξω τις αναδρομες γιατι σαν να χαθηκα παλι :/
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 02 Σεπ 2011, 14:41

stamatiou έγραψε:Τα test cases μου φαίνεται πως βγήκαν σωστά τώρα μπορει και να έκανα και κάνα λάθος, όμως έχω την εντύπωση πως δουλεύει :D

Οκ, μισό να το δω κι εγώ τώρα που λασκάρισα λιγάκι
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 02 Σεπ 2011, 14:45

Star_Light έγραψε:λοιπον παω να δω το χθεσινο trace και μετα θα ξανακοιταξω τις αναδρομες γιατι σαν να χαθηκα παλι :/

1000 sorry, ο σωστός κώδικας για την συνάρτηση δεν είναι ο προηγούμενος, αλλά αυτός εδώ:
Κώδικας: Επιλογή όλων

// ------------------------------------------------------------------------------
float negpower( int base, int exponent )
{
if ( exponent == 0)
return 1.0;

return 1.0 / (base * ( 1.0 / negpower(base, --exponent ) ) );
}

και στο πρόγραμμά σου...
Κώδικας: Επιλογή όλων

#include <stdio.h>

int power(int base, int exponent);
float negpower(int base, int exponent);

// ------------------------------------------------------------------------------
int main( void )
{
int b, n;
int z,i;

printf("\nPoses fores thelete na ektelestei to programma?\n");
scanf("%d", &z);

for(i=0; i<z; i++)
{
printf("Give the base: ");
scanf("%d", &b);

printf("Give the exponent: ");
scanf("%d", &n);

if (n <0 ) {
printf("\n Invalid value \n");
continue;
}
printf("%d ^ %d = %d\n", b, n, power(b, n) );
printf("%d ^ -%d = %g\n", b, n, negpower(b, n) );
}

return 0;
}

// ------------------------------------------------------------------------------
int power( int base, int exponent )
{
if ( exponent == 0)
return 1;

return( base * power(base, exponent-1) );
}
// ------------------------------------------------------------------------------
float negpower( int base, int exponent )
{
if ( exponent == 0)
return 1.0;

return 1.0 / (base * ( 1.0 / negpower(base, --exponent ) ) );
}
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 02 Σεπ 2011, 14:49

βασικα δεν καταλαβαινω καθολου το τελευταιο return :D

αφου 2^-2 = 1 / 2^2 ποιο θα ηταν το προβλημα στο να βάζαμε χυμα το 1/basen * raiseToPower(basen, n-1) ? :/
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 02 Σεπ 2011, 14:52

με προβληματιζει το γεγονος οτι ωρες ωρες δεν μπορω να καταλαβω την λογικη ενος αλγοριθμου
δεν ξερω αν αυτο διορθωθει στο μελλον με την εξασκηση ή πρεπει να το εχεις εμφυτο ας πουμε...
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό stamatiou » 02 Σεπ 2011, 14:56

Star_Light έγραψε:με προβληματιζει το γεγονος οτι ωρες ωρες δεν μπορω να καταλαβω την λογικη ενος αλγοριθμου
δεν ξερω αν αυτο διορθωθει στο μελλον με την εξασκηση ή πρεπει να το εχεις εμφυτο ας πουμε...

Και εγώ ώρες ώρες μου τη σπάει πολύ όταν δεν καταλαβαίνω κάτι :D
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 02 Σεπ 2011, 15:00

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

Π.χ. εκεί που μιλάγαμε για strings και ήμασταν ακόμα στην αρχή πεταχτήκαμε ξαφνικά στην αναδρομή που είναι ολόκληρο κεφάλαιο από μόνη της.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 02 Σεπ 2011, 15:07

migf1 έγραψε:Αυτό το παθαίνετε γιατί αντί να εστιάσετε σε ένα πράγμα μέχρι να το εξαντλήσετε και να το μάθετε σε βάθος, το παρατάτε στη μέση και πετάγεστε σε άλλο, όπου κι εκεί κάνετε το ίδιο.

Π.χ. εκεί που μιλάγαμε για strings και ήμασταν ακόμα στην αρχή πεταχτήκαμε ξαφνικά στην αναδρομή που είναι ολόκληρο κεφάλαιο από μόνη της.


looooooooooooooooooool

ok ok. Βασικα προσπαθησα να παραστησω τον super Star_Light αλλα δεν βγηκε... και εγινα super g00fy. Τελοςπαντων ας σοβαρευτουμε.

Πιστευω πως τον δεικτη στον αλγοριθμο τον μειωνεις.... επειδη ετσι και μονο ετσι θα μπορεσει να γινει η επιστροφη της τιμης μετα την συγκριση (γειτονικων χαρακτηρων).

ΠΧ => s1[]="a" & s2[]="ab"

αρχικα ο s1 δειχνει στο a και ο s2 to ιδιο (μετα ο s2 αμεσως αυξανει κατα ενα και δειχνει στον b
στο τελευταιο return ομως επειδη δεν έχουμε φθασει ακομη στο 2ο βήμα δηλαδη στον 2ο χαρακτηρα παρα ειμαστε μονο στους πρωτους
πριν γινει η αφαιρεση και φυγει το αποτελεσμα απο το τελικο return (επιστραφει δηλαδη) θα πρεπει ο δεικτης να αφαιρεθει μια θεση
δηλαδη να παει στο a παλι συνεπως a-a = 0
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι