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 135 136
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Maxima Manual: Einführung in die Programmierung</title>
<meta name="description" content="Maxima Manual: Einführung in die Programmierung">
<meta name="keywords" content="Maxima Manual: Einführung in die Programmierung">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="maxima_toc.html#Top" rel="start" title="Top">
<link href="maxima_334.html#Index-der-Variablen-und-Funktionen" rel="index" title="Index der Variablen und Funktionen">
<link href="maxima_toc.html#SEC_Contents" rel="contents" title="Inhaltsverzeichnis">
<link href="maxima_165.html#Programmierung" rel="up" title="Programmierung">
<link href="maxima_168.html#Funktionen-und-Variablen-der-Programmierung" rel="next" title="Funktionen und Variablen der Programmierung">
<link href="maxima_166.html#Lisp-und-Maxima" rel="previous" title="Lisp und Maxima">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
body {color: black; background: white; margin-left: 8%; margin-right: 13%;
font-family: "FreeSans", sans-serif}
h1 {font-size: 150%; font-family: "FreeSans", sans-serif}
h2 {font-size: 125%; font-family: "FreeSans", sans-serif}
h3 {font-size: 100%; font-family: "FreeSans", sans-serif}
a[href] {color: rgb(0,0,255); text-decoration: none;}
a[href]:hover {background: rgb(220,220,220);}
div.textbox {border: solid; border-width: thin; padding-top: 1em;
padding-bottom: 1em; padding-left: 2em; padding-right: 2em}
div.titlebox {border: none; padding-top: 1em; padding-bottom: 1em;
padding-left: 2em; padding-right: 2em; background: rgb(200,255,255);
font-family: sans-serif}
div.synopsisbox {
border: none; padding-top: 1em; padding-bottom: 1em; padding-left: 2em;
padding-right: 2em; background: rgb(255,220,255);}
pre.example {border: 1px solid rgb(180,180,180); padding-top: 1em;
padding-bottom: 1em; padding-left: 1em; padding-right: 1em;
background-color: rgb(238,238,255)}
div.spacerbox {border: none; padding-top: 2em; padding-bottom: 2em}
div.image {margin: 0; padding: 1em; text-align: center}
div.categorybox {border: 1px solid gray; padding-top: 1em; padding-bottom: 1em;
padding-left: 1em; padding-right: 1em; background: rgb(247,242,220)}
img {max-width:80%; max-height: 80%; display: block; margin-left: auto; margin-right: auto}
-->
</style>
<link rel="icon" href="figures/favicon.ico">
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6>"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
</head>
<body lang="de" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Einf_00fchrung-in-die-Programmierung"></a>
<div class="header">
<p>
Next: <a href="maxima_168.html#Funktionen-und-Variablen-der-Programmierung" accesskey="n" rel="next">Funktionen und Variablen der Programmierung</a>, Previous: <a href="maxima_166.html#Lisp-und-Maxima" accesskey="p" rel="previous">Lisp und Maxima</a>, Nach oben: <a href="maxima_165.html#Programmierung" accesskey="u" rel="up">Programmierung</a> [<a href="maxima_toc.html#SEC_Contents" title="Inhaltsverzeichnis" rel="contents">Inhalt</a>][<a href="maxima_334.html#Index-der-Variablen-und-Funktionen" title="Index" rel="index">Index</a>]</p>
</div>
<a name="Einfuhrung-in-die-Programmierung"></a>
<h3 class="section">27.2 Einführung in die Programmierung</h3>
<p>In Maxima können Programme geschrieben werden. Alle Maxima-Funktionen und
Maxima-Variablen können in Programmen verwendet werden. Maxima hat einen
Übersetzer, um Maxima-Programme in Lisp-Programme zu übersetzen, und einen
Compiler, um die übersetzten Programme zu kompilieren. Siehe dazu das Kapitel
<a href="maxima_169.html#g_t_00dcbersetzer">Übersetzer</a>.
</p>
<p>Maxima-Programme bestehen aus Funktionen und Makros, die im Kapitel
<a href="maxima_157.html#Funktionsdefinitionen">Funktionsdefinitionen</a> beschrieben sind. Die Funktionen werden aus
Ausdrücken der Form <code>(expr_1, expr_2, ..., expr_n)</code> oder
<code><a href="maxima_168.html#block">block</a></code>-Anweisungen zusammengesetzt. Mit der Anweisung <code><a href="maxima_168.html#local">local</a></code> werden
Variablen definiert, deren Werte und Eigenschaften lokal zu einem Block sind.
</p>
<p>Konditionale Verzweigen werden mit der Anweisung <code><a href="maxima_168.html#if">if</a></code> definiert und haben
die Form <code>if ... then ... else</code>.
</p>
<p>Maxima kennt die sehr allgemeine Anweisung <code><a href="maxima_168.html#for">for</a></code>, um Schleifen zu
programmieren. Schlüsselworte für die Programmierung von Schleifen sind
<code><a href="maxima_168.html#while">while</a></code>, <code><a href="maxima_168.html#unless">unless</a></code>, <code><a href="maxima_168.html#do">do</a></code> sowie <code>thru</code>, <code>step</code>,
<code>in</code>.
</p>
<p>Mit der Sprunganweisung <code><a href="maxima_168.html#return">return</a></code> kann ein Block verlassen werden und mit
der Sprunganweisung <code><a href="maxima_168.html#go">go</a></code> wird innerhalb eines Blockes zu eine Marke
verzweigt. Nicht-lokale Rücksprünge aus Funktionen werden mit den
Anweisungen <code><a href="maxima_168.html#catch">catch</a></code> und <code><a href="maxima_168.html#throw">throw</a></code> programmiert.
</p>
<p>Die Anweisung <code><a href="maxima_168.html#errcatch">errcatch</a></code> fängt Fehler ab, so dass die Ausführung eines
Programms nicht abgebrochen wird. Mit der Anweisungen <code><a href="maxima_168.html#error">error</a></code> und
<code><a href="maxima_168.html#break">break</a></code> wird ein Programm abgebrochen. Im ersten Fall kann eine
Fehlermelung ausgegeben werden und das Programm kehrt zur Maxima-Kommandozeile
zurück. Mit <code>break</code> wird der Maxima-Debugger gestartet.
</p>
<p>Maxima kennt die folgenden Anweisungen und Variablen um Programme zu definieren:
</p>
<pre class="verbatim"> backtrace block break
catch do eval_when
errcatch error error_size
error_syms errormsg for
go if local
return throw unless
while
</pre>
<a name="Item_003a-Program_002ede_002fnode_002fFunktionen-und-Variablen-der-Programmierung"></a><hr>
<div class="header">
<p>
Next: <a href="maxima_168.html#Funktionen-und-Variablen-der-Programmierung" accesskey="n" rel="next">Funktionen und Variablen der Programmierung</a>, Previous: <a href="maxima_166.html#Lisp-und-Maxima" accesskey="p" rel="previous">Lisp und Maxima</a>, Nach oben: <a href="maxima_165.html#Programmierung" accesskey="u" rel="up">Programmierung</a> [<a href="maxima_toc.html#SEC_Contents" title="Inhaltsverzeichnis" rel="contents">Inhalt</a>][<a href="maxima_334.html#Index-der-Variablen-und-Funktionen" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
|