Jump to content

Recommended Posts

Posted

Σε όποια γλώσσα και αν γράφετε (java,vb,vb.net,c# ή άλλη) υπάρχουν κάποια γενικά πράγματα για να γράφετε καλύτερο κώδικα.

 

1.Μεταβλητές και σταθερές,

 

ΜΕΤΑΒΛΗΤΕΣ

 

Πχ. όταν δηλώνετε μια μεταβλητή:

 

int number;
number = 20;

 

Είναι πιο γρήγορο να την δηλώσετε στην ίδια γραμμή (εκτελείται πιο γρήγορα).

Και αυτό γιατί όταν μεταφραστεί σε assembly, πριν γίνει γλώσσα μηχανής ο linker στην πρώτη περίπτωση καταλαμβάνει 2 καταχωρητές ενώ στην δεύτερη έναν.

 

int number = 20;

 

 

Τα ονόματα με τα οποία δηλώνετε τις μεταβλητές σας καλό είναι να είναι αντιπροσωπευτικά δηλαδή να καταλαβαίνετε τι αντιπροσωπεύει μια μεταβλητή:

 

πχ. για ένα όνομα,

 

string onoma = "Kostas";

 

και όχι

 

string something = "Kostas";

 

Ακόμα τα ονόματα των μεταβλητών σας πρέπει να είναι μικρά για να μην σας τρώει πολύ χρόνο να τα πληκτρολογείτε,

 

πχ.

 

string slang = "Ellinika";
int fnum = "1";

 

και όχι

 

string selectedlanguage = "Ellinika";
int firstnumber = "1";

 

To παραπάνω δεν είναι και απαγορευτικό βέβαια, περί ορέξεως κολοκυθόπιτα που λένε. :P

 

 

ΣΤΑΘΕΡΕΣ

 

Σε αντίθεση με τις μεταβλητές η αξία των σταθερών δηλώνεται συνήθως στην αρχή του προγράμματος και δεν είναι δυνατό να αλλάξει κατά την εκτέλεσή του.

 

Οι σταθερές συνήθως αντιπροσωπεύουν αξίες που δεν αλλάζουν μέσα στο πρόγραμμα, και γράφονται κατά προτίμηση με κεφαλαία για να ξεχωρίζουν από τις μεταβλητές χωρίς όμως αυτό να αποτελεί προϋπόθεση.

 

πχ.

 

const double PINUM = 3.14;

 

Γιατί χρησιμοποιούμε σταθερές?

 

Το γιατί χρησιμοποιούμε σταθερές θα το καταλάβετε αμέσως μετά το επόμενο παράδειγμα,

 

πείτε ότι έχουμε το παρακάτω πρόγραμμα που υπολογίζει τις τιμές 3 προϊόντων με ΦΠΑ και μας δίνει το αποτέλεσμα και ότι το γράψαμε μερικά χρόνια πριν,

 

double dvdprice = 85 + 85 * 0.18;
double tvprice = 150 + 150 * 0.18;
double ps2price = 200 + 200 * 0.18;

double sum = dvdprice + tvprice + ps2price;

 

//0.18 είναι το 18% της τιμής του προϊόντος. (ΦΠΑ)

 

Προφανώς το ΦΠΑ έχει ανέβει από τότε στο 23%, οπότε πρέπει να πάμε σε κάθε γραμμή και να αντικαταστήσουμε το 0.18 με 0.23 κάτι που στην προκειμένη περίπτωση φένεται εύκολο γιατί έχουμε μόνο 3 προϊόντα αλλά για σκεφτείτε να είχαμε 300 ή 400 προϊόντα (πραγματικός πονοκέφαλος να κάνουμε αλλαγές σε κάθε γραμμή για 300 ή 400 γραμμές) και εδώ έρχονται οι σταθερές να κάνουν τη ζωή μας εύκολη.

 

Δείτε πόσο εύκολα μπορούμε με τη χρήση μιας σταθεράς να κάνουμε τη ζωή μας πιο εύκολη,

 

const double FPA = 0.23;

double dvdprice = 85 + 85 * FPA;
double tvprice = 150 + 150 * FPA;
double ps2price = 200 + 200 * FPA;

double sum = dvdprice + tvprice + ps2price;

 

-------------------------------------------------------------------------------------

 

Καλό θα είναι να μην χρησιμοποιείτε πάρα πολλές μεταβλητές γιατί ουσιαστικά ενώ εσείς μπορείτε να χρησιμοποιήσετε ένα μεγάλο αριθμό μεταβλητών θεωρητικά άπειρο οι καταχωρητές του CPU σας στις οποίες στο τέλος αποθηκεύονται οι μεταβλητές είναι πεπερασμένες.Οπότε όσο λιγότερες μεταβλητές τόσο λιγότερους καταχωρητές χρησιμοποιείτε, κάτι που έχει τελικά επίδραση στο χρόνο εκτέλεσης του προγράμματος. (η οποία εξαρτάται από το μέγεθος του προγράμματος).

 

2.Δομές επιλογής

 

//του ντου

 

 

 

 

 

 

Αυτά για τώρα θα φτιάξω και άλλα τουτ, όποιος θέλει τίποτα pm,

 

 

Κώστας.

 

 

Όλα τα παραπάνω είναι γραμμένα σε Visual C#.Τα ίδια ισχύουν και γενικότερα όμως πχ, για java, C....

 

Γραμμές που προστέθηκαν

Γραμμές που επεξεργάστηκαν

Γραμμές που διαγράφτηκαν

Posted

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

Συνήθως οι μεταβλητές μου είναι απο 1 έως 3 γράμματα και δεν αφήνω μεγάλα κενά όπου δεν χρειάζεται, ούτε notes που τρώνε αρκετό χώρο στο πρόγραμμα.

Αν και δεν ασχολούμαι τόσο πολύ με τα programming languages δουλεύω πάνω στην pascal λόγω της σχολής και τελευταία με ενδιέφερε πιο πολύ οπότε ασχολούμαι και στο σπίτι

Posted

@ED, σε Pascal έδωσα πανελλήνιες :) !

 

Επίσης καλό είναι να γράφουμε με δόμηση αφήνοντας κενά(tab spaces) για να είναι πιο κατανοητός ο κώδικας.

 

π.χ.:

if(x>0)
print ">0";
else
print "<=0";

και όχι

if(x>0)
print ">0";
else
print "<=0";

 

 

Posted

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

Συνήθως οι μεταβλητές μου είναι απο 1 έως 3 γράμματα και δεν αφήνω μεγάλα κενά όπου δεν χρειάζεται, ούτε notes που τρώνε αρκετό χώρο στο πρόγραμμα.

Αν και δεν ασχολούμαι τόσο πολύ με τα programming languages δουλεύω πάνω στην pascal λόγω της σχολής και τελευταία με ενδιέφερε πιο πολύ οπότε ασχολούμαι και στο σπίτι

 

Ωραίος :D

 

Επίσης καλό είναι να γράφουμε με δόμηση αφήνοντας κενά(tab spaces) για να είναι πιο κατανοητός ο κώδικας.

 

π.χ.:

if(x>0)
print ">0";
else
print "<=0";

και όχι

if(x>0)
print ">0";
else
print "<=0";

 

 

 

Σκόπευα να το βάλω σε ένα από τα επόμενα τουτοριαλς αφού πρώτα βάλω για ιφ , σουιτς κτλπ θα έφτιαχνα και ένα γενικότερο για κομμεντς και στοίχηση του κώδικα ομοιόμορφα, αλλά με πρόλαβες! :P

 

 

 

Posted

Σκόπευα να το βάλω σε ένα από τα επόμενα τουτοριαλς αφού πρώτα βάλω για ιφ , σουιτς κτλπ θα έφτιαχνα και ένα γενικότερο για κομμεντς και στοίχηση του κώδικα ομοιόμορφα, αλλά με πρόλαβες! :P

Ετοιμάζεις κι'άλλα guides?

 

Περιμένωωω :D

Posted

@ED, σε Pascal έδωσα πανελλήνιες :) !

 

Επίσης καλό είναι να γράφουμε με δόμηση αφήνοντας κενά(tab spaces) για να είναι πιο κατανοητός ο κώδικας.

 

π.χ.:

if(x>0)
print ">0";
else
print "<=0";

και όχι

if(x>0)
print ">0";
else
print "<=0";

 

 

afto pantos pleon sta perisotera programmata ginete aftomata

toulaxiston sto eclipse p doulevw ginete

alla kai se osa alla douleva palia ginotan

Posted

Σκόπευα να το βάλω σε ένα από τα επόμενα τουτοριαλς αφού πρώτα βάλω για ιφ , σουιτς κτλπ θα έφτιαχνα και ένα γενικότερο για κομμεντς και στοίχηση του κώδικα ομοιόμορφα, αλλά με πρόλαβες! :P

Νομίζω καλύτερο θα ήταν να τα έχεις όλα σε ένα νήμα.

 

afto pantos pleon sta perisotera programmata ginete aftomata

toulaxiston sto eclipse p doulevw ginete

alla kai se osa alla douleva palia ginotan

Αναφερόμουν σε αυτούς που δεν χρησιμοποιούν IDE αλλά κάποιον απλό κειμενογράφο.
Posted

Καλο πιστευω ειναι να κανουμε και σχολιο στο κωδικα μας.

 

Εννοείται και είναι πολύ σημαντικό να σχολιάζουμε τον κώδικα μας ειδικότερα όταν γράφουμε μεγάλα κομμάτια κώδικα αλλά σε ένα νορμάλ επίπεδο να μην το παρακάνουμε...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • Well...i dont wanna flame him or defame him ,2 months after the order and he havent delivered and tbh this isnt my issue...he just stopped responding,he didnt scammed me or anything like this..Just ghosting 😄
    • I cant respond for personal issues that anybody can face in real life.  About Nevesoma, for sure he gonna deliver you, just realize how many clients and orders he has. Please be patient, things need time. Sincerely.
    • Yeah…i will need other alternatives   Neves0ma i hired him to do a job and never delivered and keeps ghosting me Ave dont respond to me,i hired him and then canceled order and since then we cant work together 
    • The Dawn of Book in the NPC's hand isn't showing up. Is there a way to fix this?   This NPC is probably the only one in the game who wields a weapon with his left hand.   Weapon :[dawnn_book]    =    5802   I've tried several server-side programs, including Java emulators, and they all seem to have this problem. Or is there some special game mechanic controlling this NPC?   npc_begin teleporter 31081 [dawn_priest_giran] category={} level=70 exp=429634523 ex_crt_effect=1 unique=0 s_npc_prop_hp_rate=1 race=human sex=male skill_list={@s_npc_prop_race_human;@s_npc_prop_hp_lv_p0;@s_npc_prop_mp_lv_p0;@s_npc_prop_pa_lv_p0;@s_npc_prop_ma_lv_p0;@s_npc_prop_pd_lv_p0;@s_npc_prop_md_lv_p0;@s_npc_prop_armor_type_n;@s_npc_prop_weapon_type_fist;@s_full_magic_defence} slot_chest=[] slot_rhand=[] slot_lhand=[dawnn_book] collision_radius={8;8} collision_height={30.5;30.5} hit_time_factor=0.6 hit_time_factor_skill=-1 ground_high={120;0;0} ground_low={50;0;0} str=40 int=21 dex=30 wit=20 con=43 men=20 org_hp=2444.46819 org_hp_regen=7.5 org_mp=1345.8 org_mp_regen=2.7 base_attack_type=fist base_attack_range=40 base_damage_range={0;0;80;120} base_rand_dam=10 base_physical_attack=688.86373 base_critical=4 physical_hit_modify=5 base_attack_speed=253 base_reuse_delay=0 base_magic_attack=470.40463 base_defend=295.91597 base_magic_defend=216.53847 base_attribute_attack={none;0} base_attribute_defend={150;150;150;150;150;150;150} physical_avoid_modify=0 shield_defense_rate=20 shield_defense=147.957985 safe_height=100 soulshot_count=0 spiritshot_count=0 clan={} ignore_clan_list={} clan_help_range=300 undying=1 can_be_attacked=0 corpse_time=7 no_sleep_mode=0 agro_range=1000 passable_door=0 can_move=1 flying=0 has_summoner=0 targetable=1 show_name_tag=1 npc_ai={[dawn_priest_giran];{[MoveAroundSocial]=0};{[MoveAroundSocial1]=110};{[ssq_priest_type]=2}} event_flag={0} unsowing=1 private_respawn_log=0 acquire_exp_rate=0 acquire_sp=0 acquire_rp=0 corpse_make_list={} additional_make_list={} additional_make_multi_list={} ex_item_drop_list={} fake_class_id=-1 npc_end  
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock