8. Funktionen mit Arrays

Größe: px
Ab Seite anzeigen:

Download "8. Funktionen mit Arrays"

Transkript

1 8. Funktionen mit Arrays

2 Motivation Call by Value als Übergabetechnik kommt nur bei einfachen Variablen zum Einsatz. Das Anlegen von "Kopien" ist da akzeptabel. Bei Arrays ist es dagegenweniger sinnvoll, da Arrays oft viel Speicherplatz belegen. Daher werden in diesem Fall der Funktion durch den Compiler alle relevanten Informationen über das Array übermittelt, um mit den Originaldaten arbeiten zu können. Kopien sind damit überflüssig. Man benötigt daher in einer Funktion: 1) Die Information, dass es sich um ein Array handelt: [] angeben 2) Die Länge eines Arrayelements: ergibt sich aus demtyp 3) Die Anfangsadresse des Arrays: ->erledigt der Compiler (da Array) 4) Zugriff auf Arrayelemente: wie bisher mittels Index Der Zugriff auf eiarrayelement erfolgt über dessen Adresse gemäß Adresse = Anfangsadresse(Array) + Index * Länge eines Elements Da diese Angaben der aufrufenden Funktion übermittelt werden, kann mit den Originaldaten gearbeitet werden. Der Index ist dann üblicherweise eine lokale Größe der Funktion. Dr. Norbert Spangler /Programmieren

3 void arrayin ( int n, char p_x[]) // Definition //Array lesen for (int i=0;i<n;i++) cin>>p_x[i]; void arrayout ( int n, char p_x[]) //Array ausgeben cout<<endl; for (int i=0;i<n;i++) cout<<p_x[i]; cout<<endl; Einfache Beispiele void arraycopy ( int n, char p_x[],char p_y[]) //Array kopieren for (int i=0;i<n;i++) p_y[i]=p_x[i]; MehrereArrays sind möglich Durch Angabe der Indexklammern [ ] erkennt der Compiler, dass der entsprechende Parameter ein Array ist. Beim Aufruf der Funktion wird somit die Anfangsadresse des aktuellen Parameters übergeben. Durch den Typ wird die Länge der Arrayelemente festgelegt. Die Anzahl der zu verwendenden Elemente wird benötigt. Die Elemente können damit geändert werden - Keine Kopie!!!!! Dr. Norbert Spangler /Programmieren

4 Dr. Norbert Spangler /Informatik Beispiel/main void main() char x[10],y[10]; void arrayin( int,char[]); // Prototypen void arraycopy( int,char[],char[]); void arrayout( int,char[]); cout<<"anzahl der Elemente "; int n; cin>>n; if ( n>10 )//einfache Kontrolle exit(1); arrayin(n,x); //Aufrufe arraycopy(n,x,y); arrayout(n,y); Aktueller Parameter ist jeweils nur der Name des Arrays ohne Indexklammern, dessen Anfangsadresse dann verwendet wird. Durch Verwendung der Indexklammern [ ] erkennt der Compiler, dass der entsprechende Parameter ein Array ist. Der Programmcode für main kann erstellt werden

5 8.1 Eindimensionale Arrays als Parameter Prototyp im Prototyp ist nach dem Typ bei Arrays eine [] anzugeben. In der Regel ist ein zusätzlicher Parameter vom Typ int für die Anzahlder belegten bzw. zu verwendende Elemente notwendig. Allgemein: typfunktion funktionsname(,int, typarray[],.); Beispiele: void arrayin( int,char[]); // Array lesen double summe(int, double[]); //Summation eines Arrays vom Typdouble int summe(int,int[]); //Summation eines Arrays vom Typ int Dr. Norbert Spangler /Programmieren

6 Aufruf der Funktion Eindimensionale Arrays als Parameter/Aufruf -> imaufruf ist nur der Name des Arrays ohne [] anzugeben. Die Anzahl der verwendeten Komponenten steht in einemzusätzlichen Parameter. Allgemein: funktionsname(,anzahl, namearray,.); // falls vom Typ void result=funktionsname(,anzahl, namearray,.); // andernfalls als R-Wert Beispiele: arrayin(n,x); // Aufruf einer Funktion vom Typ void zum Einlesen einesarrays double h=summe(n, a); //Summation eines Arrays a cout<<summe(anzahl, b); //Summation eines Arrays b Dr. Norbert Spangler /Programmieren

7 Eindimensionale Arrays als Parameter/Definition Definition In der Definition ist auf der entsprechenden Parameterposition der Name des formalen Parameters mit den Indexklammern [] anzugeben. Allgemein typfunktion namefunktion(, int anzahl, typarray namearray[], ).. Funktionsblock.. Dr. Norbert Spangler /Programmieren

8 Eindimensionale Arrays als Parameter/Beispiele int stelle_maximum ( int n, int wert[]) if ( n<= 0 ) return -1; else int position=0, max=wert[0]; for (int i=1;i<n;i++) if ( wert[i]>max) max=wert[i]; position=i; return position; double summe ( int n, double x[]) double s=0.0; for (int i=0;i<n;i++) s+=x[i]; return s; Was fällt bei der Betrachtung der beiden Funktionen mit Namen summe auf? int summe ( int m, int t[]) int s=0.0; for (int i=0;i<n;i++) s+=t[i]; return s; Dr. Norbert Spangler /Programmieren

9 8.2 Mehrdimensionale Arrays als Parameter Um mit mehrdimensionalen Arrays arbeiten zu können müssen analog zuden eindimensionalen die relevanten Informationen übermittelt werden: 1) Anfangsadresse 2) Länge eines Elements Ein "Element" eines 2-dimensionalen Arrays ist aber ein eindimensionales Array mit einer vorgegebenen Zahl (Spaltenzahl) von Einzelelementen. Diese Anzahl wird in der Deklaration festgelegt. Dessen Länge ist dann die Länge einer Zeile gemäß Deklaration = Länge des Typs*Spaltenzahl Aus diesem Grund wird die Anzahl der Elemente in einer Zeile aus der Deklaration zusätzlich benötigt. Achtung: Es müssen aber nicht alle aktuell verwendet werden Dr. Norbert Spangler /Programmieren

10 Mehrdimensionale Arrays als Parameter Verwendete Spalten / irrelevant für Adressierung Verwendete Zeilen Deklarierte Zeilen (prinzipiell nicht notwendig) Deklarierte Spalten / sie bestimmen die Länge der abgespeichterten Zeilen Die Funktion benötig daher in der Regel folgendeangaben: Deklarierte Spalten Verwendete Zeilen und Spalten Fallweise auch die deklarierten Zeilen falls Zeilen eingefügt werden sollen Dr. Norbert Spangler /Programmieren

11 Mehrdimensionale Arrays als Parameter Im Prototyp und in der Definition muss daher die Anzahl der deklarierten Elemente einer Zeile angegeben werden. Diese muss vom Typ const int sein. Bei 2-dimensionalen Arrays ist dies die Anzahlder Spalten. Bei höher dimensionalenarrays sind dies alle Anzahlen bist auf die erste Prototyp typfunktion namefunktion(..,arraytyp[][anzahlspalten], )//für 2-dim. void verarbeitematrix (, double [][10], ) void funktion(,int [][30][24], )//für 3-dim usw. Definition typfunktion namefunktion(..,arraytyp arrayname[][anzahlspalten], ) void verarbeitematrix (, double mat[][10], )//für 2-dim. void funktion(,int mw[][30][24], )//für 3-dim usw. Für die tatsächlich verwendeten (belegten) Elemente sind zusätzlich entsprechende Variable vom Typ int anzugeben. Dr. Norbert Spangler /Programmieren

12 Mehrdimensionale Arrays als Parameter/Aufruf Beim Aufruf ist wie bei den eindimensionalenarrays zu verfahren. Es ist nur der Arrayname anzugeben. namefunktion(..,arrayname ); // falls vom Typ void ergebnis =namefunktion(..,arrayname ); // andernfalls vom Typ void Dr. Norbert Spangler /Programmieren

13 Mehrdimensionale Arrays als Parameter/Beispiel Definition Anzahl der (tatsächlich) zu verwendenden Zeilen und Spalten void matrixausgabe(int m,int n,int mat[][4]) for ( int i=0;i<m;i++ ) cout<<endl; for ( int j=0;j<n;j++ ) cout<<setw(3)<<mat[i][j]; cout<<endl; Anzahl der deklarierten Spalten Dr. Norbert Spangler /Programmieren

14 Mehrdimensionale Arrays als Parameter/Aufruf void main() int zahl[5][4]= 1,2,3,4,5,6,7,8,9,10,11,12; void matrixausgabe(int,int,int[][4]); matrixausgabe(4,3,zahl); //Ausgabe von 4 Zeilen/3 Spalten matrixausgabe(5,5,zahl);//!!!!! Nicht deklarierte Elemente werden mit 0 initialisiert. Der Zugriff auf Elemente ausserhalb des Arrayswird nicht abgefangen Dr. Norbert Spangler /Programmieren

15 8.3 Beispiel Einfügen und Löschen Einfügen und Löschen sind typische Funktionen für Arrays. Vereinfachte Lösung für Löschen ohne Plausibilitätskontrolle (Einfügen analog) ( analog zum Kapitel "Algorithmen fürarrays") void loeschen(int n, double a[], int position) for ( int i=position;i<n-1;i++) a[i]=a[i+1]; //umspeichern n=n-1;//anzahl reduzieren Warum läuft die Funktion nicht richtig unabhängig von der Plausibilitätskontrolle? Was passiert? Dr. Norbert Spangler /Programmieren

16 8.4 Beispiel Sequenzielle und Binäre Suche //Sequenzielle Suche int sucheseq( int n, int a[],int element ) for ( int i=0;i<n;i++) if ( a[i]==element )//gefunden return i; return -1; int suchebinaer( int n, int a[],int element ) int anfang_abschnitt=0; int ende_abschnitt=anzahl-1;//gesamtesarray //Suchschleife while ( anfang_abschnitt<=ende_abschnitt) int mitte=(anfang_abschnitt + ende_abschnitt)/2; if ( element< a[mitte] ) // links weiter ende_abschnitt=mitte-1; else if ( element> a[mitte] ) rechts weiter anfang_abschnitt=mitte+1; else return mitte; return -1;//nicht gefunden 1:1 Umsetzung der bekannten Verfahren Dr. Norbert Spangler / Grundlagen der Informatik

17 8.5 Beispiel Sortieren durch Einfügen void sorteinfuegen(int n, double a[]) for ( int j=1;j<n;j++) // Einfuegen von a[j] in a[0] a[j-1] double h=a[j]; //sichern wg. umspeichern // Position suchen int i,position=j;//letzte Stelle wenn alle groesser sind for ( i=0; i<j; i++) if ( a[i]>h )// a[j] kommt vor a[i] position=i; break; for ( i=j;i>position;i--) a[i]=a[i-1]; //umspeichern a[position]=h;//a[j] eingefuegt Mögliche Hilfsfunktionen Position suchen Umspeichern und Einfügen Dr. Norbert Spangler /Programmieren

18 Beispiel Sortieren durch Einfügen/Variante void sorteinfuegen(int n, double a[]) int suchepos(int,int[],int); void umspeichern(int,int,int[]); for ( int j=1;j<n;j++) // Einfuegen von a[j] in a[0] a[j-1] double h=a[j]; //sichern wg. umspeichern // Position suchen int position=suchepos(j,a,h); umspeichern(position,j,a); a[position]=h;//a[j] eingefuegt Verwendung von zwei Hilfsfunktionen Position suchen suchepos Umspeichern umspeichern Vorteil: Die einfachen Hilfsfunktionen suchepos und umspeichern sind leicht zu testen. SortEinfuegen ist sehr übersichtlich geworden. -> Die Zerlegung in passende Funktionen verbessert die Qualität Dr. Norbert Spangler /Programmieren

19 8.6 Beispiel Sortieren durch Auswahl Grundidee: Man suche das Maximum und stelle es an das Ende desarrays. Dann wiederhole man das mit dem um 1 Element reduzierten Array. In einem Programm fallen damit folgende Aufgaben an: - Array Lesen - Sortieren - Ergebnis ausgeben Im Sortierverfahren ist eine Maximumsuche hilfreich, ggf. noch ein Tauschalgorithmus Dr. Norbert Spangler /Programmieren

20 Sortieren durch Auswahl/Programmstruktur Main Array lesen Sortieren durchauswahl Array ausgeben Maximum suchen Ev. tauschern Zu Beginn wurde alles in eine Funktion (Main) gepackt. Prinzipiell ist es besser, die Aufgabe in einfachere Funktionen (Komponenten) zu zerlegen. Diese sind dann separat zu entwickeln und zu testen. In der Regel erhält man so übersichtlichere/bessere Programme. Dr. Norbert Spangler /Programmieren

21 Beispiel Funktion Maximumsuche int stellemaximum(int n, double a[]) if ( n<=0 ) return -1; else double maximum=a[0]; int stelle_maximum=0; for ( i=1; i<n; i++) if ( maximum<a[i] )// neues gefunden stelle_maximum=i; maximum=a[i]; return stelle_maximum; Dr. Norbert Spangler /Programmieren

22 Funktion Sortieren durch Auswahl void sortierenauswahl (int n,double a[]) int stellemaximum(int, double []);//Prototyp for ( int j=n-1;j>0n;j--) // Maximumsuche a[0] a[j] int position=stellemaximum(j,a); //Tauschen if ( position!=j) //an Stelle j tauschen. double h=a[j]; a[j]=a[position]; a[position]=h; Dr. Norbert Spangler /Programmieren

23 Beispiel Sortieren durch Auswahl/Testprogramm void main() void arrayin(int,double[]);//prototypen void arrayout(int,double[]); void sortierenauswahl(int,double a[]); int n; double a[100]; cout<<" Wieviele Elemente sollen sortiert werden (Limit 100) "; cin>>n; if ( n>100 ) return; cout<<"elemente eingeben"<<endl; arrayin(n,a); sortierenauswahl(n,a); cout<<"sortiert"<<endl; arrayout(n,a); Dr. Norbert Spangler /Programm ieren

24 8.7 Beispiel char-array Zur Verhinderung von Eingabefehlern beim Lesen von ganzen Zahlen soll dies zeichenweise in ein Array vom Typ char geschehen. -> siehe Kap. 05 Funktion 1: Überprüft, ob das Array nur Ziffern enthält. Funktion 2: Ein Array, welches nur Ziffern enthält, nach int umwandeln. Dr. Norbert Spangler /Programmieren

25 Beispiel char-array: test_ziffern Ein Zeichen x ist eine Ziffer, wenn es in der ASCII-Tabelle zwischen den Zeichen 0 und 9 aufgeführt ist, also der Bedingung '0'<= x && x <= '9' genügt. Andernfalls ist es keine Ziffer. bool test_ziffern(int n,char c[]) for ( int i=0;i<n;i++ ) if ( c[i]<'0' '9'<c[i] )//keine Ziffer return false; return true; Testplan Nr. Fall n Array Ergebnis 0 1 keine Zeichen Ein Zeichen true 1.1 OK 1 6 true 1.2 Falsch 1 x false 2 5 Zeichen 5.1 OK true 5.2 Falsch/Anfang 5 a2342 false 5.2 Falsch/Mitte 5 122c2 false 5.2 Falsch/Ende s false Struktogramm Übung Achtung: Unzulässige Daten kann es nicht geben!!! Dr. Norbert Spangler /Programmieren

26 Beispiel char_to_int Für ein Zeichen x, welches eine Ziffer darstellt, lässt sich der Wert als int ermitteln, wenn man den "Abstand" zur 0 in der ASCII-Tabelle berechnet: ziffer = x '0' Den Wert der Zahl, der in einem Array vom Typ char gespeichertist, ermittelt man mit dem Hornerschema. int char_to_int(int n,char c[]) //Horner-Schema int summe=0; for ( int i=0;i<n; i++) summe= summe*10+ ( c[i]-'0'); return s; Struktogramm und Testplan: Übung c[0]c[1]c[2]c[3]c[4] n 1 zahl = c[n 1 i]*10 Dr. Norbert Spangler /Programmieren i=0 i

27 Beispiel main void main() bool test_ziffern(int,char[]); int char_to_int(int,char[]); char c[20]; cin>>c; int n=(int)strlen(c); if ( test_ziffern(n,c) ) cout<<" Die Zahl ist "<<char_to_int(n,c)<<endl; else cout<<c<<" ist keine Zahl"<<endl; Damit können unzulässige Eingaben abgefangen werden. Man könnte also hier im main entsprechend reagieren. Generell gibt es für dieses Thema der Fehler in Funktionen verschiedene Techniken Dr. Norbert Spangler /Programmieren

28 8.8 Funktionen und Fehlermeldungen Ausgangssituation: Bei der Lösung einer Teilaufgabe mittels einer Funktion kann es vorkommen, dass ein Fehler in der Funktion auftritt bzw. kein Ergebnis ermittelt werden kann. Beispiele: a) Es sollen Daten eingelesen werden, etwa in ein Array. Es können Daten - unzulässig sein (Zeichen statt Ziffern vgl. auch test_ziffern) - Daten fehlen - zu viele Daten (etwa aus einer Datei) vorliegen. b) Ein Element wird gesucht, welches nicht gefunden wird. c) Daten sind nicht sortiert, sollten es aber sein (z.b. wg. Binaerer Suche) Dr. Norbert Spangler /Programmieren

29 Funktionen und Fehlermeldungen: Reaktion 1 Abfragen einer Benutzerreaktion Der Anwender wird beispielsweise (mittels einer geeigneten Schleife) aufgefordert, korrekte Daten einzugeben. Man hat also eine Wiederholung der Eingabe. Dies ist nur sinnvoll, wenn es vorher abgestimmt war. Nachteile: Erhöhter Programmieraufwand Wenn der Einsatz der Funktion nicht bekannt ist, muss dies nicht passen. Werden etwa die Daten aus einer Datei gelesen kann keine Benutzeraktion erfolgen. Dr. Norbert Spangler /Programmieren

30 Funktionen und Fehlermeldungen: Reaktion 2 Ausgabe einer passenden (Fehler-)Meldung am Bildschirm Dies ist in der Regel die am wenigsten geeignete Reaktion. Es ist in der Regel nicht bekannt, wo die Funktion eingesetzt wird. Damit kann ein vorhandener gefälliger Bildschirm durch die Meldung optisch zerstört werden. Funktionen sollten generell keine Bildschirmausgaben machen, es sei denn, es handelt sich um Ausgabefunktionen. Dr. Norbert Spangler /Programmieren

31 Returncode Funktionen und Fehlermeldungen: Reaktion 3 Die Funktion erhält einen speziellen Funktionswert (=Returncode), anhand dessen erkennbar ist, ob ein bzw. welcher Fehler vorliegt. Danach kann in dem Teil, wo die Funktion aufgerufen wurde, durch den Anwender der Funktioneine Reaktion. programmiert werden. Beispiel: bool eingabe(.); if ( eingabe( ) ) // alles OK else // Fehler // Funktionswert vom Typ bool Alternative int eingabe( ) // Funktionswert vom Typ int Wert = 0: alles OK = 1: Fehlertyp 1 = 2: Fehlertyp 2 usw. Alternative: Returncode als Parameter -> nur mittels Call by Reference (Im SS). Dr. Norbert Spangler /Programmieren

Kap 7. Funktionen und Arrays

Kap 7. Funktionen und Arrays Kap 7. Funktionen und Arrays Elementare Algorithmen Allgemein Mathematik Text Eingabe ٧ Skalarprodukt wie Allgemein Ausgabe ٧ Länge ersetzen Summation Winkel Laenge Maximum ٧ Polynome berechnen ausschneiden

Mehr

Kap 6. Arrays und Algorithmen

Kap 6. Arrays und Algorithmen Kap 6. Arrays und Algorithmen Aufgaben mit Arrays/exemplarische Beispiele Aufgabe Allgemein Mathematik Informatik Eingabe X X X Ausgabe X X X Initialisierung X X X Summe/Mittelwert X X X Maximum/Minimum

Mehr

6. Grundlagen von Funktionen

6. Grundlagen von Funktionen 6. Grundlagen von Funktionen C++ Programm Bestandteile eines C++ - Programms C++ Kern Standardbibliothek Anwender Sonstiges vordefinierte Datentypen, Operatoren, Befehle vordefinierte Funktionen (und Klassen)

Mehr

8. Referenzen und Zeiger

8. Referenzen und Zeiger 8. Referenzen und Zeiger Motivation Variable werden in C++ an speziellen Positionen im Speicher abgelegt. An jeder Position befindet sich 1 Byte. Sie sind durchnummeriert beginnend bei 0. Diese Positionen

Mehr

Motivation/Beispiel. Zur Auswertung der Klausuren im Fach Programmieren fallen folgende Daten an:

Motivation/Beispiel. Zur Auswertung der Klausuren im Fach Programmieren fallen folgende Daten an: Kap 5. Arrays Motivation/Beispiel Zur Auswertung der Klausuren im Fach Programmieren fallen folgende Daten an: Für jeden Teilnehmer: Matrikelnummer Name Vorname sowie die Punkte der 8 Aufgaben Daraus wird

Mehr

Klausur Informatik WS 2012/13

Klausur Informatik WS 2012/13 Klausur Informatik WS 2012/13 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweies: Voraussetzung für die Teilnahme ist das Bestehen

Mehr

Kap 09. Funktionen/Ergänzungen

Kap 09. Funktionen/Ergänzungen Kap 09. Funktionen/Ergänzungen 9.1 Inline-Funktionen Der Mechanismus der Parameterübergabe hat einen "hohen" organisatorischen Aufwand z.b. durch kopieren der Parameteretc. Ist die Funktion vergleichsweise

Mehr

Klausur Programmieren 1 SS 2017

Klausur Programmieren 1 SS 2017 Klausur Programmieren 1 SS 2017 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweies: Voraussetzung für die Teilnahme ist das Bestehen

Mehr

Klausur Informatik I WS 2006/2007

Klausur Informatik I WS 2006/2007 Klausur Informatik I WS 2006/2007 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Hinweis: sofern Sie die Rückseite eines Blattes verwenden vermerken sie dies auf der Vorderseite Nr.

Mehr

7. Grundlagen von Funktionen

7. Grundlagen von Funktionen 7. Grundlagen von Funktionen Funktionen in C++ Bestandteile eines C++ - Programms C++ Kern Standardbibliothek Anwender Sonstiges vordefinierte Datentypen, Operatoren, Befehle vordefinierte Funktionen (und

Mehr

FB Informatik. Fehler. Testplan

FB Informatik. Fehler. Testplan Fehler #include int i,n,summe; int summe (int); cout 0) cin>n; i=summme(n); cout

Mehr

5. Elementare Befehle und Struktogramme

5. Elementare Befehle und Struktogramme 5. Elementare Befehle und Struktogramme Programmablauf Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme Dr. Norbert Spangler / Grundlagen

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

Klausur Programmieren 2 SS 2016

Klausur Programmieren 2 SS 2016 Klausur Programmieren 2 SS 2016 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweise: Formulieren Sie Ihre Lösungen auf dem Aufgabenblatt

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Welche Arten von Anweisungen gibt es? Anweisungen

Mehr

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

Mehr

Lösungen Übung 5. Programmieren in C++ 1. Aufgabe. #include <iostream.h> #include <stdarg.h>

Lösungen Übung 5. Programmieren in C++ 1. Aufgabe. #include <iostream.h> #include <stdarg.h> Lösungen Übung 5 1. Aufgabe #include int max(int anzarg, int a, int b,...) // Hilfsvariable für variable Parameter va_list argumente; va_start(argumente,b); // "b" letzter Parameter der Funktion,

Mehr

Teil 5: Zeiger, Felder, Zeichenketten Gliederung

Teil 5: Zeiger, Felder, Zeichenketten Gliederung Teil 5: Zeiger, Felder, Zeichenketten Gliederung Zeiger und Adressen Felder (Arrays) Zeichenketten (Strings) Zeigerarithmetik Mehrdimensionale Felder Zeiger und Adressen Felder Zeichenketten Zeigerarithmetik

Mehr

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Andre Droschinsky Ingo Schulz Dortmund, den 0. Dezember 2015 Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Block rot Es können 4 + 1 Punkte erreicht werden. Abgabedatum: 10. Dezember 2015 2:59 Uhr Hinweise

Mehr

Vorlesung Objektorientierte Programmierung Klausur

Vorlesung Objektorientierte Programmierung Klausur Prof. Dr. Stefan Brass 16. Februar 2007 Dipl.-Inform. Annett Thüring Institut für Informatik MLU Halle-Wittenberg Vorlesung Objektorientierte Programmierung Klausur Name: Matrikelnummer: Studiengang: Aufgabe

Mehr

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 5-1 Übung Schreiben Sie ein Programm, das die Zahl π durch π = 4 4 4 4 4 4 + + +... 3 5 7 9 11

Mehr

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter}); S. d. I.: Programieren in C Folie 7-1 7 Funktionen 7.1 Definition Prototyp-Syntax: Speicherklasse Typ Name (formale Parameter); der Funktions-Prototyp deklariert eine Funktion, d.h. er enthält noch nicht

Mehr

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Übungspaket 23 Mehrdimensionale Arrays

Übungspaket 23 Mehrdimensionale Arrays Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:

Mehr

einlesen n > 0? Ausgabe Negative Zahl

einlesen n > 0? Ausgabe Negative Zahl 1 Lösungen Kapitel 1 Aufgabe 1.1: Nassi-Shneiderman-Diagramm quadratzahlen Vervollständigen Sie das unten angegebene Nassi-Shneiderman-Diagramm für ein Programm, welches in einer (äußeren) Schleife Integer-Zahlen

Mehr

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach 10.

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach  10. Zeiger C-Kurs 2012, 2. Vorlesung Tino Kutschbach tino.kutschbach@campus.tu-berlin.de http://wiki.freitagsrunde.org 10. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C Übersicht Funktionen Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion Sinn von Funktionen Wiederverwendung häufig verwendeter nicht banaler Programmteile Wiederverwendung

Mehr

Übungspaket 23 Mehrdimensionale Arrays

Übungspaket 23 Mehrdimensionale Arrays Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:

Mehr

2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben.

2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben. Programmieren bei Dr. Robert Heß TM&M1, IST1 und ET1 Ende SS 2003 Klausur 1. Aufgabe (2 Punkte) Kodieren Sie folgende Dezimalzahlen in Binärzahlen um. Zeigen Sie den Rechenweg, die negative Zahl soll im

Mehr

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert

Mehr

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

Mehr

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben 18.11.5 1 HEUTE 18.11.5 3 Schleifen Arrays while, do reichen aus, um alle iterativen Algorithmen zu beschreiben Nachteil: Steuermechanismus ist verteilt Übersicht nicht immer leicht dazu gibt es for (

Mehr

620.900 Propädeutikum zur Programmierung

620.900 Propädeutikum zur Programmierung 620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Arrays Wiederholung (1/5) Array = GEORDNETE

Mehr

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz FH München, FB 03 FA WS 06/07 Ingenieurinformatik Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz Zulassung geprüft vom Aufgabensteller: Teil I Aufg. 2 Aufg. 3 Aufg. 4 Aufg. 5 Summe Note Aufgabensteller:

Mehr

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung: Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

Beispiel 1: Fakultät

Beispiel 1: Fakultät 16. Rekursion Beispiel 1: Fakultät Rekursive Definition der Fakultät (Mathematik) n! = 1 falls n=0 n*(n-1)! falls n>0 Programmierung mittels einer rekursiven Funktion in C++ double fakultaet(int n) if

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Java programmieren mit JavaKara. Eine Zusammenfassung in Beispielen

Java programmieren mit JavaKara. Eine Zusammenfassung in Beispielen Java programmieren mit JavaKara Eine Zusammenfassung in Beispielen Kleeblätter in einer Zeile zählen @Override public void mymainprogram() { int anzahlkleeblaetter = 0; for (int x = 0; x < world.getsizex();

Mehr

5. Strukturen und Algorithmen

5. Strukturen und Algorithmen 5. Strukturen und Algorithmen Struktur 5.1 Modellierung allgemein Element Kabel1 Lampe Kabel2 Objekte der Struktur Struktur -> Klasse Element -> Klasse Datenstruktur Dr. Norbert Spangler / Grundlagen der

Mehr

Grundlagen der Informatik 8. Funktionen I

Grundlagen der Informatik 8. Funktionen I 8. Funktionen I Motivation Grundlagen Parameterübergabe Struktogramme Grundlagen der Informatik (Alex Rempel) 1 Motivation Funktionen sind Mittel der Programmstrukturierung Modularisierung Aufteilung in

Mehr

Inhalt. Peter Sobe 63. Felder in C

Inhalt. Peter Sobe 63. Felder in C Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Streuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Pointern

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Felder, mehrdimensional Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Überblick: mehrdimensionale Felder 2 Vereinbarung

Mehr

Auswahlen (Selektionen)

Auswahlen (Selektionen) 1 Anhang 10.3 Ein/Ausgaben Eingabe mit Prompt (Beispiel) cout ; // Prompt ohne endl cin

Mehr

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010 Grundlagen der Programmierung Teil1 Einheit III - 22. Okt. 2010 GDP DDr. Karl D. Fritscher basierend auf der Vorlesung Grundlagen der Programmierung von DI Dr. Bernhard Pfeifer Einschub Bevor wir mit den

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Funktionen Rückblick Operatoren logische Verknüpfungen Zusammengesetzte Operatoren ( Zuweisungsoperatoren ) Kontrollstrukturen Bedingte Anweisungen (if-abfrage, switch-konstrukt)

Mehr

Standardkonstrukte in Java

Standardkonstrukte in Java Robert Buchholz, Sven Schneider JavaKurs 2006 1. Tag Freitagsrunde / Tutoren 03. April 2006 Was lernen wir heute noch kennen? 1 Methoden Definition einer Methode Aufruf einer Methode 2 Datenstruktur Array

Mehr

Felder, Zeiger und Adreßrechnung

Felder, Zeiger und Adreßrechnung Felder, Zeiger und Adreßrechnung Felder bestehen aus Variablen eines einzigen Datentyps. Bisher kennen wir eindimensionale Felder. In C sind Felder mit beliebigen Dimensionen möglich. Unsere räumliche

Mehr

F Zeiger, Felder und Strukturen in C

F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C F.1 Zeiger(-Variablen) 1 Einordnung Konstante: Bezeichnung für einen Wert a 0110 0001 Variable: Bezeichnung eines Datenobjekts

Mehr

Arrays,Strings&Pointer in C/C++

Arrays,Strings&Pointer in C/C++ Arrays,Strings&Pointer in C/C++ Vortrag Mathias Reich Am 21.5.2002 Pointer Da zur Zeit der Compelierung des Programms nicht immer der Umfang der zu bearbeitenden Daten feststeht muss man sich - in manchen

Mehr

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22 C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven

Mehr

Informatik I (D-ITET)

Informatik I (D-ITET) Ablauf Informatik I (D-ITET) Übungsstunde 5, 26.10.2009 simonmayer@student.ethz.ch ETH Zürich Nachbesprechung Übung 3 Besprechung/Vertiefung der Vorlesung [21.10.2009] Vorbesprechung Übung 5 2.c) Test

Mehr

Tag 4 Repetitorium Informatik (Java)

Tag 4 Repetitorium Informatik (Java) Tag 4 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Arrays (Reihungen)

Mehr

Felder (1) Allgemeines

Felder (1) Allgemeines Felder (1) Allgemeines Gleichartige Daten, wie Tabelle von Zahlen, Datumswerten, Namen etc. Felder (engl. Array) stellen einen Verbundtyp dar, in dem mehrere Daten desselben Typs gespeichert werden Oft

Mehr

Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife

Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife 303 Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife durchgeführt wird. 304 305 for-schleifen sind in Aktivitätsdiagrammen

Mehr

Informatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692

Informatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Informatik Repetitorium SS 2009 Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Operatoren und Datentypen Beispiel: Anweisungen Variable int a float b int c a= a % (int) (++b-1/4) Vorher 36 3.5 c=b

Mehr

Aufgabenblatt: Arrays

Aufgabenblatt: Arrays Aufgabenblatt: Arrays - Seite 1 Aufgabenblatt: Arrays (1.) (a.) Erstellen Sie eine Methode, die in einem Array von Zahlen nach einem bestimmten Wert sucht! static int LinearSearch(int searchvalue, int

Mehr

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch darstellung Arbeiten mit darstellung werden im Computer durch (kleine) Zahlen dargestellt in C können im Datentyp char gespeichert werden, dieser umfasst ein Byte und gilt als Ganzzahltyp darstellung Arbeiten

Mehr

15. Die Klasse string

15. Die Klasse string 15. Die Klasse string Notwendige Funktionen Erzeugen Zuweisen, Anhängen,Einfügen Löschen, Entfernen, Ersetzen Ermitteln der Größe indizierter Zugriff auf Zeichen Vergleich Suchen von Zeichen und Teil-Strings

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

Grundlagen der Programmierung in C Funktionen

Grundlagen der Programmierung in C Funktionen Der erste Mechanismus für Code-Reuse! Grundlagen der Programmierung in C Funktionen Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Ältester Mechanismus für Code-Reuse:

Mehr

Felder. M. Jakob. 28. April Gymnasium Pegnitz

Felder. M. Jakob. 28. April Gymnasium Pegnitz Felder M. Jakob Gymnasium Pegnitz 28. April 2015 Inhaltsverzeichnis 1 Begriffsbildung 2 Verwendung von Feldern Begriffsbildung Gliederung 1 Begriffsbildung 2 Verwendung von Feldern M. Jakob (Gymnasium

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 7. Funktionen Einleitung Nach dem Prinzip Divide and Conquer bietet es sich an, größere Aufgaben in kleinere Teile zu unterteilen. Anweisungsblöcke,

Mehr

Nachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe.

Nachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe. Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende

Mehr

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon

Mehr

Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 5. Blatt Für den 26. und

Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 5. Blatt Für den 26. und Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 5. Blatt Für den 26. und 27.5.2008 Organisatorisches Um auf die Mailingliste aufgenommen zu werden schicke einfach eine

Mehr

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 Reihungen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende Algorithmen auf Reihungen

Mehr

pue13 January 28, 2017

pue13 January 28, 2017 pue13 January 28, 2017 1 Aufgabe 1 (Klammern und Anweisungsblöcke) Wie Sie in der Vorlesung gelernt haben, werden Anweisungsblöcke in Java nicht durch Einrückung, sondern mithilfe von geschweiften Klammern

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen 5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 2 Arrays und Pointer Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät statische Arrays Deklaration (eindimensional): /* 40

Mehr

Arrays. Einleitung. Deklarieren einer Array Variablen

Arrays. Einleitung. Deklarieren einer Array Variablen Arrays Einleitung bisher jede Variable einzeln deklariert: 12 3 14 12 32 32 3 32 5 3 double sum; int count; ÿ Sie können Zweck und Aufbau von Array-Datentypen erklären ÿ Sie können einen Array korrekt

Mehr

Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss

Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss Arrays FTI 41 2005-09-09 Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss z.b. Dim Werte(x) As Single. Wobei

Mehr

Variablen in C++ Einfache Variablen Strukturen Arrays und Zeichenketten Zeiger und Referenzen Parameter Dynamische Speicherverwaltung

Variablen in C++ Einfache Variablen Strukturen Arrays und Zeichenketten Zeiger und Referenzen Parameter Dynamische Speicherverwaltung Variablen in C++ Einfache Variablen Strukturen Arrays und Zeichenketten Zeiger und Referenzen Parameter Dynamische Speicherverwaltung Einfache Variablen Typen int, long, short, unsigned bool char float,

Mehr

Einführung in die Programmierung Arrays, Zeiger, Strings. Arvid Terzibaschian

Einführung in die Programmierung Arrays, Zeiger, Strings. Arvid Terzibaschian Einführung in die Programmierung Arvid Terzibaschian 1 Arrays 2 Arrays: Motivation Gegeben: monatliche Durchschnittstemperaturen der letzten 5 Jahre Gesucht: Mittelwerte für Jahre, Monate, Jahreszeiten,

Mehr

Informatik 1 ( ) D-MAVT F2010. Schleifen, Felder. Yves Brise Übungsstunde 5

Informatik 1 ( ) D-MAVT F2010. Schleifen, Felder. Yves Brise Übungsstunde 5 Informatik 1 (251-0832-00) D-MAVT F2010 Schleifen, Felder Nachbesprechung Blatt 3 Aufgabe 1 ASCII... A > a Vorsicht: Lösen Sie sich von intuitiven Schlussfolgerungen. A ist nicht grösser als a, denn in

Mehr

public static void main(string[] args) {

public static void main(string[] args) { Lösungen 55 Lösungen Aufgabe 1: Die Variable y enthält den Wert 1.0. Entsprechend den Prioritäten der beteiligten Operatoren / und = wird erst die Division und anschließend die Zuweisung durchgeführt.

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2012/13 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a

Mehr

Variablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel

Variablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 4213 Variablen 17.834 float Flugzeug 36812736294 I write code Hund long String Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 3 + 4 1 Variablen sind wie Becher. Sie speichern etwas. // Variablen

Mehr

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15 Vorwort... 15 1 Einstieg in die Welt von C 17 1.1 Die Sprache C... 17 1.2 Die C-Standardbibliothek... 18 1.3 Die nötigen Werkzeuge für C... 21 1.4 Übersetzen mit der Entwicklungsumgebung... 23 1.5 Übersetzen

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2006/07 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

Mehr

Inhalt. 4.7 Funktionen

Inhalt. 4.7 Funktionen Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Steuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Pointern

Mehr

Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten

Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, 13.00-14.45 Uhr Bearbeitungszeit: 105 Minuten Schalten Sie ihr Mobiltelefon aus. Bei der Klausur ist als einziges

Mehr

+ C - Array (Vektoren, Felder)

+ C - Array (Vektoren, Felder) + C - Array (Vektoren, Felder) Eindimensionale Arrays Beim Programmieren steht man oft vor dem Problem, ähnliche, zusammengehörige Daten (vom gleichen Datentyp) zu speichern. Wenn man zum Beispiel ein

Mehr

Beispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio)

Beispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) Beispiel Beispiel: Namensliste konvertieren (Karl Egon Meier Meier, Karl Egon). s/(.*) (.*)/$2, $1/; Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) s/(.*) (.*)/$2, $1/; s/(.*) ([a-z]+

Mehr

Elementare Datentypen in C++

Elementare Datentypen in C++ Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der

Mehr

Probeklausur Informatik 2 Sommersemester 2013

Probeklausur Informatik 2 Sommersemester 2013 Probeklausur Informatik 2 Sommersemester 2013 1 Probeklausur Informatik 2 Sommersemester 2013 Name: Matrikelnummer: Hilfsmittel: Es sind alle schriftlichen Unterlagen, aber keine elektronischen Hilfsmittel

Mehr

Programmieren in C/C++: Klausur 2 ( )

Programmieren in C/C++: Klausur 2 ( ) Programmieren in C/C++: Klausur 2 (12.12.2007) Schreiben Sie jeweils ein Codefragment (ohne Eingabe oder Ausgabe), das die gewünschten Aufgabenstellungen bearbeitet. Bei den Variablen, deren Namen unterstrichen

Mehr

Programmieren in C. Funktionen mit Zeigern und Adressen. Prof. Dr. Nikolaus Wulff

Programmieren in C. Funktionen mit Zeigern und Adressen. Prof. Dr. Nikolaus Wulff Programmieren in C Funktionen mit Zeigern und Adressen Prof. Dr. Nikolaus Wulff ByValue versus byreferenz C übergibt immer Kopien der Variablen an Funktionen. Es ist nur dann möglich die Werte von Variablen

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert

Mehr

C++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Funktionen Leibniz Universität IT Services Anja Aue Subroutine (Unterprogramm) Lösung von Teilen einer Gesamtaufgabe. Kapselung von Anweisungen, die zu einer

Mehr

3.2 Datentypen und Methoden

3.2 Datentypen und Methoden Kap03.fm Seite 217 Dienstag, 7. September 2010 1:48 13 3.2 Datentypen und Methoden 217 3.2 Datentypen und Methoden Wie bei vielen höheren Programmiersprachen gibt es auch in Java einfache und strukturierte

Mehr