http://www.guna.de

 

Programmierung in C und C ++

 

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

 

Die Punkte 1.1. und 1.3. sind im Gegensatz zu 1.2. nicht dringent notwendig

 

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.

 

Einfache Berechnung

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)

 Beis p ielp rog r amm

 

clrscr ( ) è clear screen    = löscht den Bildschirm

 

Formatangaben für scanf   

Gebräuchliche Variablentypen , Bezeichnungen , Platzhalter und Schalter

 

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

 

Modifikator

 

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);

 

Zum Beenden   auf Tastaturdruck

 

getch ( )   è holt ein Zeichen von der Tastatur

 

printf(„\n\t Beenden mit beliebiger Taste“);

getch( );

return 0;

}

Wiederholungen   for – Schleife

 

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‘))

Mittwoch, 25. August 1999

 

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

 

Tastaturabfrage

:

:

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( );

 

Variablen

 

 


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

 

 


linie(10,240,630,240);                                                                

 

1                             2

 

                 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

Ausgabe der „Zahl 1“                     --- Wird die Variable   in““ gesetz wird sie automatisch  

                                                             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

 

 
Beispiel einer Funktionserstellung zum einfügen neuer Zeilen

#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)

 

Zusammenfassung mehreren Variablen gleichen Types.

Definition:

int werte[4];

 


Typ Name   Anzahl der Einzelelemente

0

1

2

3

4

11

12

13

14

15

   

 

 

Wert[1]

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

powered by www.eibert.de