freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

συνεχεια τυπωνει 1, γτ?


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [9 Μηνύματα]       Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
babis91


Μέλος από: 27 Δεκ 2005
Μηνύματα: 9

View users profile
ΜήνυμαΣτις: 30 Μαρ 2009 21:12    Θέμα: συνεχεια τυπωνει 1, γτ? Απάντηση με παράθεση  Mark this post and the followings unread

Καλησπερα παιδια.Χρειαζομαι λιγο help με ενα προγραμμα στη c.

κώδικας:
#include <stdio.h>
int power(int k,int n);
int main()
{
    int k,n;
    printf("Ayto to programma ypologizei tis rizes olon twn pragmatikwn arithmwn\n");
    printf("H riza enos arithmou mporei na graftei kai d=k^(1/n)\n");
    printf("\n");
    printf("dwse dio times gia to k kai to n\n");
    printf("k: ");
    scanf("%d",&k);
    printf("n: ");
    scanf("%d",&n);
    printf("k^(1/n)=%d\n",power(k,1/n));
    system("pause");
    return 0;
}
    int power(int k,int n)
    {int i,d=1;
    for(i=0;i<n;i++)
    d=d*k;
    return d;
}


Μπορειτε να μου πειτε γτ οτι αριθμο και να δωσω τυπωνει 1 ???
nirvana


Μέλος από: 01 Σεπ 2005
Μηνύματα: 241
Περιοχή: Αγ. Παρασκευή
View users profile
ΜήνυμαΣτις: 30 Μαρ 2009 21:58    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Δεν εχω χρονο να σου το κανω να τρέχει σωστα αλλά...
2 προβλήματα που είδα αμέσως
α) Μην βάζεις παντού int. Πραγματικό αριθμό δεν θές?
Βαλε την συνάρτηση να γυρνάει float και την τελευταία printf αντι %d => %f.

β) Δες τι αριθμούς περνάς στην συνάρτηση: Εστω οτι δίνω k=4 και n=2 εσυ μες την function του λες for(i=0; i<1/2; i++) κανε ταδε. Οπότε δεν μπαίνει καν στην for και σου γυρναει το d=1 όπως το έχεις αρχικοποιήσει.

Πάντως δεν είναι ευκολο να υλοποιήσεις αυτή τη συνάρτηση μονος. Σκέψου π.χ. οτι για την τεταρτη ρίζα του 17 π.χ. πρέπει να βρές εναν αριθμο που όταν τον υψώνεις στην 4η δύναμη να σου δείνει 17. Δεν είναι πολύ έυκολο. Δεν νομίζω πως έτσι όπως το πας θα βγάλεις κάτι. Καλύτερα να βρεις κάτι έτοιμο.

μπορείς πάντα να χρησημοποιήσεις αυτό:

κώδικας:
#include <stdio.h>
#include <math.h>
int main()
{
    float k,n;
    float apotelesma=0;
    printf("Ayto to programma ypologizei tis rizes olon twn pragmatikwn arithmwn\n");
    printf("H riza enos arithmou mporei na graftei kai d=k^(1/n)\n");
    printf("\n");
    printf("dwse dio times gia to k kai to n\n");
    printf("k: ");
    scanf("%f",&k);
    printf("n: ");
    scanf("%f",&n);
    apotelesma=pow(k,1/n);
    printf("k^(1/n)=%f\n",apotelesma);
    return 0;
}

Last edited by nirvana on 30 Μαρ 2009 22:26, edited 1 time in total
babis91


Μέλος από: 27 Δεκ 2005
Μηνύματα: 9

View users profile
ΜήνυμαΣτις: 30 Μαρ 2009 22:20    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

nirvana ανέφερε:
Δεν εχω χρονο να σου το κανω να τρέχει σωστα αλλά...
2 προβλήματα που είδα αμέσως
α) Μην βάζεις παντού int. Πραγματικό αριθμό δεν θές?
Βαλε την συνάρτηση να γυρνάει float και την τελευταία printf αντι %d => %f.

β) Δες τι αριθμούς περνάς στην συνάρτηση: Εστω οτι δίνω k=4 και n=2 εσυ μες την function του λες for(i=0; i<1/2; i++) κανε ταδε. Οπότε δεν μπαίνει καν στην for και σου γυρναει το d=1 όπως το έχεις αρχικοποιήσει.


α)οταν βαζω στην τελευταια printf αντι για %d => %f τοτε γυρναει αποτελεσμα 0,0000

β)στο παραδειγμα που λες ισχυει οτι το i<1/2 αφου το εχω αρχικοποιησει, γιατι δεν συνεχιζει παρακατω στο d=d*k ???

σορρυ για το πριξιμο αλλα ειμαι νεος στην C κ δεν ξερω πολλα
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 30 Μαρ 2009 22:26    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Εχεις τη δήλωση int power(int k, int n)

Δίνει ο χρήστης το 2 (n=2)
Καλείς την power(k, 1/n) -> power(k, ???) πόσο;
Καλείται η power με k, n=0 γιατί;
nirvana


Μέλος από: 01 Σεπ 2005
Μηνύματα: 241
Περιοχή: Αγ. Παρασκευή
View users profile
ΜήνυμαΣτις: 30 Μαρ 2009 22:36    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

α) εμένα προσωπικά ο gcc μου γυρνάει -0.007788.
β) το κεφάλι μου είναι λίγο σουπα και δεν μπορώ να το σκεφτώ. Πάντως έκανα το πάνω μηνυμα edit και έχει έναν κώδικα που ισχύει. Αν το θες για προσωπική χρήση και όχι για καμιά εργασία μην σπας το κεφάλι σου. Δεν έχει νόημα. Χρησιμοποίησε αυτο. Και για του λόγου το αληθές κοίτα και μια υλοπόιηση της τετραγωνικής ριζας. http://www.dreamincode.net/code/snippet244.htm.

Φαντάσου να πρέπει να υπολογίσεις οποιαδήποτε ριζα και όχι μονο την τετραγωνική στην function. Εγω δεν θα είχα το κουράγιο να το κάνω.
babis91


Μέλος από: 27 Δεκ 2005
Μηνύματα: 9

View users profile
ΜήνυμαΣτις: 30 Μαρ 2009 22:42    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Εχεις τη δήλωση int power(int k, int n)

Δίνει ο χρήστης το 2 (n=2)

Καλείς την power(k, 1/n) -> power(k, ???) πόσο;
αφου ο χρηστης εχει δωσει το n=2 αρα και η power δεν θα αλλαξει σε power(k,1/2) ???

Καλείται η power με k, n=0 γιατί;
το n δεν εχει ηδη γινει 1/2 απο πριν?


@nirvana δυστηχος το θελω για μια εργασια στη σχολη.......

Επειδη ο κωδικας που δινω δεν τον κοβω για πολυ σωστο αν εχετε να προτεινετε κατι αλλο που να χρησιμοποιειται ο τυπος k^(1/n) πειτε το.......
babis91


Μέλος από: 27 Δεκ 2005
Μηνύματα: 9

View users profile
ΜήνυμαΣτις: 30 Μαρ 2009 22:55    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Τελικα θα χρησιμοποιεισω τον κωδικα του nirvana να τελειωνουμε γτ πονεσε κ το κεφαλι μου
Ευχαριστω ολους σας για την βοηθεια!!!!!!!
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 30 Μαρ 2009 23:39    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Να σου πως καλά θα κάνεις. Είναι να πονοκεφαλιάζουμε βραδιάτικα;

Ο επόμενος που θα χρειαστεί κάτι αντίστοιχο, αν δεν έχει πονοκέφαλο, ίσως να του φανεί χρήσιμο και το http://en.wikipedia.org/wiki/Nth_root_algorithm . Βέβαια αυτό απαιτεί διάβασμα συνεπώς μακρυά από εμάς.

Αν έχει πρόβλημα στο τι σημαίνει int και float ή double όσον αφορά τις διαιρέσεις και τις παραμέτρους ίσως ο παρακάτω κώδικας να του διευκρινίσει μερικά σημεία.
(edited)

κώδικας:
#include <stdio.h>
#include <stdlib.h>

void testINT(int param);
void testFLOAT(float param);

int main()
{
   int int1 = 3;
   int int2 = 2;
   float float1 = 3.0;
   float float2 = 2.0;

   printf("%d/%d=%f\n", int1,    int2,  (float)(int1/int2));
   printf("%f/%f=%f\n", float1, float2, (float)(float1/float2));
   printf("%d/%f=%f\n", int1,   float2, (float)(int1/ float2));
   printf("%f/%d=%f\n", float1, int2,   (float)(float1/int2));

   int intX = int1/int2;
   float floatX = float1/float2;
   
   printf("intX = %d\n", intX);
   printf("floatX = %f\n", floatX);

   printf("calling testINT(intX); "); testINT(intX);
   printf("calling testINT(floatX); "); testINT(floatX);

   printf("calling testFLOAT(intX); "); testFLOAT(intX);
   printf("calling testFLOAT(floatX); "); testFLOAT(floatX);

    system("pause");
    return 0;
}

void testINT(int intParam)
{
   printf("intParam=%d\n", intParam);
}

void testFLOAT(float floatParam)
{
   printf("floatParam=%f\n", floatParam);
}
virxen75


Μέλος από: 18 Φεβ 2009
Μηνύματα: 256+
Περιοχή: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ
View users profile
ΜήνυμαΣτις: 31 Μαρ 2009 11:23    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Μην ξενάτε ότι ισχύει και το α^y=exp(y*log(a))

ένα απλό παράδειγμα

κώδικας:

#include <stdio.h>
#include <math.h>

void main(){
float vasi=4.0f;
float ekuetis=1.0f/2.0f;
printf("tetragoniki riza toy 4=4^(1/2)=%f",exp(ekuetis*log(vasi)));
}
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [9 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++


Σχετικά θέματα
 Θέματα   Απ/σεις   Αποστολέας   Τελευταίο μήνυμα 
Πως μπορω να το κανω να τυπωνει κυκλικη λιστα 1 theophilos9077 30 Απρ 2015 12:42
gvre Εμφάνιση τελευταίου μηνύματος
 
Τώρα είναι 08 Δεκ 2016 13:51 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos