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

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
Ποιον πάροχο να επιλέξω?
by Nikos_313
[Today at 20:41:30]

[Οπτική] Να επιλέξω το μά...
by Nikostrim
[Today at 05:05:26]

Ποιο τραγούδι ακούσατε 5+...
by Katarameno
[Today at 02:13:58]

Αστεία Βίντεο
by Katarameno
[Today at 00:38:19]

Aναζωπύρωση των εχθροπραξ...
by Katarameno
[September 17, 2025, 22:43:28 pm]

best username in THMMY.gr
by Katarameno
[September 17, 2025, 20:35:29 pm]

Αποτελέσματα Εξεταστικής ...
by ilazarit
[September 17, 2025, 19:59:41 pm]

[Τηλεπικοινωνιακά Συστήμα...
by chatzikys
[September 17, 2025, 16:07:13 pm]

Πρόγραμμα Σπουδών Ακαδημα...
by sg31a
[September 17, 2025, 11:35:11 am]

Εργασία στην METLEN, Γνώμ...
by ChrisKaloy-Kakou
[September 17, 2025, 00:51:50 am]

Συμβάσεις και εταιρείες
by Nikos_313
[September 16, 2025, 23:02:05 pm]

[Στοχαστικά Σήματα και Δι...
by Nikos_313
[September 16, 2025, 22:54:08 pm]

Μέλος του μήνα - Ιούλιος ...
by Katarameno
[September 16, 2025, 19:37:40 pm]

Ευρωμπάσκετ 2025
by Katarameno
[September 16, 2025, 02:46:49 am]

Πότε θα βγει το μάθημα; -...
by Katarameno
[September 16, 2025, 01:08:33 am]

Τι ακούτε αυτήν τη στιγμή...
by Katarameno
[September 15, 2025, 22:10:40 pm]

Users <=22 OR >=222
by Mr Watson
[September 14, 2025, 19:36:18 pm]

[ΑΡΑΓΕ Attack] ΝΑ ΕΠΙΣΤΡΕ...
by Aris★
[September 14, 2025, 14:31:33 pm]

[Τομέας Ηλεκτρονικής] Μαθ...
by Nikos_313
[September 14, 2025, 13:29:36 pm]

Των συνειρμών το παίγνιο....
by chatzikys
[September 14, 2025, 13:20:18 pm]
Στατιστικά
Members
Total Members: 10014
Latest: Jimana
Stats
Total Posts: 1428152
Total Topics: 31767
Online Today: 661
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 47
Guests: 252
Total: 299
pantoulis
PaterMakarios
Nikos_313
kakousios
PANKRAV
mhtsakos02
ioannismk
Paschalina.S
Nekt
tzesi
AA RE LEWN
papaane
paximadas
Konstantina Karamani
alexis173
vajulin
dimitris papadopoulos
iasonasl
chatzikys
secretcypriot
botrinis
Nianaro
alextsigilis
TahmKench
babis.o.sougias
gorilaki
christina02
DioBadiavas
gpap
stloukas
iliaspapas
Katarameno
Sotirisbikos
ioannisv
eplysia
Threshold
cheefler
georkala
Akis Papanikolaou
The Web
george14
Vasilikikr
stefpapa21
Εμφάνιση

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

Νέα!
Για ανανέωση (ή προσθήκη νέου) avatar, πρέπει η μεγαλύτερη διάσταση της εικόνας να είναι 110 pixels.
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 3064 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...