Home

Page 1 ,,, @@@ @@@ ,,, ,, ,, @@ ,,,, @@ ,,, @@@,,, @@@ Einf

image

Contents

1. if abs a 1t eps then write WARNUNG a nahe Null Null angenommen if abs b 1t eps then write WARNUNG auch b nahe Null Unsinn goto 100 else write Loesung x c b goto 100 endif else C 2 2 222222 772272 7 7772 7 7 772 7 7 7 727 77 22 2222 c Berechnung der Diskriminanten d C 222 222 eee eee eee eee d b b 4 0 a c h ata C 2 2 222222 772272 7 7772 7 7 772 7 7 7 727 77 22 2222 c 2 Fall eine oder zwei reelle Loesungen C 22222222 if d ge 0 0 then s sqrt d xi b s h x2 b s h write Eine oder zwei reelle Loesungen write xl x1 write x2 x2 goto 100 124 2 Programmieren in C Co 222 72222222222222222 22 2222222 2 222 ee c 3 Fall konjugiert komplexe Loesungen C0 ee ee eee ee ee eee 2222222222222 2 222 222 oe else r b h s sqrt d h xic cmplx r s x2c cmplx r s write Konjugiert komplexe Loesungen write xl x c write x2 x2c goto 100 endif endif c I 222 72222222222222222 22 222 2222 2222222222222 c Programmende c I eee eee eee ee eee eee 100 stop end Programm 2 55 FORTRAN Programm Quadratische Gleichung mit reellen Ko effizienten Eine Analyse des Quelltextes ergibt e Das Programm besteht aus einem File mit einem Hauptprogramm e es kommen reelle und komplexe
2. main event reading loop while 1 XNextEvent mydisplay amp myevent read next event 116 2 Programmieren in C switch myevent type process keyboard input case KeyPress i XLookupString amp myevent text 10 amp mykey 0 if i 1 amp amp text 0 oa text 0 Q L XFreeGC mydisplay mygc1 XFreeGC mydisplay mygc12 XFreeGC mydisplay newgc if win XDestroyWindow mydisplay newwin XDestroyWindow mydisplay mywin1 if del XDestroyWindow mydisplay mywin2 XFreePixmap mydisplay mypixmap XCloseDisplay mydisplay exit 0 else if i 1 amp amp text 0 ec text 0 C E myevent xkey window mywin1 XClearWindow mydisplay mywint XSetFont mydisplay mygc1 XLoadFont mydisplay fgb 13 XDrawlmageString mydisplay mywini mygei 240 400 SUBWIN strlen SUBWIN XDrawlmageString mydisplay mywini mygei 240 420 CLEAR strlen CLEAR XDrawlmageString mydisplay mywini mygei 240 440 QUIT strlen QUIT XSetFont mydisplay mygc1 XLoadFont mydisplay vrb 25 else if i 1 amp amp text 0 d text 0 D amp amp myevent xkey window mywin2 XDestroyWindow mydisplay mywin2 del 0 else if i 1 amp amp text 0 ni text 0 N E myevent xkey window mywin1 if win newwin XCreateSimpleWindow mydisplay mywini 70 60 400 200 1 myforeground mybackground
3. Bitweise Negation include lt stdio h gt int main char x Gi printf c c n x x return 0 Programm 2 5 C Programm zur Veranschaulichung der bitweisen Negation gibt den Buchstaben G und die Ziffer 8 aus zumindest auf Maschinen die den 7 bit ASCII Zeichensatz verwenden Der Zweck der bitweisen Operation ist der Umgang mit Informationen die nicht in einem Wert als Ganzem sondern in ein zelnen Bits stecken Das kommt bei der Systemprogrammierung vor Beispielsweise l t sich die Information ob ein Ger t ein oder ausgeschaltet ist in einem Bit unterbringen In der Anwendungsprogrammierung ist man meist gro z giger und spendiert eine ganze Integer Variable daf r Merke Ausdrucksweise logische Operationen und die noch folgenden Vergleichs Operationen haben ein Ergebnis das wahr oder falsch lautet nicht 0 oder 0 Bitweise logische Operationen k nnen jedes beliebige Ergebnis im Bereich der ganzen Zahlen haben 2 16 5 Vergleiche Die Vergleichs oder Relations Operationen sind e gleich weil schon die Zuweisung ist e ungleich e kleiner lt e kleiner gleich lt e gr er gt e gr er gleich gt e Bedingte Bewertung Das Ergebnis eines Vergleichs ist ein boolescher Wert also true oder false be ziehungsweise in C die entsprechenden Zahlen nicht 0 oder 0 Pfiffig ist die Bedingte Bewertung conditional operator Der Ausdruck z a lt 0 a a hat dieselbe Wirkung
4. window mapping XMapRaised mydisplay newwin XSetForeground mydisplay newgc mybackground XFillRectangle mydisplay mypixmap newgc 0 0 400 200 XSetForeground mydisplay newgc colori pixel XDrawlmageString mydisplay mypixmap newgc 140 100 WIN3 strlen WIN3 XSetFont mydisplay newgc XLoadFont mydisplay fgb 13 XDrawlmageString mydisplay mypixmap newgc 25 180 DELSUB strlen DELSUB XSetFont mydisplay newgc XLoadFont mydisplay vri 25 2 21 C Programme 117 copying pixels from pixmap to window XCopyArea mydisplay mypixmap newwin newgc 0 0 400 200 0 0 else XDestroySubwindows mydisplay mywint Win win break repaint window on expose event case Expose if myevent xexpose count 0 XDrawlmageString mydisplay mywini mygc1 50 50 WIN1 strlen WIN1 XDrawlmageString mydisplay mywin2 mygc12 270 50 WIN2 strlen WIN2 XSetFont mydisplay mygc1 XLoadFont mydisplay fgb 13 XDrawImageString mydisplay mywini mygc1 240 400 SUBWIN strlen SUBWIN XDrawlmageString mydisplay mywini mygcei 240 420 CLEAR strlen CLEAR XDrawlmageString mydisplay mywini mygcei 240 440 QUIT strlen QUIT XSetFont mydisplay mygc1 XLoadFont mydisplay vrb 25 XDrawlmageString mydisplay mywin2 mygc12 300 180 DELETE strlen DELETE XDrawLine mydisplay mywini mygci 100 100 300 300 XDrawSegments mydisplay myw
5. Funktion die ein Rechenergebnis liefert Typ double double area float rad return rad rad PI Funktion die einen Pointer zurueckgibt Typ char char maxi char wi char w2 int i j for 1 0 wifi 0 i for j 0 w2 j MOT j return j gt i w2 w1 2 18 Funktionen 61 Programm 2 11 C Programm mit return Anweisungen Im Hauptprogramm main haben return n und exit n dieselbe Wir kung In anderen Funktionen f hrt return zur R ckkehr in die n chsth here Ein heit exit zum Abbruch des gesamten Programmes In der Syntax unterscheiden sich beide Aufrufe return ist ein Schl sselwort von C exit ein Systemaufruf von UNIX also eine Funktion Weiterhin sind exit und return auch eingebaute Shell Kommandos siehe sh 1 oder ksh 1 die aber nicht in C Programmen vorkommen k nnen 2 17 5 Memo Anweisungen e Nichts 2 17 6 bung Anweisungen 2 18 Funktionen 2 18 1 Aufbau und Deklaration In C ist eine Funktion eine abgeschlossene Programmeinheit die mit der Au enwelt ber einen Eingang und wenige Ausg nge gegebenenfalls noch Not ausg nge verbunden ist Hauptprogramm Unterprogramme Subroutinen Pro zeduren usw sind in C allesamt Funktionen Eine Funktion ist die kleinste compi lierbare Einheit nicht ausf hrbare Einheit das ist ein Programm n mlich dann wenn sie zugleich allein in einem File steht Programmiersprachen di
6. la MAX DELTA x printf erweitert Ald ld n la 10 lalMAX DELTA Speicher freigeben mit free free void la return 0 Programm 2 50 C Programm mit dynamischer Speicherverwaltung malloc 3 2 21 C Programme 109 Das n chste Beispiel sortiert die Zeilen eines Textes nach den Regeln des Duden Duden Taschenbuch Nr 5 Satz und Korrekturanweisungen die von den Regeln in DIN 5007 etwas abweichen duden sortiert Textfile zeilenweise nach dem ersten Wort unter Beruecksichtigung der Duden Regeln Falls das Wort mit einem Komma endet wird auch das naechste Wort beruecksichtigt z B Vorname mit cc 0 o duden duden c lmalloc compilieren getestet auf HP 9000 550 unter UNIX V 1 16 03 88 include lt stdio h gt include lt malloc h gt include lt sys types h gt include lt sys stat h gt define MAX 1024 max Anzahl der Zeilen define EXT s Kennung des sort Files define NOWHITE c c 7 amp amp c MEI amp amp c n define NOCHAR c le 7 7 II Cc t7 TI le 0 define SCHARF c c 777 I c 222 scharfes s define KOMMA c c 7 7 statische Initialisierung eines externen Arrays ASCII Tafel Die Zahlen stellen den Wert des Zeichens dar angefuegt HP ROMAN EXTENSION optional char wert 256 Steuerzeichen
7. 0 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 Space Sonder und Satzzeichen 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 Ziffern 65 66 67 68 69 70 71 72 73 74 Sonder und Satzzeichen 48 49 50 51 52 53 89 Grossbuchstaben 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 Sonder und Satzzeichen 75 89 95 58 59 60 Kleinbuchstaben 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 Sonder und Satzzeichen 75 89 95 93 DEL 111 110 2 Programmieren in C ROMAN EXTENSION undefinierte Zeichen 0 0 0 0 0 0 0 0 e CO OO OO CO CO CH e we 3 0 0 0 0 0 0 3 0 0 0 0 0 0 0 oO Wooo Buchstaben 75 75 79 79 79 83 83 Zeichen 0 0 0 0 D Buchstaben 93 93 Zeichen 0 0 0 0 D Buchstaben 77 77 88 88 Zeichen 0 0 0 0 0 0 0 0 Buchstaben 75 79 89 95 75 79 89 95 75 79 89 95 75 79 89 95 75 83 89 75 75 83 89 75 75 83 89 95 79 83 93 89 75 75 75 78 78 83 83 89 89 89 89 93 93 95 99 99 101 101 Zeichen und undefinierte Zeichen 0 0 0 0 0 0 0 0 0 O 0 0 0 O 3 char ap MAX
8. readIn a readln b write Die Summanden sind write a writeln b s atb write Die Summe direkt ist writeln s s psv a b write Die Summe ist writeln s write Die Summanden sind write a writeln b s psr a b write Die Summe ist writeln s write Die Summanden sind write a writeln b end Programm 2 26 PASCAL Programm das Parameter by value und by reference an PASCAL Funktionen bergibt Sollten Sie die Beispiele nachvollzogen haben m te Ihr Linker in zwei F llen mit einer Fehlermeldung unsatisfied symbol output data die Arbeit ver weigert haben Die PASCAL Funktionen psv und psr geben etwas auf das Terminal aus Bei getrennt compilierten Modulen erfordert dies die Zeile import StdOutput Das importierte vorgefertigte PASCAL Modul StdOutput macht von einem Textfile output Gebrauch das letzten Endes der Bildschirm ist Im PASCAL Programm ffnet die Zeile program psummep input output dieses Textfile In C Programmen wird das File mit dem Filepointer stdout eben so wie in FORTRAN Programmen die Unit 6 automatisch ge ffnet Hinter dem Filepointer bzw der Unit steckt der Bildschirm Leider sehen wir in berein stimmung mit unseren Handb chern keinen Weg das PASCAL File output mit 72 2 Programmieren in C stdout von C oder der Unit 6 von FORTRAN zu verbinden Wollen wir PASCAL Funktionen in ein C oder FORTRAN Program
9. Gi CIE CH Sazz2z2222 4 N un DOAG DoD DOD DOE DOL DOMF DOS DOSEM DOSS DOT DOW DP DPA DPAM DPAREN DPB DPC DPDS dpi DPL DPMA DPMI DPMS DPO DPS DPSK DPT DPU DQCB DQDB DQL DQPSK DR 183 Demultiplexer Day Month Year Datumsangabe Digital Network Architecture DEC Document Enabled Network Direct Distributed Numerical Control Division of Networking and Communications Research and Infrastructure NSF Disjunktive Normalform Datennetzabschlu ger t Desktop Network Interface Data Network Identification Code Dialed Number Identification Service Datennetz Kontrollzentrum DBP Datennetzabschlu modul Domain Name Server Service Scheme System Internet Data Out Distributed Object Deutsche Oracle Anwender Gruppe Department of Defence USA Digital Optical Disc Distributed Objects Everywhere Direct Object Linking Distributed Object Management Facility Sun Disk Operating System Distributed Operating System DOS Emulator Emulation Dedicated Office Systems and Services Documents to Think with GMD Day Of Week Data Processing Draft Proposed Standard ISO Demand Protocol Architecture 3com Demand Priority Access Method Data Parity Enable IBM Drive Parameter Block Direct Program Control Data Processing Distributed Systems dots per inch Descriptor Privilege Level Data Processing Management Association USA DOS Protected Mode Interface Microsoft DOS Protected Mode Service Microsoft
10. x y Z X y writeln P Fkt gibt folgenden Wert zurueck z Aenderung der Summanden x 77 y 99 psv Z end end Programm 2 16 PASCAL Funktion die Parameter by value bernimmt Pascal Funktion Summe call by reference Compileraufruf pc c psr p module a import StdOutput export function psr var x y integer integer implement function psr var z integer begin writeln Funktion mit Parameteruebernahme by reference writeln P Fkt hat uebernommen x y Z X y writeln P Fkt gibt folgenden Wert zurueck z 66 2 Programmieren in C Aenderung der Summanden x 66 y 88 psr Z end end Programm 2 17 PASCAL Funktion die Parameter by reference bernimmt Die Funktionen werden f r sich mit der Option c ihres jeweiligen Compilers compiliert wodurch Objektfiles mit der Kennung o entstehen die beim Compi lieren der Hauptprogramme aufgef hrt werden Nun zu den Hauptprogrammen zuerst wieder in C C Programm csummec das C Funktionen aufruft Compileraufruf cc o csummec csummec c csr o csv o include lt stdio h gt extern int csv int x int y csr int px int py int main int a b puts Bitte die beiden Summanden eingeben scanf d d amp a amp b printf Die Summanden sind d d n a b printf Die Summe direkt ist Yd n a b printf Die Summe ist d n csv a b printf
11. 152 153 154 106 107 108 155 156 157 160 161 109 110 111 112 113 114 115 116 162 163 164 165 166 167 170 171 117 118 119 120 121 122 123 124 125 gt P kel rn gt P kel rn Ee gt D rei E A 172 173 174 175 176 177 200 201 126 127 128 129 130 131 del Grafik del or I NO u 202 203 B 1 EBCDIC ASCII Romans IBM PC 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 204 205 206 207 210 211 212 213 214 215 216 217 220 221 222 223 224 225 226 227 230 231 232 233 234 235 236 237 240 241 242 243 244 245 246 247 250 251 252 253 254 255 256 257 260 261 262 263 es DO wo Qa lt gt Done o BEB e SR d Nd WM Sse cn Dm Oe ee Yen o ep DI E gt Dir ez Zei 137 A O 2 oo oo BB my Lk wma mw Die ar Pt w AIR SO m m IO Grafik Grafik 1 2 1 4 lt gt Grafik Grafik Grafik Grafik 138 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 264 26
12. 2 19 2 5 Weitere Teile der Standardbibliothek 87 2 19 3 Xlib und Xrlib X Window System 87 2 19 4 Weitere Bibliotheken 00 87 2 19 4 1 NAG Bibliothek e 87 2 19 5 Eigene Bibliotheken 2 2 2 2 nme 87 Inhaltsverzeichnis ix 2 20 2 21 2 22 2 23 2 24 2 25 2 26 2 27 2 28 2 19 6 Speichermodelle MS DOS 0 0 87 2 19 7 Memo Bibliotheken 88 2 19 8 bung Bibliotheken 2 2 2 2 22 2 2 88 Pr prozessor e 88 2 20 1 define Anweisungen 88 2 20 2 include Anweisungen 89 2 20 3 Bedingte Compilation ifdef 2 2 2 222000 91 2 20 4 Memo Pr prozessor e 91 2 20 5 bung Pr prozessor 91 C Programme 91 2 21 1 Name e 91 2 21 2 Aufbau e 92 2 21 3 Fehlersuche e 94 2 21 4 Optimierung 2 0 0 002002000 000002 95 2 21 55 2mal2istnicht4 2 22 oo oo 97 2 21 6 Der elliptische kreiz 97 2 21 7 Die sch ne Julia 97 2 21 8 curses Fluch oder egen 97 2 21 9 Wie blind ist der Zufall e 100 2 21 10 Ein Herz f r Pointer 2 2 2 on nn nn 100 2 21 10 1 Erzeugen von Pointern pdemo c 101 2 21 10 2 Der Nullpointer nullp c 2 2 2 2220 101 2 21 10 3 Pointer auf Typ void xread c 2 101 2 21 10 4 Arrays prim c 2 2 ee ee 103 2 21 10 5 Strings und Strukturen 2 2 000 107 2 21 10 6 Pointer auf Funktionen 107 2 21 11 Ein Damon e 107 2 21 12 Dynamische Speicherverwaltung malloc 107 2 21
13. Colon Semicolon Less than sign Equals sign Greater than sign Question mark Commercial at Latin capital letter a Latin capital letter b Latin capital letter c Latin capital letter d Latin capital letter e Latin capital letter f Latin capital letter g Latin capital letter h Latin capital letter i Latin capital letter j Latin capital letter k Latin capital letter Latin capital letter m Latin capital letter n Latin capital letter o Latin capital letter p Latin capital letter q Latin capital letter r Latin capital letter s Latin capital letter t Latin capital letter u Latin capital letter v Latin capital letter w Latin capital letter x B Zeichens tze B 4 Latin 1 ISO 8859 1 089 090 091 092 093 094 095 096 097 098 099 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 137 131 132 133 134 135 136 137 140 141 142 143 144 145 146 147 150 151 152 153 154 155 156 157 160 161 162 163 164 165 166 167 170 171 172 173 174 175 176 177 200 201 202 203 204 205 206 207 210 211 roe NK re ans i D ai eae rH Aen o ba Boro roe no aa oe u B Z Eer ZS ZZ DS ee SH Latin capital letter y Latin capital letter z Left square bracket Reverse solidus Right square bracket Circumflex accent Low line Grave accent Latin small letter a Lat
14. Compiler Linker In h heren Programmiersprachen wie C oder FORTRAN geschriebene Programme werden als Quellcode source code Quellprogramm oder Quelltext bezeichnet Mit diesem Quellcode kann der Computer unmittelbar nichts anfangen er ist nicht ausf hrbar Der Quellcode mu mithilfe des Computers und eines bersetzungs programmes in Maschinencode bersetzt werden Mit dem Maschinencode kann dann der Programmierer nichts mehr anfangen Es gibt zwei Arten von bersetzern Interpreter bersetzen das Programm jedesmal wenn es aufgerufen wird Die bersetzung wird nicht auf Dauer ge speichert Da der Quellcode zeilenweise bearbeitet wird lassen sich nderungen schnell und einfach ausprobieren Andererseits kostet die bersetzung Zeit Inter preter findet man vorwiegend auf Home Computern f r BASIC aber auch Shell scripts und awk Scripts werden interpretiert Compiler bersetzen den Quellcode eines Programms als Ganzes und spei chern die bersetzung auf einem permanenten Medium Zur Ausf hrung des Pro gramms wird die bersetzung aufgerufen Bei der kleinsten nderung mu das gesamte Programm erneut compiliert werden daf r entf llt die jedesmalige ber setzung w hrend der Ausf hrung Compilierte Programme laufen also schneller ab als interpretierte Es gibt auch Mischformen von Interpretern und Compilern Gro e Programme werden in mehrere Files aufgeteilt die einzeln compiliert werden aber nicht einzeln ausf hrba
15. Display Power Management Signaling Standard Data Phase Optimization Display Postscript Digital Print System Digital Phase Shift Keying Drive Parameter Table Data Parallel Unit Distributed Queue Control Bus Distributed Queue Double Dual Bus Database Query Language Differential Quadrature Phase Shift Keying Data Received Digital Research 184 DRAM DRAW DRCS DRDA DRDW DRI DRO DRP DRS DRV DS DS 3 DSA DSAB DSAF DSAS DSB DSC DSCS DSDC DSDD DSE DSEA DSECT DSH DSHD DSI D SIMM DSIS DSL DSLB DSMIT DSN DSOM DSP DSPU DSQD DSR DSS DSSI DSSS DST DSTN DSU F Abk rzungen Dynamic Random Access Memory Direct Read After Write Dynamically Redefinable Character Set Distributed Relational Database Architecture IBM Distributed Remote Database Access Direct Read During Write Digital Research Incorporated Defense Research Internet Destructive Read Out Data Request Output DEC s Routing Protocol Data Relay Satellite Drive Laufwerk Double Sided Drive Select Distributed Services OSF Data Segment Send Digital Signal Level 3 Data Digital Storage Architecture Directory System Agent X 500 Data Service Adapter Digital Signature Algorithm Distributed Systems Architecture Board Destination Subarea Address Field Data Sharing Architecture System Datenschutzbeauftragter Document Structuring Conventions Postscript Defense Satellite Communications System Data Segment Descripto
16. Einf hrung in C W Alex und G Bern r 1995 Universitat Karlsruhe Copyright Wulf Alex Gerhard Bern r Universit t Karlsruhe 1995 E Mail wulf alex ciw uni karlsruhe de gerhard bernoer ciw uni karlsruhe de WWW http www ciw uni karlsruhe de mvm_www lehre 22997 html WWW http www ciw uni karlsruhe de mvm_www lehre 22998 html Telefon 0721 608 2404 Fax 0721 693965 Ausgabedatum 6 November 1995 Dies ist ein Skriptum Arbeitsfassung Es ist unvollst ndig und enth lt Fehler Gesch tzte Namen wie UNIX werden ohne Kennzeichnung verwendet Geschrieben mit dem Editor vi 1 auf einer Workstation Hewlett Packard 9000 712 unter HP UX UNIX System V formatiert mit LaTeX auf einem Pentium 90 PC unter LINUX ausgegeben auf einem Hewlett Packard Laserjet IIISi unter Verwendung von Postscript Alle Programmbeispiele sind im Internet mittels Anonymous FTP von ftp ciw uni karlsruhe de Verzeichnis c pub skriptum abrufbar eben so die angef hrte Elektronische Literatur im Verzeichnis c pub docs Die Programmbeispiele sind 100 logisch abbaubar k nnen jedoch bei berm igem Genu vor bergehende St rungen der Befindlichkeit verursachen Das Skriptum ist die Grundlage f r das Buch UNIX C und Internet erschienen im Springer Verlag unter der ISBN 3 540 57881 1 There is an old system called UNIX suspected by many to do nix but in fact it does more than all systems before and comprises aston
17. Infrared Light Emitting Diode Information Resource Management Interrupt Request Internal Revenue Service Internet Research Task Force Information Separator System In Service Interrupt Status Intermediate System International Standard ISO Interactive Service Industry Standard Architecture Instruction Set Architecture Interactive Services Association Index Sequential Access Method Instruction Set Computer Internet Service Center Image Section Descriptor Instructional System Design Integrated Services Digital Network Information Superhighway Internally Specified Index Intermediate System to Intermediate System Protocol OSI Interactive System Language Intersatellite Link Industrial Scientific Medical Internet School Shopping Networking International Standardization Organization Internet Society ISODE ISP ISPBX ISPF ISPI ispLSI ISPO ISR ISSA ISSCC ISSP ISSS ISST ISUP ISUS ISV ISVR IT ITA ITAC ITB ITE ITG ITI ITLB ITO ITR ITS ITSEC ITSEM ITSTC ITT ITU ITUG ITV ITX IU IUG luk IV IVDLAN IVHS IVIS IVOD IVP 203 ISO Development Environment OSI International Standardized Profile Internet Service Provider Interrupt Stack Pointer Interrupt Status Port ISDN Private Branche Exchange Interactive Structured Programming Facility IBM Institut f r Integrierte Publikationssysteme Darmstadt in system programmable LSI Information Society Project Office Interm
18. Krankheit 0 Rechenvorschrift 2 Was zum Essen 0 Menge von Daten 2 Durchtriebener Kerl 0 Vorderteil eines Schiffes 1 Fehler im Programm 2 englisch f r Wanze 1 jemand mit Routine 0 franz sischer LKW Fahrer 0 Verbindungsglied zweier Netze 2 254 Zylinder FTP Datex Bridge Email Baum Internet Split Mini Cut 2B1 2B H Karlsruher Test Kopfbedeckung 1 Teil einer Kolbenmaschine 1 Unterteilung eines Plattenspeichers 2 kleine aber liberale Partei 0 File Transfer Protocol 2 Floating Point Processor 0 Klebstoff 0 Datendienst der Post 2 Kommando zum L schen von Daten 0 Kartenspiel 1 internationales Computernetz 0 Verbindung zweier Computernetze 2 Glasur 1 elektronische Post 2 Sultanspalast 0 was im Wald Wurzel unten 1 was auf einem Schiff keine Wurzel 1 was aus der Informatik Wurzel oben 2 Schule mit Schlafgelegenheit 0 Zwischenraum 0 Weltweites Computernetz 2 UNIX Kommando 2 kantige Steinchen 0 Stadt in Dalmatien 1 Damenoberbekleidung 1 kleiner Computer 2 Frau von Mickey Mouse 0 Herrenoberbekleidung 1 Colonia Ulpia Traiana 1 UNIX Kommando 2 Parallelprozessor 0 Assembler Befehl 0 ein Wort Hamlets 2 Shell Slip Di resis Alex Eure Priorit t 255 Filmschauspielerin Maria 0 Kommando Interpreter 2 Mineral l Gesellschaft 1 Unterbekleidung 1 Schlupfs
19. a0 a a 0 a 0 0 1 a0 1 a 0 1 a 0 1 2 olli a 0 2 a 0 2 3 olli a 0 3 a 0 3 4 atl all all a 1 0 5 allt 6 all 1 all 6 aflJ 2 all 2 all 2 17 all 3 all 3 a 1 3 8 a 2 a 9 xa 2 al2 0 9 a l 1 al2 1 al2 1 10 olli al2 2 al2 2 11 a2j 3 a 2 3 a 2 3 12 Der Pointer 2 Ordnung a zeigt auf ein Array aus 3 Pointern 1 Ordnung alO all und a 2 Die Pointer 1 Ordnung a 0 all und a 2 zeigen ihrerseits auf 3 Arrays bestehend aus je 4 Ganzzahlen Gespeichert sind 12 Ganzzahlen die Pointer 1 Ordnung sind nicht gespeichert Da die Elemente allesamt gleich gro sind gleich viele Bytes lang hindert uns nichts daran das Element a 1 2 n mlich die Zahl 7 als Element a 0 6 aufzufassen Die gespeicherten Werte lassen sich 40 2 Programmieren in C auch als eindimensionales Array b 12 verstehen Solche Tricks m ssen sorgf ltig kommentiert werden sonst blickt man selbst nach kurzer Zeit nicht mehr durch und Au enstehende nie Versuchen Sie folgende Behauptungen nachzuvollziehen x a 1 5 a 1 a0 4 alll x a 2 1 8 a 1 41 a l 1 6 Im Programm zeit c haben wir ein Array von Strings kennengelernt also ein Array von Arrays von Zeichen abgeschlossen jeweils mit dem ASCII Zeichen
20. auch Ihr Wizard nicht weiter k nnen Sie sich an die ffentlichkeit wen den das hei t an die sch tzungsweise zehn Millionen Usenet Teilnehmer Den Weg dazu finden Sie unter dem Stichwort Netnews Sie sollten allerdings vorher Ihre Handb cher gelesen haben und diesen Weg nicht blo aus Bequemlichkeit w hlen Sonst erhalten Sie RTFM als Antwort 1 4 Wie l uft eine Sitzung ab Die Arbeit mit dem Computer vollzieht sich meist im Sitzen vor einem Termi nal und wird daher Sitzung session genannt Mittels der Tastatur teilt man dem Computer seine W nsche mit auf dem Bildschirm antwortet er Diese Ar beitsweise wird interaktiv genannt und als Bildschirm Dialog bezeichnet zu deutsch Zwiegespr ch Die Tastatur sieht hnlich aus wie eine Schreibmaschinen tastatur weshalb F higkeiten im Maschinenschreiben n tzlich sind hat aber ein Hypertext ist ein Text bei dem Sie erkl rungsbed rftige W rter mit der Maus anklicken und dann die Erkl rung auf den Bildschirm bekommen In Hypertext w re diese Fu note eine solche Erkl rung Sie k nnen sich auch alle weiteren Stellen anzeigen lassen an denen der Begriff vorkommt sparen sich also das Suchen im Sachregister Der Begriff wurde Anfang der 60er Jahre von TED NELSON in den USA gepr gt siehe Anhang F Abk rzungen 1 4 Wie l uft eine Sitzung ab 9 paar Tasten mehr Oft geh rt auch eine Maus dazu Der Bildschirm ist ein naher Verwandter des Fernsehers Falls Sie mit eine
21. c getch if END clear refresh endwin return 0 D else if HELP if disp frame newwin 13 40 10 35 wstandout frame for c 0 c lt 4 c mvwprintw frame c 0 442c 7 mvwprintw frame 5 0 This is a window built by curses It mvwprintw frame 6 0 may contain helpful messages You mvwprintw frame 7 0 delete the window by typing h again for c 8 c lt 12 c mvwprintw frame c 0 42c 7 wrefresh frame wstandend frame D else delwin frame touchwin stdscr refresh D disp disp D D D Programm 2 47 C Programm mit curses Funktionen Jedes curses Programm mu das include File curses h enthalten das sei nerseits stdio h einschlie t WINDOW ist ein in curses h definierter Datentyp eine Struktur die den Bildschirminhalt die Cursorposition usw enth lt Die curses 3 Funktionen bewirken folgendes e initscr mu die erste curses 3 Funktion sein Sie initialisiert die Da tenstrukturen Das Gegenst ck dazu ist endwin die das Terminal wieder in seinen urspr nglichen Zustand versetzt 100 2 Programmieren in C noecho schaltet das Echo der Tastatureingaben auf dem Bildschirm aus cbreak bewirkt da jedes eingegebene Zeichen sofort an das Programm weitergeleitet wird ohne RETURN mvprintw bewegt move den Cursor an die durch die ersten beiden Argumente bezeichnete Position 0 0 links oben und schreibt dann in das
22. else Alternative einer Verzweigung 149 150 D C Lexikon for Beginn einer for Schleife goto unbedingter Sprung if Bedingung oder Beginn einer Verzweigung switch Beginn einer Auswahl while Beginn einer while Schleife Sonstige return R cksprung in die aufrufende Einheit sizeof Bytebedarf eines Typs oder einer Variablen Dar berhinaus verwenden einige Compiler vor allem aus der PC Welt wei tere Schl sselw rter Die folgende Aufz hlung ist nicht vollst ndig asm Assembler Aufruf innerhalb einer C Quelle cdecl Aufruf einer Funktion nach C Konventionen entry war in K amp R C f r k nftigen Gebrauch vorgesehen far Typzusatz unter MS DOS fortran Aufruf einer Funktion nach FORTRAN Konventionen huge Typzusatz unter MS DOS near Typzusatz unter MS DOS pascal Aufruf einer Funktion nach PASCAL Konventionen D 2 Standardfunktionen Folgende Standardfunktionen oder makros sind gebrauchlich Pufferbehandlung memchr sucht Zeichen im Puffer memcmp vergleicht Zeichen mit Pufferinhalt memcpy kopiert Zeichen in Puffern memset setzt Puffer auf bestimmtes Zeichen Zeichenbehandlung isalnum pr ft Zeichen ob alphanumerisch isalpha pr ft Zeichen ob Buchstabe iscntrl pr ft Zeichen ob Kontrollzeichen isdigit pr ft Zeichen ob Ziffer isgraph pr ft Zeichen ob sichtbar islower pr ft Zeichen ob Kleinbuchstabe D
23. schriften die Diskussionsm glichkeiten gehen weiter Neben viel nutzlosem Zeug stehen hochwertige Beitr ge von Fachleuten aus Universit ten und Computerfir men Ein guter Tip sind die FAQ Listen Frequently Asked Questions samt Ant worten in den Netnews Hauptproblem ist das Filtern der Informationsflut Im Internet erscheinen t glich mehrere 10 000 Beitr ge Das Zusammenwirken von B chern oder Zeitschriften mit Electronic Informa tion sieht erfolgversprechend aus Manchen Computerb chern liegt bereits eine Diskette oder CD ROM bei Das sind statische Informationen ohne M glichkeit SEs hei t da von der Information die man durch H ren aufnimmt nur 30 im Ged chtnis haften bleiben Beim Sehen sollen es 50 sein bei Sehen und H ren zusam men 70 Vollzieht man etwas eigenh ndig nach begreift man es im w rtlichen Sinne ist der Anteil noch h her Hingegen hat das maschinelle Kopieren von Informationen keine Wirkungen auf das Ged chtnis und kann daher nicht als Ersatz f r die klassischen Wege des Lernens gelten 8 1 Uber den Umgang mit Computern zum Dialog mit den Urhebern Wir haben versuchsweise einen Anonymous FTP Server ftp ciw uni karlsruhe de eingerichtet auf dem erg nzende Informatio nen verf gbar sind eine Liste von Korrekturen Errata beispielsweise Ferner finden sich dort die Quellen aller Programme und Kopien der von uns angef hr ten elektronischen Informationen anderer Autoren Unsere E
24. skalarer T s einfacher T starker T s System Manager Struktur 36 strukturierter T s zusammenge setzter T Typumwandlung 45 51 96 Union 37 unsigned 33 Variante s Union Vektor s Array Verbund s Struktur Vereinigung s Union void 35 volatile 32 Zeichentyp s alphanumerischer T Zeiger s Pointer zusammengesetzter T 35 typedef C 41 Typeface s Schrift Tyrannosaurus rex 276 ade C dc berladung 46 bersetzer s Compiler bersichtlichkeit 21 89 95 bertragen s portieren mgehung 21 nion s Typ Sach und Namensverzeichnis union C 37 UNIX Editor s vi 1 Kommando 10 unsigned C 33 Usenet s Netnews User s Benutzer Utility s Dienstprogramm Value s Wert varargs 5 74 Variable globale V 43 lokale V 43 register V 43 Variante s Typ Vektor Typ s Typ Verantwortung 13 Vereinbarung 31 Vereinigung s Typ Vergleich 48 verschieblich s relozierbar Version 21 Verzeichnis Haus V s Home V Heimat V s Home V Verzweigung C 53 Videoband 6 void C 35 volatile C 32 Vordergrund s Prozess Vorlesung 6 Vorrang C 52 WAN s Wide Area Network Waterfall approach 23 WEISSINGER J 276 Weiterbildung 13 Wert 31 Wert bergabe 63 Wertebereich 32 while Schleife C 54 Wildcard s Jokerzeichen Willensfreiheit 13 Window s Fenster WIRTH N 18 Wizard 8 Workaround s Umgehung Wortsymbol 30 WOZNIAK S G 276 291 Wurzel s root Xlib 87 Xrlib 87 XW
25. 1991 Form Nr D12 0046 82 S Reihe ber das Unternehmen IBM Deutschland Die Geschichte der maschinellen Datenverarbeitung Band 1 Reihe Enzyklop die der Informationsverarbeitung IBM Deutschland 228 S Form Nr D12 0028 100 Jahre Datenverarbeitung Band 2 Reihe Uber die Informationsverarbeitung IBM Deutschland 262 S Form Nr D12 0040 F L Bauer G Goos Informatik 2 Teil siehe unter Informatik O A W Dilke Mathematik Ma e und Gewichte in der Antike Universalbibliothek Nr 8687 2 Reclam Stuttgart 1991 135 S 6 DM A Hodges Alan Turing Enigma Kammerer amp Unverzagt Berlin 1989 680 S 58 DM R Oberliesen Information Daten und Signale Deutsches Museum rororo Sachbuch Nr 7709 vergriffen B Sterling A short history of the Internet ftp ciw pub docs history origins 1993 6 S ASCII K Zuse Der Computer Mein Lebenswerk Springer Berlin 3 Aufl 1993 220 S 58 DM Autobiografie Konrad Zuses 18 Computerrecht 273 Newsgruppen comp society privacy comp privacy alt privacy comp patents maus recht cl datenschutz de soc recht fido ger recht zer z netz datenschutz zer rechtswesen zer z netz jura Computerrecht Beck Texte Beck M nchen 1994 13 DM U Dammann S Simitis Bundesdatenschutzgesetz Nomos Verlag Baden Baden 1993 606 S 38 DM BDSG mit Landesdatenschutzgesetzen und Internationalen Vorschriften Texte kein Kommentar G v Gravenreuth Computerre
26. 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 50 A Zahlensysteme 11 10 11 11 11 100 11 101 11 110 11 111 11 1000 11 1001 100 0 100 1 100 10 100 11 100 100 100 101 100 110 100 111 100 1000 100 1001 101 0 101 1 101 10 101 11 101 100 101 101 101 110 101 111 101 1000 101 1001 110 0 110 1 110 10 110 11 110 100 110 101 110 110 110 111 110 1000 110 1001 111 0 111 1 111 10 111 11 111 100 111 101 111 110 111 111 111 1000 111 1001 1000 0 space x Le Newt SS OG cl nok wonr ODON HOZEHTRL IC ba Di CO Osy A 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 1010001 1010010 1010011 1010100 1010101 1010110 1010111 1011000 1011001 1011010 1011011 1011100 1011101 1011110 1011111 1100000 1100001 1100010 1100011 1100100 1100101 1100110 1100111 1101000 1101001 1101010 1101011 1101100 1101101 1101110 1101111 1110000 1110001 1110010 1110011 1110100 1110101 1110110 1110111 1111000 1111001 1111010 1111011 1111100 1111101 1111110 1111111 121 122 123 124 125 126 127 130 131 132 133 134 135 136 137 140 141 142 143 144 145 146 147 150 151 152 153 154 155 156 157 160 161 162 163 164 165 166 167 170 171 172 173 174 175 176 177 51 52 53 54 55 56 57 58 59 5a
27. 45 2 16 3 Arithmetische Operationen 45 2 16 4 Logische Operationen 2 22m nennen 47 2 16 5 Vergleich 48 2 16 6 Bitoperationen 49 2 16 7 Pointeroperationen 50 2 16 8 Ein und Ausgabe Operationen 2 2 2 2 2020 50 2 16 9 Sonstige Operationen 51 2 16 10 Vorrangregeln 52 2 16 11 Memo Operationen 52 2 16 12 bung Operationen 52 Anweisungen 52 2 17 1 Leere Anweisung 2 2 00 00 0 00000 000 52 2 17 2 Ausdruck als Anweisung 53 2 17 3 Kontrollstrukturen 2 2 Co nn 53 2 17 4 R ckgabewert 59 2 17 5 Memo Anweisungen 2 CC non 61 2 17 6 bung Anweisungen 61 Funktionen aoaaa ee 61 2 18 1 Aufbau und Deklaration 2 2 2 2 22 22mm 61 2 18 2 Pointer auf Funktionen 62 2 18 3 Parameter bergabe 2 2 2 2 22mm nen 62 2 18 4 Kommandozeilenargumente main 73 2 18 5 Funktionen mit wechselnder Argumentanzahl 74 2 18 6 Iterativer Aufruf einer Funktion 0 78 2 18 7 Rekursiver Aufruf einer Funktion 2 2 2 2 2 79 2 18 8 Assemblerroutinen 0 0 2 2 200000 04 sl 2 18 9 Memo Funktionen 22 2 2 n nn 82 2 18 10 bung Funktionen 82 Funktions Bibliotheken 82 2 19 1 Zweck und Aufbau 2 2 2 2 nn nn 82 2 19 2 Standardbibliothek 00 82 2 19 2 1 bersicht 82 2 19 2 2 Standard C Bibliothek e 83 2 19 2 3 Standard Mathematik Bibliothek 85 2 19 2 4 Standard Grafik Bibliothek 86
28. 611 S 75 DM Anwendungen Newsgruppen comp theory info retrieval comp databases Guide to Commands STN International c o FIZ Karlsruhe 1991 314 S Beschreibung der Retrieval Sprache Messenger M Gossens u a The LaTeX Companion Addison Wesley Reading 1994 530 S 40 US H Kopka LaTeX eine Einf hrung Addison Wesley Bonn 1990 340 S 68 DM Ausf hrliche Anleitung zu LaTeX viele Beispiele H Kopka LaTeX Erweiterungsm glichkeiten Addison Wesley Bonn 1990 479 S 80 DM Erweiterungen AMS TeX Grafik Metafont WEB L Lamport LaTeX User s Guide and Reference Manual Addison Wesley Reading 1986 242 S 78 DM Standardwerk zu LaTeX 16 271 P Luidl Typographie Schl ter Hannover 1991 146 S 79 DM Herkunft Aufbau und Anwendung von Druckschriften Layout H Partl u a LaTeX Kurzbeschreibung ftp ciw pub docs latex lkurz ps gz und lkurz tar gz 1990 46 S Postscript und LaTeX Quellen Einf hrung mit deutschsprachigen Besonderheiten Umlaute E D Stiebner Handbuch der Drucktechnik Bruckmann M nchen 1992 362 S 98 DM F W Weitershaus Duden Satz und Korrekturanweisungen Dudenverlag Mannheim 1980 268 S 17 DM vergriffen Hilfe beim Herstellen von Druckvorlagen Sicherheit Newsgruppen comp security alt security de comp security sci crypt comp virus alt comp virus fido ger virus maus comp virus RFC 1244 FYI 8 Site Security Handbook ftp ciw pu
29. Auf vielen Anlagen gibt es den Benutzer gast oder guest Au er bei G sten wird als n chstes die Eingabe eines Passwortes verlangt Das Passwort ist der Schl ssel zum Computer Es wird auf dem Bildschirm nicht wiedergegeben Bei der Eingabe von Namen und Passwort sind keine Korrekturen zugelassen War Ihre Anmeldung in Ordnung hei t Sie der Computer herzlich willkommen und promptet wieder Die Arbeit beginnt Auf einem PC geben Sie beispielweise dir ein auf einer UNIX Anlage ls Jede Eingabe wird mit der Return Taste auch mit Enter CR oder einem geknickten Pfeil nach links bezeichnet abgeschlossen Jede Sitzung mu ordnungsgem beendet werden Es reicht nicht sich einfach vom Stuhl zu erheben Laufende Programme zum Beispiel ein Editor m ssen zu Ende gebracht werden auf einer Mehrbenutzeranlage meldet man sich mit einem Kommando ab das exit quit logoff logout stop oder end lautet Einen PC d rfen Sie selbst ausschalten ansonsten erledigt das wieder der System Manager Das Ausschalten des Terminals einer Mehrbenutzeranlage hat f r den Computer Laden Sie ihn oder sie gelegentlich zu Kaffee und Kuchen oder einem Viertele Wein ein 12Siehe GOTTFRIED AUGUST B RGER Wunderbare Reisen zu Wasser und zu Lande Feldz ge und lustige Abenteuer des Freiherrn von M nchhausen wie er dieselben bei der Flasche im Zirkel seiner Freunde selbst zu erz hlen pflegt Insel Taschenbuch 207 Insel Verlag Frankfurt Main 1976 im 4 Kapit
30. C Programm verbessert 2 17 Anweisungen 59 Am goto hatte sich um 1970 herum ein Glaubenskrieg entz ndet In C Programmen besteht u erst selten die Notwendigkeit f r diese Anweisung aber gebr uchliche Anweisungen wie break continue und return sind bei Licht bese hen auch nur gotos die auf bestimmte F lle beschr nkt sind Immerhin verhindern die Beschr nkungen ein hemmungsloses Hinundherh pfen im Programm 2 17 4 R ckgabewert Eine Funktion braucht keinen Wert an die aufrufende Einheit zur ckzugeben Sie ist dann vom Typ void Ihre Bedeutung liegt allein in dem was sie tut zum Beispiel den Bildschirm putzen In diesem Fall endet sie ohne return Anweisung schlechter Stil oder mit einer return Anweisung ohne Argument Was sie tut wird Nebenwirkung oder Seiteneffekt side effect genannt In FORTRAN w re das eine Subroutine in PASCAL eine eigentliche Prozedur Gibt man der return Anweisung einen Wert mit so kann die Funktion von der aufrufenden Einheit wie ein Ausdruck angesehen werden Der R ckgabe wert return value darf nur ein einfacher Datentyp oder ein Pointer sein Will man einen String zur ckgeben geht das nur ber den Pointer auf den Anfang des Strings Der zur ckzugebende Wert braucht nicht eingeklammert zu werden bei zusammengesetzten Ausdr cken sollte man der Lesbarkeit halber Klammern setzen return 0 return x y return arrayname Besteht das Ergebnis aus mehreren Werten so mu man mit glob
31. Committee on Semiconductors Novell Authorized Education Center Numerical Algorithms Group Oxford Negative Acknowledge Acknowledgement Name and Address Module Number Assignment Module NetWare Asynchronous Messaging Protocol Not a Number not and North American Process Algebra Workshop North American Presentation Layer Level Protocol Syntax NAS NASA NASI NASK NAU NAX NBF NBP NBS NBT NC NCA NCC NCEG NCGA NCI NCMT NCNCNC NCP NCR NCS NCSA NCSC NCSI NCSL ND NDA NDIS NDL NDM NDP NDPS NDS NDT NE NEARnet NEC NECC NEOS NEST net NET NetBEUI NetBIOS NeWS NEXT 213 Network Application Services Network Application Support DEC National Aeronautics and Space Administration USA NetWare Asynchronous Services Interface Novell Naukowa i Akademicka Siec Komputerowa Polen Network Addressable Unit Nachrichten auf Fax Nota bene Netbios Frame Transport Protocol Netbios Protocol Name Binding Protocol National Bureau of Standards USA jetzt NIST NetBIOS on TCP IP Newcastle Connection No Connection Network Control Numerical Control Network Communications Adapter Network Control Center Numerical C Extensions Group National Computer Graphics Association Network Control Information Numerical Control for Machine Tools No Coffee No Chocolate No Computer Slang Network Control Processor Protocol Program NetWare Core Protocol Not Copy Protected National Cash Regi
32. EDC EDDC EDFA EDI EDIBDB EDIFACT EDIFICE EDIFURN EDIOFFICE F Abk rzungen European Academic Research Network Electrically Alterable Read Only Memory Electronic Access to Reference Services European Academic Software Award Enhanced AT Bus Attachment Endger teauswahlziffer ISDN EISA Bus Controller Extended Binary Coded Decimal Interchange Code IBM Equivalent Extended Background Input Investigation Erweiterte Extended Backus Naur Form Excessive Burst Rate Electronic Benefits Transfer European Broadcasting Union Elektronische Bildverarbeitung End Chain Exchange Carrier European Community Exchange Card Architecture Specification Electronic Code Book Error Check Correction Code Enhanced Colour Display Enhanced Connectivity Facility European Community Host Organisation Europ isches Computer Informationszentrum Bonn Emitter Coupled Logic Enhanced Coprocessor Mount Entity Coordination Management Error Correction Mode European Computer Manufacturers Association Explicit Congestion Notification Electron Coupled Oscillator European Control Data Users Group European Conference on Object Oriented Programming Enhanced Capabilities Port Microsoft European Computer Industry Research Centre European Common Standard European Custom Systems Integration EISA Configuration Utility Erase Display Embedded Document Architecture Electronic Design Automation Explorative Datenanalyse Error Detect
33. Extended File Access Control Electronic Frontier Foundation Electromechanical Frequency Interference Enhanced Fast Instruction Set Computer Emitter Follower Logic Eight to Fourteen Modulation Euro File Transfer Electronic Funds Transfer Easy File Transfer Protocol Electronic Funds Transfer System Enhanced Graphics Adapter Enhanced Group Call Einzelgeb hrennachweis Exterior Gateway Protocol Internet Extended Generalized Programming Environment Edge Gateway Einheitliches h heres Kommunikationsprotokoll Electronic Industries Association USA Electronics Industry Association of Japan European Installation Bus Enhanced Interactive Business Integrating Environment Manager Enhanced IDE Electronic Information Interchange system European Informatics Network Extended IP Internet Equipment Identity Register 188 EIRP EIS EISA EISS EITI EITO EIUF EKT EL ELAN ELANC ELF ELFEXT ELOD ELS 2z gt gessesssessmsas j EE E E E Q 45556 ASS gt CMM gt Q ITH m MO H gagau u aa a un nm OZ AAA Z Z Z ZZ gt ne CO D CC Q D EOF EOI F Abk rzungen Equivalent Isotropically Radiated Power Electronic Information Services Enterprise Executive Information System Extended Industry Standard Architecture Europ isches Institut f r Systemsicherheit European Interconnect Technology Initiative European Information Technology Observatory European ISDN User Forum
34. Hier wird zuerst j um 1 erh ht dann dazu 100 addiert und schlie lich dem ge samten Ausdruck der Wert 999 zugewiesen j hat also nach den Operationen den Wert 111 i den Wert 999 der ausgegeben wird Der Komma Operator wird oft im Kopf von for Schleifen verwendet Das Komma zwischen Variablennamen in Deklarationen oder in einer Argumentliste ist kein Operator Die Reihenfolge der Abarbeitung solcher Listen ist unsicher Der sizeof Operator gibt die Gr e des Operanden in Bytes zur ck Der Operand kann eine Variable oder ein Datentyp sein Mit seiner Hilfe vermeidet man Annahmen ber die Gr e von Variablen bei Speicherreservierungen das Programm wird portabler Der Ausdruck sizeof x liefert die Gr e von x in Bytes als vorzeichenlose Ganzzahl zur ck sizeof wird w hrend der bersetzung ausgewertet nicht jedoch vom Pr prozessor und verh lt sich zur Laufzeit wie eine konstante ganze Zahl 52 2 Programmieren in C 2 16 10 Vorrangregeln Es gibt in C hnlich wie in der Mathematik genaue Regeln ber den Vorrang precedence der Operatoren Es ist jedoch nicht sicher da alle C Compiler sich genau an die Vorgaben des ANSI Vorschlags halten Zudem hat man beim Pro grammieren meist nicht alle Regeln im Kopf so da es besser ist die Ausdr cke durch runde Klammern klar und eindeutig zu kennzeichnen berfl ssige Klam merpaare st ren den Compiler nicht Hier die Liste der Operatoren mit nach unten abnehmendem Rang
35. Integrated Database Application Programming Interface International Data Corporation Integrated Drive Electronics Interactive Design and Engineering Interface Design Enhancement International Data Encryption Algorithm Intermediate Distribution Frame Interessengemeinschaft Datenkommunikation Interface Definition Language Interactive Data Language 200 IDMS IDN IDP IDR IDT IDTRC IEC IECC IECQ IEEE IEEE CS IEF IEN IES IESG IETF IEX IFA IFC IFF IFFT IFG IFIP IFL IFS IFU IFV IFVV IW IWW IGA IGBT IGC IGES IGMP IGN IGP IGRP III IIL IIPS IIR IIRC IITF IJCAI IK CAPE IKOE ILLAB F Abk rzungen Integrated Database Management System Integriertes Datennetz Integrated Digital Network Internet Datagram Protocol Integrated Data Processing Intermediate Data Rate Service Intergalactic Digital Research Improved Definition Television Interrupt Descriptor Table Interrupt Descriptor Table Register Cache International Electrotechnical Commission Interexchange Carrier Intercultural E mail Classroom Connections IEC Quality Assessment System for El Components Institute of Electrical and Electronics Engineers IEEE Computer Society Information Engineering Facility Internet Experimental Note Information Exchange System Internet Engineering Steering Group Internet Engineering Task Force Imaging Extensions for XWS Internationale Funk Ausstellung Integrated Factory Control Interchange fi
36. Protective Earth Phase Encoded Pocket Ethernet Adapter Process and Experiment Automation Realtime Language Picture Element Privacy Enhanced Mail Privacy Enhancement for Electronic Mail Packet Exchange Protocol Packetized Ensemble Protocol Practical Extraction and Report Language Programmgesteuerte Elektronische Rechenanlage TH M nchen Program Evaluation and Review Technique Processor Enhancement Socket Positioning Error Signal Personal Electronic Transactor Commodore Print Enhancement Technology PHIGS Extension to X Power FORTRAN Accelaerator Programming Facility for Display Users Power Fail Restart Pin Grid Array Professional Graphics Adapter Program Global Area Pretty Good Privacy Piracy Page Header Control Bit Programmers Hierarchical Interactive Graphics System Physical Access Physical Layer Protocol Program Interruption Peripheral Interface Adapter Programmable Integrated Circuit Priority Interrupt Controller Protocol Implementation Conformance Statement Process Identification Number Programminformation Postscript Interchange Format Programmer s Imaging Kernel Personal Information Manager Management Pers nliche Identifikations Nummer Processor Independent NetWare Physics Information Network Parallel Programmable I O Chip Peripheral Interchange Program P Internet Protocol PIPO PIS PIT PIU PIW PIXIT PJL PK PKCS PKI PL PLA PLATO PLC PLCC PLD PLE PLIC PLL PLMN PL
37. S VHS SV SV SV ID P VS SW SWL SWF SWIM SWING SX SY XM LK 233 Service Switching Point Simple SIPP Transition Screened Shielded Twisted Pair Slow Scan Television Session Support Utility DEC Send Timing Segment Type Stream Protocol Spanning Tree Algorithm Start Acknowledgement Subtechnical Committee ETSI Subscriber Trunk Dialing State Transition Diagram StreetTalk Directory Assistance Banyan Statistical Time Division Multiplexing Signalling Terminal Standard for the Exchange of Product Data Standard Template Library Synchronous Transfer Transport Mode Modul Streams Manager Scientific amp Technical Information Network Super Twisted Nematic Field Effective Material Structured and Open Environment Shielded Twisted Pair Signal Transfer Point Synchronous Transmitter Receiver Start Initialization Synchronous Transfer Transport Signal Secure Transaction Technology Schere Tippex Uhu Verfahren Start of Text Switching Unit Substitute Simple User Model Satellite User Mapping Register Stanford University Network Southeastern Universities Research Association Network Screened Unshielded Twisted Pair Soviet UNIX User Group Standortverteiler Switched Virtual Call Channel Circuit Connection Simultaneous Voice and Data Super Video Graphics Array Super Video Home System Unix System V Interface Definition Scan line Video Processor UNIX System V Validation Suite Short Wave schwarz wei Software S
38. Slang Flu diagramm DIN 66 001 Forschung und Entwicklung File Update Information Finnish University and Research Network Frame Relay User Network Interface Funktionsploan DIN 40 719 Fernmeldeanlagen berwachungsverordnung Full Video Translation Feste virtuelle Verbindung Fernwirkendeinrichtung Fernwirkendger t Frequently Wanted Information For What It s Worth Slang Fernwirkleitstelle For Your Amusement Slang For Your Information Internet Forschungszentrum Informatik Karlsruhe Galliumarsenid Group Audio Bridging Ganz billiger Computer German Application Environment German Advanced Integrated Network IBM Generic Array Logic Gesellschaft f r Angewandte Mathematik und Mechanik Global Galactic Area Network Geek of All Trades Generic Blackboard System Geschlossene Benutzergruppe Btx Datex J Garbage Collect Geographical Computer Aided Design System General Circuit Interface Global Challenge Network Group Coded Recording Geek of Computer Science Global Data Area Global Directory Agent Graphics Data Display Manager Graphical Device Interface Guidelines for the Definition of Managed Objects OSI GDN GDP GDS GDT GDTRC GE GECOS GEIS GEM GEN GEO GFC GFSK GGS Gl GIF GIGO GII GIPS GIS GIX GKS GL GLASS 22 E Re v DETH un 22598922222228 SAAT UF SE FO GOSIP GOT gov GP GPC GPF GPI 195 Government Data Network UK Generalized Draw
39. dle 017 021 di Device control one del 018 022 d2 Device control two dc2 019 023 d3 Device control three dc3 020 024 d4 Device control four dc4 021 025 nk Negative acjknowledge nak 022 026 sy Synchronous idle syn 023 027 eb End of transmission block etb 024 030 en Cancel can 025 031 em End of medium em 026 032 sb Substitute sub 027 033 ec Escape esc 028 034 fs File separator is4 029 035 gs Group separator is3 030 036 rs Record separator is2 031 037 us Unit separator isl 032 040 sp Space 033 041 Exclamation mark 034 042 Quotation mark 035 043 Number sign 036 044 Dollar sign 037 045 Percent sign 038 046 amp Ampersand 039 047 Apostrophe 142 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 080 081 082 083 084 085 086 087 088 050 051 052 053 054 055 056 057 060 061 062 063 064 065 066 067 070 071 072 073 074 075 076 077 100 101 102 103 104 105 106 107 110 111 112 113 114 115 116 117 120 121 122 123 124 125 126 127 130 x om KEK PHN sono zEr u _ Aan Iaw gt aV AL Left parenthesis Right parenthesis Asterisk Plus sign Comma Hyphen Minus Full stop Solidus Digit zero Digit one Digit two Digit three Digit four Digit five Digit six Digit seven Digit eight Digit nine
40. erhalt eine Hewlett Packard 1000 als zentralen Rechner Sie lauft bis 1992 Die Firma SUN wird gegr ndet entscheidet sich f r UNIX und baut die ersten Workstations Die Universit t Karlsruhe erh lt einen Vektorrechner Cyber 205 und eine Siemens 7865 Die Cyber leistet 400 Mio Gleit kommaoperationen pro Sekunde IBM bringt den PC auf den deutschen Markt UNIX kommt als System V von AT amp T in den Handel Gr ndung der X Open Gruppe MS DOS 2 0 PC DOS 2 0 kommt heraus Der erste Macintosh kommt auf den Markt Der IBM PC AT mit Prozessor Intel 80 286 und MS DOS 3 0 280 1985 1986 1987 1988 1989 1990 1991 1992 1993 J Zeittafel kommen heraus Siemens steigt in UNIX ein Entwicklung des X Window Ssystems am MIT MS Windows 1 0 IBM 3090 und IBM Token Ring Netz IBM 3090 angek ndigt Weltweit etwa eine halbe Million UNIX Systeme und 3000 ffentliche Datenbanken Mit dem Computer Investitionsprogramm des Bundes und der L nder CIP kommen mehrere HP 9000 550 unter UNIX an die Universit t Karlsruhe Damit verbreitet sich UNIX auch au erhalb der Informatik Microsoft XENIX f r den IBM PC AT IBM bringt die PS 2 Reihe unter MS OS 2 heraus Weltweit mehr als 5 Millionen Apple Computer und etwa 100 Millionen PCs nach Art von IBM Das MIT ver ffentlicht das X Window System Version 11 SS 1987 WULF ALEX erh lt Lehrauftrag Einf hrung in UNIX Die Toten Hosen spielen zur ersten Vorlesung den
41. for 1 0 i lt MAX i printf Hier spricht der Schleifenzaehler d n i return 0 Programm 2 7 C Programm mit einfacher for Schleife Der Schleifenz hler i wird mit 0 initialisiert F r MAX ist bereits vom Compiler die Zahl 10 eingesetzt worden die Eintrittsbedingung i lt 10 ist anfangs erf llt der Schleifenrumpf wird ausgef hrt Dann wird der dritte Teil der for Zeile aus gef hrt n mlich der Schleifenz hler i um 1 erh ht und zur Bedingung i lt 10 zur ckgesprungen Das wiederholt sich bis i den Wert 10 erreicht hat Die Be dingung ist dann nicht mehr erf llt die Ausf hrung des Programms geht nach der Schleife weiter Nun eine leicht verr ckte for Schleife Testen der for Schleife 04 03 1993 define MAX 10 include lt stdio h gt int sum int x int main int i j 1 for i 3 puts Anfang i lt j MAX i i sum i printf Hier spricht der Schleifenzaehler Ad Yd n i j j lt 0 i 3 return i Funktion sum x int sum int x if x lt 5 return x 1 else return x 2 Programm 2 8 C Programm mit zusammengesetzter for Schleife Im Initialisierungsteil wird der Schleifenz hler i mit 3 belegt und getrennt durch den Komma Operator mittels der Standard Funktion puts 3 ein String ausgegeben In der Eintrittsbedingung wird gerechnet wichtig ist nur da schlie lich ein Wert 0 oder nicht 0 herauskommt Da
42. here Programmiersprache FORTRAN Formula Translator und verwendet Transistoren KONRAD ZUSE baut die Z722 Sie kommt 1958 auf den Markt Bis 1961 werden 50 St ck verkauft Die IBM 709 braucht f r eine Multiplikation 0 12 ms Weltweit arbeiten rund 1300 Computer Seminar von Prof JOHANNES WEISSINGER ber Programm gesteuerte Rechenmaschinen im SS 1957 der TH Karlsruhe Die TH Karlsruhe erh lt eine Zuse Z22 Die Maschine verwendet 400 Vakuumr hren und wiegt 1 t Der Arbeits speicher fa t 16 W rter zu 38 Bits d h 76 Byte Der Massen speicher eine Magnettrommel fa t rund 40 KByte Eine Gleit kommaoperation dauert 70 ms Das System versteht nur Maschinensprache Freiburger Code Es l uft bis 1972 Im SS 1958 h lt Priv Doz KARL NICKEL Institut f r Angew Mathematik eine Vorlesung Programmieren mathematischer und technischer Probleme f r die elektronische Rechenmaschine Z22 Die Programmiersprache ALGOL 58 kommt heraus Im SS 1959 h lt Priv Doz KARL NICKEL erstmals die Vorlesung Programmieren I im WS 1959 60 die Vorlesung Programmieren II Erstes Werk von Hewlett Packard in Deutschland Siemens baut die Siemens 2002 JACK ST CLAIR KILBY baut bei Texas Instruments den ersten IC Programmieren steht noch in keinem Studienplan sondern ist freiwillig Die Karlsruher Z22 l uft Tag und Nacht Die Programmiersprache COBOL wird ver ffentlicht Ein Computerspiel namens Spacewar l uft auf einer PDP 1 im MIT Die TH Ka
43. montag dienstag mittwoch donnerstag freitag samstag sonntag tag Die Variable tag ist vom Typ wochentag und kann die oben aufgez hlten Werte annehmen Die Reihenfolge der Werte ist ma gebend f r Vergleiche montag ist kleiner als dienstag Auch Farben bieten sich f r einen Aufz hlungstyp an 2 15 2 5 Pointer Zeiger Auf Variable kann mittels ihres Namens oder ihrer Speicheradresse zugegriffen wer den Die Speicheradresse braucht nicht absolut oder relativ zu einem Anfangswert bekannt zu sein sondern ist ebenfalls per Namen ansprechbar Die Speicher adressen werden als Pointer zu deutsch auch als Zeiger bezeichnet Genauge nommen geh ren die Adressen zur Hardware und sind f r den Programmierer in der Regel bedeutungslos w hrend die Pointer eine Einrichtung der Programmier sprache sind und zur Laufzeit mit den Adressen verkn pft werden Adressen sind hexadezimale Zahlen Pointer haben Namen Das Arbeiten mit Pointern erlaubt gelegentlich eine elegante Programmierung und ist im brigen lter als die Verwen dung von Variablennamen Man mu nur stets sorgf ltig die Variable von ihrem Pointer unterscheiden Wenn man Arrays von Pointern auf Strings verwaltet wird das leicht un bersichtlich Ein Pointer ist immer ein Pointer auf einen Variablentyp unter Umst nden auf einen weiteren Pointer Typlose Pointer gibt es nicht in C14 Ein Pointer ist keine Ganzzahl int und kann nicht wie eine Ganzzahl behandelt werden obwohl
44. r genannt zu lateinisch bis zweimal Die Bin rdarstel lung beliebiger Informationen durch zwei Zeichen darf nicht verwechselt werden mit der Dualdarstellung von Zahlen bei der die Zahlen auf Summen von Poten zen zur Basis 2 zur ckgef hrt werden Eine Dualdarstellung ist immer auch bin r das Umgekehrte gilt nicht Warum bevorzugen Computer bin re Darstellungen von Informationen Als die Rechenmaschinen noch mechanisch arbeiteten verwendeten sie das Dezimal system denn es ist einfach Zahnr der mit 20 oder 100 Z hnen herzustellen Viele elektronische Bauelemente hingegen kennen nur zwei Zust nde wie ein Schalter der entweder offen oder geschlossen ist Mit bin ren Informationen hat es die Elektro nik leichter In der Anfangszeit hat man aber auch dezimal arbeitende elektronische Computer gebaut Eine 0 oder 1 stellt eine Binarziffer dar englisch binary digit abgek rzt Bit Ein Bit ist das unteilbare Datenatom Hingegen ist 1 bit kleingeschrieben die Ma einheit f r die Entscheidung zwischen 0 und 1 im Sinne der Informations theorie von CLAUDE ELWOOD SHANNON Kombinationen von acht Bits spielen eine gro e Rolle sie werden daher zu einem Byte zusammengefa t Gelegentlich spricht man auch von einem Oktett Auf dem Papier wird ein Byte oft durch ein Paar hexadezimaler Ziffern ein Hexp rchen wiedergegeben Das Hexade zimalsystem das Zahlensystem zur Basis 16 wird uns h ufig begegnen in UNIX auch das Oktalsystem z
45. 13X Window System 113 Obfuscated CU 118 Einbinden von FORTRAN Modulen 2 222222 2 2 118 Einbinden von PASCAL Modulen 2 2 22 22 118 Dokumentation e 118 Portieren von Programmen 2 on nn 119 2 26 1 Regen 119 2 26 2 Beispiel Lineares Gleichungssystem lin c 121 2 26 3 bertragen von ALGOL nach OC 121 2 26 4 bertragen von PASCAL nach C 22 2 2 2 2 123 2 26 5 bertragen von FORTRAN nach Ce 123 2 26 6 bertragen von BASIC nach 2 2 2 2 ee 126 2 26 7 bertragen von LISP nach C 2 2 2 2 22220 126 bungen 126 Objektiv betrachtet C und ObjectiveC 2 2 2 2 2220 128 2 28 1 Objekte warum und wie e 128 2 28 1 1 Objective C und NeXTstep 2 128 2 28 1 2 C ee a 128 2 28 2 Klassenbibliothek C XSC 2 28 3 Memo C Objective 2 28 4 bung C Objective 2 29 Exkurs ber Algorithmen 2 30 Exkurs ber Zahlen 22 22 2020 2 31 Exkurs ber Aussagenlogik A Zahlensysteme Zeichens tze DI EBCDIC ASCII Romans IBM PC B 2 German ACHT B 3 ASCIl Steuerzeichen e B 4 Latin 1 ISO 8859 1 2 2 2 2 C UNIX Systemaufrufe D C Lexikon D 1 Schl sselw rter e D 2 Standardfunktionen 2 22 22220 D 3 Include Files 2 2 oo oo oo nn D 4 Pr prozessor Anweisungen File Kennungen Abk rzungen Requests For Comment RFCs 2 0 amp Karlsruher Test bei Liter
46. 2 Standardfunktionen 151 isprint pr ft Zeichen ob druckbar ispunct pr ft Zeichen ob Satzzeichen isspace pr ft Zeichen ob Whitespace isupper pr ft Zeichen ob Gro buchstabe isxdigit pr ft Zeichen ob hexadezimale Ziffer tolower wandelt Gro buchstaben in Kleinbuchstaben um toupper wandelt Kleinbuchstaben in Gro buchstaben um e Datenumwandlung atof wandelt String in double Wert um atoi wandelt String in int Wert um atol wandelt String in long Wert um strtod wandelt String in double Wert um strtol wandelt String in long Wert um strtoul wandelt String in unsigned long Wert um e Filebehandlung remove l scht File rename ndert Namen eines Files und Ausgabe clearerr l scht Fehlermeldung eines Filepointers fclose schlie t Filepointer fflush leert Puffer eines Filepointers fgetc liest Zeichen von Filepointer fgetpos ermittelt Stand des Lesezeigers fgets liest String von Filepointer fopen ffnet Filepointer fprintf schreibt formatiert nach Filepointer fputc schreibt Zeichen nach Filepointer fputs schreibt String nach Filepointer fread liest Bytes von Filepointer freopen ersetzt ge ffneten Filepointer fscanf liest formatiert von Filepointer fseek setzt Lesezeiger auf bestimmte Stelle fsetpos setzt Lesezeiger auf bestimmte Stelle ftell ermittelt Stellung des Lesezeigers 152 D C Lexikon fwrite schreibt Bytes nach Filepointer getc liest Zeichen von Filepointer ge
47. Addison Wesley Bonn 1992 742 S 90 DM Erklarung gebrauchlicher Algorithmen und Umsetzung in C Auch in Englisch und fiir PASCAL E Stiefel Einf hrung in die Numerische Mathematik Teubner Stuttgart 1976 292 S 36 DM vergriffen J Stoer R Bulirsch Numerische Mathematik Springer Berlin 1 Teil 1993 314 S 32 DM 2 Teil 1990 341 S 32 DM 260 I Literatur F Stummel K Hainer Praktische Mathematik Teubner Stuttgart 1982 367 S 40 DM N Wirth Algorithmen und Datenstrukturen Teubner Stuttgart 1983 320 S 42 DM Viel zu Datenstrukturen weniger zu Algorithmen 5 Betriebssysteme Newsgruppen comp os de comp os Microsoft MS DOS Handb cher User s Guide and User s Reference 05 2 Version 2 0 Technical Compendium Red Books IBM Boca Raton 1992 5 B nde 1158 S 100 DM OPD software watson ibm com im Verzeichnis pub os2 misc auch auf ftp uni stuttgart de in pub soft os2 info redbooks L Bic A C Shaw Betriebssysteme Hanser M nchen 1990 420 S 58 DM Allgemeiner als Tanenbaum 1 H M Deitel M S Kogan The Design of OS 2 Addison Wesley Reading 1992 389 S 95 DM A S Tanenbaum Operating Systems Design and Implementation Prentice Hall London 1987 719 S 79 DM Einfiihrung in Betriebssysteme am Beispiel von UNIX A S Tanenbaum Modern Operating Systems Prentice Hall London 1992 728 S 100 DM Allgemeiner und moderner als vorstehendes Buch MS DOS UNI
48. Archiving and Communications System Personal Access Communication System PBX and Computer Teaming PACX PAD PaDL PAK PAL PALC PAM PAP PAR PARC PARLE PAT PATC PAX PBE PBM PBX PC PCA PCB PCC PCD PCI PCL PCM PCMCIA PCN PCNFS PCR PCS PCSA PCTE PCTS PCWG PD PDA PDD PDES PDF PDH PDI 219 Private Automatic Computer Exchange Packet Assembler and Dissassembler Pattern Development Language Packet Arcnet Programmable Array Logic Paradox Programming Application Language Phase Alternating Line Loop TV Privileged Architecture Library DEC Plasma Addressed Liquid Crystal Display Personal Application Manager Password Authentication Protocol Printer Access Protocol Public Access Profile Programmablaufplan Project Authorization Request IEEE Xerox Palo Alto Research Center Parallel Architectures and Languages Europe Public Access Terminal Page Address Translation Cache Parallel Architecture Extended Prompt By Example Pipelined Burst Mode Private Branch Exchange Personal Computer Path Control Program Counter Parallel Channel Adapter Printed Circuit Board Program Control Block Papas Computer Club Photo Compact Disc Protocol Control Information Peripheral Component Controller Interface Peripheral Component Interconnect Bus Programmable Communication Interface Procedure Process Control Language Printer Control Language HP Puls Code Modulation Physical Con
49. Array free gibt allokierten Speicher frei malloc allokiert Speicher realloc ndert Gr e des allokierten Speichers e Prozesssteuerung abort erzeugt SIGABRT Signal atexit Funktionsaufruf bei Programmende exit Programmende raise sendet Signal signal legt Antwort auf Siganl fest system bergibt Argument an Kommandointerpreter e Suchen und Sortieren bsearch bin re Suche qsort Quicksort e Stringbehandlung strcat verkettet Strings strchr sucht Zeichen in String strcmp vergleicht Strings strcpy kopiert String strcspn sucht Teilstring strerror verweist auf Fehlermeldung strlen ermittelt Stringlange strncat verkettet n Zeichen von Strings strncmp vergleicht n Zeichen von Strings 154 Dies D C Lexikon strncpy kopiert n Zeichen eines Strings strpbrk sucht Zeichen in String strrchr sucht Zeichen in String strspn ermittelt L nge eines Teilstrings strstr sucht Zeichen in String sind alle Funktionen des ANSI Vorschlags Die meisten Compiler bieten dar berhinaus eine Vielzahl weiterer Funktionen die das Programmieren erleich tern aber die Portabilit t verschlechtern D 3 Include Files Die Standard Include Files enthalten in lesbarer Form Definitionen von Konstan ten und Typen Deklarationen von Funktionen und Makrodefinitionen Sie werden von Systemaufrufen und Bibliotheksfunktionen ben tigt Bei der Beschreibung je der Funktion im Referenz Handbu
50. BASIC BASM BATC BAZ BB BBC BBN BBNS BBS BC BCC BCD BCE BCH 167 Andrew User Environment Apple User Group Europe Attachment Unit Interface Ethernet Acceptable Appropriate Use Policy Internet Automatische Telex und Teletexauskunft der DBP Auxiliary Audio Visual Authoring IBM Audio Visual Connection IBM Audio Visual Computer Display Amtliches Telex und Teletexverzeichnis der DBP Average Audio Visual Interleaved Microsoft Audiovisuelle Integration Architecture for Virtual Interfaces for Applications Audio Video Kernel Adelson Velskij Landis Baum Amtliches Verzeichnis der Ortsnetze Audio Video Subsystem Software Automatischer Wechselschalter in der Anschlu dose Automatische W hleinrichtung f r Datenverbindungen American Wire Gauge Anweisungsliste DIN 19 239 Apple Workgroup Server Automatic Transmission Applications Execution Environment Azimut Balanced Asynchronous Class Broken As Designed Binary Adaption Kit Microsoft Basic Assembly Language Boyan Action Module Block Availability Map Bundesamt Post und Telekommunikation Mainz Bay Area Regional Research Network Bell Atlantic Regional Timesharing Bild Austast Synchron Signal Btx Anwendungsschnittstelle Beginner s All Purpose Symbolic Instruction Code Built In Assembler Block Address Translation Cache Belegauswertung von Zahlungsvorg ngen beschr nkt balanciert Baum Britisch Broadcasting Company Bolt Beranek and N
51. C die Nachf hrung der Programme wenn berhaupt erforderlich macht keine Schwierigkeiten ANSI C kennt ein Schl sselwort von K amp R nicht mehr entry und dafiir mehrere neue C ist allgemein verwendbar konzentriert l t dem Programmierer gro e Freiheiten having the best parts of FORTRAN and assembly language in one place und f hrt in der Regel zu schnel len Programmen da vielen C Anweisungen unmittelbar Assembler Anweisungen entsprechen C Programme gelten als un bersichtlich aber das ist eine Frage des Programmierstils nicht der Sprache Auf UNIX Systemen hat man mit C die we nigsten Schwierigkeiten F r PCs gibt es von Microsoft das preiswerte Quick C und aus dem GNU Projekt einen kostenlosen C Compiler im Quellcode Aus C hat BJARNE STROUSTRUP um 1985 eine Sprache C entwickelt die ebenfalls eine Ubermenge bildet Der Denkansatz Paradigma beim Programmie ren in C weicht jedoch erheblich von C ab so da man eine l ngere Lernphase einplanen mu vielleicht sogar mehr als bei einem bergang von PASCAL nach C Da sich ANSI C und C gleichzeitig entwickelt haben sind einige Neuerungen von C in ANSI C eingeflossen zum Beispiel das Prototyping Ein ANSI C Programm sollte von jedem C Compiler verstanden werden das Umgekehrte gilt nicht F r numerische Aufgaben ist C in der Universitat Karlsruhe um eine Klas senbibliothek namens C XSC Extended Scientific Calculation mit Datentypen wie komplexen Zah
52. CAPS CAPSC CAPTAIN CAQ CAR CARE CARLOS CARS CAS 171 Conditional Access Computer Aided Assembling Anthropometrics Computer Aided Architectural Design Computer Aided Consulting Computing Creativity Christmas Crime Communications of the ACM Computer Aided Design Class Association Diagram Computer Aided Design And Manufacturing Computer Aided Drug Design Computer Aided Design and Drafting Computer Aided Design Manufacturing and Testing Common Application Environment Computer Aided Engineering Computer Aided Education Computer Aided Fishing Computer and Academic Freedom Column Adress Generator Computer Aided Holidays Homework Hausaufgaben Common Air Interface Computer Aided Industry Computer Aided Assisted Instruction Common APSE Interface Set Computer Aided Inspection and Testing Computer Anwendungen Karlsruhe Computer Aided Life Learning Computer Aided Locomotion by Implanted Electrical Stimulation Computer Aided Language Learning Computer Aided Acquisition and Logistics Support California Institute of Technology Common Access Method Computer Aided Manufacturing Content Adressable Memory Computer Automated Measurement And Control Computer Aided Molecular Design Cancel Line Controller Area Network Car Area Network Campus Area Network Complete Area Network Customer Access Network Computer Aided Optimization Computer Aided Planning Computer Aided Publishing Columbia AppleTalk Package Cent
53. Computer Aided Verification Constant Angular Velocity Computer Aided Vision Engineering Citizens Band Cipher Block Chaining Channel Byte Count Register Connectionless Broadband Data Service Computer Business Equipment Manufacturers Association Compressed Binaries IBM PC Current Book In Progress Computer Based Learning Constant Continuous Bit Rate Computer Based Training Convert Byte to Word Computer controlled Branch Exchange Cluster Controller Congestion Control Crossconnect Ceramic Chip Carrier Chaos Computer Club Hamburg Charge Coupled Device Class Communication Diagram Cold Cathode Fluorescent Tube Comite Consultatif International des Radiocommunications Committee for Intercontinental Research Networks Comite Consultatif International de Telegraphie et de Telephonie Common Command Language Connection Control Language Computer Controlled Manufacturing Cordless Communication Network Cluster Controller Computer Communications Networks Group Cache Coherent NUMA Console Command Processor Program Commitment Concurrency Recovery OSI Coordinating Council on Research Networks Common Channel Signalling Common Command Set SCSI Common Communication Support Continuos Composite Servo Cooperative Computing System Program Computerized Communication Terminal Central Communication Unit Computer Center at the University of Tokyo Centre de Calcul Vectoriel pour la Recherche Collision Detection Compact Disk Carrier Detect Colour
54. DEC Local Access and Transport Area Lobe Access Unit Local Area VAX Cluster Local Area Wireless Network Logical Block Addressing Local Bus Controller Local Bus Master Local Bus Target Listen Before Talk Low Bandwidth X Losely Coupled Architecture Logic Cell Array Liquid Crystal Display LAN Configuration Facility Low Cost Home User Logical Channel Indentifier LEAF Creation Method Link Control Protocol Internet Liquid Crystal Shutter Last Cluster Used Logical Device Address Local Delivery Agent 206 LDLN LDM LDR LDS LDSG LDT LDTR LDTRC LDTV LE LEAF LEARP LEC LECS LED LEL LEM LEMP LEN LEO LER LES LF LFI LFK LFS LFSA LFU LGA LGPL LH LIC LICS LIEP LIF LIFO LILO LIM LIMS LIP LIPS LIPX LIS LISP LITA LKM LKS LL F Abk rzungen Long Distance Learning Network Long Distance Modem Light Dependent Resistor Landesamt f r Datenverarbeitung und Statistik Landesdatenschutzgesetz Local Descriptor Table Load Descriptor Table Register Load Descriptor Table Register Cache Limited Definition Television Link Encapsulation Law Enforcement Access Field LAN Emulation Address Resolution Protocol LAN Emulation Client LAN Emulation Client Configuration Server Service Light Emitting Diode Link Embedded and Launch to edit Language Extension Module Lightning Electromagnetic Pulse Low Entry Networking Low Earth Orbit Orbiting Light Emitting Resistor LAN Emulation
55. Die optimierende Compiler Option 0 ist mit Vorsicht zu gebrauchen Es ist vorgekommen da ein optimiertes Programm nicht mehr lief Die Gewinne durch die Optimierung sind auch nur m ig Immerhin der Versuch ist nicht strafbar Als erstes schaut man sich die Schleifen an von geschachtelten die innersten Dort sollte nur das Allernotwendigste stehen Bedingungen sollten so einfach wie m glich formuliert sein Mehrfache Be dingungen sollten darauf untersucht werden ob sie durch einfache ersetzt werden k nnen Schleifen sollten m glichst dadurch beendet werden da die Kontrollva riable den Wert Null und nicht irgendeinen anderen Wert erreicht Eine Bedingung mit mehreren ands oder ors wird so lange ausgewertet bis die Richtigkeit oder Falschheit des gesamten Ausdrucks erkannt ist Sind meh rere Bedingungen durch or verbunden wird die Auswertung nach Erkennen des ersten richtigen Gliedes abgebrochen Zweckm ig stellt man das Glied das am h ufigsten richtig ist an den Anfang Umgekehrt ist ein Ausdruck mit durch and verbundenen Gliedern falsch sobald ein Glied falsch ist Das am h ufigsten falsche Glied geh rt also an den Anfang 96 2 Programmieren in C hnliche berlegungen gelten f r die switch Anweisung Die h ufigste Aus wahl sollte als erste abgefragt werden Ist das der default Fall kann er durch eine eigene if Abfrage vor der Auswahl abgefangen werden berfl ssige Typumwandlungen insbesondere die unauff lli
56. Display CDA CDATA CDC CDDI CDE CDF CDI CDIF CDL CDM CDMA CDOS CDPD CDR CD R CDRA CDRAM CD RDx CDRL CD ROM CD ROMXA CDS CDTV CD V CD WO CE CeBIT CEBus CECC CEDEX CEFIC CEG CEI CELP CEMM CEN CENELEC CEP CEPT CERN CERT CES CFDP CFM CFP CFR 173 Change Direction Committee Document ISO Compound Document Architecture DEC Communications Decency Act Character Data Control Data Corporation Copper Distributed Data Interface Common Desktop Environment Cooperative Development Environment Complex Data Entry Common Data File Compact Disc Interactive Case Data Interchange Format Computer Design Language Compressed Data Mode Code Division Multiplex Code Division Multiple Access Concurrent Disk Operating System Cellular Digital Packet Data Call Detail Record Recording Compact Disk Recordable Character Data Representation Architecture Cached DRAM Compact Disk Read Only Memory Data Exchange Standard Contract Data Requirements List Compact Disk Read Only Memory CD ROM Extended Architecture Cell Directory Service OSF Current Directory Structure Compact Disk Television Commodore Dynamic Total Vision Compact Disk Video Compact Disk Write Once Clear Entry Cache Enable Collision Elimination Centrum f r B ro Information und Telekommunikation Consumer Electronics Bus Electronic Components Committee Courrier d entreprise distribution exceptionelle EDIFACT Subset Chemical Industry Continuous
57. Dummy s Guide to the Internet ftp ciw pub docs net general bdgtti2 ps gz 1993 220 S Postscript andere Formate im Netz Einf hrung in die Dienste des Internet H Hahn R Stout The Internet Complete Reference Osborne MacGraw Hill Berkeley 1994 818 S 60 DM Das Netz und seine Dienste von Mail bis WWW Lehrbuch und Nachschlagewerk f r Benutzer des Internet Standardwerk Ch Hedrick Introduction to the Internet Protocols ftp ciw pub docs net general tep ip intro ps gz und doc gz 1988 20 S ASCII und Postscript Ch Hedrick Introduction to Administration of an Internet based Local Network ftp ciw pub docs net general tcp ip admin ps gz und doc gz 1988 39 S ASCII und Postscript Adressen Routing Netztopologie im Internet K Hughes Entering the World Wide Web A Guide to Cyberspace ftp ciw pub docs net www hughes guide ps gz 1993 20 S Postscript Erklarungen Entstehung Glossar B P Kehoe Zen and the Art of the Internet ftp ciw pub docs net general zen ps gz 1992 100 S Postscript Einf hrung in die Dienste des Internet E Krol The Hitchhikers Guide to the Internet ftp ciw pub docs net general hitchhg txt 1987 16 S ASCII Erkl rung einiger Begriffe aus dem Internet E Krol The Whole Internet O Reilly Sebastopol 1992 376 S 25 US J Lammarsch H Steenweg Internet amp Co Addison Wesley Bonn 1994 218 S 60 DM 266 10 I Literatur T L LaQuey User s Directory of Compu
58. Dynamische Speicherverwaltung malloc Wir haben gelernt da die Gr e eines Arrays oder einer Struktur bereits zur bersetzungszeit bekannt sein d h im Programm stehen mu Dies f hrt in manchen F llen zur Verschwendung von Speicher da man Arrays in der maximal m glichen Gr e anlegen m te Die Standardfunktion malloc 3 samt Verwandt schaft hilft aus der Klemme Im folgenden Beispiel wird ein Array zun chst nur als Pointer la deklariert dann mittels calloc 3 Speicher zugewiesen mittels realloc 3 vergr ert und schlie lich von free 3 wieder freigegeben Programm allo c zum Ueben von malloc 3 01 06 94 108 2 Programmieren in C define MAX 40 define DELTA 2 include lt stdio h gt include lt stdlib h gt long la Pointer auf long int main int i x calloc belegt Speicher fuer Array von MAX Elementen der Groesse sizeof long initialisert mit 0 gibt Anfangsadresse zurueck In stdlib h wird size_t als unsigned int definiert la long calloc size_t MAX size_t sizeof long if la NULL puts Zuordnung ok else puts Ging daneben exit 1 Array anschauen printf Ganzzahl eingeben scanf Yd amp x for i 0 a lt MAX i 1 i long i x printf Ausgabe ld ld n lal10 lal20 Array verlaengern mit realloc la long realloc void la size_t DELTA sizeof long Array anschauen
59. Funktion printf 3 als dezimale Ganzzahlen ausgegeben wobei der Buchstabe B durch seine ASCII Nummer 66 vertreten ist In der zweiten Zeile werden alle Werte als 7 bit ASCII Zeichen verstanden wobei die Zahlen die mehr als 7 Bit gt 127 beanspruchen nach 7 Bit links abgeschnitten werden Die Zahl 233 f hrt so zur Ausgabe des Zeichens Nr 233 128 105 Die Zahl 33 wird als Zeichen Nr 128 33 95 dem Unterstrich ausgegeben Wie man an der Rechnung erkennt werden Zeichen vom Prozessor wie ganze Zahlen behandelt und erst bei der Ausgabe einer Zahl oder einem ASCII Zeichen zugeordnet Es ist zu erwarten da auf Systemen mit 8 bit oder 16 bit Zeichens tzen die Grenze h her liegt aber die Arbeitsweise bleibt Manchmal will man ein Byte wahlweise als Ganzzahl oder als Zeichen auffassen aber das geh rt zu den ber chtigten Tricks in C Das Ausgabeger t empf ngt nur die Nummer des auszugebenden Zeichens gem seiner Zeichensatz Tabelle ASCII ROMANS die Umwandlung des Wer tes entsprechend seinem Typ ist Aufgabe der Funktion printf 3 Boolescher Typ Eine Gr e vom Typ boolean oder logical kann nur die Werte true wahr richtig oder false falsch annehmen In C werden statt des 2 15 Operanden 35 booleschen Typs die Integerwerte 0 false und nicht 0 true verwendet Etwas verwirrend ist da viele Funktionen bei Erfolg den Wert 0 zur ckgeben Leerer Typ Der leere Datentyp void wird zum Deklarieren von Funkti
60. Handbuch als File verf gbar Die Eintr ge in den Referenz Handb chern sind knapp gehalten Bei einfa chen Kommandos wie pwd 1 oder who 1 sind sie dennoch auf den ersten Blick verst ndlich Zu Kommandos wie vi 1 sh 1 oder xdb 1 die umfangreiche Aufgaben erledigen geh ren schwer verst ndliche Eintr ge die voraussetzen da man die wesentlichen Z ge des Kommandos bereits kennt Diese Kenntnis ver mitteln Einzelwerke die es zu einer Reihe von UNIX Kommandos gibt siehe Anhang I Literatur Ohne Computer bleibt das B cherwissen trocken und abstrakt Man sollte daher die B cher in der N he eines Terminals lesen so da man sein Wissen sofort ausprobieren kann Das Durcharbeiten der bungen geh rt dazu auch wegen der Erfolgserlebnisse Zeitschriften berichten ber Neuigkeiten Manchmal bringen sie auch Kurse in Fortsetzungsform Ein Lehrbuch oder Referenz Handbuch ersetzen sie nicht Sie eignen sich zur Erg nzung und Weiterbildung sobald man ber ein Grundwissen verf gt Von einer guten Computerzeitschrift darf man heute verlangen da sie ber E Mail erreichbar ist und ihre Informationen im Netz verf gbar macht Electronic Information besteht aus allgemein zug nglichen Mitteilungen in den Computernetzen Das sind Bulletin Boards Schwarze Bretter Computerkon ferenzen und diskussionen Electronic Mail Netnews Ver ffentlichungen die per Anonymous FTP kopiert werden und hnliche Dinge Sie sind aktueller als Zeit
61. Handbuch finden Dies ist ein einfaches C Programm von hohem paedagogischen aber sonst fast keinem Wert int main int 1 53 printf nDer Wert betraegt d n i return 1 Programm 2 42 C Programm einfach Nun soll auch der Praprozessor Arbeit bekommen Wir definieren eine symbo lische Konstante NUMBER und schlie en vorsichtshalber das include File stdio h ein das man fast immer braucht wenn es um Ein oder Ausgabe geht Weiterhin verwenden wir einen arithmetischen Operator und eine Zuweisung Dies ist ein fortgeschrittenes C Programm define NUMBER 2 include lt stdio h gt int main int i 53 x x 1 NUMBER printf nDer Wert betraegt Ad n x return 0 Programm 2 43 C Programm fortgeschritten Da ein Ausdruck sein Ergebnis zur ckgibt k nnen wir in der Funktion printf 3 anstelle von x auch die Summe hinschreiben Als R ckgabewert unseres Hauptprogrammes wollen wir den R ckgabewert der Funktion printf 3 haben n mlich die Anzahl der ausgegebenen Zeichen Das Programm wird k rzer aber auch schwieriger zu verstehen falls man nicht ein alter C Hase ist Dies ist ein kleines C Programm 94 2 Programmieren in C define NUMBER 2 include lt stdio h gt int main int i 53 return printf nDer Wert betraegt d n i NUMBER Programm 2 44 C Programm fortgeschritten Variante Der ausf hrbare Code ist damit auf 35 KB angewac
62. Informatik ausgeweitet Unter Technischer Informatik gelegentlich L tkolben Informatik gehei en versteht man den elektrotechnischen Teil Den Gegenpol bildet die Theoretische Informatik nicht zu verwechseln mit der Informationstheorie die sich mit formalen Sprachen Grammatiken Semantik Automaten Entscheidbarkeit Vollst ndigkeit und Komplexit t von Problemen besch ftigt Computer und Programme sind in der Angewandten Informatik zu Hause Die Grenzen innerhalb der Informatik sowie zu den Nachbarwissenschaf ten sind jedoch unscharf und durchl ssig Computer sind Automaten Maschinen die auf bestimmte Eingaben mit be stimmten T tigkeiten und Ausgaben antworten Dieselbe Eingabe f hrt immer zu derselben Ausgabe darauf verlassen wir uns Deshalb ist es im Grundsatz unm glich mit Computern Zufallszahlen zu erzeugen zu w rfeln Zwischen ei nem Briefmarkenautomaten Postwertzeichengeber und einem Computer besteht jedoch ein wesentlicher Unterschied Ein Briefmarkenautomat nimmt nur M nzen entgegen und gibt nur Briefmarken aus mehr nicht Es hat auch mechanische Rechenautomaten gegeben die f r spezielle Aufgaben wie die Berechnung von Ge scho bahnen oder Gezeiten eingerichtet waren Das Verhalten von mechanischen Automaten ist durch ihre Mechanik unver nderlich vorgegeben Bei einem Computer hingegen wird das Verhalten durch ein Programm be stimmt das im Ger t gespeichert ist und leicht ausgewechselt werden kann Der
63. Kommandos fast nichts zum vi 1 D G Korn M I Bolsky The Kornshell Command and Programming Language auf deutsch Die KornShell Hanser Miinchen 1991 98 DM Einf hrung in UNIX und die Korn Shell M Loukides UNIX for FORTRAN Programmers O Reilly Sebastopol 1990 244 S 55 DM Kurze allgemeine Einf hrung in UNIX ausf hrliche Behandlung der Programmer s Workbench im Hinblick auf FORTRAN J Peek u a UNIX Power Tools O Reilly Sebastopol 1993 1119 S 119 DM Viele niitzliche Hinweise fiir den Anwender mit CD M J Rochkind Advanced UNIX Programming Prentice Hall London 1986 224 S 47 US Beschreibung aller UNIX System Calls 262 I Literatur A T Schreiner Professor Schreiners UNIX Sprechstunde Hanser M nchen 1987 316 S 64 DM Shellscripts und kurze C Programme f r verschiedene Zwecke R M Stallman The GNU Manifesto ftp ciw pub docs misc manifest gnu 1985 8 S ASCII Ziele des GNU Projekts W R Stevens Advanced Programming in the UNIX Environment Addison Wesley Reading 1992 744 S 110 DM Ahnlich wie Rochkind S Strobel T Uhl LINUX vom PC zur Workstation Springer Berlin 1994 238 S 33 DM L Wirzenius M Welsh LINUX Information Sheet Netnews comp os linux ftp ciw pub docs unix linux info 1993 6 S ASCII Anfangsinformation zu LINUX was und woher C Zimmermann A W Kraas MACH Springer Berlin 1992 210 S 78 DM Konzepte und Programmierung von MACH U
64. Management System Akademisches Computer Netz sterrreich Automatic Channel Programming Auxiliary Control Process Attenuation to Crosstalk Ratio Automated Cargo Release and Operations Service System Asynchronous Communication Server Access Control System Association Control Service Element Entity Australian Computer Science Network Advanced Communication for Training Applied Computerized Telephony HP Advanced Communications Technologies and Services Advanced Compatible Television Automatic Calling Unit Analog Digital Automatic Data Acquisition Ada Information Clearinghouse Automatischer Datenme platz Apple Desktop Bus Adaptive Data Compression Add with Carry Analogue to Digital Converter Application Development Classes Advanced Data Communication Control Procedure Adapter Device Driver Application Development Environment Address Distribution Facility Automatic Document Feed Agence de l Informatique Autodesk Device Interface Address Data Latch Adventure Definition Language Adaptive Lattice Filter Application Development Modul Asynchronous Disconnected Mode Add Drop Multiplexer Administrative Administration Management Domain X 400 Automatic Data Processing Adaptive Delta Differential Pulse Code Modulation Address Adaptive Dynamic Range Coding Application Development System Automatic Distribution System Address Status Changed Asymmetrical Digital Subscriber Line Loop AppleTalk Data Stream Protocol Attack Deca
65. NRM NRTL NRZ NRZI NS NSA NSAP NSC NSF NSFNet NSL NSP NSSDC NSTL NSTVA NT NTAS NTC NTF NTFS NTG NTIA NTN NTP NTS NTSA NTSC NTT NUA NUI NURBS NUMA NVE 215 Novell Network Registry Network News Transfer Protocol Internet Network Operation Center National Online Media Association No Operation not or Naval Ordnance Research Calculator Network Operating System Network Performance Analyzer Network Printer Printing Alliance Network Printing Alliance Protocol Network Printer Interface Nonprocedural Language National Physical Laboratory England National Public Telecomputing Network USA Network Queuing Environment Network Queuing System National Research and Education Network Normal Response Mode Nationally Recognized Testing Laboratory USA non return to zero non return to zero invert on ones New Signal Network Supervisor National Security Agency USA Network Service Access Point National Support Center Non Standard Format National Science Foundation USA National Science Foundation Network Internet Network Service Layer Network Services Protocol Native Signal Processing National Space Science Data Center USA National Software Testing Labs USA Nebenstellen Vermittlungsanlage Network Termination ISDN New Technology Windows NT Advanced Server Negative Temperature Coefficient No Trouble Found New Technology File System Microsoft Nachrichtentechnische Gesel
66. Naur Form Big Name Fan Slang But Now For Something Completely Different Slang Begin Negative Positive Finish Broadband Network Services Basic Networking Utilities uucp Binary Output Basic Object Adapter Bus Oriented Asynchronous Receiver Transmitter Bell Operating Company Board of Fellows Birds Of a Feather Slang Birds of a Feather Session Begin Of Message Broadband Optical Network Termination Binocular Omni Oriented Monitor Bootstrap Protokoll Internet Bit Oriented Protocol Basic Operating System Begin Of Tape Table Bandpass Base Pointer BIOS Parameter Block bits per inch Bundespostministerium Business Process Reengineering bits bytes per second Binary Phase Shift Keying Branch Prediction Unit Berkeley Quality Software Bad Register Broadcast Recognizing Access Method Basic Regular Expression 170 B Rep BRI BRIM BS BSA BSAM BSC BSD BSDL BSF BSI BSM BSMTP BSP BSR BSS BSY BSYNC BT BTAC BTAM BTB BTC BTI BTIC BTLB BTMA BTP BTR BTS BTU BTW Btx BUAF BUAG BUF BUS BUUG BVIT BWM BWQ BWSN BZR BZT BZV CA F Abk rzungen Boundary Representation Basic Basis Rate Interface Brain Response Interface Bridge Router Interface Module Backspace Base Station Betriebssystem Bitonic Sort Graph Business Software Alliance Basic Sequential Access Method Base Station Controller Binary Synchronous Communication IBM Berkeley Software System Distribution B
67. Newsgruppen comp infosystems comp internet comp protocols alt best of internet alt bbs internet alt internet de comm internet de comp infosystems fr comp infosystemes fido ger internet vmsnet infosystems Internet Resources Guide NSF Network Service Center Cambridge 1993 ftp ciw pub docs net general resource guide help ftp ciw pub docs net general resource guide ps tar gz ftp ciw pub docs net general resource guide txt tar gz Beschreibung der Informationsquellen im Internet Das Telekom Buch 93 94 Deutsche Bundespost Telekom Bonn 1993 320 5 10 DM bersicht ber die Netzdienste der Bundespost leichtverst ndlich S Carl Mitchell J S Quarterman Practical Internetworking with TCP IP and UNIX Addison Wesley Reading 1993 432 S 52 US D E Comer Internetworking with TCP IP 4 B nde Prentice Hall Englewood Cliffs I Band 1991 550 S 90 DM 265 II Band 1991 530 S 88 DM Ia Band BSD 1993 500 S 86 DM IIb Band AT amp T 1994 510 S 90 DM Prinzipien Protokolle und Architektur des Internet EARN Guide to Network Resource Tools ftp ciw pub docs net general nettools ps gz 1993 70 S Postscript bersicht ber Netzdienste wie Gopher WWW WAIS ARCHIE NETSERV NetNews und Listserv A C Engst Internet Starter Kit for Macintosh Hayden Books Indianapolis 1993 641 S 30 US Die wichtigsten Internet Dienste f r den Mac mit Diskette A Gaffin J Heitk tter Big
68. Nr 0 Es enth lt die Namen der Wochentage mit Spaces aufgef llt auf gleiche L nge char ptag Sonntag Montag Hier wird ein Array von 7 Pointern gespeichert Dazu kommen nat rlich noch die Strings die wegen des Aussehens auf dem Bildschirm gleich lang sind aber vom Programm her ungleich lang sein d rften Pointer 2 Pointer 1 Sp Wert Variable ptag gt ptag O x ptag xptag 0 ptag 0 0 5 ptag 0 1 o ptag 0 1 ptag 0 1 o ptagl0 2 ptag 0 2 ptag 0 2 n ptag l0 3 ptag 0 3 ptag 0 3 n ptagl0 4 gt ptag 0 4 ptag 0 4 t ptag 0 5 Tal ptag 0 5 ptag 0 5 a ptagl0 6 ptag 0 6 ptag 0 6 g ptagl0 7 gt ptag 0 7 ptag 0 7 ptag 0 8 __ ptag 0 8 ptag 0 8 ptag 0 9 ptag 0 9 ptag 0 9 ptag 1 gt mool ptag 1 ptag 1 0 M ptagl 1 o ptag 1 1 ptag 1 1 o ptag l 2 ptag 1 2 ptag 1 2 n Wir brechen nach dem n von Montag ab ptag ist die Adresse des Speicherplatzes in dem ptag 0 abgelegt ist ptag 0 ist die Adresse des Speicherplatzes in dem das Zeichen 5 abgelegt ist Durch zweimaliges Dereferenzieren von ptag erhalten wir das Zeichen D Die anderen Zeichen liegen auf h heren Speicherplatzen deren Adressen wir durch Inkrementieren e
69. Programm in ein File namens a out MS DOS Quick C nimmt den Namen des Quellfiles ohne die Kennung In beiden F llen 92 2 Programmieren in C kann man mit der Compiler Option o f r das Ausgabefile einen beliebigen anderen Namen vereinbaren 2 21 2 Aufbau Wir kennen nun die Bausteine aus denen sich ein Programm zusammensetzt Wie sieht ein vollst ndiges Programm aus Zun chst einige Begriffe zum Aufbau von Programmen Die kleinste Einheit die etwas bewirkt ist die Anweisung Mehrere Anwei sungen k nnen zu einem durch geschweifte Klammern zusammengefa ten Block vereinigt werden Nach au en wirkt dieser Block wie eine einzige Anweisung Der Block ist zugleich die kleinste Einheit f r den Geltungsbereich von Variablen Mehrere Anweisungen oder Bl cke werden zu einer Funktion zusammenge fa t Die Funktion ist die kleinste compilierbare Einheit Eine oder mehrere Funk tionen k nnen in einem File abgelegt sein Dem Compiler bergibt man im Mini mum ein File das eine Funktion enth lt Mehrere Files hinwiederum k nnen ein vollst ndiges nach dem Compilieren lauff higes Programm bilden Erinnern Sie sich an das Werkzeug make 1 Das Minimalprogramm in C und C besteht aus einer Funktion n mlich main deren Rumpf leer ist in einem File main Programm 2 40 Minimales C Programm Der Name main ist fiir das Hauptprogramm vorgeschrieben main ist eine Funktion daher die beiden runden Klammern Der dur
70. Programme fiir Clients und Server der Netzdienste J Strang u a termcap amp terminfo O Reilly Sebastopol 1988 270 S 17 I A Taylor Taylor UUCP ftp ciw pub docs unix uucp ps gz 1993 93 S Postscript L Wall R Schwartz Programming Perl O Reilly Sebastopol 1991 482 S 22 Grafik Newsgruppen comp graphics alt graphics fido ger grafik zer z netz rechner grafik American National Standard for Information Systems Computer Graphics Graphical Kernel System GKS Functional Description ANSI X3 124 1985 GKS Referenz J Bechlars R Buhtz GKS in der Praxis Springer Berlin 1994 500 S 98 DM GKS f r FORTRAN Programmierer D Foley Computer Graphics Principles and Practice Addison Wesley Reading 1992 1200 S 83 US Standardwerk zur Computer Grafik 264 I Literatur T Gaskins The PHIGS Programming Manual O Reilly Sebastopol 1992 908 S 102 DM Lehrbuch und Nachschlagewerk auch unter XWS I Grieger Graphische Datenverarbeitung mit einer Einf hrung in PHIGS und PHIGS PLUS Springer Berlin 1992 389 S 48 DM T Howard u a A Practical Introduction to PHIGS and PHIGS PLUS Addison Wesley Reading 1991 354 S 63 US H Kopp Graphische Datenverarbeitung Hanser M nchen 1989 211 S 40 DM mathematische Methoden Algorithmen GKS L Kosko PHIGS Reference Manual O Reilly Sebastopol 1992 1000 S 40 US 9 Netze TCP IP OSI Internet
71. Rolle Die Juristen denken beim bermitteln weniger an eine Orts nderung als an eine nderung der Verf gungs gewalt Besagter Anderer kann durchaus auf demselben Computer arbeiten Zum Speichern oder bermitteln mu die physikalische Form der Information meist mehrmals ver ndert werden was sich auf den Inhalt auswirken kann aber nicht soll Ver ndern hei t inhaltlich ver ndern suchen ausw hlen verkn pfen sortie ren pr fen sperren oder l schen T tigkeiten die mit Listen Karteien Rechen schemata zu tun haben oder die mit geringen Abweichungen h ufig wiederholt werden sind mit Computerhilfe schneller und sicherer zu bew ltigen Computer finden sich nicht nur in Form grauer K sten auf oder neben Schreibtischen sondern auch versteckt in Fotoapparaten Waschmaschinen Heizungsregelungen Autos und Telefonen Das Wort Computer stammt aus dem Englischen wo es vor hundert Jahren eine Person bezeichnete die berufsm ig rechnete zu deutsch ein Rechenknecht Heute versteht man nur noch die Maschinen darunter Das englische Wort wieder um geht auf lateinisch computare zur ck was berechnen veranschlagen erw gen berlegen bedeutet Die Franzosen sprechen vom ordinateur dessen lateinischer Schon geht es los mit den Fu noten Bei genauem Hinsehen gibt es Unterschiede zwi schen Information Nachricht und Daten siehe Abschnitt Exkurs ber Informationen 2 1 ber den Umgang mit Computern Ursprung ordo Reihe Or
72. Run Length Encoded Version A Wavefront Run Length Encoded Version B Rich Text Format Assembler Quelle Space Delimited File Self Extracting Archive Macintosh SGI Image File Format Bourne Shell Script Bourne Shell Archiv Shell Archiv Macintosh StuffIt Archive 160 E File Kennungen ste a Program Source Code stf Structured File sys b Treiber unter MS DOS tar b tar 1 Archiv tdf Trace Typeface Definition File tex a TeX oder LaTeX Quelltext tfm b TeX Font Metrics tga b TARGA Bildfile tgz b tar gz tar Archiv GNUzip komprimiert tif b Tag Image File Format Scanner tmp tempor res File toc a Hilfsfile von TeX table of contents tpu b Turbo Pascal Unit ttf b TrueType Font txt a Textfile lesbar tz b tar Z tar Archiv compress 1 komprimiert uu a uuencoded File ASCII aber nicht lesbar uud a uuencoded File ASCII aber nicht lesbar uue a uuencoded File ASCII aber nicht lesbar voc b Creative Labs Sound File wav b Microsoft Windows Sound File RIFF web a WEB Quelle wfx b Fax File Winfax wmf b Windows Metafile Format wpg a WordPerfect Graphics Metafile wri a Windows Textfile wps a MS Works Textfile x b SuperDisk self extracting archive xwd b X Window Dump y a yacc 1 Quelle Z b mit compress 1 UNIX komprimiert Z b mit GNU gzip komprimiert veraltet besser gz zip b mit pkzip komprimiert ZOO b mit zoo komprimiert Postscript Files bestehen zwar aus ASCII Zeichen und lassen sich auch
73. Signal Quality Signal Quality Test heartbeat Ethernet Structured Query Language Source Quench Introduced Delay Signalling Rate Selector Shift Register Source Routing Shadow Static Random Access Memory Source Route Bridging IBM System Resource Controller Secondary Receive Data Screen Reader System Selective Reject Structural Return Loss Send Routing Message Split Channel Reservation Multiple Access Sharable and Read Only memory Server Requester Programming Interface Service Request Secondary Receiver Ready Secondary Request to Send Source Routing Transparent Split Reservation Upon Collision Sampled Servo Select Standby Single Sided Single Shift Stack Segment Serial Storage Architecture Schw bischer Standard Benchmark Single Sideband Suite Synthetique des Benchmarks de VPAFFU Serial Shipping Container Code System Services Control Point Secondary Send Data Solid State Disk Synchronous Serial Data Adapter Stack Segment Descriptor Cache Selective Sequence Electronic Calculator IBM System Support Gate Array Small Scale Integration Single RAS SIMM Secure Socket Layer Spread Spectrum Multiple Access System Security Officer SSP SST SSTP SSTV SSU ST STA STACK ST ST ST ST ST ST ST ST ST ST ST ST ST ST ST ST ST SU SU SU SU SU SU SU SU SV SV SV SV C D DA DM E EP L M N ONE P R RT S T U X MR RAnet TP UG C D GA
74. Song Hey Hier kommt Alex Vorhang auf Es sind aber nur wenige H rer dabei Eine Siemens Fujitsu VP 400 ersetzt die Cyber 205 Das Campusnetz KARLA wird durch das Glasfasernetz KLICK ausgetauscht Das BELWUE Netz nimmt den Betrieb auf Gr ndung der Open Software Foundation und der UNIX International Inc MS DOS 4 0 f r PCs Im Rechenzentrum Karlsruhe l st die IBM 3090 die Siemens 7881 ab ISDN in Deutschland eingef hrt Zunehmende Vernetzung Anschlu an weltweite Netze Computer Kommunikation mittels E Mail Btx und Fax vom Arbeitsplatz aus Optische Speichermedien CD ROM WORM UNIX System V Version 4 Die mittlere Computerdichte in technisch orientierten Instituten und Familien erreicht 1 pro Mitglied Das UNIX System OSF 1 mit dem Mach Kernel der Carnegie Mellon Universitat kommt heraus Anfange von LINUX einem freien UNIX aus Finnland Der Vektorrechner im Rechenzentrum wird erweitert auf den Typ 600 20 MS DOS 5 0 fiir PCs IBM Apple und Motorola kooperieren mit dem Ziel einen Power PC zu entwickeln Die Universitat Karlsruhe nimmt den massiv parallelen Computer MasPar 1216A mit 16000 Prozessoren in Betrieb Novell bernimmt von AT amp T die UNIX Aktivitaten USL MS DOS Version 6 0 Microsoft k ndigt Windows NT an DEC stellt PC mit Alpha Prozessor vor 150 MHz 14 000 DM UNIX Workstations konkurrieren preislich mit hochwertigen PCs Novell tritt das Warenzeichen UNIX an die X Open Gruppe ab 281 1994
75. Spooling Priority Host Bus Adaptor Home Bus System Heartbeat Collision Avoidance Human Computer Interaction Home Communication Terminal Hard disk Heavy Duty High Density Head Disk Assembly HoneyDanBer P Honeyman D A Norwitz B E Redman uucp High Density Bipolar Code of Order 3 HDCD HDF HDI HDLC HDPLD HDR HDSC HDSL HDTV HDW HDX HEC HECTOR HEMP HEMS HEMT HERF hex HF HfD HFrG HFS HFT HGA HHI HHOK HHOS HIFD HIFI HIL HIPER HIPPI HL HLCO HLL HLLAPI HLQ HLR HLRZ HLS HLT HMA HMD HMOS H MUX HOH HOPTE HP HPCC 197 High Definition Compatible Digital High Density CD Hierarchical Data Format HDSL Dual Framer Head to Disk Interference High Level Data Link Control Protocol High Density Programmable Logic Device Header HDSL Dual Regenerator High Density Signal Carrier High Bit Rate Speed Digital Subscriber Line Link High Definition Television Hardware Half Duplex Header Error Control Check Heterogeneous Computer Together High level Entity Management Protocol Internet High level Entity Management System Internet High Electron Mobility Transistor High Energy Radio Frequency hexadezimal Hochfrequenz High Functionality Hauptanschlu f r Direktwahl Direktruf Gesetz ber den Betrieb von Hochfrequenzger ten Hierarchical File System High function Terminal Hercules Graphics Adapter High Gain Antenna Heinrich Hertz Institut Berlin Ha Ha Only Kidding Slang
76. Storage Management Services Short Message Service Center Surface Mounted Technology Station Mangement Simple Mail Transfer Protocol Internet a 255 Z gt ADS AP API CP Z Z n nnn nn mn mn nn Z Z Z Z MP MPV2 OBOL R RM RME S UUN nn mn nn Z Z Z Z Z Z Un Z SO SOA SOB SOC SODIMM SOE SOGT SOH SOHO SOL SOM SONET SONETT SOP SOS SOUP SP SPA SPAG SPARC SPC SPDL SPDT SPE SPEC SPF SPG SPI 231 System Management Utility Sharing with Maximum Queues Signal Noise ratio Sequence Number Systems Network Architecture IBM SNA Distribution Services Streamlined Network Accelerated Protocol Subnetwork Access Protocol Soft Switch Network Application Programming Interface System Services Control Point Session Sequence Number Field Siemens Nixdorf Informationssysteme AG Paderborn Subscriber Network Interface Simple Network Management Protocol Internet Simple Network Management Protocol Version 2 Internet String Oriented Symbolic Language Signal to Noise Ratio Set Normal Response Mode Set Normal Response Mode Extended Session Network Services Shift Out Start Of Authority Internet Start Of Block System On a Chip Small Outline DIMM Standard Operating Environment Senior Officials Group on Telecommunications Start of Header Heading Section Overhead Small Office Home Office Siemens Optical Link Simulation Oriented Language S
77. Variable vor e es wird Gleitkomma Arithmetik verwendet aber keine Komplex Arithmetik was die bertragung nach C erleichtert e an Funktionen treten abs sqrt und cmplx auf e an Kontrollstrukturen werden if then else endif und goto ver wendet Wir werden etwas Arbeit mit den komplexen Operanden haben Die Sprung anweisung goto gibt es zwar in C aber wir bleiben standhaft und vermeiden sie Alles brige sieht einfach aus Als Ersatz fiir den komplexen Datentyp bietet sich ein Array of float oder double an Eine Struktur w re auch m glich Falls komplexe Arithmetik vorkame m ten wir uns die Operationen selbst schaffen Hier werden aber nur die komple xen Zahlen ausgegeben was harmlos ist Das goto wird hier nur gebraucht um nach der Ausgabe der L sung ans Programmende zu springen Wir werden in C daf r eine Funktion done aufrufen Das nach C bertragene Programm Loesung der quadratischen Gleichung a x x btx c 0 reelle Koeffizienten Loesungen auch komplex zu compilieren mit cc quad c Im define EPS 1 0e 30 Typ double include lt stdio h gt wg puts printf scanf 2 26 Portieren von Programmen 125 include lt math h gt wg fabs sqrt int done int main double a b c d h s x1 x2 double z 2 puts Loesung von a x x b x c 0 puts Bitte a b und c eingeben scanf 1f Mir Alf ka amp b amp c 1 Fall a nahe Null linea
78. Verzicht auf besondere Tricks einer Pro grammiersprache die zwar erlaubt aber nicht allgemein bekannt sind Gerade C erlaubt viel was nicht zur bersichtlichkeit beitr gt nderungen zu erleichtern kann auch hei en nderungen von vornherein zu vermeiden indem man die Programmteile so allgemein wie mit dem Aufwand vereinbar gestaltet Effizienz ist immer gefragt Fr her bedeutete das vor allem sparsamer Um gang mit dem Arbeitsspeicher Das ist heute immer noch eine Tugend tritt aber hinter den vorgenannten Kriterien zur ck Die moderne Software scheint zur Unterst tzung der Chiphersteller geschrieben zu werden An zweiter Stelle kam Ausf hrungsgeschwindigkeit trotz aller Geschwindigkeitssteigerungen der Hard ware ebenfalls noch eine Tugend wenn sie mit Einfachheit und bersichtlichkeit einhergeht Mit anderen Worten erst ein bersichtliches Programm schreiben und dann nachdenken ob man Speicher und Zeit einsparen kann Ein Programm soll benutzerfreundlich sein Der Benutzer am Terminal will bei allt glichen Aufgaben ohne das Studium pfundschwerer Handb cher auskom men und bei den h ufigsten Fehlern Hilfe vom Bildschirm erhalten Er will an dererseits auch nicht mit berfl ssigen Informationen und nutzlosen Spielereien bel stigt werden Der Schwerpunkt der Programmentwicklung liegt heute weniger bei den Algorithmen sondern bei der Interaktion mit dem Benutzer F r einen Programmierer ist es nicht immer einfach sich in d
79. Video Disk Compressed Volume File Microsoft Color Video Graphics Array CodeView for Windows Microsoft Continuous Wave Control Word Centrum voor Wiskunde en Informatica Amsterdam Campus Wide Information System Internet Common X Interface Cylinder cyan yellow magenta black Farbmodell Digital Analog Dye Diffusion Thermal Transfer Drucker Destination Address Data Access Arrangement Decimal Adjust for Addition Digest Access Authentication Digital Audio Broadcasting Daten Autobahn Digital Analog Converter Distributed Academic Computing Dual Attachment Concentrator Design Automation Conference Data Acquisition and Control DACS DACT DAF DAG DAGM DAKfCBNF DAL DAM DAN DANTE DaNzKo DAP DAR DARC DARI DARPA DAS DASAT DASD DASP DASS DAT DATACOM DATC Datel Datev Datex L Datex J Datex M Datex P DAU DAV DAVIC DAVID DAWG dB DB DBA DBC DBCS DBM DBMS DBP DBS DC DCA 179 Digital Access and Cross connect System Data Compression Technology Destination Address Field Direktrufnetzabschlu ger t Deutsche Arbeitsgemeinschaft f r Mustererkennung Deutscher Arbeitskreis f r CB und Notfunk Disk Access Logout Data Access Language Apple Direct Access Method Data Acquisition and Monitoring Domestic Desk Area Network Delivery of Advanced Network Technologies in Europe Datennetzkoordinator Data Access Protocol DEC Division Advisory Panel NSF Document Application Pro
80. Weltweit 10 Mio installierte UNIX Systeme prognostiziert Das Internet umfa t etwa 2 Mio Knoten und 20 Mio Benutzer Wie man sieht mu ten viele Dinge erfunden und entwickelt werden damit heute die Kinder MUDs oder Nethack spielen k nnen Und ber allem mein Sohn la dich warnen denn des vielen B chermachens ist kein Ende und viel Studieren macht den Leib m de Prediger 12 12 282 J Zeittafel Sach und Namensverzeichnis Einige Begriffe sind unter ihren Oberbegriffen zu finden beispielsweise Ger tefile unter File oder Bourne Shell unter Shell Verweise s zeigen entweder auf ein von uns bevorzugtes Synonym auf einen Oberbegriff oder auf die deutsche bersetzung eines englischen Fachwortes lib libe a 83 usr lib libcurses a 87 define 88 155 ifdef 91 ifndef 91 include 89 155 59 Abh ngigkeit 14 Abk rzung 161 Adress bergabe 63 Akronym s Abk rzung ALGOL 18 121 Algorithmus 129 Allgemeinheit 129 Anmeldung 9 Anonymous FTP 7 ANSLC 19 Anweisung C A 52 92 Compiler A 69 define A 88 include A 89 leere A C 52 Pr prozessor A 88 Shell A s Kommando Anwendungsprogramm 5 6 Application s Anwendungsprogramm ar 1 87 Archiv 82 argc 73 Argument Kommando 10 Argumentvektor 73 Argumentzahler 73 argv 73 Array 35 A of characters 35 A von Funktionen 62 Index 35 283 linearisieren 35 Name 35 Typ C s Typ Zeiger s Index ASCII German ASCII 139 Steuerzeich
81. der Aufgabe Zu diesem Schritt kehrt man im Verlauf des Programmierens immer wieder zur ck um zu erg nzen oder zu berichtigen Es ist realistisch f r die Aufgabenanalyse rund ein Drittel des gesamten Zeitaufwandes anzusetzen Fragen in diesem Zusammenhang sind e Welche Ergebnisse soll das Programm liefern e Welche Eingaben sind erforderlich e Welche Ausnahmef lle Fehler sind zu ber cksichtigen e In welcher Form sollen die Ergebnisse ausgegeben werden e Wer soll mit dem Programm umgehen e Auf welchen Computern soll das Programm laufen Anf nger sehen die Schwierigkeiten des Programmierens in der Umsetzung des L sungsweges in eine Programmiersprache in der Codierung Nach einigem ben stellt sich dann heraus da die dauerhaften Schwierigkeiten in der Formulierung und Analyse der Aufgabe allenfalls noch im Suchen nach L sungen liegen w hrend die Codierung gr tenteils Routine wird Nach unserer Erfahrung sollte man eine Aufgabe zun chst einmal so formulie ren wie sie den augenblicklichen Bed rfnissen entspricht Dann sollte man sich mit viel Phantasie ausmalen was alles noch dazu kommen k nnte wenn Geld Zeit und Verstand keine Schranken setzen w rden have a dream Drittens streiche man von diesem Traum gnadenlos alles weg was nicht unbedingt erforderlich und absolut minimal notwendig ist ohne das vielleicht nur asymptotisch erreichbare Ziel aus den Augen zu verlieren So kommt man mit beschr nkten
82. editieren sofern man die Sprache kennt d rfen aber nur im bin ren Modus von FTP bert ragen werden um keine Zeichen zu ver ndern F Abk rzungen Gehen wir von 30 Zeichen aus aus denen Abk rzungen gebildet werden und nehmen wir eine gr te L nge von 5 Zeichen an so lassen sich 25 137 930 ver schiedene Abk rzungen bilden Kombinationen mit Wiederholung und Ber ck sichtigung der Reihenfolge Hier folgt eine bescheidene Auswahl von etwa 3000 aus dem Leben gegriffenen Abk rzungen aus den Bereichen Informatik und Te lekommunikation Zwischen Gro und Kleinschreibung wird nicht immer un terschieden Einige Abk rzungen sind gesch tzte Namen diese sind nicht ge kennzeichnet Die Liste beschreibt nur den Gebrauch sie legt nicht eine be stimmte Definition fest Eine andere Sammlung findet sich im Netz unter http www chemie fu berlin de cgi bin acronym Auch in der Newsgruppe de etc lists findet man gelegentlich eine Liste 7E1 Zeichenformat 7 Bits Zeichen Parity even 1 Stopbit 8N1 Zeichenformat 8 Bits Zeichen no parity bit 1 Stopbit AA Auto Answer AAAI American Association of Artificial Intelligence AAE Allgemeine Anschalt Erlaubnis AAL ATM Adaptation Layer AAMOF As A Matter Of Fact Slang AAP Applications Access Point Association of American Publishers AAPI Audio Applications Programming Interface AARP AppleTalk Address Resolution Protocol AASP ASCII Asynchronous Support Package AAT Average Access Tim
83. einem solchen Prototyp sind nur die benutzernahen Funktionen halbwegs ausgebaut die datennahen Funktionen schreiben vorl ufig nur ihren Namen auf den Bildschirm Von einem menugesteuerten Vokabeltrainer beispielsweise schreibt man zun chst das Menusystem und l t die Funktionen die die eigentliche Ar beit erledigen leer oder beschr nkt sie auf die Ausgabe ihres Namens Damit liegt 26 2 Programmieren in C die Programmstruktur das Knochenger st fest Gleichzeitig macht man sich Gedanken ber die Datenstruktur Steht der Prototyp nimmt man den Daten austausch zwischen den Funktionen hinzu Parameter bergabe und r ckgabe immer noch mit Bildschirmmeldungen anstelle der eigentlichen Arbeit Funktio niert auch das wie gew nscht f llt man eine Funktion nach der anderen mit Code Diese Vorgehensweise lenkt die Entwicklung zu einem m glichst fr hen Zeit punkt in die gew nschte Richtung Bei einem kommerziellen Auftrag bezieht sie den Auftraggeber in die Entwicklung ein und f rdert das gegenseitige Verst ndnis aber auch bei privaten Projekten verhindert sie da man viel Code f r dev null schreibt Das Prototyping ist sicher nicht f r alle Programmieraufgaben das beste Modell es gibt auch noch andere Modelle aber f r dialogintensive kleine und mittlerer Anwendungen recht brauchbar und in C leicht zu verwirklichen 2 9 Diagramme Programme werden schnell un bersichtlich Man hat daher schon fr h versucht mit
84. einzulesende Variable als zweites Argument den gew nschten Typ in Form eines Strings Auf eine wechseln de Anzahl von Argumenten verzichten wir hier Falls wir nicht f r jeden einzulesenden Typ eine eigene Funktion schreiben wollen mu xread einen Pointer auf einen beliebigen Typ sprich void ber nehmen Erst nach Auswertung des zweiten Argumentes wei xread auf was f r einen Typ der Pointer zeigt Das Programm l uft in seiner obigen Fassung einwandfrei der Syntax Pr fer lint 1 hat aber einige Punkte anzumerken 2 21 10 4 Arrays prim c Das folgende Programm berechnet die Primzahlen von 2 angefangen bis zu ei ner oberen Grenze die beim Aufruf eingegeben werden kann Ihr Maximalwert h ngt verst ndlicherweise vom System ab Aus Geschwindigkeitsgr nden werden reichlich Pointer verwendet Urspr nglich wurden die Elemente der Arrays ber In dizes angesprochen was den Gewohnheiten entgegenkommt Bei der Optimierung wurden alle Indizes durch Pointer ersetzt wie im Abschnitt 2 21 4 Optimierung erl utert 104 2 Programmieren in C Programm zur Berechnung von Primzahlen 03 10 90 Compileraufruf MS DOS QuickC qcl prim c Compileraufruf unter UNIX cc o prim prim c DUNIX Die groesste zu untersuchende Zahl wird unter MS DOS durch die Speichersegmentierung bestimmt Kein Daten segment p darf groesser als 64 KB sein Damit liegt MAX etwas ueber 150000 Unter UNIX begrenzt der verfuegbare Sp
85. erledigen k nnte Groesster gemeinsamer Teiler Euklid rekursiv 09 03 90 Compileraufruf cc o ggtr ggtr c include lt stdio h gt int ggt int main int argc char argv d int x y sscanf argv 1 4d amp x sscanf argvl2 Ad amp y printf Der GGT von Ad und Ad ist Yd n x y ggt x y return 0 D Funktion ggt int ggt int a int b if a b return a else if a gt b return ggt a b b else return ggt a b a Programm 2 34 C Programm Gr ter gemeinsamer Teiler ggT nach Euklid rekursiv Im folgenden Programm ist au er der Rekursivit t die Verwendung der Be dingten Bewertung interessant die den Code verk rzt Rekursive Berechnung von Fakultaeten include lt stdio h gt int main int n puts nWert eingeben Ende mit CTRL D while scanf d amp n EOF printf n d Fakultaet ist d n n n fak n 2 18 Funktionen EN return 0 D funktion fak int fak int n return n lt 1 1 n fak n 1 Programm 2 35 C Programm zur rekursiven Berechnung der Fakult t Weitere rekursiv l sbare Aufgaben sind die T rme von Hanoi und Quicksort Rekursive Probleme lassen sich auch iterativ l sen Das kann sogar schneller gehen aber die Eleganz bleibt auf der Strecke Da in C auch das Hauptprogramm main eine Funktion ist die auf gleicher Stufe mit allen anderen Funktionen steht kann es sich selb
86. float multipl int main float a b Z z multipl a b Funktionsaufruf float multipl float x float y F definition return x y Programm 2 12 C Programm mit Funktionsprototyp Durch die Angabe der Typen der Funktion und ihrer Argumente zu Beginn des Programms herrscht sofort Klarheit Die Namen der Parameter sind unerheb lich Anzahl Typ und Reihenfolge sind wesentlich Noch nicht alle Compiler un terst tzen die Angabe der Argumenttypen Auch den Standardtyp int sollte man deklarieren um zu verdeutlichen da man ihn nicht vergessen hat nderungen werden erleichtert 2 18 2 Pointer auf Funktionen Der Name einer Funktion ohne die beiden runden Klammern ist der Pointer auf ihren Eingang entry point Damit kann ein Funktionsname berall verwendet werden wo Pointer zul ssig sind Insbesondere kann er als Argument einer wei teren Funktion dienen In funktionalen Programmiersprachen ist die M glichkeit Funktionen als Argumente h herer Funktionen zu verwenden noch weiter ent wickelt Arrays von Funktionen sind nicht zul ssig wohl aber Arrays von Pointern auf Funktionen Makros define sind keine Funktionen infolgedessen gibt es auch keine Pointer auf Makros Zu Makros siehe Abschnitt 2 20 Pr prozessor 2 18 3 Parameteriibergabe Um einer Funktion die Argumente oder Parameter zu bermitteln gibt es mehrere Wege Grunds tzlich m ssen in der Funktion die entsprech
87. gleich und belegen ein Maschinenwort auf unserer Anlage also 4 Bytes w hrend long 8 Bytes verwendet F r ganze Zahlen sind die Addition die Subtraktion die Multiplikation die Modulo Operation Di visionsrest und die Division unter Vernachl ssigung des Divisionsrestes definiert ferner Vergleiche mittels gr er gleich kleiner Gleitkommazahlen Gleitkommazahlen auch als Reals oder Floating Point Numbers bezeichnet werden durch eine Mantisse und einen Exponenten dar gestellt Der Exponent versteht sich nach au en zur Basis 10 intern wird die Basis 2 verwendet Die Mantisse ist auf eine Stelle ungleich 0 vor dem Dezimalkomma oder punkt normiert Es gibt e float Gleitkommazahl einfacher Genauigkeit e double Gleitkommazahl doppelter Genauigkeit e long double Gleitkommazahl noch h herer Genauigkeit extended precisi on Gleitkommazahlen haben immer ein Vorzeichen Man beachte da die Typen sich nicht nur in ihrem Wertebereich sondern auch in ihrer Genauigkeit An zahl der signifikanten Stellen unterscheiden anders als bei Ganzzahlen Der Typ long double ist selten F r Gleitkommazahlen sind die Addition die Subtraktion die Multiplikation die Division sowie Vergleiche zul ssig Die Abfrage auf Gleichheit ist jedoch hei kel da aufgrund von Rundungsfehlern zwei Gleitkommazahlen selten gleich sind Wenn m glich mache man um Gleitkommazahlen einen gro en Bogen Die Opera tionen dauern l nger als die entspr
88. gt _ent lt 07 _flsbuf unsigned char x p int p gt _ptr unsigned char x define getchar getc stdin define putchar x putc x stdout define clearerr p void p gt _flag amp _IOERR _IOEOF define feof p p gt _flag amp _IOEOF define ferror p p gt _flag amp _IOERR define fileno p p gt _file else void clearerr endif not lint extern FILE _iobL_NFILE extern FILE fopen fdopen freopen popen tmpfile extern long ftell extern void rewind setbuf extern char ctermid cuserid fgets gets tmpnam extern unsigned char _bufendtabl endif NFILE Programm 2 39 Include File usr include stdio h gek rzt 2 20 3 Bedingte Compilation ifdef 2 20 4 Memo Pr prozessor e Nichts 2 20 5 Ubung Praprozessor 2 21 C Programme 2 21 1 Name Obwohl es aus den bisherigen Beispielen klar geworden sein m te weisen wir nochmals darauf hin Jedes selbst ndige C Programm hei t im Quellcode main ein anderer Programmname kommt au er im Kommentar nirgends im Quelltext vor in FORTRAN oder PASCAL sieht die Sache anders aus Der Name des Files in dem der compilierte Code steht ist der Name unter dem das Programm aufgerufen wird Der Name des Files in dem der Quellcode zu finden ist hat die Kennung c die meisten Programmierwerkzeuge erwarten das Die UNIX Compiler schreiben standardm ig das compilierte
89. in ALGOL 60 vorgekommen sein Bei NIKLAUS WIRTH Systematisches Programmieren findet sich in dem Kapitel ber Prozedur Parameter ebenfalls eine Beschreibung dieser drei M glichkeiten samt einem kleinen Beispiel Wie die Parameter bergabe in C FORTRAN und PASCAL aussieht ent nimmt man am besten den Beispielen Die Parameter sind vom Typ integer um die Beispiele einfach zu halten Ferner ist noch ein Shellscript angegeben das ei ne C Funktion aufruft die in diesem Fall ein selbst ndiges Programm Funktion main sein mu Der von einer Funktion zur ckgegebene Wert R ckgabewert kann nur ein einfacher Typ oder ein Pointer sein Zusammengesetzte Typen wie Arrays Strings oder Strukturen k nnen nur durch Pointer zur ckgegeben werden Es ist zul ssig keinen Wert zur ckzugeben Dann ist die Funktion vom Typ void und macht sich allein durch ihre Nebeneffekte bemerkbar F r die Systemaufrufe und Subroutinen Standardfunktionen in UNIX ist in dem Referenz Handbuch in den Sektionen 2 und 3 angegeben von welchem Typ die Argumente und der Funktionswert sind Da diese Funktionen allesamt C Funktionen sind lassen sie sich ohne Probleme in C Programme einbinden Bei anderen Sprachen ist es denkbar da kein einem C Typ entsprechender Varia blentyp verfiigbar ist Auch bei Strings gibt es wegen der unterschiedlichen Spei cherung in den einzelnen Sprachen Reibereien Falls die Ubergabemechanismen unvertr glich sind mu man die C Funkt
90. in control o 16 dle Data link escape control p 17 del Device control 1 xon control q 18 dc Device control 2 tape control r 19 dc3 Device control 3 xoff control s 20 dc4 Device control 4 tape control t 21 nak Negative acknowledge control u 22 syn Synchronous idle control v 23 etb End of transmission block control w 24 can Cancel control x 25 em End of medium control y 26 sub Substitute control z 27 esc Escape control ESC 28 fs File separator control 29 gs Group separator control 30 rs Record separator control 31 us Unit separator control _ 127 del Delete DEL RUBOUT B 4 Latin 1 ISO 8859 1 141 B 4 Latin 1 ISO 8859 1 Die erste H lfte 0 127 stimmt mit US ASCII berein die zweite mit keinem der vorgenannten Zeichens tze Zu jedem Zeichen geh rt eine standardisierte verbale Bezeichnung Einige Zeichen wie das isl ndische Thorn oder das Cent Zeichen konnten mit LaTeX nicht dargestellt werden dezimal oktal Zeichen Bezeichnung 000 000 nu Null nul 001 001 sh Start of heading soh 002 002 Sx Start of text stx 003 003 ex End of text etx 004 004 et End of transmission eot 005 005 eq Enquiry enq 006 006 ak Acknowledge ack 007 007 bl Bell bel 008 010 bs Backspace bs 009 011 ht Character tabulation ht 010 012 If Line feed If 011 013 vt Line tabulation vt 012 014 ff Form feed ff 013 015 er Carriage return cr 014 016 so Shift out so 015 017 si Shift in si 016 020 dl Datalink escape
91. language beherrschen Die bekanntesten Sprachen sind BASIC COBOL FORTRAN PASCAL und C Es gibt mehr als tausend Das n tige Wissen kann man auf mehreren Wegen erwerben und auf dem laufenden halten Kurse Vorlesungen Lehrb cher Skripten Zeitschriften Electronic Information e Lernprogramme e Videobander Gute Kurse oder Vorlesungen verbinden Theorie und Praxis das hei t Unter richt und Ubungen am Computer Zudem kann man Fragen stellen und bekommt Zum Vergleich es gibt etwa 6000 lebende nat rliche Sprachen Die Bibel ist in etwa 2000 Sprachen bersetzt 1 3 Was mu man wissen 7 Antworten Nachteilig ist der feste Zeitplan Die schwierigen Fragen tauchen erst nach Kursende auf Viele Kurse sind auch teuer Bei den B chern mu man zwischen Lehrb chern Einf hrungen Tutorials Guides und Nachschlagewerken Referenz Handb cher Reference Manuals unterscheiden Lehrb cher f hren durch das Wissensgebiet treffen eine Auswahl werten oder diskutieren und verzichten auf Einzelheiten Nachschlagewerke sind nach Stichw rtern geordnet beschreiben alle Einzelheiten und helfen bei allge meinen Schwierigkeiten gar nicht Will man wissen welche Werkzeuge UNIX zur Textverarbeitung bereit h lt braucht man ein Lehrbuch Will man hingegen wis sen wie man den Editor vi 1 veranla t nach einer Zeichenfolge zu suchen so schl gt man im Referenz Handbuch nach Auf UNIX Systemen ist blicherweise das UNIX Referenz
92. n n ende ende g Algorithmus time amp zeit1 p 2 p 1 3 die ersten Primzahlen ende 3 while z lt ende z 4 ttest z 2 ttest Weil z pro Schleifendurchlauf um 6 erhoeht wird kann eine Primzahl zuviel berechnet werden gegebenenfalls loeschen if p n gt ende ende 3 n 1 Berechnung der Haeufigkeit in den Klassen g ende 10 h 1 h 1 0 j 1 kK 0 for i 0 i lt n i if p i gt g h j g h 1 j i amp k k i jtt g ende 10 h j g hl j ik 106 2 Programmieren in C Berechnung der Differenz benachbarter Primzahlen for i 1 i lt n i dp p i pti 1 d dp if dp gt dmax dmax dp di p i d2 p i 1 time amp zeit2 achtspaltige Ausgabe auf stdout printf tPrimzahlen bis lu n n ende j n r n 1 hh 8 q P for i 0 i lt j i 8 printf t 61u t 6lu t 6lu t 46lu t 46lu t46lu t 6lu t 46lu n zg q 1 qt2 qt3 qt4 qt5 q 6 q 7 q 8 if r 0 printf t for i 0 i lt r i letzte Zeile printf 6lu t q i puts printf n tGesamtzahl u n n n 1 for 1 1 i lt 10 i printf tZwischen 6lu und 6lu gibt es jeu Primzahlen n ht ti 1 h i ht 1
93. oO w wilt A B Zeichens tze Line tabulation set vts Partial line forward pld Partial line backward plu Reverse line feed ri Single shift two ss2 Single shift three ss3 Device control string dcs Private use one pul Private use two pu2 Set transmit state sts Cancel character cch Message waiting mw Start of guarded area spa End of guarded area epa Start of string sos Single graphic character introducer sgci Single character introducer sci Control sequence introducer csi String terminator st Operating system command osc Privacy message 9pm Application program command apc No break space Inverted exclamation mark Cent sign Pound sign Currency sign Yen sign Broken bar Section sign Diaresis Copyright sign Feminine ordinal indicator Left pointing double angle quotation mark Not sign Soft hyphen Registered sign Overline Degree sign Plus minus sign Superscript two Superscript three Acute accent Micro sign Pilcrow sign Middle dot Cedilla Superscript one Masculine ordinal indicator B 4 Latin 1 ISO 8859 1 187 273 gt 188 274 1 4 189 275 1 2 190 276 3 4 191 277 H 192 300 193 301 194 302 A 195 303 A 196 304 197 305 198 306 199 307 200 310 201 311 202 312 E 203 313 E 204 314 I 205 315 206 316 I 207 317 I 208 320 209 321 N 210 322 211 323 212 324 213 325 O 214 326 215 327
94. technisch wie theoretisch bedeutsame Forderung ist die nach einem guten zweckm igen Algorithmus oder gar die nach dem besten Denken Sie an die vielen Sortierverfahren es gibt kein bestes f r alle F lle Es gibt sogar ziemlich leicht verst ndliche Aufgaben die nicht mittels eines Algorithmus zu l sen sind Falls Sie Bedarf an solchen N ssen haben suchen Sie unter dem Stichwort Eintscheidbarkeit in Werken zur Theoretischen Informatik 2 30 Exkurs ber Zahlen 2 31 Exkurs ber Aussagenlogik In Abschnitt 2 16 4 Logische Operationen haben wir logische Operationen kennen gelernt Da sie vielleicht nicht so gel ufig sind wie ar thmetische Operationen hier eine kurze bersicht aber die Daten fehlen um den ganzen Nonsens richtig zu berblicken Benn Drei alte M nner A Zahlensysteme Au er dem Dezimalsystem sind das Dual das Oktal und das Hexade zimalsystem gebr uchlich Ferner spielt das Bin r codierte Dezimalsystem BCD bei manchen Anwendungen eine Rolle Bei diesem sind die einzelnen De zimalstellen f r sich dual dargestellt Die folgende Tabelle enth lt die Werte von 0 bis dezimal 127 Bequemlichkeitshalber sind auch die zugeordneten ASCII Zeichen aufgef hrt dezimal dual oktal hex BCD ASCII 0 0 0 0 0 nul 1 1 1 1 1 soh 2 10 2 2 10 stx 3 11 3 3 11 etx 4 100 4 4 100 eot 5 101 5 5 101 enq 6 110 6 6 110 ack 7 111 7 7 111 bel 8 1000 10 8 1000 bs 9 1001 11 9 1001 ht 10 1010 12 a 1 0 If 11 10
95. von vier Byte L nge verlangt Dann deklariert man typedef int INT4 Ganzzahl von 4 Bytes INT4 i j k und ndert bei Bedarf nur die typedef Zeile Zweckm ig packt man die Typen definition in ein privates include File das man f r mehrere Programme verwenden kann 2 15 Operanden 43 2 15 3 Speicherklassen In C gibt es vier Speicherklassen storage classes auto e extern e register e static Die Speicherklasse geht dem Typ in der Deklaration voraus static int x Die Klasse auto ist die Defaultklasse f r lokale Variable und braucht nicht eigens angegeben zu werden Variablen dieser Klasse leben nur innerhalb des Blockes in dem sie deklariert wurden und sterben beim Verlassen des Blockes Eine globale Variable darf in einem Programm nur einmal deklariert werden Erstreckt sich ein Programm ber mehrere getrennt zu compilierende Files so darf sie nur in einem der Files deklariert werden Da aber der Compiler auch in den brigen Files den Typ der Variablen kennen mu wird die Variable hier als extern deklariert Funktionen geh ren stets der Speicherklasse extern an register Variable werden nach M glichkeit in Registern nahe dem Prozessor gehalten und sind damit schnell verf gbar Ansonsten verhalten sie sich wie auto Variable Sie m ssen vom Typ int oder char sein Eine typische Anwendung sind Schleifenz hler Optimierende Compiler ordnen von sich aus einige Variable dieser Speicherklasse zu Auf register V
96. weichungen ergeben Dem Text liegen eigene Erfahrungen aus vier Jahrzehnten Umgang mit elek tronischen Rechenanlagen und aus Kursen ber BASIC FORTRAN C und UN IX zugrunde Wir haben auch fremde Hilfe beansprucht und danken Kollegen in den Universit ten Karlsruhe und Lyon sowie Mitarbeitern der Firmen IBM und Hewlett Packard f r schriftliche Unterlagen und m ndliche Hilfe zwei Nachwuchs Informatikern f r ihre bohrenden Fragen sowie zahlreichen Studenten f r Anregun gen und Diskussionen DR IUR ELKE L BARNSTEDT Universit t Karlsruhe hat freundlicherweise das Kapitel Computerrecht beigesteuert Dar ber hinaus haben wir nach Kr ften das Internet angezapft und viele dort umlaufende Guides Primers Tutorials und Sammlungen von Frequently Asked Questions verwendet Dem Springer Verlag danken wir daf r da er uns geholfen hat aus einem locke ren Skriptum ein ernsthaftes Buch zu machen ohne unsere dichterische Freiheit zu beschneiden So eine Arbeit wird eigentlich nie fertig man mu sie f r fertig erkl ren wenn man nach Zeit und Umst nden das M glichste getan hat um es mit JOHANN WOLFGANG VON GOETHE zu sagen Italienische Reise Caserta den 16 M rz 1787 Wir erkl ren unsere Arbeit immer noch f r unfertig und bitten die M ngel zu entschuldigen Weingarten Baden 1 November 1995 Wulf Alex Inhaltsverzeichnis 1 ber den Umgang mit Computern 1 1 1 2 1 3 1 4 1 5 1 6 Was macht ein Computer Wie l u
97. wie 2 16 Operationen 49 if a lt 0 Z a else Z a Er weist der Variablen z den Betrag von a zu Rechts des Gleichheitszeichens stehen drei Ausdr cke die auch zusammengesetzt sein d rfen Die ganze Bedingte Bewertung ist selbst wieder ein Ausdruck wie eine Zuweisung und kann berall stehen wo ein Wert verlangt wird Die Bedingte Bewertung ist einer der seltenen tern ren Operatoren und f hrt zu schnellerem Code als if else Welchen Wert nimmt z in folgendem Beispiel an z a gt b a b Eine Anwendung finden Sie im Abschnitt 2 18 7 Rekursiver Aufruf einer Funktion 2 16 6 Bitoperationen Die Bit Operationen sind e shift links lt lt e shift rechts gt gt Au erdem beziehen sich einige logische Operationen auf Bits siehe oben Auch hier sind Abk rzungen m glich lt lt gt gt Der Ausdruck y lt lt x ist gleichbedeutend mit y y lt lt x Der linke Operand wird um so viele Bits nach links verschoben wie der rech te Operand angibt Das Ergebnis wird dem linken Operanden zugewiesen Zur Veranschaulichung der Bitoperationen ein kleines Programm Programm mit Bitoperationen sinnvolle Argumente z B 8 2 include lt stdio h gt void exit int main int argc char argv int i j K if arge lt 3 puts Zwei Argumente erforderlich exit 1 50 2 Programmieren in C sscanf argv 1 4d amp i sscanf argvl2 Ad amp j k 1 lt lt j printf E
98. x 216 330 217 331 218 332 219 333 220 334 U 221 335 Y 229 336 223 337 B 224 340 225 341 226 342 227 343 a 228 344 229 345 4 230 346 231 347 232 350 amp 233 351 234 352 amp 145 Right pointing double angle quotation mark Vulgar fraction one quarter Vulgar fraction one half Vulgar fraction three quarters Inverted question mark Latin capital letter a with grave Latin capital letter a with acute Latin capital letter a with circumflex Latin capital letter a with tilde Latin capital letter a with diaresis Latin capital letter a with ring above Latin capital letter ae Latin capital letter c with cedilla Latin capital letter e with grave Latin capital letter e with acute Latin capital letter e with circumflex Latin capital letter e with diaresis Latin capital letter i with grave Latin capital letter i with acute Latin capital letter i with circumflex Latin capital letter i with diaresis Latin capital letter eth Icelandic Latin capital letter n with tilde Latin capital letter o with grave Latin capital letter o with acute Latin capital letter o with circumflex Latin capital letter o with tilde Latin capital letter o with diaresis Multiplication sign Latin capital letter o with stroke Latin capital letter u with grave Latin capital letter u with acute Latin capital letter u with circumflex Latin capital letter u with diaresis Latin capital letter y with acute Latin capital letter th
99. xi y x b Ausgabe printf d und Ad haben den ggT d n a b y wo Programm 2 54 C Programm ggT nach Euklid Der auch nach UNIX Ma st ben karge Dialog des ALGOL Programms wurde etwas angereichert die goto Schleifen wurden durch while Schleifen ersetzt und der ALGOL Behelf zur Berechnung des Divisionsrestes entier durch die in C vorhandene Modulo Operation Bei einem Vergleich mit dem Programm 2 34 C Programm ggt nach Euklid rekursiv sieht man wie unterschiedlich selbst ein so einfacher Algorithmus pro grammiert werden kann Dazu kommen andere Algorithmen zur L sung dersel 2 26 Portieren von Programmen 123 ben Aufgabe beispielsweise das Ermitteln aller Teiler der beiden Zahlen und das Herausfischen des ggT 2 26 4 bertragen von PASCAL nach C 2 26 5 bertragen von FORTRAN nach C Gegeben sei ein einfaches Programm zur L sung quadratischer Gleichungen in FORTRANTT C 2 2 222222 772272 7 7772 7 7 772 7 7 7 727 77 22 2222 c Loesung der quadratischen Gleichung a x x b x c 0 c reelle Koeffizienten Loesungen auch komplex C 2222 2 2 eee eee eee eee ee eee program quad c real a b c d h r s x1 x2 real eps complex x1c x2c data eps 1 0e 30 c write Loesung von a x x b x c 0 write Bitte a b und c eingeben read a b c C eee eee enn ne eee eee eee 77 22 2222 c 1 Fall a nahe Null lineare Gleichung C 222222 2
100. zungszeit oder w hrend der Ausf hrung des Programmes zur Laufzeit Der zweite Weg wird als statische Bindung bezeichnet der dritte als dynamische Bindung Die Gr e einer Ganzzahl 2 Bytes 4 Bytes ist durch den Compiler ge geben Die Gr e eines Arrays k nnte im Programm festgelegt sein oder w hrend der Ausf hrung berechnet werden Es ist auch denkbar aber in C nicht zugelassen den Typ einer Variablen erst bei der Ausf hrung je nach Bedarf zu bestimmen Einen Weg zur ck vom ausf hrbaren Programm zum Quellcode gibt es nicht Das u erste ist mit einem Disassembler aus dem ausf hrbaren Code Assemb lercode zu erzeugen ohne Kommentar und typografische Struktur Nur bei kurzen einfachen Programmen ist dieser Assemblercode verst ndlich 2 4 Wie entsteht eine Programmiersprache Von den Nullen und Einsen im Befehlsregister des Prozessors bis zu einer Anwei sung einer h heren Programmiersprache ist ein weiter Weg 2 5 Qualit t und Stil Unser Ziel ist ein gutes Programm Was hei t das im einzelnen Ein Programm soll selbstverst ndlich fehlerfrei sein in dem Sinn da es aus zul ssigen Eingaben richtige Ergebnisse erzeugt Au er in seltenen F llen l t sich die so definierte Feh lerfreiheit eines Programms nicht beweisen Man kann nur nach einer Vielzahl von Tests und l ngerem Gebrauch davon reden da ein Programm zuverl ssig ist ein falsches Ergebnis also nur mit geringer Wahrscheinlichkeit auftrit
101. 1 13 b 1 1 vt 12 1100 14 c 1 10 ff 13 1101 15 d 1 11 cr 14 1110 16 e 1 100 so 15 1111 17 f 1 101 si 16 10000 20 10 1 110 dle 17 10001 21 11 1 111 del 18 10010 22 12 1 1000 dc2 19 10011 23 13 1 1001 dc3 20 10100 24 14 10 0 dc4 21 10101 25 15 10 1 nak 22 10110 26 16 10 10 syn 23 10111 27 17 10 11 etb 24 11000 30 18 10 100 can 25 11001 31 19 10 101 em 26 11010 32 la 10 110 sub 27 11011 33 1b 10 111 esc 28 11100 34 lc 10 1000 fs 29 11101 35 ld 10 1001 gs 30 11110 36 le 11 0 rs 31 11111 37 1f 11 1 us 131 132 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 DI 78 79 80 100000 100001 100010 100011 100100 100101 100110 100111 101000 101001 101010 101011 101100 101101 101110 101111 110000 110001 110010 110011 110100 110101 110110 110111 111000 111001 111010 111011 111100 111101 111110 111111 1000000 1000001 1000010 1000011 1000100 1000101 1000110 1000111 1001000 1001001 1001010 1001011 1001100 1001101 1001110 1001111 1010000 40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57 60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 DI 100 101 102 103 104 105 106 107 110 111 112 113 114 115 116 117 120 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 41 42
102. 2 Programmieren in C int main int argc char argv double x y 2 if arge lt 3 puts Zuwenig Argumente return 1 Umwandlung Kommandozeilenargumente sscanf argv 1 Alf amp x sscanf argv 2 Ylf amp y Aufruf Funktionen pow floor Sektion 3M wegen Fallunterscheidungen nachlesen if x lt 0 x x lt EPSILON if y gt 0 x 0 else puts Bei x 0 muss y positiv sein return 1 else if x lt 0 y floor y z pow x y Ausgabe printf 4lf hoch Alf Ylf n x y Z return 0 Programm 2 38 C Programm mit mathematischen Funktionen Der lint 1 gibt bei diesem Programm eine l ngere Liste von Warnungen aus die daher r hren da in lt math h gt viele Funktionen deklariert werden die im Programm nicht auftauchen Das geht aber in Ordnung 2 19 2 4 Standard Grafik Bibliothek Manche Compiler beinhalten auch eine Sammlung von Grafikfunktionen Da es hierf r noch keinen Standard gibt und Grafik eng an die Hardware gebunden ist verzichten wir vorl ufig auf eine Darstellung Auf einer UNIX Anlage findet man sie in usr lib plot Die Bibliothek enth lt Funktionen zum Setzen von Punkten Ziehen von Linien zur Umwandlung von Koordinaten und hnliche Dinge Leider nicht standardisiert sonst g be es nicht Starbase GKS PHIGS Uniras 2 19 Funktions Bibliotheken 87 2 19 2 5 Weitere Teile der Standardbibli
103. 4 30 can can can Grafik 25 31 em em em Grafik 26 32 cc sub sub Grafik 27 33 esc esc Grafik 28 34 ifs fs fs cur right 29 35 igs gs gs cur left 30 36 irs rs rs cur up 31 37 ius us us cur down 32 40 ds space space space 33 41 sos 34 42 fs 134 135 B 1 EBCDIC ASCII Romans IBM PC tk BS Se tk BS Se tk BS Se 43 35 36 37 38 39 40 byp 44 45 If etb 46 esc AT 50 51 41 sm 52 42 NK NK mx 53 54 55 56 57 60 61 43 44 45 enq nOD nam ch nOD nam ch nOD nam ch ack 46 bel 47 48 49 syn 62 50 51 63 64 65 66 67 70 pn 52 TS 53 54 55 56 57 58 59 60 61 uc eot Kai Kai Kai Dp Dp Dp 71 eV LAS Ot MA sv LAS Ota sv LAS Ota 72 73 dc4 nak 74 75 76 62 sub DI 100 101 102 103 104 105 106 107 110 111 63 64 65 66 67 68 69 70 space 71 72 73 nL Suasz Suasz 112 113 114 115 116 74 75 76 DI 78 117 120 121 122 123 79 80 81 82 83 B Zeichens tze 136 124 125 84 85 gt e gt e gt e 126 127 130 86 87 88 131 132 89 90 Go 133 134 91 92 135 136 137 140 141 93 94 95 96 97 98 99 100 101 142 143 144 145 146 102 ic 7 ic 7 ic 7 ot Und gt cc VO 19 ao CO st Vi CO gt CH aoa
104. 5 266 267 270 271 272 273 274 275 276 277 300 301 302 303 304 305 306 307 310 311 312 313 314 315 316 317 320 321 322 323 324 325 326 327 330 331 332 333 334 335 336 337 340 341 342 343 344 Finden DPOWOA ZAR uao Oo 0 nme Gr aan oe Be Zu Q lt Se wo CO DO PE Ce Re Le ROL Desen o o a fe Oo e ew Rann eo om m B Zeichens tze Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik Grafik amp p H T X B 2 German ASCII 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 345 346 347 350 301 302 353 354 355 356 357 360 361 362 363 364 365 366 367 370 371 372 373 374 375 376 377 N lt 4 lt oso owurvwnHo OO O O gt TEmo B 2 German ASCII Falls das Ausgabeger t einen deutschen 7 Bit ASCII Zeichensatz enth lt sind folgende Ersetzungen der amerikanischen Zeichen durch deutsche Sonderzeichen blich Nr 91 92 93 123 124 125 126 US Zeichen linke eckige Klammer Backslash rechte eckige Klammer linke geschweifte Klammer senkrechter Strich re
105. 58 S 60 Ausf hrliche Erl uterungen E S Raymond The New Hacker s Dictionary The MIT Press Cambridge 1993 505 S 40 DM Siehe auch ftp ciw pub docs net general jarg300 txt gz Begriffe aus dem Netz die nicht im Duden stehen H J Schneider Lexikon der Informatik und Datenverarbeitung Oldenbourg M nchen 1991 989 S 128 DM Ethernet SQL stehen darin Internet nicht P Wennrich International Dictionary of Abbreviations and Acronyms of Electronics Electrical Engineering Computer Technology and Information Processing Saur M nchen 1992 2 Bande 960 S 336 DM Informatik Newsgruppen comp alles was mit Computer Science zu tun hat mehrere hundert Untergruppen de comp dito deutschsprachig alt comp biz comp maus sci informatik zer z netz wissenschaft informatik F L Bauer G Goos Informatik 1 2 Teil Springer Berlin 1991 92 1 Teil 393 S 42 DM 3 Teil 345 S 42 DM Umfassende Einf hrung auch f r Nicht Informatiker W Coy Aufbau und Arbeitsweise von Rechenanlagen Vieweg Braunschweig 1992 367 S 50 DM Digitale Schaltungen Rechnerarchitektur Betriebssysteme am Beispiel von UNIX L Goldschlager A Lister Informatik Hanser und Prentice Hall M nchen 1990 366 S 40 DM Einf hrung hnlich wie Bauer Goos D E Knuth The Art of Computer Programming 3 Bande Addison Wesley zusammen 330 DM Klassiker stellenweise mathematisch 7 Bande geplant 259 W Sch
106. 5b 5c 5d 5e 5f 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 Ta 7b TC 7d Te 7f 1000 1 1000 10 1000 11 1000 100 1000 101 1000 110 1000 111 1000 1000 1000 1001 1001 0 1001 1 1001 10 1001 11 1001 100 1001 101 1001 110 1001 111 1001 1000 1001 1001 1 0 0 1 0 1 1 0 10 1 0 11 1 0 100 1 0 101 1 0 110 1 0 111 1 0 1000 1 0 1001 1 1 0 1 1 1 1 1 10 1 1 11 1 1 100 1 1 101 1 1 110 1 1 111 1 1 1000 1 1 1001 1 10 0 1 10 1 1 10 10 1 10 11 1 10 100 1 10 101 1 10 110 1 10 111 m W Ww roe Nx Sc cH nto rw Aan H we Se dt ec am eevos B e so my oan E D del B Zeichens tze DI EBCDIC ASCII Romans IBM PC Die Zeichens tze data codes sind in den Ausgabeger ten Terminal Drucker gespeicherte Tabellen die die vom Computer kommenden Zahlen in Zeichen um setzen dezimal oktal EBCDIC ASCH 7 Romans IBM PC 0 0 nul nul nul nul 1 1 soh soh soh Grafik 2 2 stx stx stx Grafik 3 3 etx etx etx Grafik 4 4 pf eot eot Grafik 5 5 ht enq enq Grafik 6 6 le ack ack Grafik 7 7 del bel bel bel 8 10 bs bs Grafik 9 11 rif ht ht ht 10 12 smm If If If 11 13 vt vt vt home 12 14 ff ff ff ff 13 15 cr cr cr cr 14 16 so so so Grafik 15 17 si si si Grafik 16 20 dle dle dle Grafik 17 21 del del del Grafik 18 22 dc2 dc2 dc2 Grafik 19 23 dc3 dc3 dc3 Grafik 20 24 res dc4 dc4 Grafik 21 25 nl nak nak Grafik 22 26 bs syn syn Grafik 23 27 il etb etb Grafik 2
107. 6 04 1991 30 REM GW BASIC fuer IBM PCs 40 CLS 50 INPUT Grenze n eingeben N 60 CLS 70 PRINT Primzahlen Erathostenes bis N 80 PRINT 90 Ti TIMER 100 DIM A N 110 PRINT 2 120 REM Schleifenbeginn 125 REM Schleifenende genaugenommen bei INT SQR N 1 130 FOR I 3 TO N STEP 2 140 IF AY I 1 THEN 190 150 PRINT I 160 FOR J I I TO N STEP I 170 A J 1 128 2 Programmieren in C 180 NEXT J 190 NEXT I 200 REM Schleifenende 210 REM Ausgabe der restlichen Primzahlen 220 FOR J I TO N STEP 2 230 IF A4 J 0 THEN PRINT J 240 NEXT J 250 T2 TIMER 260 PRINT CHR 13 270 PRINT Zeitbedarf USING _ _s T2 T1 280 END Programm 2 57 BASIC Programm Sieb des Erathostenes 2 28 Objektiv betrachtet C und Objective C 2 28 1 Objekte warum und wie Die Hardware wird immer leistungsf higer und die Software immer komplexer ohne da eine S ttigung abzusehen w re Was macht man um mit der Komple xitat der Software klar zu kommen Die Sprachen entwickeln sich weiter das FORTRAN von 1990 kann mehr als das FORTRAN von 1960 Es gibt Hilfspro gramme wie Debugger oder RCS oder gar integrierte Programmierumgebungen wie SoftBench die die Arbeit schneller und sicherer gestalten Dann und wann wird auch die Programmierweise berdacht Der Schritt von der maschinennahen Assemblerprogrammierung zu den st rker problemorientierten Sprachen war eine grunds tzliche Verbesserung Der Wechsel von der prozedur
108. 991 1295 User bill of rights for entries and listing in the public directory 1992 1296 Internet Growth 1981 1991 1992 1310 Internet standards process 1992 1325 FYI on Questions and Answers FYI 4 1992 1331 Point to Point Protocol PPP 1992 1336 Who s who in the Internet 1992 1361 Simple Network Time Protocol 1992 1378 PPP AppleTalk Control Protocol 1992 1392 Internet Users Glossary FYI 18 1993 1402 There is Gold in them thar Networks FYI 10 1993 1432 Recent Internet books 1993 1436 Internet Gopher Protocol 1993 1441 SMTP Introduction to version 2 of the Internet standard Network Management Framework 1993 1459 Internet Relay Chat Protocol 91993 1460 Post Office Protocol Version 3 1993 246 1462 1463 1466 1470 1475 1491 1500 1501 1506 1510 1511 1521 1522 1539 1591 247 FYI on What is the Internet FYI 20 1993 FYI on Introducing the Internet FYI 19 1993 Guidelines for Management of IP Address Space 1993 FYI on a Network Management Tool Catalog F YI 2 1993 TP IX The Next Internet 1993 A Survey of Advanced Usages of X 500 FYI 21 1993 Internet Official Protocol Standards 1993 OS 2 User Group 1993 A Tutorial on Gatewaying between X 400 and Internet Mail 1993 The Kerberos Network Authentication Service 1993 Common Authentication Technology Overview 1993 MIME Multipurpose Internet Mail Extensions Part One 1993 MIME Multipurpose Interne
109. A 177 Control Programm for Microcomputers Critical Path Method Customer Premises Network cycles characters per second Consumer Product Safety Commission Computer Professionals for Social Responsibilty Control Point Spanning Tree COSINE Project Management Team Command Pass Thru Central Processing Unit Channel Queue Limit Carriage Return Command Response Cyberspatial Reality Advancement Movement Cyclic Redundancy Check Class Responsibility Collaboration Fraunhofer Center for Research in Computer Graphics Corporation Computer Research Education Network USA Cross Reference File Centre de Recherche Informatique de Montreal Certificate Revocation List Carriage Return Line Feed Control Read Only Memory Cell Relay Service Cathode Ray Tube Canadien Radio Television and Telecommunications Commission Code Rule Violation Clear to Send Continuous Servo Clear Screen Code Segment Command Set 80 Hewlett Packard Channel System Address Register Center for Scientific Computing Computer Supported Cooperative Work Corrective Service Disk IBM Code Segment Descriptor Cache Customer Suppoirt Engineer Compagnie Sans Fil Constructive Solid Geometry Common Synchronous Interface Calling Station Identifier Compressed Sources IBM PC Carrier Sense Multiple Access Collision Avoidance Carrier Sense Multiple Access Collision Detection Carrier Sense Multiple Access Collision Elimination Card Select Number Comp
110. A ARCNET ARDF ARL ARLL ARM ARMA ARMM ARMS ARNS ARP ARPA ARPL ARQ ARRL ARS ARTIC ARU AS AS3AP ASA ASAM 165 Address Parity Enable Automated Packet Recognition Translation Application Protocol Association for Progressive Communications Arbeitsplatzcomputer Airborne Public Correspondence Automated Production Protocol Association of PC Users Groups Apple Programmers and Developers Association Advanced Packet Exchange Automated Password Generator Application Program Programming Interface Application Program Interface Association Advanced Programmable Interrupt Controller A Programming Language Application Programm Library Advanced Power Management Alternate Person On Line Slang Application Portability Profile Advanced Program to Program Communication IBM Advanced Peer to Peer Internetworking Advanced Peer to Peer Network Networking IBM Advanced Production System Automatic Position Select Asynchronous Protocol Specification Auto Pilot System Ada Project Support Environment Address Pass Through Automatically Programmed Tools Application Program title AppleTalk Remote Access Apple Remote Access Protocol Advanced RISC Computing Architecture Attached Resource Computer Computing Network Amateur Radio Direction Finding Adjusted Ring Length Advanced Run Length Limited Asynchronous Response Mode ARPANET Reference Model Advanced RISC Machine Association of Record Managers and Admi
111. B GPL GPP GPS GPU GQL GRA GRE GREAT Gs GSA GSL GSM GSMA GSNW GSX GTL GTO GU GUD GUI GULP GUMM GUN GUP GUUG GV GVBD GVPN GVV Gw GWL GZS HA HACMP HAs HAL HASP HBA HBS HCA HCI HCT HD HDA HDB HDB3 F Abk rzungen General Purpose Interface Bus General Public License GNU Generic Packetized Protocol Global Positioning System Global Pizza Service Graphic Processor Unit Graphical Query Language Group Random Access Graphics Engine Graphical Environment And Desktop Group Separator Geek of Science Gepr fte Sicherheit T V Global Security Architecture Graphics Subroutine Library Group Speciale Mobile Global System for Mobile Communications Global Scheduling Multiple Access Gateway Services for Netware Graphics System Extension Gunning Transceiver Logic Gate Turn Off Geek Undecided Grand Unified Debugger Graphical User Interface Graph Unification Logic Programming Gurus of UNIX Meeting of Minds Gemeinschaft der UNIX Anwender Niederrhein Generic Ultimate Protocol German Galactic Unix User Group Geb udeverteiler G tz von Berlichingen D mon Internet Global Virtual Private Network Gew hlte virtuelle Verbindung Gateway Gleichwelle Gateway Link Gesellschaft f r Zahlungssysteme Halbaddierer Half Adder High Availability Cluster Multi Processing IBM Hauptanschlu Hardware Abstraction Layer House Programmed Array Logic Hard Array Logic Houston Automatic
112. BOL 17 Sach und Namensverzeichnis deklarative P 15 FORTRAN 17 Freiburger Code 17 funktionale P 15 61 imperative P 15 61 LISP 15 logische P 15 maschinenorientierte P 16 Maschinensprache 16 Mischen von P 63 MODULA 18 objektorientierte P 15 Paradigma 15 PASCAL 18 pr dikative P 15 problemorientierte P 16 PROLOG 15 prozedurale P 15 SCHEME 15 SMALLTALK 15 128 Sprachenfamilie 15 Programmierstil 22 Programmiertechnik 23 PROLOG 15 Prompt 9 Prozess Background s Hintergrund Foreground s Vordergrund Prozessor CPU s Zentralprozessor Zentralprozessor 4 Puffer s Speicher Qualifier s Typ Qualit tsgewinn 13 Quantor s Jokerzeichen Quellcode 20 quit 9 r Wert 45 R ckschritt s Backspace RAM s Speicher Random Access s Zugriff wahlfreier Random Access Memory s Speicher RCS s Revision Control System realloc 3 107 Realtime System s Echtzeit S Rechenanlage s Computer Record Datenbank s Satz Redirektion s Umlenkung Sach und Namensverzeichnis Referenz s Bezug Referenz Handbuch 7 10 Referenzebene 41 referenzieren 37 50 Register s Speicher register C 43 regul rer Ausdruck s Ausdruck regul res File s File Rekursion 79 relozierbar 20 Request s Druckauftrag Request for Comment 246 reserviertes Wort 30 Rest der Welt s Menge der sonstigen Be nutzer return C 59 Return Taste 9 Returnwert s R ckgabewert RFC s Request For Comment Richtlinien C 22 RITC
113. C gt 4 cast amp sizeof h lt lt gt gt lt lt gt gt l amp amp amp x Y lt lt gt gt amp WI Zuerst werden also die runden Klammern ausgewertet wie in der Mathematik haben sie Vorrang vor allen anderen Operatoren 2 16 11 Memo Operationen e Nichts 2 16 12 bung Operationen 2 17 Anweisungen 2 17 1 Leere Anweisung Anweisungen statement haben eine Wirkung aber keinen Wert im Gegen satz zu Ausdr cken Die einfachste Anweisung ist die leere Anweisung also die Aufforderung an den Computer nichts zu tun Das sieht zwar auf den ersten Blick schwachsinnig aus ist aber gelegentlich n tzlich Da in C jede Anweisung mit einem Semikolon abgeschlossen werden mu ist das nackte Semikolon die leere Anweisung In anderen Sprachen findet sich daf r die Anweisung nop oder noop no operation Ein Beispiel while c getchar 125 2 17 Anweisungen 53 Die Schleife liest Zeichen ein und verwirft sie bis sie auf ein Zeichen Nr 125 rechte geschweifte Klammer trifft Das wird auch noch entsorgt dann geht es nach der Schleife weiter 2 17 2 Ausdruck als Anweisung Aus einer Zuweisung oder einem anderen Ausdruck wird durch Anh ngen eines Semikolons eine Anweisung Kommt eine Zuweisung beispielsweise als Argument einer Funktion oder in einer Bedingung vor darf sie nicht durch ein eigenes Semi kolon abgeschlossen werden Die Zuweisun
114. CO SCP SCPI SCR SCS SCSA SCSI SD SDA SDDI SDF SDH SDI SDigN SDK SDLC SDLP SDM SDMA SDMS SDN SDNS SDP SDR SDRAM SDS F Abk rzungen Structured Buffer Pool Send Common Subcommittee Secondary Channel Security Control and Audit Supervisory Control And Data Acquisition SCSI Configured Automagically Syndicat des Constructeurs d Appareils Radio Recepteurs et Televiseurs subsystem control Block Standards Coordinating Committee IEEE CS Serial Communication Controller Synchronous Channel Check Satellite control Center Signalling Connection Control Port Structured Charts Diagram Standard Color Display System Control Facility Scalable Coherent Interface Software Configuration Management Serial Copy Management System System Change Commit Number Sorry Could Not Resist Slang The Santa Cruz Operation Inc Session Control Protocol Service Control Point Subsystem Control Port Standard Commands for Programmable Instruments Silicon Controlled Rectifier Standard Context Routing Secondary Clear to Send System Communication Services SNA Communication Service Signal Computing System Architecture Small Computer Systems Interface Send Data Single Density Structured Design Starting Delimiter Super Density Compact Disc System Design Automation Start of Domain Authority Shielded Twisted Pair Distributed Data Interface Signal Delay Format System Data Format Space Delimited File Format Synchrono
115. CS PaCT F Abk rzungen Operations Per Minute Open Protocol Technology Octal Program Updating System Object Query Language Offset Quadrature Phase Shift Keying Object Request Broker organizational Internet Domain Organisationen in den USA Optical Read Only Memory Output Record Separator Operating System Open Scripting System Architecture Origin Subarea Address Field Open System Center IBM Orbiting Satellite Carrying Amateur Radio On Screen Display Open Systems Software Environment Open Software Foundation Open Systems Interconnect Interconnection ISO Open Systems Interconnection Environment Open Systems Interconnection Technical and Office Protocols On Screen Menue Open Shortest Path First Internet Operating System Programming Interface Object Structured Query Language Open Source Solution Optical Storage Technology Association Open System Transaction Management Office of Science and Technology Policy Object Technology Off Topic Slang U S Congress Office of Technology Assessment Optical Time Division Optical Time Division Multiplexer Multiplexing Optical Time Domain Reflectometer Open Token Foundation Original Transmitter Identification On The Other Hand Slang One Time Password Programmable One Touch Recording Overflow Overlay Ortsvermittlungsstelle Optical Waveguide Object Windows Library Power Amplifier Public Address Private Access Automatic Branch Exchange Picture
116. Computer f r Dienstleistungen 2 Datenkompressionsprogramm 2 Kriegsruf der S dstadt Indianer 0 was zum Essen 0 Schnittstelle Mensch Computer 2 Bahnhof oder Hafen 1 Zubeh r zu Drahttauwerk 1 Ampersand Alias Buscontroller Algol Rom Dram Diskette Directory Dekrement Sprungbefehl Oktalzahl 251 Sand aus der Amper 1 et Zeichen 2 Untiefe im Wattenmeer 0 altgriechisches Epos 0 alttestamentarischer Prophet 0 Zweitname eines Kommandos 2 Busfahrer 0 Busschaffner 0 Programm zur Steuerung eines Datenbusses 2 was zum Trinken 0 Doppelstern 1 Programmiersprache 2 Stadt in Italien 1 schwedisch fiir Rum 1 Read only memory 2 Dynamic random access memory 2 danisch fiir Schnaps 1 Stra enbahn 0 Madchen das oft in Discos geht 0 weiblicher Diskjockey 0 Massenspeicher 2 oberste Etage einer Firma 0 Inhaltsverzeichnis 2 Kunststil zur Zeit der Franz Revolution 0 was die Verdauung brig l t 0 Anordnung von oben 0 Wert um den ein Z hler verringert wird 2 Vorkommnis w hrend Ihres Wehrdienstes 0 Kommando im Pferdesport 0 Anweisung in einem Programm 2 Ma f r die Klopffestigkeit 0 Zahl zur Basis 8 2 Anzahl der Oktaven einer Orgel 0 252 Subroutine virtuell Klammeraffe ESC Monitor Unix Joystick Maus Icon Pascal H Karlsruher Test Kleidungsst ck eines Priesters 0 was im Un
117. DDNS DDP DDS DDTA DDV DDVT DDX P DE DEARN DEBI DEC F Abk rzungen Distributed Console Access Facility IBM Data Control Block Disk Coprocessor Board Novell Digital Compact Cassette Data Country Code Display Combination Code Data Communication Channel Distributed Capability Computing System Data Carrier Detect Data Circuit Communication Equipment Distributed Computing Environment OSF Document Composition Facility Data Communication Facility IBM Data Compression Facility Data Count Field Direct Coupled FET Logic Display Control Interface Digital Command Language DEC Device Clear Declaration Data Communication Multiplexer Distributed Computing Model Data Communication Network Architecture Desktop Colour Separation Diagnostic Communication System Data Collection Control System Digital Cellular Telecommunication System Discrete Cosine Transformation Double Density Digital Display Distributed Database Architecture Deutsche Daten Autobahn Device Dependent Bitmap Distributed Data Base Management System Display Data Channel Digital Data Communication Message Protocol DEC Distributed Database Connection Services IBM Direct Distance Dialing Dynamic Data Exchange Direct Data Entry Dynamic Data Exchange Manager Library Microsoft Device Driver Interface Direct Dialing In Digital Document Interchange Format Device Driver Kit Microsoft Data Definition Description Language Display
118. DVI Backup File BASIC File Batchfile unter MS DOS entsprechend Shellscript BIBTeX Literaturverzeichnis Bitfax File Borland Graphic Interface Bibliographie Binary Image File bin res File TeX Ausgabe des Druckertreibers Backup File WordPerfect BASIC Bload Graphics Microsoft Bitmap Graphics Windows OS 2 Microsoft RIFF Lumena Paint Boyan Script File BASIC Bsave Graphics Batchfile unter 4DOS SGI Image File Format C Quelle 156 cal cap cat cbl cc cco cdf cdr cdx cfg cgm chk cht cmd cmi enc cnf cob cod com cpi cpp cpt crd crf csv ctx cut cvf CXX dat db dbf def dct dcx dd def des dhp dib dic dif dir dll doc NN VO NT NND Vo TO NIT NT N NT NG D D D D Te V TP E EE ONT Se ToT 157 C Quelle CAL Raster Capture File Telix Catalogue Verzeichnis COBOL Quelle C Quelle Btx Grafik Comma delimited format Corel Draw Vektorgrafik Compund index FoxPro Konfigurations File Computer Graphics Metafile Harvard Graphics Lotus von chkdsk erzeugtes File MS DOS Harvard Graphics Clipboard Windows Clip Art GRASP Command Skript Batchfile unter OS 2 Intel DVI CNC Programme Konfigurations File COBOL Quelle Codeliste Kommando File MS DOS ausf hrbares Programm Code Page Information MS DOS C Quelle Compact Pro Kompressor Macintosh Cardfile Cross Reference File Comma Separated Values Signaturfile PGP Dr Halo Bitmap Compressed
119. Description Language Document Description Language Distributed Data Manager Management Defense Data Network USA Distributed Domain Naming Service Distributed Data Processing Digital Data Service Storage Disk Definition Structure Direct Digital Service Dataphone Digital Service AT amp T Direkte digitale Frequenz Synthese Digital Distributed Transaction Architecture Datendirekt ruf verbindung Dialog Data Validation Dynamic Dispatch Virtual Tables Digital Data Exchange Packet switching Network Discard Eligible Deutsches EARN DMA Extended Bus Interface Device Clear Digital Equipment Corporation DECnet DECT DED DEE DEF DEG DEL DELTA DELUG DEN DE NIC DES DET DEV DEVO DF DFB DFBI DFC DfD DFD DFEI DFG DFKI DFN DFS DFT DFU DFUe DFV DG DGIS DGL DGT DHCP DHSD DI DIA DIB DID DIF DIGI DII DIIP DIL DIMDI 181 Digital Equipment Corporation Network Digital European Cordless Telecommunication Darkness Emitting Diode Datenendeinheit einrichtung DTE Destination Element Field Datenendgerat Delete Developing European Learning Through Technology Advance Deutsche LINUX User Group Document Enabled Networking Deutsches Network Information Center Data Encryption Standard Data Entry Sheet Device Execute Trigger Device Datenerfassungsverordnung Device Double Flag Data Destination Field Distributed Feedback Laser Depth First Begin Index Data Flow Control Date
120. Die Summanden sind jd d n a b printf Die Summe ist d n csr amp a amp b printf Die Summanden sind jd d n a b return 0 Programm 2 18 C Programm das Parameter by value und by reference an C Funktionen bergibt Nun das C Hauptprogramm das eine FORTRAN Funktion aufruft ein in der Numerik h ufiger Fall C Programm csummef das eine FORTRAN Funktion aufruft Compileraufruf cc o csummef csummef c fsr o lcl include lt stdio h gt extern int fsr int x int y int main int a b scanf d d amp a amp b printf Die Summanden sind d d n a b 2 18 Funktionen 67 printf Die Summe direkt ist Yd n a b printf Die Summe ist d n fsr amp a amp b printf Die Summanden sind Ad d n a b return 0 Programm 2 19 C Programm das Parameter by reference an eine FORTRAN Funktion bergibt Die Linker Option 1c1 ist erforderlich wenn FORTRAN oder PASCAL Module in C Programme eingebunden werden Sie bewirkt die Hinzunahme der FORTRAN und PASCAL Laufzeitbibliothek usr lib libcl a ohne die Bez ge Referenzen auf FORTRAN oder PASCAL Routinen unter Umst nden offen bleiben Anders gesagt in den FORTRAN oder PASCAL Funktionen kom men Namen vor zum Beispiel write deren Definition in besagter Laufzeitbi bliothek zu finden ist C und PASCAL sind sich im gro en ganzen hnlich es gibt aber Unterschiede hinsichtlich des Geltungsbereich
121. E FEA FEAL FEBE FEC FECN FEM FEP FERF FET FEXT FF FFAPI FFDT F FF FFS FFT FFTP FG FGV FIAWOL FID FIF FIFF FIFO FILO FIMS FIP FIPS FIR FIRP FIRST FISH FIT FITB FITNR FITS FIZ FKTG FLC FLOF FLOP FM FMC FMH FMP F Abk rzungen Full Duplex Switched Ethernet Full Duplex Finite Elemente Format Effektor Frame Error Fast Ethernet Alliance Fast Data Encipherment Algorithm Far End Block Error Forward Error Correction Forward Explicit Congestion Notification Finite Elemente Methode Front End Processor Far End Receive Failure Feldeffekt Transistor Far End Crosstalk Form Feed Flipflop File Format API FDDI Full Duplex Technology DEC Forum Informatiker fiir Frieden und gesellschaftliche Verantwortung Fast File System For Free Server Flexible Fertigungssysteme Fast Fourier Transformation Fast Food Transfer Protocol Mampfnet Frame Ground Feature Group Fernmeldegeb hrenvorschriften Fandom Is A Way Of Life Slang Format Identifier Identification Fachinformation in Fachhochschulen Fractal Image Format Forum InformatikerInnen fiir den Frieden e V First In First Out Speicher First In Last Out Speicher Forms Integration Management Standard File Processor Buffering Federal Information Processing Standard USA Finite Impulse Response Federal Internetworking Requirements Panel NIST Forschungsinst fiir Rechnerarchitektur und Softwaretechnik Berlin Forum of In
122. END L2 R X Y ENTIER X Y IF R NOT EQUAL O THEN BEGIN X Y Y R GO TO L2 END PRINT A B Y Go TO Li END Programm 2 53 ALGOL Programm ggT nach Euklid Die Einlese und Ubersetzungszeit auf einer 722 betrug 50 s die Rechen und Druckzeit 39 s Damals hatten schnelle Kopfrechner noch eine Chance Eine Ana lyse des Quelltextes ergibt e Das Programm besteht aus einem File mit dem Hauptprogramm war kaum anders m glich e Schl sselw rter stehen in Hochkommas e logische Bl cke werden durch begin und end begrenzt e es kommen nur ganzzahlige Variable vor e es wird Ganzzahl Arithmetik verwendet e an Funktionen treten read und print auf e an Kontrollstrukturen werden if then else und goto verwendet 122 2 Programmieren in C Das sieht hoffnungsvoll aus Die bertragung nach C Groesster gemeinsamer Teiler nach Euklid Uebertragung eines ALGOL Programms aus K Nickel nach C zu compilieren mit cc o ggt ggt c include lt stdio h gt int main int a b xX y T while 1 Eingabe puts ggT von a und b nach Euklid puts Beenden mit Eingabe 0 printf Bitte a und b eingeben scanf d d amp a amp b Beenden falls a oder b gleich 0 if Ca 0 b 0 xit 0 x muss den groesseren Wert aus a und b enthalten b a if a gt b x a y else x b y Euklid while r
123. Edge Graphics Conducted Electromagnetic Interference Code Coded Excited Linear Prediction Compaq Expanded Memory Manager Comite Europeen de Normalisation Comite Europeen de Normalisation Electrotechnique Connection End Point Conference Europeenne des Administrations des Postes et des Telecommunications Conseil Europeen pour la Recherche Nucleaire Computer Emergency Response Team DFN Consumer Electronics Show Circuit Emulation Service Coherent File Distribution Protocol Internet Configuration Management Computer Freedom and Privacy Controlled Ferro Resonant USV 174 CFRI CFV CGA CGE CGI CGM CGPP CGW CHAP CHARM CHCK CHILL CHOP CHPC CHRP CHS CI CIAC CIAM CIB CIC CICS CID CIDR CIE CIEDS CIF CIL CIM CIOCS CIOS CIP CIR CIRC CIRSC CIS CISC CISE CISPR CIT CIX CKD CKSM F Abk rzungen California Federation of Research Internets Call For Votes Usenet Color Graphics Adapter PC Compagnie General d Electricite Computer Graphics Interface Computer Generated Image Common Gateway Interface Computer Graphics Metafile Computer Grahics Principles and Practise by Fowley Customer Gateway Cryptographic Challenge Handshake Authentication Protocol Character Mode Channel Check CCITT High Level Language Channel Operator Center for High Performance Computing Common Hardware Reference Platform Cylinders Heads Sectors Command Interpreter Computer Interconnect Comput
124. Envelope Kanal Teiler Erase Line Electroluminiscent Display Elevation Educational Elementary Language Emulated LAN Enhanced LAN Controller Extremely Low Frequency Executable and Linking Format Equal Level Far End Crosstalk Erasable Laser Optical Disk Entry Level System End of Medium Electronic Mail Expanded Memory Enterprise Management Architecture European Market Awareness and Education Committee Editing Macros GNU Electronic Mail Extended Memory block Enhanced Master Burst Electromagnetic Compatibility Extended Math Coprocessor Earth Moon Earth Connection Electronic Message Handling Systems Electromagnetic Interference Electric amp Musical Industries Expanded Memory Manager Enterprise Mail Manager Electromagnetic Radiation Expanded Memory Specification Electronic Mail System Electronic Message Service European MAP Users Group Elektromagnetische Vertr glichkeit Gesetz ber die elektromagnetische Vertr glichkeit von Ger ten Enterprise Mail Exchange End Node European Norm Electronic Networking Association Ethernet Network Control Management Modeul Electronic Numerical Integrator And Calculator European Network for Information Technology in Human Services European Network Laboratories Ethernet Node Processor Enquiry Enterprise Network System Services Exterior Nodal Switching Subsystem Internet End Of Address End Of Block End of Character Conversion Embedded Operations C
125. Familie wird unterteilt in die imperativen oder prozeduralen Sprachen im engeren Sinne einerseits und die objektorientierten Sprachen ande rerseits lateinisch imperare befehlen Bequemer w re es jedoch wir k nnten uns mit der Beschreibung der Aufga be begn gen und das Finden eines L sungsweges dem Computer berlassen Sein Nutzen w rde damit bedeutend wachsen Die noch nicht sehr verbreiteten dekla rativen Programmiersprachen gehen diesen Weg lateinisch declarare erkl ren beschreiben Die deklarativen Sprachen unterteilt man in die funktionalen und die logischen oder pr dikativen Sprachen Wir haben also folgende Einteilung wobei die tats chlich benutzten Sprachen Mischlinge sind und die Einordnung ihrem am st rksten ausgepr gten Charakter zug folgt e Prozedurale Sprachen im weiteren Sinn imperative algorithmische operative oder im engeren Sinn prozedurale Sprachen BASIC FORTRAN COBOL C PASCAL 15 16 2 Programmieren in C objektorientierte Sprachen SMALLTALK C e Deklarative Sprachen funktionale oder applikative Sprachen LISP SCHEME logische oder pr dikative Sprachen PROLOG Diese Sprachentypen werden auch Paradigmen Beispiel Muster genannt Die objektorientierten Programmiersprachen wie C teilen ein Programm in abgeschlossene Objekte auf die miteinander ber Nachrichten oder Botschaf ten verkehren Das Innere der Objekte bleibt unzug nglich Diese Sichtweise ent s
126. File Access Thin Film Diode Text File Device Driver Thin Film Electroluminescent Translucent File System Sun Thin Film Transistor Trivial File Transfer Protocol Internet Terrestrial Flight Telephone System Transmission Group Transmission Group Number Ticket Granting Server Transmission Header Token Holding Timer The hour was late and I am senile Slang Tomlinson Holman s Experiment Transaction Identifier Texas Instruments Inc Telecommunications Industries Association Thanks In Advance Slang Token Ring Interface Coupler Target Identifier Telekommunikations und Informationsdienstunternehmen Datenschutzverordnung Time Independent Escape Sequence Telecom Information Exchange Services Genf Tag Tagged Image File Format Texas Instruments Graphics Architecture This Is Not A Review Slang Terminal Interface Processor Transputer Image Processing Technology Integration Program Telekommunikation Telekommunikationsordnung Transport Layer Translation Look Aside Buffer Transport Layer Library Interface Teilnehmerkennung NUI Top Letter Quality Table Lookup N w D SSES 2200A a FEM Z SH 44343444444 48H T Q Z Z Z Z Le Z Z x oO Gi TO TOEIC TOF TOP TOPFET TOS TP TPO TP4 TPA TPC TPDDI TPF TPH tpi TPM TPS TPSE TPTB TPU TQM TR TRAC TRAU TRMPWR TRON TRI TS TSA TSAP TSAPI TSM TSO TSP F Abk rzungen Test Mode Transaction Monitor
127. Funktionen Eine bersicht ber diese Funktionen findet sich in intro 3N Beispiele sind Funktionen zur Verarbeitung von Netzadressen Proto kolleintr gen Remote Procedure Calls zum Mounten entfernter File Systeme zur Verwaltung von Benutzern und Passw rtern im Netz Geht ber den Rahmen die ses Textes hinaus Falls Sie sich ein eigenes Programm telnet oder ftp schreiben wollten m ten Sie hier tiefer einsteigen 2 19 2 3 Standard Mathematik Bibliothek Die Standard Mathematik Bibliothek wird automatisch vom FORTRAN Compilertreiber 77 1 eines UNIX Systems aufgerufen nicht aber vom C Compilertreiber F r C ist die Option 1m hinzuzuf gen Ferner mu im Programmkopf die Zeile include lt math h gt stehen Dann verf gt man ber Logarithmus Wurzel Potenz trigonometrische und hyperbolische Funktionen Weiteres siehe math 5 Eigentlich sollte man bei diesen Funktionen den zugrunde liegenden Algo rithmus und seine Programmierung kennen da jedes numerische Verfahren und erst recht seine Umsetzung in ein Programm Grenzen haben aber das Referenz Handbuch beschr nkt sich unter trig 3 usw auf die Syntax der Funktionen Ein Beispiel f r die Verwendung der mathematischen Bibliothek Potenz x hoch y mathematische Funktionen 22 12 92 zu compilieren mit cc o potenz potenz c lm Aufruf potenz x y define EPSILON 0 00001 include lt stdio h gt include lt math h gt double pow floor 86
128. HIE D 19 robust 21 Rollkugel s Trackball ROM s Speicher Routine s Unterprogramm Riickgabewert 59 63 92 Rundungsfehler 33 scanf 3 50 SCCS s Source Code Control System Schalter Option 10 Schaltvariable s Flag SCHEME 15 SCHICKARD W 276 Schliisselwort 27 28 30 149 Schlappscheibe s Diskette Schleife C 54 Schleifenz hler 57 Schnittstelle 5 Centronics S s parallele D Schrift Pitch s Weite Point size s Grad Treatment s Schnitt Typeface s Art Scope s Geltungsbereich Screen saver s Bildschirm Seiteneffekt s Nebenwirkung Seitenwechsel s Paging 289 Sektion 10 Separator s Trennzeichen Session s Sitzung sh 1 s Shell SHANNON C E 3 276 SHNEIDERMAN B 27 SHOCKLEY W B 276 short C 33 Sicherungskopie s Backup Sieb des Erathostenes 126 127 Sinnbild s Icon Sitzung 8 sizeof Operator 51 small Speichermodell 88 SMALLTALK 15 128 Soft Link s Link Software 5 Software Engineering 23 Sonderzeichen Shell s Metazeichen Sourcecode s Quellcode Speicher Arbeitsspeicher 4 Datentrager 4 Diskette s dort dynamische Verwaltung 107 Festplatte s dort Hauptspeicher s Arbeitsspeicher Massenspeicher 4 Medium s Datentr ger Memory s Arbeitsspeicher MO Disk s dort RAM s Random Access Memory Register 43 ROM s Read Only Memory Segmentierung 87 Speichermodell 87 WORM s dort Zwischenspeicher s Cache Speicherbedarf 32 Speicherklasse C auto 43 44 extern 43 register 43 sta
129. HSIC VIB VIBTS VIC VIM VINES VIO VIOLD VIP VIS VITA VITAL VJ VJHC F Abk rzungen Virtual Channel Link Voltage Controlled Oscillator Virtual Control Programm Interface Video Cassette Recorder Voice Communication Unit Volume Descriptor Virtual Device Display Driver Virtual Device Driver Manager Video Display Editor Verband Deutscher Elektrotechniker Vereinigung Deutscher Elektrizit tswerke Virtual Device Interface Video Display Interface Virtual DOS Machine Vienna Development Method Semantic Language Virtual Data Network Virtual DMA Service Video Display Terminal Video Visual Display Unit Volksempf nger Virtual Expanded Memory Manager Video Electronics Standards Association Video Extensions to XWS Vacuum Fluorescent Display Voice File Interchange Protocol Internet Variable Frequency Oscillator Verein zur F rderung der P dagogik der Informationstechnologie Virtual File System Verordnung f r den Fernschreib und Datexdienst Volume Group Video Graphics Array Video Graphics Controller VHSIC Hardware Description Language Very High Bit Rate Digital Subscriber Line Virtual Home Environment Very High Frequency 30 300 MHz Video Home System Very High Speed Virtual Host Storage Very High Speed Integrated Circuit Video Interface Bus VTAM Integrated Bulk Data Transfer System Video Interface Controller Vendor Independent Messaging Virtual Network System Software Banyan Video Virtua
130. Ha Ha Only Serious Slang High Density Floppy Disk Hypertext Interface For Information Human Interface Link HP High Performance European Radio High Performance Parallel Interface Hop Level Flow Control High Low Close Open High Level Language HLL Application Program Interface High Level Qualifier Home Location Register Hochleistungs Rechenzentrum GMD Hue Lightness Luminance Saturation Farbmodell Halt Hub Management Architecture High Memory Area Head Helmet Mounted Display High Density Metal Oxide Semiconductor High Speed MOS Hybrid Multiplexer HDSL Overhead Bit Handling High Order Path Terminating Equipment Hochpass Hewlett Packard High Performance Computing and Communications 198 HPCS HPF HP FL HPFS HPGL HPIB HPL HPM HPOFS HPPA HPPI HPSL HPSN HQ HRC HRG HRIS HRMS HS HSB HSC HSD HSDT HSI HSLAN HSL FX HSM HSP HSSI HST HSV HT HTML HTTP HVC HVP HW HWCP HYTEA MDL I amp A IAAS IAB IAC IAE F Abk rzungen High Performance Communication Server High Performance FORTRAN Hewlett Packard Fiber Optic Link High Performance File System OS 2 Hewlett Packard Graphics Language Hewlett Packard Interface Bus Home Product Link Hyper Page Mode High Perormance Optical File System Hewlett Packard Precision Architecture High Performance Parallel Interface Hewlett Packard Support Line High Performance Scalable Networking High Quality Hybrid Ring Control High Resolut
131. Hilfe grafischer Darstellungen den berblick zu behalten aber auch diese nei gen zum Wuchern Ein grunds tzlicher Mangel ist die Beschr nkung eines Blattes Papier auf zwei Dimensionen Es ist unm glich ein umfangreiches Programm durch eine einzige halbwegs berschaubare Grafik zu beschreiben Bedingung Anweisung 1 Anweisung 2 Anweisung 4 Anweisung 3 Abb 2 1 Flu diagramm einer if else Verzweigung Flu diagramme flow chart auch Blockdiagramme genannt sollen die Abl ufe innerhalb eines Programmes durch Sinnbilder nach DIN 66 001 und Text Real programmers don t draw flowcharts 2 10 Memo Programmiertechnik 27 darstellen unabh ngig von einer Programmiersprache Obwohl das Flu diagramm vor dem Programmcode erstellt werden sollte halten sich viele Programmierer nicht an diese Reihenfolge Zum Teil ersetzt eine gute typografische Gestaltung der Programmquelle auch ein Flu diagramm w hrend das Umgekehrte nicht gilt Ein Flu diagramm ist nicht mit einem Syntaxdiagramm zu verwechseln lesen Sie die beiden entsprechenden Abbildungen die die if else Verzweigung darstellen einmal laut vor if Bedingung u Abb 2 2 Nassi Shneiderman Diagramm einer if else Verzweigung Nassi Shneiderman Diagramme oder Struktogramme nach ISAAC NASSI und BEN SHNEIDERMAN sind ein weiterer Versuch den Programmablauf grafisch darzustellen Sie sind n her an eine Programmiersprache angelehnt so da es leicht f llt nach dem Diag
132. I C vorbereitend auf C J A Illik Programmieren in C unter UNIX Sybex D sseldorf 1992 750 S 89 DM Lehrbuch C und UNIX mit Schwerpunkt Programmieren R Jones I Steart The Art of C Programming Springer Berlin 1987 186 S 52 DM B W Kernighan D M Ritchie The C Programming Language Deutsche Ubersetzung Programmieren in C Zweite Ausgabe ANSI C 13 269 Hanser Verlag M nchen 1990 283 S 56 DM Standardwerk zur Programmiersprache C Lehrbuch P J Plauger J Brodie Referenzhandbuch Standard C Vieweg Braunschweig 1990 236 S 64 DM P J Plauger The Standard C Library Prentice Hall Englewood Cliffs 1991 498 S 73 DM Die Funktionen der Standardbibliothek nach ANSI H Schildt ANSI C made easy Osborne McGraw Hill Berkeley 1989 452 S 50 DM Leichtverst ndliche Einf hrung in ANSI C R Ward Debugging C Addison Wesley Bonn 1988 322 S 68 DM Systematische Fehlersuche hauptsachlich in C Programmen Objektorientiertes Programmieren Newsgruppen comp lang object comp lang c comp lang objective c comp std c de comp lang c G Booch Object Oriented Analysis and Design with Applications Benjamin Cummings Redwood City 1994 590 S 112 DM U Claussen Objektorientiertes Programmieren Springer Berlin 1993 246 S 48 DM Konzept und Methodik von OOP Beispiele und bungen in C aber kein Lehrbuch f r C B J Cox A J Novobilski Object Oriented Programming Addison W
133. IOP IOPL IOR IOSGA IP 201 Interim Local Management Interface Information Modeling Interactive Multimedia Association Internationale Multimedia Akademie Karlsruhe Isochronous MAC FDDI International Association for Mathematics and Computers in Simulation In My Arrogant Opinion Slang In My Considered Opinion Slang Image Data Stream IBM International Mobile Equipment Identifier Identity Image In My Humble Opinion Slang In My Not So Considered Opinion Slang In My Not So Humble Opinion Slang In My Opinion Slang In My Own Biased Opinion Slang Inter Interface Message Processor Intelligent Multi Port Adaptor Intermediate Maintenance Standards Information Mangement System International Mobile Subscriber Identity Intelligentes Netz Telekom Individual Network e V Input Increment In Chain International Networking Conference Intelligent Networking Hub Individual Network Region Karlsruhe Integrated Network Management International Maritime Satellite Organization International Network News In No Particular Order Slang Institut National de Recherche en Informatique et en Automatique Input String Interrupt Internal Integer Interrupt Acknowledge Interoperability Technology Association for Information Processing Japan Internet Working Group Input Output Input Output Controller Input Output Control System Input Output Control Input Output Far End Crosstalk Internal Organi
134. LAN Emulation User Network Interface Look Up Table Lunar UNIX Users Group Logical Volume Logical Volume Manager Lead Writing Device Manual Option vulgo Bleistift Lichtwellenleiter Lightweight Process LAN WAN Exchange Lempel Ziv Welch Management Agent Mandatory Medium Media Access Control Message Authentication Check Code Motion Adaptive Color Plus Mixed Aloha Carrier Sense Modem Access Control System Macintosh Application Environment Metropolitan Area Network Manufacturing Automation Protocol Maintenance Analysis Procedure Mobile Application Part Manufacturing Package Mail Message Application Programmer Programming Interface Manufacturing Accounting and Production Information Control System IBM MAP Technical Office Protocol Memory Address Register Message Archiving and Retrieval Service Macro Assembler Microsoft Multi Station Access Unit Medium Attachment Unit Ethernet Mobile Audio Visual Terminal Magnetbildaufzeichnung Megabyte Multicast Backbone Megabits bytes per second Master Boot Record Mobiles Breitband System Mailbox Micro Channel Architecture IBM Multiprocessor Communication Adapter Mission Critical Application Motion Capture and Analysis Memory Control Block Memory Cache Controller Microelectronics and Computer Technology Corporation Multimedia Communications Community of Interest MCDA MCGA MCI MCM MCP MCSE MCT MCU MD MDA MDBS MDI MDIS MDK MDN
135. LM CLNP CLNS CLOE CLOO CLOS CLP CLS CLTP CLTS CLUT CLV CM CMA CMAR CO CC CH ZZZ Z a gt 2 CO CC CH 175 Carry Look Ahead Adder Carry Look Ahead Generator Channel Local Address Register Custom Local Area Signalling Service Clear Carry Flag Cutter Location Data European Commercial Licensed Evaluation Facilities Command Line Interface Call Level Interface Command List Clock Consolidated Link Layer Management Connectionless Network Protocol OSI Connectionless Mode Network Service Common LISP Operating Environment Reverse Object Oriented Logical Channel Common LISP Object System Cell Loss Payload Priority Constraint Logic Programming Connectionless Server Connectionless Transport Protocol OSI Clear Task Switch Flag Connectionless Transport Service Color Look up Table Constant Linear Velocity Corrective Maintenance Communications Manager IBM Connection Machine Configuration Management Concert Multi thread Architecture Control Memory Address Register Computer Mediated Communication Complement Carry Flag Common Mail Call C Memo Distribution Facility Center for Media Education Common Management Information Protocol OSI Common Management Information Service System Current Mode Logic Cache Memory Management Unit Complementary Metal Oxide Semiconductor Common Management Information Protocol over TCP IP Compare Word String Code Connection Management System Convers
136. M MUX MVB MVC MVGA MVS MVT MX NA NAB NACD NACS NAEC NAG NAK NAM NAMP NaN NAND NAPAW NAPLPS F Abk rzungen Model Specific Register MAN Switching System Multiplexer Section Terminating Equipment Machine Status Word Mobile Terminated Messaging Mail Message Transfer Agent OSI Multiple Terminal Access Mean Time Between Breakdowns Mean Time Between Failure Mean Time Between Jams Mean Time Data Availability Microsoft Tape Format Mail Transfer Protocol Internet Message Transfer Services System Multichannel Television Sound Multimedia Teleschool Berlitz Mean Time To Failure Mean Time To Repair Maximum Transmission Unit Mail User Agent Multiple User Dialogues Dimension Spiele Multi User Dungeon Maximal Usable Frequency Maus und Fenster Firlefanz Mobile User Link Massachusetts General Hospital Utility Multi Programming System Multiplexed Network for Distributive and Interactive Services Masking Universal Subband Integrated Coding and Multiplex Multiplexer Multimedia Viewer Book Multimedia Viewer Compiler Model View Controller Smalltalk MultiMedia VWOS Kkehrines Karlsruhe MVDM Monochrome Video Graphics Array Multiple Virtual Storage IBM Multiprogramming with a Variable number of Tasks Mail Exchange Network Access National Association of Broadcasters USA National Association of Computer Dealers NetWare Asynchronous Communication Server National Advisory
137. Mail Anschrift steht vorn im Buch im Impressum Es gibt Lernprogramme zu Hardware Betriebssystemen und Anwendungs programmen Man k nnte meinen da sich gerade der Umgang mit dem Computer mit Hilfe des Computers lernen l t Moderne Computer mit Hypertext beweg ter farbiger Grafik Dialogf higkeit und Tonausgabe bieten tats chlich M glich keiten die dem Buch verwehrt sind Der Aufwand f r ein Lernprogramm das diese M glichkeiten ausnutzt ist allerdings betr chtlich und deshalb sind manche Lernprogramme nicht gerade ermunternd Es gibt zwar Programme sogenann te Autorensysteme die das Schreiben von Lernsoftware erleichtern aber Arbeit bleibt es trotzdem Auch gibt es vorl ufig keinen befriedigenden Ersatz f r Unter streichungen und Randbemerkungen mit denen einige Leser ihren B chern eine pers nliche Note geben ber den modernen Wegen der Wissensvermittlung h tten wir beinahe einen jahrzehntausendealten aber immer noch aktuellen Weg vergessen Fragen Wenn Sie etwas wissen wollen oder nicht verstanden haben fragen Sie notfalls per E Mail Die meisten UNIX Wizards wizard person who effects seeming impossi bilities man skilled in occult arts person who is permitted to do things forbidden to ordinary people sind nette Menschen und freuen sich ber Ihren Wissensdurst M glicherweise bekommen Sie verschiedene Antworten es gibt in der Informatik auch Glaubensfragen doch nur so kommen Sie voran Wei
138. Mitteln zu Soft ware die sich entwickeln kann wenn die Zeit daf r reif ist Anpassungsf higkeit ist f r Software und Lebewesen wichtiger als H chstleistungen 2 7 2 Zerlegen in Teilaufgaben Controlling complexity is the essence of computer programming B W KER NIGHAN P J PLAUGER Software Tools Komplexe Aufgaben werden in meh reren Stufen in Teilaufgaben zerlegt die berschaubar sind und sich durch eine Funktion oder Prozedur im Programm l sen lassen Insofern spiegelt die Zer legung bereits die sp tere Programmstruktur wider Das Hauptprogramm soll m glichst wenig selbst erledigen sondern nur Aufrufe von Unterprogrammen ent halten und somit die gro e Struktur widerspiegeln Oft ist folgende Gliederung ein zweckm iger Ausgangspunkt e Programmstart Initialisierungen Real programmers know better than the users what they need Real programmers disdain structured programming 2 8 Prototyping 25 e Eingabe Dialog e Rechnung e Ausgabe e Hilfen e Fehlerbehandlung e Programmende Aufr umen Bei den Teilaufgaben ist zu fragen ob sie sich ohne die Komplexit t we sentlich zu erh hen allgemeiner formulieren lassen Damit l t sich die Ver wendbarkeit von Programmteilen verbessern Diese Strategie wird als Top down Entwurf bezeichnet Man geht vom Allgemeinen ins Einzelne 2 7 3 Zusammensetzen aus Teilaufgaben Der umgekehrte Weg Bottom up Entwurf liegt nicht so nahe Es gibt wieder
139. NIX Einzelthemen Newsgruppen comp unix A V Aho B W Kernighan P J Weinberger The AWK Programming Language Addison Wesley Reading 1988 210 S 58 DM Standardwerk zum AWK B Anderson u a UNIX Communications Sams North College 1991 736 S 73 DM Unix Mail Usenet uucp und weiteres M I Bolsky The vi User s Handbook Prentice Hall Englewood Cliffs 1985 66 S 59 DM Alle vi Kommandos bersichtlich aber keine Interna D Cameron B Rosenblatt Learning GNU Emacs O Reilly Sebastopol 1991 442 S 21 F da Cruz C Gianone C Kermit Heise Hannover 1994 650 S 90 DM Kermit Terminalemulation und File bertragung I F Darwin Checking C Programs with lint O Reilly Sebastopol 1988 82 S 10 263 B Goodheart UNIX Curses Explained Prentice Hall Englewood Cliffs 1991 287 S ca 80 DM Einzelheiten zu curses 3 und terminfo 4 L Lamb Learning the vi Editor O Reilly Sebastopol 1990 192 S 17 E Nemeth G Snyder S Seebass UNIX System Administration Handbook Prentice Hall Englewood Cliffs 1990 624 S 47 US Empfehlung eines Stuttgarter Kollegen A Oram S Talbott Managing Projects with make O Reilly Sebastopol 1993 149 S 35 DM G Staubach UNIX Werkzeuge zur Textmusterverarbeitung Springer Berlin 1989 157 S 33 DM awk 1 lex 1 und yacc 1 W R Stevens UNIX Network Programming Prentice Hall Englewood Cliffs 1990 772 S 60 US C
140. Ouverts Advanced Graphics Adapter Automatic Gain Control Advanced Graphic Chip Set Arbeitsgemeinschaft DX e V Erlangen Automatische Gebtihrenerfassung Arbeitsgemeinschaft Freier Mailboxen Aladdin Ghostscript Free Punlic License Advanced Graphics Package HP Advanced Graphical User Interface Automatic Guided Vehicle Altera Hardware Description Language Artificial Intelligence Analogue Input Adobe Illustrator Active Interface Application Integrated Architecture DEC Automatic Installation and Diagnostic Service Active Input Interface Association for Information and Image Management Automatic Interface Management Advanced Informatics in Medicine Apple Intel Motorola As I Mentioned Before Slang 164 AIPS AIS AISB AISP AIW AIX AL ALA ALC ALE ALEX ALGOL ALI ALM aa BEE gt Q ZZ e e Le ZZ Goor gt KS NSI NTC Perr ree eee E EG de gt pm gt gt 0003 gt AOL AOR AOS AOW AP APA APAR F Abk rzungen Astronomical Image Processing System Alarm Indication Signal Association of Imaging Service Bureaus Association of Information Systems Professionals APPN Implementor s Workshop Advanced Interactive Executive IBM Application Layer Assembly Language Arbitrated Loop American Library Association Arithmetic and Logic Circuit Automatic Level Control Address Latch Enable Altlasten Expertensystem Automatic Login Executor Algorithmic L
141. P PLR PLS pLsI PLV 455555555525 SE Zoe we se zZ an HH TU TI I UI II I TUT T OZ POCSAG PODA POE POET POF 221 Periodical Informational Posting Picture in Picture Parallel In Parallel Out Personal Informations System Programmable Interval Timer Path Information Unit Photo Imaging Workstation Protocol Implementation Extra Informations for Testing Printer Job Language Primary Key Public Key Cryptography Standards Group Philips Kommunikationsindustrie AG Physical Layer Presentation Layer Programming Language Payload Length Programmable Logic Array Programmed Logic for Automatic Teaching Operations Programmable Logic Controller Plastic Leadless Chip Carrier Programmable Logic Device Programmable Logic Element Programmable Logic Integrated Circuit Permanent Logical Link Phase Locked Loop Public Land Mobile Network Presentation Level Protocol Packet Lost Ratio Programmable Logic Sequencer Physical Layer Signaling Programmable Large Scale Integration Presentation Production Level Video Phasenmodulation Preventive Maintenance Presentation Manager Performance Management Physical Medium Attachment Performance Management and Accounting Port Mapper Physical Medium Dependent Layer Pardon Me For Jumping In But Slang Programmable Macro Logic Paged Memory Management Unit p Channel MOS Transistor Private Mobile Radio Project Manager Workbench Prim r Multiplex Anschl
142. P auf Zeilenanfaenge Hauptprogramm int main int argc char argv int flag 0 1 0 j char a mp FILE fp fps struct stat buf extern char apl extern char strcat void exit Pruefung des Programmaufrufs if argc 2 printf Aufruf duden FILENAME n exit 1 Arbeitsspeicher allokieren 2 21 C Programme 111 stat argvlil amp buf if mp malloc unsigned buf st_size NULL printf Kein Speicher frei n exit 1 apLO mp Textfile einlesen fuehrende NOCHARs loeschen if fp fopen argvlil r NULL printf File s kann nicht goeffnet werden n argv 1 exit 1 while a fgetc fp EOF if flag 0 amp amp NOCHAR a else flag 1 mp a if mp nii flag 0 apl il mp else mptt fclose fp Zeilenpointer sortieren if sort i 1 0 printf Sortieren ging daneben n exit 1 Textfile zurueckschreiben if fps fopen strcat argv 1 EXT w NULL printf File s s kann nicht geoeffnet werden n argv 1 exit 1 for j 0 j lt i j while a ap j n fputc a fps fputc n fps fclose fps 112 2 Programmieren in C Ende Hauptprogramm Sortierfunktion Bubblesort stabil int sort int imax d int flag 0 1 0 j 0 k 0 char p1 p2 extern char apl
143. Poin ter zugegriffen Der Geltungsbereich ist ein Block eine Funktion oder das ganze Programm hnliches gilt f r die Lebensdauer In der Deklaration eines Ope randen werden sein Name und seine Eigenschaften vereinbart In der Definition erh lt er einen Wert und ben tigt sp testens dann einen Platz im Arbeitsspeicher Deklaration und Definition k nnen in einer Anweisung zusammengezogen sein Die erstmalige Zuweisung eines Wertes an eine Variable hei t Initialisierung Deklaration und Definition werden auch unter dem Begriff Vereinbarung zusam mengefa t Auf die Auswahl und Strukturierung der Operanden soll man Sorgfalt ver wenden Eine zweckm ige Datenstruktur erleichtert das Programmieren Eine nachtr gliche nderung der Datenstruktur erfordert meist einen gro en Aufwand weil viele Programme oder Programmteile davon betroffen sind Die Namen der Operanden sollen ihre Bedeutung erkl ren erforderlichenfalls ist ihre Bedeutung im Kommentar oder in einer Aufz hlung festzuhalten 2 15 1 Konstanten und Variable Operanden k nnen w hrend des Ablaufs eines Programmes konstant bleiben wie die Zahl 7 oder sich ndern wie die Anzahl der Iterationen zur L sung einer Gleichung oder das Ergebnis einer Berechnung oder Textsuche Es kommt auch vor da ein Operand f r einen Programmaufruf konstant ist beim n chsten Aufruf aber einen anderen Wert hat wie der Mehrwertsteuersatz Man tut gut s mtliche Operanden eines Programmes a
144. Posttechnisches Zentralamt Darmstadt Physical Unit Packet Underway Limit Processor Upgrade Socket Physical Volume Permanent Virtual Channel Circuit Connection Parallel Passthru Virtual Machine IBM Private Virtual Network Programmer s Workbench Public Windows Initiative Interface Power Saft Punkt zu Punkt Verbindung ISDN Punkt zu Mehrpunkt Verbindung ISDN Questions and Answers Quadraturam plitudenmodulation Query By Example Query By Form Quarter Common Intermediate Format Quadri Data Layer Quick File Access Quadratic Flatpack Quarter Inch Cartridge Quanteninformationsdynamik Qualified Logical Link Control Query Management Facility Quality of Service Quadrature Quaternary Phase Shift Keying Queue Response Indicator Quadtree strukturierte Differenz Puls Code Modulation Queued Teleprocessing Access Method Regul rer Ausdruck Return Authorization Research And Development in Advanced Communication Technologies in Europe Resource Access Control Facility IBM 224 RAD RAG RAI RAID RALU RAM RAMP RAP RARE RARP RAS RASMED RATP RAW RBBS RBOC RBM RC RCA RCC RCDATA RCP RCS RCV RD R amp D RDA RDB RDBMS RDD RDP RDRAM RDS RDSR RDSS RDST RE REJ REM REO REP REQ RES RET REXX RF RFA F Abk rzungen Rapid Application Development Row Adress Generator Remote Alarm Indication Reundant Array of Inexpensive Independent Discs Register Arithmetic Logic Unit
145. Print Quality Enhancement Technology Pacing Response PowerPC Reference Platform Primary Rate Interface Parallel Reduced Instruction Set Multiprocessor Private Management Domain X 400 Partial Response Maximum Likelihood Packet Radio Network Pseudo Random Number Generator Precision RISC Organization Professional Office System IBM Programming in Logic Programmable Read Only Memory Printer Print Management Service OSF Professional Realtime Interface Personal System IBM Proportional Spacing Pittsburgh Supercomputer Center Product Service Center Polymer Stabilized Cholesteric Texture Platform Specific Driver Packet Public Switched Switching Data Network Personen Such Einrichtung Personen Such Einrichtung Port Switched Ethernet Permanent Swap File Phase Shift Keying Packet Switch Node PSP PSRAM PST PSTN PSW PT PTB PTD PTF PTI PTN PTT PTZ PU PUL PUS PV PVC PVM PVN PWB PWI PWR PzM PzM Q amp A QAM QBE QBF QCIF QDL QFA QFP QIC QID QLLC QMF QOS QPSK QRI QSDPCM QTAM RA RACE RACF 223 Program Segment Prefix Pseudo Static Random Access Memory Pre Structured Technology Public Switched Switching Telephone Network Program Status Word Page Table Packet Payload Type Physikalisch Technische Bundesanstalt Braunschweig Parallel Transfer Disk Drive Program Temporary Fix Pthread Framework Payload Type Identifier Indicator Plant Test Number Post Telephon Telegraph
146. Random Access Memory Remote Access Maintenance Protocol Rapid Application Prototyping Reseaux Associes de pour la Recherche en Europe Reverse Address Resolution Protocol Internet Random Access Storage Remote Access Service Row Address Strobe Reliability Availability and Serviceability Redundant Array of Slightly More Expensive Disks Reliable Asychronous Transfer Protocol Internet Read After Write Remote Bulletin Board System Regional Bell Operating Company Rule Base Memory Receiver Clock Receive Common Ripple Carry Adder Radio Corporation of Amerika Reduced Complexity Computer Remote Cluster Controller Replaceable Character Data Retransmission Control Procedure Resource Construction Set Revision Control System Record Communication Switching System Receive Receive Data Request Disconnect Recursive Design Research and Development Remote Data Database Access Relational Database Receive Data Buffer Relationales Datenbank Management System Replaceable Database Driver Reliable Data Protocol Internet Rambus DRAM Radio Data System Remote Data Services Receiver Data Service Request Radio Determination Satellite Services Rotating Head Digital Storage Tape Reverse Engineering Regular Expression Report Engine Reject Remark Remote Ring Error Monitor Removable Erasable Optical Disk Reply to Message Number Request Reset Remote Execution Service Resolution Enhancement Technology HP Restr
147. Real Time System Reliable Transfer Service Element OSI Run Time Type Information Identification Radio Teletype Funkfernschreiben Real Time Video Request Unit Response Unit Remote User Agent Reservation Upon Collision Scheme Rechenzentrum Universit t Mannheim Rechenzentrum der Universit t Stuttgart Real Virtuality Reverse Interrupt Reset Window Indicator Read Write Memory Receive Data Receiver Rechenzentrum System Administrator Structured Analysis Systems Application Architecture IBM Standards Activities Board IEEE CS Set Asynchronous Balanced Mode Set Asynchronous Balanced Mode Extended Single Attachment Concentrator Special Area Code Service Access Structured Analysis and Design Technique Symbolic Automatic Integrator Serial Access Memory Sequential Access Method System Administration Manager Smart ATM Modul Satellite Access Network Service Advertising Protocol Novell Service Access Point OSI Service Access Point Identifier Specific Absorption Rate Segmentation And Reassembling Set Asynchronous Response Mode Set Asynchronous Response Mode Extended Statistical Analysis System Single Attached Station FDDI Shugart Associates System Interface Security Administrator s Toolfor Analyzing Networks Surface Acoustic Wave Filter Standby Indicator Single Board Computer Single Byte Character Set 228 SBP SC SCA SCADA SCAM SCART SCB SCC SCCP SCD SCF SCI SCM SCMS SCN SCNR S
148. S MDR MDT MDY ME MEB MEO MES MESI MF MFC MFFS MFLOP MFM MFP MFS MFT MFTL MFV MGA MH MHEG MHF MHS MIB MIC MICE MICR MID MIDI MIF MII mil 209 Micro Channel Developers Association Multi Colour Graphics Adaptor Array Media Control Interface Multichipmodul Master Control Programm Macintosh Coprocessor Platform Microsoft Certified Professional Microsoft Certified Systems Engineer MOS Controlled Thyristor Micro Control Unit Multi Chip Unit Message Digest Monochrome Display Adapter Mediated Digest Authentication Mobile Data Base Station Medium Dependant Interface Multiple Document Interface Mobile Data Intermediate System Multimedia Development Kit Microsoft Managed Data Network Service Minimum Design Requirement Mittlere Datentechnik Month Day Year Datumsangabe Mutation Engine Memory Expansion Board Medium Earth Orbit Mobile End System Modified Exclusive Shared Invalid Cache Multifunktion Multifunktionale Chipkarte Microsoft Foundation Classes Microsoft Flash File System Million Floating Point Operations Modified Frequency Modulation Multifunction Peripheral Maximum Frame Size Multi Programming with a Fixed number of Tasks My Favorite Toy Language Mehrfrequenz Wahlverfahren Telefon Monochrome Multimode Graphic Adapter Modified Huffman Multimedia and Hypermedia Expert Group Message Handling Facility Message Mail Handling Service System Management Informa
149. S s X Window System Zahl ganze Z 33 Gleitkommazahl 33 Integer s ganze Z komplexe Z 19 124 Primzahl 103 126 127 Zahlensystem 131 Zeichen Gegenschr gstrich s Backslash Zeichenkette s String Zeichensatz ASCII 134 EBCDIC 134 IBM PC 134 Latin 1 141 ROMANS 134 Zeiger Array s Array Zeiger Marke s Cursor Zeiger Typ s Typ Zeilenende s Zeilenwechsel Zeit berschreitungsfehler s Timeout Zeitersparnis 12 Zeitschrift 6 274 Zeitstempel s File ZEMANEK H 12 Zentraleinheit s Prozessor Zirkeldefinition 79 Zirkelschlu 79 zitieren s quoten Zugriff Zugriffsrecht s File ZUSE K 276 ZUSE 222 17 Zuweisung 45 Zweiersystem s Dualsystem Zwischenraum s Space
150. Server Land Erdfunkstelle Line Feed Last File Indicator Landesanstalt fiir Kommunikation Local File System List of Frequently Seen Acronyms Least Frequently Used Low Gain Antenna Library General Public License GNU Link Header Logical Link Control Lotus International Character Set Large Internet Exchange Packet Novell Low Insertion force Last In First Out Speicher Last In Last Out Speicher Lotus Intel Microsoft Library Information Management System Large Internet Packet Line Interconnection Point Logical Inferences per Second Large Internet Packet Exchange Logical IP Subnetwork List Processing Language Lots of Irritating Superfluous Parentheses Library and Information Technology Association USA Loadable Kernel Modul Loadable Kernel Server Local Loopback LLA LLC LLC2 OD 55 gt MBCS zzz nn Q Frere eee E ZAZA zZ QW a Z C Q Q LOCIS LOF LOL LON LOP LORE LOS LP LPC LPD lpi LPL lpm LPN LPP lps LPS LPT LQ LQM LOR LRC LRE LRI LRPC LRU LSA LSB LSC LSD LSI LSID LSZH 207 Link Level Access Logical Link Control Logical Link Control Class 2 Link Layer Protocol Lots and Lots of Thundering Applause Slang Lotus Multibyte Character Set Local Management Interface Laser Magnetic Storage License Management Service OSF LAN MAN Standards Committee IEEE Logical Network Management Unit Logical Network Low Noise Block Conve
151. Sp ter wenn es nur um den Typ geht wie bei der Parameter bergabe reicht die Angabe int za Ein String ist ein Array von Zeichen characters abgeschlossen mit dem un sichtbaren ASCII Zeichen Nr 0 hier dargestellt durch Infolgedessen mu das Array immer ein Element l nger sein als der String Zeichen enth lt Wir dekla rieren einen ausreichend langen String und belegen ihn gleichzeitig mit dem Wort UNIX char s 6 UNIX Die L ngenangabe 6 k nnte entfallen da der Compiler aufgrund der Zuweisung der Stringkonstanten die L nge wei Der String ist unn tig lang aber vielleicht wollen wir sp ter ein anderes Wort darin unterbringen Das Array sieht dann so aus 2 15 Operanden 39 Pointer Adresse Speicher Wert Variable s s all U s s 1 s 1 N s 2 s 2 s 2 I s 3 s 3 s 3 X s 4 s 4 s 4 s 5 s 5 s 5 Die Fragezeichen deuten an da diese Speicherstelle nicht mit einem bestimmten Wert belegt ist Der Zugriff ist erlaubt was darin steht ist nicht abzusehen Man darf nicht davon ausgehen da Strings immer mit Spaces initialisiert werden oder Zahlen mit Null Wir deklarieren nun ein zweidimensionales Array von Ganzzahlen eine nicht quadratische Matrix int al3 4 die mit folgenden Werten belegt sei 12 3 4 5 6 7 8 9 10 11 12 Im Arbeitsspeicher steht dann folgendes Pointer 2 Pointer 1 Speicher Wert Variable a
152. Standardfenster sofern nicht anders angegeben Syntax wie die C Standardfunktion printf 3 refresh Die bisher aufgerufenen Funktionen haben nur in einen Puffer geschrieben auf dem tats chlichen Bildschirm hat sich noch nichts ger hrt Erst mit refresh wird der Puffer zum Bildschirm bertragen getch liest ein Zeichen von der Tastatur clear putzt den Bildschirm beim n chsten Aufruf von refresh newwin erzeugt ein neues Fenster hier mit dem Namen frame auf der angegebenen Position mit einer bestimmten Anzahl von Zeilen und Spalten wstandout setzt das Attribut des Fensters auf standout d h auf umge kehrte Helligkeiten beispielsweise Gilt bis wstandend wrefresh wie refresh nur f r ein bestimmtes Fenster delwin l scht ein Fenster Gegenst ck zu newwin touchwin schreibt beim n chsten refresh ein Fenster v llig neu Die curses 3 Funktionen machen von den Terminalbeschreibungen in den usr lib terminfo Files Gebrauch man braucht sich beim Programmieren um den Terminaltyp nicht zu sorgen Andererseits kann man nichts verwirklichen was in terminfo nicht vorgesehen ist Grafik zum Beispiel 2 21 9 Wie blind ist der Zufall 2 21 10 Ein Herz f r Pointer Pointer sind nicht schwierig sondern allenfalls gew hnungsbed rftig Sie sind bei C Programmierern beliebt weil sie zu eleganten und schnellen Programmen f hren Wir wollen uns an Hand einiger Beispiele an ihren Gebrauch gew hne
153. System File Table Signal Ground System Global Area Silicon Graphics Inc Standard Generalized Markup Language Simple Gateway Management Monitoring Protocol Internet Sample and Hold Secure Hash Algorithm Shell Archive Strongly Hedonistic Internet Area Scalable Heterogeneous Integrated Facility Sehen H ren Riechen Schmecken Multimedia Secure HTTP Shift In Systeme International d Unites Signalling Rate Indicator Source Index System Information Semiconductor Industries Association Supraleitendes Intelligentes Antennen Modul Stranger In A Strange Land Slang Scaled Index Based Station Identification Symbolic Interactive Debugger Silence Descriptor Selective Integral Ground Software Special Interest Group Special Interest Group on CD ROM Applications and Technology Special Interest Group on Programming Languages Super Information Highway 230 SII SILK SIM SIMD SIMM SIMPLE SIN SINA SIO SIP SIPO SIPP SIR SISD SISO SISY SIT SIWG SK SL SLC SLIP SLSI 222222 oo gt ee Q J A DSU n nnn nn nn nn nn nn mn un mn mn E E E E E E E E F Abk rzungen Static Invocation Interface Speech Image Language Knowledge Set Initialization Mode Subscriber Identification Module Single Instruction Multiple Data stream Single In Line Memory Module Sheer Idiots Monopurpose Programming Language Environment Service Indicator ISDN SISY Integriertes FTP Server Arch
154. Traffic Message Channel Time Division Multiplexing Tivoli Management Environment Telecommunication Management Network Test and Measurement Systems Language Twisted Nematic TelNet Temex Netzabschluss Terminal Node Controller Twisted Nematic Field Effective Material The New Hackers s Dictionary Transport Network Node Taiwan New PC Consortium Thanks Slang Timeout Test of English for International Communication Top of Form Technical and Office Protocol Table Of Pages Temperature and Overload Protected FET Type Of Service Tramiel s Operating System Atari Transport Protocol Transaction Processing Turbo PASCAL Tiefpass Transport Protocol Class 0 OSI Transport Protocol Class 4 OSI Transient Program Area Transaction Processing Performance Council Twisted Pair Distributed Data Interface Transmission Priority Field Transport Packet Header tracks per inch Third Party Maintenance Transactions Per Minute Transactions Per Second Transaction Processing System Transaction Processing Service Element The Powers That Be Slang Text Processing Utility Turbo PASCAL Unit Total Quality Management Terminal Ready Task Register Telecommunications Recommendations Application Committee Transcoder and Rate Adaption Unit Terminator Power Leitung SCSI The Realtime Operating System Nucleus Token Ring Terminal Token Rotation Timer Transport Station Technical Support Alliance Transport Service Ac
155. ULL 37 Objektcode 20 Oktalsystem 3 131 Oktett 3 On line Manual s man 1 Operand 31 Operating System s Betriebssystem Operation arithmetische O 45 Bit O 49 120 Grund O 25 logische O 47 Modulo O 33 Pointer O 50 Relations O 48 zul ssige O 32 Operator Zeichen 27 44 Optimikerung 95 Option 10 Ordinateur 1 Ordner s Verzeichnis PACKARD D 276 Pager 12 Parameter Ubergabe 62 aktueller P 62 formaler P 62 P Option 10 PASCAL 6 18 PASCAL B 276 Passwort 9 Patch 21 Pattern s Muster PC s Computer Peripherie 5 Pfad s File Pfeiltaste s Cursor Physiologie 2 Pitch s Schrift 288 Plattform s System Platzhalter 62 PLAUGER P J 24 Point size s Schrift Pointer 31 37 50 100 dangling P 101 Darstellung 120 far P 88 huge P 88 near P 88 Nullpointer 37 120 P auf Funktion 62 P auf void 35 101 P Arithmetik 38 Pointer Fenster s Cursor portieren 119 Portrait s Format Pr prozessor C 88 155 printf 3 50 Progammiersprache BASIC 18 Programm 2 92 ndern 21 Aufgabenstellung 23 benutzerfreundliches P 22 Bottom up Entwurf 25 Codierung 19 23 24 Effizienz 22 Entwurf 23 Fassung s Version fehlerfreies P 21 Grund Operation 25 Hauptprogramm 92 Patch 21 Pflege 23 programmiererfreundliches P 22 Prototyp 25 robustes P 21 Struktur 24 25 Test 23 Top down Entwurf 24 Version 21 Programmiersprache 6 ALGOL 18 algorithmische P 15 Assembler 16 17 C 19 C 15 19 128 CO
156. Volume File C Quelle Daten Datenbank Paradox Datenbank dBase Driver Configuration file Dictionary Fax File Disk Doubler Definitionen Defaultwerte Demonstration Description Dr Halo PIC Microsoft Windows Bitmap OS 2 Bitmap Dictionary Lotus Data Interchange Format Directory Verzeichnis Dynamically Linked Library OS 2 Windows Dokument Textfile 158 dok drs drv drw dta dv dvi dvr dxb dxf ega el elc eml enc eps err etx exe fax fif fli fnt for fxs gem gfb gif hex hdf hpp hqx idx img inf ini jfi jif jpeg lib lof NTP vo TON Te mo yore ove ep er OO OO CO D D um map errr Or Or Org D CO CG D D CG D E File Kennungen Dokument Textfile Driver Resource WordPerfect Device Driver Drawing Daten Desqview Scriptfile Metafile von TeX ger teunabh ngig Device Driver Drawing Interchange Binary AutoCAD Data Exchange Format Autocad EGA Grafik Emacs Lisp Emacs Lisp compiled Electronic Mail encoded Encapsulated Postscript Error Fehlerprotokoll Setext File executable ausf hrbares Programm MS DOS FORTRAN Quelle Fax File Fractal Image Format EmTeX Fontlibrary Fontfile FORTRAN Quelle Fax File Winfax GEM Metadateien Gifblast compressed GIF image Graphics Interchange File TeX Glossar mit GNU gzip 1 komprimiert Header File include File Hexdump Hierarchical Data Format Header File C Macintosh BinHex encoded C Q
157. WBNI IWF IWU IXI JA JAD JAM JANET JCALS JCL JEDEC JEIDA JES JESSI JFET JFIF JFS JICST JOSS JPEG JPL JTAP JTC JTM JUNET JUST JvNC K 12 KB kbps KCL KCS KDC KDT KES KF KNF KI KIBO KIS KISS KIT F Abk rzungen Interactive Voice Response IBM Verkabelungssystem Interactive Visualization System Interrupt Vector Table Independent Verification and Validation It Would Be Nice If Slang Impulswahlverfahren Telefon Interworking Unit International X 25 Interconnect Jump Address Joint Application Design Jyacc Application Manager Joint Academic Network England Joint Computer Aided Acquisition and Logistic Support System Job control Language IBM Joint Electronic Devices Engineering Council Japanese Electronics Industry Development Association Job Entry System Joint European Submicron Silicon Initiative Junction Field Effect Transistor JPEG File Interchange Format Journaled File System Japan Information Center of Science and Technology Joint Object Services Submission Joint Photographic Experts Group Jyacc Procedural Language Jet Propulsion Laboratory JTC1 TAG Application Portability Study Group Joint Technical Committee ISO IEC Job Transfer and Manipulation Japanese UNIX Network Joint Users of Siemens Telecommunications John von Neumann Super Computer Center Kindergarten through 12th grade Kilobyte Keyboard Kilobit byte per second Kyoto Common Lisp Kansas City Sta
158. X MACH und Amoeba H Wettstein Systemarchitektur Hanser M nchen 1993 514 S 68 DM Grundlagen kein bestimmtes Betriebssystem 6 UNIX allgemein Newsgruppen comp unix comp sources unix comp std unix de comp os unix fr comp os unix alt unix wizards cern unix fido ger unix fido unix maus os unix 261 maus os unix zer z netz unix zer z netz rechner unix M J Bach Design of the UNIX Operating System Prentice Hall London 1987 512 S 52 US Filesystem und Prozesse wenig zur Shell S R Bourne Das UNIX System V The UNIX V Environment Addison Wesley Bonn 1988 464 S 62 DM Einf hrung in UNIX und die Bourne Shell D Gilly u a UNIX in a Nutshell O Reilly Sebastopol 1992 ca 250 S 22 DM Nachschlagewerk zu den meisten UNIX Kommandos J Gulbins UNIX Springer Berlin 3 Aufl 1988 773 5 84 DM Benutzung von UNIX ausf hrlich geht in die Einzelheiten H Hahn A Student s Guide to UNIX McGraw Hill New York 1993 633 S 66 DM Gute Erg nzung zu unserem Werk ohne C mit Internet Diensten M Harlander Introduction to UNIX ftp ciw pub docs unix unix int ps gz 1991 51 S Postscript J A Illik siehe unter Programmieren in B W Kernighan P J Plauger Software Tools Addison Wesley Reading 1976 338 S 38 US Grundgedanken einiger UNIX Werkzeuge Programmierstil B W Kernighan R Pike Der UNIX Werkzeugkasten Hanser M nchen 1986 402 S 76 DM Gebrauch der UNIX
159. abel C 57 LAN s Local Area Network Landscape s Format large Speichermodell 88 Laufvariable s Schleifenz hler Laufwerk 5 Lebensdauer Operand 31 43 44 Leerzeichen s Space Lehrbuch 6 256 LEIBNIZ G W 2 276 Lernprogramm 6 8 Library s Bibliothek Line feed s Zeilenwechsel Line spacing s Zeilenabstand Linguistik 2 Link Hard L s harter L Soft L s weicher L symbolischer L s weicher L linken Programme 82 Sach und Namensverzeichnis Linker 20 LISP 15 61 Literal s Konstante 27 Lizenz s Nutzungsrecht Loader s Linker Logiciel 2 logoff 9 logout 9 long C 33 long double C 33 main 73 74 92 Makro 62 89 Makro Shell s Shellscript malloc 3 107 man 1 12 Mantisse 33 Mapper s Linker Marke C s Label Marke Fenster s Cursor Maschinencode 20 Maschinenwort 3 33 36 maskieren s quoten math h 85 Mathematik 2 MauchHtv J W 276 Medium s Speicher medium Speichermodell 88 Megabyte 3 Memory s Speicher MODULA 18 Monitor s Bildschirm more 1 12 Morse S 276 mv 1 11 Nachricht 1 Nachrichten s News Nachschlagewerk 7 NAG Bibliothek 87 Name Benutzer N 9 Name C 27 30 120 Operanden N 31 Programm N 91 Namens bergabe 63 NAPIER J 276 Nass I 27 Nassi Shneiderman Diagramm 27 Naur P 28 287 Nebenwirkung 59 NELSON T 8 Netnews 8 Network s Netz Netz Computernetz 5 NEUMANN J VON 276 newline s Zeilenwechsel NICKEL K 276 N
160. ac s case exit 9 exit Shell 10 exit 2 57 Exponent 33 extern C 43 120 Fallunterscheidung s case switch FAQ s Frequently Asked Questions Fassung s Programm Fehler Fehlerfreiheit 21 95 Zaunpfahl F 57 Feld Feld Typ s Typ Feldgruppe s Array Fenster Schaltflache s Button Title bar s Kopfleiste Festplatte 4 File 92 Auslagerungsdatei s Swap F Definitonsdatei s Include F Eigent mer s Besitzer EOF s File Ende Handle s Deskriptor Headerfile s Include F Include F 154 285 Kennung 20 156 Pfad s absoluter Name regul res F s gew hnliches F Strukturtyp 36 System 120 Flag Option 10 Flag Variable 113 Flicken Programm s Patch Flie band s Pipe float C 33 Floppy Disk s Diskette Flu diagramm 26 Folder s Verzeichnis for Schleife C 55 Foreground s Prozess Format Landscape s Querformat Portrait s Hochformat Formatstring 78 FORTRAN 6 17 Fragen 8 free 3 107 Freiburger Code 17 Frequently Asked Questions 7 FSP s File Service Protocol FTP s File Transfer Protocol ftp ciw uni karlsruhe de 256 Funktion C 61 92 Array von F 62 Definition 61 Einsprungadresse 37 grafische F 86 Input Output F 83 mathematische F 85 Pointer auf F 62 Prototyp 61 Speicherklasse 43 Standardfunktion 83 150 Xlib F 113 Fuzzy Logik 57 FYI s For Your Information Gast Konto 9 Gegenschr gstrich s Zeichen Geltiungsbereich 43 Gigabyte 3 GKS s Graphical Kernel System Gleichung 45 G
161. acht der Vernunft Computer Power and Human Reason From Judgement to Calculation Suhrkamp Taschenbuch Wissenschaft 274 Frankfurt Main 1990 369 S 20 DM H Zemanek Das geistige Umfeld der Informationstechnik Springer Berlin 1992 303 S 39 DM Zehn Vorlesungen ber Technik Geschichte und Philosophie des Computers von einem der Pioniere 20 Nicht einzuordnen Newsgruppen alt fan hofstadter D R Hofstadter G del Escher Bach ein Endloses Geflochtenes Band dtv Klett Cotta M nchen 1992 844 S 30 DM R Kurzweil KI Das Zeitalter der k nstlichen Intelligenz Hanser M nchen 1993 552 S 98 DM vergriffen im Original The Age of Intelligent Machines MIT Press Cambridge 1992 565 S 63 DM Beide B cher haben nichts unmittelbar mit UNIX C oder dem Internet zu tun aber viel mit unserem Verh ltnis zum Computer und zu unserem eigenen Denken 21 Zeitschriften IX Verlag Heinz Heise Hannover monatlich ca 130 5 f r Anwender von Multi User Systemen technisch Offene Systeme GUUG Springer Berlin viermal im Jahr offizielle Zeitschrift der German UNIX User Group The C Users Journal R D Publications Lawrence USA monatlich ca 150 S Dr Dobb s Journal Miller Freeman Inc San Mateo USA monatlich ca 180 5 Software Tools for the Professional Programmer viel C und C 275 unix mail Hanser Verlag M nchen sechsmal im Jahr ca 70 S f r Entwickler und Benutze
162. ahme by reference printf C Fkt hat uebernommen 4d d n px py Zz px py printf C Fkt gibt folgende Summe zurueck d n z Aenderung der Summanden px 66 py 88 return z Programm 2 14 C Funktion die Parameter by reference bernimmt Im bew hrten FORTRAN 77 haben wir leider keinen Weg gefunden der Funk tion beizubringen ihre Parameter by value zu bernehmen in FORTRAN 90 ist es m glich Es bleibt daher bei nur einer Funktion die wie in FORTRAN blich ihre Parameter by reference bernimmt C Fortran Funktion Summe call by reference C Compileraufruf f77 c fsr f integer function fsr x y integer x y Z write 6 F Fkt mit Uebernahme by reference 2 18 Funktionen 65 write 6 F Fkt hat uebernommen 216 x y Z xty write 6 F Fkt gibt zurueck 18 z C Aenderung der Summanden x 66 y 88 fsr z end Programm 2 15 FORTRAN Funktion die Parameter by reference bernimmt PASCAL Funktionen kennen wieder beide M glichkeiten aber wir werden auf eine andere Schwierigkeit sto en Vorl ufig sind wir jedoch hoffnungsvoll Pascal Funktion Summe call by value Compileraufruf pc c psv p module b import StdOutput export function psv x y integer integer implement function psv var z integer begin writeln Funktion mit Parameteruebernahme by value 1 writeln P Fkt hat uebernommen
163. al RFC 1175 FYI 3 FYI on Where to Start A Bibliography of Internetworking Information ftp ciw pub docs net rfe rfe1175 1990 45 S ASCII Empfehlungen und kurze Kommentare Erklarungen X Technical Bibliography presented by The X Journal ftp ciw pub docs xws xbiblio ps gz 1994 22 S Postscript Kurze Inhaltsangaben teilweise kommentiert J December Information Sources The Internet and Computer Mediated Communication ftp ciw pub docs net general cmc gz 1994 33 S ASCII Hinweise wo welche Informationen im Netz zu finden sind S Ko A Concise Guide to UNIX Books Netnews misc books technical oder comp unix questions ftp ciw pub docs unix unix books 1993 22 S ASCII Empfehlungen und kurze Kommentare D A Lamb Software Engineering Readings Netnews comp software eng ftp ciw pub docs misc sw engng reading 1994 10 S ASCII Teilweise kommentiert R E Maas MaasInfo DocIndex ftp ciw pub docs net general maasinfo idx 256 257 1994 20 S ASCII Bibliografie von rund 100 On line Texten zum Internet J Quarterman RFC 1432 Recent Internet Books ftp ciw pub docs net rfe rfe1432 1993 15 S ASCII Empfehlungen und kurze Kommentare C Spurgeon Network Reading List TCP IP Unix and Ethernet ftp ciw pub docs net general reading list ps gz und txt gz 1993 ca 50 S Postscript und ASCII Ausf hrliche Kommentare und Hinweise M Wright Yet Another book List YABL ftp ciw pub d
164. al Processing Object Linking and Embedding Optical Phone Line Interface Open Look Intrinsic Toolkit On Line Informationssystem UNIX Optical Line Termination On Line Transaction Processing Old Man KW Amateur Object Manager Optimal Mismatch Open Management Architecture On board Modul Extension Object Management Facility Framework Object Module Format Object Management Group Open Messaging Interface Open Microprocessor Systems Initiative Optical Mark Recognition Object Modelling Technique Open Network Computing Sun Operator Number Identification Open Network Management Open Network Management System Open Network Node Optical Network Unit Open Network Provision Open Networking Platform Object Oriented System Analysis Object Oriented Database Management System Out of Frame On Off keying Object Oriented Language Object Oriented Pleasure Out Of Print Slang Object Oriented Programming Language Object Oriented Programming System Object Orientied Programming Systems Languages and Applications Open Protocol Architecture Online Public Access Catalogue Optische Anschlu leitung Oberpostdirektion Original Point of Distribution Open Prepress Interface 218 OPM OPT OPUS OQL OQPSK ORB org OROM ORS OS OSA OSAF Osc OSCAR OSD OSE OSF OSI OSIE OSITOP OSM OSPF OSPI OSQL OSs OSTA OSTM OSTP OT OTA OTD OTDM OTDR OTF OTI OTOH OTP OTR OV OVL OVSt OWG OWL PA PABX PA
165. alen Variablen oder mit Pointern arbeiten Der R ckgabewert kann immer nur ein einziger Wert sein Es kommt vor da eine Funktion zwar einen Wert zur ckgibt dieser aber nicht weiter verwendet wird In diesem Fall warnt lint 1 aber das Programm ist korrekt H ufig bei printf 3 und Verwandtschaft Den R ckgabewert der Funktion main findet man in der Shell Variablen oder status Er kann in einem Shellscript weiterverarbeitet werden Hier ein Beispiel f r den Gebrauch der return Anweisung Beispiel fuer return Anweisungen 21 02 91 define PI 3 14159 include lt stdio h gt Funktionsdeklarationen Prototypen void text int eingabe double area float rad char maxi Hauptprogramm int main d 60 2 Programmieren in C float r char wort1 63 wort2 63 text if leingabe puts Eingabe war richtig else puts Eingabe war falsch printf Radius eingeben scanf Yf Ari printf Kreisflaeche lf n area r printf Bitte zwei Woerter eingeben scanf s s worti wort2 printf Das laengere Wort ist s n maxi worti wort2 return 0 Funktion ohne Returnwert Typ void void text puts nDiese Funktion gibt nichts zurueck return Funktion mit richtig falsch Returnwert Typ int int eingabe int 1 printf Bitte die Zahl 37 eingeben scanf d amp i if i 37 return 0 else return 1
166. allocation of color cell using predefined color name if XAllocNamedColor mydisplay cmap red amp exact amp color1 0 fprintf stderr Cannot use predefined color exit 3 if XAllocNamedColor mydisplay cmap blue amp exact amp color2 0 fprintf stderr Cannot use predefined color exit 3 if XAllocNamedColor mydisplay cmap green amp exact amp color3 0 fprintf stderr Cannot use predefined color exit 3 XSetWindowBackground mydisplay mywinl color2 pixel changing the background of window XSetWindowBackground mydisplay mywin2 color3 pixel XSetBackground mydisplay mygcei color2 pixel setting foreground attribute in GC structure XSetForeground mydisplay mygci yellow pixel setting background attribute in GC structure XSetForeground mydisplay mygc12 colori pixel XSetBackground mydisplay mygc12 color3 pixel XSetBackground mydisplay newgc mybackground XSetFont mydisplay mygc1 XLoadFont mydisplay vrb 25 setting font attribute in GC structure XSetFont mydisplay mygc12 XLoadFont mydisplay vri 25 XSetFont mydisplay newgc XLoadFont mydisplay vri 25 window mapping XMapRaised mydisplay mywin1 XMapRaised mydisplay mywin2 input event selection XSelectInput mydisplay mywini KeyPressMask ExposureMask XSelectInput mydisplay mywin2 KeyPressMask ExposureMask ButtonPressMask
167. ameter by reference an eine FORTRAN Funktion bergibt FORTRAN Programm das PASCAL Funktionen aufruft Compileraufruf 77 o fsummep fsummep f psv o psr o program fsummep ALIAS psv val val 100 102 103 104 105 integer a b s psv psr external psv psr write 6 100 read 5 a b write 6 102 a b sc atb write 6 103 s call by value s psv a b write 6 104 s write 6 102 a b call by reference s psr a b write 6 105 s write 6 102 a b format Bitte die beiden Summanden eingeben format Die Summanden sind 2I6 format Die Summe direkt ist I8 format Die Summe ist I8 format Die Summe ist I8 end Programm 2 23 FORTRAN Programm das Parameter by value und by reference an PASCAL Funktionen tibergibt Die FORTRAN Compiler Anweisung ALIAS veranla t den Compiler der je weiligen Funktion die Parameter entgegen seiner Gewohnheit by value zu berge 70 2 Programmieren in C ben Zum guten Schlu die PASCAL Hauptprogramme PASCAL Programm das C Funktionen aufruft Compileraufruf pc o psummec psummec p csv o csr o program psummec input output var a b s integer function csv x y integer integer call by value external C function csr var x y integer integer call by reference external C begin writeln Bitte die beiden Summanden eingeben readln a readln b write Die Summanden si
168. ammentwicklung vollzieht sich in der Praxis nicht so geradlinig wie es der obige Plan vermuten l t Aus jeder Stufe kommen R ckspr nge in vorange gangene Stufen vor man k nnte auch von R ckkoppelungen sprechen Dagegen ist nichts einzuwenden es besteht jedoch eine Gefahr Wenn man nicht Zwangsma nahmen ergreift Schlu striche zieht erreicht das Programmierprojekt nie einen definierten Zustand Programmierer verstehen das Kaufleute und Kunden nicht Gilt auch f r Buchmanuskripte Der steigende Bedarf an Software und ihre wachsende Komplexit t verlan gen die Entwicklung von Programmierverfahren mit denen durchschnittliche Pro grammierer zuverl ssige Programme entwickeln Auf geniale Real Programmers allein kann sich keine Firma verlassen Die Entwicklung dieser Programmiertech nik Software Engineering ist noch nicht abgeschlossen 2 7 Aufgabenanalyse und Entwurf 2 7 1 Aufgabenstellung Die meisten Programmieraufgaben werden verbal gestellt nicht in Form einer mathematischen Gleichung Zudem sind sie anfangs oft pauschal abgefa t da dem 24 2 Programmieren in C Aufgabensteller Einzelheiten noch nicht klar sind Auf der anderen Seite ben tigt der Computer eine eindeutige ins einzelne ge hende Anweisung da er anders als ein Mensch fehlende Informationen nicht aufgrund seiner Erfahrung und des gesunden Menschenverstandes erg nzt Der erste Schritt bei der Programmentwicklung ist daher die Formulierung
169. amt Fernamt Chip Fabrication Plant Fast Access Btree Structure File Access Code Federation Automatic Coding Technologies File Attribute File Fernmeldeanlagengesetz File Access Listener Floating Gate Avalanche MOS Family Area Network File Access Protocol Family Application Program Interface Format and Protocol Language Frequently Asked Questions Fragen Antworten Quellen der Erleuchtung Netnews FAQ List Federation of American Research Networks Function and Algorithm Specific Integrated Circuit Fast Access Stationary Tape Guide Transport File Allocation Table Far End Crosstalk Fax and Telephone Answering Machine Farb Bild Austast Synchronsignal RGB Signal Free Buffer Enquiry Arcnet Fractional Bit Rate Modulation Frame Control Federal Criteria Fibre Channel Fibre Channel Association File Control Block Federal Communications Commission USA Federal Coordination Committee on Science Engineering and Technology flux changes per inch Fibre Channel Protocol Frame Check Sequence First Customer Shipment Fiber Channel Systems Initiative Fast CMOS Technology Full Duplex Floppy Disk Floppy Disk Controller Fiber Distributed Data Interface FDDI Twisted Pair Physical Layer Medium Dependent FDDI Unshielded Twisted Pair Full Duplex Ethernet Full Duplex EtherSwitch Full Duplex FDDI Fixed Disk Frequency Division Multiplexing Frequency Division Multiple Multiplex Access 192 FDSE FDX F
170. anguage Automatic Link Intelligence Application Loadable Modul Alternate Arithmetic Logic Logical Unit Arbeitskreis der Leiter Wissenschaftlicher Rechenzentren Amplitudenmodulation Automated Messaging and Directory Assistance Active Matrix Display Advanced Micro Devices Inc USA Amplitude Modulation Data System Automated Materials Handling Active Matrix Liquid Crystal Display Advanced Memory Management Architecture Administration and Maintenance Order Andrew Message System Amateur microcomputer teleprinting over radio Automatic Number Announcement Circuit Architecture Neutral Distribution Format Automatic Number Identification Telefon Automatic Noise Limiter Automatic Network Routing Access Network system Advances Network Systems Architecture American National Standards Institute Advanced Networking Test Center International Academic Networking Workshop Analogue Output Apple Open Collaboration Environment Application Operating Environment AT amp T Active Output Interface America Online Inc Atlantic Ocean Region Add Or Subtract Asia and Oceania Workshop OSI Application Adjunct Processor Automatic Pagination All Points Addressable Adaptive Packet Assembly Arithmetic Processing Accelerator Amateur Press Association Authorized Program Analysis Report IBM APAREN APaRT APC APCUG APDA APEX APG API APIA APIC APL APM APOL APP APPC APPI APPN APS APSE APT ARA ARAP ARC
171. ardfunktion malloc 3 ndern siehe Abschnitt 2 21 12 Dynamische Speicherverwaltung Es gibt mehrdimensionale Arrays Matrizen usw mit entsprechend vielen In dexfolgen Die Elemente werden im Speicher hintereinander in der Weise abgelegt da sich der letzte Index am schnellsten ndert Der Compiler linearisiert das Array wie man sagt Eine Matrix wird zeilenweise gespeichert Vorsicht beim bertragen von oder nach FORTRAN dort l uft die Indizierung anders als in C eine Matrix wird spaltenweise gespeichert PASCAL verh lt sich wie C Der Name eines Arrays ist der Pointer auf sein erstes Element Er ist ei ne Pointerkonstante und kann daher nicht auf der linken Seite einer Zuweisung vorkommen Weiteres dazu im Abschnitt 2 15 2 5 Pointer Zeichenketten Strings In C sind Strings oder Zeichenketten Arrays of characters abgeschlossen durch das ASCII Zeichen Nr 0 In anderen Sprachen werden Strings anders dargestellt Ein String l t sich am St ck verarbeiten oder durch Zugriff auf seine Elemente Man kann fertige String Funktionen verwenden oder eigene Funktionen schreiben mu sich dann aber auch selbst um die ASCII Null k mmern 13Felder in Datens tzen sind etwas v llig anderes 36 2 Programmieren in C Merke Es gibt Arrays of characters die keine Strings sind n mlich solche die nicht mit dem ASCII Zeichen Nr 0 abgeschlossen sind Sie m ssen als Array angesprochen werden wie ein Array von Zahlen Will man bei der E
172. ariable kann der Referenzierungs Operator amp nicht angewendet werden Es ist auch unsicher ob das System der register Anweisung folgt Am besten verzichtet man auf diese Speicherklasse Lokale Variable gelten und leben nur innerhalb des Blockes in dem sie dekla riert wurden Durch die Zuordnung zur Speicherklasse static verl ngert man ihre Lebensdauer nicht ihren Geltungsbereich ber das Ende des Blockes hinaus Bei einem erneuten Aufruf des Blockes hat eine static Variable den Wert den sie beim vorherigen Verlassen des Blockes hatte 2 15 4 Geltungsbereich Eine Variable gilt nur innerhalb des Bereiches zu dessen Beginn sie deklariert worden ist Ihr Geltungsbereich scope ist dieser Bereich Au erhalb des zu geh rigen Bereiches ist die Variable unbekannt oder unsichtbar Der Name der Variablen ist in diesem Zusammenhang bedeutungslos Ein Bereich ist e ein logischer Block zwischen und e eine Funktion e ein File e ein Programm 44 2 Programmieren in C Variable die vor der Funktion main Hauptprogramm deklariert werden gelten infolgedessen global in main und allen Funktionen die danach deklariert werden Wird eine Variable unter demselben Namen innerhalb eines Bereiches nochmals deklariert so hat f r diesen Bereich die lokale Deklaration Vorrang vor der u eren Deklaration Der Geltungsbereich der u eren Variablen hat eine L cke Das Konzept des Geltungsbereiches l t sich ber ein Programm
173. ational Monitor System IBM Compiler Monitor System Cellular Mobile Telephone Connection Management Carnegie Mellon University Pittsburgh USA Compartment Mode Workstation cyan magenta yellow Farbmodell cyan magenta yellow black Farbmodell Corporate Network Certified NetWare Administrator Novell Canonical Name Centre for Networked Access to Scholarly Information Australien Computerized Numerical Control Complete Network Centr NSS co COARA COBOL CODASYL CODINE COFDM COFF COL com COM COMAL COMDEX COMMS COMSAT CONS CON CORBA CORNET COS COSE COSINE CoSN COSS CoSy COTS CP CPA CPE CPFSK CPG cpi CPI CPLC CPL CPLD F Abk rzungen Certified NetWare Engineer Expert Novell Centre National d Etudes des Telecommunications Calling tone Centre National d Informatique Certified NetWare Instructor Novell Coalition for Networked Information Communications Network International Clearinghouse for Networked Information Discovery and Retrieval Customer Network Management Communications Network for Manufacturing Application Cable News Network Corporation for National Research Initiatives Core Nodal Switching Subsystem Internet Command Output Compunication of Oita Amateur Research Association Common Business Oriented Language Committee on Data Systems Languages Computing in Distributed Networked Environments Coded Orthogonal Frequency Division Multiplex Co
174. atur J Zeittafel Sach und Namensverzeichnis Inhaltsverzeichnis 131 134 nn 134 nn 139 nn 140 nn 141 147 149 nn 149 nn 150 nn 154 nn 155 156 161 246 248 256 276 283 Abbildungen 1 1 2 1 2 2 2 3 Aufbau eines Computers e 4 Flu diagramm 2222 Co oo non 26 Nassi Shneiderman Diagramm 27 Syntax Diagramm 2 e 29 xi Programme 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 2 11 2 12 2 13 2 14 2 15 2 16 2 17 2 18 2 19 2 20 2 21 2 22 2 23 2 24 2 25 2 26 2 27 2 28 2 29 2 30 2 31 2 32 2 33 2 34 2 35 2 36 2 37 2 38 2 39 2 40 Programm A1 COBOL Programm oaoa C Programm kommentar C Programm character und integer 2 2 2 nn a C Programm Bitweise Negation C Programm Bitoperationen C Programm einfache for Schleife 2 222222 0 C Programm zusammengesetzte for Schleife 2 2 2 2 C Programm mit goto grauenvoll 2 2 2 2 nn onen C Programm verbessert ooa C Programm return Anweisungen C Programm Funktionsprototyp C Funktion Parameter bergabe by value 2 2222 20 C Funktion Parameter bergabe by reference 2 FORTRAN Funktion Parameter bergabe by reference PASCAL Funktion Parameter bergabe by value PASCAL Funktion Parameter bergabe by reference C Programm Parameter bergabe an C Funktionen C Programm Parameter bergabe an FORTRAN Fu
175. b docs net rfe rfc1244 1991 101 S ASCII Sicherheits Ratgeber fiir Internet Benutzer Department of Defense Trusted Computer Systems Evaluation Criteria Orange Book ftp ciw pub docs net secur orange book gz 1985 120 S ASCII wird abgel st durch Federal Criteria for Information Technology Security ftp ciw pub docs net secur fevoll ps gz und fevol2 ps gz 1992 2 B nde mit zusammen 500 S Postscript Die amtlichen amerikanischen Sicherheitsvorschriften F L Bauer Kryptologie Springer Berlin 1994 369 S 48 DM R L Brand Coping with the Threat of Computer Security Incidents A Primer from Prevention through Recovery ftp ciw pub docs net secur primer ps gz 1990 44 S Postscript D A Curry Improving the Security of Your UNIX System ftp ciw pub docs net secur secdoc ps gz 272 I Literatur 1990 50 S Postscript Hilfe f r UNIX System Manager mit Checkliste H L Drews u a Lexikon Datenschutz und Informationssicherheit Siemens AG Berlin 1993 353 S 110 DM Technische und rechtliche Themen zu teuer D Ferbrache A Pathology of Computer Viruses Springer Berlin 1992 299 S 74 DM Geschichte Wirkungsweise Gegenma nahmen Reaktionen der ffentlichkeit auch UNIX und Internet Viren 17 Geschichte der Informatik Newsgruppen comp society folklore alt folklore computers de alt folklore computer Kleine Chronik der IBM Deutschland 1910 1979 Form Nr D12 0017 138 S 1980
176. bei keine ohne die andere etwas bewirken kann Er ver stand unter der res cogitans allerdings nicht nur das Denken sondern auch das Bewu tsein und die Seele und h tte jede Beziehung zwischen einer Maschine und seiner res cogitans abgelehnt Die reine Hardware ohne Betriebssystem tut nichts anderes als elektrische Energie in W rme zu verwandeln Sie ist ein Ofen mehr nicht Das Betriebs system ist ein Programm das diesen Ofen bef higt Daten einzulesen und in bestimmter Weise zu antworten Hardware plus Betriebssystem machen den Com puter aus Wir bezeichnen diese Kombination als System Andere sagen auch Plattform dazu Eine bestimmte Hardware kann mit verschiedenen Betriebssy stemen laufen umgekehrt kann dasselbe Betriebssystem auch auf unterschiedlicher Hardware laufen gerade das ist eine St rke von UNIX Bekannte Betriebssysteme sind MS DOS von Microsoft DOS 7 von Novell und IBM O 2 f r IBM PCs und ihre Verwandtschaft VMS f r die VAXen der Digital Equipment Corporation DEC sowie UNIX von AT amp T f r eine ganze Reihe von mittleren Computern verschiedener Hersteller Um eine bestimmte Aufgabe zu erledigen um einen Text zu schreiben oder ein Gleichungssystem zu l sen braucht man noch ein Anwendungsprogramm application program Dieses kauft man fertig zum Beispiel ein Programm zur Textverarbeitung oder zur Tabellenkalkulation oder schreibt es selbst In diesem Fall mu man eine Programmiersprache programming
177. bertragen von BASIC nach C 2 26 7 bertragen von LISP nach C 2 27 bungen Die Programmier bungen sind anders aufgebaut als die bungen zu UNIX denn man kann wohl ein einzelnes Shell Kommando ausprobieren aber nicht ein einzel nes C Schl sselwort Au erdem f hren beim Programmieren mehrere Wege zum Ziel siehe Abschnitt 2 5 Qualit t und Stil Jede Aufgabe beginnt mit einem ein fachen Programm und wird schrittweise komplexer Weitere Aufgaben finden sich in dem Buch von BRIAN W KERNIGHAN und DENNIS M RITCHIE zu dem es auch ein Buch mit L sungen gibt Ein und Ausgabe Sortieren Schreiben sie ein Programm das eine String konstante Hallo auf stdout ausgibt include stdio h main puts 3 oder printf 3 return oder exit 2 Verwenden Sie f r den String eine symbolische Konstante define Vergessen Sie den Kommentar nicht Erweitern sie das Programm so da nach der Ausgabe ein durch RETURN abgeschlossener String von einer maximalen L nge von 100 Zeichen eingelesen und anschlie end ausgegeben wird scanf 3 Erg nzen Sie das Programm durch eine Funktion zum Sortieren der Zeichen des Strings gem der ASCII Tabelle und geben Sie auch den sortierten String aus Der urspr ngliche String soll erhalten bleiben Filter Schreiben sie ein Filter das den IBM PC Zeichensatz nach US ASCII um wandelt a in ae B in ss usw In deutschen Texten ungebr uchliche Sonderzeichen 2 27 bungen 127 wie Grafiksymbole Grie
178. bildung von a und b es lohnt sich nicht sie auch programmtechnisch als selbst ndige Funktion zu definieren aber das kann in anderen Aufgaben anders sein 2 18 7 Rekursiver Aufruf einer Funktion Bei einer Rekursion ruft eine Funktion sich selbst auf Das ist etwas schwie rig vorzustellen und nicht in allen Programmiersprachen erlaubt Die N he zum Zirkelschlu ist nicht geheuer Es gibt aber Probleme die urspr nglich rekursiv sind und sich durch eine Rekursion elegant programmieren lassen Eine Zirkel definition ist eine Definition eines Begriffes die diesen selbst in der Definition enth lt damit es nicht sofort auff llt gegebenenfalls um einige Ecken herum Ein Zirkelschlu ist eine Folgerung die Teile der zu beweisenden Aussage bereits zur Voraussetzung hat Bei einer Rekursion hingegen e wiederholt sich die Ausgangslage nie 80 2 Programmieren in C e wird eine Abbruchbedingung nach endlich vielen Schritten erf llt d h die Rekursionstiefe ist begrenzt In dem Buch von ROBERT SEDGEWICK findet sich N heres zu diesem Thema mit Programmbeispielen Im ersten Band der Informatik von FRIEDRICH L BAUER und GERHARD Goos wird die Rekursion allgemeiner abgehandelt Zwei Beispiele sollen die Rekursion veranschaulichen Das erste Programm berechnet den gr ten gemeinsamen Teiler ggT zweier ganzer Zahlen nach dem Algorithmus von EUKLID Das zweite ermittelt rekursiv die Fakult t einer Zahl was man anders vielleicht einfacher
179. ble Macro Logic Fixed Assignment PODA Fast Parallel Port Floating Point Processor Fixed Path Control For Pay Server Fast Packet Switching Frames per Second Forced Perfect Termination Floating Point Unit Fully Qualified Domain Name Internet Frame Relay Frame RElay Assembler Disassembler Ferroelectric Random Access Memory Full Regular Expression Federal Research Internet Coordinating Committee flux reversals per inch Frame Reject frame Frame Relay Service File Separator Finite State File System Finite State Automaton Free Software Association Germany Frankfurt M Functional System Block Fast SCSI File System Driver Free Software Foundation Frequency Shift Keying Modulation Finite State Machine File Service Protocol Internet Fixed Satellite Services Final Type Approval File Transfer Access and Management OSI 194 FTLS FTP FTPI FTTB FTTC FTTH FTTG FTZ FUBS FUD FuE FUI FUNET FUNI FUP F V FVT FVV FWEE FWEG FWI FWIW FWLSt FYA FYI FZI GaAs GAB Gabico GAE GAIN GAL GAMM GAN GAT GBB GBG GC GCAD GCI GCN GCR GCS GDA GDDM GDI GDMO F Abk rzungen Formal Top Level Specification File Transfer Protocol Internet Foiled Twisted Pair Flux Transitions Per Inch Fiber To The Building Fiber To The Curb Fiber To The Home Fiber To The Galaxy Fernmeldetechnisches Zentralamt Forschungs und Technologie zentrum der DBP Telekom Fido Used Book Squad
180. cess Point OSI Telephony Server Service Application Programming Interface Terminal Server Manager DEC Time Sharing Option IBM Traveling Salesman Problem TSR TSS TSSDC TST TSTN TSW TT TTBOMK TTFN TTL TTRT TTS TTU Ttx TTX TTXAU TTY TTYL TU TUBA TUeB TUG TUI TUSTEP TVI TVR Tx TX AC AE ART BC CB CFS CL CLA CSD DC DF DI DLC DL I DM DP DSV CC CHIC Cl CC CC CH CC CC CC CC 237 Terminate and Stay Resident Temex Schnittstelle Time Sharing System Telecommunications Standards Sector ITU Task State Segment Task State Segment Descriptor Cache Transmit Start Threshold Triple Supertwisted Nematic Tele Software Terminal Timing To The Best Of My Knowledge Slang Ta Ta For Now Slang Transistor Transistor Logik Time To Live Target Token Rotation Time Transaction Tracking System Teletex Telex Umsetzer Teletex Videotext Teletex Access Unit Teletype Fernschreiben Type Talk To You Later Slang Tributary Unit TCP and UDP with Big Addresses Temex Uebertragungsbaugruppe Tributary Unit Group TeX User Group Text User Interface T binger System von Textverarbeitungsprogrammen Television Interference Temex Vermittlungsrechner Telex Fernschreiben transmit ser Agent OSI User Area Unnumbered Acknowledgement nbalanced Asynchronous Class nrecoverable Application Error Universelle Anschlu einrichtung niversal Asynchronous Receiver Transmitter niv
181. ch die geschweif ten Klammern umschlossene Block ist leer main tut nichts Der Syntaxpriifer lint 1 beanstandet da der R ckgabewert von main undefiniert ist was stimmt uns aber nicht weiter st rt Der Compiler erzeugt aus diesem Quellcode etwa 16 kB ausf hrbaren Code Hinter main steckt einiges was dem Program mierer verborgen ist Als n chstes wollen wir main als ganzzahlig deklarieren f r einen definierten R ckgabewert sorgen und wie es sich geh rt mittels eines Kommentars das Verst ndnis erleichtern Dies ist ein einfaches C Programm von hohem paedagogischen aber sonst keinem Wert int main return 255 255 groesster zulaessiger Wert Programm 2 41 C Programm einfachst Dieses Programm wird vom lint 1 gutgehei en Die Deklaration von main 2 21 C Programme 93 als int k nnte entfallen da sie unab nderlich ist aber wir wollen uns angew hnen alle Gr en ausdr cklich zu deklarieren Den R ckgabewert k nnen Sie sich mit dem Shell Kommando print nach der Ausf hrung anschauen Um etwas Vern nftiges zu tun mu das Programm um einige Zeilen angerei chert werden Wir deklarieren eine int Variable namens i weisen ihr einen Wert zu definierende Deklaration und verwenden die C Standardfunktion printf 3 f r die Ausgabe auf stdout den Bildschirm printf 3 erwartet als erstes und notwendiges Argument einen Formatstring dessen reichhaltige Syntax Sie im Referenz
182. ch ist angegeben welche Include Files jeweils eingebunden werden m ssen Gebr uchliche Include Files sind ctype h Definition von Zeichenklassen conv 3 curses h Bildschirmsteuerung curses 3 errno h Fehlermeldungen des Systems errno 2 fentl h Steuerung des Filezugriffs fcnt1 2 open 2 malloc h Speicherallokierung malloc 3 math h mathematische Funktionen log 3 sqrt 3 floor 3 memory h Speicherfunktionen memory 3 search h Suchfunktionen bsearch 3 signal h Signalbehandlung signal 2 stdio h Ein und Ausgabe printf 3 scanf 3 fopen 3 string h Stringbehandlung string 3 time h Zeitfunktionen ctime 3 varargs h Argumentenliste variabler L nge vprintf 3 sys ioctl h Ein und Ausgabe ioct1 2 sys stat h Zugriffsrechte chmod 2 mkdir 2 stat 2 sys types h verschiedene Deklarationen chmod 2 getut 3 Auch diese Liste ist vom Compiler und damit von der Hardware abh ngig So findet man das include File dos h nicht auf UNIX Anlagen sondern nur bei Compilern unter MS DOS f r PCs D 4 Pr prozessor Anweisungen 155 D 4 Pr prozessor Anweisungen Der erste Schritt beim Compilieren ist die Bearbeitung des Quelltextes durch den Pr prozessor Dieser entfernt den Kommentar und f hrt Ersetzungen und Einf gungen gem der folgenden Anweisungen directives aus e define buchst bliche Ersetzung einer symbolischen Konstanten oder eines Makros Ist kein Er
183. chen usw sollen dabei durch einen Stern wiedergegeben werden switch default Men curses Schreiben Sie das Shellscript Men in C um switch Verwen den Sie dabei als Menupunkte Dienstprogramme wie sie beim Umgang mit Files verwendet werden ls Il pg whereis Erweitern Sie das Menu durch Untermenus verwenden Sie dabei curses 3 Funktionen Strukturen Schreiben sie ein Programm f r die Mitgliederverwaltung eines klei nen Vereins weniger als 100 Mitglieder Vermutlich haben Sie f r die Mitgliederliste ein Array von Strukturen aufge baut und seine Elemente ber Indizes angesprochen Ersetzen Sie die Indizes durch Pointer Ersetzen Sie das Array durch eine verkettete Liste Verteilen Sie die Funktionen auf mehrere Files Verwenden sie zum Compilieren ein makefile Systemaufrufe Signale Schreiben sie ein Programm das alle m glichen Ausk nfte ber sich und das System auf dem ausgef hrt wird gibt Rekursion Schreiben sie das Shellscript Hanoi in C um Lesen Sie ber das Sortierverfahren Quicksort nach und vollziehen Sie ein entsprechendes Programm beispiel nach Bibliothek Bruchrechnung Erfinden sie einen Datentyp Bruch und schreiben Sie eine Bibliothek f r die Grundrechenarten Zeigen Sie den Gebrauch bertragen bertragen Sie das folgende einfache BASIC Programm das die Primzahlen mit dem Sieb des ERATHOSTENES berechnet nach C 10 REM Sieb des Erathostenes Primzahlen 20 REM B Alex Weingarten 0
184. chlie end ge nannte File mit zu dem Programmtext l dt bevor dieser zum eigentlichen Com piler gelangt Die include Files ihrerseits enthalten symbolische Konstanten und Makros Die Namen der Standard include Files sind in lt gt einzuschlie en die Namen eigener include Files in G nsef chen Die include Files sind lesbar und finden sich im Verzeichnis usr include Als Beispiel sehen wir uns das h ufig gebrauchte File lt stdio h gt in gek rzter Form an 90 2 Programmieren in C Revision 56 4 ifndef _NFILE define _NFILE 60 define BUFSIZ 1024 buffer size for multi character output to unbuffered files define _SBFSIZ 8 typedef struct int CHE unsigned char _ptr unsigned char _base short _flag char _file FILE _IOLBF means that a file s output will be buffered line by line In addition to being flags _IONBF _IOLBF and _IOFBF are possible values for type in setvbuf define _IOFBF 0000 define _IOREAD 0001 define _IOWRT 0002 define _IONBF 0004 define _IOMYBUF 0010 define _IOEOF 0020 define _IDERR 0040 define _IOLBF 0200 define _IORW 0400 ifndef NULL define NULL 0 endif ifndef EOF define EOF 1 endif define stdin amp _iob 0 define stdout amp _iob 1 define stderr amp _iob 2 ifndef lint define get p gt _cnt lt 0 _filbuf p int p gt _ptr 2 21 C Programme 91 define putc x p p
185. cht von A Z Beck Rechtsberater Beck M nchen 1992 17 DM H Hubmann M Rehbinder Urheber und Verlagsrecht Beck M nchen 1991 319 S 40 DM A Junker Computerrecht Gewerblicher Rechtsschutz M ngelhaftung Arbeitsrecht Reihe Recht und Praxis Nomos Verlag Baden Baden 1988 267 S 45 DM B D Meier Softwarepiraterie eine Straftat Juristenzeitung 1992 Nr 13 5 657 665 W Steinke Die Kriminalit t durch Beeinflussung von Rechnerabl ufen Neue Juristische Wochenschrift 1975 Nr 41 S 1867 1869 K Tiedemann Die Bek mpfung der Wirtschaftskriminalit t durch den Gesetzgeber Juristenzeitung 1986 Nr 19 5 865 874 19 Philosophische Feigenbl tter Newsgruppen comp ai philosophy sci philosophy tech J Ladd Computer Informationen und Verantwortung in Wissenschaft und Ethik herausgegeben von H Lenk Reclam Band 8698 Ph Reclam Stuttgart 15 DM H Lenk Chancen und Probleme der Mikroelektronik und K nnen Informationssysteme moralisch verantwortlich sein 274 I Literatur in Hans Lenk Macht und Machbarkeit der Technik Reclam Band 8989 Ph Reclam Stuttgart 1994 152 5 6 DM P Schefe u a Informatik und Philosophie BI Wissenschaftsverlag Mannheim 1993 326 S 38 DM Sammlung von 18 Aufs tzen verschiedener Themen und Meinungen K Steinbuch Die desinformierte Gesellschaft Busse Seewald Herford 1989 269 S vergriffen J Weizenbaum Die Macht der Computer und die Ohnm
186. chte geschweifte Klammer Tilde US ASCII BO ee CH 1 4 1 2 139 IAVE IDM QS oe r a oo v v SG Oo 0 5 5 e o A ee m German ASCII me Or v C O gt Achtung Der IBM PC und Ausgabeger te von Hewlett Packard verwenden keinen 7 Bit ASCII Zeichensatz sondern eigene 8 Bit Zeichens tze die die Sonderzeichen unter Nummern h her 127 enthalten siehe vorhergehende Tabelle 140 B Zeichens tze B 3 ASCII Steuerzeichen Die Steuerzeichen der Zeichens tze dienen der bermittlung von Befehlen und In formationen an das empfangende Ger t und nicht der Ausgabe eines sicht oder druckbaren Zeichens Die Ausgabeger te kennen in der Regel jedoch einen Mo dus transparent Monitor Display Functions in der die Steuerzeichen nicht aus gef hrt sondern angezeigt werden Die meisten Steuerzeichen belegen keine eigene Taste auf der Tastatur sondern werden als Kombination aus der control Taste und einer Zeichentaste eingegeben dezimal ASCH Bedeutung Tasten 0 nul ASCH Null control 1 soh Start of heading control a 2 stx Start of text control b 3 etx End of text control c 4 eot End of transmission control d 5 enq Enquiry control e 6 ack Acknowledge control f 7 bel Bell control g 8 bs Backspace control h BS 9 ht Horizontal tab control i TAB 10 If Line feed control j LF 11 vt Vertical tab control k 12 ff Form feed control 13 er Carriage return control m RETURN 14 so Shift out control n 15 si Shift
187. chuh 0 Internet Protokoll 2 Durchfall 0 Diakritisches Zeichen Umlaute 2 Ernahrungslehre 0 Altlasten Expertensystem 1 Automatic Login Executor 1 Globales Filesystem 1 Anrede des Priors in einem Kloster 0 Anrede des Ersten Sekretars im Vatikan 0 Anrede des System Managers 6 Z hlen Sie Ihre Punkte zusammen Die Auswertung ergibt Folgendes e ber 159 Punkte steigen Sie schnell in die EDV ein und berlassen Sie das Rechnen k nftig dem Computer e 79 bis 159 Punkte mit etwas Flei wird aus Ihnen ein EDV Experte e 16 bis 78 Punkte machen Sie eine m glichst steile Karriere au erhalb der EDV und suchen Sie sich f hige Mitarbeiter e unter 16 Punkten vielleicht hatten Sie schlechte Lehrer Tr sten Sie sich mit Karl dem Gro en deutscher Kaiser 768 814 der konnte auch nicht lesen aber er versuchte es wenigstens I Literatur Die Auswahl ist subjektiv und enth lt Texte die wir noch lesen wollen schon ha ben oder sogar schon gelesen haben Die angef hrte Electronic Information ist auf ftp ciw uni karlsruhe de und anderen per Anonymous FTP verf gbar Die Referenz Handb cher wurden schon erw hnt Dar ber hinaus verwenden wir in nerhalb der Gruppen nach Verfasser alphabetisch geordnet 1 Literaturlisten Newsgruppen de etc lists wechselnde Listen aus dem deutschsprachigen Raum news lists internationale Listen alt books technical biz books technical misc books technic
188. cident Response and Security Teams First In Still Here Failures In Time Fill In The Blank Slang Fixed In The Next Release Slang Flexible Image Transport System Fachinformationszentrum Fernseh und Kinotechnische Gesellschaft Ferro electric Liquid Crystal Full Level One Feature Floating Point Operation Frequenzmodulation Facility Fault Function Management Flexible Manufacturing Cell Function Management Header Functional Multiprocessor processing FMS FNC FO FOAF FOC FOIRL FORTRAN FORTWIHR FOSSIL FP FPAD FPAL FPD FPGA FPLA FPLD FPLMTS FPLS FPM FPML FPODA FPP FPS FPT FPU FQDN FR FRAD FRAM FRE FRICC frpi FRMR FRS FS FSA FSAG FSB FSCSI FSD FSF FSK FSM FSP FSS FTA FTAM 193 Fernmeldesystem File Forms Management System Flexible Manufacturing System Federal Networking Council USA Fernmeldeordnung Friend Of A Friend Slang Fiber Optic Cable Fiber Optic Inter Repeater Link Formula Translator Forschungsverbund f r technisch wissenschaftliches Hochleistungsrechnen Fido Opus Seadog Standard Interface Layer Floating Point Fixed Part Field Programmable Address Decoder Field Programmable Array Logic Flat Panel Display Field Programmable Gate Array Field Programmable Logic Array Field Programmable Logic Device Future Public Land Mobile Telecommunications System Field Programmable Logic Sequencer Fast Packet Multiplexing Fast Page Mode Field Programma
189. d Verwalter international vernetzter UNIX Systeme sowie als Programmierer vorzugsweise in C und FORTRAN leiten lassen Hinsichtlich vieler Einzelheiten wird auf die Referenz Handb cher und Manpa ges zu den Rechenanlagen und Programmiersprachen verwiesen Wir wollen nicht den Text durch Dinge aufbl hen die man besser dort nachschl gt Den Umfang haben wir auf knapp 700 Seiten beschr nkt um den Leser nicht durch zu hohe Anforderungen an seinen Geldbeutel und an seine Zeit abzuschrecken Alles ber UNIX C und das Internet ist kein Buch sondern ein B cherschrank UNIX ist das erste und einzige Betriebssystem das auf einer Vielzahl von Computertypen l uft Das ist sein gr ter Vorzug Wir haben versucht m glichst unabh ngig von einer bestimmten Anlage zu schreiben ber rtliche Besonder heiten m ssen Sie sich daher aus weiteren Quellen unterrichten In der Universit t Karlsruhe kommt daf r das UNIX Workstations Benutzerhandbuch des Rechen zentrums in Frage Anderenorts gibt es hnliche Hilfen oft in Form eines Textfiles Die Programmiersprache C ist im Vergleich zu BASIC etwa ziemlich ein heitlich Wir bem hen uns die Programmbeispiele unter mehreren C Compilern zu testen und gegebenenfalls auf Unterschiede hinzuweisen Ob C besser ist als FORTRAN oder PASCAL oder sonst irgendeine neuere Programmiersprache dar ber l t sich end und fruchtlos streiten aber nicht mit uns vi Das Internet ist das gr te inter
190. d zwar in der Form des angegebenen Typs den man also kennen mu Gleichzeitig wird der Pointer pvar eins weiter geschoben Die Zeile format va_arg pvar char 78 2 Programmieren in C weist dem Pointer auf char format die Adresse des Formatstrings in der Argu mentenliste von printi zu Damit ist der Formatstring wie jeder andere String zug nglich Zugleich wird der Pointer pvar auf das n chste Argument gestellt blicherweise eine Konstante oder Variable Aus der Auswertung des Formatstrings ergeben sich Anzahl und Typen der weiteren Argumente Damit wird auch klar was geschieht wenn die Platzhalter d 6u usw im Formatstring nicht mit der Argumentenliste bereinstimmen Gibt es mehr Argumente als Platzhalter werden sie nicht beachtet Gibt es mehr Platzhalter als Argumente wird irgendein undefinierter Speicherinhalt gelesen unter Umstanden auch der dem Programm zugewiesene Speicherbereich verlassen Stimmen Platz halter und Argumente im Typ nicht berein wird der Pointer pvar falsch inkre mentiert und die Typumwandlung geht vermutlich auch daneben Es gibt eine Fallgrube bei der Typangabe Je nach Compiler werden die Ty pen char und short intern als int und float als double verarbeitet In solchen F llen mu dem Makro va_arg pvar type der interne Typ mitgeteilt werden Nachlesen oder ausprobieren am besten beides 2 18 6 Iterativer Aufruf einer Funktion Unter einer Iteration versteht man die Wiederholung besti
191. das Programm nach der Auswahl weiter Die Auswahl ist n tzlich weil sie bersichtlich einfach zu erweitern und effek tiv ist Wenn aus einer einfachen Verzweigung eine Auswahl werden k nnte soll man gleich zu dieser greifen Auswahlen d rfen geschachtelt werden Schleifen Einem Computer macht es nichts aus denselben Vorgang millionen mal zu wiederholen Das ist seine St rke Wiederholungen von Anweisungen kom men daher in fast allen Programmen vor sie werden Schleifen loop genannt Eine Schleife hat einen Eingang sonst k me man nicht hinein Die meisten Schleifen haben auch einen Ausgang sonst k me man nicht wieder heraus au er mit dem Brecheisen in Form der Break Taste oder hnlichem Entweder Ein oder Ausgang sind an eine Bedingung gekn pft die entschei det wie oft die Schleife durchlaufen wird Folgende Konstruktionen sind m glich e Eingang Eintrittsbedingung e Schleifenrumpf Anweisungen 2 17 Anweisungen 55 e Ausgang R cksprung zum Eingang Diese Schleife wird nur betreten falls die Eintrittsbedingung erf llt ist unter Umst nden also nie Wenn die Eintrittsbedingung nicht mehr erf llt ist macht das Programm nach der Schleife weiter In C sieht diese Schleife so aus while Bedingung Anweisungen Die zweite M glichkeit l t sich grunds tzlich auf die erste zur ckf hren wird aber trotzdem verwendet weil das Programm dadurch einfacher wird e Eingang wird in jedem Fall betrete
192. den Operanden anstellen kann Der Operator bestimmt was mit dem Operand geschieht Un re Operatoren wirken auf genau einen Operanden bin re auf zwei tern re auf drei Mehr Operanden sind selten Operator plus Operanden bezeichnet man als Ausdruck expression Ein Aus druck hat nach seiner Auswertung einen Wert und kann berall dort stehen wo ein Wert verlangt wird Eine Funktion die einen Wert zur ckgibt kann anstelle eines Ausdrucks oder Wertes stehen 2 16 Operationen 45 2 16 2 Zuweisung Eine Zuweisung assignment weist einer Variablen einen Wert zu Der Operator ist das Gleichheitszeichen ohne Doppelpunkt wie in PASCAL wegen Faulheit Das Gleichheitszeichen darf von Spaces umgeben sein und sollte es wegen der besseren Lesbarkeit auch Wert und Variable sollten vom selben Typ sein Es gibt zwar in C automatische Typumwandlungen aber man sollte wenig Gebrauch davon machen Sie f hren zu den ber chtigten unlesbaren C Programmen und gef hrden die Portabilit t Da ein Ausdruck wie eine Summe oder eine entsprechende Funktion einen Wert abliefert kann in einer Zuweisung anstelle des Wertes immer ein Ausdruck stehen Die Zuweisung selbst liefert den zugewiesenen Wert zur ck und kann daher als Wert in einem bergeordneten Ausdruck auftreten Auf der rechten Seite einer Zuweisung kann alles stehen was einen Wert hat beispielsweise eine Konstante ein berechenbarer Ausdruck oder eine Funktion aber kein Array und damit auch kei
193. der Computer von der Datenwelt f r St rungen H rt sich bertrieben an ist es auch aber wie lange noch Fachliteratur die nicht in einer Datenbank gespeichert ist z hlt praktisch nicht mehr Texte die sich nicht per Computer in andere Sprachen bersetzen lassen gelten als stilistisch mangelhaft Bei Meinungsverschiedenhei ten ber personenbezogene Daten hat zun chst einmal der Computer recht und wenn er Briefe an Herrn Marianne Meier schreibt Das l t sich kl ren aber wie sieht es mit dem Weltbild aus das die Computerspiele unseren Kindern vermit teln Welche Welt ist wirklich War Der l ngste Tag nur ein Bildschirmspektakel Brauchten wir 1945 nur neu zu booten Unbehagen bereitet auch manchmal die zunehmende Abh ngigkeit vom Com puter die bei St rf llen unmittelbar zu sp ren ist Da gibt es Augenblicke in de nen sich die System Manager fragen warum sie nicht Minnes nger oder Leucht turmw rter oder beides wie OTTO geworden sind Der Mensch war immer abh ngig In der Steinzeit davon da es gen gend viele nicht zu starke B ren gab sp ter davon da das Wetter die Ernte beg nstigte und heute sind wir dar auf angewiesen da die Computer funktionieren Im Unterschied zu fr her als der erfahrene B renj ger die B renlage berblickte hat heute der Einzelne nur ein unbestimmtes Gef hl der Abh ngigkeit von Dingen die er nicht kennt und nicht beeinflussen kann Vermutlich wird es uns mit den Compu
194. dnung bedeutet Die Schweden nennen die Maschine da tor analog zu Motor Wir ziehen das englische Wort Computer dem deutschen Wort Rechner vor weil uns Rechnen zu eng mit dem Begriff der Zahl verbunden ist und Computer auch andere Informationen verarbeiten Die Wissenschaft von der Informationsverarbeitung ist die Informatik eng lisch Computer Science franz sisch Informatique Ihre Wurzeln sind die Mathe matik und die Elektrotechnik kleinere Wurzelausl ufer reichen auch in Wissen schaften wie Physiologie und Linguistik Sie z hlt zu den Ingenieurwissenschaften Der Begriff Informatik ist rund vierzig Jahre alt Computer gibt es seit f nfzig Jahren berlegungen dazu stellten CHARLES BABBAGE vor rund zweihundert und GOTTFRIED WILHELM LEIBNIZ vor vierhundert Jahren an ohne Erfolg bei der praktischen Verwirklichung ihrer Gedanken zu haben Die Bedeutung der Infor mation war dagegen schon im Altertum bekannt Der L ufer von Marathon setzte 490 vor Christus sein Leben daran eine Information so schnell wie m glich in die Heimat zu bermitteln Neu in unserer Zeit ist die M glichkeit Informationen maschinell zu verarbeiten Informationsverarbeitung ist nicht an Computer gebunden Insofern k nnte man Informatik ohne Computer betreiben und hat das unter anderen Namen auch getan Die Informatik beschr nkt sich insbesondere nicht auf das Program mieren von Computern Der Computer hat jedoch die Aufgaben und die M glich keiten der
195. e ABB ASEA Brown Boveri Schweiz ABCS Advanced Business Communications via Satellite ABEND Abnormal End ABI Application Binary Interface ABIC Access bus Industry Group ABK Arbeitskreis Bildkommunikation ABM Asynchronous Balanced Mode ABN Australian Bibliographic Network ABR Available Bit Rate ABT Abort AC Accumulator Alternating Current Access Control ACA Application Control Architecture DEC ACAS Application Control Architecture Services ACATS Advisory Committee on Advanced Television Systems ACC Accumulator Area Communication Controller ACD Automatic Call Distributor Distribution ACDI Asynchronous Communication Device Interface ACDP Australian Committee on Data Processing ACE Automatic Calling Equipment Advanced Computing 161 162 ACF ACFC ACIAS ACID ACIS ACK ACL ACM ACMS ACONET ACP ACR ACROSS ACS ACSE ACSnet ACT ACTS ACTV ACU A D ADA AdalC ADaM ADB ADC ADCCP ADD ADE ADF ADI ADL ADLAT ADM ADMD ADP ADPCM ADR ADRC ADS ADSC ADSL ADSP ADSR ADT F Abk rzungen Environment SCO Adverse Channel Enhancement Advanced Communication Function Access Control Field Address and Control Field Compression Automated Calibration Internal Analysis System Atomicity Consistency Isolation Durability American Committee for Interoperable Systems Acknowledge Acknowledgement Access Control List Application Connectivity Link Association for Computing Machinery USA Application Control
196. e Table Of Contents Virtual Terminal Protocol Virtual Terminal Service Visual User Environment Video User Interface Visual User Interface Tool DEC VAX Unit of Performance Virtual Warehouse Manager VESA XGA Extensions Verein zur F rderung der privat betriebenen Daten Kommunikation e V WWW World Wide Web Internet Windows Application Binary Interface Wait Acknowledgement Wireless Access Communications System W hlautomat f r Datenverbindungen Wide Area Educational Network Wide Area Information Servers Service Wide Area Information Transfer System Warren Abstract Machine Why Are My Kids Staring At Me Slang Ward s Automated Menu Package Using Microcomputers Wide Area Network Wissenschaftlicher Arbeitsplatz World Administrative Radio Conference Wide Area Telephone Telecommunications Service World Administrative Telegraph and Telephone Conference Wide Band Channel Workgroup Computing World Coordinate Writable Control Store Western Digital WDM WE WEEB WELL WFS WEW WG WGDTB WGS WHNF WIC WIMP WIN WKS WLAN WMF WNIC WNIM WOM WOMBAT WOP WORM WOSA WP WPHD wpm WPS WRT WS WST WSTS WT WWW WWWW WYSIWYG WYSIWIS XA XAPIA XCHG XCHS XCMD XDCS XDMCP XDR XFCN XFS XGA 243 Wavelength Division Multiplexing Write Enable Western European EDIFACT Board Whole Earth Lectronic Link Woodstock File Server Windows For Workgroups Microsoft Working Group ISO Worki
197. e den Funktionenbegriff konsequent verwenden geh ren zur Familie der funktionalen Programmiersprachen deren bekann tester Vertreter LISP ist C hingegen geh rt mit FORTRAN PASCAL usw zu den imperativen Sprachen und verwendet nur einen stark verw sserten Funk tionenbegriff Da die Definitionen von Funktionen nicht geschachtelt werden d rfen wohl aber ihre Aufrufe gelten Funktionen grunds tzlich global In einem C Programm stehen alle Funktionen einschlie lich main auf gleicher Stufe sie sind gleichbe rechtigt Das ist ein wesentlicher Unterschied zu PASCAL wo Funktionen inner halb von Unterprogrammen definiert werden d rfen In C gibt es zu einer Funkti on keine bergeordnete Funktion deren Variable in der untergeordneten Funktion g ltig sind Eine Funktion bernimmt von der aufrufenden Anweisung einen festgelegten Satz von Argumenten oder Parametern tut etwas und gibt keinen oder genau einen Wert an die aufrufende Anweisung zur ck Vor dem ersten Aufruf einer Funktion mu ihr Typ d h der Typ ihres R ck gabewertes bekannt sein Andernfalls nimmt der Compiler den Standardtyp int an Entsprechend dem ANSI Vorschlag b rgert es sich zunehmend ein Funktionen durch ausf hrliche Prototypen vor Beginn der Funktion main zu deklarieren 62 2 Programmieren in C Beispiel fuer Funktionsprototyp float multipl float x float y Prototyp es reicht auch float multipl float float frueher nach K R
198. e werden vom Anwendungsprogramm wie eigene oder fremde Funk tionen angesehen Ihrem Ursprung nach sind es auch C Funktionen Sie sind je doch nicht Bestandteil einer Funktionsbibliothek sondern geh ren zum Betriebs system und sind nicht durch andere Funktionen erweiterbar Die Funktionen aus den Bibliotheken verwenden Systemaufrufe Die Systemaufrufe als Bestandteil des Betriebssystems sind f r alle Pro grammiersprachen dieselben w hrend die Funktionsbibliotheken zur jeweiligen Programmiersprache geh ren Folgende Systemaufrufe sind unter UNIX verf gbar access pr ft Zugriff auf File acct startet und stoppt Prozess Accounting alarm setzt Weckeruhr f r Prozess atexit Funktion f r Programmende brk ndert Speicherzuweisung chdir wechselt Arbeitsverzeichnis chmod ndert Zugriffsrechte eines Files chown ndert Besitzer eines Files chroot ndert Root Verzeichnis close schlie t einen File Deskriptor creat ffnet File ordnet Deskriptor zu dup dupliziert File Deskriptor errno Fehlervariable der Systemaufrufe exec f hrt ein Programm aus exit beendet einen Prozess fcntl Filesteuerung fork erzeugt einen neuen Prozess fsctl liest Information aus File System fsync schreibt File aus Arbeitsspeicher auf Platte getaccess ermittelt Zugriffsrechte getacl ermittelt Zugriffsrechte getcontext ermittelt Kontext eines Prozesses getdirentries ermittelt Verzeichnis Eintr ge getgroups ermittelt Gruppenrechte eines Prozesse
199. echenden f r Ganzzahlen und die Auswirkungen von Rundungsfehlern sind schwierig abzusch tzen Zur internen Darstellung von Gleitkommazahlen siehe Abschnitt Arithmetikprozessoren Alphanumerischer Typ Eine Gr e deren Wertevorrat die Zeichen der ASCII Tabelle oder einer anderen Tabelle sind ist vom Typ alphanumerisch oder cha racter bezeichnet mit char In C werden sie durch eine Integerzahl zwischen 0 und 127 7 bit Zeichens tze beziehungsweise 255 8 bit Zeichens tze dargestellt Der Speicherbedarf betr gt ein Byte Die Verwandtschaft zwischen Ganzzahlen und Zeichen in C verwirrt anfangs Man mache sich die Gemeinsamkeiten an einem kleinen Programm klar 34 2 Programmieren in C Programm zum Demonstrieren von character und integer include lt stdio h gt int main int i j k char a b i 65 j 233 k 333 a BY b ii printf Ganzzahlen Ad jd fd d n i j k a printf Zeichen fc c c c n i j k a puts Nun rechnen wir mit Zeichen B 66 33 printf c c Yd n a b a b printf c c Yd n b a b a printf c c c n b a b a return 0 Programm 2 4 C Programm mit den Typen character und integer Die Ausgabe des Programms lautet Ganzzahlen 65 233 333 66 Zeichen A M B Nun rechnen wir mit Zeichen B 66 33 B 99 B 33 B In der ersten Zeile werden alle Werte entsprechend dem Formatstring der
200. ediate Session Routing Information Storage and Retrieval Interrupt Service Routine Information Systems Security Association Intenational Solid State Circuits Conference Inter Switch Signalling Protocol IBM Speech Server Services Fraunhofer Institut f r Software und Systemtechnik ISDN User Part Information Services and User Support DFN Independent Software Vendor Intel Smart Video Recorder Information Technology Interface Test Adapter Interim Type Approval ISDN Terminal Adapter Circuit Intermediate Text Block Information Technology Branch Informationstechnische Einrichtung Informationstechnische Gesellschaft im VDE Interactive Terminal Interface Instruction TLB Indium Tin Oxide Internet Talk Radio Incompatible Time Sharing System Institute for Telecommunication Sciences USA Information Technology Security Evaluation Criteria Information Technology Security Evaluation Manual Information Technology Steering Comitee Invitation To Transmit Arcnet International Telecommunications Union Intelligent Thermal Update International Telecommunications Users Group Interactive Television Intermediate Text Block Integer Unit Informix User Group Information und Kommunikation Initialisation Vector Integrated Voice and Data Local Area Network Intelligent Vehicle Highway System Interactive Video Information System Interactive Video On Demand Installation Verification Image 204 IVR IVS IVT IVV I
201. eicher die Groesse Der Datentyp unsigned long geht in beiden Faellen ueber 4 Milliarden ifdef UNIX define MAX unsigned long 1000000 telse define MAX unsigned long 100000 endif define MIN define DEF include lt stdio h gt globale Variable unsigned long p MAX 10 unsigned d MAX 1000 unsigned long h 2 11 unsigned long z 1 unsigned n 1 Funktionsprototypen void ttest long time int main int argc char argv int r int i 1 j K unsigned long ende unsigned long q unsigned long dp dmax unsigned long g long zeit1 zeit2 zeit3 DEF unsigned long 50 Defaultwert fuer Obergrenze unsigned long 10000 Array der Primzahlen Haeufigkeit der Differenzen Haeufigkeit der Primzahlen aktuelle Zahl lfd Anzahl Primzahlen 1 Funktion Teilbarkeitstest Systemaufruf zur Zeitmessung Hauptprogramm 1 di d2 Auswertung der Kommandozeile dem Aufruf kann als Argument die Obergrenze mitgegeben werden keine Pruefung auf negative Zahlen oder Strings if arge gt 1 2 21 C Programme 105 sscanf argv 1 lu amp ende if ende gt MAX printf nZ zu gross Maximal lu n MAX exit 1 D if ende lt MIN printf nZ zu klein genommen wird lu n n n MIN ende MIN D if g ende 10 printf nZ muss durch 10 teilbar sein 4lu n
202. ein Die Hardware umschlie t alles was aus Kupfer Eisen Kunststoffen Glas und dergleichen besteht was man anfassen kann Dichterf rst FRIEDRICH VON SCHILLER hat den Begriff Hardware trefllich gekennzeichnet Auf PCs kann man durch ndern einzelner Bits in den Registern von Grafikkarten den Bildschirm zerst ren Aus Versehen ger t man jedoch nie in diese Lage Wir wissen da wir ein deutsch englisches Kauderwelsch gebrauchen aber wir ha ben schon so viele schlechte bersetzungen der amerikanischen Fachw rter gelesen da wir der Deutlichkeit halber teilweise die amerikanischen W rter vorziehen Oft sind auch die deutschen W rter mit unerw nschten Assoziationen befrachtet Wenn die Medizi ner lateinische Fachausdr cke verwenden die Musiker italienische und die Gastronomen franz sische warum sollten dann die Informatiker nicht auch ihre termini technici aus einer anderen Sprache bernehmen d rfen 6 1 ber den Umgang mit Computern Leicht beieinander wohnen die Gedanken doch hart im Raume sto en sich die Sachen Die Verse stehen in Wallensteins Tod im 2 Aufzug 2 Auftritt WALLENSTEIN spricht sie zu MAX PICCOLOMINI Was sich hart im Raume st t geh rt zur Hard ware was leicht beieinander wohnt die Gedanken ist Software Die Gedanken stecken in den Programmen und den Daten Mit Worten von RENE DESCARTES cogito ergo sum k nnte man die Software als res cogitans die Hardware als res extensa ansehen wo
203. el 13Manche Systeme unterscheiden zwischen Return Taste und Enter Taste rien n est simple Auf Tastaturen f r den kirchlichen Gebrauch tr gt die Taste die Bezeichnung Amen 10 1 ber den Umgang mit Computern keine Bedeutung die Sitzung l uft weiter Zum Eingew hnen f hren wir eine kleine Sitzung durch Suchen Sie sich ein freies UNIX Terminal Bet tigen Sie ein paar Mal die Return oder Enter Taste Auf die Aufforderung zur Anmeldung login geben Sie den Namen gast oder guest ein Return Taste nicht vergessen Ein Passwort ist f r diesen Be nutzernamen nicht vonn ten Es k nnte allerdings sein da auf dem System kein Gast Konto eingerichtet ist dann m ssen Sie den System Manager fragen Nach dem Willkommensgru des Systems geben wir folgende UNIX Kommandos ein Return Taste und versuchen ihre Bedeutung mithilfe des UNIX Referenz Handbuchs Sektion 1 n herungsweise zu verstehen date who pwd man pwd ls ls 1 bin exit Die Grundform eines UNIX Kommandos ist hnlich wie bei MS DOS Kommando Optionen Argumente Statt Option findet man auch die Bezeichnung Parameter Flag oder Schalter Ei ne Option modifiziert das Kommando beispielsweise wird die Ausgabe des Kom mandos 1s ausf hrlicher wenn wir die Option 1 wie long dazuschreiben Argu mente sind Filenamen oder andere Informationen die das Kommando ben tigt oben der Verzeichnisname bin Bei den Namen der UNIX Kommandos haben sich ihre Sch
204. eldung stammt Kommentar schreiben wir wieder in Englisch da die Programmbeispiele auch per Mail oder News in die unendlichen Weiten des Internet geschickt werden wo Englisch nun einmal die lingua franca ist An kommentar soll man nicht sparen denn er kostet wenig Aufwand und kann viel helfen w hrend die Dokumentation zum Programm nur zu oft ad calendas Graecas Sankt Nimmerleins Tag verschoben wird 2 14 Namen Namen identifier bezeichnen Funktionen Konstanten Variable Makros oder Sprungmarken Labels Sie m ssen mit einem Buchstaben oder einem Unterstrich underscore beginnen Benutzereigene Namen sollten immer mit einem Buchsta ben anfangen der Unterstrich wird vom Compiler oder vom System verwendet Gro und Kleinbuchstaben werden unterschieden Signifikant sind mindestens die ersten sieben Zeichen nach ANSI die ersten einunddrei ig In C wie in jeder anderen Programmiersprache haben bestimmte W rter eine besondere Bedeutung beispielsweise main while und if Diese Wortsymbole oder Schl sselw rter d rfen auf keinen Fall als Namen verwendet werden die Namen der Standardfunktionen wie printf oder fopen sollten nicht umfunk tioniert werden C zeichnet sich durch eine geringe Anzahl von Schl sselw rtern aus etwa drei ig siehe Anhang D 1 C Lezikon Schl sselw rter OReal programmers don t comment their code Es gibt die Bezeichnungen Wortsymbol Schl sselwort und reserviertes Wort Ge meint ist in jed
205. em Fall da das Wort eine bestimmte Zeichenfolge nicht unein geschrankt als Namen verwendet werden darf In C d rfen diese W rter au er im Kommentar keinesfalls f r einen anderen als ihren besonderen Zweck als Wortsymbol verwendet werden In FORTRAN d rfen diese W rter in Zusammenh ngen die eine Deutung als Schl sselwort ausschlie en auch als Namen verwendet werden Man darf also eine Variable if nennen und in der Zuweisung if 3 wird die Zeichenfolge if als Variable und nicht als Wortsymbol im Sinne von falls verstanden 2 15 Operanden 31 2 15 Operanden Wir schranken hier den Begriff Daten etwas ein und verstehen darunter nur die passiven Objekte mit denen ein Programm etwas tut also Text Zahlen Grafiken usw Diese Objekte und ihre Untereinheiten nennen wir Operanden operand Mit ihnen werden Operationen durchgef hrt Das Wort Objekt vermeiden wir um keine Assoziationen an objektorientiertes Programmieren zu wecken Das kommt sp ter Ein Operand e hat einen Namen identifier e geh rt einem Typ type an e hat einen konstanten oder variablen Wert value e belegt zur Laufzeit Speicherplatz im Computer e hat einen Geltungsbereich scope und e eine Lebensdauer lifetime Die Speicheradresse wird auch Zeiger oder Pointer genannt Wir bevorzugen das englische Wort Pointer weil das deutsche Wort Zeiger drei Bedeutungen hat Pointer Index Cursor Auf den Operanden wird ber den Namen oder den
206. en von Bytes Bytestreams so da es keinen Unterschied zwischen Textfiles und son stigen Files gibt Die Gliederung erzeugt das lesende oder schreibende Programm Anders als in PASCAL ist daher der Typ FILE nicht ein FILE of irgendetwas Eine besondere Struktur ist das Bitfeld Die Strukturkomponenten sind einzel ne Bits oder Gruppen von Bits die ber ihren Komponentennamen angesprochen werden Eine Bitfeld Struktur darf keine weiteren Komponenten enthalten und soll m glichst vom Basistyp unsigned sein Ein einzelnes Bitfeld darf maximal die L nge eines Maschinenwortes haben es kann also nicht ber eine Wortgren ze hinausragen Bitfelder sind keine Arrays es gibt keinen Index Ebensowenig lassen sich Bitfelder referenzieren amp Operator Bitfelder werden verwendet um mehrere Ja nein Angaben in einem Wort unterzubringen Der Name einer Struktur ist kein Pointer sondern ein Variablenname anders als bei Arrays 2 15 Operanden 37 2 15 2 3 Union Eine Variable des Typs union kann Werte unterschiedlichen Typs aufnehmen zu einem Zeitpunkt jedoch immer nur einen Es liegt in der Hand des Pro gramms ber den augenblicklichen Typ Buch zu f hren In FORTRAN dient die equivalence Anweisung demselben Zweck in PASCAL der variante Record Eine Union belegt so viele Bytes wie der l ngste in ihr untergebrachte Datentyp 2 15 2 4 Aufz hlungstypen Durch Aufz hlen lassen sich benutzereigene Typen schaffen Denkbar ist enum wochentag
207. en 140 Zeichensatz 131 Assembler 16 17 81 Ausdruck Ausdruck C 44 53 ausfiihrbar 20 Ausgabe 50 Ausgang Schleife 54 Ausgangswert s Defaultwert Auslagerungsdatei s File Auswahl C 54 auto C 43 Automat 2 Autorensystem 8 BABBAGE C 2 276 Background s Prozess Backus J 28 Backus Naur Form 28 BARDEEN J 276 bash 1 s Shell BASIC 6 18 Batchfile s Shellscript BCD System 131 Bedingte Bewertung 48 Bedingte Compilation 91 Bedingung C 53 Befehl s Anweisung Befehl Shell s Kommando Bereit Zeichen s Prompt Betriebssystem 5 6 Bezug 67 Bezugszahl s Flag 284 Bibliothek 82 Big Blue s IBM Bildpunkt s Pixel Bildschirm 4 Screen saver s Schoner bin r kompatibel 20 Bin rdarstellung 3 Binary 20 Binder s Linker Bindung dynamische 21 Bindung statische 21 Bit 3 bit Ma einheit 3 Block 92 BooLE G 276 booten 9 Bottom up Entwurf 25 BRATTAIN W H 276 break C 54 57 Briefkasten s Mailbox Biicherei s Bibliothek Bug s Fehler Bulletin Board 7 Byte 3 C 6 19 C 15 19 128 C XSC 19 129 Cache s Speicher Call by reference s Adress bergabe Call by value s Wert bergabe calloc 3 107 Carnegie Mellon Universit t 276 Carriage return s Zeilenwechsel case C 54 cast Operator 51 cb 1 22 cc 1 20 cdecl 32 Centronics s Schnittstelle char C 33 Character set s Zeichensatz COBOL 6 17 comp society folklore 10 compact Speichermodell 88 Compiler 20 Controler s Treiber Compi
208. en Leser bestimmt ist Dieser Kommentar mu mit einem besonderen Zeichen eingeleitet und gegebe nenfalls beendet werden In C leitet die Zeichengruppe den Kommentar ein Er kann sich ber meh rere Zeilen erstrecken darf aber nicht geschachtelt werden Zu einer ungewollten Schachtelung kommt es wenn man kommentierte Programmteile durch Einrah men mit Kommentarzeichen vor bergehend unwirksam macht Die Fehlermeldung des Compilers sagt irgendetwas mit Pointern und f hrt irre Die Zeichengruppe kennzeichnet das Ende Ein Zeilenende beendet den Kommentar nicht Ansonsten kann Kommentar berall stehen nicht nur auf einer eigenen Zeile Ein Beispiel Die ersten Zeilen enthalten Programmnamen Zweck Autor Datum Compiler Literatur und aehnliches include lt stdio h gt int main Dies ist eine eigene Kommentarzeile puts Erste Zeile puts Zweite Zeile Kommentar Kommentar puts Dritte Zeile 30 2 Programmieren in C puts Vierte Zeile Kommentar geschachtelt puts Ende return 0 Programm 2 3 C Programm mit Kommentaren Auf unserem System haben wir folgende Regel eingef hrt da Fehlermeldungen des Systems in Englisch ausgegeben werden schreiben wir die Meldungen unserer Programme in Deutsch man sollte sie ohnedies mittels define Anweisungen irgendwo zusammenfassen so da sie leicht ausgetauscht werden k nnen Damit sieht man sofort woher eine M
209. en kann ein goto das Programm verbesern meist ist es vom bel weil es erstens sehr gef hrlich zweitens auch nicht n tig ist Hier ein grauenvolles Beispiel f r den Mi brauch von goto Das Programm ist syntaktisch richtig und tut auch das was es soll n mlich die eingegebene Zahl Sogenannter Zaunpfahl Fehler fencepost error Wenn Sie bei einem Zaun von 100 m L nge alle 10 m einen Pfahl setzen wieviele Pf hle brauchen Sie 9 10 11 Real programmers aren t afraid to use goto s 58 2 Programmieren in C ausgeben falls sie durch 5 teilbar ist andernfalls die n chstgr ere durch 5 teilba re Zahl einschlie lich der Zwischenergebnisse Des weiteren enth lt das Programm eine schwere programmiertechnische S nde den Sprung mitten in einen Schleifen rumpf Grauenvolles Beispiel fuer goto 06 07 1992 Am besten gar nicht compilieren include lt stdio h gt int main int x printf Bitte Zahl eingeben scanf Yd amp x if x 5 goto marke else while x 5 xXt t marke printf Ausgabe Yd n x return 0 Programm 2 9 C Programm mit goto grauenvoll Nun aber ganz schnell eine stilistisch einwandfreie Fassung des Programms Verbessertes Beispiel 06 07 1992 include lt stdio h gt int main int x printf Bitte Zahl eingeben scanf Yd amp x do printf d n x while x 5 return 0 Programm 2 10
210. en kennen nur das Byte oder das Maschinenwort als Datentyp Die Typisierung erleichtert die Arbeit und erh ht die Sicherheit Stellen Sie sich vor Sie m ten bei Gleitkommazahlen Exponent und Mantisse jedesmal selbst aus den Bytes herausdr seln Die Typdeklarationen in C k nnen ziemlich schwierig zu verstehen sein vor allem bei mangelnder bung Im Netz findet sich ein Programm cdecl das Typde klarationen in einfaches Englisch bersetzt F ttert man dem Programm folgende Deklaration char x 3 5 so erhalt man zur Antwort declare x as array 3 of pointer to function returning pointer to array 5 of char So schnell wie cdecl hatten wir die Antwort nicht gefunden 2 15 2 1 Einfache Typen In jeder Programmiersprache gibt es Grundtypen aus denen alle h heren Typen zusammengesetzt werden In C sind dies ganze Zahlen Gleitkommazahlen und Zeichen Real programmers don t worry about types 2 15 Operanden 33 Ganze Zahlen In C gibt es ganze Zahlen mit oder ohne Vorzeichen sowie in halber einfacher oder doppelter L nge e int ganze Zahl mit Vorzeichen e unsigned int ganze Zahl ohne Vorzeichen e short kurze ganze Zahl mit Vorzeichen e unsigned short kurze ganze Zahl ohne Vorzeichen e long ganze Zahl doppelter L nge mit Vorzeichen e unsigned long ganze Zahl doppelter L nge ohne Vorzeichen Die L nge der ganzen Zahlen in Bytes ist nicht festgelegt und beim Portieren zu beachten H ufig sind short und int
211. enden Variablen als Platzhalter oder formale Parameter vorkommen und deklariert sein Im Aufruf der Funktion kommt der gleiche Satz von Variablen gegebenenfalls unter anderem Namen mit jeweils aktuellen Werten vor sie werden als aktuelle Parameter 2 18 Funktionen 63 oder Argumente bezeichnet Die Schnittstelle von Programm und Funktion mu zusammenpassen wie Stecker und Kupplung einer elektrischen Verbindung d h die Liste der aktuellen Parameter mu mit der Liste der formalen Parameter nach Anzahl Reihenfolge und Typ der Parameter bereinstimmen Bei der Wert bergabe call by value wird der Funktion eine Kopie der aktuellen Parameter des aufrufenden Programmes bergeben Daraus folgt da die Funktion die aktuellen Parameter des aufrufenden Programmes nicht ver ndern kann Bei der Adress bergabe call by reference werden der Funktion die Speicheradressen der aktuellen Parameter des aufrufenden Programmes berge ben Die Funktion kann daher die Werte der Parameter mit Wirkung f r das aufrufende Programm ver ndern Sie arbeitet mit den Originalen der Parameter Das kann erw nscht sein oder auch nicht Bei der Namens bergabe call by name werden die Werte der aktuellen Parameter bei jeder Verwendung in der Funktion neu berechnet Der Name jedes formalen Parameters in der Funktion wird w rtlich durch den Namen des entspre chenden aktuellen Parameters aus dem aufrufenden Programm ersetzt Call by name ist selten und soll
212. er ist damit noch nicht alles erledigt denn die arithmetischen Operatoren von C gelten nur f r Ganz und Gleitkommazahlen nicht f r Strukturen Wir m ssen noch Funktionen f r die Operationen mit komplexen Operanden schreiben In FORTRAN hingegen gelten die gewohnten arithmetischen Operatoren auch f r komplexe Daten In C lassen sich die Bedeutungen der Operatoren erweitern berladen aber in C nicht Bei Strings taucht das Problem der L ngenangabe auf Folgender Weg ist gang bar erf llt aber nicht alle W nsche typedef char STRING Dann k nnen wir schreiben STRING fehler Falsche Eingabe Der Compiler wei die L nge der Strings aufgrund der Zuweisung der String konstanten Hingegen ist die nachstehende Deklaration fehlerhaft wie man leicht durch Einsetzen erkennt STRING abc 16 Die Typdefinition eingesetzt ergibt char abc 16 und das ist kein String sondern ein Array von Strings Erst zweimaliges Derefe renzieren f hrt auf den Typ char Die Schreibweise typedef char 16 STRING STRING abc die dieses Problem l sen w rde haben wir zwar in einem Buch gefunden wurde aber nicht von unserem Compiler angenommen Ist man darauf angewiesen da ein Datentyp eine bestimmte Anzahl von By tes umfa t erleichtert man das Portieren indem man einen eigenen Typnamen deklariert und im weiteren Verlauf nur diesen verwendet Bei einer Portierung ist dann nur die Typdefinition anzupassen Es werde eine Ganzzahl
213. er Incident Advisory Capability Computerized Integrated and Automatic Manufacturing System Computer Integrated Bureaucracy Coordination and Information Center CSNet Customer Information Control System IBM Configuration Installation Distribution Customer Identifier Classless Internet Domain Routing Commission Internationale de l Eclairage Farbmodell Computer Integrated Electron Design Series Computer Integrated Facilities Common Intermediate Format Computerintegrierte Logistik Computer Integrated Manufacturing CompuServe Information Manager Communication Input Output Control system Communication Institute for Online Scholarship Comp Investitionsprogr des Bundes und der L nder Computer Aided Intuition Guided Programming Command Interface Port Committed Information Rate Circular Reference Cross Interleaved Reed Solomon Code Cross Interleave Solomon Code CASE Integration Services Computer Information System CompuServe Information Service Contact Image Sensor Complex Instruction Set Computer Code Computer and Information Science and Engineering Directorate Comite International Special des Perturbations Radioelectriques Company Integrated Telephony Computer Integrated Telephone California Institute of Technology Compulink Information Exchange Commercial Internet Exchange Ass Association Central Internet Exchange Count Key Data Checksum CLAA CLAG CLAR CLASS CLC CLDATA CLEF CLI CLIST CLK CL
214. er Kommandozeile Den R ckgabewert von main sollte man nicht dem Zufall berlassen sondern mit einer return Anweisung ausdr ck lich festlegen 0 bei Erfolg 2 18 5 Funktionen mit wechselnder Argumentanzahl Mit main haben wir eine Funktion kennengelernt die eine wechselnde Anzahl von Argumenten bernimmt Auch f r andere Funktionen als main gibt es einen Mechanismus zu diesem Zweck schauen Sie bitte unter varargs 5 nach Der Mechanismus ist nicht berm ig intelligent sondern an einige Voraussetzungen gebunden e Es mu mindestens ein Argument vorhanden sein e der Typ des ersten Arguments mu bekannt sein 2 18 Funktionen 75 e es muf ein Kriterium fiir das Ende der Argumentliste bekannt sein Die erforderlichen Makros stehen in den include Files lt varargs h gt f r UNIX System V oder lt stdarg h gt f r ANSI C Wir erkl ren die Vorgehensweise an ei nem Beispiel das der Funktion printf 3 nachempfunden ist es ist damit nicht gesagt da printf 3 tats chlich so aussieht Funktion printi Ersatz fuer printf nur fuer dezimale Ganzzahlen Zeichen und Strings Siehe Referenz Handbuch unter varargs 5 22 02 91 Returnwert 0 ok 1 Fehler sonst wie printf Compileraufruf cc c printi c include lt stdio h gt include lt varargs h gt int fputc void int_print Funktion printi variable Anzahl von Argumenten int printi va_alist va_dcl va_list
215. er die Standardfunktion gmtime 3 bei der Standardfunktion ctime 3 In solchen F llen mu man das Sachregister den Index des Handbuchs befragen Mittels des Kommandos man 1 holt man die Eintr ge aus dem gespeicher ten Referenz Handbuch On line Manual auf den Bildschirm oder Drucker Das On line Manual sollte zu den auf dem System vorhandenen Kommandos passen w hrend das papierne Handbuch lter sein kann Versuchen Sie folgende Eingabe man 1s man 2 time man man Falls auf dem Bildschirm links unten das Wort more erscheint bet tigen Sie die Zwischenraum Taste space bar more 1 ist ein Pager ein Programm das einen Text seiten oder bildschirmweise ausgibt Die Zahlenangabe bei der zweiten Ein gabe bezieht sich auf die gew nschte Sektion Die wenigsten Leser werden die UNIX Referenz Handb cher zur pers nlichen Verf gung haben Als Ausweg bietet sich das Buch von DANIEL GILLY UNIX in a Nutshell an das die Einzelheiten der Kommandos bringt auf die wir verzichten Au erdem ist die Nutshell preiswert und nicht zu dick 1 6 Warum verwendet man Computer nicht Philosophische Interessen sind bei Ingenieuren h ufig eine Alterserscheinung meint der Wiener Computerpionier HEINZ ZEMANEK Wir glauben das n tige Alter zu haben um dann und wann das Wort warum in den Mund nehmen oder in die Tastatur hacken zu d rfen Sehr junge Informatiker u ern diese Frage auch h ufig Bei der Umstellung einer hergebrachten T tigkeit au
216. ersity of British Columbia niversity of California at Berkeley nix Connectivity File Service niversity College London Universal Communications Language niversity of California at Los Angeles niversity of California at San Diego ser Defined Command ser Defined Function Universal Disc Format niversal Document Identifier niversal Data Link Control nified Design Language for Integrated Circuits nternehmensdatenmodell ser Datagram Protocol Internet eledienst Unternehmen Datenschutzverordnung nterhaltungs Elektronik GHadqCdaaacaaadaacadadcadcadcad 238 EB EC EM EV FS G HF HL I IAP ID IFRAME IL IM IMS IT L LA LN LP LSI MA MB MTS N NC N GTDI NI NICOM NIVAC NMA P PC PE PI PL PM PN PPS PS RI RL RN S SAN SART SB SG SL E CC CC CC CC CC CC CC CC CC CC CC CC C CC CHIC Cl CC CC CC CH CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC amp F Abk rzungen bertragungseinheit mit Basisbandverfahren ser Environment Component bertragungseinheit mit Modemverfahren ser End of Volume niversal File System ser Group Underrun Goal Itrahigh Frequency 300 MHz 3 GHz ser Header Label NIX International Unnumbered Information User Interface NIX International Asia Pacific ser Identifier nnumbered Information Frame ser Interface Language ser Interface Management ser Interface Management System nion Internationale des Telecommunications nder
217. es Filesystems z B L nge der Namen Annahmen ber die Reihenfolge der Auswertung von Ausdr cken Funktions argumenten oder Nebeneffekten z B bei printf 3 Annahmen ber die Anordnung der Daten im Arbeitsspeicher Annahmen ber die Anzahl der signifikanten Zeichen von Namen Annahmen ber die automatische Initialisierung von Variablen die Dereferenzierung von Nullpointern Null ist keine Adresse Annahmen ber die Darstellung von Pointern Pointer sind keine Ganzzah len die Annahme einen Pointer dereferenzieren zu k nnen der nicht richtig auf eine Datengrenze ausgerichtet ist Alignment die Annahme da Gro und Kleinbuchstaben unterschieden werden die Annahme da der Typ char vorzeichenbehaftet oder vorzeichenlos ist EOF 1 Bitoperationen mit vorzeichenbehafteten Ganzzahlen die Verwendung von Bitfeldern mit anderen Typen als unsigned Annahmen tiber das Vorzeichen des Divisionsrestes bei der ganzzahligen Division die Annahme da eine extern Deklaration in einem Block auch au erhalb des Blockes gilt Diese und noch einige Dinge werden von unterschiedlichen Betriebssystemen und Compilern unterschiedlich gehandhabt und man wei nie was einem begegnet Dagegen soll man den Syntax Pr fer lint 1 befragen Praprozessor Anweisungen und typedef benutzen um Abh ngigkeiten ein zugrenzen alle Variablen Pointer und Funktionen ordentlich deklarieren symbolische Konstanten def
218. es von Variablen die hier nicht deutlich werden C Programm csummep das PASCAL Funktionen aufruft Compileraufruf cc o csummep csummep c psv o psr o lcl include lt stdio h gt extern int psv int x int y psr int x int y int main int a b puts Bitte die beiden Summanden eingeben scanf d Man ka amp b printf Die Summanden sind 4d Ad n a b printf Die Summe direkt ist d n a b printf Die Summe ist d n psv a b printf Die Summanden sind 4d Ad n a b printf Die Summe ist d n psr amp a amp b printf Die Summanden sind 4d Ad n a b return 0 Programm 2 20 C Programm das Parameter by value und by reference an PASCAL Funktionen bergibt Hiernach sollte klar sein warum die C Standardfunktion printf 3 mit Varia blen als Argument arbeitet w hrend die hnliche C Standardfunktion scanf 3 Pointer als Argument verlangt printf 3 gibt Werte aus ohne sie zu ndern Es ist f r das Ergebnis belanglos ob die Funktion Adressen Pointer oder Kopien der Variablen verwendet die Syntax legt das allerdings fest Hingegen soll scanf 3 Werte mit Wirkung f r die aufrufende Funktion einlesen Falls es sich nur um einen Wert handelte k nnte das noch ber den Returnwert bewerkstelligt werden aber scanf 3 soll mehrere Werte dazu noch verschiedenen Typs verarbeiten Das 68 2 Programmieren in C geht nur ber von scanf 3 und der aufr
219. esen werden Man mu vielmehr mit den Standard Stringfunktionen arbeiten oder sich selbst um die einzelnen Elemente des Arrays k mmern Die Stringfunktionen erwarten das include File string h Hier ein kurzes C Programm zur Stringmanipulation mittels Systemaufrufen und Standardfunktionen Programm fuer Stringmanipulation Compileraufruf define TEXT textfile include lt stdio h gt include lt string h gt include lt io h gt include lt fcntl h gt include lt string h gt char buffer 80 Dies ist ein langer Teststring Hallo int main char x zeile 80 int 1 int fildes FILE fp Systemaufrufe und Filedeskriptoren fildes open TEXT O_RDWR if fildes 1 puts open schiefgegangen write fildes buffer 20 lseek fildes long 0 SEEK_SET read fildes zeile 12 write 1 zeile 12 close fildes Standardfunktionen und Filepointer fp fopen TEXT ai for i 0 i lt 30 i fputc buffer i fp fclose fp fp fopen TEXT r for i 0 i lt 30 i zeile i fgetc fp putchar n 2 19 Funktions Bibliotheken 85 for 1 0 i lt 30 i putchar zeileli Stringfunktionen strcpy zeile buffer printf n s zeile putstf n nBitte eine Zeile eingeben gets zeile puts zeile strcat zeile Prima puts zeile printf zeile Programm 2 37 C Programm zur Stringverarbeitung Internet
220. esley Reading 1991 270 S 76 DM Objective C R Klatte u a C XSC Springer Berlin 1993 269 S 74 DM auch auf englisch erh ltlich C Klassenbibliothek f r wissenschaftliches Rechnen B Stroustrup The C Programming Language Addison Wesley Reading 2 Aufl 1991 669 S 76 DM Lehrbuch Klassiker f r C 14 Programmieren in anderen Sprachen Newsgruppen comp lang de comp lang 270 15 I Literatur W Gehrke FORTRAN 90 Referenz Handbuch Hanser M nchen 1991 964 S 168 DM Beschreibung des Standards kein Lehrbuch f r Anf nger D Hergert Microsoft QuickBASIC Microsoft Press Redmond 1989 449 S 42 DM K Jensen N Wirth u a Pascal User Manual and Report Springer Berlin 1991 290 S 48 DM K Jensen N Wirth Pascal Benutzerhandbuch Springer Berlin 1991 243 S 49 DM E Kaucher u a Programmiersprachen im Griff Band 5 FORTRAN 77 BI Hochschultaschenb cher Band 609 Bibliographisches Institut Mannheim 1983 467 S 30 DM Band 7 Ubungen und Tests in FORTRAN 77 Band 617 Bibliographisches Institut Mannheim 1984 329 S 30 DM Ausf hrliche Anleitung zum Programmieren in FORTRAN 77 in glei cher Weise auch f r PASCAL und BASIC erh ltlich F Singer Programmieren mit COBOL Teubner Stuttgart 1988 319 S Lehrbuch f r COBOL 85 H Wehnes FORTRAN 77 Hanser M nchen 1992 280 S 28 DM Lehrbuch f r Anf nger P H Winston B K P Horn LISP Addison Wesley Reading 1993
221. ession Multiplexing Terminal Controller Module Thomas Conrad Networking System Tj nstem nnens Centralorganisation Schweden Total Cost of Ownership IEEE Technical Committee on Operating Systems Transmission Control Protocol Program Interent Tape Carrier Package Transmission Control Protocol Internet Protocol Internet Trusted Computer System Evaluation Criteria Orange Book Transmission Control Unit Tagged Control Word Transmit Data Terrestrial Digital Audio Broadcasting Transportation Data Coordinating Comittee Time Division Duplex Telecommunication Device for the Deaf Transport Driver Interface Time Division Multiplexer Multiplexing Time Division Multiple Multiplex Access Time Domain Reflectometer Reflectometry Tracking and Data Relay Satellite Transmitter Data Service Request TDSV TDU TDX TE TECO TED TEI TEL Telex Telnet Temex TETRA TF TFA TFD TFDD TFEL TFS TFT TFTP TFTS TG TGN TGS TH THT THWLAIAS THX TI TIA TIC TID TIDSV TIES TIFF TIGA TINAR TIP TK TKO TL TLB TLI TLNKG TLQ TLU 235 Telekommmunikations Datenschutzverordnung Topology Database Update Time Domain Crosstalk Terminal Equipment Tape Text Editor and Corrector Telefonischer Ermittlungsdienst Terminal Endpoint Identifier Trans Europe Line Telegraph Exchange Fernschreiben Telecommunications Network Telemetry Exchange Trans European Trunked Radio System Tragerfrequenz Transparent
222. ewman Cambridge Mass Internet Broadband Network Services Bulletin Board System Begin Chain Block Check Character Binary Coded Decimal Bell Canada Enterprises Bose Chaudhuri Hocquenghem Code 168 BCI w BCL BCP BCPL BCR BCS BDE BDLC BDOS BDSG BECN BEL BELLCORE BEM BER Berkom BERT BETC BF B F BFBI BfD BFI BFMI BFS BFT BFTP BGA BGI BGP BHP BHT BI B ICI BIGFON BIM BiMOS BIND BIOS BIP BIS B ISDN BISYNC BITNET BIU BIX BK BKS F Abk rzungen Broadcast Interference Batch Command Language Byte Control Protocol Bulk Copy Program Basic Computer Combined Programming Language Byte Count Register Binary Synchronous Communications Boeing Computer Services British Computer Society Betriebsdatenerfassung Burroughs Data Link Control Basic Disk Operating System Bundesdatenschutzgesetz Backward Explicit Congestion Notification Bell ASCH Zeichen Nr 7 Bell Communications Research Inc Boundary Element Method Bit Error Rate Basic Encoding Rules Berliner Kommunikationssystem Bit Error Rate Test Tester Between Chain Bad Flag Boundary Function Background Foreground Brute Force and Bloody Ignorance Slang Bundesbeauftragter f r Datenschutz Brute Force and Ignorance Slang Brute Force and Massive Ignorance Slang Breadth First Search Binary File Transfer Batch Background File Transfer Protocol Ball Grid Array Borland s Graphics Interface Border Gate
223. ezeichnet FORTRAN wurde im Laufe der Jahrzehnte weiter ent wickelt zur Zeit ist FORTRAN9O aktuell und ist auch heute noch die in der Technik am weitesten verbreitete Programmiersprache Kein Ingenieur kommt an FORTRAN vorbei Ein Beispiel findet sich in Abschnitt 2 18 3 Parameter bergabe Die Kaufleute hatten mit Mathematik weniger am Hut daf r aber gro e Da tenmengen Sie erfanden Ende der f nfziger Jahre ihre eigene Programmierspra che COBOL das hei t Common Business Oriented Language Da Leutnant GRACE M HOPPER eine Frau sowohl den ersten Bug erlegt wie auch COBOL Recht betrachtet will man auch keine Gleichungen sondern Aufgaben wie die Di mensionierung eines Maschinenteils oder das Zusammenstellen eines Sachregisters l sen 18 2 Programmieren in C erfunden habe ist eine Legende um ein K rnchen Wahrheit herum COBOL ist ebenfalls unverw stlich und gilt heute noch als die am weitesten verbreitete Pro grammiersprache Kein Wirtschaftswissenschaftler kommt an COBOL vorbei Ein Ausschnitt aus einem COBOL Programm liest sich wie gebrochenes Englisch PROCEDURE DIVISION ANFANG OPEN INPUT IST UNSORTIERT OPEN OUTPUT IST SORTIERT LISTE A SORT SECTION SORT SORT DATEI ON ASCENDING KEY S NUMMER INPUT PROCEDURE IS B SORT THRU B1 SORT OUTPUT PROCEDURE IS C SORT THRU C1 SORT GO TO DRUCKEN B SORT SECTION READ IST UNSORTIERT AT END GO TO B1 SORT RELEASE SATZ C FROM SATZ A GO TO B SORT Programm 2 2 Ausschn
224. f Computer steht oft die Zeitersparnis Kostenersparnis im Vordergrund Zumindest wird sie als Begr ndung f r die Umstellung herangezogen Das ist weitgehend falsch W hrend der Umstellung mu doppelgleisig gearbeitet werden und nach der Umstellung erfordert das Computersystem eine st ndige Pflege Einige Arbeiten gehen mit Computerhilfe schneller von der Hand daf r verursacht der Computer selbst Ar beit Auf Dauer sollte eine Ersparnis herauskommen aber die Erwartungen sind oft berzogen Nach drei bis zehn Jahren Betrieb ist ein Computersystem veraltet Die weitere Benutzung ist unwirtschaftlich das hei t man k nnte mit dem bisherigen j hrli chen Aufwand an Zeit und Geld eine leistungsf higere Anlage betreiben oder mit 15Know that the Nutshell Guides are but the outermost portal of the True Enlightment Worthy are they and praise to the name of O Reilly whose books show the Hackerly Spirit in numerous pleasing ways but the Nutshell Guides are only the beginning of the road schreibt ein netter Internetter Dann verstehen wir uns als der Wegweiser der aus der W ste der Unwissenheit zur Stra e der Erleuchtung f hrt noch vor den Nutshell Guides 1 6 Warum verwendet man Computer nicht 13 einer neuen Anlage gleicher Leistung den Aufwand verringern Dann stellt sich die Frage wie die alten Daten weiterhin verf gbar gehalten werden k nnen Denken Sie an die Lochkartenstapel verflossener Jahrzehnte die heute nicht meh
225. file Digital Audio Radio Deutscher Amateur Radio Club Database Application Remote Interface IBM Defense Advanced Research Projects Agency USA Dual Attached Station FDDI Decimal Adjust for Subtraction Daten bertragung via Satellit Direct Access Storage Device Drive active Slave present Direct Access Secondary Storage Digital Audio Tape Disk Array Technology Data Communications Drake Authorized Testing Center Novell Data Telecommunication Datenverarbeitungsorganisation der steuerberatenden Berufe Data Exchange by Lines leitungsvermittelt Data Exchange for Jedermann Data Exchange Multi Megabit Data Exchange in Packages paketvermittelt D mmster Anzunehmender User Slang Data Available Digital Audio Video Council Digital Audio Video Interactive Decoder Directed Acyclic Word Graph Dezibel Ma einheit Data Base Buffer Database Access Agent Data Bus Controller Double Byte Character Set Data Base Manager Data Base Management System Deutsche Bundespost Data Base Server Direct Broadcasting Satellite Direct Current Device Control Data Collection Control Distributed Communications Architecture Document Content Architecture Digital Computer Association Data Center Administration Defense Communications Agency USA 180 DCAF DCB DCC DCCS DCD DCE DCF DCFL DCI DCL DCM DCNA DCS DCT DD DDA DDB DDBMS DDC DDCMP DDCS DDD DDE DDEML DDI DDIF DDK DDL DDM DDN
226. frufe des Betriebssystems zur ck oder besser auf Funktionen der Stan dardbibliothek die letzten Endes auch Systemaufrufe verwenden nur intelligent verpackt Die wichtigsten Funktionen sind printf 3 und scanf 3 2 16 Operationen 51 2 16 9 Sonstige Operationen Ferner gibt es in C noch einige Operatoren f r verschiedene Aufgaben e Datentyp Umwandlung cast Operator e Komma Operator e sizeof Operator sizeof Der cast Operator enthalt in den runden Klammern eine skalare Typbezeich nung ohne Speicherklasse und geht dem umzuwandelnden skalaren Operanden un mittelbar voraus int n double y y sqrt double n n sel eine Ganzzahl Die Funktion sqrt erwartet jedoch als Argument eine Gleitkommazahl doppelter Genauigkeit Die Typumwandlung von n wird durch den cast Operator double bewirkt Bei der Typumwandlung k nnen Bits oder Dezimalstellen verlorengehen wenn der neue Typ k rzer ist als der alte Die Ty pumwandlung gilt nur im Zusammenhang mit dem cast Operator und hat f r die weiteren Anwendungen der Variablen keine Bedeutung Manche Compiler bean standen einen cast Operator auf der linken Seite einer Zuweisung Der Komma Operator trennt in einer Auflistung von Anweisungen oder Aus dr cken diese voneinander Sie werden von links nach rechts abgearbeitet Das Ergebnis der Auflistung hat Typ und Wert des rechts au en stehenden Ausdrucks Ein Beispiel int i j 10 i j j 100 999 printf d i
227. ft eine Sitzung ab Wo schl gt man nach Warum verwendet man Computer nicht 2 22 2 2 2 Programmieren in C 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 2 11 2 12 2 13 2 14 2 15 Sprachenfamilien e Imperative Programmiersprachen e Interpreter Compiler Linker e Qualit t und San Programmiertechnik e Aufgabenanalyse und Entwurf 0 2 7 1 Aufgabenstellung 2 0 0 0 0 20 0 00 000 2 7 2 Zerlegen in Teilaufgaben 2 2 222202 2 7 3 Zusammensetzen aus Teilaufgaben Prototyping e Diagramme e Memo Programmiertechnik e bung Programmiertechnik Bausteine eines Quelltextes e kommentar Namen Operanden 2 15 1 Konstanten und Variable 2 15 2 Typen und Typdefinitionen 2 15 2 1 Einfache Typen 2 2 2222 2 15 2 2 Zusammengesetzte Typen 2 15 2 3 Union oo oo 2 15 2 4 Aufz hlungstypen 2 2 2222 2 15 2 5 Pointer Zeiger 222220 2 15 2 6 Arrays und Pointer 22 22 222 2 15 2 7 Definition von Typen typedef 2 15 3 Speicherklassen 2 15 4 Geltungsbereich 2 15 5 Lebensdauer e Vil vill 2 16 2 17 2 18 2 19 Inhaltsverzeichnis 2 15 6 Deklaration und Definition von Operanden 44 2 15 7 Memo Operanden 0 0 00020004 44 2 15 8 bung Operanden 2 00 a ee 44 Operationen 2 a a a 44 2 16 1 Ausdr cke 2 ee 44 2 16 2 Zuweisung
228. g wird ausgef hrt und ihr Wert an ihre Stelle gesetzt Steht der Ausdruck allein mu er mit einem Semikolon beendet werden printf 4d Af n x 3 log 4 x D y log 4 hnlich wie die Return Taste in der Kommandozeile bewirkt hier erst das Semi kolon da etwas geschieht 2 17 3 Kontrollstrukturen Kontrollstrukturen steuern in Abh ngigkeit von dem Wert eines booleschen Ausdrucks Bedingung die Abarbeitung von Programmteilen einzelnen Anwei sungen oder Bl cken Die Kontrollstrukturen von C wie von vielen anderen Spra chen sind die Bedingung die Verzweigung die Auswahl die Schleife und der Sprung Bedingung Die Ausf hrung eines Blocks kann von einer Bedingung conditi on abh ngig gemacht werden Die Bedingung ist ein Ausdruck der nur die Werte true oder false annimmt Ist die Bedingung true wird der Block abgearbeitet und dann im Programm fortgefahren Ist die Bedingung false wird der Block bersprungen Kann die Bedingung niemals true werden hat man toten uner reichbaren Code geschrieben Ist die Bedingung immer true sollte man auf sie verzichten In C wird die Bedingung mit dem Schl sselwort if eingeleitet ohne then im Unterschied zu einem Shellscript Besteht der Block nur aus einer einzigen Anweisung kann auf die geschweiften Klammern verzichtet werden if Ausdruck Anweisung if Ausdruck Block Verzweigung C Bei einer Verzweigung branch entscheidet sich der Com puter in Abh ng
229. gen impliziten sollten zumindest in Schleifen vermieden werden Der Typ numerischer Kon stanten sollte von vornherein zu den weiteren Operanden passen Beispielsweise f hrt float f g g f 1 2345 zu einer Typumwandlung von f in double und einer R ckwandlung des Ergebnisses in float da Gleitkommakonstanten standardm ig vom Typ double sind Gleitkommarechnungen sind immer aufwendiger als Rechnungen mit gan zen Zahlen und haben zudem noch T cken infolge von Rundungsfehlern Wer mit Geldbetr gen rechnet sollte mit ganzzahligen Pfennigbetr gen anstelle von ge brochenen Markbetr gen arbeiten Wenn schon mit Gleitkommazahlen gerechnet werden mu und der Speicher ausreicht ist der Typ double vorzuziehen der intern ausschlie lich verwendet wird Von zwei m glichen Operationen ist immer die einfachere zu w hlen Bei spielsweise ist eine Addition schneller als eine Multiplikation eine Multiplikation schneller als eine Potenz und eine Bitverschiebung schneller als eine Multiplikation mit 2 Eine Abfrage if x lt sqrt y schreibt man besser if x x lt y Kleine Funktionen lassen sich durch Makros ersetzen die vom Pr prozessor in In line Code umgewandelt werden Damit erspart man sich den Funktionsaufruf samt Parameter bergabe Der ausf hrbare Code wird geringf gig l nger Enth lt eine Schleife nur einen Funktionsaufruf ist es besser die Schleife n die Funktion zu verlegen da jeder Funktionsaufruf Zeit
230. gment Enhanced Security Elektronische Signatur Enterprise System Architecture European Space Agency Escape European Support Center Novell Epson Standard Code for Image Readers Epson Printer Language Enterprise System Connection Architecture IBM Electrostatic Discharge Entry Systems Division Electronic Software Distribution Electronic System Design Automation Extra Segment Descriptor Cache Enhanced Small Device Interface Expert System Environment Extended Superframe Format Eureka Software Factory Extended Superframe Format End System to Intermediate System Protocol OSI Enhanced Serial Interface European SMDS Interest Group 190 ESM ESMTP ESOC ESP ESPRIT ESS ESU ESV ETANN ETB ETDD ETDM ETE ETI ETOL ETOX ETR ETS ETSA ETSI ETX EU EUC EUnet EurOpen EUUG EV EVA EVAS EVE EVGA EVN EVO EVS EVU EWOS EWS EWSP EXAPT EXCH EXFCB EXP EXT EXTRN EXUG EZV F Abk rzungen Ethernet Switching Module Extended SMTP Internet European Space Operation Centre Enhanced Serial Port Encapsulating Security Payload European Strategic Programme for Research in Information Technology Environmental Stress Screening Electronic Switching System Electrostatic Unit Elektronikschrottverordnung Electrically Trainable Analog Neural Network Intel End of Transmission Block Electrical Time Division Demultiplexer Demultiplexing Electrical Time Division Multiplexer Multiplexing Entry to E
231. h Provningsr det Schweden Multipart Repeater Ministry of Post and Telecommunications UK Japan Multiple Protocol Transport Feature Multi Multiple Protocol Transport Network IBM Multiprotocol Transport Services IBM Microprocessor Unit MIDI Processing Unit Macintosh Programmers Workbench Message Queuing Messaging and Queuing Interface Modem Ready magneto resistiv Maritime Rescue Coordination Center Microsoft Realtime Compression Format Microsoft Realtime Compression Interface Motif Resource Manager Multi Region Operation Material Requirements Planning Manufacturing Resource Planning Main Ring Path Length Method Request Broker Mean Repair Time Maximum Receive Unit Memory System Message Store Microsoft Corporation Mobile Station Multiplexer Section Alarm Indication Signal Minislotted Alternating Priorities Most Significant Bit Mobile Switching Centre Microsoft Compact Disk Extensions Mass Storage Control Protocol Mass Storage Device Most Significant Digit Microsoft Disk Operating System Multiplexed Streaming Data Request Microsoft Developer Support Message Medium Scale Integration Minimum Shift Keying Mirrored Server Link Map Specification Library Multiple Subscriber Number Microsoft Network Multiplexer Section Overhead Multiplexer Section Protection 212 MSR MSS MSTE MSW MT MTA MTBB MTBF MTBJ MTDA MTF MTP MTS MTTF MTTR MTU MUD MUF MUFF MUL MUMPS MUNDI MUSICA
232. hannel End Of File Flame Enterprise Objects Framework End Or Identify EOJ EOL EOM EON EOR EOS EOT EOU EOUG EPA EPL EPLD EPP EPPT EPROM EPS EPSF EPSI EPSS ER ERA ERC ERCIM ERIC ERLL ERM ERMES ERN EROM ERP ERR ES ESA ESC ESC I ESC P ESCON ESD ESDA ESDC ESDI ESE ESF ES IS ESI ESIG 189 End Of Job End Of Line List Europa Online End Of Message Meckerei Enhanced Information Concerning Other Networks Exclusive Or auch XOR End Of String Educational Online Sources End of Tape Transmission Table Text End Of User European Oracle Users Group Environmental Protection Agency USA Effective Prvilege Level Erasable Programmable Logic Device Enhanced Parallel Port Ethernet Packet Processor European Printer Performance Test Erasable Programmable Read Only Memory Encapsulated Postscript Electronic Publishing System Encapsulated Postscript File Format Encapsulated Postscript Interchange Format Experimental Packet Switching Service Externer Rechner Elementarer Eingeschrankter Regul rer Ausdruck Explieit Route Control European Radiocommunication Committee European Research Consortium for Informatics and Applied Mathematics Educational Resources Information Center USA Enhanced Run Length Limited Entity Relationship Model European Radio Message System European Messaging System Explieit Route Number Erasable Read Only Memory Effective Radiated Power Error Extra Se
233. herverwaltung 108 2 51 C Programm Sortieren nach Duden 113 2 52 C Programm X Window System 2 2 nn onen 117 2 53 ALGOL Programm 121 2 54 C Programm ggT nach Euklid 2 22 2 2 onen 122 2 55 FORTRAN Programm Quadratische Gleichung 124 2 56 C Programm Quadratische Gleichung 126 2 57 BASIC Programm Erathostenes 2 2 2 2 2 onen 128 xiv Programme Rien n est simple Sempe 1 ber den Umgang mit Computern 1 1 Was macht ein Computer Eine elektronische Datenverarbeitungsanlage ein Computer ist ein Werkzeug mit dessen Hilfe man Informationen e speichert nderung der zeitlichen Verf gbarkeit e bermittelt nderung der rtlichen Verf gbarkeit e erzeugt oder ver ndert nderung des Inhalts F r Informationen sagt man auch Nachrichten oder Daten Sie lassen sich durch gesprochene oder geschriebene W rter Zahlen Bilder oder im Computer durch elektrische Signale darstellen Speichern hei t die Information so zu erfassen und aufzubewahren da sie am selben Ort zu einem sp teren Zeitpunkt unver ndert zur Verf gung steht bermitteln hei t eine Information unver ndert einem An deren in der Regel an einem anderen Ort verf gbar zu machen was wegen der endlichen Geschwindigkeit aller irdischen Vorg nge Zeit kostet Da sich elektrische Transporte jedoch mit Lichtgeschwindigkeit nahezu 300 000 km s fortbewegen spielt der Zeitbedarf nur in seltenen F llen eine
234. hinaus er weitern Die Umgebungs Variablen der Sitzungsshell gelten f r alle Prozesse einer Sitzung und k nnen von diesen abgefragt oder ver ndert werden Dar ber hinaus sind auch Variable denkbar die in einem Verzeichnis einem Filesystem oder in ei ner Netz Domain gelten Je gr er der Geltungsbereich ist desto sorgf ltiger mu man mit der Schreibberechtigung umgehen 2 15 5 Lebensdauer Beim Eintritt in einen Bereich wird f r die in diesem Bereich deklarierten Va riablen Speicher zugewiesen allokiert Beim Verlassen des Bereiches wird der Speicher freigegeben von den Variablen bleibt keine Spur zur ck Ihre Lebens dauer ist die aktive Zeitspanne des Bereiches Beim n chsten Aufruf des Berei ches wird neuer Speicher zugewiesen und initialisiert Diese Speicherklasse wird als auto bezeichnet und ist die Standardklasse aller Variablen f r die nichts anderes vereinbart wird M chte man jedoch mit den alten Werten weiterrechnen so mu man die Va riable der Speicherklasse static zuweisen Der Geltungsbereich wird davon nicht ber hrt aber der Speicher samt Inhalt bleibt beim Verlassen der Funktion beste hen Die Variable besteht ist aber vor bergehend unsichtbar 2 15 6 Deklaration und Definition von Operanden 2 15 7 Memo Operanden e Nichts 2 15 8 bung Operanden 2 16 Operationen 2 16 1 Ausdr cke Wir haben bisher Operanden betrachtet aber nichts mit ihnen gemacht Nun wol len wir uns ansehen was man mit
235. hsen Jetzt wollen wir die beiden Summanden im Dialog erfragen und die Summe als Makro schreiben Au erdem soll die Rechnung wiederholt werden bis wir eine Null eingeben Endlich mal was Vernuenftiges define SUMME x y x y include lt stdio h gt int main int a 1 b i 0 while a 0 printf Ersten Summanden eingeben scanf d amp a printf Zweiten Summanden eingeben scanf d amp b printf Die Summe ist d n SUMME a b Itt return i Programm 2 45 C Programm mit Eingabe Der R ckgabewert ist die Anzahl der Schleifendurchl ufe Die Stringkonstanten werden nicht mit puts 3 ausgegeben da diese Funktion einen hier unerw nschten Zeilenvorschub anf gt Denken Sie daran da die Funktion scanf 3 Pointer als Argumente braucht 2 21 3 Fehlersuche Einige Gesichtspunkte sind bereits im Abschnitt Debugger behandelt worden Der erfahrene Programmierer unterscheidet sich vom Anf nger in drei Punkten e Er macht raffiniertere Fehler 2 21 C Programme 95 e Er wei das e Er kennt die Wege und Werkzeuge zur Fehlersuche Fehlerfreie Programme schreibt auch der beste Programmierer nicht Deshalb ist es wichtig schon beim Programmentwurf an die Fehlersuche zu denken und vor allem das Programm so zu gestalten da es bei einem Fehler nicht ein richtiges Ergebnis vort uscht Das ist so ungef hr das Schlimmste was ein Programm machen kann Dann lieber
236. i puts printf tDifferenz 3d kommt 6u mal vor n 1 d 1 for i 2 i lt dmax i 2 printf tDifferenz 3d kommt 6u mal vor n i d i printf n tGroesste Differenz lu kommt erstmals bei lu und lu vor n dmax d2 d1 time amp zeit3 2 21 C Programme 107 printf n tDie Rechnung benoetigte ld s zeit2 zeit1 printf die Ausgabe ld s n zeit3 zeit2 return 0 Ende Hauptprogramm Funktion zum Testen der Teilbarkeit Parameteruebergabe zwecks Zeitersparnis vermieden void ttest register int 1 for i 1 p i p i lt z itt if z p i return z teilbar p n z z prim return Programm 2 49 C Programm zur Berechnung von Primzahlen mit Pointern an stelle von Arrayindizes Zur Laufzeit zeigt sich da die meiste Zeit auf die Ausgabe verwendet wird Daher die Programmiererweisheit Eingabe Ausgabe vermeiden Am Algorithmus und seiner Verwirklichung etwas zu optimieren bringt f r die Gesamtdauer prak tisch nichts Die Ausgabe Funktion printf 3 lie e sich durch eine selbstgeschrie bene schnellere Funktion ersetzenr unter Abstrichen an der Allgemeinheit 2 21 10 5 Strings und Strukturen 2 21 10 6 Pointer auf Funktionen 2 21 11 Ein D mon Beim Schreiben eines Programms das als D mon laufen soll m ssen die beson deren Lebensumst nde eines D mons ber cksichtigt werden 2 21 12
237. iable oder ein Pointer auf ein Variable sein oder ein Pointer auf einen Pointer auf eine Variable Erst ein Blick auf die Deklaration schafft Klarheit 2 15 2 6 Arrays und Pointer 2 15 2 7 Definition von Typen typedef Mithilfe der typedef Anweisung kann sich der Benutzer eigene zus tzliche Na men f r C Datentypen schaffen Der neue Name mu eindeutig sein darf also nicht mit einem bereits anderweitig belegten Namen bereinstimmen typedef erzeugt keinen neuen Datentyp sondern veranla t den Compiler im Programm den neuen Namen w rtlich durch seine Definition zu ersetzen was man zur Pr fung auch von Hand machen kann Der neue Datentyp ist ein Synonym Der Zweck neuer Typ namen ist eine Verbesserung der Lesbarkeit und Portierbarkeit des Quelltextes Einige Beispiele Wir wollen uns einen Typnamen BOOLEAN schaffen der zwar im Grunde nichts anderes ist als der Typ int aber die Verwendung deutlicher erkennen l t Zu Beginn der Deklarationen oder vor main schreiben wir typedef int BOOLEAN die Gro schreibung ist nicht zwingend und k nnen anschlie end eine Variable janein als BOOLEAN deklarieren BOOLEAN janein In FORTRAN gibt es den Datentyp complex den wir in C durch eine Struktur nachbilden typedef struct double real double imag COMPLEX Danach deklarieren wir komplexe Variable COMPLEX z RL20 42 2 Programmieren in C z ist eine komplexe Variable R ein Array von 20 komplexen Variablen Leid
238. ie Rolle eines EDV Laien zu versetzen Schlie lich ist daran zu denken da man ein Programm nicht nur f r den Computer schreibt sondern auch f r andere Programmierer Erstens kommt es oft vor da ein Programm von anderen weiterentwickelt oder erg nzt wird zweitens ist ein Programm eine von mehreren M glichkeiten einen Algorithmus oder einen komplexen Zusammenhang darzustellen Der Quellcode sollte daher leicht zu lesen programmiererfreundlich sein Nicht nur Benutzer auch Programmierer sind Menschen C l t dem Programmierer viel Freiheit mehr als PASCAL Damit nun nicht jeder schreibt wie ihm der Schnabel gewachsen ist hat die Programmierergemein schaft Regeln und Gebr uche entwickelt Ein Versto dagegen beeindruckt den Compiler nicht aber das Programm ist m hsam zu lesen Der Beautifier cb 1 automatisiert die Einhaltung einiger dieser Regeln weitergehende finden sich in e NELSON FORD Programmer s Guide siehe Anhang e B W KERNIGHAN P J PLAUGER Software Tools siehe Anhang e ROB PIKE Notes on Programming in C pub pikestyle ps auf ftp ciw uni karlsruhe de e Firmen Richtlinien wie Nixdorf Computer C Programmierrichtlinien Haus standard 1985 e K HENNING Portables Programmieren in C Programmierrichtlinien ver fa t 1993 vom Hochschuldidaktischen Zentrum und vom Fachgebiet Kyber netische Verfahren und Didaktik der Ingenieurwissenschaften der RWTH Aa chen im Auftrag von sechs Chemiefirme
239. iffmann R Schmitz Technische Informatik Springer Berlin 1993 94 1 Teil Grundlagen der digitalen Elektronik 282 S 38 DM 2 Teil Grundlagen der Computer technik 283 S 42 DM U Sch ning Theoretische Informatik kurz gefa t BI Wissenschaftsverlag Mannheim 1992 188 S 20 DM Automaten Formale Sprachen Berechenbarkeit Komplexit t K W Wagner Einf hrung in die Theoretische Informatik Springer Berlin 1994 238 S H Waldschmidt Informatik f r Ingenieure Oldenbourg M nchen 1987 258 S 40 DM Algorithmen und Programme Programmierfehler Erganzung zu einem Programmierkurs Algorithmen Numerische Mathematik Newsgruppen sci math zer z netz wissenschaft mathematik G Engeln M llges F Reutter Formelsammlung zur Numerischen Mathematik mit C Programmen BI Wissenschaftsverlag Mannheim 1990 744 S 88 DM Algorithmen und Formeln der Numerischen Mathematik samt C Programmen Auch f r FORTRAN PASCAL BASIC und MODULA erh ltlich E Horowitz S Sahni Algorithmen Springer Berlin 1981 770 S 116 DM D E Knuth siehe unter Informatik T Ottmann P Widmayer Algorithmen und Datenstrukturen BI Wissenschafts Verlag Mannheim 1993 755 S 74 DM W H Press u a Numerical Recipes in C Cambridge University Press 1993 994 S 98 DM mit Diskette auch f r FORTRAN und PASCAL erh ltlich H R Schwarz Numerische Mathematik Teubner Stuttgart 1993 575 S 48 DM R Sedgewick Algorithmen in C
240. igkeit von einer Bedingung in einem von zwei Programmzweigen weiterzumachen Im Gegensatz zur Schleife kommt kein R cksprung vor Verzwei gungen d rfen geschachtelt werden Dem Computer macht das nichts aus aber vielleicht verlieren Sie die bersicht 54 2 Programmieren in C Oft aber nicht notwendigerweise treffen die beiden Zweige im weiteren Verlauf wieder zusammen Die Syntax sieht folgenderma en aus if Ausdruck Block 1 else Block 2 Es wird also stets entweder Block 1 oder Block 2 ausgef hrt Auswahl Stehen am Verzweigungspunkt mehr als zwei Wege offen so spricht man von einer Auswahl selection Sie l t sich grunds tzlich durch eine Schach telung einfacher Verzweigungen mit if else darstellen das ist jedoch un ber sichtlich und entspricht auch nicht dem Denken Zur Konstruktion einer Auswahl braucht man die Schl sselw rter switch case break und default Die Syntax ist die folgende switch x case a Anweisungsfolge 1 break case b Anweisungsfolge 2 break default Anweisungsfolge 3 Die Variable x nur int oder char wird auf bereinstimmung mit der typgleichen Konstanten a gepr ft Falls ja wird die Anweisungsfolge 1 ausgef hrt und infolge der break Anweisung die Auswahl verlassen Stimmt x nicht mit a berein oder fehlt nach case a das break wird dann x auf bereinstimmung mit b gepr ft Trifft kein case zu wird die default Anweisungsfolge ausgef hrt Fehlt diese macht
241. igned Numbers Authority Institut fiir Automation und Robotik International Amateur Radio Union Import Address Table International AIX Users Group Independent Broadcasting Authority In Band Adjacent Channel Illinois Benedictine College Gutenberg Projekt International Broadcasting Convention Input Buffer Limit International Business Machines Big Blue International Booking Network In Band On Channel Integriertes Banken System Incoming Call Input Integrated Circuit Information Center Interrupt Controller Interexchange Carrier Interface Connector Assembly Intelligent Communication Adapter International Colloquium on Automata Languages and Programming Integrated Computer Aided Manufacturing Integrated Computer Aided Production Intel Communicating Applications Specifications Interclient Communications Conventions Manual International Conference on Computers for Handicapped Persons Integrated Communications Cabling System Siemens Inter Client Exchange Protocol In Circuit Emulator Emulation Inter Interexchange Carrier Interface ICI Protocol Interface Clear Internet Control Message Protocol Intermediate Circular Orbit I Could Of Course Be Wrong Slang Input Control Procedure Integrated Channel Processor Intelligent Character Recognition Intuitive Command Structure IBM Cabling System ISA Configuration Utility Identifier Identification Instruction Decode Independent Intelligent Disk Drive Array
242. imited Radio in the Local Loop Remote LAN Node Received Line Signal Detected Ringleitungsverteiler Remote Network Monitoring Root Mean Square RAID Management Software Record Management Services Ring Management Rufnummernanzeige Reseau Numerique a Integration de Services Receive Not Ready frame Read Only Rolling On The Floor Laughing My Ass Off Slang Rectangle Of Interest Read Only Memory 226 RoD PO ROPS ROS ROSE ROTD ROTFL ROW RPC RPE LTP RPG RPL rpm RPN RPPROM RPS RQBE RR RRZN RS RS232C RSA RSCS RSCV RSET RSI RSIS RSL RSN RSOH RSP RSPC RSRB RST RSTE RSTS RSX RT RTAM RTC RTEID RTEL RTF RTFAQ RTFB RTFF RTFM RTFS F Abk rzungen Reading on Demand Paper Option Remote Operations Service Resident Operating System Record On Silicon Remote Operations Service Element Entity Release Of The Day Rolling On The Floor Laughing Slang Rest Of the World Remote Procedure Call Regular Pulse Excitation with Long Term Prediction Loop Record Program Generator IBM Requested Privilege Level Resident Programming Language Revolutions per minute Reverse Polish Notation Reprogrammable PROM Redundant Power Supply Relational Query By Example Receive Receiver Ready Real Reality Round Robin Regionales Rechenzentrum Niedersachsen Hannover Record Separator Request to Send Recommended Standard Reed Solomon Code Norm f r serielle Schnittstelle Rivest Sham
243. in Draft International Standard ISO Dynamic Impedance Stabilization Disconnect frame Digital Secure Communication Bosch Ascom Differential SCSI Displacement Digitale Vermittlungsstelle Differential Wide SCSI 16 Bit DEC Intel Xerox Deutscher Kleinempf nger Goebbelsharfe Deutsche Elektrotechnische Kommission im DIN und VDE Digitales Kartenger t Device Kernel Interface Deutsches Klima Rechenzentrum Hamburg Danish UNIX Users Group Datenkonzentrator Download Data Link Control IBM Data Link Connection Identifier Data Link Control Exchange Data Link Escape Data Link Layer Dynamic Link Library Dynamic Link Module Distributed LAN Monitoring Digital Light Processing Dependent LU Requester DOS LAN Requester Dependent LU Server Deutsche Lehrsoftware Gemeinschaft Data Link Switching Data Mode Disconnected Mode Distributed Monitor Dialogue Management System Direct Memory Access Addressing Document Management Alliance DMA Controller Distributed Management Chain Device Manager Driver Directory Management Domain Digital Mirror Device Distributed Management Environment OSF Digital Multiplexed Interface Desktop Management Interface Data Manipulation Language Dynamic Memory Management System Double Diffused MOS Dot Matrix Printer Display Mode Query and Set IBM Data Management Software System Digital Multi Standard Decoding Desktop Management Task Force 23333 Ges z CRI
244. in small letter b Latin small letter c Latin small letter d Latin small letter e Latin small letter f Latin small letter g Latin small letter h Latin small letter i Latin small letter j Latin small letter k Latin small letter Latin small letter m Latin small letter n Latin small letter o Latin small letter p Latin small letter q Latin small letter r Latin small letter s Latin small letter t Latin small letter u Latin small letter v Latin small letter w Latin small letter x Latin small letter y Latin small letter z Left curly bracket Vertical line Right curly bracket Tilde Delete del Padding character pad High octet preset hop Break permitted here bph No break here nbh Index ind Next line nel Start of selected area ssa End of selected area esa Character tabulation set hts 143 Character tabulation with justification htj 144 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 212 213 214 215 216 217 220 221 222 223 224 225 226 227 230 231 232 233 234 235 236 237 240 241 242 243 244 245 246 247 250 251 252 253 254 255 256 257 260 261 262 263 264 265 266 267 270 271 272 VS pd ri s2 s3 de pl p2 ts cc sg eg ss gc sc ci st oc ac ns
245. ine anstelle von r tselhaften Werten im Pro gramm verwenden richtig ausgerichtete Unions anstelle von trickreichen berlagerungen von Typen verwenden 8Im GNU Projekt finden sich ein Program f2c lies f to c zum bertragen von FORTRAN nach C und ein Programm p2c zum Portieren von PASCAL nach C 2 26 Portieren von Programmen 121 e nur die C Standard Funktionen verwenden oder f r andere Funktionen die Herkunft oder den Quellcode angeben mindestens aber die Funktionalit t und die Syntax e alle unvermeidlichen Systemabh ngigkeiten auf wenige Stellen konzentrieren und deutlich kommentieren Im folgenden wollen wir einige Beispiele betrachten die nicht allzu lang und daher auch nur einfach sein k nnen 2 26 2 Beispiel Lineares Gleichungssystem lin c 2 26 3 bertragen von ALGOL nach C Wir haben hier ein ALGOL Programm von RICHARD WAGNER aus dem Buch von KARL NICKEL ALGOL Praktikum 1964 ausgew hlt weil es mit Sicherheit nicht im Hinblick auf eine bertragung nach C geschrieben worden ist Es geht um die Bestimmung des gr ten gemeinsamen Teilers mit dem Algorithmus von EUKLID Da wir die Aufgabe und den Algorithmus kennen erleichtert die Arbeit da au er einigen Graub rten niemand mehr ALGOL kennt erschwert sie BEGIN COMMENT BEISPIEL 12 INTEGER A B X Y R L1 READ A B IF A NOT LESS B THEN BEGIN X A Y B END ELSE BEGIN X B Y A
246. inen aus zwei Zeichen plus Pausen bestehenden Telegrafencode der die Buchstaben entsprechend ihrer H ufigkeit codiert GEORGE BOOLE entwickelt die symbolische Logik 276 1890 1891 1894 1910 1924 1937 1938 1939 1941 1942 1944 1945 1946 1948 1949 1952 277 HERMAN HOLLERITH erfindet die Lochkartenmaschine und setzt sie bei einer Volksz hlung in den USA ein Das ist der Anfang von IBM Die Stanford Universit t in Kalifornien wird gegr ndet OTTO LUEGERs Lexikon der gesamten Technik f hrt unter dem Stichwort Plektrizit t als Halbleiter Aether Alkohol Holz und Papier auf Gr ndung der Deutschen Hollerith Maschinen GmbH Berlin der Vorl uferin der IBM Deutschland Aus der Tabulating Machine Company von Herman Hollerith sp ter in Computing Tabulating Recording Company umbenannt wird die International Business Machines IBM EUGEN NESPER schreibt in seinem Buch Der Radio Amateur Verlag Julius Springer Berlin jeder schlechte Kontakt habe gleichrichtende Eigenschaften ein Golddraht auf einem Siliziumkristall sei aber besonders gut als Kristalldetektor geeignet eine hei e Spur ALAN TURING ver ffentlicht sein Gedankenmodell eines Computers KONRAD ZUSE baut den programmgesteuerten Rechner Z 1 Sein wichtigstes Werkzeug dabei ist die Laubs ge Gr ndung der Firma Hewlett Packard Palo Alto Kalifornien durch WILLIAM HEWLETT und DAVID PACKARD KONRAD ZUSE baut die Z3 Die Purdue U
247. inen guten Algorithmus Diese berlegungen geh ren jedoch an den Anfang der Programm entwicklung 2 21 5 2 mal 2 ist nicht 4 2 21 6 Der elliptische Kreis 2 21 7 Die sch ne Julia 2 21 8 curses Fluch oder Segen Im Englischen ist ein curse so viel wie ein Fluch und die curses 3 Bibliothek ist fr her wegen ihrer vielen Fehler oft verw nscht worden Andererseits erleichtert sie den Umgang mit dem Terminal unabhangig von dessen Typ Wir beginnen mit einem einfachen Programm das terminfo Funktionen aus der curses 3 Bibliothek verwendet um den Bildschirm zu l schen wobei der Terminaltyp aus der Umgebungsvariablen TERM und die zugeh rigen Steuersequenzen aus der Terminalbeschreibung in usr lib terminfo 4 entnommen werden Das Pro gramm soll au erdem wenn ihm Filenamen als Argumente bergeben werden die Files leeren ohne sie zu l schen der Bildschirm wird ja auch nicht verschrottet C Programm das Bildschirm oder Files loescht Compileraufruf cc o xclear xclear c lcurses falls terminfo Fkt verwendet werden sollen noch DTERMINFO anhaengen include lt curses h gt enthaelt stdio h ifdef TERMINFO include lt term h gt nur fuer terminfo endif int main argc argv int argc char argvl int i 98 2 Programmieren in C if arge gt 1 Files leeren nicht loeschen for i 1 i lt argc i if access argvLi oi close creat argvlil 0 else
248. ing Primitive Global Directory Service Global Descriptor Table Global Descriptor Table Register Cache Geek of Engineering General Electric Comprehensive Operating System General Electric Information Services Graphics Environment Manager Global Enterprise Management Global European Network Geostationary Earth Orbit Generic Flow Control Gaussian Frequency Shift Keying G tegemeinschaft Software e V K ln Gesellschaft f r Informatik Graphics Interchange Format Garbage In Garbage Out Global Information Infrastructure Giga Instructions Per Second Geographic Information Systems Global Internet Exchange Graphical Kernel System Graphics Language Globally Accessible Services General Logic Unit General MIDI Gesellschaft f r Mathematik und Datenverarbeitung Global Managed Data Services Gesellschaft Mikroelektronik im VDE Global Message Handling System Generalized Markup Language Global Messaging Service Novell Gaussian Minimum Shift Keying Modulation Greenwich Mean Time Globewide Network Academy Ground Gesellschaft f r Angewandte Neuroinformatik Global Network Navigator Global Navigation Satellite System GNU s Not UNIX Geek of Other Grunds tze ordnungsgem er Speicherbuchf hrung Government OSI Profile Global Offset Table Government Internet Domain Beh rden in USA General Purpose Gas Plasma General Purpose Computer General Protection Fault Graphics Programming Interface 196 GPI
249. ingabe d um Ad Bits linksgeshiftet d n i j K k i gt gt j printf Eingabe d um Ad Bits rechtsgeshiftet d n i j K k 1 amp j printf Eingabe Ad mit d bitweise verundet ka n i j K k i j printf Eingabe Ad mit d bitweise verodert ka n i j K return 0 Programm 2 6 C Programm mit Bitoperationen 2 16 7 Pointeroperationen Folgende Operationen behandeln Pointer e Referenzierung amp e Dereferenzierung oder bei Arrays J e Strukturverweis gt minus gr er bei Strukturpointern e Strukturverweis Punkt bei Strukturnamen Weiterhin sind folgende auch f r Ganzzahlen zul ssige Operationen f r Pointer definiert e Vergleich zweier Pointer desselben Typs e Inkrementierung Addition einer ganzen Zahl e Dekrementierung Subtraktion einer ganzen Zahl e Subtraktion zweier Pointer desselben Typs Bei der Addition oder Subtraktion einer ganzen Zahl bedeutet die ganze Zahl nicht eine Anzahl von Bytes sondern eine Anzahl von Objekten des zum Pointer geh ri gen Datentyps Man braucht sich also nicht darum zu k mmern wieviele Bytes der Datentyp belegt Die selten vorkommende Subtraktion zweier gleichartiger Pointer liefert die Anzahl der zwischen den beiden Pointern liegenden Datenobjekte 2 16 8 Ein und Ausgabe Operationen In C gibt es keine Operatoren zur Ein oder Ausgabe vergleichbar mit read oder write in PASCAL oder FORTRAN Stattdessen greift man entweder auf Sy stemau
250. ingabe von Werten mittels der Tastatur jeden beliebigen Unsinn zulassen dann mu man die Eingaben als lange Strings bernehmen die Strings pr fen und dann sofern sie vern nftig sind in den gew nschten Typ umwandeln Ein Programmbeispiel dazu findet sich im Abschnitt 2 21 10 3 Pointer auf Typ void xread c Strukturen Eine Struktur auch als Verbund und in PASCAL als Record bezeichnet vereint Elemente ungleichen Typs im Gegensatz zum Array Struk turen d rfen geschachtelt werden aber nicht sich selbst enthalten Rekursion M glich ist jedoch da eine Struktur einen Pointer auf sich selbst enth lt ein Pointer ist ja nicht die Struktur selbst womit Verkettungen hergestellt werden Das Schl sselwort lautet struct Ein typisches Beispiel f r eine Struktur ist eine Personal oder Mitglieder liste bestehend aus alphanumerischen und numerischen Komponenten Mit den numerischen wird gerechnet auf die alphanumerischen werden Stringfunktionen angewendet Telefonnummern oder Postleitzahlen sind alphanumerische Gr en da Rechenoperationen mit ihnen sinnlos sind Jedes File ist eine Struktur namens FILE die in dem include File stdio h deklariert ist typedef struct int _ent unsigned char _ptr unsigned char _base short _flag char _file FILE Mit dieser Typdeklaration wird ein Strukturtyp namens FILE erzeugt der in weite ren Deklarationen als Typ verwendet wird In C sind alle Files ungegliederte Folg
251. ini mygcl segments num XDrawArc mydisplay mywini mygc1 200 160 200 200 0 23040 XFillArc mydisplay mywini mygc12 60 200 120 120 0 23040 XDrawRectangle mydisplay mywini mygci 60 200 120 120 break process mouse button presses case ButtonPress XSetFont mydisplay mygc1 XLoadFont mydisplay vxms 37 XDrawlmageString myevent xbutton display myevent xbutton window mygci myevent xbutton x myevent xbutton y hi strlen hi XSetFont mydisplay mygc1 XLoadFont mydisplay vrb 25 break process keyboard mapping changes case MappingNotify XRefreshKeyboardMapping amp myevent Programm 2 52 C Programm f r X Window System 118 2 Programmieren in C 2 22 Obfuscated C 2 23 Einbinden von FORTRAN Modulen Wenn Sie in ein C Programm Funktionen oder Subroutinen einbinden wollen die in FORTRAN geschrieben sind kann es Schwierigkeiten geben Der Fall ist nicht abwegig Sie schreiben in C und ben tigen eine Bibliothek die es nur in FORT RAN gibt Einen Vorgeschmack haben Sie in Abschnitt 2 18 3 Parameter bergabe bekommen Unter folgenden Voraussetzungen geht es einfach e Die Datentypen stimmen berein Das hei t e Der Aufruf erfolgt in gleicher Weise FORTRAN kennt Funktionen und Sub routinen C nur Funktionen e Das FORTRAN Modul hat keine eigene Ein oder Ausgabe 2 24 Einbinden von PASCAL Modulen 2 25 Dokumentation indexProgramm Dokumentat
252. ion And Correction Error Detection Code Enhanced Data Correction Extended Distance Data Cable gt Electronic Data Document Interchange EDIFACT Subset Baum rkte Electronic Data Interchange for Administration Commerce and Transport UN DIN EDIFACT Subset Elektroindustrie EDIFACT Subset M belindustrie EDIFACT Subset B robedarf EDITEX EDL EDLC EDM EDO EDP EDR EDRAM EDS EDSI EDSRA EDSS EDTV edu EDV EDVAC EEC EEHLLAPI EEM EEMS EEPLD EEPROM EES EFA EFAC EFF EFI EFISC EFL EFM EFT EFTP EFTS EGA EGC EGN EGP EGPE EGW EHKP EIA EIAJ EIB EIBIEM EIDE EIES EIN EIP EIR 187 EDIFACT Subset Textilindustrie Encapsulator Description Language Ethernet Data Link Control Engineering Data Management Enhanced Extended Data Output Electronic Data Processing External Developer Relaease Enhanced DRAM Elektronisches Datenvermittlungssystem Enhanced Small Device Interface Earth Data System Reference Application European Digital Subscriber System Enhanced Extended Definition Television educational Internet Domain Universit ten in USA Elektronische Daten Verarbeitung Electronic Discrete Variable Automatic Computer Extended Error Correction Entry Emulator HLLAPI Extended Memory Management Enhanced Expanded Memory Specification Support Electrically Erasable Programmable Logic Device Electrically Erasable Programmable Read Only Memory Escrowed Encryption Standard Extended File Attribute
253. ion Die Dokumentation dient dazu ein Programm im Quellcode einem menschlichen Leser verst ndlicher zu machen L ngere undo kumentierte Programme sind nicht nachzuvollziehen Eine Dokumentation geh rt zu jedem Programm das l nger als eine Seite ist und l nger als einen Tag benutzt werden soll Andererseits z hlt das Schreiben von Dokumentationen nicht zu den Lieblings besch ftigungen der Programmierer das Erfolgserlebnis fehlt Wir stellen hier ei nige Regeln auf die f r Programme zum Eigengebrauch gelten bei kommerziellen Programmen gehen die Forderungen weiter Die erste Gelegenheit zum Dokumentieren ist der Kommentar im Programm Man soll reichlich kommentieren aber keine nichtssagenden Bemerkungen einflech ten Wenn der Kommentar etwa die H lfte des ganzen Programms ausmacht ist das noch nicht bertrieben Zur Dokumentation legt die Norm DIN 66 230 Programmdokumentation Be griffe und Regeln fest Wir verwenden folgende vereinfachte Gliederung 1 Allgemeines e Name des Programms Programmart Vollprogramm Funktion e Zweck des Programms e Programmiersprache e Computertyp Betriebssystem Ger te Drucker Plotter Maus e Struktur als Grafik Flie bild Real programmers write programs not documentation 2 26 Portieren von Programmen 119 e externe Unterprogramme soweit verwendet 2 Anwendung e Aufruf e Konstante Variable e Eingabe von Tastatur aus Files e Ausgabe zum Bildschirm Drucker i
254. ion Graphics Human Resource Information system Human Resource Management System High Speed Hue Saturation Brightness High Speed Channel High Speed Data High Speed Data Transport Hayes Synchronous Interface Hue Saturation Intensity High Speed Local Area Network Hierarchical Specification Language Function Extension Hierarchical Storage Management High Speed Printer High Speed Serial Interface High Speed Technology Hue Saturation Value Farbmodell Horizontal Tabulator Hyper Text Markup Language Hyper Text Transfer Protocol Internet Hue Value Chroma Farbmodell Horizontal Vertical Position Hardware Hardware Code Page Hypertext Authoring Environment Information frame Interface Inheritance Implementation Installation Definition Language Identification amp Authentication Institut f r Angewandte Analysis und Stochastik Berlin Internet Activities Architecture Board International Academy of Broadcasting In Any Case Slang Interapplication Communication Apple ISDN Anschalteinheit Anschlu einheit IAFA IAG IAL IAN IANA IAR IARU IAT IAUG IBA IBAC IBC IBL IBM IBN IBOC IBS IC ICA ICALP ICAM ICAP ICAS ICCCM ICCHP ICCS ICE ICI ICIP ICL ICMP ICO ICOCBW ICP ICR ICS ICU ID IDA IDAPI IDC IDE IDEA IDF IDK IDL 199 Internet Anonymous FTP Archive Industry Advisory Group Novell International Algebraic Language ALGOL Integrated Access Node Internet Ass
255. ion in eine Funktion oder Prozedur der anderen Sprache so verpacken da das aufrufende Programm eine einheitliche Programmiersprache sieht Das Vorgehen dabei kann maschinenbezogen sein was man eigentlich vermeiden will In den folgenden Programmbeispielen wird die Summe aus zwei Summanden berechnet zuerst im Hauptprogramm direkt und dann durch zwei Funktionen die ihre Argumente die Summanden by value beziehungsweise by reference ber nehmen Die Funktionen ver ndern ihre Summanden was im ersten Fall keine 64 2 Programmieren in C Auswirkung im Hauptprogramm hat Hauptprogramme und Funktionen sind in C FORTRAN und PASCAL geschrieben was neun Kombinationen ergibt Wir be treten damit zugleich das an Fallgruben reiche Gebiet der Mischung von Program miersprachen mixed language programming Zun chst die beiden Funktionen im geliebten C C Funktion Summe call by value Compileraufruf cc c csv c liefert csv o int csv int x int y int Z puts Funktion mit Parameteruebernahme by value printf C Fkt hat uebernommen Ad o fd n x y Z xt y printf C Fkt gibt folgende Summe zurueck Yd n z Aenderung der Summanden x 77 y 99 return z Programm 2 13 C Funktion die Parameter by value bernimmt C Funktion Summe call by reference Compileraufruf cc c csr c liefert csr o int csr int px int py int Z puts Funktion mit Parameterueben
256. iothek zusam men mit dem Compiler geliefert werden Sie sind im strengen Sinn nicht Bestand teil der Programmiersprache das bedeutet da sie ersetzbar sind aber der ANSI Standard f hrt eine minimale Standardbibliothek auf Ohne sie k nnte man kaum ein Programm in C schreiben Der Reichtum der Standardbibliothek ist eine St rke von C Die Systemaufrufe Sektion 2 geh ren dagegen nicht zur Standard bibliothek Sektion 3 sondern zum Betriebssystem Und Shell Kommandos sind eine Sache der Shell Sektion 1 2 19 Funktions Bibliotheken 83 Die mit dem C Compiler eines UNIX Systems mitgelieferte Standardbibliothek wird im Referenz Handbuch unter intro 3 vorgestellt und umfa t mehrere Teile e die Standard C Bibliothek meist gekoppelt mit der Standard Input Output Bibliothek den Netzfunktionen und den Systemaufrufen weil sie zusammen gebraucht werden e die mathematische Bibliothek e gegebenenfalls eine grafische Bibliothek e gegebenenfalls eine Bibliothek mit Funktionen zum Messen und Regeln e gegebenenfalls Datenbankfunktionen und weitere Spezialit ten Au er Funktionen enth lt sie Include Files mit Definitionen und Makros die von den Funktionen ben tigt werden im UNIX Filesystem aber in einem ande ren Verzeichnis usr include liegen als die Funktions Bibliotheken 1ib und usr lib 2 19 2 2 Standard C Bibliothek Die Standard C Bibliothek lib libc a wird vom C Compilertreiber cc 1 ei nes UNIX Syste
257. ir Adleman Remote Spooling and Communications Subsystem Route Selection Control Vector Reset Repetitive Strain Injury Relocateable Screen Interface Specification Request and Status Link Real Soon Now Slang Regenerator Section Overhead Required Space Character Reed Solomon Product Code Remote Source Route Bridging Receive Start Threshold Reset and Restart Readability Signal Strength and Tone Regenerator Section Terminating Equipment Resource Sharing and Time Sharing Real Time Resource Sharing Executive Real Run Time Receive Timing RISC Technology Remote Terminal Access Method Real Time Clock Real Time Executive Interface Definition Reverse Telnet Rich Text Format Read The FAQ list Slang Read The Funny Binary Slang Read The Fantastic FAQ Slang Read The Fine Fantastic Funny Manual Slang Read The Funny Source Slang RTK RTL RTM RTMP RTOS RTP RTOS RTS RTSE RTTI RTTY RTV RU RUA RUC RUM RUS RV RVI RWI RWM RX RZ SA SAA SAB SABM SABME SAC SADT SAINT SAM SAN SAP SAPI SAR SARM SARME SAS SASI SATAN SAW SB SBC SBCS 227 Real Time Kernel Register Transfer Level Run Time Library ResistorTransistor Logic Real Time Modeling Response Time Monitor Read The Manual Slang Routing Table Maintenance Protocol Real Time Operating System Rapid Transport Protocol Rendezvous and Termination Protocol Real Time Operating System Ready Request To Send
258. ishing uniques Vorwort Unser Buch wendet sich an Leser mit wenigen Vorkenntnissen in der Elektro nischen Datenverarbeitung EDV es soll wie FRITZ REUTERs Urgeschicht von Meckelnborg ok f r Schaulkinner tau bruken sin F r die wissenschaftliche Welt zitieren wir aus dem Vorwort zu einem Buch des Mathematikers RICHARD CoU RANT Das Buch wendet sich an einen weiten Kreis an Sch ler und Lehrer an Anf nger und Gelehrte an Philosophen und Ingenieure wobei wir erg nzen da uns dieser Satz eine noch nicht erreichte Verpflichtung ist und vermutlich bleiben wird Das Nahziel ist eine Vertrautheit mit dem Betriebssystem UNIX der Pro grammiersprache C und dem internationalen Computernetz Internet die so weit reicht da der Leser selbst ndig weiterarbeiten kann Ausgelernt hat man nie Der Text besteht aus acht Teilen Nach anf nglichen Schritten zur Ein gew hnung in den Umgang mit dem Computer beschreibt der zweite Teil kurz die Hardware der dritte die Betriebssystemfamilie UNIX der vierte die Program miersprache C der f nfte das Internet mit Schwerpunkt Netzdienste der sechste einige Anwendungen und der siebte Rechtsfragen im Zusammenhang mit der EDV Ein Anhang enth lt Fakten die man immer wieder braucht F r die zweite Aufla ge wurden viele Kleinigkeiten verbessert und die objektorientierten Zweige von C Objective C C ber cksichtigt Bei der Stoffauswahl haben wir uns von un serer Arbeit als Benutzer un
259. ist also f r unheilbare Ausnahme zust nde zu gebrauchen Notschlachtung Die jedoch Schleife nevertheless loop geht auf ULRICH RIEBEL zur ck der 1993 in einem Vortrag bemerkte da die klassischen Schleifen mit ihrer har ten Ja nein Entscheidung das wirkliche Leben nur eingeschr nkt wiedergeben Jedoch Schleifen kommen vorwiegend in iterativen Algorithmen vor Letzten En des geh ren sie in das Gebiet der mehrwertigen Logiken die zwischen wahr und falsch noch Abstufungen wie oft manchmal gelegentlich vermutlich selten ken nen Der stetige bergang von wahr nach falsch f hrt auf die Fuzzy Logik ab geleitet von plattdeutsch fussig schwammig In vielen Schleifen z hlt man die Anzahl der Durchl ufe und verz hlt sich dabei oft um eins Die zugeh rige Variable ist der Schleifenz hler Auf seine Initialisierung ist zu achten Der Schleifenz hler steht in und nach der Schleife f r Rechnungen zur Verf gung anders als in FORTRAN Schleifen d rfen geschachtelt werden Mit mehrfach geschachtelten Schleifen geht der Spa erst richtig los Der Rumpf der innersten Schleife wird am h ufigsten durchlaufen und hat daher auf das Zeitverhalten des Programmes einen gro en Einflu Dort sollte man nur die allern tigsten Anweisungen hineinschreiben Auch die Bedingung der innersten Schleife sollte so einfach und knapp wie m glich gefa t sein Sprung Es gibt die Anweisung goto gefolgt von einem Label Marke In sel tenen F ll
260. ithic Microwave Integrated Circuit Materials Manager Information System Modified Modular Jack Steckersystem Memory Mapper Modul Multi Media Presentation Manager Manufacturing Message Specification Multimedia Toolbox for Cooperative Applications Memory Management Unit Mobile Networks Integration Technology Microcom Networking Protocol Multiple Networking Program Magneto Optical Disk Mobile Originated Message Magneto Optical Disk Modulator Demodulator Machine Oriented High Level Language Microsoft Open License Pak Map oriented Machine Maintenance Operation Protocol DEC Map oriented Programming Language Metal Oxide Semiconductor Metal Oxide Semiconductor Field Effect Transistor Multicomputer Operating System for UNIX Metal Oxide Varistor Multiprocessing Multiple Processors Multilink Protocol Minimum Perceptable Action MPC MP CS MPE MPEG MPF MPI MPP MPR MPT MPTF MPTN MPTS MPU MPW MQ MQI MR MRCC MRCF MRCI MRM MRO MRP MRPL MRB MRT MRU MS MSAIS MSAP MSB MSC MSCDEX MSCP MSD MS DOS MSDR MSDS MSG MSI MSK MSL MSN MSOH MSP 211 Microsoft Certified Professional Multimedia PC Manufacturing Planning and Control System Multiprogramming Executive Motion Moving Pictures Expert Group Mapping Field Message Passing Interface Multi Protocol Interchange Message Posting Processing Program Protocol Massively Parallel Processing Processor Multi Protocol Router M t oc
261. itt aus COBOL Programm Als die Computer in die Reichweite gew hnlicher Studenten kamen entstand das Bed rfnis nach einer einfachen Programmiersprache f r das Gr bste kurz um nach einem Beginners All Purpose Symbolic Instruction Code JOHN KEME NY und THOMAS KURTZ vom Dartmouth College in den USA erf llten 1964 mit BASIC diesen Bedarf Der Gebrauch von BASIC gilt in ernsthaften Programmie rerkreisen als anr chig Richtig ist da es unz hlige miteinander unvertr gliche BASIC Dialekte gibt da BASIC die Unterschiede zwischen Betriebssystem und Programmiersprache verwischt und da die meisten BASIC Dialekte keine ordent liche Programmstruktur erm glichen und daher nur f r kurze Programme brauch bar sind Richtig ist aber auch da moderne BASIC Dialekte wie HP BASIC oder QuickBASIC von Microsoft ber alle Hilfsmittel zur Strukturierung verf gen und da in keiner anderen g ngigen Programmiersprache die Bearbeitung von Strings so einfach ist wie in BASIC In der Me werterfassung ist es beliebt Fazit die Kenntnis von GW BASIC auf dem PC reicht f r einen Programmierer nicht aus aber f r viele Aufgaben ist ein modernes BASIC ein gutes Werkzeug Anfang der sechziger Jahre wurde ALGOL 60 aufgrund theoretischer berle gungen entwickelt und nach einer umfangreichen berarbeitung als ALGOL 68 ver ffentlicht Diese Programmiersprache ist nie in gro em Umfang angewendet worden spielte aber eine bedeutende Rolle als Wegberei
262. iv Karlsruhe Serial Input Output Simultaneous Interface Operation Simple Internet Protocol SMDS Interface Protocol Serial In Serial Out Single In Line Pin Package Simple Polygon Processor Simple Internet Protocol Plus Serial Infrared Communication HP Single Instruction Single Data stream Serial In Serial Out Software Informations System Karlsruhe Sspecial Information Tone Special Interest Working Group Synchronknoten Schneider amp Koch Ettlingen Session Layer Synchronous Link Control Serial Line Interface Protocol Internet Super Large Scale Integration Security Management Set Mode Sharing with Minimum Allocation Self Monitoring Analysis and Reporting Technology Server Message Block Standard Microsystems Inc Sun Microsystems Computer Corp Storage Modul Device Surface Mounted Device Station Message Detail Recording Switched Multi Megabit Data Service USA Switched Multi Megabit Data Service Unit Single Mode Fiber System Manager Facility System Management Functional Area Structure of Management Information System Management Interface Tool IBM System Management Mode Small Simple Matter Of Programming Simple Management Protocol Internet Standard Message Package Apple Symmetrical Multi Processing Switching Mode Power Supply Schaltnetzteil Society of Motion Picture and Television Engineers USA Service Management System Subsystem Management Service OSF Short Message Service
263. kehrende Grund Operationen wie Suchen Sortieren Fragen Ausgeben Inter polieren Zeichnen eines Kreisbogens Aus diesen l t sich eine gegebene Aufgabe zu einem gro en Teil zusammensetzen so da nur wenige spezielle Teilaufgaben brig bleiben Hat man die Grundoperationen einmal programmiert so vereinfacht sich der Rest erheblich In praxi wendet man eine gemischte Strategie an Man zerlegt die bergeord nete Aufgabe in Teilaufgaben versucht diese in Grundoperationen auszudr cken und kommt dann wieder aufsteigend zu einer genaueren und allgemeiner g ltigen Formulierung Dieser Ab und Aufstieg kann sich mehrmals wiederholen Die Auf gabenstellung ist nicht unver nderlich Genau so geht man bei der Planung von Industrieanlagen vor Man darf nicht den Fehler machen die Aufgabe aus Bequemlichkeit den Eigen heiten eines Computers oder einer Programmiersprache anzupassen Der Benutzer hat Anspruch auf ein gut und verst ndlich funktionierendes Programm Die Zei ten als der Computer als Entschuldigung f r alle m glichen Unzul nglichkeiten herhalten mu te sind vorbei 2 8 Prototyping In dem h ufig vorkommenden Fall da die Anforderungen an das Programm zu Beginn noch verschwommen sind ist es zweckm ig m glichst rasch ein lauff hi ges Grundger st ein Skelett zu haben Mit diesem kann man dann spielen und Erfahrungen sammeln in einem Stadium in dem der Programmcode noch ber schaubar und leicht zu ndern ist Bei
264. kku mit Register 6 CGKU30 1 Kopiere den Akku nach der Adresse die in Register 30 steht inkrementiere Register 30 0 leere Operation Programm 2 1 Ausschnitt aus einem Programm f r die ZUSE 222 Man mu te dem Computer in aller Ausf hrlichkeit sagen was er zu tun hatte Das war auch m hsam aber diese Art der Programmierung gibt es heute noch unter dem Namen Assemblerprogrammierung Man braucht sie wenn man die Hardware fest im Griff haben will also an den Grenzen Software Hardware Treiberprogramme Dar berhinaus sind gute Assemblerprogramme schnell weil sie nichts Unn tiges tun Programmieren in Assembler setzt vertiefte Kenntnisse der Hardware voraus F r PCs gibt es von Microsoft eine Kombination von Quick C mit Assembler die es gestattet das gro e Programm in der h heren Sprache C und einzelne kritische Teile in Assembler zu programmieren Wer unbedingt den herben Reiz der Assemblerprogrammierung kennenlernen will hat es mit dieser Kombination einfach Die meisten Programmierer wollen jedoch nicht Speicherinhalte verschieben sondern Gleichungen l sen oder W rter suchen Schon Mitte der f nfziger Jah re entstand daher bei der Firma IBM die erste h here Programmiersprache und zwar zum Bearbeiten mathematischer Aufgaben Die Sprache war daher stark an die Ausdrucksweise der Mathematik angelehnt und zumindest f r die mathematisch gebildete Welt einigerma en bequem Sie wurde als formula translator abgek rzt FORTRAN b
265. kostet Die ma volle Verwendung globaler Variabler verbessert zwar nicht den Stil aber die Geschwindigkeit von Programmen mit vielen Funktionsaufrufen da die Parameter bergabe entf llt Die Verwendung von Bibliotheksfunktionen kann in oft durchlaufenen Schleifen st rker verz gern als der Einsatz spezialisierter selbstgeschriebener Funktionen da Bibliotheksfunktionen allgemein und kindersicher sind Verwen den Sie die einfachste Funktion die den Zweck erf llt also puts 3 anstelle von printf 3 wenn es nur um die Ausgabe eines Strings samt Zeilenwechsel geht Die Adressierung von Arrayelementen durch Indizes ist langsamer als die Adressierung durch Pointer Der Prozessor kennt nur Adressen also mu er Indi zes erst in Adressen umrechnen Das erspart man ihm wenn man gleich mit Adres sen sprich Pointern arbeitet Wer die Pointerei noch nicht gewohnt ist schreibt das Programm zun chst mit Indizes testet es aus und stellt es dann auf Pointer um Ein Beispiel 2 21 C Programme 97 long i j al32 Adressierung durch Indizes langsam alo a i alj Adressierung durch Pointer schnell a a i a j Wir erinnern uns der Name eines Arrays ist der Pointer auf das erste Element mit dem Index 0 Ubergeben Sie gro e Strukturen als Pointer nicht als Variable Den gr ten Gewinn an Geschwindigkeit und manchmal auch zugleich an Spei cherplatz erzielt man durch eine zweckm ige Datenstruktur und e
266. l Dual Tone Multi Frequency Desktop Publishing Dialer Token Pairs Data Terminal Ready Data Transfer Rate Distributed Time Server Direct To SOM Digital Terrestrial TV Broadcasting Discontinuous Transmission Directory User Agent X 500 Direct User Access Terminal Daten bertragung Daten bertragungseinheit Direction of United Nations Databases and Information Systems Datenumsetzerstelle Datenverarbeitung Datenverarbeitungsanlage Distance Vector Algorithm Digital Video Broadcasting Digital Video Cassette Digital Video Cassette Recording Deutsche Vereinigung f r Datenschutz Data VHS Digital Video Interactive Interface Device Independent Deutsches Video Institut Digital Video Link Datenvermittlungsstelle Do What I Mean Slang Diskless Workstation Managent Discrete Wavelet Transformation Weitverkehr Directory Exchange Directory Exchange Agent Data Exchange Control Data Drawing Exchange Format Autocad Datexnetzabschlu ger t Data Exchange Interface Eingabe Ausgabe Extended Address Attribute European Activities Committee European Article Number Extragalactic Area Network European Advanced Networking Protocol EDIFACT Subset Konsumwirtschaft European Advanced Networking Test Center 186 EARN EAROM EARS EASA EATA EAZ EBC EBCDIC EBI EBNF EBR EBT EBU EBV EC ECAS ECB ECC ECD ECF ECHO ECI ECL ECM ECMA ECN ECO ECODU ECOOP ECP ECRC ECS ECSI ECU ED EDA EDAC
267. l Input Output Vision Impaired On line Documentation DEC Variable Information Processing Voice Information system VMEbus International Trade Association Virtually Integrated Technical Architecture Lifecycle Apple Van Jacobson Compression Van Jacobson Header Compression VLAN VLB VLDW VLF VLIS VLIW Z es lt lt lt lt lt lt lt lt lt lt lt lt lt 55 D lt lt O O Ce VP VPA VPC VPD VPDS VPI VPM VPN VPRT VPS VPT VR VRA VRAM VRC VRCB VRID VRML VRN VROOMM VRPRQ VRPRS VRU vs VSA 241 Very Virtual Local Area Network VESA Local Bus Very Long Data Word Very Low Frequency Verkehrs Leit und Informations System Very Long Instruction Word Virtual Loadable Module Visitor Location Register Very Large Scale Integration Virtual Machine Virtual Memory Virtual Memory Access VESA Media Channel Virtual Memory Executive Versacard Modified for Eurocard Bus Virtual Machine Memory Manager Virtual Memory system Voice Messaging System Virtual Method Table Virtual Memory Technique Versatile Message Transaction Protocol Internet Virtual Network Architecture Virtual Network Virtual Notebook System Virtual Object Video on Demand Vollzugsordnung fiir den Funkdienst Volume Label Virtual Path Virtual Proxy Agent Virtual Path Connection Virtual Printer Device Virtual Private Data Service Virtual Path Identifier Virtual Protocol Machine Virtuelles Priva
268. l Organization Network Interconnect Network Information Center Network Interface Card Nickel Cadmium Akkumulator Network Information and Control Exchange Protocol Netzweites Informationssystem im Campus der Universit t Karlsruhe Next ID Network Interface Definition Language National Institute of Health USA NIH Class Library National Information Infrastructure USA National Information Infrastructure Testbed Nickel Metal Hydride Akkumulator NetWare Internetwork Messaging Protocol Network I O Per Second Network Information Retrieval Network Information Service New Information Services Architecture National Information Standards Organization National Institute of Standards and Technology USA National Information Technology Center Network Interface Unit Network Job Entry IBM Network Layer New Line Nonlinear Editing Netware Loadable Modul Novell Near Letter Quality National Native Language Support Netware Link Service Protocol Niederl ndische UNIX User Group Network Management Architecture Network Management Center Nicht maskierbarer Interrupt NetWare Management Map Novell Network Management Option OSF N Channel MOS Transistor Network Managment Responder Novell Network NetWare Management Station System Nordic Mobile Telephone Network Node Next Node Indicator Network Node Network Interface NNR NNTP NOC NOMA NOP NOR NORC NOS NPA NPAP NPI NPL NPTN NQE NQS NREN
269. le format Amiga Inverse Fast Fourier Transformation Incoming Fax Gateway International Federation of Information Processing Societies Internet For Learning Internal Field Separator Installable File System OS 2 Internationale Fernmeldeunion Internationaler Fernmeldevertrag Internationale feste virtuelle Verbindungen ISDN for Workgroups Microsoft ISDN for Windows for Workgroups Microsoft Integrated Graphics Adaptor Array Insulated Insulator Gate Bipolar Transistor Institute for Global Galactic Communications Integrated Graphics Controller Initial Graphics Exchange Specification Internet Group Message Protocol IBM Global Net Interior Gatway Protocol Internet Internet Gateway Routing Protocol Cisco Institute for Information Industry Taiwan Integrated Injection Logic Irrevocably Interruptible Power Supply Immediate Impulse Response If I Remenber Correctly Slang Information Infrastructure Task Force USA International Joint Conference on Artificial Intelligence Industriekooperation Computer Aided Process Engineering Institut f r Kommunikations kologie Hamburg Ich liege lachend am Boden Slang vgl ROTFL ILMI IM IMA I MAC IMACS gt O oO A 2222222222225 Z un Q O Z 22275 AN ss MARSAT 5 O RIA Ha kel bel Fei Fei bel bel Fei Fei ke ke gt Z e Z zz zz zz zz Z Z Z TAP INWG I O IOC IOCS IOCTL IOFEXT IONL
270. len Vektoren Matrizen und Intervallen samt den zugeh rigen Operationen erg nzt worden siehe das Buch von RUDI KLATTE et al Auf die brigen 992 Programmiersprachen soll aus Platzgr nden nicht einge gangen werden Braucht man berhaupt mehrere Sprachen Einige Sprachen wie FORTRAN und COBOL sind historisch bedingt und werden wegen ihrer weiten Verbreitung noch lange leben Andere Sprachen wie BASIC und C wenden sich an unterschiedliche Benutzerkreise Wiederum andere eignen sich f r spezielle Aufga ben besser als allgemeine Sprachen Mit einer einzigen Sprache wird man auch in der Zukunft nicht auskommen Die Schwierigkeiten beim Programmieren liegen im brigen weniger in der Umsetzung in eine Programmiersprache der Codierung sondern in der Formulierung und Strukturierung der Aufgabe Es gibt einen International Obfuscated C Code Contest also einen Wettbewerb um das un bersichtlichste C Programm Entsetzlich was da herauskommt Real programmers can write FORTRAN programs in any language 20 2 Programmieren in C Was hei t eine Sprache sei f r ein System verf gbar Es gibt einen Interpreter oder Compiler f r diese Sprache auf diesem System Hardware plus Betriebssy stem Die Bezeichnung FORTRAN Compiler f r UNIX reicht nicht da es UNIX f r verschiedene Hardware und zudem in verschiedenen Versionen gibt Drei Dinge m ssen zusammenpassen Interpreter oder Compiler Betriebssystem und Hard ware 2 3 Interpreter
271. ler Treiber 20 Computer Sach und Namensverzeichnis Aufgaben 1 Herkunft des Wortes 1 Home C s Heim C PC s Personal C Computer Science 2 const C 32 continue C 55 57 CPU s Prozessor Cross Compiler 20 csh 1 s Shell curses 3 87 97 curses h 87 97 D mon 107 Data code s Zeichensatz Data Glove s Steuerhandschuh Datei s File Daten 1 Datenaustausch 25 Datensicherung s Backup Datenstruktur 25 31 Datentabelle s Array Dator 1 Debugger Hochsprachen D s symbolischer D default C 54 Definition 31 Definitonsdatei s File Deklaration 31 dekrementieren 46 50 dereferenzieren 37 50 Dialog 8 DIN 66230 118 Directive s Anweisung Directory s Verzeichnis Disassembler 21 Diskette 4 Display s Bildschirm djgpp 128 do while Schleife C 55 Dokumentation 118 double C 33 Drive s Laufwerk Drucker 5 Dualsystem 3 131 dynamische Bindung 21 dynamische Speicherverwaltung 107 ECKERT J P 276 Eigent mer s File Sach und Namensverzeichnis Einarbeitung 13 Eindeutigkeit 129 Eingabe 50 Eingabeaufforderung s Prompt Eingang Schleife 54 einloggen s Anmeldung Einzelverarbeitung s Single Tasking Electronic Information 6 7 Electronic Mail 7 Elektrotechnik 2 else s if end 9 Endlichkeit 129 Enter Taste s Return Taste Entscheidbarkeit 130 entwerten s quoten enum C 37 Environment s Umgebung EOF s File EOL s Zeilenwechsel Ersatzzeichen s Jokerzeichen es
272. letzten Endes die Speicheradressen ganze Zahlen sind Die Verarbeitung in der Maschine l uft anders als bei ganzen Zahlen Aus einem Variablennamen x entsteht der Pointer auf diese Variable amp x durch Voransetzen des Referenzierungszeichens amp Umgekehrt wird aus einem Pointer p die zugeh rige Variable p durch Voransetzen des Dereferenzierungszeichens Es ist gute Praxis Pointernamen mit einem p beginnen oder aufh ren zu lassen Der Name von Arrays ist stets der Pointer auf ihr erstes Element mit dem Index 0 Der Name von Funktionen ohne das Klammernpaar ist der Pointer auf die Einsprungadresse entry point der Funktion auf die erste ausf hrbare Anweisung Der in ANSI C eingef hrte Pointer auf den Typ void ist ein Pointer der zun chst auf keinen bestimmten Typ zeigt 38 2 Programmieren in C Ein Pointer der auf die Adresse NULL verweist wird Nullpointer genannt und zeigt auf kein g ltiges Datenobjekt Sein Auftreten kennzeichnet eine Aus nahme oder einen Fehler Der Wert NULL ist der einzige der direkt einem Pointer zugewiesen werden kann jede Zuweisung einer Ganzzahl ist ein Fehler da Pointer keine Ganzzahlen sind Ansonsten d rfen nur Werte die sich aus einer Pointerope ration oder einer entsprechenden Funktion deren Ergebnis ein Pointer ist einem Pointer zugewiesen werden F r Pointer sind die Operationen Inkrementieren Dekrementieren und Verglei chen zul ssig Die Multiplikation zweier Pointer d rfen Sie ve
273. lobbing s Metazeichen 286 gmtime 3 11 goto C 57 guest s Gast Konto Hackbrett s Tastatur Handheld s Laptop Handle s File Hard Link s Link Harddisk s Festplatte Hardware 5 Heinzelm nnchen s D mon HEWLETT W 276 Hexadezimalsystem 3 131 Hexp rchen 3 Hintergrund s Prozess HOLLERITH H 276 Home Computer s Computer Hopper G M 17 huge Speichermodell 88 Hypertext 8 Identifier s Name if C 53 if else C 53 Index Array s Array Index Node s Inode Informatik Angewandte I 2 Herkunft 2 L tkolben I 2 Technische I 2 Theoretische I 2 Information 1 Informationsmenge 3 Informatique 2 Inhaltsverzeichnis s Verzeichnis Initialisierung 31 120 inkrementieren 46 50 Instruktion s Anweisung int C 33 Integer s Zahl interaktiv 8 Interface s Schnittstelle Internet 85 Interpreter 20 Iteration 78 JACQUARD J M 276 jedoch Schleife C 57 Joss S P 276 Sach und Namensverzeichnis Jukebox s Plattenwechsler K amp R C 19 Karlsruher Test 248 Katalog s Verzeichnis KEMENY J 18 Kern s UNIX KERNIGHAN B 19 24 Kernschnittstellenfunktion s Systemauf ruf Keyboard s Tastatur Kilobyte 3 Klammer C 52 Komma Operator 51 56 Kommando UNIX K 10 Kommandoprozedur s Shellscript Kommandozeile 73 Kommentar Kommentar C 27 29 92 118 Konstante 27 Literal 31 symbolische K 31 88 Konto s Account Kontrollstruktur 53 ksh 1 s Shell Kurs 6 Kurtz T 18 L Wert 45 L
274. lschaft e V National Telecommunications and Information Administration USA Network Terminal Number Network Termination Point Network Time Protocol Network Transport Services IBM Networking Technical Support Alliance National Television Standards System Committee USA Nippon Telegraph Telephone Network User Address Network User Identification Interface Non Uniform Rational B Spline Non Uniform Memory Address Nummer der Versandeinheit 216 NVM NVN NVO NVoD NVP NVR NYSERNet OAF OAI OAM OBEX OBST OBO OC 3 OCCC OCE OCL OCLC OCR OCT OCTD ODA ODAC ODAM ODAPI ODBC ODBMS ODCS ODD ODETTE ODI ODIF Odinsup ODL ODM ODMG ODN ODP ODS OE OEF OEM OES OFB OFD OFFIS F Abk rzungen Non Volatile Memory National Videotext Network Non Visual User Object Near Video on Demand Network Voice Protocol Internet Nominal Velocity of Propagation Non Volatile RAM New York State Educational and Research Network Origin Address Field Offene Anwendungs und Interkommunikationssysteme Open Applications Interface Operation Administration Maintenance Object Exchange Object Management System of STONE Or Best Offer Slang Optical Carrier Level 3 Obfuscated C Code Contest Open Collaborative Environment Apple Operator Operation Control Language Online Computer Library Center Optical Character Curve Recognition Object Code Translator Observation Conclusion Te
275. m Personal Computer arbeiten m ssen Sie hn als erstes einschalten Bei gr eren Anlagen an denen mehrere Leute gleichzeitig arbeiten hat dies ein wichtiger Mensch f r Sie erledigt der Systemverwalter oder System Manager Sie sollten seine Freundschaft suchen Nach dem Einschalten l dt der Computer sein Betriebssystem er bootet wie man so sagt Booten hei t eigentlich Bootstrappen und das hinwiederum sich an den eigenen Stiefelb ndern oder Schn rsenkeln bootstraps aus dem Sumpf der Unwissenheit herausziehen wie weiland der L genbaron KARL FRIEDRICH HIE RONYMUS FREIHERR VON MUNCHHAUSEN an seinem Zopf Zu Beginn kann der Computer n mlich noch nicht lesen mu aber sein Betriebssystem vom Mas senspeicher lesen um lesen zu k nnen Genaueres ber diese heikle Aufgabe im Abschnitt Systemstart und stop Ist dieser Vorgang erfolgreich abgeschlossen gibt der Computer einen Prompt auf dem Bildschirm aus Das ist ein Zeichen oder eine kurze Zeichengruppe bei spielsweise ein Pfeil ein Dollarzeichen oder C geteilt durch gr er als die besagt da der Computer auf Ihre Eingaben wartet Der Prompt wird auch Systeman frage Bereitzeichen oder Eingabeaufforderung genannt K nnen Sie nachempfin den warum wir Prompt sagen Nun d rfen Sie in die Tasten greifen Bei einem Mehrbenutzersystem erwartet der Computer als erstes Ihre Anmeldung das hei t die Eingabe des Namens unter dem Sie der System Manager eingetragen hat
276. m einbinden m ssen die Funktio nen auf Terminalausgabe verzichten eine Ausgabe in ein File w re m glich Pascal Funktion Summe call by value ohne Output Compileraufruf pc c xpsv p module b export function psv x y integer integer implement function psv var z integer begin zZz x y Aenderung der Summanden x 77 y 99 psv Z end end Programm 2 27 PASCAL Funktion die Parameter by value bernimmt ohne Ausgabe Pascal Funktion Summe call by reference ohne Output Compileraufruf pc c xpsr p module a export function psr var x y integer integer implement function psr var z integer begin Z X y Aenderung der Summanden x 66 y 88 psr Z end end Programm 2 28 PASCAL Funktion die Parameter by reference bernimmt ohne Ausgabe Damit geht es Der Compilerbauer wei wie die einzelnen Programmierspra chen ihre Ausgabe bewerkstelligen und kann berg nge in Form von Compiler Anweisungen oder Zwischenfunktionen einrichten So macht es Microsoft bei sei nem gro en C Compiler Aber wenn nichts vorgesehen ist mu der gew hnliche Programmierer solche Unvertr glichkeiten hinnehmen Auch Shellscripts k nnen Funktionen aufrufen Diese m ssen selbst ndige Pro 2 18 Funktionen 73 gramme wie externe Kommandos sein der Mechanismus sieht etwas anders aus Hier das Shellscript Shellscript das eine C Funktion aufruft 28 01 1988 File
277. mbler sind ein erster Schritt in Richtung auf die Proble me und die Programmierer zu H here Sprachen wie FORTRAN sind von der Hardware schon ziemlich losgel st und in diesem Fall an mathematische Probleme angepa t Es gibt aber f r spezielle Aufgaben wie Stringverarbeitung Datenbank abfragen oder Grafik Sprachen die in ihrer Anpassung noch weiter gehen Auch die zur Formatierung des vorliegenden Textes benutzte Sammlung von LaTeX Makros stellt eine problemangepa te Sprache dar Der Preis f r die Erleichterungen ist ein Verlust an Allgemeinheit Denken Sie an die Notensprache der Musik an ih re Aufgabe bestens angepa t aber f r andere Gebiete wie etwa die Mathematik ungeeignet 2 2 Imperative Programmiersprachen 17 2 2 Imperative Programmiersprachen Der Computer kennt nur Bits das hei t Nullen und Einsen F r den Menschen ist diese Ausdrucksweise unangemessen Zum Gl ck sind die Zeiten als man die Bits einzeln von Hand in die Lochstreifen mei elte vorbei Die n chste Stufe war die Zusammenfassung mehrerer Bits zu Gruppen die man mit Buchstaben und Ziffern bezeichnen konnte Ein Ausschnitt eines Pro grammes f r die ZUSE Z22 im Freiburger Code aus den f nfziger Jahren B15 Bringe den Inhalt von Register 15 in den Akku U6 Kopiere den Akku nach Register 6 B18 Bringe den Inhalt von Register 18 in den Akku Addiere Akku und Reg 6 Summe in Akku und 6 B13 Bringe den Inhalt von Register 13 in den Akku X Multipliziere A
278. mmon Object File Format Collision commercial Internet Domain Firmen in USA Communication Computer Output Microfilm Common Object Model Common Algorithmic Language Computer Dealers Exposition Customer Oriented Manaufacturing Mangement System Communications Satellite Corporation Connection Oriented Network Service Console Common Object Request Broker Architecture Corporate ISDN Network Protocol Corporation for Open Systems OSI Class of Service Common Open Software Systems Environment Cooperation for OSI Networking in Europe Consortium for School Networking Common Object Services Specification Conferencing System Connection Oriented Transport Service Coin Operated Telephone System Complete Partitioning Choke Packet Continuous Path Control Point Certified Public Accountant Code Parasite Autopropageable Customer Provided Premises Equipment Continuous Phase Frequency Shift Keying COSINE Policy Group Clock Pulse Generator characters per inch Common Programming Interface IBM Clocks Per Instruction Common Programming Interface for Communications IBM Current Privilege Level CMOS Programmable Logic Device Complex Programmable Logic Device CP M CPM CPN cps CPSC CPSR CPST CPT CPU COL CR C R CRAM CRC CRCG CREN CRF CRIM CRL CR LF CROM CRS CRT CRTC CRV CS CS80 CSAR CSC CSCW CSD CSDC CSE CSF CSG CSI CSID CSIP CSMA CA CSMA CD CSMA CE CSN CSNet CSO CSP CSRG CSS CST
279. mmter Programm schritte wobei das Ergebnis eines Schrittes als Eingabe fiir die nachste Wiederho lung dient Viele mathematische Naherungsverfahren machen von Iterationen Ge brauch Programmtechnisch f hren Iterationen auf Schleifen Entsprechend mu eine Bedingung angegeben werden die die Iteration beendet Da auch bei einem richtigen Programm eine Iteration manchmal aus mathematischen Gr nden nie zu einem Ende kommt ist es zweckm ig einen Test f r solche F lle einzubauen wie in folgendem Beispiel Quadratwurzel Halbierungsverfahren Iteration 14 08 92 Compileraufruf cc o wurzel wurzel c define EPS 0 00001 define MAX 100 include lt stdio h gt void exit int main int argc char argv int 1 double a b c m if argc lt 2 puts Radikand fehlt exit 1 2 18 Funktionen 79 Initialisierung i 0 sscanf argvli l Alf amp c sscanf argvli l Alf amp c a 0 b c t1 Iteration while b a gt EPS m a b 2 if m m c lt 0 a m else b m Begrenzung der Anzahl der Iterationen i if i gt MAX puts Zuviele Iterationen Ungenau break b Ausgabe und Ende printf Die Wurzel aus ALT ist lf n c m printf Anzahl der Iterationen d n i exit 0 Programm 2 33 C Programm zur iterativen Berechnung der Quadratwurzel Die Funktion die iterativ aufgerufen wird ist die Mittelwert
280. mporary Data Open Office Document Architecture Open Document Architecture Consortium Open Distributed Application Model Open Database Application Programming Interface Open Data Base Connectivity Microsoft Object Oriented Database Management System Open Distributed Computing Structure Open Data Desktop Organisation for Data Exchange by Tele Transmission in Europe Open Data Link Interface Novell Open Office Document Interchange Format ODI NDIS Supplementary Driver Object Definition Language Object Data Manager Object Database Management Group Optical Data Network Open Distributed Processing Offenes Deutsches Schulnetz Open Data Services Output Enable Origin Element Field Original Equipment Manufacturer Odd Even Merge Graph Netz Odd Even Sort Graph Netz Output Feedback Mode Optical Frequency Division Demultiplexer Demultiplexing Oldenburger Forschungs und Entwicklungsinstitut ftir Le Le Le Le Z A OOOOOOO0O0O0O000O000O0 Z OOA OODBMS OOF OOK OOL OOP OOPL OOPS OOPSLA OPA OPAC OPAL OPD OPI 217 Informatik Werkzeuge und Systeme Optical Frequency Division Multiplexer Multiplexing Object File System Output Field Separator Odette File Transfer Protocol Off Hook Object Identifier Object Identifier Component Object Interface Definition Language gt Office Information System Object Identifier Tree Object Idenitfier Value OSI Implementors Workshop Online Analytic
281. ms aufgerufen und braucht daher nicht als Option mitgegeben zu werden F r einen getrennten Linker Aufruf lautet die Option Ic Mit dem Kom mando ar t lib libc a schauen Sie sich das Inhaltsverzeichnis der Bibliothek an Au er bekannten Funk tionen wie printf und Systemaufrufen wie stat 2 werden Sie viele Unbekann te treffen Input Output F r die Ein und Ausgabe stehen in C keine Operatoren zur Verf gung sondern nur die Systemaufrufe des Betriebssystems unter UNIX open 2 write 2 read 2 usw und Standardfunktionen aus der zum Com piler geh renden Bibliothek In der Regel sind die Funktionen vorzuziehen da die Programme dann leichter auf andere Systeme bertragen werden k nnen In die sem Fall ist im Programmkopf stets das Header File stdio h einzubinden include lt stdio h gt Diese Zeile ist fast in jedem C Programm zu finden In der Standardbibliothek ste hen rund 40 Funktionen zur Ein und Ausgabe bereit von denen die bekanntesten printf 3 zur formatierten Ausgabe nach stdout und scanf 3 zur formatierten Eingabe von stdin sind 84 2 Programmieren in C Stringfunktionen Strings sind in C Arrays of Characters abgeschlossen mit dem A SCT Zeichen Nr 0 also nichts Besonderes Trotzdem machen sie wie in vielen Programmiersprachen Schwierigkeiten wenn man ihre Syntax nicht beachtet Da ein String wie jedes Array keinen Wert hat kann er nicht per Zu weisung einer Stringvariablen zugewi
282. n Eine Wiederholung Der Computer kennt nur Speicherpl tze in Einheiten von einem Byte Jedes Byte hat eine absolute Adresse Hausnummer die uns aber nichts angeht Die Deklaration einer Variablen erzeugt eine Variable mit einem Namen und bestimmten Eigenschaften darunter den durch den Typ bestimmten Speicherbedarf in Bytes Die Definition einer Variablen weist ihr einen Wert zu und belegt Speicher platz 2 21 C Programme 101 e Der Pointer auf eine Variable ist ihre Speicheradresse Da uns der absolute Wert der Adresse nicht interessiert greifen wir auf den Pointer mittels seines Namens zu Hei t die Variable x so ist amp x der Name des Pointers e Deklariert man zuerst den Pointer px so erh lt man die Variable durch Dereferenzierung px Es ist nicht immer gleichg ltig ob man den Pointer oder die Variable deklariert und das Gegenst ck durch Referenzieren bzw Dereferenzieren handhabt e Eine Variable kann notfalls auf einen Namen verzichten aber niemals auf ihren Pointer e Pointer sind keine ganzen Zahlen die Arithmetik l uft anders e Ein Pointer auf eine noch nicht oder nicht mehr existierende Variable h ngt in der Luft dangling pointer und ist ein Programmfehler Nun einige Beispiele zu bestimmten Anwendungen von Pointern 2 21 10 1 Erzeugen von Pointern pdemo c 2 21 10 2 Der Nullpointer nullp c 2 21 10 3 Pointer auf Typ void xread c Man braucht gelegentlich einen Pointer der auf eine Variable
283. n X Image Imaging Extension Standard XIE Document Imaging Subset X Keyboard Extension Translate Extended Local Informatik Netz Karlsruhe Excel Macro Language Microsoft Transmit Extended Memory Manager X Open Management Protocol Extended Memory Specification Transmit Xerox Network Services System Exchange Transmitter Off Exchange Transmitter On Exclusive or auch EOR X Performance Characterization Group X Protocol Engine Library X Open Portability Guide Extended Scientific Calculation X Open Systenm Interface Specification Extended Storage Module Drive X Session Manager Protocol Extended Technology Crosstalk Crystal External Transmit clock X Open Transport Interface Expertensystem Umweltgefahrlichkeit von Altlasten X Visual Extensions Extensible Virtual Toolkit X Window System Yet Another Bloody Acronym You Asked For It You Got It Yet Another Object Description Language You cannot always get what you want Your Mileage May Vary Slang Yellow Pages Farbmodell Luminanz Y Chrominanzwerte U V Zone Bit Recording Zoned Constant Angular Velocity Zero Delay Lockout Zone Density Recording Zentrum fiir Graphische Datenverarbeitung Zeichengabesystem Zero Insertion Force Zone Information Protocol Zone Improvement Plan ZKA ZOFF ZSL ZVE ZVEI ZZE ZZK 245 Zentraler Kreditausschu Zeichenorientierte Fenster Funktionen Zero Slot LAN Z hlervergleichseinrichtung Zentralverband de
284. n e Schleifenrumpf Anweisungen e Ausgang R cksprungbedingung Diese Schleife wird also mindestens einmal ausgef hrt und dann so lange wieder holt wie die R cksprungbedingung zutrifft Ist die R cksprungbedingung nicht mehr erf llt macht das Programm nach der Schleife weiter In C do Anweisungen while Bedingung Rein aus Bequemlichkeit gibt es in C noch eine dritte Schleife mit for die aber stets durch eine while Schleife ersetzt werden kann Sie sieht so aus for Initialisierung Bedingung Inkrementierung Anweisungen Vor Eintritt in die Schleife wird der Ausdruck initialisierung ausgewertet also immer dann wird der Ausdruck bedingung gepr ft und falls ungleich 0 der Schlei fenrumpf betreten Zuletzt wird der Ausdruck inkrementierung ausgewertet und zur Bedingung zur ckgesprungen Die for Schleife in C hat also eine andere Be deutung als die for Schleife der Shell oder der Programmiersprache PASCAL Jeder der drei Ausdr cke darf fehlen for 33 ist die ewige und zugleich leere Schleife Die Initialisierung und die Inkrementie rung diirfen mehrere durch den Komma Operator getrennte Ausdriicke enthalten die Bedingung muf einen Wert gleich oder ungleich 0 ergeben Eine continue Anweisung innerhalb des Rumpfs f hrt wieder zur Initialisierung Zwei Beispiele Beispiel fuer for Schleife 04 03 1993 define MAX 10 include lt stdio h gt 56 2 Programmieren in C int main int 1
285. n Der Verbreitung dieser Richtlinien 2 6 Programmiertechnik 23 stehen leider ein Hinweis auf das Urheberrecht sowie ein ausdr ckliches Ko pierverbot entgegen Ein und dieselbe Aufgabe kann von einfachen F llen abgesehen auf ver schiedene Weisen gel st werden Der eine bevorzugt viele kleine Programmbl cke der andere wenige gro e Einer arbeitet gern mit Men s ein anderer lieber mit Kommandozeilen Einer schreibt einen langen Kommentar an den Programman fang ein anderer zieht kurze in den Programmcode eingestreute Kommentare vor Solange die genannten objektiven Ziele erreicht werden ist gegen einen pers nli chen Stil nichts einzuwenden Le style c est Phomme 2 6 Programmiertechnik Bei kurzen Programmen wie sie in diesem Buch aus naheliegenden Gr nden ber wiegen setzt man sich oft gleich an das Terminal und legt los Besonders jugendli che BASIC Programmierer neigen zu dieser Programmiertechnik Wenn man sich das nicht schnellstens abgew hnt kommt man nicht weit Um wirkliche Program me zu schreiben mu man systematisch vorgehen und viel Konzeptpapier verbrau chen ehe es ans Hacken geht Es gibt mehrere Vorgehensweisen Eine verbreitete sieht f nf Stufen vor waterfall approach e Aufgabenstellung Formulierung e Entwurf e Umsetzung in eine Programmiersprache Codierung Implementation e Test Fehlersuche Pr fungen Vergleich mit Punkt 1 e Betrieb und Pflege Wartung Updating Die Progr
286. n Files e Einschr nkungen e Fehlermeldungen e Beispiel e Speicherbedarf e Zeitbedarf 3 Verfahren e Algorithmus e Genauigkeit e Giltigkeitsbereich e Literatur zum Verfahren 4 Bearbeiter e Name Datum der Erstellung e Name Datum von Anderungen Das sieht nach Arbeit aus Man braucht nicht in allen Fallen alle Punkte zu ber cksichtigen aber ohne eine solche Dokumentation l t sich ein Programm nicht zuverl ssig benutzen und weiterentwickeln 2 26 Portieren von Programmen 2 26 1 Regeln Unter dem bertragen oder Portieren von Programmen versteht man das Anpas sen an ein anderes System unter Beibehaltung der Programmiersprache oder das bersetzen in eine andere Programmiersprache auf demselben System schlimm stenfalls beides zugleich Ein Programm l t sich immer portieren indem man bis zur Aufgabenstellung zur ckgeht Das ist mit dem maximalen Aufwand verbunden es l uft auf Neu schreiben hinaus Unter g nstigen Umst nden kann ein Programm Zeile f r Zeile bertragen werden ohne die Aufgabe und die Algorithmen zu kennen In diesem 120 2 Programmieren in C Fall reicht die Intelligenz eines Computers zum Portieren es gibt auch Program me f r diese Tatigkeit Die wirklichen Aufgaben liegen zwischen diesen beiden Grenzf llen Schon beim ersten Schreiben eines Programmes erleichtert man ein k nftiges Portieren wenn man einige Regeln beherzigt Man vermeide Annahmen ber Eigenheiten d
287. n String Solche Glieder werden als r Werte r value bezeichnet Auf der linken Seite einer Zuweisung kann alles stehen was einen Wert annehmen kann beispielsweise eine Variable aber keine Konstante und keine Funktion Diese Glieder hei en 1 Werte I value Eine Zuweisung ist keine mathematische Gleichung Die Formel zr r 1 2 1 ist als Gleichung f r jeden endlichen Wert von x falsch als Zuweisung dagegen ist sie gebr uchlich und bedeutet Addiere 1 zu dem Wert von x und schreibe das Ergebnis in die Speicherstelle von x Damit erh lt die Variable x einen neuen Wert Bei einer Gleichung gibt es weder alt noch neu die Zeit spielt keine Rolle Bei einer Zuweisung gibt es ein Vorher und Nachher Die Formel r 2 5 2 2 hingegen ist als Gleichung in Ordnung nicht aber als Zuweisung da auf der linken Seite ein Ausdruck steht und nicht ein einfacher Variablenname Wegen dieser Diskrepanz zwischen Gleichung und Zuweisung ist letztere etwas umstritten Ihre Begr ndung kommt nicht aus der Problemstellung sondern aus der Hardware n mlich der Speicherbehandlung Und gerade diese m chte man mit den h heren Programmiersprachen verdecken 2 16 3 Arithmetische Operationen Die arithmetischen Operationen sind e Vorzeichenumkehr un rer Operator e Addition e Subtraktion binarer Operator e Multiplikation e Division 46 2 Programmieren in C e Modulus Divisionsrest nur f r ganze Zahlen e Inkrement e Dekremen
288. n sind In Abb 2 3 stellen wir die Syntax zweier C Bausteine dar n mlich die if else Anweisung und den Block Das Syntax Diagramm der if else Anweisung ist wie folgt zu lesen Die Anweisung besteht aus e dem Schl sselwort if e einer ffnenden runden Klammer e einem booleschen Ausdruck true false e einer schlie enden runden Klammer e einer Anweisung auch die leere Anweisung oder einem Block e dann ist entweder Ende der if Anweisung oder es folgt e das Schl sselwort else gefolgt von e einer Anweisung oder einem Block Ein Block seinerseits besteht aus e einer ffnenden geschweiften Klammer e dann entweder nichts leerer Block oder e einer Anweisung e gegebenenfalls weiteren Anweisungen e und einer schlie enden geschweiften Klammer Da ein Block syntaktisch gleichwertig einer Anweisung ist lassen sich Bl cke schachteln Ein weiterer Weg zur Beschreibung der Syntax einer Programmiersprache ist die Backus Naur Form die von JOHN BACKUS einem der V ter von FORTRAN und PETER NAUR einem der V ter von ALGOL als Metasprache zu ALGOL 60 entwickelt worden ist Weiteres siehe bei D GRIES 2 13 Kommentar 29 if else Anweisung bool Anw REENEN Gel Anw Block Block C Anweisung Abb 2 3 Syntax Diagramm der if else Anweisung und des Blockes 2 13 Kommentar Alle Programmiersprachen erm glichen Text in ein Programm einzuf gen der vom Compiler berlesen wird und nur f r den menschlich
289. n wenigen Stellen zu sammenzufassen und zu deklarieren In den Funktionen oder Prozeduren sollten keine geheimnisvollen Zahlen magic numbers auftauchen sondern nur Namen Konstanten die im Programm ber ihren Namen aufgerufen werden hei en sym bolische Konstanten 32 2 Programmieren in C F r den Computer sind Konstanten Bestandteil des Programms das unter UN IX in das Codesegment des zugeh rigen Prozesses kopiert und vor schreibenden Zugriffen gesch tzt wird Diese Konstanten werden auch Literale genannt Varia ble hingegen sind Speicherpl tze im User Data Segment deren Adressen Pointer das Programm kennt und auf die es lesend und schreibend zugreift In ANSI C sind die Typ Attribute type qualifier const und volatile ein gef hrt worden die eine bestimmte Behandlung der zugeh rigen Operanden er zwingen Werden selten gebraucht 2 15 2 Typen und Typdefinitionen Jeder Operand geh rt einem Typ an der ber e den Wertebereich e die zul ssigen Operationen e den Speicherbedarf entscheidet Die Typen werden in drei Gruppen eingeteilt e einfache skalare oder elementare Typen e zusammengesetzte oder strukturierte Typen e Pointer In C gibt es nur konstante Typen d h ein Operand der einmal als ganzzahlig deklariert worden ist bleibt dies w hrend des ganzen Programmes Einige Pro grammiersprachen erlauben auch variable Typen die erst zur Laufzeit bestimmt werden oder sich w hrend dieser ndern Typfreie Sprach
290. name shsumme print Bitte die beiden Summanden eingeben read a read b print Die Summanden sind a b print Die Shell Summe ist expr a b print Die Funktions Summe ist cssh a b print Die Summanden sind a b exit Programm 2 29 Shellscript mit Parameter bergabe Die zugeh rige C Funktion ist ein Hauptprogramm C Programm zum Aufruf durch Shellskript 29 01 1988 Compileraufruf cc o cssh cssh c int main int argc char argv int x y sscanf argvli l 4d amp x sscanf argvl2 Ad amp y printf d x y return 0 Programm 2 30 C Programm das Parameter von einem Shellscript bernimmt Ferner k nnen Shellscripts Shellfunktionen aufrufen siehe das Shellscript T rme von Hanoi Entschuldigen Sie bitte da dieser Abschnitt etwas breit geraten ist Die Pa rameter bergabe mu sitzen wenn man mehr als Trivialprogramme schreibt und man ist nicht immer in der gl cklichen Lage rein in C programmieren zu k nnen Verwendet man vorgegebene Bibliotheken so sind diese manchmal in einer ande ren Programmiersprache verfa t Dann hat man sich mit einer fremden Syntax und den kleinen aber bedeutsamen Unvertr glichkeiten herumzuschlagen 2 18 4 Kommandozeilenargumente main Auch das Hauptprogramm main ist eine Funktion die Parameter oder Argu mente bernehmen kann und zwar aus der Kommandozeile beim Aufruf des Programms Sie kennen das von vielen UNIX Kommando
291. nanwendung fiir Dritte Datenflu diagramm Depth First End Index Deutsche Forschungsgemeinschaft Deutsches Forschungszentrum f r KI Kaiserslautern Deutsches Forschungs Netz Distributed File System Depth First Search Distributed Function Terminal Design For Test Discrete Fourier Transformation Diagnostic Function Test Distributed Function Terminal Data File Utility Datenferniibertragung Datenfernverarbeitung Datagram Direct Graphics Interface Standard Device independent Graphics Library HP Direction Generale des Telecommunications Dynamic Host Configuration Protocol Internet Duplex High Speed Data Data In Destination Index Decoder Identification Document Interchange Architecture IBM Display Industry Association Device Independent Bitmap Direct Inward Dialing Digital Image Design Data Interchange Format Deutsche Interessengemeinschaft Internet e V Dynamic Invocation Interface Direct Interrupt Identification Port Dual in line Deutsches Inst fiir Medizinische Information und Ddokumentation 182 DIMM DIN DIO DIP DIS DISC Disco DI SCSI DISP DIV DI W SCSI DIX DKE DKG DKI DKRZ DKUUG DKZ DL DLC DLCI DLCX DLE DLL DLM DLP DLR DLS DLSG DLSw DM VETER SE E VOR 2222 2055 LO 2 zZ To WN MQS 7 MSD MTF CDI SO E F Abk rzungen Dual Inline Memory Module Deutsches Institut f r Normung Berlin Data Input and Output Dual In line Package P
292. nationale Computernetz eigentlich ein Zusam menschlu vieler regionaler Netze Vor allem Universit ten und Beh rden sind eingebunden zum Teil auch Schulen Organisationen und Industrie Es ist nicht nur eine Daten Autobahn sondern eine ganze Landschaft Wir gehen etwas op timistisch davon aus da jeder Leser einen Zugang zum Netz hat Bei der ge genw rtigen raschen Entwicklung ist der Netzzugang tats chlich nur noch eine Frage von wenigen Jahren Diesem Buch liegt daher keine Diskette oder Compact Disk bei die Programme und erg nzende Texte stehen im Netz zur Verf gung UNIX C und das Internet k nnten unabh ngig voneinander betrachtet werden in der Praxis jedoch sind sie miteinander verflochten sie bilden ein Dreieck An einigen Stellen gehen wir au er auf das Wie auch auf das Warum ein Von Zeit zu Zeit sollte man den Blick weg von den B umen auf den Wald richten sonst h uft man nur kurzlebiges Wissen an Man kann den Gebrauch eines Betriebssystems einer Programmiersprache oder der Netzdienste nicht ohne praktische bungen erlernen das ist wie beim Klavierspielen oder Kuchenbacken Die Beispiele und bungen wurden auf einer Hewlett Packard 9000 712 unter HP UX UNIX V 9 0 und einem PC der Marke Weingartener Katzenberg Auslese unter Microsoft DOS 6 2 Microsoft Quick C 2 5 und GNU gce 2 6 3 sowie unter LINUX 1 2 8 entwickelt Als Shell wurde die Korn Shell 11 16 88 bevorzugt Auf anderen Anlagen k nnen sich geringe Ab
293. nd write a writeln b s atb write Die Summe direkt ist writeln s s csv a b write Die Summe ist writeln s write Die Summanden sind write a writeln b s csr a b write Die Summe ist writeln s write Die Summanden sind write a writeln b end Programm 2 24 PASCAL Programm das Parameter by value und by reference an C Funktionen tibergibt PASCAL Programm das FORTRAN Funktion aufruft Compiler Aufruf pc o psummef psummef p fsr o program psummef input output var a b s integer function fsr var x y integer integer call by reference external ftn77 begin writeln Bitte die beiden Summanden eingeben readln a readln b write Die Summanden sind write a writeln b s atb write Die Summe direkt ist writeln s s fsr a b write Die Summe ist writeln s write Die Summanden sind write a writeln b end 2 18 Funktionen 71 Programm 2 25 PASCAL Programm das Parameter by reference an eine FORTRAN Funktion bergibt PASCAL Programm das PASCAL Funktionen aufruft Compileraufruf pc o psummep psummep p psv o psr o program psummep input output var a b s integer function psv x y integer integer call by value external function psr var x y integer integer call by reference external begin writeln Bitte die beiden Summanden eingeben
294. ndard Key Distribution Center Key Definition Table Key Escrow System Family Key Konjunktive Normalform K nstliche Intelligenz Knowledge In Bullshit Out Slang Knowbot Information Service Keep It Simple Small and Stupid Simple Kernel Software for Intelligent Terminals KOALA KOP K amp R KRS KS KSAM KTA Ktk KU KUUG KV KWIPS KZU LADDR LADE LAI LALL LAM LAN LANE LAP LAPB LAPD LAPM LAPS LAR Laser LAST LAT LATA LAU LAVC LAWN LBA LBC LBM LBT LBX LCA LCD LCF LCHU LCI LCM LCP LCS LCU LDA 205 Konstanzer Ausleih und Anfragesystem Kontaktplan DIN 19 239 Kernighan Ritchie Knowledge Retrieval System Session Key Keyed Sequential Access Method Korean Telecommunication Authority Kommission fiir den Ausbau des technischen Kommunikationssystems Unit Key Karlsruher UNIX User Group Kabelverzweiger Karnaugh Veitch Diagramm Kilo Whetstones Per Second Kennzeichenumsetzer Layered Device Driver Architecture Language Definition Environment LAN Automatic Inventory Location Area Identity Longest Allowed Lobe Length Lobe Attachment Unit Local Area Network LAN Emulation Link Access Protocol Procedure Link Access Procedure for Balanced Mode Link Access Procedure for the D Channel Link Access Protocol for Modems LAN Adapter and Protocol Support IBM Load Access Right Light amplification by stimulated emission of radiation Local Area Storage Transport DEC Local Area Transport
295. ndstock hat zahlt es sich aus 2 19 6 Speichermodelle MS DOS Unter UNIX gibt es keine Speichermodelle infolgedessen auch nur eine Standard bibliothek Unter MS DOS hingegen ist die Speichersegmentierung zu beachten d h die Unterteilung des Arbeitsspeichers in Segmente zu je 64 kByte ein l stiges berbleibsel aus uralten Zeiten Die Adressierung der Speicherpl tze ist unter schiedlich je nachdem ob man sich nur innerhalb eines Segmentes oder im ganzen Arbeitsspeicher bewegt F r jedes Speichermodell ist eine eigene Standardbiblio thek vorhanden Das Speichermodell wird gew hlt durch e die Angabe einer Compiler Option oder 88 2 Programmieren in C e die Schl sselw rter near far oder huge im C Programm was unter UNIX C zu einem Fehler f hrt Wird keine der beiden M glichkeiten genutzt nimmt der Compiler einen Default an MS Quick C qel beispielsweise das Modell small Das Modell tiny nicht von allen Compilern unterst tzt packt Code Daten und Stack in ein Segment f r die Adressen Pointer reichen 2 Bytes Das gibt die schnellsten Programme aber hinsichtlich des Umfangs von Programm und Daten ist man beschr nkt Das Modell small packt Code und Daten in je ein Segment von 64 kByte Damit lassen sich viele Aufgaben aus der MS DOS Welt bew ltigen Das Modell medium stellt ein Segment f r Daten und mehrere Segmente f r Programmcode zur Verf gung bis zur Grenze des freien Arbeitsspeichers Typi sche Anwendu
296. nection Management PC Memory Card International Association Personal Communication Network Personal Computer Network File System Phase Change Recording Personal Communication System PC Service OSF Project Control System Print Contrast Signal Personal Conferencing Specification Personal Computing Systems Architecture DEC Portable Common Tool Environment POSIX Conformance Test Suite Personal Conferencing Work Group Public Domain Personal Digital Assistant Physical Device Driver Product Data Exchange using STEP Portable Document Format Processor Defined Function Program Development Facility Plesiochronous Digital Hierarchy Packet Driver Interface 220 PDIAL PDL PDLC PDN PDO PDP PDS PDSS PDT PDTE PDU PDV PE PEA PEARL PEL PEM PEP PERL PERM PERT PES PET PEX PFA PFD PFR PGA PGP PHCB PHIGS PHY PI PIA PIC PICS PID PIF PIK PIM PIN PINET PIO PIP F Abk rzungen Public Dialup Internet Access List Page Description Language Primary Defect List Program Design Description Language Polymer Dispersed Liquid Crystal Public Data Network Portable Distributed Object Packet Data Optimized Plasma Display Panel Programmable Data Processor Public Domain Software Packet Driver Specification Partitioned Data Set Program Post Development Support System Programmable Drive Table Packet mode DTE Protocol Data Unit OSD Path Delay Value Parity Error Processing Element
297. ng Group on Digital Television Broadcasting Work Group System Weak Head Normal Form Wireless Indoor Communication Windows Icons Menus Pointing siehe auch MUFF Wissenschaftsnetz des DFN X 25 Wireless Inhouse Network Well Known Service Sockets Internet Wireless LAN Windows Metafile Format WAN Interface Coprocessor WAN Interface Module Write Only Memory Waste Of Money Brains And Time Slang Werkstattorientierte Programmierung Write Once Read Many Multiple Windows Open Systems Architecture Microsoft Word Processor Write Protected Write Protected Hard Disk words per minute Workplace Shell With Respect To Slang Window Size Workstation World System Teletext World Semiconductor Trade Statistics Write Through W3 World Wide Web Weltweites Warten Weingartener Wein Wandertag World Wide Web Wizard Worm What You See Is What You Get What You See Is What I See Extended Architecture Attribute X 400 API Association Exchange Extended Cylinders Heads Sectors Extended Mode Command Apple External Command X Open Distributed Computing Services X Display Manager Control Protocol External Data Representation External Function X11 File System Extended Graphics Array IBM 244 XID XIE XIE DIS XKB XLATE XLINK LM MIT MM MM OX OS Zz Ate YABA YAFIYGI YAODL YCAGWYW YMMV YP YUV ZBR Z CAV ZDL ZDR ZGDV ZGS ZIF ZIP F Abk rzungen Exchange Identifier Identificatio
298. ngen sind l ngere Programme mit wenigen Daten Das Modell compact verh lt sich umgekehrt wie medium ein Segment f r den Code mehrere Segmente f r die Daten Geeignet f r kurze Programme mit vielen Daten Ein einzelnes Datenelement ein Array beispielsweise darf nicht gr er als ein Segment sein Das Modell large l t jeweils mehrere Segmente f r Code und Daten zu wobei wieder ein einzelnes Datenelement nicht gr er als ein Segment sein darf Das Modell huge schlie lich hebt auch diese letzte Beschr nkung auf aber die Beschr nkung auf die Gr e des freien Arbeitsspeichers bleibt MS DOS schwoppt nicht Die Schl sselw rter near far und huge in Verbindung mit Pointern oder Funk tionen haben Vorrang vor dem vom Compiler benutzten Speichermodell Bei near sind alle Adressen 16 Bits lang bei far sind die Adressen 32 Bits lang die Poin terarithmetik geht jedoch von 16 Bits aus und bei huge schlie lich l uft alles mit 32 Bits und entsprechend langsam ab Falls Ihnen das zu kompliziert erscheint steigen Sie einfach um auf UNIX 2 19 7 Memo Bibliotheken e Nichts 2 19 8 bung Bibliotheken 2 20 Pr prozessor Beim Aufruf des Compilers wird der Quelltext als erstes von einem Pr prozessor bearbeitet Dieser entfernt den Kommentar und f hrt die define und include Anweisungen aus 2 20 1 define Anweisungen Die define Anweisung dient zwei Zwecken Sie definiert symbolische Konstan ten sowie Makros Eine symb
299. nistrators USA Automated Retroactive Minimal Moderation Architecture for Reliable Managed Storage AppleTalk Remote Network Server Address Resolution Protocol Internet Advanced Research Projects Agency USA Auto Radar Plotting Aid Adjust Requested Privilege Level Automatic Request Automatic Repeat on Request American Radio Relay League Adaptive Rate System Address Retrieval System A Real Time Interface Coprocessor IBM Audio Response Unit Autonomous System Authentication Server ANSI SQL Standard Scalable and Portable American Standards Association Arbeitskreis zur Standardisierung von Automatisierungs und 166 ASAP ASC ASCII ASEA ASI ASIC ASIT ASK ASL ASM ASN ASN 1 ASO ASP ASPEC ASPI ASPS ASR ASU AT ATA ATAPI ATC ATDM ATDMA ATE ATF ATFSM ATIS ATK ATM ATMARP ATM CC ATP ATR ATS ATST AT amp T ATT ATTC ATV AU AUDIT F Abk rzungen Me systemen Automatic Switching And Processing As Soon As Possible Slang Accredited Standards Committee ANSI Authorized Service Center American Standard Code for Information Interchange Allm nna Svenska Electricitets Aktiebolag Schweden Adapter Support Interface IBM Application Specific Integrated Circuit Advanced Security and Identification Technology Akademische Software Kooperation Karlsruhe Amplitude Shift Keying Adaptive Speed Levelling Architectural Space Laboratory Z rich Application Specific Memory Automa
300. niversity beginnt mit der Halbleiterforschung und untersucht Germaniumkristalle Die Zuse Z4 wird fertig 2200 Relais mechanischer Speicher Sie arbeitet von 1950 bis 1960 in der Schweiz KONRAD ZUSE entwickelt den Plankalk l die erste h here Programmiersprache WILLIAM BRADFORD SHOCKLEY startet ein Forschungsprojekt zur Halbleiterphysik in den Bell Labs JOHN VON NEUMANN ver ffentlicht sein Konzept eines Computers J PRESPER ECKERT und JOHN W MAUCHLY bauen in den USA die ENIAC Electronic Numerical Integrator and Calculator die erste elektronische Rechenmaschine Die ENIAC arbeitet dezimal enth lt 18000 Vakuumr hren wiegt 30 t ist 5 5 m hoch und 24 m lang braucht f r eine Addition 0 2 ms ist an der Entwicklung der Wasserstoffbombe beteiligt und arbeitet bis 1955 Sie ist der Urahne der UNIVAC CLAUDE E SHANNON begr ndet die Informationstheorie JOHN BARDEEN WALTER HOUSER BRATTAIN und WILLIAM BRADFORD SHOCKLEY entwickeln in den Bell Labs den Transistor der 10 Jahre sp ter die Vakuumr hre abl st Erster Schachcomputer Manchester MADM IBM bringt ihre erste elektronische Datenverarbeitungs anlage die IBM 701 heraus Vorschl ge f r integrierte Schalt Riensin gtuahtRaarav irkihehtdje et986 UNIVAC heraus IBM die 650 Silizium beginnt das Germanium zu verdr ngen 278 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1966 1967 1968 J Zeittafel IBM entwickelt die erste h
301. nktion C Programm Parameter bergabe an PASCAL Funktionen FORTRAN Programm Parameter bergabe an C Funktionen FORTRAN Programm Parameter bergabe an FORTRAN Fkt FORTRAN Programm Parameter bergabe an PASCAL Fkt PASCAL Programm Parameter bergabe an C Funktionen PASCAL Programm Parameter bergabe an FORTRAN Funktion PASCAL Programm Parameter bergabe an PASCAL Funktionen PASCAL Funktion Parameter bergabe by value PASCAL Funktion Parameter bergabe by reference Shellscript Parameter bergabe 2 2 2 nn onen C Programm Parameter bernahme von Shellseript C Programm Kommandozeilenargumente C Funktion Wechselnde Anzahl von Argumenten C Programm Quadratwurzel 2 on onen C Programm el C Programm Fakult t e C Programm Selbstaufruf mam C Programm Stringverarbeitung C Programm Mathematische Funktionen 2 2 2222 Include File usr include stdio h 2 2 2 2 C Programm minimal 2 22 oo non xii Programme xiii 2 41 C Programm einfachst 92 2 42 C Programm einfach oaoa a 93 2 43 C Programm fortgeschritten oaa ee 93 2 44 C Programm Variante 94 2 45 C Programm Eingabe 2 2 2 Comm 94 2 46 C Programm Fileputzete 2 22 2 a 98 2 47 C Programm curses 2 oo 99 2 48 C Programm void Pointer 2 0 0 0 0 02 20 103 2 49 C Programm Primzahlen 2 0 0 0 2 0 000 107 2 50 C Programm Dynamische Speic
302. nn wird gegebenenfalls der Schlei fenrumpf ausgef hrt wobei im Rumpf auf die Variablen i und j des Schleifenkop fes zugegriffen wird Abschlie end wird der Schleifenz hler i inkrementiert und 2 17 Anweisungen 57 wieder durch den Komma Operator getrennt nochmals mit Hilfe einer eigenen Funktion sum x ver ndert Wenn die Schleife nach einigen Durchl ufen verlassen wird steht der Schleifenz hler i weiterhin zur Verf gung In dem Kopf der for Schleife l t sich allerhand unterbringen auch Anweisungen die mit der Schleife nichts zu tun haben Das w re allerdings kein guter Stil Ist die Eintritts oder R cksprungbedingung immer erf llt bleibt der Com puter in der Schleife gefangen man hat eine ewige Schleife programmiert Das kann gewollt sein ist aber oft ein Programmierfehler Schleifen mit der Bedingung mitten im Schleifenrumpf sind denkbar und kom men vor jedoch selten Mehrere Ausg nge sind erlaubt verringern aber die ber sicht und sind sparsam zu verwenden Bei der Behandlung von Ausnahmen Di vision durch Null braucht man sie manchmal Das Hineinspringen mitten in den Schleifenrumpf ist m glich gilt aber als schwerer Stilfehler Die Anweisung break im Rumpf f hrt zum sofortigen und endg ltigen Verlas sen einer Schleife Die Anweisung continue bricht den augenblicklichen Durchlauf ab und springt zur ck vor die Schleife Der Systemaufruf exit 2 veranla t den sofortigen Abbruch des ganzen Programmes
303. noch ein knallharter Absturz Besser ist eine sanfte Notlandung mit einer aussagekr ftigen Fehlermeldung Die Programmeinheiten Funktionen lasse man nicht zu umfangreich werden Ein bis zwei Seiten Quelltext berschaut man noch wird es mehr sollte man die Funktion unterteilen Weiterhin gebe man im Entwicklungsstadium an kritischen Stellen die Werte mittels printf oder fprintf aus Diese Zeilen kommentiert man sp ter aus oder klammert sie gleich in ifdef und endif Anweisungen ein Bew hrt hat sich auch die eigenen Programme einem anderen zu erkl ren da wundert man sich manchmal ber den eigenen Code Ein Programm das man nach ein bis zwei Wochen Pause selbst nicht mehr versteht war von vornherein nicht gelungen Und wenn dann der Computerfreak zu n chtlicher Stunde den Bugs hinter herjagt schlie t sich ein weiter Bogen zur ck in die Kreidezeit denn die ersten S ugetiere Zeitgenossen der Saurier waren auch nachtjagende Insektenfresser 2 21 4 Optimierung Das erste und wichtigste Ziel beim Programmieren ist n chst der selbstverst nd lichen aber unerreichbaren Fehlerfreiheit die bersichtlichkeit Erst wenn ein Programm sauber l uft denkt man ber eine Optimierung nach Optimieren hei t schneller machen und Speicher einsparen sowohl beim Code wie auch zur Laufzeit Diese beiden Ziele widersprechen sich manchmal Im folgenden findet man einige Hinweise die teils allgemein teils nur f r C gelten
304. ntweder von ptag oder von ptag erhalten wobei man normalerweise die zweidimensionale Struktur des Arrays ber cksich tigt obwohl dem Computer das ziemlich gleich ist Es sind noch weitere Schreibweisen m glich die oben wegen der begrenzten Breite nicht unterzubringen sind Greifen wir die letzte Zeile heraus das n von Montag Rein mit Indizes geschrieben gilt ptag il 2 n So wird man vermutlich ein Programm entwerfen weil wir das Arbeiten mit Indizes aus der Mathematik gewohnt sind Unter Ausnutzen der Pointer Arithmetik gilt aber auch plag 1 2 ptag 1 2 plag 1 2 ptag 1 2 n 2 15 Operanden 41 F r den Computer ist Pointer Schreibweise mit weniger Arbeit verbunden da er Adressen kennt und die Indizes erst in Adressen umrechnen mu Pointer und Variable geh ren verschiedenen Referenzebenen level an die nicht gemischt werden d rfen Der gleiche Fall liegt auch in der Linguistik vor wenn ber W rter gesprochen wird Vergleichen Sie die beiden sinnvollen S tze e Kaffee ist ein Getr nk e Kaffee ist ein Substantiv Im ersten Satz ist die Fl ssigkeit gemeint im zweiten das Wort was gelegentlich durch Kursivschreibung oder G nsef chen angedeutet wird Der erste Satz ist einfaches Deutsch der zweite geh rt einer Metasprache an in der Aussagen ber die deutsche Sprache vorgenommen werden verwirrenderweise mit denselben W rtern und derselben Grammatik Genauso kann x eine Var
305. ocs misc yabl gz 1993 ca 100 S ASCII Tabellarisch kurze Kommentare 2 Lexika Glossare Worterbiicher Newsgruppen news answers de etc lists news lists RFC 1392 FYI 18 Internet Users Glossary ftp ciw pub docs net rfc rfe1392 1993 53 S Duden Informatik Dudenverlag Mannheim 1993 800 S 42 DM Nachschlagewerk sorgfaltig gemacht theorielastig Begriffe wie Ethernet LAN SQL Internet fehlen Fachausdriicke der Informationsverarbeitung Englisch Deutsch Deutsch Englisch IBM Deutschland Form Nr Q12 1044 1698 S 113 DM W rterbuch und Glossar W Alex Abk rzungs Liste ABKLEX Informatik Telekommunikation ftp ciw pub misc abklex Abk rzungsliste aus diesem Text aktuelle Arbeitsfassung V Anastasio W rterbuch der Informatik Deutsch Englisch Franz sisch Italienisch Spanisch VDI Verlag D sseldorf 1990 400 S 128 DM A E Cawkell Encyclopedic Dictionary of Information Technology and Systems Saur M nchen 1993 350 S 190 DM F Kr ckeberg O Spaniol Lexikon Informatik und Kommunikations technik VDI Verlag D sseldorf 1990 693 S 168 DM 258 I Literatur M Peschke P Wennrich Encyclopedic Dictionary of Electronics Electrical Engineering and Information Processing Englisch Deutsch Deutsch Englisch Saur M nchen 1990 8 B nde zu je 400 S 1920 DM A Ralston E D Reilly Encyclopedia of Computer Science Chapman Hall London 1993 15
306. olische Konstante ist ein konstanter Operand auch 2 20 Pr prozessor 89 ein String der mit der define Anweisung Namen und Wert erhalt und im wei teren Programm nur noch mit seinem Namen aufgerufen wird define MWST 1 15 brutto netto MWST Damit erleichtert man nderungen die sich so auf eine Stelle beschr nken und vermeidet das Auftauchen r tselhafter Zahlen magic numbers mitten im Pro gramm Bei Strings sind die G nsef chen mit in die Definition zu nehmen man darf sie beim Aufruf nicht wiederholen Ein Makro ist eine nicht zu lange Folge von Ausdr cken und Anweisungen alternativ zu einer kurzen Funktion Das Makro wird zu in line Code und damit etwas schneller als die Funktion die Parameter bergabe entf llt Andererseits wird der ausf hrbare Code etwas l nger Ein Beispiel define NEWFILE fprintf stderr File n if gets name NULL done if argc lt 2 NEWFILE Der Praprozessor ersetzt jedes NEWFILE im Programm buchst blich durch die de finierte Folge Das spart Tipperei und verbessert die Ubersichtlichkeit Zeichenfol gen in Stringkonstanten in G nsef chen werden nicht ersetzt das Progr mm chen Programm zur Untersuchung von define define PI 3 14159 int main printf Die Zahl PI ist f n PI schreibt wie erhofft auf den Bildschirm Die Zahl PI ist 3 141590 2 20 2 include Anweisungen Die include Anweisung f hrt dazu da der Praprozessor das ans
307. onen verwendet die kein Ergebnis zur ckliefern sowie zum Erzeugen generischer all gemeiner Pointer die auf Operanden eines vorl ufig beliebigen Typs zeigen Der Bytebedarf eines Pointers liegt ja fest auch wenn der zugeh rige Typ noch offen ist Zur Pointer Arithmetik mu jedoch der Typ das hei t der Bytebedarf der zugeh rigen Variablen bekannt sein Operanden vom Typ void lassen sich nicht verarbeiten da sie noch nicht existieren Vor der Erfindung des Typs void wurde f r generische Pointer der Typ char genommen der ein Byte umfa t woraus sich alle anderen Typen zusammensetzen lassen Man h tte den Typ auch byte nennen k nnen 2 15 2 2 Zusammengesetzte Typen Arrays Die meisten Programmiersprachen kennen Arrays ungl cklicherweise auch als Felder bezeichnet das sind geordnete Mengen von Gr en desselben Typs Jedem Element ist ein fortlaufender Index Hausnummer zugeordnet der in C stets mit 0 beginnt In einem Array von zw lf Elementen l uft also der Index von 0 bis 11 Aufpassen Elemente eines Arrays d rfen Konstanten oder Variable aller einfachen Typen andere Arrays Strukturen Unions oder Pointer sein jedoch keine Funktionen Files sind formal Strukturen ein Array von Files ist also erlaubt Der Compiler mu die Gr e eines Arrays Anzahl und Typ der Elemente wis sen Sie mu bereits im Programm stehen und kann nicht erst zur Laufzeit errech net werden Man kann jedoch die Gr e mittels der Stand
308. orientierten Program mierung zur objektorientierten ist vielleicht ebenfalls ein grunds tzlicher Schritt Bei der gewohnten prozedurorientierten Programmierung werden anfangs die Daten deklariert der Schwerpunkt liegt auf den Algorithmen und den sie umset zenden Prozeduren Funktionen Prozeduren Subroutinen Ein objektorientierter Ansatz kehrt die Gewichte um Mit der Strukturierung und Beschreibung der Da ten ist der wesentliche Teil des Programms erledigt 2 28 1 1 Objective C und NeXTstep 2 28 1 2 C Es gibt inzwischen mehrere Programmiersprachen die den objektorientierten An satz unterstiitzen oder sogar erzwingen Eine von Grund auf neue Sprache dieser Richtung ist SMALLTALK Hingegen ist C eine Weiterentwicklung von C Das hat den Vorteil da ein C Programmierer einen Teil der Syntax bereits kennt und den Nachteil da er leicht in seiner gewohnten Denkweise gefangen bleibt Im GNU Projekt gibt es einen C Compiler der auf dem GNU C Compiler aufbaut Auch f r MS DOS verf gbar unter djgpp suchen 19In unserem Institut wurde viele Jahre ein Buchhaltungsprogramm in der etwas exo tischen Sprache DE RPG verwendet das auch fast nur aus einer Beschreibung der Daten bestand 2 29 Exkurs ber Algorithmen 129 Hier als kleines Beispiel das Hello World Programm in C 2 28 2 Klassenbibliothek C XSC Die Klassenbibliothek C XSC Extended Scientific Calculation wurde im Insti tut fiir Angewandte Mathematik der Unive
309. orn Icelandic Latin small letter sharp s German Latin small letter a with grave Latin small letter a with acute Latin small letter a with circumflex Latin small letter a with tilde Latin small letter a with diaresis Latin small letter a with ring above Latin small letter ae Latin small letter c with cedilla Latin small letter e with grave Latin small letter e with acute Latin small letter e with circumflex 146 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 353 354 355 356 357 360 361 362 363 364 365 366 367 370 371 372 373 374 375 376 377 e m MD O Or D O OO efe S Gr ee Li Ei Ei B Zeichens tze Latin small letter e with diaresis Latin small letter i with grave Latin small letter i with acute Latin small letter i with circumflex Latin small letter i with diaresis Latin small letter eth Icelandic Latin small letter n with tilde Latin small letter o with grave Latin small letter o with acute Latin small letter o with circumflex Latin small letter o with tilde Latin small letter o with diaresis Division sign Latin small letter o with stroke Latin small letter u with grave Latin small letter u with acute Latin small letter u with circumflex Latin small letter u with diaresis Latin small letter y with acute Latin small letter thorn Icelandic Latin small letter y with diaresis C UNIX Systemaufrufe Systemaufruf
310. othek Die nicht zur Standard C Bibliothek geh renden curses 3 Funktionen aus usr lib libcurses a erm glichen die weitergehende Gestaltung eines alpha numerischen Bildschirms In diesem Fall ist die curses 3 Bibliothek beim Com pileraufruf zu nennen cc lcurses Vergi t man die Nennung wei der Compiler mit den Namen der curses 3 Funktionen nichts anzufangen und meldet sich mit der Fehleranzeige unsatisfied symbols Bei Verwendung von curses 3 Funktionen ist das Include File curses h in das Programm aufzunehmen das stdio h einschlie t 2 19 3 Xlib und Xrlib X Window System Programme die von dem X Window System Protokoll Gebrauch machen wollen greifen auf unterer Ebene auf Funktionen der Xlib Bibliothek zur ck auf h herer Ebene auf Funktionen einer Toolbox wie der Xrlib Bibliothek die ihrerseits auf der Xlib aufsetzt 2 19 4 Weitere Bibliotheken 2 19 4 1 NAG Bibliothek Die NAG Bibliothek der Numerical Algorithms Group Oxford soll hier als ein Beispiel f r eine umfangreiche kommerzielle Bibliothek stehen die bei vielen nu merischen Aufgaben die Arbeit erleichtert In der Universit t Karlsruhe steht sie zur Verf gung 2 19 5 Eigene Bibliotheken Wir haben bereits in Abschnitt Bibliotheken Archive gelernt eine eigene Programmbibliothek mittels des UNIX Kommandos ar 1 herzustellen Zun chst macht es Arbeit seine Programmierergebnisse in eine Bibliothek einzuordnen aber wenn man einmal einen Gru
311. ough the Xlib interface M Pniewski Karlsruhe Warszawa 10 Juli 1991 compilieren mit cc xwindows c 1X11 include lt stdio h gt include lt X11 Xlib h gt include lt X11 Xutil h gt define QUIT Press q to quit define CLEAR Press c to clear this window define DELETE Press d to delete this window define SUBWIN Press n to create subwindow define DELSUB Press n again to delete window define WIN1 WINDOW 1 define WIN2 WINDOW 2 define WIN3 WINDOW 3 char hallo Hallo World char hil Hi int main int argc char argv Display mydisplay d structure Window mywini mywin2 newwin w structure Pixmap mypixmap pixmap GC mygci mygc12 newgc graphic context 114 2 Programmieren in C XEvent myevent event to send KeySym mykey keyboard key XSizeHints myhint window info Colormap cmap color map XColor yellow exact colori color2 color3 static XSegment segments 4 350 100 380 280 380 280 450 300 unsigned long myforeground mybackground fg amp bg colors int myscreen i num 2 del 1 win 1 char text 10 initialization if mydisplay XOpenDisplay fprintf stderr Cannot initiate a display connection exit 1 myscreen DefaultScreen mydisplay workstation d s default pixel values mybackground WhitePixel mydisplay myscreen myforeground BlackPixel mydisplay m
312. oundary Scan Description Language Bit Scan Forward Britisch Standards Institute Bundesamt f r Sicherheit in der Informationstechnik Bracket State Manager Batch Simple Message Transfer Protocol Byte Stream Protocol Bit Scan Reverse Board of Standards Review ANSI Broadband Switching System Busy Binary Synchronous Communications Protocol Bit Test British Telecommunications Branch Target Address Cache Basic Telecommunication Access Method IBM Branch Target Buffer Bit Test and Complement Biting The Carpet Slang Britisch Telecom International But Then Pam Crazy Slang Block TLB Busy Tone Multiple Access Batch Transfer Program Bit Test and Reset Bit Test and Set Base Transceiver System Basic Transmission Unit By The Way Slang Bildschirmtext Big Ugly ASCH Font Big Ugly ASCII Graphic Buffer Broadcast and Unknown Server Belgian UNIX Users Group Bundesverband Informationstechnologien Bonn Block Write Mode Buzz Word Quotient Baden Wiirttembergisches Schulnetz Befehlz hlregister Bundesamt f r Zulassungen in der Telekommunikation Belegorientierter Zahlungsverkehr Befristeter Z hlervergleich Common Applications Collision Avoidance Computer Animation Computer Associates Certification Authority CAA CAAD CAC CACM CAD CADAM CADD CADMAT CAE CAF CAG CAH CAI CAIS CAIT CAK CAL CALIES CALL CALS CALTECH CAM CAMAC CAMD CAN CAO CAP CAPD CAPI CAPPC CAPPP
313. pfer etwas gedacht nur was bleibt hin und wieder im Dunkel Hin ter manchen Namen steckt auch eine ganze Geschichte wie man sie gelegentlich in der Newsgruppe comp society folklore im Netz erf hrt Das Kommando exit beendet die Sitzung Es ist ein internes Shell Kommando und im Handbuch unter der Beschreibung der Shell sh 1 zu finden Merke F r UNIX und C sind gro e und kleine Buchstaben verschiedene Zei chen Ferner sind die Ziffer 0 und der Buchstabe O auseinanderzuhalten 1 5 Wo schl gt man nach Wenn es um Einzelheiten geht sind die zu jedem UNIX System geh renden und einheitlich aufgebauten Referenz Handb cher die wichtigste Hilfe Sie glie dern sich in folgende Sektionen el Kommandos und Anwendungsprogramme e IM Kommandos zur Systemverwaltung maintenance e 2 Systemaufrufe Real programmers don t read manuals behauptet das Netz 1 5 Wo schl gt man nach 11 e 30 Subroutinen der Standard C Bibliothek e 3M Mathematische Bibliothek e 35 Subroutinen der Standard I O Bibliothek e 3X Besondere Bibliotheken Fileformate Vermischtes z B Filehierarchie Zeichens tze 4 5 e 6 Spiele 7 8 e Geratefiles e Systemverwaltung e 9 Glossar Subroutinen sind in diesem Zusammenhang vorgefertigte Funktionen fiir eigene Programme Standardfunktionen mit anderen Worten Die erste Seite jeder Sekti on ist mit intro betitelt und f hrt in den Inhalt der Sektion ein Beim Erw hnen eines Kommandos wird die Sek
314. pringt dem Bed rfnis die einzelnen Programmteile voneinander unabh ngig und damit das ganze Programm besser beherrschbar zu gestalten SMALLTALK ist eine von Grund auf neue Sprache C eine Weiterentwicklung von C In C lassen sich daher auch Programme im gewohnten imperativen Stil schreiben Programme in funktionalen Programmiersprachen wie LISP oder SCHEME bestehen aus Definitionen von Funktionen u erlich hnlich einem Gleichungs system die auf Listen von Werten angewendet werden Die Sprache C ist trotz der Verwendung des Funktionsbegriffes keine funktionale Programmiersprache da ihr Konzept nicht anders als in FORTRAN oder PASCAL auf der sequentiellen Ausf hrung von Anweisungen beruht Programmen in logischen Sprachen wie PROLOG werden Fakten und Regeln zum Folgern mitgegeben es beantwortet dann die Anfrage ob eine Behauptung mit den Fakten und Regeln vertr glich wahr ist oder nicht Viele Denksportauf gaben legen eine solche Sprache nahe Die Umgew hnung von einem Paradigma auf ein anderes geht ber das Erlernen einer neuen Sprache hinaus und beeinflu t die Denkweise die Sicht auf ein Problem Es gibt ein zweite von der ersten unabh ngige Einteilung die zugleich die historische Entwicklung spiegelt e maschinenorientierte Sprachen Maschinensprache Assembler e problemorientierte Sprachen h here Sprachen In der Fr hzeit gab es nur die v llig auf die Hardware ausgerichtete und unbequeme Maschinensprache Asse
315. printf File s nicht zugaenglich n argvlil D else ifdef TERMINFO Bildschirm leeren terminfo Routinen setupterm 0 1 0 putp clear_screen resetterm Helse Bildschirm leeren curses Routinen initscr refresh endwin endif D return 0 D Programm 2 46 C Programm zum Leeren des Bildschirms oder von Files Das Kommando usr local bin xclear ist eine recht praktische Er weiterung von bin clear Die Funktion setupterm ermittelt vor al lem den Terminaltyp putp schickt die Steuersequenz zum Terminal und reset_shell_mode bereinigt alle Dinge die setupterm aufgesetzt hat Mit diesen terminfo Funktionen soll man nur in einfachen F llen wie dem obigen arbeiten in der Regel sind die intelligenteren curses 3 Funktionen vorzuziehen Im folgenden Beispiel verwenden wir curses 3 Funktionen zur Bildschirm steuerung zum Erzeugen eines Hilfe Fensters help c Programm mit curses Funktionen M Pniewski Karlsruhe Warszawa 27 Juni 1991 compilieren mit cc o help help c lcurses define END c Q0 I c define HELP c H oi Makros c h include lt curses h gt int main 2 21 C Programme 99 int c disp 1 WINDOW frame initscr noecho cbreak mvprintw 10 15 A program demonstrating Curses Windows mvprintw 11 15 You get a help window by pressing h mvprintw LINES 1 0 Press q to quit refresh while 1
316. pvar unsigned long arg int field sig char format string long ivar Uebernahme und Auswertung des Formatstrings va_start pvar format va_arg pvar char while 1 Ausgabe von Literalen while format amp amp format 0 fputc format stdout Ende des Formatstrings if format 0 va_end pvar return 0 Prozentzeichen Platzhalter format field 0 76 2 Programmieren in C Auswertung Laengenangabe while format gt 0 amp amp format lt 9 field field 10 format 0 format Auswertung Typangabe und Ausgabe des Arguments switch format case d sig ivar long va_arg pvar int lt 0 1 0 arg unsigned long ivar lt 0 ivar ivar int_print arg sig field break case u arg unsigned long va_arg pvar unsigned int_print arg 0 field break case 1 switch format 1 case d sig ivar va_arg pvar long lt 0 1 0 arg unsigned long ivar lt 0 ivar ivar int_print arg sig field break case u arg va_arg pvar unsigned long int_print arg 0 field break default va_end pvar return 1 unbekannter Typ format break case Ari fputc format stdout break case CG fputc va_arg pvar char stdout break case ai string va_arg pvar char while fpu
317. r UNIX Open Aktuelles Wissen Verlagsgesellchaft mbH Trostberg monatlich ca 100 S Unix Welt IDG Communications Verlag M nchen monatlich ca 110 5 Unix World MacGraw Hill Mountain View USA monatlich ca 200 5 das Neueste aus der Heimat von UNIX Hier noch die Netz Anschriften einiger Verlage Verlag Heinz Heise Redaktion IX Hannover E Mail post ix de WWW URL http www ix de O Reilly Sebastopol USA E Mail nuts ora com Gopher gopher ora com Springer Berlin Gottingen Heidelberg usw E Mail svserv vax ntp springer de aFTP trick ntp springer de Gopher trick ntp springer de WWW http www springer de J Zeittafel Diese bersicht ist auf die Karlsruher Verh ltnisse zugeschnitten Ausf hrlichere Angaben sind den im Anhang I Literatur in Abschnitt Geschichte aufgef hrten Werken zu entnehmen Die meisten Errungenschaften entstanden nicht zu einem Zeitpunkt sondern entwickelten sich ber manchmal lange Zeitspannen so da vor viele Jahreszahlen um etwa zu setzen ist Das Deutsche Museum in M nchen zeigt in den Abteilungen Informatik und Telekommunikation einige der hier genannten Maschinen ca 10 v Chr ca 2000 v Chr ca 400 v Chr ca 20 600 1200 1550 1617 1623 1642 1674 1801 1821 1840 1847 Der beliebte Tyrannosaurus rex hatte zwei Finger an jeder Hand und rechnete vermutlich im Dualsystem wenn berhaupt Die Babylonier ve
318. r der Prozessor ist in die Tastatur eingebaut wie beim Schneider CPC 464 oder Commodore C64 in das Bildschirmgeh use wie beim ersten Apple Macintosh oder in ein eigenes Gehause Seine wichtigsten Teile sind der Zentralprozessor central processing unit CPU und der Arbeits speicher memory Um recht in Freuden arbeiten zu k nnen braucht man noch einen Massen speicher mass storage der seinen Inhalt nicht vergi t wenn der Computer ausgeschaltet wird Nach dem heutigen Stand der Technik arbeiten die meisten Massenspeicher mit magnetischen Datentr gern hnlich wie Ton oder Videoband ger te Tats chlich verwendeten die ersten Personal Computer Tonbandkassetten 4 Aus der Fernsehtechnik kommend wird der Bildschirm oft Monitor genannt Da dieses Wort hier nicht ganz trifft und auch ein Programm bezeichnet vermeiden wir es 1 3 Was mu man wissen 5 Weit verbreitet sind scheibenf rmige magnetische Datentr ger in Form von Dis ketten floppy disk und Festplatten hard disk Disketten auch Schlappscheiben genannt werden nach Gebrauch aus dem Laufwerk drive des Computers herausgenommen und im Schreibtisch vergraben oder mit der Post verschickt Festplatten verbleiben in ihrem Laufwerk Da man gelegentlich etwas schwarz auf wei besitzen m chte geh rt zu den meisten Computern ein Drucker printer Ferner ist ein Computer der etwas auf sich h lt heutzutage durch ein Netz network mit anderen Computern rund um die Welt
319. r Cache Double Sided Double Density Floppy Data Switching Exchange Data Storage Equipment Display Station Emulation Adapter Data Dummy Control Section Desparately Seeking Help Slang Double Sided High Density Floppy Digital Sspeech Interpolation Dual RAS SIMM Distributed Support Information Standard Dialogue Scripting Language OSF Dynamic Simulation Language Digital Subscriber Line Board Distributed SMIT IBM Deep Space Network Distributed System Object Model Digital Signal Processing Processor Downstream Physical Unit Double Sided Quad Density Floppy Data Set Ready Device Status Register Report Digitales Satelliten Radio Decision Support System Digital Satellite System Digital Signature Standard Digital Subscriber Signalling Digital Storage Systems Interconnect Direct Sequence Spread Spectrum Datenstation Double Super Twisted Nematic Field Effective Material Data Digital Service Unit DSUWG DSW DTA DTAB DTC DTD DTE DTL DTMF DTP DTPS DTR DTS DTTB DTX DUA DUAT DUe DUeE DUNDIS DUST DV DVA DVB DVC DVCR DVD D VHS DVI DVL DVST DWIM DWM DWT DX DXA DXC DXF DXG DXI B A BA EAC EAN EANCOM EANTC 185 Data Systems Users Working Group Data Device Status Word Disk Tranfer Area Demountable Tape Automated Bonding Desktop Communication Document Type Definition Data Terminal Terminating Equipment Dumb Terminal Emulator Diode Transistor Logic Dia
320. r Elektrotechnik und Elektronikindustrie Zentralamt f r Zulassungen im Fernmeldewesen Zentraler Zeichenkanal ISDN G Requests For Comment RFCs Das Internet wird nicht durch Normen sondern durch RFCs Request For Com ment beschrieben etwa 2000 an der Zahl Wird ein RFC durch einen neueren abgel st bekommt der neue auch eine neue h here Nummer Es gibt also keine Versionen oder Ausgaben wie bei den DIN Normen Einige RFCs sind zugleich FYIs For Your Information mit eigener Z hlung Diese enthalten einf hrende Informationen Hier folgt eine Auswahl nach der Nummer sortiert 1 Host Software 1969 681 Network Unix 1975 814 Name Addresses Ports and Routes 1982 902 ARPA Internet Protocol policy 1984 1000 The Request For Comments Reference Guide 1987 1034 Domain names concepts and facilities 1987 1087 Ethics and the Internet 1989 1094 NFS Network File System Protocol specification 1989 1118 Hitchhiker s Guide to the Internet 1989 1150 FYI on FYI Introduction to the FYI notes FYI 1 1990 1173 Responsibilities of Host and Network Managers 1991 1175 FYI on Where to Start FYI 3 1990 1178 Choosing a name for your computer FYI 5 1990 1180 TCP IP Tutorial 1991 1198 FYI on the X window system FYI 6 1991 1207 FYI on Questions and Answers FYI 7 1991 1208 Glossary of Networking Terms 1991 1244 Site Security Handbook FYI 8 1991 1281 Guidelines for the secure operations of the Internet 1
321. r lesbar sind weil es die Maschinen nicht l nger gibt Oft mu man auch mit der Anlage die Programme wechseln Der bergang zu einem neuen System ist von Zeit zu Zeit unausweichlich wird aber von Technikern und Kaufleuten gleicherma en gef rch tet Auch dieser Aufwand ist zu ber cksichtigen Mit Papier war das einfacher einen Brief unserer Urgro eltern k nnen wir heute noch lesen Deutlicher als der Zeitgewinn ist der Qualit tsgewinn der Arbeitsergebnisse In einer Buchhaltung sind dank der Unterst tzung durch Computer die Auswer tungen aktueller und differenzierter als fr her Informationen zum Beispiel aus Einkauf und Verkauf lassen sich schneller sicherer und einfacher miteinander verkn pfen als auf dem Papierweg Manuskripte lassen sich bequemer ndern und besser formatieren als zu Zeiten der mechanischen Schreibmaschine Von tech nischen Zeichnungen lassen sich mit minimalem Aufwand Varianten herstellen Mit Simulationsprogrammen k nnen Entw rfe getestet werden ehe man an echte und kostspielige Versuche geht Literaturrecherchen decken heute eine weit gr ere Menge von Ver ffentlichungen ab als vor drei ig Jahren Gro e Datenmengen wa ren fr her gar nicht oder nur mit Einschr nkungen zu bew ltigen Solche Aufgaben kommen beim Suchen oder Sortieren sowie bei der numerischen Behandlung von Problemen aus der Wettervorhersage der Str mungslehre der Berechnung von Flugbahnen oder Verbrennungsvorg ngen vor Das Du
322. r sind weil erst das Programm als Ganzes einen Sinn ergibt Das Verbinden der einzeln compilierten Files zu einem ausf hr baren Programm besorgt der Binder oder Linker Unter UNIX werden blicher weise Compiler und Linker von einem Compilertreiber aufgerufen so da der Benutzer nichts von den beiden Schritten bemerkt Man ruft den Treiber cc 1 auf und erh lt ein ausf hrbares Programm Per Option l t sich das Linken un terdr cken blicherweise erzeugt ein Compiler Maschinencode f r die Maschine auf der er selbst l uft Cross Compiler hingegen erzeugen Maschinencode f r andere Systeme Das ist gelegentlich n tzlich Der Name des Programms im C Quellcode hat die Kennung c in FORT RAN und PASCAL entsprechend f und p Das compilierte aber noch nicht gelinkte Programm wird als Objektcode oder relozierbar relocatable bezeich net der Filename hat die Kennung o Das lauff hige Programm hei t ausf hr bar executable sein Name hat keine Kennung Unter MS DOS sind die Namen ausf hrbarer Programme durch com oder exe gekennzeichnet Ein compiliertes Programm wird auch Binary genannt im Gegensatz zum Quelltext Ein Pro 2 4 Wie entsteht eine Programmiersprache 21 gramm ist bin r kompatibel zu zwei Systemen wenn es in seiner ausf hrbaren Form unter beiden l uft Bei den Operanden spielt es eine Rolle ob ihre Eigenschaften vom bersetzer bestimmt werden oder von Programm und bersetzer gemeinsam zur berset
323. ral Arbitration Point Communication Application Platform Computing for Analysis Project Computer To Assist Persons with Disabilities Common ISDN Application Programming Interface Computer Aided Production Planning and Control Computer Aided Process and Production Planning Capitals Cassette Programming System Computer Aided Production Scheduling and Control Character and Pattern Telephon Access Information Network Computer Aided Quality Control Computer Aided Retrieval Computer Assisted Radiology Computer Aided Reverse Engineering Cancer Registry Lower Saxony Computer Aided Risc Simulation Column Address Select Strobe Computer Aided Service Computer 172 CASE CASL CASSIS CAST CAT CATIA CATP CATS CATV CAU CAV CAVE CB CBC CBCR CBDS CBEMA CBIP CBL CBR CBT CBW CBX CC CCC CCD CCFT CCIR CCIRN CCITT CCL CCM CCN CONG CC NUMA CCP CCR CCRN CCS CCSY CCT CCU CCUT CCVR CD F Abk rzungen Algebra System Communicating Applications Specification Computer Aided Software Engineering Crosstalk Application Scripting Language Classified And Search Support Information System Computer Aided Software Testing Computer Aided Teaching Testing Telecommunication Computer Aided Transscription Concatenate Computer Graphic Aided Three Dimensional Interactive Application Computer Aided Technical Publishing Computer Assisted Training System Common Community Antenna Television Cable TV Control Access Unit
324. ramm eine Quelle zu schreiben Das l t sich teilweise sogar mit CASE Werkzeugen in beide Richtungen automatisieren 2 10 Memo Programmiertechnik e Nichts 2 11 bung Programmiertechnik 2 12 Bausteine eines Quelltextes Alle Zeichen oder Zeichengruppen eines Programmes im Quellcode sind entweder e Kommentar comment e Namen identifier e Schl sselw rter Wortsymbole keyword e Operatoren operator 28 2 Programmieren in C e Konstanten Literale constant literal e Trennzeichen separator oder e bedeutungslos Kommentar gelangt in C gar nicht bis zum Compiler im engeren Sinn sondern wird schon vom Praprozessor entfernt und kann bis auf seine Begrenzungen frei ge staltet werden Schl sselw rter und Operatoren sind festgelegte Zeichen oder Zeichengruppen an die man gebunden ist Namen werden nach gewissen Regeln vom Programmierer gebildet ebenso Konstanten Trennzeichen trennen die genannten Bausteine oder ganze Anweisungen voneinander und sind festgelegt meist Spaces Semikolons und Linefeeds Bedeutungslose Zeichen sind berz hlige Spaces Tabs oder Linefeeds Die Syntax der einzelnen Bausteine d h ihr regelgerechter Gebrauch kann mittels Text beschrieben werden Das ist oft umst ndlich und teilweise auch schwer zu verstehen Deshalb nimmt man Beispiele zu Hilfe die aber selten die Syn tax vollst ndig erfassen So haben sich Syntax Diagramme eingeb rgert die nach etwas bung leicht zu lese
325. rchsuchen umfangreicher Datensammlungen ist eine Lieblingsbesch ftigung der Computer Noch eine Warnung ist angebracht Die Arbeit wird durch den Computer nur selten einfacher Mit einem Bleistift k nnen die meisten umgehen die Benutzung eines Texteditors erfordert in jedem Fall eine Einarbeitung und die Ausnutzung aller M glichkeiten eines leistungsf higen Textsystems eine lange Einarbeitung und st ndige Weiterbildung Ein Schriftst ck wie das vorliegende w re vor drei Big Jahren nicht am Schreibtisch herzustellen gewesen heute ist das mit Compu terhilfe kein Hexenwerk setzt aber eine eingehende Besch ftigung mit mehreren Programmen voraus Man darf nicht vergessen da der Computer ein Hilfsmittel ein Werkzeug ist Er bereitet Daten auf interpretiert sie aber nicht Er bernimmt keine Verant wortung und handelt nicht nach ethischen Grunds tzen Er rechnet aber wertet nicht Das ist keine technische Unvollkommenheit die im Lauf der Zeit ausgeb gelt wird sondern eine grunds tzliche Eigenschaft Die F higkeit zur Verantwortung setzt die Willensfreiheit voraus und diese beinhaltet den eigenen Willen Ein Computer der anf ngt einen eigenen Willen zu entwickeln ist ein Fall f r die Werkstatt Der Computer soll den Menschen ebensowenig ersetzen wie ein Hammer die Hand ersetzt sondern den Menschen erg nzen Das h rt sich banal an in Ein zelf llen ist die Aufgabenverteilung zwischen Mensch und Computer aber schwie rig zu e
326. re Gleichung if fabs a lt EPS puts WARNUNG a nahe Null als Null angenommen if fabs b lt EPS puts WARNUNG auch b nahe Null Unsinn done else printf Loesung lf n c b done else Berechnung der Diskriminanten d d b x xb 4 0 a cr h ata 2 Fall eine oder zwei reelle Loesungen if da gt 0 0 s sqrt d xi b s h x2 b s h puts Eine oder zwei reelle Loesungen printf x1 41f n x1 printf x2 Ylf n x2 done else 3 Fall konjugiert komplexe Loesungen z 0 b h z 1 sqrt d h puts Konjugiert komplexe Loesungen printf x1 ALT 1f n z 0 z 1 printf x2 41f Ylf n z 0 z 1 done 126 2 Programmieren in C Funktion done zur Beendigung des Programms int done return 0 Programm 2 56 C Programm Quadratische Gleichung mit reellen Koeffizienten und komplexen L sungen aus FORTRAN bertragen Bei der bertragung haben wir keinen Gebrauch von unseren Kenntnissen ber quadratische Gleichungen gemacht sondern ziemlich schematisch gearbeitet Mathematische Kenntnisse sind trotzdem hilfreich auch sonst im Leben Wir erh hen den Reiz der Aufgabe indem wir auch komplexe Koeffizienten zu lassen Schlie lich wollen wir das Programm als Funktion Subroutine schreiben die von einem bergeordneten Programm aufgerufen wird 2 26 6
327. ring The Production of Quality Software Macmillan 1991 480 S 22 Studentenausgabe Empfehlung aus dem Netz R W Sebesta Concepts of Programming Languages Benjamin Cummings Redwood City 1993 560 S 65 US hnlich wie Horowitz 268 I Literatur I Sommerville Software Engineering Addison Wesley Reading 1992 688 S 52 US Wie man ein Programmierprojekt organisiert Werkzeuge Methoden sprachenunabhangig N Wirth Systematisches Programmieren Teubner Stuttgart 1993 160 S 27 DM Allgemeine Einf hrung ins Programmieren PASCAL nahe A Zeidler R Zellner Software Ergonomie Oldenbourg M nchen 1994 292 S 68 DM 12 Programmieren in C Newsgruppen comp lang c comp std c de comp lang c maus lang c Microsoft Quick C und C 6 0 Handbiicher mehrere B nde bzw Ordner C Brinkschulte Macintosh Programmieren in C Springer Berlin 1992 404 S 89 DM H M Deitel P J Deitel C How to Program Prentice Hall Englewood Cliffs 1994 926 S 74 DM Enthalt auch C Ausgepragtes Lehrbuch A R Feuer Das C Puzzle Buch Hanser Verlag M nchen 1991 196 S 38 DM Kleine feine Aufgaben zu C Themen O Hartwig C Referenz Handbuch Sybex D sseldorf 1987 432 S 54 DM vergriffen Nachschlagewerk f r K amp R C und ANSI C R House Beginning with C An Introduction to Professional Programming International Thomson Publishing Australien 1994 568 S 64 DM Ausgepr gter Lehrbuch Charakter ANS
328. rkennen Und es ist bequem die Entscheidung samt der Verantwortung dem Computer zuzuschieben Es gibt auch Aufgaben bei denen der Computer einen Menschen vielleicht ersetzen kann wenn nicht heute dann k nftig aber dennoch nicht soll Nehmen wir zwei extreme Beispiele Wenn ich die Telefon 14 1 ber den Umgang mit Computern nummer 0721 19429 anrufe antwortet ein Automat und teilt mir den Pegelstand des Rheins bei Karlsruhe mit Das ist in Ordnung denn ich will nur die Infor mation bekommen Ruft man dagegen die Telefonseelsorge an erwartet man da ein Mensch zuh rt wobei das Zuh ren wichtiger ist als das Ubermitteln einer Information So klar liegen die Verh ltnisse nicht immer Wie sieht es mit dem Computer als Lehrer aus Darf ein Computer Sch ler oder Studenten pr fen Soll ein Arzt eine Diagnose vom Computer stellen lassen Hat der Computer als Spielpartner einen Einflu auf die seelische Entwicklung seines Benutzers Ist ein Computer zuverl ssiger als ein Mensch Ist die K nstliche Intelligenz in al len F llen der Nat rlichen Dummheit berlegen Soll man die Entscheidung ber Krieg und Frieden dem Pr sidenten der USA berlassen oder besser seinem Com puter Und wenn der Pr sident zwar entscheidet sich aber auf die Ausk nfte seines Computers verlassen mu Je besser die Computer funktionieren desto mehr neigen wir dazu die Daten welt f r ma gebend zu halten und Abweichungen der realen Welt au erhalb
329. rlsruhe erh lt eine Zuse 223 die mit 2400 Transistoren arbeitet Ihr Hauptspeicher fa t 240 W rter zu 40 Bits Eine Gleitkommaoperation dauert 15 ms Au er Maschinensprache versteht sie ALGOL Weltweit arbeiten etwa 7300 Computer Die TH Karlsruhe erh lt eine SEL ER 56 die bis 1968 l uft An der Purdue University wird die erste Fakult t f r Informatik Department of Computer Science gegr ndet Texas Instruments und Fairchild nehmen die Serienproduktion von ICs Chips auf Weltweit arbeiten etwa 16 500 Computer Die Programmiersprache BASIC erscheint In den USA wird der Begriff Computer Science gepr gt IBM legt das Byte zu 8 Bits fest IBM 360 Ein Chip enth lt auf 0 5 cm 10 Transistoren Die TH Karlsruhe erh lt eine Electrologica X 8 die bis 1973 betrieben wird Gr ndung des Karlsruher Rechenzentrums Erster elektronischer Taschenrechner Texas Instruments Die Programmiersprache PASCAL kommt heraus Der Begriff Informatik wird nach franz sischem Vorbild gepr gt 1969 1970 1971 1972 1974 1975 1976 1978 1979 1981 1982 1983 1984 279 Die Firma Intel wird gegr ndet In Karlsruhe wird das Institut f r Informatik gegr ndet erster Direktor KARL NICKEL Im WS 1969 70 beginnt in Karlsruhe die Informatik als Vollstudium mit 91 Erstsemestern In den Bell Labs UNIX in Assembler auf einer DEC PDP 7 Beginn des ARPANET Projektes und damit der TCP IP Protokolle Die Universitat Karlsr
330. rsitat Karlsruhe entwickelt und macht wissenschaftlich technische Rechnungen sicherer und leichter Sie erganzt C und C um e die Arithmetik reeller und komplexer Zahlen und Intervalle mit mathematisch definierten Eigenschaften e dynamische Vektoren und Matrizen e Operatoren und Funktionen hoher bekannter Genauigkeit e berwachung der Rundung bei Ein und Ausgabe e Behandlung bestimmter Fehler Indexgrenzen e weitere Funktionen zur numerischen Analysis N heres ist in dem Buch von RUDI KLATTE nachzulesen 2 28 3 Memo C Objective C e Nichts 2 28 4 bung C Objective C 2 29 Exkurs ber Algorithmen Der Begriff Algorithmus benannt nach einem usbekischen Mathematiker des 9 Jahrhunderts kommt im vorliegenden Text selten vor taucht aber in fast allen Programmierb chern auf Ein betr chtlicher Teil der Informatik befa t sich damit Locker ausgedr ckt ist ein Algorithmus eine Vorschrift die mit endlich vie len Schritten zur L sung eines gegebenen Problems f hrt Ein Programm ist die Umsetzung eines Algorithmus in eine Programmiersprache Algorithmen werden mit Worten Formeln oder Grafiken dargestellt Ein Existenzbeweis ist in der Ma thematik schon ein Erfolg n der Technik brauchen wir einen L sungsweg einen Algorithmus Das klingt allt glich Das Rezept zum Backen einer Prinzregententorte oder die Beschreibung des Aufstiegs auf die Hochwilde in den tztaler Alpen dem Hausberg des Hochwildehau
331. rsuchen es kommt aber nichts Brauchbares heraus meist ein Laufzeitfehler memory fault Inkre mentieren bedeutet Erh hung um eine oder mehrere Einheiten des Typs auf den der Pointer verweist Dekrementieren entsprechend eine Verminderung Sie brau chen nicht zu ber cksichtigen um wieviele Bytes es geht das wei der Compiler aufgrund der Deklaration Diese Pointer Arithmetik erleichtert das Program mieren erheblich in typlosen Sprachen mu man Bytes z hlen Wir wollen anhand einiger Beispiele mit Arrays den Gebrauch von Pointern verdeutlichen und deklarieren ein eindimensionales Array von vier Ganzzahlen int al4 Der Name a f r sich allein ist der Pointer auf den Anfang des Arrays Es sei mit den Zahlen 4 7 1 und 2 besetzt Dann hat es folgenden Aufbau Pointer Speicher Variable Wert a zu a all 4 a l a 1 a l 7 a 2 via 2 a 1 a 3 a 3 a 3 2 Der Pfeil ist zu lesen als zeigt auf oder ist die Adresse von Der Wert des Pointers a die Adresse also unter der die Zahl 4 abgelegt ist ist irgendeine kaum verst ndliche und v llig belanglose Hexadezimalzahl die sich sogar w hrend des Programmablaufs ndern kann Der Wert der Variablen a 0 hingegen ist 4 und das aus Gr nden die im wirklichen Leben zu suchen sind Ein Zugriff auf das nicht deklarierte Element ol Al f hrt sp testens zur Laufzeit auf einen Fehler Bei der Deklaration des Arrays mu seine L nge bekannt sein
332. rter Low Noise Converter Local Network Protocol Lines Of Code Loop On Line Control Library Of Congress Information System USA Loss of Frame Laughing Out Loud Slang Local Operating Network Loss of Pointer Logikplan DIN 19 239 40 719 Line Oriented Editor Loss of Signal Line Printer Logical Partition Linear Predictive Coding Local Procedure Call Landespostdirektion Line Printer Daemon UNIX lines per inch Lotus Programming Language lines per minute Logical Page Number Licensed Program Product lines per second Low Power Schottky Semiconductor Line Printer Letter Quality Link Quality Monitoring Link Quality Report Longitudinal Redundancy Check Local Register Cache Limited Regular Expression Least Recently Loaded Lightweight Remote Procedure Call Least Recently Used Lowest Replaceable Unit Link State Algorithm Line Sharing Adapter l tfrei schraubfrei abisolierfrei Least Significant Bit Least Significant Character Least Significant Digit Large Scale Integration Local Session Identifier Low Smoke Zero Halogen Kabel 208 LT LU LUF LUG LUN LUNI LUT LUU LV LVM LWD MO LWL LWP LWX LZW G MA MAC MACP MACS MAE MAN MAP MAPI MAPICS MAP TOP MAR MARS MASM MAU MAVT MAZ MB MBONE Mbps MBR MBS MBX MCA MCB MCC MCCOI F Abk rzungen Link Trailer Logical Unit Lowest Usable Frequency Local User Group Logical Unit Number
333. rwenden f r besondere Aufgaben ein gemischtes Stellenwertsystem zur Basis 60 In China werden Z hlst bchen zum Rechnen verwendet In der Bergpredigt wird das Bin rsystem erw hnt Matth us 5 37 Die R mer schieben Rechensteinchen calculi Die Inder entwickeln das heute bliche reine Stellenwertsystem Die Null ist jedoch lter Etwa gleichzeitig entwicklen die Mayas in Mittelamerika ein Stellenwertsystem zur Basis 20 LEONARDO VON PISA genannt FIBONACCI setzt sich f r die Einf hrung des indisch arabischen Systems im Abendland ein Die europ ischen Rechenmeister verwenden sowohl die r mische wie die indisch arabische Schreibweise JOHN NAPIER erfindet die Rechenknochen Napier s Bones Erste mechanische Rechenmaschine mit Zehner bertragung und Multiplikation von WILHELM SCHICKARD T bingen Rechenmaschine von BLAISE PASCAL Paris f r kaufm nnische Rechnungen seines Vaters GOTTFRIED WILHELM LEIBNIZ baut eine mechanische Rechenmaschine f r die vier Grundrechenarten und befa t sich mit der dualen Darstellung von Zahlen In der Folgezeit technische Verbesserungen an vielen Stellen in Europa JOSEPH MARIE JACQUARD erfindet die Lochkarte und steuert Webst hle damit CHARLES BABBAGE stellt der Royal Astronomical Society eine programmierbare mechanische Rechenmaschine vor die jedoch keinen wirtschaftlichen Erfolg hat Er denkt auch an das Spielen von Schach oder Tic tac toe auf Maschinen SAMUEL MORSE entwickelt e
334. s die nichts anderes als C Programme sind Der Mechanismus ist stets derselbe Die Argumente getrennt durch Spaces oder hnliches werden in ein Array of Strings mit dem Namen argv Argu mentvektor gestellt Gleichzeitig z hlt ein Argumentz hler arge die Anzahl 74 2 Programmieren in C der bergebenen Argumente wobei der Funktionsname selbst das erste Argument Index 0 ist Bei einem Programmaufruf ohne Argumente steht also der Pro grammname in argv 0 der Argumentz hler argc hat den Wert 1 Die Umwand lung der Argumente vom Typ String in den gew nschten Typ besorgt die Funktion sscanf 3 Der Anfang eines Hauptprogrammes mit Kommandozeilenargumenten sieht folgenderma en aus int main int argc char argv char a int x if arge lt 3 puts Zuwenige Parameter exit 1 sscanf argvlil Ac amp a sscanf argvl2 Ad amp x Programm 2 31 C Programm das Argumente aus der Kommandozeile ber nimmt Das erste Kommandozeilenargument nach dem Kommando selbst wird als Zeichen verarbeitet das zweite als ganze Zahl Etwaige weitere Argumente fallen unter den Tisch Die Funktion main ist immer vom Type int Sie kann Argumente berneh men braucht es aber nicht Infolgedessen sind folgende Deklarationen g ltig int main int main void int main int argc char argv und alle anderen falsch Die beiden ersten sind in ihrer Bedeutung gleich die dritte gilt bei Argumenten in d
335. s gethostname ermittelt Namen des Systems getitimer setzt oder liest Intervall Uhr getpid liest Prozess ID gettimeofday ermittelt Zeit getuid liest User ID des aufrufenden Prozesses ioctl 1 O Steuerung kill schickt Signal an einen Prozess link linkt ein File 147 148 lockf lseek mkdir mknod mount msgctl nice open pause pipe prealloc profil read readlink rename rmdir rtprio semctl setgrp setuid signal stat statfs symlink sync szsconf time times truncate umask unlink ustat utime wait write C UNIX Systemaufrufe setzt Semaphore und Record Sperren bewegt Schreiblesezeiger in einem File erzeugt Verzeichnis erzeugt File mountet File System Interprozess Kommunikation andert die Prioritat eines Prozesses ffnet File zum Lesen oder Schreiben suspendiert Prozess bis zum Empfang eines Signals erzeugt eine Pipe reserviert Arbeitsspeicher ermittelt Zeiten bei der Ausf hrung eines Programmes liest aus einem File liest symbolisches Link ndert Filenamen l scht Verzeichnis ndert Echtzeit Priorit t Semaphore setzt Gruppen Zugriffsrechte eines Prozesses setzt User ID eines Prozesses legt fest was auf ein Signal hin zu tun ist liest die Inode eines Files liest Werte des File Systems erzeugt symbolischen Link schreibt Puffer auf Platte ermittelt Systemwerte ermittelt die Systemzeit ermittelt Zeitverbrauch eines Prozesses schneidet File ab setzt oder ermittelt Filezugriffsmaske l
336. satz angegeben wird nur der Name als definiert angese hen f r ifdef H ufig e undefine l scht die Definition eines Namens e error f hrt zu einer Fehlermeldung des Pr prozessors e include zieht das angegebene File herein H ufig e if else elif endif falls Bedingung zutrifft werden die nachfolgenden Pr prozessor Anweisungen ausgef hrt e ifdef ifndef falls der angegebene Name definiert bzw nicht definiert ist werden die nachfolgenden Pr prozessor Anweisungen ausgef hrt e line f hrt bei Fehlermeldungen zu einem Sprung auf die angegebenen Zei lennummer e pragma veranla t den Pr prozessor zu einer systemabh ngigen Handlung E File Kennungen Unter UNIX ist es nicht gebr uchlich den Typ eines Files durch ein Anh ngsel Kennung Erweiterung Extension an seinen Namen zu kennzeichnen aber es ist erlaubt Die L nge der Kennung ist beliebig Folgende Kennungen a ASCII Text b bin res File wechselnd oder unbekannt sind verbreitet bnd bsv btm bw oe me e E EE EE E oo Y e To NT e TTT Tempor res File UNIX Archiv mit ar 1 erzeugt Adapter Description File IBM AutoCAD DXF Add In Utility Lotus Adobe Font Metrics Adobe Atari ST Graphics Format ANSI Grafik Application RBase NeXT Archiv mit arc oder pkpak komprimiert Archiv mit komprimiert ASCH Textfile Assembler Quelle Sound File Sun NeXT TeX Hilfsfile mit Bez gen Microsoft RIFF Intel
337. scht File liest Werte des File Systems setzt Zeitstempel eines Files wartet auf Ende eines Kindprozesses schreibt in ein File Die Aufz hlung kann durch weitere Systemaufrufe des jeweiligen Lieferanten des Betriebssystems z B Hewlett Packard erg nzt werden Diese erleichtern das Programmieren verschlechtern aber die Portabilit t Zu den meisten Systemauf rufen mit get gibt es ein Gegenst ck set das in einigen F llen dem Super user vorbehalten ist D C Lexikon DI Schl sselw rter Laut ANSI verwendet C folgende Schl sselw rter Wortsymbole keywords e Deklaratoren auto Default Speicherklasse char Zeichentyp const Typattribut ANSI C double Typ Gleitkommazahl doppelter Genauigkeit enum Aufz hlungstyp extern Speicherklasse float Typ Gleitkommazahl einfacher Genauigkeit int Typ Ganzzahl einfacher L nge long Typ Ganzzahl doppelter L nge register Speicherklasse Registervariable short Typ Ganzzahl halber Lange signed Typzusatz zu Ganzzahl oder Zeichen static Speicherklasse struct Strukturtyp typedef Definition eines benutzereigenen Typs union Typ Union unsigned Typzusatz zu Ganzzahl oder Zeichen void leerer Typ volatile Typattribut ANSI C e Schleifen und Bedingungen Kontrollstrukturen break Verlassen einer Schleife case Fall einer Auswahl switch continue R cksprung vor eine Schleife default Default Fall einer Auswahl switch do Beginn einer do Schleife
338. sel be Computer kann sich wie eine Schreibmaschine eine Rechenmaschine eine Zei chenmaschine ein Telefon Anrufbeantworter ein Schachspieler oder wie ein Lexi kon verhalten je nach Programm Der Verwandlungskunst sind nat rlich Grenzen Die fr heste uns bekannte Erw hnung des Begriffes findet sich in der Firmenzeit schrift SEG Nachrichten Technische Mitteilungen der Standard Elektrik Gruppe 1957 Nr 4 S 171 KARL STEINBUCH Informatik Automatische Informationsverarbeitung 1 1 Was macht ein Computer 3 gesetzt Das Wort Programm ist lateinisch griechischen Ursprungs und bezeichnet ein ffentliches Schriftst ck wie ein Theater oder Parteiprogramm Im Zusam menhang mit Computern ist an ein Arbeitsprogramm zu denken Die englische Schreibweise ist programme Computer ziehen jedoch das amerikanische program vor Die Gallier reden h ufiger von einem logiciel als von einem programme wo bei logiciel das gesamte zu einer Anwendung geh rende Programmpaket meint bestehend aus mehreren Programmen samt Dokumentation Ebenso wie man die Gr e von Massen Kr ften oder L ngen mi t werden auch Informationsmengen gemessen Nun liegen Informationen in unterschiedlicher Form vor Sie lassen sich jedoch alle auf Folgen von zwei Zeichen zur ckf hren die mit 0 und 1 oder H high und L low bezeichnet werden Sie d rfen auch Anna und Otto dazu sagen es m ssen nur zwei verschiedene Zeichen sein Diese einfache Darstellung wird bin
339. ses der Sektion Karlsruhe des Deutschen Alpenvereins sind demnach Algorithmen Einige Anforderungen an Algorithmen sind Dr Oetker Backen macht Freude Ceres Verlag Bielefeld Die Ausf hrung dieses Algorithmus l t sich teilweise parallelisieren 21H KLIER Alpenvereinsf hrer tztaler Alpen Bergverlag Rudolf Rother M nchen Der Algorithmus mu sequentiell abgeschwitzt werden 130 2 Programmieren in C e Korrektheit Das klingt selbstverst ndlich ist aber meist schwierig zu be weisen Und Korrektheit in einem Einzelfall besagt gar nichts Umgekehrt beweist bereits ein Fehler die Inkorrektheit e Eindeutigkeit Das stellt Anforderungen an die Darstellungsweise die Sprache denken Sie an eine technische Zeichnung oder an Klaviernoten Verschiedene Ausf hrungswege sind zul ssig bei gleichen Eingaben mu das gleiche Ergebnis herauskommen e Endlichkeit Die Beschreibung des Algorithmus mu eine endliche L nge haben sonst k nnte man ihn endlichen Wesen nicht mitteilen Er mu fer ner eine endliche Ausf hrungszeit haben man m chte seine Fr chte ja noch zu Lebzeiten ernten Er darf zur Ausf hrung nur eine endliche Menge von Betriebsmitteln belegen e Allgemeinheit 3 x 4 12 ist kein Algorithmus wohl aber die Vorschrift wie man die Multiplikation auf die Addition zur ckf hrt Man kann die Anforderungen herabschrauben und kommt dabei zu reizvollen Fra gestellungen aber f r den Anfang gilt obiges Eine vierte
340. sorgung niversal Terminal Time niversal Time Coordinated niversal Text Interchange ser Trailer Label nified TLB nshielded Twisted Pair se The Source Luke Slang NIX to UNIX Copy Program UNIX Protokoll nified User Level Protocol ser to Usewr Signalling nknown UNIX User J Random Hacker ser Volume Label CC CHIC Cl CH CC CC CC CC CC CC CCITT Norm f r eine serielle Schnittstelle Voice Data Volladdierer Virtual Address Value Added Business Value Added Driver Disaster Dealer Value Added Disk Driver Value Added Data Service VESA Advanced Feature Connector Voice Application Language Virtual Access Method Verband der Anbieter von Mobilfunkdiensten Bonn Value Added Network Value Added Network Services Value Added Process Value Added Reseller Retailer Value Added Service Value Added Services Network Communication Vector and Array Syntax Translator Virtual Address Extension DEC Variable Block VisualBASIC for Applications Very Big File System Vertical Blanking Vermittelndes Vermitteltes Vorl ufer Breitbandnetz Telekom Very High Backbone Network Service Variable Bit Rate Virtual Circuit Channel Connection Virtual Channel Connection Virtual Communications Driver Virtual Channel Identifier 240 VCL VCO VCPI VCR VCU VD VDD VDDM VDE VDEW VDI VDM VDM SL VDN VDS VDT VDU VE VEMM VESA VEX VFD VFIP VFO VFPI VFS VFsDx VG VGA VGC VHDL VHDSL VHE VHF VHS V
341. st aufrufen Experimentelles Programm mit Selbstaufruf von main include lt stdio h gt int main puts Selbstaufruf von main main return 13 Programm 2 36 C Programm in dem main sich selbst aufruft Das Programm wird von lint 1 nicht beanstandet einwandfrei compiliert und l uft bis der Speicher platzt da die Rekursionstiefe nicht begrenzt ist Ab bruch mit break Allerdings ist ein Selbstaufruf von main ungebr uchlich 2 18 8 Assemblerroutinen Auf die Assemblerprogrammierung wurde in Abschnitt 2 2 Programmiersprachen bereits eingegangen Da das Schreiben von Programmen in Assembler m hsam ist und die Programme nicht portierbar sind l t man nach M glichkeit die Finger davon Es kann allerdings Sinn machen einfache kurze Funktionen auf Assembler umzustellen Einmal kann man so unmittelbar auf die Hardware zugreifen vor allem in Anwendungen zum Messen und Regeln zum anderen zwecks Beschleuni gung oft wiederholter Funktionen Im folgenden wird ein Beispiel mit Microsoft Quick C und Quick Assembler f r den IBM PC vorgestellt Diese Kombination bietet den einfachsten Einstieg in die Assemblerprogrammierung 82 2 Programmieren in C 2 18 9 Memo Funktionen e Nichts 2 18 10 bung Funktionen 2 19 Funktions Bibliotheken 2 19 1 Zweck und Aufbau Eine Funktion kann auf drei Wegen mit einem C Hauptprogramm main verbun den werden e Die Funktion steht im selben File wie main
342. ster Co USA Network Computing System National Center for Supercomputing Applications USA National Computer Computing Security Center Network Communications Services Interface National Computer System Laboratory Nat rliche Dummheit Gegensatz zu KI Norddeutsche Datenautobahn Network Device Driver Interface Specification Microsoft Network Database Language Normal Disconnected Mode Numeric Data Processor Non disruptive Path Switching Netware Directory Services Network Design Tool Network Element New England Academic and Research Network National Electric Code Kabel Nippon Electric Company National Education Computing Conference USA Networked Educational On line System Novell Embedded Systems Technology network Internet Domain Netzverwaltung Norme Europeenne de Telecommunication NetBIOS Extended User Interface IBM Network Basic Input and Output System IBM Network extensible Window System Near End Cross Talk 214 NFAR NFF NFS NFSS NGM NGMHS NGO NIC NICAD NICE NICK NID NIDL NIH NIHCL NIIT NIMH NIMP NIPS NIR NIS NISA NISO NIST NITC NIU NJE NLE NLM NLQ NLS NLSP NLUUG GE E E Skelett MOS E E GE SE Le Le Z Z zz zz zz Z z F Abk rzungen Normalform Datenbank Network File Access Routine No Fault Found Network File System Sun New Font Selection Scheme Netware Global Messaging NetWare Global Message Handling System Non Governmenta
343. t Inkrement und Dekrement sind Abk rzungen Der Operator kann vor oder nach dem Operanden stehen Der Ausdruck i gibt den Wert von i zur ck und erh ht ihn dann um eins Der Ausdruck i erh ht den Wert von i um eins und gibt dann den erh hten Wert zur ck F r das Dekrement gilt das Entsprechende Der compilierte Code ist effektiver als der des quivalenten Ausdrucks Ferner gibt es noch eine abgek rzte Schreibweise f r h ufig wiederkehrende Ope rationen Der Ausdruck y x weist die Summe der beiden Operanden dem linken Operanden zu und ist somit gleichbedeutend mit dem Ausdruck y y x Entsprechendes gilt f r die anderen Abk rzungen Die ausf hrliche Schreibweise bleibt weiterhin erlaubt und wird nur seltener verwendet Die Division f r ganze Zahlen ist eine andere Operation als f r Gleitkom mazahlen die brigen Operationen auch nur f llt es da nicht auf In manchen Programmiersprachen werden folgerichtig unterschiedliche Operatoren verwendet in C nicht Der Compiler entnimmt aus dem Zusammenhang welche Division ge meint ist Diese Mehrfachverwendung eines Operators wird berladung genannt und spielt in objektorientierten Sprachen wie C eine Rolle In FORTRAN das den komplexen Zahlentyp kennt gelten die arithmetischen Operatoren auch f r diesen Vorstellbar ist ebenso eine Addition Verkettung von Strings 2 16 Operationen 47 2 16 4 Logische Operationen Die logischen Operationen sind e bi
344. t Ein Programm soll robust sein das hei t auf Fehler der Eingabe oder der Peripherie vern nftig reagieren nicht mit einem Absturz Das Schlimmste ist wenn ein Programm trotz eines Fehlers ein scheinbar richtiges Ergebnis ausgibt Die Fehlerbehandlung macht oft den gr eren Teil eines Programmes aus und wird h ufig vernachl ssigt Die Sprache C erleichtert diese Aufgabe Ein Programm ist niemals fertig und soll daher leicht zu ndern sein Die Entdeckung von Fehlern die Ber cksichtigung neuer W nsche die Entwicklung der Hardware Bestrebungen zur Standardisierung und Lernvorg nge der Program mierer f hren dazu da Programme immer wieder berarbeitet werden Kleinere Korrekturen werden durch Patches behoben w rtlich Flicken Das sind Erg nzun gen zum Code die nicht gleich eine neue Version rechtfertigen F r manche Feh ler lassen sich auch ohne nderung des Codes Umgehungen finden sogenannte Workarounds Nach umfangreichen nderungen m glichst Verbesserungen er scheint eine neue Version des Programmes Ein Programm von dem nicht einmal j hrlich eine berarbeitung erscheint ist tot Jede Woche eine neue Version ist nat rlich auch keine Empfehlung Leichte nderbarkeit beruht auf bersichtlich keit ausf hrlicher Dokumentation und Vermeidung von Hardwareabh ngigkeiten 22 2 Programmieren in C Die bersichtlichkeit wiederum erreicht man durch eine zweckm ige Struktu rierung verst ndliche Namenswahl und
345. t Mail Extensions Part One 1993 The Tao of IETF A Guide for New Attendees of the Internet Engineering Task Force FYI 17 1993 Domain Name System Structure and Delegation 1994 H Karlsruher Test Nicht jedermann eignet sich f r so schwierige Dinge wie die elektronische Da tenverarbeitung Um Ihnen die Entscheidung zu erleichtern ob Sie in die EDV einsteigen oder sich besser angenehmeren Dingen widmen sollen haben wir ganz besonders f r Sie einen Test entwickelt Woran denken Sie bei Bit Bier aus der Eifel 1 Punkt Hundefutter 0 Punkte kleinste Dateneinheit 2 Punkte Festplatte Was zum Essen 1 Schallplatte 0 Massenspeicher 2 Menu Was zum Essen 1 Dialogtechnik 2 mittelalterlicher Tanz 0 CPU politische Partei 0 Zentralprozessor 2 Carnevalsverein 0 Linker Linksh nder 0 Anh nger einer Linkspartei 1 Programm zum Binden von Modulen 2 IBM Ich Bin M de 1 International Business Machines 2 International Brotherhood of Magicians 1 Schnittstelle Verletzung 1 Verbindungsstelle zweier EDV Ger te 2 Kreuzungspunkt zweier Bahngleise 0 248 Slot Fortran Mainframe PC Puffer Software Port Strichcode Chip Pointer Page 249 Steckerleiste im Computer 2 einarmiger Bandit 1 niederdeutsch f r Kamin 0 starker Lebertran 0 amerikanisches Fort 0 Programmiersprache 2 Frachtkahn auf dem Main 0 Schiff mit dem FRIDTJOF NANSEN zum Nordpol
346. tart Of Message System Object Model IBM Synchronous Optical Network Soziales Netz Telecommunikation Standard Operating Procedure Silicon On Sapphire Sophisticated Operating System Simple Offline Usenet Packet Space Stack Pointer System Program Service Provider Segment Priority Software Publishers Association Service Point Application Standards Promotion and Application Group OSI Scalable Processor Architecture Sub Process Control Small Peripheral Controller Statistical Process Control Standard Page Description Language Single Pole Double Throw Relay Synchronous Payload Envelope Systems PerformanceEvaluation Corporation Shortest Path First System Programming Facility Service Protocol Gateway Service Provider Interface 232 SPICE SPL SPLD SPM SPMD SPOOL SPP SPS SPT SPV SPX SQ SQE SQL SQuID SR SRAM SRB SRC SRD SREJ SRL SRM SRMA SRO SRPI SRQ SRR SRS SRT SRUC SS SSA SSB SSBA SSCC SSCP SSD SSDA SSDC SSEC SSGA SSI S SIMM SSL SSMA SSO F Abk rzungen Simulation Program with Integrated Circuit Emphasis Spooler Spooling Simple PLD System Performance Monitor IBM Single Program Multiple Data Simultaneous Peripherals Operation On Line Sequencial Packet Protocol Scalable Parallel Processing Speicherprogrammierte Steuerung Session Presentation Services Standby Power System Sectors Per Track Semipermanente Verbindung Sequenced Packet Exchange Novell
347. tatus Word Short Wave Listener Short Wave Fading Super Wozniak Integrated Machine Subscriber Wireless Network Gateway Unextended Numbering Set Mode Symbolic Link Format Microsoft 234 SYN SYSOP TA TAB TAC TAD TAE TAI TAM TAN TANJ TANSTAAFL TAP TAPI TAPR TAR TAXI TBETSI TBF TC TCA TCB TCCC TCE TCF TCL TCM TCNS TCO TCOS TCP TCP IP TCSEC TCU TCW TD T DAB TDCC TDD TDI TDM TDMA TDR TDRS TDSR F Abk rzungen Synchronous Idle System Operator Terminaladapter Informationstechnische Anschlu dose Tabulator Terminal Access Controller Telephone Answering Device Telekommunikations Anschlu Einheit Temps Atomique International Telephone Answering Machine Telefon Anrufbeantworter Modem Transaction Number Total Area Network There Ain t No Justice Slang There Ain t No Such Things As A Free Lunch Slang Terminal Access Point Telephony Application Programming Interface Microsoft Tucson Amateur Packet Radio Group Tape Archive Format Transparent Asynchronous Transceiver Interface Technischer Beirat f r Normungsfragen des ETSI Technisch betriebliche Funktionsbedingungen Technical Committee Transmission Control Convergence Tightly Coupled Architecture Trusted Computing Base Trouble Came Back IEEE Technical Committee on Computer Communications Transmission Control Element Transparent Computing Facility Tool Command Language Trellis Code Modulation Time Compr
348. tc string stdout MI break default va_end pvar return 1 unbekannter Typ D format wo 2 18 Funktionen 77 Funktion zur Ausgabe der dezimalen Ganzzahl void int_print unsigned long number int signum int field int 1 char table 21 long radix 10 for i 0 i lt 21 i table i 7 Umwandlung Zahl nach ASCII Zeichen for i 0 i lt 20 i table i 0123456789 number radix number radix if number 0 break Vorzeichen if signum table i e Ausgabe if field 0 amp amp field lt 20 i field 1 while i gt 0 fputc table i stdout Ende Programm 2 32 C Funktion mit wechselnder Anzahl von Argumenten Nach dem include File varargs h folgt in gewohnter Weise die Funktion hier printi Ihre Argumentenliste hei t va_alist und ist vom Typ va_dcl ohne Semikolon Innerhalb der Funktion brauchen wir einen Pointer pvar auf die Argu mente dieser ist vom Typ va_list nicht zu verwechseln mit der Argumentenliste va_alist Die weiteren Variablen sind unverbindlich Zu Beginn der Arbeit mu das Makro va_start pvar aufgerufen werden Es initialisiert den Pointer pvar mit dem Anfang der Argumentenliste Am Ende der Arbeit mu entsprechend mit dem Makro va_end pvar aufger umt werden Das Makro va_arg pvar type gibt das Argument zur ck auf das der Poin ter pvar zeigt un
349. tchar liest Zeichen von stdin gets liest String von Filepointer printf schreibt formatiert nach stdout putc schreibt Zeichen nach Filepointer putchar schreibt Zeichen nach stdout puts schreibt String nach Filepointer rewind setzt Lesezeiger auf Fileanfang scanf liest formatiert von stdin setbuf ordnet einem Filepointer einen Puffer zu setvbuf ordnet einem Filepointer einen Puffer zu sprintf schreibt formatiert in einen String sscanf liest formatiert aus einem String tempnam erzeugt einen tempor ren Filenamen tmpfile erzeugt ein tempor res File ungetc schreibt letztes gelesenes Zeichen zur ck vfprintf schreibt formatiert aus einer Argumentenliste vprintf schreibt formatiert aus einer Argumentenliste vsprintf schreibt formatiert aus einer Argumentenlsite e Mathematik acos arcus cosinus asin arcus sinus atan arcus tangens atan2 arcus tangens erweiterter Bereich ceil kleinste Ganzzahl cos cosinus cosh cosinus hyperbolicus exp Exponentialfunktion fabs Absolutwert Betrag floor gr te Ganzzahl fmod Divisionsrest frexp teilt Gleitkommazahl auf ldexp teilt Gleitkommazahl auf log Logarithmus naturalis D 2 Standardfunktionen 153 10g10 dekadischer Logarithmus modf teilt Gleitkommazahl auf pow allgemeine Potenz sin sinus sinh sinus hyperbolicus sqrt positive Quadratwurzel tan tangens tanh tangens hyperbolicus e Speicherzuweisung calloc allokiert Speicher f r
350. ted Storage Management Access Stack Node Abstract Syntax Notation One ISO CCITT Active sideband Optimum AppleTalk Session Protocol Association of Shareware Professionals Advanced Signal Processor Adaptive Spectral Perceptual Entropy Encoding Advanced SCSI Programming Interface Advanced Signal Processing System Automatic Send Receive Ada Software Repository Automatic Speech Recognition Asynchron Synchron Umsetzer Atomic Time Advanced Technology Attention Hayes AT Bus Attachment AT Attachment Packet Interface Address Translation Cache Asynchronous Time Division Multiplexing Asynchronous Time Division Multiple Access Automated Automatic Testing Equipment Automatic Track Finding Ask The Friendly System Manager Slang A Tools Integration Standard Andrew Toolkit Asynchronous Transfer Mode Adobe Typeface Manager ATM Address Resolution Protocol ATM Crossconnect AppleTalk Transaction Protocol Automatic Terminal Recognition Apple Terminal Services Administrative Terminal System At The Same Time Slang American Telephone and Telegraph At This Time Slang Advanced Television Test Center USA Advanced Amateur Television Administrative Arithmetic Access Unit Automated Automatic Data Input Terminal AUE AUGE AUI AUP AUTEX AUX AVA AVC AVCD AVerzTxTtx AVG AVI AVIA AVK AVL AVON AVSS AWADO AWD AWG AWL AWS AX AXE AZ BAC BAD BAK BAL BAM BAPT BARRnet BARTS BAS
351. ter Networks Digital Press Bedford 1990 653 S Ins einzelne gehende Informationen ber zahlreiche Netze J S Quarterman The Matrix Computer Networks and Conferencing Systems Worldwide Digital Press Bedford 1990 746 S 80 DM Praxisnahe Einf hrung Netzliste nicht mehr aktuell D Raggett HTML Hypertext Markup Language ftp ciw pub docs net www htmlplus ps gz 1993 34 S Postscript Vorschlag fiir den Hypertext RFC M T Rose The Open Book Prentice Hall Englewood Cliffs 1990 682 S 64 US OSI Protokolle Vergleich mit TCP IP M Scheller u a Internet Werkzeuge und Dienste Springer Berlin 1994 280 S 49 DM A S Tanenbaum Computer Networks Prentice Hall London 1988 658 S 88 DM Einf hrung in Netze mit Schwerpunkt auf dem OSI Modell X Window System Motif Newsgruppen comp windows x fr comp windows x11 OSF Motif Users s Guide OSF Motif Programmer s Guide OSF Motif Programmer s Reference Prentice Hall Englewood Cliffs 1990 Beschreibung der OSF Motif Benutzeroberfl che K Gottheil u a X und Motif Springer Berlin 1992 694 S 98 DM O Jones Introduction to the X Window System Prentice Hall Englewood Cliffs 1989 511 S 89 DM Programmieren f r die X Window Software Umgebung A Nye XLib Programming Manual O Reilly Sebastopol 1990 635 5 90 DM Einf hrung in das XWS und den Gebrauch der XLib V Quercia T O Reilly X Window System Users Guide O Reill
352. ter f r die heutigen Pro grammiersprachen beziehungsweise die heutigen Fassungen der lteren Sprachen Viele Konzepte gehen auf ALGOL zur ck No programmers write in BASIC after the age of 12 Englisch ist nicht ein BASIC Dialekt auch wenn es sich vor allem aus dem Mund von nicht britischen Subjekten so anh rt Es geht vielmehr auf angels chsische und nordfranz sische Wurzeln aus der Zeit vor 1964 zur ck 11964 bot keine andere Programmiersprache nennenswerte M glichkeiten zur Verar beitung von Strings 2 2 Imperative Programmiersprachen 19 Ende der sechziger Jahre hatte sich das Programmieren vom Kunsthandwerk zur Wissenschaft entwickelt und NIKLAUS WIRTH von der ETH Z rich brachte PASCAL heraus um seinen Studenten einen anst ndigen Programmierstil an zugew hnen PASCAL ist eine strenge und logisch aufgebaute Sprache daher gut zum Lernen geeignet Turbo PASCAL von Borland ist auf PCs weit verbreitet Ein PASCAL Beispiel findet sich in Abschnitt 2 18 3 Parameter bergabe Eine Weiterentwicklung von PASCAL ist MODULA Die Sprache C wurde von BRIAN KERNIGHAN DENNIS RITCHIE und KEN THOMPSON entwickelt um das Betriebssystem UNIX damit zu schreiben Lange Zeit hindurch gab das Buch der beiden Erstgenannten den Standard vor Von 1983 bis 1989 hat das American National Standards Institute ANSI an einem Standard f r C gearbeitet dem alle neueren Compiler folgen ANSI C ist im wesentlichen eine bermenge von K amp R
353. terbewu ten 0 Unterprogramm 2 Vitamin 1 Programmiersprache 2 K rperteil 0 tugendhaft 0 die Augen betreffend 0 nicht wirklich vorhanden scheinbar 2 ASCII Zeichen 2 B roger t 1 Affenart in S damerika 0 Eisenbahner Spar und Creditverein 0 Eishockeyclub 0 escape Fluchtsymbol 2 Karlsruher Brauerei 0 Fernsehsendung 1 Bildschirmger t Uberwachungsprogramm 2 Tiitensuppe 0 Freund von Asterix und Obelix 0 hervorragendes Betriebssystem 2 Computerzubeh r 2 m nnlicher K rperteil 0 Hebel am Spielautomat 0 kleines S ugetier 1 Computerzubeh r 2 junge Dame 1 russisches Heiligenbild 0 Sinnbild 2 Kamerafabrik 0 franz sischer Mathematiker 1 Ma einheit f r Druck 1 Programmiersprache 2 IEC Bus Wysiwig Register Record HP Kermit Ethernet Algorithmus File Router 253 Schnittstelle 2 Intercity Bus 0 Internationale Bus Gesellschaft 0 englisch fiir Wolpertinger 0 franz sisch f r Elmentritschen 0 what you see is what you get 2 was in Flensburg 1 was an der Orgel 1 Speicher 2 was im Sport 1 englisch fiir Blockflote 0 Datensatz 2 High Price 0 Hewlett Packard 2 Horse Power 1 Klebstoff 0 Frosch aus der Muppet Show 1 File bertragungs Protokoll 2 Baustoff Asbestzement 0 Local Area Network 2 Student der ETH Z rich 0 berm iger Genu geistiger Getr nke 0
354. tern hnlich ergehen wie mit der Elek trizit t wir werden uns daran gew hnen Und wie man f r Stromunterbrechungen eine Petroleumlampe und einen Campingkocher bereith lt sollte man f r Compu terausf lle etwas Papier einen Bleistift und ein gutes zum Umbl ttern geeignetes Buch zur cklegen 16Nachricht in den Badischen Neuesten Nachrichten vom 28 Dez 1993 Computer ersetzt Hausbesuch Telemedizin wird in Amerika erprobt Brevity is the soul of wit Shakespeare Hamlet 2 Programmieren in C Dieses Kapitel erkl rt die Kunst des Programmierens anhand der Sprache C die sich besonders gut mit UNIX Systemen vertr gt Grundkenntnisse im Pro grammieren in einer anderen Sprache BASIC FORTRAN PASCAL COBOL sind hilfreich 2 1 Sprachenfamilien Hat man eine Aufgabe ein Problem zu l sen so kann man drei Abschnitte unter scheiden e Aufgabenstellung e Losungsweg e Ergebnis Das Ergebnis ist nicht bekannt sonst w re die Aufgabe bereits gel st Die Aufga benstellung und erforderlichenfalls einen L sungsweg sollten wir kennen Mithilfe der gebr uchlichen Programmiersprachen von BASIC bis C be schreiben wir den L sungsweg in einer f r den Computer geeigneten Form Diese Programmiersprachen werden als algorithmische oder prozedurale Program miersprachen im weiteren Sinn bezeichnet weil die Programme aus Prozeduren bestehen die Anweisungen an den Computer enthalten lateinisch procedere vorangehen Diese
355. tes Netz Verband Privater Rundfunk und Telekommunikation Video Programm Programmier System Verbindungsprogrammierte Steuerung Virtual Printing Technology Virtual Route Virtual Reality Voltage Regulator Vollst ndiger Regul rer Ausdruck Video Random Access Memory Virtual Route Control Vertical Redundancy Check Virtual Route Control Block Virtual Route Identifier Virtual Reality Modeling Language Virtual Route Number Virtual Realtime Object Oriented Memory Management Virtual Route Pacing Request Virtual Route Pacing Response Voice Response Unit Virtual Storage Virtual Storage Access 242 VSAM VSAT VSE VSF VSI VSK VSL VSM VSOS VSt VSX VT VTAM VTCO VIM VTOC VTP VTS VUE VUI VUIT VUP VWM VXE VzFdpbDK W3 WABI WACK WACS WAD WAENA WAIS WAITS WAM WAMKSAM WAMPUM WAN WAP WARC WATS WATTC WBC WC WCS WD F Abk rzungen Virtual Storage Access Method Very Small Aperture Terminal Virtual Storage Extended Vertical Scanning Frequency Verband der Software Industrie Deutschland e V Video Sender Kennung Virtual Socket Library Virtual Storage Management Virtual Storage Operating System Vermittlungsstelle Verification Suite for X Open Vertical Tabulator Video Terminal Virtual Terminal Visualization Tool Virtual Terminal Telecommunications Access Method Virtual Terminal Control Object Verband der Telekommunikationsnetz und Mehrwertdiensteanbieter K ln Volum
356. tf Bitte Gleitkomma Zahl eingeben n if xread amp y float printf Die Eingabe war f n y else puts Fehler von xread error 1 Stringeingabe printf Bitte String eingeben n if xread z char d printf Die Eingabe war s n z else puts Fehler von xread error 1 exit error Funktion xread Parameter Variable define MAXLAENGE 200 include lt string h gt int atoi long atol double atof int xread p typ void p char typ char input MAXLAENGE int rwert 0 als Pointer C Typ als String max Laenge der Eingabe Standard C Bibliothek Standard C Bibliothek Standard C Bibliothek 2 21 C Programme 103 if gets input NULL switch typ case c Typ char strcpy char p input break case i Typ int case a Typ short int p atoi input break case l Typ long long p atol input break case d Typ double case f Typ float double p atof input break default puts xread Unbekannter Typ rwert 1 D D else puts xread Fehler bei Eingabe rwert 2 D return wert Programm 2 48 C Programm mit Pointer auf void Die Funktion xread braucht als erstes Argument einen Pointer aus dem selben Grund wie scanf 3 call by reference auf die
357. tic 43 44 Speicherplatz C 31 sperren s quoten Sprung C 57 Standard C Bibliothek 83 Standard Mathematik Bibliothek 85 290 Standardbibliothek 82 87 Stapeldatei s Shellscript Stapelverarbeitung s Batch Betrieb static C 43 statische Bindung 21 stdio h 83 89 STEINBUCH K 2 stop 9 String 35 38 string h 84 Stringfunktion 84 STROUSTRUP B 19 struct C 36 Struktur s Programmstruktur Struktur C s Typ Strukturverweis C 50 Subroutine 11 switch C 54 Symbol Fenster s Icon Symbol Wort s Schl sselwort symbolischer Debugger s Debugger symbolischer Link seeLink 0 Synopsis 11 Syntax Diagramm 28 System 6 System call s Systemaufruf System primitive s Systemaufruf System dyadisches s Dualsystem System Manager 9 Systemanfrage s Prompt Systemaufruf 83 147 Task s Prozess Tastatur 4 tesh 1 s Shell Term s Ausdruck Terminal 4 terminfo 4 97 THOMPSON K 19 tiny Speichermodell 88 Tool s Werkzeug Top down Entwurf 24 Treatment s Schrift Trennzeichen C 27 TURING A 276 Typ 31 32 alphanumerischer T 33 Array 35 Sach und Namensverzeichnis Attribut 32 Aufz hlungstyp 37 Bitfeld 36 120 boolescher T 34 char 33 character 120 const 32 double 33 einfacher Typ 32 erkl ren cdecl 32 Feld s Array float 33 ganze Zahl 33 Gleitkommazahl 33 int 33 leerer T s void long 33 long double 33 Pointer 37 Qualifier s Attribut Record s Struktur short 33
358. tion Base Media Interface Connector Macro Interpretative Command Multimedia Interactive Control Message Integrity Check Multimedia Integrated Conferencing for Europe Magnetic Ink Character Recognition Message Identifier Musical Instrument Digital Interface Management Information Format Microsoft IBM Intel military Internet Domain Milit r in den USA 210 MIL MILNET MIM MIMD MIME MIP MIPS MIS MISD MIT MIX MJ M JPEG ML MLI MLP io cn LT Sees QQ OC EE E E E E E E E E E E 525255 Z O MOD MODEM MOHLL MOLP MoM MOP MoPL MOS MOSFET MOSIX MOV MP MPA F Abk rzungen amerikanische Milit rnorm Machine Interface Layer Military Network USA Metall Isolator Metall Bildschirmtechnik Multiple Instruction Multiple Data Multipurpose Internet Mail Extensions Maximum Integration Phone Million Instructions per Second Management Information System Metal Insulator Semiconductor Multiple Instruction Single Data Massachusetts Institute of Technology Member Information Exchange Modular Jack Steckersystem Motion JPEG Machine Language Multiple Link Interface Message Link Protocol Multiple Link Support Multi Level Security Multi Level Transition Maschinenlesbares Merkmal Mobility Management Multi Media Access Center Matched Memory Cycle Multimedia Compact Disc Multichannel Memorandum Distribution Facility Multi Mode Fiber Man Machine Interface Monol
359. tion des Handbuchs in Klammern angegeben da das gleiche Stichwort in mehreren Sektionen mit unterschiedlicher Bedeutung vor kommen kann beispielsweise cpio 1 und cpio 4 Die Eintragungen zu den Kommandos oder Stichw rtern sind wieder gleich aufgebaut e Name Name des Kommandos Zweck e Synopsis Syntax Gebrauch des Kommandos e Remarks Anmerkungen e Description Beschreibung des Kommandos e Return Value R ckgabewert nach Programmende e Examples Beispiele e Hardware Dependencies hardwareabh ngige Eigenheiten e Author Urheber des Kommandos e Files vom Kommando betroffene Files e See Also hnliche oder verwandte Kommandos e Diagnostics Fehlermeldungen e Bugs M ngel soweit bekannt e Caveats Warnings Warnungen e International Support Unterstiitzung europaischer Absonderlichkeiten Bei vielen Kommandos finden sich nur Name Synopsis und Description Der Sinn oder Nutzen des Kommandos wird verheimlicht deshalb versuchen wir diesen Punkt zu erhellen Was hilft die Beschreibung eines Schwei brenners wenn Sie nicht wissen was und warum man schwei t Am Fu jeder Handbuch Seite steht das Datum der Ver ffentlichung des Eintrags Schlagen Sie unter pwd 1 und time 2 nach 12 1 ber den Umgang mit Computern Einige Kommandos oder Standardfunktionen haben keinen eigenen Eintrag sondern sind mit anderen zusammengefa t So findet man das Kommando mv 1 unter der Eintragung f r das Kommando cp 1 od
360. tweise Negation not Tilde e ausdrucksweise Negation not e bitweises Und and amp e ausdrucksweises Und and amp amp e bitweises exklusives Oder xor Circumflex caret e bitweises inklusives Oder or e ausdrucksweises inklusives Oder or Auch hier gibt es abgekiirzte Schreibweisen Der Ausdruck y amp x bedeutet dasselbe wie y zy amp x Die Operanden y und x werden bitweise durch Und verkn pft das Ergebnis wird y zugewiesen Entsprechendes gilt f r die beiden anderen Abk rzungen Der Unterschied zwischen einer ausdrucksweisen und einer bitweisen logi schen Operation ist folgender In C gilt der Zahlenwert 0 als logisch falsch false jeder Wert ungleich 0 als logisch wahr true Die Zeilen int x 0 if x printf if Zweig n else printf else Zweig n f hren zur Ausf hrung des else Zweiges Die Variable x hat den Wert 0 bei dem auch alle Bits auf 0 stehen Sowie ein beliebiges Bit auf 1 st nde h tte die Variable einen Wert ungleich 0 und w rde als wahr angesehen Die ausdrucksweise Negation if x printf kehrt die Verh ltnisse um der if Zweig wird ausgef hrt Die bitweise Negation h tte hier zwar denselben Erfolg w re jedoch nicht sinnvoll da die einzelnen Bits nicht interessieren Der Buchstabe G wird in 7 bit ASCI durch die Bitfolge 1000111 darge stellt Ihre bitweise Negation ist 0111000 was der Ziffer 8 entspricht Das Mini Programm 48 2 Programmieren in C
361. u ISDN Path Number Peripheral Network Control Point Private Network Node to Network Interface Personal NetWare Novell Paper Out Parity Odd Post Office Standardisation Advisory Group Priority Oriented Demand Assignment Power Open Environment IBM Persistent Objects and Extended Database Technology Plastic Optical Fiber 222 POH POL PON POP POR POS POSE POSI POSIX POST POTS POV POWER PP PPC PPDS PPF PPH PPID PPL PPM PPP PPS PQET PR PReP PRI PRISM PRMD PRML PRNET PRNG PRO PROFS PROLOG PROM PRN PRS PRTI PS PSC PSCT PSD PSDN PSE PSE PSF PSK PSN F Abk rzungen Path Section Overhead Problem Oriented Language Point of Learning Passive Optical Network Point of Presence Post Office Protocol Internet Pacific Ocean Region Power on Reset Point of Sales Portable Operating System Extension Promotion Conference for OSI Japan Portable Operating System Interface for Computer Systems Power on Self Test Plain Old Telephone Service System Point Of View Slang Performance Optimized With Enhanced RISC IBM Motorola Physical Partition Portable Part Predictive Pipelining Personal Productivity Center Production Planning and Control Personal Printer Data Stream Plain Paper Fax Pages per Hour Parent Process Identification Number Point to Point Link Process to Process Link Parts per Mille Pages per Minute Point to Point Protocol Internet Production Planning System
362. uctured Extended Executor IBM Radio Frequency Remote File Remote File Access RFC RFD RFE RFI RFNM RFP RFQ RFS RFT RFU RGB RGDI RGP RG U RH RHC RHNT RI RIB RIF RIFF RIM RIP RIPE RIPL RISC RITA RJ RJE RL RLE RLG RLIN RLL RLN RLSD RLV RMON es 7 J DD 0222 ER ROFLMAO ROI ROM 225 Request For Comments Internet Request For Discussion Usenet Request For Enhancement Radio Free Ethernet Radio Frequency Interference Ready For Next Message Request For Proposal Request For Quote Remote File Sharing Remote File System Request For Technology OSF Reserved for Future Use Rot Gr n Blau Farbmodell Renaissance Graphics Device Interface Raster Graphics Processor Radio Guide Utility Kabel Request Header Response Header Regional Bell Holding Company Registration Hierarchical Name Tree Referential Integrity RenderMan Interface Bytestream Routing Information Field Resource Interchange File Format Request Initialization Mode Remote Installation and Maintenace Routing Information Protocol Raster Image Processor Remote Image Protocol Processing Reseaux IP Europeenne Remote Initial Program Loading Reduced Instruction Set Code Computer Reduced Interim Type Approval Registered Jack Remote Job Entry IBM Remote Loopback Real Life Slang Run Length Encoded Research Libraries Group Research Libraries Information Network RLG Run Length L
363. uelle nach Pr prozessor Durchlauf Index Interchange File Format Amiga Autodesk Animator GEM Paint Rastergrafik Bitmap Information Konfigurationsfile Initialisierung JPEG File Interchange Format JPEG Interchange Format JPEG File lex 1 Quelle Library Bibliothek TeX Bildverzeichnis list of figures Protokollfile TeX Meldungen w hrend der bersetzung lot Ist Ich m4 mac map mak mdf mid mif mod msp nff obj old ovl ovr pak ped pet pcx pic pif pit pix pov prn prt Trv vd a oo oT vpep Or OO OO D Or OO OO STY STF NS NSST T NnS STFS CG D D 159 TeX Tabellenverzeichnis list of tables Liste Archiv mit 1ha komprimiert m4 1 Praprozessor File Macintosh Paint Map Files Quick C Make File Menu Definition File Midi Sound Ffile Maker Interchange Format FrameMaker MODULA Quelle Amiga Modul Sound Microsoft Windows Paint Neutral File Format Objekt Code Objekt Code Kopie eines Files vor berschreiben Overlay File Overlay File PASCAL Quelle Archiv mit pkpak komprimiert Kodak Photo Compact Disc Macintosh PICT Paintbrush Rastergrafik Lotus Picture File Program Information File Packlt file Kompressor Macintosh Inset PIX Lumena Paint Persistance of Vision Druckerfile Parallel Ray Trace Postscript File Permanent Swap File Fax File Quicklink Quick Time Rational FORTRAN Quelle SUN CALS Raster Grafik Microsoft RIFF Dore Raster File Format Wavefront
364. ufenden Funktion gemeinsam verwendete Pointer Nun die drei FORTRAN Hauptprogramme mit Aufruf der Funktionen in C FORTRAN und PASCAL C FORTRAN Programm das C Funktionen aufruft C Compileraufruf f77 o fsummec fummec f csv o csr o program fsummec ALIAS csv val val integer a b s csr csv write 6 100 read 5 a b write 6 102 a b sc atb write 6 103 s C call by value s csv a b write 6 104 s write 6 102 a b C call by reference s csr a b write 6 105 s write 6 102 a b 100 format Bitte die beiden Summanden eingeben 102 format Die Summanden sind 216 103 format Die Summe direkt ist I8 104 format Die Summe ist I8 105 format Die Summe ist I8 end Programm 2 21 FORTRAN Programm das Parameter by value und by reference an C Funktionen bergibt C FORTRAN Programm das F77 Funktion aufruft C Compileraufruf f77 o fsummef fsummef f fsr o program fsummef integer a b s fsr write 6 100 read 5 a b write 6 102 a b sc atb write 6 103 s C call by value nicht moeglich 2 18 Funktionen 69 100 102 103 105 call by reference default s fsr a b write 6 105 s write 6 102 a b format Bitte die beiden Summanden eingeben format Die Summanden sind 2I6 format Die Summe direkt ist I8 format Die Summe ist I8 end Programm 2 22 FORTRAN Programm das Par
365. uhe erhalt eine UNIVAC 1108 die bis 1987 lauft und damit den Rekord an Betriebsjahren halt Die Karlsruher Fakultat Informatik wird gegriindet UNIX auf C umgeschrieben erster Mikroprozessor Intel 4004 IBM entwickelt das Konzept des virtuellen Speichers Xerox DEC und Intel entwickeln den Ethernet Standard Das ARPANET wird der ffentlichkeit vorgestellt Ein Student namens STEPHAN G WOZNIAK l tet sich einen Computer zusammen der den Smoke Test nicht bersteht In der Bundesrepublik arbeiten rund 8 200 Computer Der erste programmierbare Taschenrechner kommt auf den Markt Hewlett Packard 65 Preis ca 2500 DM HMI NET am Hahn Meitner Institut in Berlin UNIX wird ver ffentlicht Beginn der BSD Entwicklung Die Zeitschrift Byte wird gegr ndet Erste m ig erfolgreiche Personal Computer STEVEN P JOBS und STEPHAN G WOZNIAK gr nden die Firma Apple und bauen den Apple I Er kostet 666 66 Dollar In der Bundesrepublik arbeiten rund 170 000 Computer Der Commodore PET ein Vorl ufer des C64 kommt heraus Faxdienst in Deutschland eingef hrt Die Zusammenarbeit von Apple mit Rank Xerox f hrt zur Apple Lisa ein Mi erfolg aber der Wegbereiter f r den Macintosh Die Universit t Karlsruhe erh lt eine Siemens 7881 als zentralen Rechner IBM bringt in den USA den IBM PC heraus mit MS DOS PC DOS 1 0 als wichtigstem Betriebssystem Das Institut fiir Mechanische Verfahrenstechnik und Mechanik Universitat Karlsruhe
366. und wird daher gemeinsam compiliert Sie mu wie main in C geschrieben sein mehrsprachige Com piler gibt es nicht e Die Funktion steht unter Umst nden mit weiteren Funktionen in einem eigenen File das getrennt compiliert und beim Linken zu main gebunden wird Dabei werden alle Funktionen dieses Files zu main gebunden ob sie gebraucht werden oder nicht Wegen der getrennten Compilierung darf das File in einer anderen Programmiersprache geschrieben mu aber f r dieselbe Maschine compiliert sein e Die getrennt compilierte Funktion steht zusammen mit weiteren in einer Bibliothek und wird beim Linken zu main gebunden Dabei w hlt der Linker nur die Funktionen aus der Bibliothek aus die in main gebraucht werden Man kann also viele Funktionen in einer Bibliothek zusammenfassen ohne bef rchten zu m ssen seine Programme mit Ballast zu befrachten Die Bibliothek kann auf Quellfiles unterschiedlicher Programmiersprachen zur ckgehen Sie m ssen nur f r dasselbe System compiliert worden sein es macht keinen Sinn und ist auch nicht m glich Funktionen f r UNIX und MS DOS in einer Bibliothek zu vereinigen Das Erzeugen einer Bibliothek auf UNIX Systemen wurde bereits im Abschnitt Bibliotheken Archive im Rahmen der Programmer s Workbench erl utert Im folgenden geht es um die Verwendung von Bibliotheken 2 19 2 Standardbibliothek 2 19 2 1 bersicht Standardfunktionen sind die Funktionen die als Standardbibl
367. ur Basis 8 Durch ein Byte lassen sich 2 256 unterschiedliche Zeichen darstellen Das reicht f r unsere europ ischen Buchsta ben Ziffern und Satzzeichen Ebenso wird mit einem Byte eine Farbe aus 256 unterschiedlichen Farben ausgew hlt 1024 Byte ergeben 1 Kilobyte 1024 Kilo byte sind 1 Megabyte 1024 Megabyte sind 1 Gigabyte 1024 Gigabyte machen 1 Terabyte Der Computer verarbeitet Informationen in Einheiten eines Maschinenwor tes das je nach der Breite der Datenregister des Prozessors ein bis 16 By tes umfa t Der durchschnittliche Benutzer kommt mit dieser Einheit selten in Ber hrung f r den Assembler Programmierer sind die Datentypen am einfach sten die sich gerade in einem Maschinenwort darstellen lassen Unter Benutzer Programmierer System Manager usw verstehen wir auch ihre weib lichen Erscheinungsformen ohne dieses besonders hervorzuheben 4 1 ber den Umgang mit Computern 1 2 Woraus besteht ein Computer Der Benutzer sieht von einem Computer vor allem den Bildschirm screen und die Tastatur keyboard auch Hackbrett genannt Diese beiden Ger te werden zusammen als Terminal terminal bezeichnet und stellen die Verbindung zwi schen Benutzer und Computer dar Mittels der Tastatur spricht der Benutzer zum Computer auf dem Bildschirm erscheint die Antwort Bildschirm Tastatur Terminal Arbeits Massen speicher speicher Prozessor Abb 1 1 Aufbau eines Computers Der eigentliche Compute
368. us Digital Hierarchy Selective Dissemination of Information Vorschriftensammlung f r digitale Netze Software Developer s Kit Microsoft Synchronous Data Link Control IBM Standard Device Level Protocol Sub rate Data Multiplexer Short Data Message Space Division Multiple Access SCSI Device Management System Software Defined Network Secure Data Network Service Standard Directory Package Apple Streaming Data Request Synchronous DRAM Software Distribution Service OSF SDSC SDTV SDU SDXC SEA SEAL SEC SECAM SED SEDAS SEM SEO SEP SER SE SCSI SEU SF SFAusl SFF SFMJI SFPS SFOL SFS SFT SG SGA SGI SGML SGMP S H SHA SHAR SHIA SHIFT SHRS S HTTP SI SIA SIAM SIASL SIB SID SIG SIGCAT SIGPLAN SIH 229 San Diego Supercomputer Center Standard Definition Television Service Data Unit Synchronous Digital Cross Connect Society for Electronic Access Screening External Access Link Single Error Correction Sequentiel Couleur Avec Memoire Smoke Emitting Diode Standardregelungen einheitlicher Datenaustausch Server Enhancement Module Sequences Number Someone else s problem Soft Error Single Ended SCSI Smallest Executable Unit Select Frequency Store and Forward Sign Flag Vorschriftensammlung Fernmeldeverkehr Ausland Small Form Factor Sorry For My Jumping In Slang Secure Fast Packet Switching Structured Full text Query Language Secure File System System Fault Tolerance
369. uter and Science Network USA Central Services Organization Cross System Product CompuCom Speed Protocol Commercial Subroutine Package Computer Systems Research Group Berkeley Client Server System Centralized Structure Store Computer Supported Telephony Applications 178 CSTS CSU CSV CT CTAN CTB CTCP CTCPEC CTI CTIA CTOS CTPA CTR CTRL CTS CTSS CTY CU CUA CUCN CUG CUI CUL CUNY CUSI CUSSNET CUT CUU CVD CVF CVGA CVW CW CWI CWIS CXI CYL CYMK D A D2T2 DA AA DAB DAC F Abk rzungen Computer Supported Telephony Standard Channel Service Unit Comma Separated Variables Clock Time Cordless Telephone Comprehensive TeX Archive Network Communication Toolbox Apple Client To Client Protocol Canadian Trusted Computer Product Evaluation Criteria Computer Telephony Integration Cellular Telecommunications Industry Association Corporate Telecommunications and Office Systems Coax to Twisted Pair Adapter Current Transfer Ratio Control Clear To Send Common Transport Semantics EC Conformance Testing Services Compatible Time Sharing System Console Teletype Control Unit Common User Access IBM Communication Controller Node Closed User Group Character Common User Interface IBM See You Later Slang City University of New York Configurable Unified Search Index Computer Use in Social Sciences Network Control Unit Terminal Computerunterst tzter Unterricht Compact
370. verbunden Damit ist die Anlage vollst ndig Was um den eigentlichen Computer Prozessoreinheit herumsteht wird als Peripherie bezeichnet Die peripheren Ger te sind ber Schnittstellen Daten steckdosen angeschlossen In Abb 1 1 sehen wir das Ganze schematisch dargestellt In der Mitte die CPU untrennbar damit verbunden der Arbeitsspeicher Um dieses Paar herum die Peripherie bestehend aus Terminal Massenspeicher Drucker und Netzanschlu Sie k nnen aber immer noch nichts damit anfangen allenfalls heizen Es fehlt noch die Intelligenz in Form eines Betriebssystems operating system wie UNIX 1 3 Was mu man wissen Ihre ersten Gedanken werden darum kreisen wie man dem Computer vern nftige Reaktionen entlockt Sie brauchen keine Angst zu haben durch Tastatureinga ben au er Kaffee und hnlichen Programming Fluids ist ein Computer nicht zu zerst ren Zum Arbeiten mit einem Computer mu man drei Dinge lernen e den Umgang mit der Hardware e den Umgang mit dem Betriebssystem e den Umgang mit einem Anwendungsprogramm zum Beispiel einem Pro gramm zur Textverarbeitung Dar ber hinaus sind Englischkenntnisse und bung im Maschinenschreiben n tzlich Das Lernen besteht zun chst darin sich einige hundert Begriffe anzu eignen Das ist in jedem Wissensgebiet so Man kann nicht ber Primzahlen Wahrscheinlichkeitsamplituden Sonette oder Sonaten nachdenken ohne sich vor her ber die Begriffe klargeworden zu s
371. von einem zun chst noch unbekannten Typ zeigt Wenn es dann zur Sache geht legt man den Typ mittels des cast Operators fest Fr her nahm man daf r Pointer auf den Typ char denn dieser Typ belegt genau ein Byte woraus man jeden anderen Typ aufbauen kann Nach ANSI ist hierf r der Typ void zu w hlen Jeder Pointer kann ohne Verlust an Information per cast in einen Pointer auf void verwandelt werden und umgekehrt Die Pointer belegen ja selbst unabh ngig vom Typ auf den sie zeigen gleich viele Bytes Im folgenden Beispiel wird eine Funktion xread vorgestellt die jede Tasta tureingabe als langen String bernimmt und dann die Eingabe erforderlichenfalls nach Pr fung in einen gew nschten Typ umwandelt Die Funktion ist ein Ersatz f r scanf 3 mit der M glichkeit fehlerhafte Eingaben nach Belieben zu behan deln Als erstes ein Programmrahmen der die Funktion xread aufruft dann die Funktion Funktion xread zum Einlesen und Umwandeln von Strings mit Rahmenprogramm main zum Testen 11 05 92 include lt stdio h gt int xread void p char typ void exit Systemaufruf int main int error 0 int x 102 double y char z 80 Integer Eingabe printf Bitte Ganzzahl if xread amp x int 2 Programmieren in C eingeben n d printf Die Eingabe war d n x else puts Fehler von xread error 1 Gleitkomma Eingabe prin
372. way Protocol Internet Bayerische Hacker Post Branch History Table Binary Input Broadband Inter Carrier Interface Breitbandiges Integriertes Glasfaser Fernmelde Ortsnetz Begin of Information Marker Bipolar Metal Oxide Semiconductor Berkeley Internet Name Domain Server Basic Input Output System Bit Interleaved Parity Business Information System Breitband ISDN Binary Synchronous Communication Protocol IBM Because It s Time Network ein NJE Netz Basic Information Unit Bus Interface Unit Byte Information Exchange ein BBS Biirokommunikation Bundesverband Kabel Satellit GE E E zg Le Le Le Z Z Sal L I Q J S CH Tu y CD Z a w D Oo gt BOART BOC BOF BOFS BOM BONT BOOM BOOTP BOP BOS BOT BP BPB bpi BPM BPR bps BPSK BPU BQS BR BRAM BRE 169 Bereichskennzahl Datex Btx Backlit Basic Linear Algebra for Distributed Environments Basic Linear Algebra Subprograms Subroutines Blocked Asynchronous Transmission Protocol Block Error Rate Block Error Rate Test Block Bayerische Landeszentrale f r Neue Medien M nchen Buried Logic Macrocell Binary Large Object Bitonic Merge Graph Netz Block Multiplex Channel Bus Master Interface Controller Intel Batch Message Processing Program Bundesministerium f r Post und Telekommunikation Broadcast Message Server Berkeley MacIntosh Users Group Bayonet Neill Concelman Bayonet Nut Coupling Baby N Connector Backus
373. while flag 0 flag 1 k i p2 aplimax for j imax j gt k j pi aplj 1 if vergleich pi p2 lt 0 aplj p2 p2 pi D else ap j pi i j flag 0 ap j p2 return 0 Vergleich zweier Strings bis zum ersten Whitespace Returnwert 0 falls Strings gleich Returnwert lt 0 falls Stringi lt String2 Returnwert gt 0 falls Stringi gt String2 int vergleich char x1 x2 int flag 0 while wert x1 wert x2 0 if NOWHITE x1 if SCHARF x1 x2 scharfes s if SCHARF x2 Zltt flag 1 xitt x2t t D else if KOMMA x x1 1 weiteres Wort 2 21 C Programme 113 while NOCHAR x1 xitt while NOCHAR x2 x2t t flag vergleich xi1 x2 return flag return wert x1 wert L x2 Programm 2 51 C Programm zum Sortieren eines Textes nach den Regeln des Duden Die Variable flag die auch anders hei en kann ist ein Flag d h eine Varia ble die in Abhangigkeit von bestimmten Bedingungen einen Wert 0 oder nicht 0 annimmt und ihrerseits wieder in anderen Bedingungen auftritt Ein gangiger einwandfreier Programmiertrick 2 21 13 X Window System Das folgende Beispiel zeigt wie man unter Benutzung von Xlib Funktionen ein Programm schreibt das unter dem X Window System l uft xwindows c this program demonstrates how to use X s base window system thr
374. wollte 0 gro er Computer 2 Plumpsklo Gravitationstoilette 1 Personal Computer 2 Power Computing Language 0 Was zum Essen 1 Was am Eisenbahnwagen 1 Zwischenspeicher 2 Rohstoff f r Softice 0 Programme Daten und so Zeugs 2 was zum Trinken 0 was zum Trinken 1 Hafen 1 Steckdose f r Peripherieger te 2 maschinell lesbarer Code 2 Geheimsprache im Rotlichtviertel 0 Urliste in der Statistik 0 was zum Essen 1 was zum Spielen 1 Halbleiterbaustein 2 Hund 1 starker Whisky 0 Zeiger auf Daten Adresse 2 Hotelboy 1 englisch Seite in einem Buch 1 Untergliederung eines Speichers 2 250 Character Betriebssystem Traktor Treiber Animator Hackbrett emulieren Font Server Yabbawhap Terminal H Karlsruher Test was manchen Politikern fehlt 1 Schriftzeichen 2 Wasserfall 0 Konzern 0 betriebsinternes Telefonsystem 0 wichtigstes Programm im Computer 2 Papiereinzugsvorrichtung 2 landwirtschaftliches Fahrzeug 1 Zahl beim Multiplizieren 0 Hilfsperson bei der Jagd 1 Programm zum Ansprechen der Peripherie 2 Vorarbeiter 0 was zum Trinken 1 Unterhalter 1 Programm f r bewegte Grafik 2 Musikinstrument 1 Werkzeug im Hackbau 0 Tastatur 2 nachahmen 2 Ol in Wasser verteilen 0 entpflichten 0 Menge von Schriftzeichen 2 So engrundlage 1 Hintergrund Geldmenge 0 Brettsegler 0 Kellner 0
375. writers Laboratory Upload ncommitted Logic Array niversal Link Negotiation nit in the Last Place Upper Layer Protocol ltra Large Scale Integration pper Memory Area pper Memory Block niversal Mobile Telecommunications System nited Nations nbalanced Normal Class Universal Naming Convention N Guidelines for Trade Data Interchange ser Network Interface niversal Integrated Communication system niversal Automatic Computer nified Network Management Architecture nnumbered Poll niversal Printer Controller Universal Product Code ser Portability Extension nited Press International ser Program Language ser Profile Management IBM mgekehrte Polnische Notation niversal Portable Protocol Stack ninterruptable Power Supply niversal Resource Identifier niform Resource Locator Internet niversal Resource Number nit Separator niversity Satellite Network niversal Synchr Asynchr Receiver Transmitter niversal Serial Bus NIX System Group Novell NIX System Laboratories AT amp T Novell SLE SO SRT SSA STA SV TC TI TL TLB TP TSL UCP ULP US UU VL CC CIE CC V 24 V D VA VAB VAD VADD VADS VAFC VAL VAM VAN VANS VAP VAR VAS VASCOM VAST VAX VB VBA VBFS VBL VBN VBNS VBR VC VCC VCD VCI 239 NIX System Laboratories Europe NIX Software Operation niversal Synchronous Receiver Transmitter niversal Storage System Architecture 5 Telephone Association nterbrechungsfreie Stromver
376. xit Extended Terminal Interface Evil Twin On Line Slang EPROM Tunnel Oxide Early Token Release European Telecommunication Standard European Telecommunication Services Association European Telecommunications Standards Institute End of Text Execution Unit Enhanced Extended UNIX Code European UNIX Network Dachverband europ ischer UNIX Anwendervereinigungen Extragalactic European Unix User Group Etagenverteiler European Videotelephony Enhanced Video Adapter Elektronischer Verkehrslotse f r Autofahrer Elektronische Fahrplan und Verkehrsauskunft Empfangs und Verteilanlage EDV gest tztes Vereins Administrations System Exklusiver Verzeichnis Eintrag Datex J Extended Video Graphics Array Adapter Einzelverbindungsnachweis Elektro Schrott Verordnung Event Service OSF Elektrizit tsversorgungsunternehmen European Workshop on Open Systems OSI Employee Written Software IBM Elektronisches W hlsystem f r Paketvermittlung Extended Subset of APT Exchange Extended File Control Block Exponent External External Reference European X User Group Elektronischer Zahlungsverkehr F2F FA FAB FABS FAC FACT FAF FAG FAL FAMOS FAN FAP FAPI FAPL FAQ FAQL FARNET FASIC FAST FAT FAXT Fax TAM FBAS FBE FBRM FC FCA FCB FCC FCCSET fci FCP FCS FCSI FCT FD FDC FDDI FDDI TP PMD FDDI UTP FDE FDES FD FDDI FDISK FDM FDMA 191 Face to Face Slang Full Adder Fermelde
377. y Sebastopol 1990 749 S 90 DM Einf hrung in das XWS f r Benutzer R J Rost X and Motif Quick Reference Guide Digital Press Bedford 1993 400 S 22 267 Zusammenfassung aus den Referenz Handb chern 11 Programmieren allgemein Newsgruppen comp programming comp unix programmer comp lang comp software comp software eng comp compilers de comp lang fido ger compilerbau maus comp compiler A V Aho u a Compilers Principles Techniques and Tools Addison Wesley Reading 1986 796 S 78 DM Zum tieferen Verstandnis von Programmiersprachen B Beizer Software Testing Techniques Van Nostrand Reinhold 1990 503 S 43 US N Ford Programmer s Guide ftp ciw pub docs misc pguide txt 1989 31 S ASCII allgemeine Programmierhinweise Shareware Konzept T Grams Denkfallen und Programmierfehler Springer Berlin 1990 159 S 58 DM PASCAL Beispiele gelten aber auch f r C Programme D Gries The Science of Programming Springer Berlin 1981 366 S 48 DM Grunds tzliches zu Programmen und ihrer Pr fung mit praktischer Bedeutung E Horowitz Fundamentals of Programming Languages Springer Berlin 1984 446 5 777 DM berblick ber Gemeinsamkeiten und Konzepte von Programmiersprachen von FORTRAN bis Smalltalk kein Programmierkurs sondern eine Erg nzung dazu M Marcotty H Ledgard The World of Programming Languages Springer Berlin 1987 360 S 90 DM S Pfleeger Software Enginee
378. y Sustain Release Abstrakter Datentyp Application Data Type Abrechnungsdatentr ger ADTV ADU ADxVerz AEB AEC AED AEEC AEG AEI AEIOUS AEM AEP AES AET AF AFAIK AFC AFD AFII AFJ AFK AFNOR AFP AFS AFSK aFTP AFUU AFUUSO AGA AGC AGCS AGDX AGE AGFMB AGFPL AGP AGUI AGV AHDL AI AIA AIDS All AIIM AIM AIMB 163 Advanced Definition Television Automatic Dialing Unit Amtliches Verzeichnis der DATEX Teilnehmer Analogue Expansion Bus Architectural and Engineering Construction Abfrageeinrichtung fiir Datenverkehr Airlines Engineering Electronics Committee Allgemeine Electricit ts Gesellschaft Additional Equipment Interface Advanced Enhanced Interface for Open Universal Systems Automatic Emulation Management AppleTalk Echo Protocol Application Environment Services Advanced Educational Technology Application Entity Title Auxiliary Carry Flag As Far As I Know Slang Automatic Font Change Automatic Frequency Control Automatic File Distribution Association for Font Information Interchange April Fool s Joke Slang Away From Keyboard Slang Association Francaise de Normalisation Advanced Function Printing AppleTalk Filing Protocol Alex Andrew Advanced File System Advanced Freephone Service Audio Frequency Shift Keyer Keying Modulation Anonymous FTP Internet Association Francaise des Utilisateurs d UNIX Association Francaise des Utilisateurs d UNIX et des Systemes
379. yscreen specification of window position and size myhint x 200 myhint y 300 myhint width 550 myhint height 450 myhint flags PPosition PSize window creation mywini XCreateSimpleWindow mydisplay DefaultRootWindow mydisplay myhint x myhint y myhint width myhint height 5 myforeground mybackground XSetStandardProperti mydisplay mywini hallo hallo None argv argc amp myhint myhint x 400 myhint y 400 myhint width 700 myhint height 200 myhint flags PPosition PSize mywin2 XCreateSimpleWindow mydisplay DefaultRootWindow mydisplay myhint x myhint y myhint width myhint height 5 myforeground mybackground creation of a new window XSetStandardProperties mydisplay mywin2 Hallo Hallo None argv argc amp myhint pixmap creation mypixmap XCreatePixmap mydisplay DefaultRootWindow mydisplay 400 200 DefaultDepth mydisplay myscreen GC creation and initialization mygc1 XCreateGC mydisplay mywini 0 0 mygc12 XCreateGC mydisplay mywin2 0 0 2 21 C Programme 115 newgc XCreateGC mydisplay mywin2 0 0 determination of default color map for a screen cmap DefaultColormap mydisplay myscreen yellow red 65535 yellow green 65535 yellow blue 0 allocation of a color cell if XAllocColor mydisplay cmap amp yellow 0 fprintf stderr Cannot specify color exit 2
380. zation of the Network Layer OSI Input Output Processor Input Output Priviledge Level Indian Ocean Region Input Output Support Gate Array Internet Protocol TCP IP Information Provider 202 IPAE IPC IPCP IPDS IPF IPI IPL IPM IPng IPON ips IPSE IPTO IPVR IPX IPXCP IQL IR IRAF IRB IRC IRD IrDA IRD IRDS IRL IRLED IRM IRQ IRS IRTF IS ISA ISAM ISC ISD ISDN ISH ISI IS IS ISL ISM ISN ISO ISOC F Abk rzungen Instruction Pointer IP Address Encapsulation Interprocess Communication Instructions per Clock Internet Protocol Control Protocol Intelligent Printer Data Stream Information Presentation Facility Intelligent Peripheral Interface Initial Program Loader Interrupt Priority Level Intelligent Power Mode Module MOS Interpersonal Message Internet Protocol Next Generation Intelligent Passive Optical Network inch per second Integrated Project Support Environment Information Processing Techniques Office Inst f r parallele und verteilte H chstleistungsrechner Stuttgart Internetwork Packet Exchange Novell Internetwork Packet Exchange Control Protocol Interactive Query Language Information Retrieval Infrarot Image Reduction and Analysis Facility Instrumentation Request Broker Internet Relay Chat Integrated Receiver Decoder TV Infrared Data Association Internet Resource Directory Information Resource Dictionary System Inter Repeater Link In Real Life Slang

Download Pdf Manuals

image

Related Search

Related Contents

JVC HI-FI HR-J642U User's Manual  CD-VT2 - Tascam  LevelOne WCS-2030 Security Camera User Manual  Bedienungsanleitung '13 [de]    

Copyright © All rights reserved.
Failed to retrieve file