1.
Aufbau eines Programmlistings
1.1. Einbindung von Kommendar
/*(Kom.)*/
z.B.:
/*Erstes Testprogramm*/
1.2.
Prozessordirektiven
è
Bibliotheksfunktion
z.B.:
# include <stdio.h >
(alle Bibliotheken enden mit h)
1.3.
Deklarationen
z.B.:
#define TRUE 1
1.4.
Hauptprogramm
Die Programmierung
in C erfolgt fast ausschließlich über
Funktionen
# include <.....>
è
einschließen einer Bibiliotek
z.B.:
/* Erstes Testprogramm*/
# include < stdio.h>
main ( )
{
printf(\n\n Erstes Programm\n);
}
\
è
kennzeichnet in einem Textstring ........
den Beginn einer ESCAPE-Sequenz
n
è
neue Zeile
r
è
einfacher Wagenrücklauf
t
è
Tabulator (horizontal )
v
è
Tabulator ( vertikal ) (Drucker)
b
è
Backspace
f
è
neue Seite
\
è
Backslash
è
Anführungszeichen
a
è
Alarm (nicht alle Compiler )
Die korrekte definierte Beendung eines DOS Programms
ohne Rücksetzung wird mit
return_0
; ausgeführt.
printf(\n Wir können auch rechnen\n3*4=%i,3*4);
Platzhalter für eine Integerzahl
printf(\n
oder auch 4*5=%i
und 4+5=%i ,4*5,4+5);
|
|
|||
|
|
|||
scanf ( )
è
Eingabe von Daten
z.B.:
scanf (%i,&x)
|
|
|
||
Platzhalter
Zeiger auf Variable
x
Einfache Variante :
Variable definieren :
main ( )
int x,y;
printf (\n
geben Sie die Zahl 1ein : );
scanf (%i,&x)
clrscr ( )
è
clear screen
= löscht den Bildschirm
Formatangaben für
scanf
|
char
|
1 Byte |
Zahl / Zeichen |
|
int
|
2 Byte
|
Zahl
|
|
float
|
4 Byte
|
Zahl
|
|
double
|
8 Byte
|
Zahl
|
Zusätze : signed Vorzeichenbehaftet
unsignet
ohne Vorzeichen
long
lang
short
kurz
|
Formatangabe
Platzhalter
|
Eingabewert
|
|
|
|
|
%d
|
Ganze Zahl vom Typ int
|
|
%hd
|
Ganze Zahl vom Typ short
|
|
%ld
|
Ganze Zahl vom Typ long
|
|
%i
|
Ganze Zahl vom Typ int
(Eingabe dezimal,oktal mit führender 0 oder
hexadezimal mit führendem
0x ) (von 32768 bis +32764
|
|
%u
|
Ganze Dezimalzahl vom
Typ int ohne Vorzeichen (0 bis 65535 )
|
|
%hu
|
Ganze Dezimalzahl vom
Typ short ohne Vorzeichen
|
|
%o
|
Ganze oktale Zahl vom
Typ int ohne Vorzeichen
|
|
%ho
|
Ganze oktale Zahl vom
Typ short
|
|
%lo
|
Ganze oktale Zahl vom
Typ long
|
|
%x
|
Hexadezimalzahl int ohne
Vor.
( a f )
|
|
%X
|
Hexadezimalzahl int ohne
Vor.
( A F )
|
|
%e
|
float (+/- x.xxxx e+-yyy
|
|
%f
|
float (+/- xxxx.xxxx)
|
|
%c
|
char einzelnes Zeichen
|
|
%s
|
Zeichenkette
|
Variablen dürfen maximal
31 Stellen lang sein ,keine Zeichen
Ziffern dürfen nicht am Anfang
stehen
Platzhalter :
z.B.:
%i
Syntax :
%[Schalter] [Breite].[Genauigkeit]
[Modifikator] Typ
Schalter :
1.
è
für linksbündig
2.
+
è
immer mit Vorzeichen
3.
#
è
alternative Darstellung der
Typen o, x, f, e, g
h
wenn d, i, u, o,
x
short sein soll
l
wenn d, i,
u, o, x
long sein soll
L
wenn f, e, g
long
F
wenn s far
Zeiger
N
wenn s near Zeiger
zum Beispiel :
printf(\n Der Quotient aus %f
/ %f =%3.2f, x,y,x/y);
getch ( )
è
holt ein Zeichen von der Tastatur
printf(\n\t Beenden mit beliebiger Taste);
getch( );
return 0;
}
Anwendung :
for (x=1 ; x<8 ; x=X+1)
{
printf(\n %i.Zeile,x);
}
while
Schleife
int x=1;
while(x!=0)
{
scanf(%i,&x),
printf(\n\n%i Im Quadrat=%i\n,x,x*x);
}
do
Schleife:
{
printf(\n%i,Zeile);
x=x+1
}
.
ta=toupper((getch));
}
while((ta= =W))
if
Anweisung
1.
einfach
if
( Testausdruck)
Anweisung :
z.B: if (zahl = = 0)
printf(\nUngültige
Eingabe\n);
2.
einfach mit mehreren Anweisungen
:
if(Testausdruck)
{
Anweisungsblock ;
}
z.B
.:
if (Zahl = =0)
{
printf(\n
ungültige Eingabe\n);
printf(\n Du Depp\n);
3.
einfach mit Alternativen
if (Testausdruck)
Anweisung 1;
else
Anweisung;
z.B.:
if (Zahl = = 0)
printf(\n Ungültige
Eingabe\n)
else
printf(\nEingabe
wahr %i\n,Zahl);
4.
mehrere Alternativen
if(Testausdruck1)
Anweisung1;
elseif(Testausdruck2)
Anweisung2;
else
Anweisung3 ;
Zufallszahlen
(#include<stdlib.h>)
randomize ( )
è
startet den Generator
a = random(10);
Zufallszahl bis 10 wird der Variablen
`a´ zugewießen.
z.B.:
printf(\nZufallszahl ist : %i,random(10));
26. August 1999
:
:
int ta=1;
char Eingabe;
clrsrc;
do
{
if (ta= =0)
getch( );
gotoxy(1,1);
ta= cscanf(%i,&Eingabe);
cscanf steht
für Charakter scan
}
while(Eingabe= =0);
wertrückgabe
getch( );
|
|
|
|
globale Variablen
|
lokale Variablen
|
|
gelten für das gesamte
Programm
|
gelten nur in einem Programmteil/bzw.Unter-.
|
|
definieren vor dem Programmteil
|
wird im Programm definiert
|
|
zum Beispiel:
# include<stdio.h>
int wert a , wert b ,wert c;
double Ergebnis;
main ( )
{
:
:
}
|
zum Beispiel:
#include<stdio.h>
main ( )
{
:
}
int Eingabe ( )
{
int
a,b;
:
}
|
Arbeiten mit Grafiken :
1.) #include <graphics.h>
è
Prozessordirektive
für Grafik
2.) Initialiesieren :
initgraph
(&Grafiktreiber,&Grafikmodus,Pfad für Treiber);
z.B.:
int GraphDriver=DETECT,GraphMode;
initgraph((&GraphDriver,GraphMode,
\\TC\\
BGI);
printf(\n geht..);
getch();
return 0 ;
}
Suchpfad für Treiber(-muß mit auf den
anderen Rechner BGI)
Grafikfunktionen
Line(x1,y1,x2,y2)
-zeichnet Line
x
|
0,0
640,0
y
0,480
640,480
setcolor(Farbnummer)
0=Schwartz
: =
15=Weiss
For(Farbe=0,Farbe<16,Farbe++);
{setcolor
Grafikfunktionen
|
arc
|
zeichnet Kreisbogen |
|
circle
|
zeichnet Kreis
|
|
drawpoly
|
zeichnet Umriß eines
Polygon
|
|
ellipse
|
zeichnet elliptichen Kreisbogen
|
|
line
|
zeichnet Linie
|
|
lineto
|
zeichnet Linie von Cursor
zu einem Punkt
|
|
linerel
|
zeichnet Linie relativ
zum Cursor
|
|
moreto
|
setzt Grafikcursor am
best.Punkt
|
|
morrel
|
bewegt Cursor relativ
zur aktiven Position
|
|
rectangel
|
zeichnet Rechteck (links,oben,rechts,unten)
|
|
selflinestyle
|
legt alle Liniearten,
Muster, Dicke.....fest
|
|
bar
|
zeichnet Balken
|
|
bar3d
|
zeichnet 3D Balken
|
|
fillellipse
|
zeichnet ausgefühlte
Ellipse
|
|
floodfill
|
füllt umschlossene
Flächen
|
|
putpixel
|
zeichnet Bildpunkt
|
|
getpixel
|
liefert Farbe eines Bildpunktes
|
|
setbkcolor
|
setzt Hindergrundfarben
|
|
setcolor
|
setzt Zeichenfarbe
|
|
cleardevice
|
löscht gesamten Grafikbildschirm
|
selflinestyle (Art,Muster,Dicke);
Art : SOLID_LINE (0)
è
normal durchgezogen
DOTTED_LINE (1)
è
gepunktete Linie
CENTER_LINE (2)
è
Punkt-Strich
DASHED_LINE (3)
è
gestrichelte
USERBIT_LINE (4)
è
benutzerdefiniert
Muster : 0
Dicke : 1
è
normal
2
è
dick
setcolor(Farbe);
cleardevice( );
Konvertierung von Variablen :
#include<stdlib.h>
itoa ( )
è
Integer zu ASCII
itoa
(
Zahl ,
String ,
RADIX
);
|
|
|
|
int-Zahl
Stringvariable
, Zahlensystem
z.B
.:
itoa(Zahl1,*Werner,10);
|
|
|
|
Quelle
Ziel
Dezimalsystem
outtextxy ( x, y , & Werner) ;
Zeiger
im ASCII ausgeführt.----
atoi( )
è
ASCII zu Integer
int atoi ( char*string);
deklarieren
: char*str ;
Eigene Funktionen :
-
Funktionen werden wie ein Programmquelltext geschrieben.
-
Sie befinden sich außerhalb der Funktion main( ) .
-
der Programmierer definiert :
¨
Name
¨
Übergabewerte
¨
Rückgabewert
#include<stdio.h>
neue_Zeile(int x)
/ Name (Übergabe Variable)
{
int zaehler;
/ lokale Variable
for(zaehler=1;zaehler<=;zaehler++)
{
printf(\n);
}
}
main( )
{
int eingabe;
printf(\n Wieviele neue Zeilen?);
scanf((%i,&eingabe);
neue_Zeile(eingabe);
getch( );
neue_Zeile(4);
getch( );
neue_Zeile(1);
getch( );
return 0;
}
Beispielprogramm für einen Rückgabewert einer Funktion
int max(int a,int b)
int ist der Rückgabewert
{
if(a > b)
{
return
(a);
definiert den Rückgabewert
}
else
{
return (b);
}
}
main( )
{
int x,y;
printf(\nZahl1 eingaben :)
scanf(%i,&x);
printf(\nZahl2 eingaben :)
scanf(%i,&y);
printf(\n Die Zahl
%i
i st größer !!!,max(x,y);
getch();
return 0;
}
Felder(array)
Definition:
int werte[4];
|
|
|
|
Typ Name
Anzahl der Einzelelemente
|
0
|
1
|
2
|
3
|
4
|
|
11
|
12
|
13
|
14
|
15
|
for(x=0;x<=4;x++)
{
printf(nWert %i:,x+1);
Eingabe
scanf(%i,&wert[x]);
}
for(x=0;x<=4;x++)
Ausgabe
{
printf(\nDer Wert %i war %i,x+1,Wert[x];
}
Daten dauerhaft ablegen
è
Ablegen von Daten in einer
Datei
Vorgehensweise : - speichern :
1.)
öffnen bzw. erstellen einer
Datei
2.)
Daten in Datei schreiben formatiert
3.)
Schließen der Datei
auslesen :
Datei öffnen
dto.
Funktion
: fopen (file open)
Syntax :
FILE fopen(char*filename,char*mode);
ADRESSE
DATEINAME
MODUS
Zum Beispiel :
datei 1 =fopen(meine.dat,r);
Variablendeklaration : FILE_*datei1;
Modis : r nur lesen
w nur schreiben (überschreibt oder legt an)
a nur schreiben ,wenn exsistent dann anhängen an Dateiende, sonst anlegen
r+ schreibe n und lesen einer Vorhandenen Datei
w+ schreiben und lesen (überschreiben und anlegen)
a+ schreiben und lesen (anhängen bzw.anlegen)
©Copyright Eibert
![]()