• Downloads
  • ! Read Me !
  • Μαθήματα
  • Φοιτητικά
  • Τεχνικά Θέματα
  • Συζητήσεις
  • Happy Hour!
  • About THMMY.gr
 V  < 
Search:  
Welcome, Guest. Please login or register.
February 04, 2026, 07:32:41 am

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.
February 04, 2026, 07:32:41 am

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
Πότε θα βγει το μάθημα; -...
by sassi
[Today at 03:54:57]

[ΣΑΕ Ι] Γενικές απορίες κ...
by Hyperlaz02
[February 03, 2026, 23:04:38 pm]

[Μετάδοση Θερμότητας] Να ...
by chatzikys
[February 03, 2026, 22:17:04 pm]

Μόλις μπήκα απο κατατακτή...
by chatzikys
[February 03, 2026, 18:51:59 pm]

Αποτελέσματα Εξεταστικής ...
by chatzikys
[February 03, 2026, 11:49:01 am]

[Ηλεκτρονική Ι] Γενικές α...
by Giopan
[February 03, 2026, 05:46:35 am]

[ΑΣΗΕ] Απορίες στις ασκήσ...
by Tasos Bot
[February 02, 2026, 20:50:35 pm]

[Μεταφορά και Διανομή ΗΕ]...
by Mr Watson
[February 02, 2026, 18:55:28 pm]

Τι καφέ πίνετε;
by MeTheWizard
[February 02, 2026, 18:27:47 pm]

[Θ.Υ.Α.] Επικαιρότητα, απ...
by OlgaG
[February 01, 2026, 00:17:07 am]

H Στοά των Off Topic
by chatzikys
[January 31, 2026, 21:05:09 pm]

Πολεμοσυνέδριο στο ΑΠΘ
by dimikotz
[January 31, 2026, 20:47:47 pm]

[ΣΦ ΗΛ-ΜΗΧ] Ανακοίνωση Σχ...
by Χαρούμενη Πατάτα
[January 30, 2026, 21:10:34 pm]

[Τηλεπ. Συστήματα ΙΙΙ] Γε...
by sofipout
[January 30, 2026, 20:34:25 pm]

[Η/Μ Πεδίο ΙΙ] Ανάλυση πα...
by Tsn
[January 30, 2026, 18:59:46 pm]

Πρακτική Άσκηση ΤΗΜΜΥ 201...
by Διάλεξις
[January 30, 2026, 12:45:58 pm]

[Unofficial Mod] Dark Mod...
by nmpampal
[January 29, 2026, 23:02:21 pm]

[Μετάδοση Θερμότητας] Γεν...
by chatzikys
[January 29, 2026, 20:58:16 pm]

[Ηλεκτρική Οικονομία] Γεν...
by ttsengel
[January 29, 2026, 19:29:04 pm]

[Οπτική] Γενικές Πληροφορ...
by Σουλης
[January 29, 2026, 16:07:44 pm]
Στατιστικά
Members
Total Members: 10349
Latest: Kasetofwnos
Stats
Total Posts: 1430047
Total Topics: 31901
Online Today: 285
Online Ever: 6054
(January 14, 2026, 06:07:19 am)
Users Online
Users: 16
Guests: 108
Total: 124
femanak
Ampajohn
xanthosp
stefpapa21
Mitsos1
Mr Z
antreassv
sotirispo2
Vgs
Anastasiam
freakyy
vasilis saitis
Geoth
okatapo
Petross
Εμφάνιση

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

THMMY.gr > Forum > Μαθήματα Βασικού Κύκλου > 1ο Εξάμηνο > Δομημένος Προγραμματισμός (Moderators: Tasos Bot, tzortzis, Nekt, tony stank) > [Δομημένος Προγραμματισμός] Άσκηση 5 (Hμ/νία λήξης: 10/4/2016)
0 Members and 1 Guest are viewing this topic.
Pages: 1 [2] Go Down Print
Author Topic: [Δομημένος Προγραμματισμός] Άσκηση 5 (Hμ/νία λήξης: 10/4/2016)  (Read 3420 times)
leukosaraphs!
Veteran
Καταστραμμένος
******
Gender: Male
Posts: 9596


εφακ


View Profile
Re: [Δομημένος Προγραμματισμός] Άσκηση 5 (Hμ/νία λήξης: 10/4/2016)
« Reply #15 on: March 31, 2016, 21:43:17 pm »

Μπερδευτηκα , δεν ηθελα να πω warnings , αλλα errors ... Αλλα οκ με καλυψε το link

Επισης @Egkelados δεν παταω στον dgen αρα δν ξερω τι οδηγιες εδωσε  Cheesy Cheesy
Logged


-What  do you get  when you cross  an insomniac, an agnostic and a dyslexic?
-Someone who stays up all night wondering if there is a Dog.

You can't spell fart without art

Quote from: Xplicit on June 17, 2018, 19:03:39 pm
Συνεχίστηκε η παράδοση που θέλει τους Γερμανούς να φεύγουν ηττημένοι από τη Μόσχα  Grin
Egkelados
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Posts: 837



View Profile
Re: [Δομημένος Προγραμματισμός] Άσκηση 5 (Hμ/νία λήξης: 10/4/2016)
« Reply #16 on: March 31, 2016, 21:45:03 pm »

Quote from: leukosaraphs! on March 31, 2016, 21:43:17 pm
Επισης @Egkelados δεν παταω στον dgen αρα δν ξερω τι οδηγιες εδωσε  Cheesy Cheesy

χαχαχαχα γιατί ποιος πατάει;;;;;  Cheesy  Grin  Cheesy  Grin
Logged
kongr45gpen
Καταξιωμένος/Καταξιωμένη
***
Posts: 139



View Profile WWW
Re: [Δομημένος Προγραμματισμός] Άσκηση 5 (Hμ/νία λήξης: 10/4/2016)
« Reply #17 on: March 31, 2016, 21:45:16 pm »

Quote from: Apostolof on March 31, 2016, 17:22:31 pm
Πολύ καλός Assassin. Σωστότατος και open source Smiley
Βέβαια καλό θα είναι αν έχεις έτοιμο πρόγραμμα που λειτουργεί και όχι απορίες να το ποστάρεις μετά τη λήξη της διορίας.

Τώρα στα του προγραμματισμού, εγώ θα το έγραφα όπως λέει ο Egkelados για οικονομία χώρου. Εδώ δεν υπάρχει καμία διαφορά. Αλλά όταν υπάρχουν πολλές επαναλήψεις ή αναδρομικές συναρτήσεις μπορεί οι προσωρινές μεταβλητές αυτές να δημιουργήσουν πρόβλημα.

Σχετικά με το χρόνο εκτέλεσης μπορούμε να δούμε τα αποτελέσματα αυτού:
Code:
#include <stdio.h>
#include <time.h>
#define REP 1000000

double kybos1(float);
double ginomeno1(float,float,float);
double kybos2(float);
double ginomeno2(float,float,float);

int main() {
clock_t begin1, end1,begin2, end2;
double time_spent1,time_spent2;
float x,y,z;
double fu;
int i;
begin1 = clock();
for(i=0;i<REP;i++){
    x=y=z=i;
    printf("To αποτελεσμα της f(x) είναι : %f\n",kybos1(x)+ginomeno1(x,y,z) );
}
end1 = clock();
time_spent1 = (double)(end1 - begin1) / CLOCKS_PER_SEC;
begin2 = clock();
for(i=0;i<REP;i++){
    x=y=z=i;
    fu=kybos2(x)+ginomeno2(x,y,z);
    printf("To αποτελεσμα της f(x) είναι : %f\n",fu );
}
end2 = clock();
time_spent2 = (double)(end2 - begin2) / CLOCKS_PER_SEC;
printf("Time 1 = %lf\nTime 2 = %lf",time_spent1,time_spent2);
return 0;
}
double kybos1(float x){
return x*x*x;
}
double ginomeno1(float x, float y, float z){
return x*y*z;
}
double kybos2(float x){
double t;
t=x*x*x;
return t;
}
double ginomeno2(float x, float y, float z){
double t;
t=x*y*z;
return t;
}

Εγώ το έτρεξα μέχρι τις 1000000 επαναλήψεις και έβγαλε:
Code:
Time 1 = 165.24
Time 2 = 164.69

Δηλαδή η γραφή του Assassin είναι γρηγορότερη! Αυτό υποθέτω ότι συμβαίνει γιατί ο compiler που χρησιμοποίησα (mingw) κάνει καλύτερο optimization στη μορφή που το έχει γράψει ο Assassin από ότι στην άλλη. Ο ίδιος κώδικας όταν χρησιμοποίησα gnu gcc έδωσε:
Code:
Time 1 = 160.23
Time 2 = 160.26
Αν κάποιος ξέρει περισσότερα ας συμπληρώσει.

Συμφωνώ με Apostolof, το απλό return x*x*x φαίνεται πιο ευανάγνωστο, ενώ η άλλη λύση μπορεί να αυξήσει τις απαιτήσεις σε χώρο και μνήμη, αν και πάλι είναι αμελητέες.

Έκανα κι εγώ κάποια benchmarks με το GCC και τον κώδικα του Apostolof, αφού αφαίρεσα τις printf που είναι αρκετά βαριές (https://gist.github.com/kongr45gpen/269d32cafc307b6bce44d9ffd0856ed0). Με full optimization, οι δύο τρόποι δεν είχαν διαφορά (άλλοτε έβγαινε το 1 γρηγορότερο, άλλοτε το 2), ενώ με καθόλου optimization, οι συναρτήσεις χωρίς έξτρα μεταβλητή είναι ελάχιστα πιο γρήγορες από τις άλλες:

Code:
gcc -03

Time 1 = 0.282369
Time 2 = 0.282341

Code:
gcc -00

Time 1 = 2.374460
Time 2 = 2.612350

EDIT: gcc -O4 → gcc -O3
« Last Edit: April 02, 2016, 09:45:39 am by kongr45gpen » Logged

Update your bookmarks! users.auth.gr/konkanant is no more — go to helit.org/ece-notes!
Pages: 1 [2] Go Up Print
Jump to:  

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