• Downloads
  • ! Read Me !
  • Μαθήματα
  • Φοιτητικά
  • Τεχνικά Θέματα
  • Συζητήσεις
  • Happy Hour!
  • About THMMY.gr
 V  < 
Search:  
Welcome, Guest. Please login or register.
August 03, 2025, 05:21:46 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.
August 03, 2025, 05:21:46 am

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
[Τομέας Ενέργειας] Μαθήμα...
by PolarBear
[August 02, 2025, 23:35:57 pm]

Ρύθμιση θερμικού για μοτέ...
by chatzikys
[August 02, 2025, 21:29:19 pm]

Τι ακούτε αυτήν τη στιγμή...
by Katarameno
[August 02, 2025, 19:59:00 pm]

Αποτελέσματα Εξεταστικής ...
by Ma8hths Indou
[August 02, 2025, 17:30:47 pm]

[Τηλεπικοινωνιακά Συστήμα...
by Thanasis_pap
[August 02, 2025, 17:06:37 pm]

Άδεια ασκήσεως επαγγέλματ...
by The Web
[August 02, 2025, 13:25:49 pm]

[Τομέας Ηλεκτρονικής] Μαθ...
by Nikos_313
[August 02, 2025, 09:51:26 am]

Οι μπράβοι του πρύτανη
by Διάλεξις
[August 02, 2025, 01:30:18 am]

[Διανεμημένη Παραγωγή] Γε...
by Διάλεξις
[August 02, 2025, 01:04:15 am]

Πρακτική Άσκηση ΤΗΜΜΥ 201...
by Διάλεξις
[August 02, 2025, 00:59:05 am]

Ηλεκτρομηχανολογικές Μελέ...
by inverter
[August 01, 2025, 20:35:12 pm]

Νέα Δημοκρατία (and Co. I...
by Katarameno
[August 01, 2025, 15:13:09 pm]

Πρόγραμμα Σπουδών Ακαδημα...
by PolarBear
[August 01, 2025, 15:03:05 pm]

Aναζωπύρωση των εχθροπραξ...
by Katarameno
[July 31, 2025, 21:15:48 pm]

Καμμένα...!!
by Godat
[July 31, 2025, 21:07:58 pm]

[ΑΝΤΙΣΤΑΣΗ] Ανακοίνωση γι...
by Katarameno
[July 31, 2025, 20:31:30 pm]

Αρχείο Ανακοινώσεων [Arch...
by Nikos_313
[July 31, 2025, 15:33:28 pm]

ΤΗΜΜΥ-Σκάκι
by L
[July 31, 2025, 13:24:56 pm]

Τα παράσιτα ανάμεσά μας
by Katarameno
[July 30, 2025, 13:47:28 pm]

Ρώτα κάτι τον επόμενο
by Giopan
[July 29, 2025, 16:04:23 pm]
Στατιστικά
Members
Total Members: 9988
Latest: kyrlef
Stats
Total Posts: 1427647
Total Topics: 31739
Online Today: 125
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 5
Guests: 83
Total: 88
Giannis Masterio
Mr Watson
Xhyk26
akinous
Εμφάνιση

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

Νέα!
Επίσημη ενημέρωση για Αντιστοίχηση Μαθημάτων ΝΠΣ με ΠΠΣ και η συζήτηση στο forum.
THMMY.gr > Forum > Μαθήματα Βασικού Κύκλου > 1ο Εξάμηνο > Δομημένος Προγραμματισμός (Moderators: Tasos Bot, tzortzis, Nekt) > [Δομημένος Προγραμματισμός] Άσκηση 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 2856 times)
leukosaraphs!
Veteran
Καταστραμμένος
******
Gender: Male
Posts: 9596


εφακ


View Profile
Re: [Δομημένος Προγραμματισμός] Άσκηση 5 (Hμ/νία λήξης: 10/4/2016)
« Reply #15 on: March 31, 2016, 22: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, 20:03:39 pm
Συνεχίστηκε η παράδοση που θέλει τους Γερμανούς να φεύγουν ηττημένοι από τη Μόσχα  Grin
Egkelados
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Posts: 837



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

Quote from: leukosaraphs! on March 31, 2016, 22: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, 22:45:16 pm »

Quote from: Apostolof on March 31, 2016, 18: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, 10: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...