node34.html
6.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others
Translation to greek : George Nassopoulos-->
<HTML>
<HEAD>
<TITLE>Στυλ προγραμματισμού</TITLE>
<META NAME="description" CONTENT="Style de programmation">
<META NAME="keywords" CONTENT="tutoriel">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="tutoriel.css">
<LINK REL="previous" HREF="node33.html">
<LINK REL="up" HREF="node31.html">
<LINK REL="next" HREF="node35.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html545"
HREF="node35.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html539"
HREF="node31.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html535"
HREF="node33.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html541"
HREF="node46.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<A NAME="tex2html543"
HREF="node47.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
<B> επόμενο:</B> <A NAME="tex2html546"
HREF="node35.html">Διορθωμένες ασκήσεις με το Xcas</A>
<B> εμφάνιση:</B> <A NAME="tex2html540"
HREF="node31.html">Προγραμματισμός</A>
<B> προηγούμενο:</B> <A NAME="tex2html536"
HREF="node33.html">Μερικά παραδείγματα</A>
<B> <A NAME="tex2html542"
HREF="node46.html">Πίνακας περιεχομένων</A></B>
<B> <A NAME="tex2html544"
HREF="node47.html">Ευρετήριο</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION00063000000000000000"></A>
<A NAME="851"></A>
<BR>
Στυλ προγραμματισμού
</H2>
Το <TT>Xcas</TT> είναι μία διερμηνευτική γλώσσα προγραμματισμού,
που σημαίνει πως μπορεί να εκτελεί μία-μία τις εντολές χωρίς
να χρειάζεται να τις μεταγλωττίσει πρώτα όλες μαζί.
Αυτό που επηρεάζει τον χρόνο υπολογισμού ενός προγράμματος δεν είναι
τόσο το πλήθος των γραμμών του, όσο το πλήθος
των εντολών που εκτελούνται. Κατά γενικό κανόνα,
είναι πιο γρήγορο να δημιουργούμε λίστες ή ακολουθίες από το
να προγραμματίζουμε σε βρόχους.
Ακολουθούν διάφοροι τρόποι υπολογισμού του 5000!
(το γινόμενο των πρώτων 5000 ακεραίων),
Συγκρίνετε τον χρόνο εκτέλεσής τους.
<PRE>
time(5000!)
time(product([n$(n=1..5000)]))
time(product(cumSum([1$5000])))
f:=1; (f:=f*n)$(n=2..5000):;f
f:=1; for(n:=1;n<=5000;n++) {f:=f*n}
f:=1;n:=1; while(n<5000) {n:=n+1; f:=f*n}
f:=1; (f:=f*n)$(n=2..5000)
</PRE>
Η ταχύτητα εκτέλεσης ενός προγράμματος είναι μερικές φορές
αντστρόφως ανάλογη προς την απλότητα και την σαφήνειά του.
Για καθημερινή χρήση όμως, ο χρόνος εκτέλεσης ενός προγράμματος
δεν παίζει σημαντικό ρόλο. Γενικά, χρησιμοποιούμε διερμηνευτικές γλώσσες
όπως το <TT>Xcas</TT> για να δοκιμάσουμε αλγορίθμους και να
εφαρμόσουμε διάφορα μοντέλα.
Αντίθετα, οι εφαρμογές μεγάλης κλίμακος (π.χ. η βιβλιοθήκη <code>giac</code>
του <TT>Xcas</TT>, που περιέχει τις
συναρτήσεις της υπολογιστικής άλγεβρας) είναι προγραμματισμένες σε γλώσσες
μεταγλωττισμού, όπως η C++.
<P>
<P>
<BR><HR>
<!--Navigation Panel-->
<A NAME="tex2html545"
HREF="node35.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html539"
HREF="node31.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html535"
HREF="node33.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html541"
HREF="node46.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<A NAME="tex2html543"
HREF="node47.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
<B> επόμενο:</B> <A NAME="tex2html546"
HREF="node35.html">Διορθωμένες ασκήσεις με το Xcas</A>
<B> εμφάνιση:</B> <A NAME="tex2html540"
HREF="node31.html">Προγραμματισμός</A>
<B> προηγούμενο:</B> <A NAME="tex2html536"
HREF="node33.html">Μερικά παραδείγματα</A>
<B> <A NAME="tex2html542"
HREF="node46.html">Πίνακας περιεχομένων</A></B>
<B> <A NAME="tex2html544"
HREF="node47.html">Ευρετήριο</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<ADDRESS>
Βιβλιογραφία του <A HREF="http://www-fourier.ujf-grenoble.fr/~parisse/giac_fr.html">giac</A> από τους Renee De Graeve, Bernard Parisse και Bernard Ycart
</ADDRESS>
Μετάφραση στα Ελληνικά : Γιώργος Νασόπουλος. Διασκευή : Αλκιβιάδης Γ. Ακρίτας
</BODY>
</HTML>