• Downloads
  • ! Read Me !
  • Μαθήματα
  • Φοιτητικά
  • Τεχνικά Θέματα
  • Συζητήσεις
  • Happy Hour!
  • About THMMY.gr
 V  < 
Search:  
Welcome, Guest. Please login or register.
June 17, 2025, 22:54:39 pm

Login with username, password and session length
Links
  Thmmy.gr portal
   Forum
   Downloads
   Ενεργ. Λογαριασμού
   Επικοινωνία
  
  Χρήσιμα links
   Σελίδα τμήματος
   Βιβλιοθήκη Τμήματος
   Elearning
   Φοιτητικά fora
   Πρόγραμμα Λέσχης
   Πρακτική Άσκηση
   Ηλεκτρονική Εξυπηρέτηση Φοιτητών
   Διανομή Συγγραμμάτων
   Ψηφιακό Καταθετήριο Διπλωματικών
   Πληροφορίες Καθηγητών
   Instagram @thmmy.gr
   mTHMMY
  
  Φοιτητικές Ομάδες
   ACM
   Aristurtle
   ART
   ASAT
   BEAM
   BEST Thessaloniki
   EESTEC LC Thessaloniki
   EΜΒ Auth
   IAESTE Thessaloniki
   IEEE φοιτητικό παράρτημα ΑΠΘ
   SpaceDot
   VROOM
   Panther
  
Πίνακας Ελέγχου
Welcome, Guest. Please login or register.
June 17, 2025, 22:54:39 pm

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
Ισραήλ - Ιράν: Πόλεμος στ...
by Katarameno
[Today at 21:32:50]

[Ψηφιακά Ολοκληρωμένα Κυκ...
by tzortzis
[Today at 21:25:42]

[Εφ.Θερμοδυναμική] Γενικέ...
by PAPARI69
[Today at 20:59:13]

Πρακτική Άσκηση ΤΗΜΜΥ 201...
by chris_p30
[Today at 19:46:54]

[Γραφική] Λυμένα θέματα
by okanpala
[Today at 18:56:22]

Τι ακούτε αυτήν τη στιγμή...
by Katarameno
[Today at 14:25:00]

Αντικατάστασης πυκνωτή σε...
by george14
[Today at 13:58:20]

Πότε θα βγει το μάθημα; -...
by tzortzis
[Today at 13:19:53]

Αποτελέσματα Εξεταστικής ...
by george14
[Today at 12:08:25]

[ΨEE] Γενικές απορίες και...
by Juror8
[Today at 12:06:57]

[Οργάνωση Υπολογιστών] Γε...
by RAFI
[June 16, 2025, 22:46:54 pm]

[Σ.Π.Η.Ε.] Γενικές απορίε...
by Nikos_313
[June 16, 2025, 19:49:00 pm]

[ΘΤΠΑ] Γενικές απορίες κα...
by Nikos_313
[June 16, 2025, 16:56:56 pm]

[Αρχές Οικονομίας] Να επι...
by _Trob
[June 16, 2025, 13:28:21 pm]

[Σ.Α.Π.Γ.] Εργασία 2025
by Nikos_313
[June 16, 2025, 12:13:45 pm]

[Διανεμημένη Παραγωγή] Γε...
by Διάλεξις
[June 16, 2025, 01:56:37 am]

[Σ.Π.Η.Ε.] Παλιά θέματα -...
by nmpampal
[June 15, 2025, 06:43:15 am]

Το thmmy.gr στο instagram...
by Mr Watson
[June 15, 2025, 00:50:23 am]

[Λογισμός ΙΙ] Απορίες σε...
by el mariachi
[June 14, 2025, 20:47:07 pm]

ΠΡΟΣΟΧΗ στο ανέβασμα θεμά...
by tzortzis
[June 14, 2025, 16:54:08 pm]
Στατιστικά
Members
Total Members: 9961
Latest: Poli
Stats
Total Posts: 1426698
Total Topics: 31710
Online Today: 242
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 59
Guests: 145
Total: 204
thomassamaras
maria_s
xristostsi03
Kenedy
theofr
stavr0s16
nikosmonov
dimant
gntitsios
fivosfivos1
chris_p30
Fidelity
Pcsc
tzortzis
kkotsopo
anastas1a
chaniotism
filkilkis
dioannidi
smanio
Nekt
Mr Z
nasos
grammaths
dimitire
ikallima
engineer2030
Yamal
apol
Apaugasma
plapas
thaliatsk
iliaskou
zille
mpaltzak
Kelly Tsimpouri
AristeidisM
msandr
tmpadasn
andreassifo
mpizos
evrinasto
Mr Watson
miltan8
stavros0201
petrtheo
ggalamat
Katarameno
ThanosKoutsoump
chriskazakos
Η ΤΡΑΠΟΥΛΑ ΤΟΥ ΠΑΠΠΟΥ ΜΟΥ
jh13
Jordann
kmarkad
sterxz
Εμφάνιση

Νέα για πρωτοετείς
Είσαι πρωτοετής;... Καλώς ήρθες! Μπορείς να βρεις πληροφορίες εδώ. Βοήθεια για τους καινούργιους μέσω χάρτη.
Κατεβάστε εδώ το Android Application για εύκολη πρόσβαση στο forum.
Ανεβάζετε τα θέματα των εξετάσεων στον τομέα Downloads με προσοχή στα ονόματα των αρχείων!

Νέα!
Ανεβάζετε τα θέματα των εξετάσεων στον τομέα Downloads
με προσοχή στα ονόματα των αρχείων!
THMMY.gr > Forum > Μαθήματα Βασικού Κύκλου > 1ο Εξάμηνο > Δομημένος Προγραμματισμός (Moderators: Tasos Bot, tzortzis, Nekt) > [Δομημένος Πρ.] Εργασία E
0 Members and 1 Guest are viewing this topic.
Pages: 1 ... 3 4 [5] 6 Go Down Print
Author Topic: [Δομημένος Πρ.] Εργασία E  (Read 7030 times)
anchelon
Θαμώνας
****
Posts: 492



View Profile
Re: [Δομημένος Πρ.] Εργασία E
« Reply #60 on: May 20, 2012, 17:32:52 pm »

Quote from: c0ndemn3d on May 20, 2012, 17:30:18 pm
Quote from: anchelon on May 20, 2012, 17:26:45 pm
Επειδή έχω μπερδευτεί λίγο!!Επειδή θέλουμε αναδρομική διαδικασία αντί για while όπως στο παραπάνω παράδειγμα απλά θα καλούμε   ξανά τη ιδια συνάρτηση??

Ναι. Κάθε φορά θα ελέγχεις αν έχεις βρει ρίζα για την εξίσωση και, αν όχι, θα καλείς ξανά τη συνάρτηση για διαφορετικά, όμως, x0 και x1.
Διέγραψα το σχόλιο μου γιατι κοιτούσα ένα παρόμοιο παράδειγμα που είχε while!!!tnx για τν απάντηση!!
Logged
Marco
Καταξιωμένος/Καταξιωμένη
***
Posts: 226



View Profile
Re: [Δομημένος Πρ.] Εργασία E
« Reply #61 on: May 20, 2012, 17:50:08 pm »

Quote from: c0ndemn3d on May 20, 2012, 17:08:34 pm
Quote from: alex-pv on May 20, 2012, 17:04:49 pm
" Επειδή  στην περίπτωση πού δε μπορεί να υπολογιστεί μια πραγματική ρίζα από τις πιο πάνω αναδρομικές σχέσεις η διαδικασία θα συνεχίζεται επ’ άπειρο, να διαβάζεται ένας μέγιστος αριθμός επαναλήψεων για την εφαρμογή του κάθε αλγόριθμου. "

Αυτό γίνεται με exit(0);
Code:
if(num_rep=100)
 {exit(0)};
H exit θα τερματίσει τη λειτουργία του προγράμματος. Άρα δεν είναι σωστή λύση. Αυτό που πρέπει να κάνεις είναι, αν βρεις ότι οι επαναλήψεις ξεπέρασαν το όριο, να αλλάζεις την τιμή μιας σημαίας την οποία θα ορίσεις και να επιστρέψεις στη main και κάνοντας χρήση της τιμής αυτής της σημαίας να εκτυπώσεις ότι δεν βρέθηκε ρίζα.

Το πως θα επιστρέψω στη main είναι το θέμα.
πχ σαν flag χρησιμοποιώ την *num_rep που μετράει επαναλήψεις
Code:
if(*num_rep==100)
{???}
Logged
c0ndemn3d
Veteran
Αbsolute ΤΗΜΜΥ.gr
******
Posts: 4804


Yarr!


View Profile
Re: [Δομημένος Πρ.] Εργασία E
« Reply #62 on: May 20, 2012, 17:55:50 pm »

H σημαία σου δεν θα είναι η *num_rep. Αν έχεις ορίσει μια συνάρτηση double που θα επιστρέφει τη ρίζα κάνε το εξής:

if(*num_rep==100) /*  *num_rep είναι ο μετρητής των αναδρομών και χρειάζεται να επιστρέφεται  */
{
*flag=1; /*εκχωρώ μια τιμη η οποία συμβολίζει ότι δεν βρέθηκε ρίζα*/
return 0;/*επιστρέφω μια αυθαίρετη τιμή*/
 }
Αν τη συνάρτησή σου την έχεις ορίσει ως void απλά γράψε return;
και μετά στη main:

if(*flag == 1)
{
...
printf("Could not find a root");
}
Logged

In response, the pirates had to adhere to a doctrine of their own...
war against the world

They took my home, I can't walk away from that; can you?
 Forget me, forget Teach, forget loyalty, compacts, honours, debts, all of it.
The only question that matters is this: Who are you?
Marco
Καταξιωμένος/Καταξιωμένη
***
Posts: 226



View Profile
Re: [Δομημένος Πρ.] Εργασία E
« Reply #63 on: May 20, 2012, 18:19:52 pm »

Quote from: c0ndemn3d on May 20, 2012, 17:55:50 pm
H σημαία σου δεν θα είναι η *num_rep. Αν έχεις ορίσει μια συνάρτηση double που θα επιστρέφει τη ρίζα κάνε το εξής:

if(*num_rep==100) /*  *num_rep είναι ο μετρητής των αναδρομών και χρειάζεται να επιστρέφεται  */
{
*flag=1; /*εκχωρώ μια τιμη η οποία συμβολίζει ότι δεν βρέθηκε ρίζα*/
return 0;/*επιστρέφω μια αυθαίρετη τιμή*/
 }
Αν τη συνάρτησή σου την έχεις ορίσει ως void απλά γράψε return;
και μετά στη main:

if(*flag == 1)
{
...
printf("Could not find a root");
}


Η συνάρτηση μου είναι void
Αν εννοείς αυτό τότε δεν τερματίζει απλά με ένα return...
if(*num_rep==100)
    {
        return;
    }
Όσο για τη main έτσι πως είναι το πρόγραμμα δε νομίζω να χρειάζεται flag.
if(repetitions!=100)
{ ........}
else
{
    printf("nroot function cant calculate roots");
    printf("froot function cant calculate roots");
}
Τέλος πάντων….. μάλλον θα το στείλω έτσι.
thx anyway  Smiley
Logged
Locke
Ανερχόμενος/Ανερχόμενη
**
Posts: 77



View Profile
Re: [Δομημένος Πρ.] Εργασία E
« Reply #64 on: May 20, 2012, 18:23:23 pm »

Όταν θα θέλω η nroot π.χ. να καλέσει τον εαυτό της, μέσα στο σώμα της συνάρτησης που θα ξαναγράψω την nroot, τι θα βάλω σαν όρισμα στη θέση της συνάρτησης f που θέλω να χρησιμοποιήσω;
παράδειγμα αν είναι
float nroot(float (*p)(float x), int κτλπ ... )
{
   μπλα μπλα μπλα

        nroot(  <--- εδώ τι βάζουμε σαν όρισμα; το p;
Logged
Marco
Καταξιωμένος/Καταξιωμένη
***
Posts: 226



View Profile
Re: [Δομημένος Πρ.] Εργασία E
« Reply #65 on: May 20, 2012, 18:30:10 pm »

Quote from: Locke on May 20, 2012, 18:23:23 pm
Όταν θα θέλω η nroot π.χ. να καλέσει τον εαυτό της, μέσα στο σώμα της συνάρτησης που θα ξαναγράψω την nroot, τι θα βάλω σαν όρισμα στη θέση της συνάρτησης f που θέλω να χρησιμοποιήσω;
παράδειγμα αν είναι
float nroot(float (*p)(float x), int κτλπ ... )
{
   μπλα μπλα μπλα

        nroot(  <--- εδώ τι βάζουμε σαν όρισμα; το p;

ναι αλλά νομίζω το float (*p)(float x) πρέπει να το αλλάξεις με float (*p)(float)
Logged
anchelon
Θαμώνας
****
Posts: 492



View Profile
Re: [Δομημένος Πρ.] Εργασία E
« Reply #66 on: May 20, 2012, 18:51:37 pm »

ξέρει κανείς τι σημαίνει το εξής:" warning: passing arg 7 of `froot' from incompatible pointer type"??δν μπορώ να βρω κάποιο λάθος...
Logged
c0ndemn3d
Veteran
Αbsolute ΤΗΜΜΥ.gr
******
Posts: 4804


Yarr!


View Profile
Re: [Δομημένος Πρ.] Εργασία E
« Reply #67 on: May 20, 2012, 18:57:51 pm »

Quote from: Locke on May 20, 2012, 18:23:23 pm
Όταν θα θέλω η nroot π.χ. να καλέσει τον εαυτό της, μέσα στο σώμα της συνάρτησης που θα ξαναγράψω την nroot, τι θα βάλω σαν όρισμα στη θέση της συνάρτησης f που θέλω να χρησιμοποιήσω;
παράδειγμα αν είναι
float nroot(float (*p)(float x), int κτλπ ... )
{
   μπλα μπλα μπλα

        nroot(  <--- εδώ τι βάζουμε σαν όρισμα; το p;
Εξαρτάται από την περίπτωση. Αν θες στείλε μου τα ορίσματα της nroot από τη main και τα ορίσματα της nroot όταν την ορίζεις και θα σου πω Smiley
--------------------------------------------------------------
alex, από ότι νομίζω, πρέπει να επιστρέψεις διαφορετικό μήνυμα στις περιπτώσεις που ο αλγόριθμος δεν μπορεί να εφαρμοστεί και που μπορεί να εφαρμοστεί αλλά δεν βρίσκει ρίζα. Και μόνο για αυτό θα χρειαζόσουν σημαία. Αλλά έστω ότι στην nroot σε μια επανάληψη βρίσκεις ότι η παράγωγος του x0 βγαίνει 0. Τότε πρέπει να επιστρέψεις στη main χωρίς να έχεις βρει ρίζα και με τον έλεγχό σου το πρόγραμμα θα συμπεριφερθεί σαν να έχει βρει ρίζα.
Logged

In response, the pirates had to adhere to a doctrine of their own...
war against the world

They took my home, I can't walk away from that; can you?
 Forget me, forget Teach, forget loyalty, compacts, honours, debts, all of it.
The only question that matters is this: Who are you?
c0ndemn3d
Veteran
Αbsolute ΤΗΜΜΥ.gr
******
Posts: 4804


Yarr!


View Profile
Re: [Δομημένος Πρ.] Εργασία E
« Reply #68 on: May 20, 2012, 18:59:44 pm »

Quote from: anchelon on May 20, 2012, 18:51:37 pm
ξέρει κανείς τι σημαίνει το εξής:" warning: passing arg 7 of `froot' from incompatible pointer type"??δν μπορώ να βρω κάποιο λάθος...

Στο έβδομο όρισμα της  froot ο τύπος της μεταβλητής που περνάς σαν όρισμα όταν την καλείς είναι διαφορετικός από αυτόν με τον οποίο έχεις ορίσει τη συνάρτηση. Έτσι νομίζω τουλάχιστον.
Logged

In response, the pirates had to adhere to a doctrine of their own...
war against the world

They took my home, I can't walk away from that; can you?
 Forget me, forget Teach, forget loyalty, compacts, honours, debts, all of it.
The only question that matters is this: Who are you?
sexycowboy
Θαμώνας
****
Posts: 456



View Profile
Re: [Δομημένος Πρ.] Εργασία E
« Reply #69 on: May 20, 2012, 19:02:34 pm »

Μου επιστρέφει ότι η ρίζα είναι 1.#QNAN0 γνωρίζει κανείς τι είδους λάθος είναι αυτό; Στον compiler ενός φίλου τρέχει σωστά.. Shocked
Logged
Marco
Καταξιωμένος/Καταξιωμένη
***
Posts: 226



View Profile
Re: [Δομημένος Πρ.] Εργασία E
« Reply #70 on: May 20, 2012, 19:03:47 pm »

Quote from: anchelon on May 20, 2012, 18:51:37 pm
ξέρει κανείς τι σημαίνει το εξής:" warning: passing arg 7 of `froot' from incompatible pointer type"??δν μπορώ να βρω κάποιο λάθος...
στο 7ο στοιχείο υπάρχει λάθος.αν δεν το βρεις γράψε την froot.
 
πχ : void froot(double (*p)(double),double x0,double x1,double e,int *num_rep,double *root)
       froot(p,x1,x2,e,num_rep,root);
μάλλον όταν την καλείς στη θεση πχ froot(p,x1,x2,e,num_rep,root) βάζεις froot(p,x1,x2,e,num_rep,*root)
Logged
Marco
Καταξιωμένος/Καταξιωμένη
***
Posts: 226



View Profile
Re: [Δομημένος Πρ.] Εργασία E
« Reply #71 on: May 20, 2012, 19:05:57 pm »

Quote from: sexycowboy on May 20, 2012, 19:02:34 pm
Μου επιστρέφει ότι η ρίζα είναι 1.#QNAN0 γνωρίζει κανείς τι είδους λάθος είναι αυτό; Στον compiler ενός φίλου τρέχει σωστά.. Shocked
   NAN= not a number
Logged
sexycowboy
Θαμώνας
****
Posts: 456



View Profile
Re: [Δομημένος Πρ.] Εργασία E
« Reply #72 on: May 20, 2012, 19:07:36 pm »

Quote from: alex-pv on May 20, 2012, 19:05:57 pm
Quote from: sexycowboy on May 20, 2012, 19:02:34 pm
Μου επιστρέφει ότι η ρίζα είναι 1.#QNAN0 γνωρίζει κανείς τι είδους λάθος είναι αυτό; Στον compiler ενός φίλου τρέχει σωστά.. Shocked
   NAN= not a number

αυτό μόλις το βρήκα και εγώ σε ένα φόρουμ αλλά δεν μπορώ να καταλάβω πώς προκύπτει και κυρίως γιατί στον άλλο compiler τρέχει κανονικά..
Logged
c0ndemn3d
Veteran
Αbsolute ΤΗΜΜΥ.gr
******
Posts: 4804


Yarr!


View Profile
Re: [Δομημένος Πρ.] Εργασία E
« Reply #73 on: May 20, 2012, 19:10:21 pm »

Καμιά διαίρεση με 0 μήπως; Τις ίδιες τιμές έδωσες και στις 2 περιπτώσεις;
Logged

In response, the pirates had to adhere to a doctrine of their own...
war against the world

They took my home, I can't walk away from that; can you?
 Forget me, forget Teach, forget loyalty, compacts, honours, debts, all of it.
The only question that matters is this: Who are you?
sexycowboy
Θαμώνας
****
Posts: 456



View Profile
Re: [Δομημένος Πρ.] Εργασία E
« Reply #74 on: May 20, 2012, 19:15:32 pm »

Quote from: c0ndemn3d on May 20, 2012, 19:10:21 pm
Καμιά διαίρεση με 0 μήπως; Τις ίδιες τιμές έδωσες και στις 2 περιπτώσεις;

για διάφορες τιμές. Στον έναν compiler τρέχει ενώ στον άλλο όχι..το πρόβλημα θα πρεπε να εμφανίζεται εφόσον η f'(x0)  είναι 0, αλλά εμφανίζεται και σε άλλες περιπτώσεις..
Logged
Pages: 1 ... 3 4 [5] 6 Go Up Print
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Scribbles2 | TinyPortal © Bloc | XHTML | CSS
Loading...