Beispiele: und ein Zahlenrätsel
|
|
- Ludo Meissner
- vor 5 Jahren
- Abrufe
Transkript
1 Beispiele: und ein Zahlenrätsel Aufgabenstellung: Zu lösen ist das Zahlenrätsel S E N D + M O R E M O N E Y Jeder Buchstabe steht für eine Ziffer, verschiedene Buchstaben sind verschiedene Ziffern. Ein C-Programm soll durch Probieren aller möglichen Zahlen die richtigen Lösungen herausfinden. Offensichtlich entspricht der Buchstabe M der Ziffer 1. Die Anzahl der Lösungen ist mitzuzählen. Am Anfang des Programms wird die Aufgabenstellung am Terminal angezeigt. Jede Lösung wird entsprechend aufbereitet zusammen mit dem Lösungszähler am Terminal ausgegeben. Dazu gehören auch: Programmbeschreibung und Struktogramm 1
2 #include <stdio.h> int s1,e1,n1,d1; int m2,o2,r2,e2; int m3,o3,n3,e3,y3; int lz=0; int a,b,c; void ausgabe(void); void main() { int ar[10]; int i, ars; printf("send + more = money\n===================\n\n"); m2 = m3 = 1; //Ziffer m muss 1 sein for(a=9876; a>8012; a--) { s1=a/1000; d1=a%10; e1 =(a-s1*1000)/100; n1=(a/10)%10; for (b=1023; b<1987; b++) { o2=(b-1000)/100;e2=b%10; r2=(b/10)%10; c=a+b; if((e1 == e2) && (c>10234)) { e3=(c%100)/10; o3=(c%10000)/1000; n3=(c%1000)/100; y3=c%10; if((e1 == e3) && (o2 == o3) && (n1 == n3)) { for(i=0;i<10;i++)ar[i]=0;ars=0; ar[s1]=1;ar[e1]=1;ar[n1]=1;ar[d1]=1;ar[m2]=1; ar[o2]=1;ar[r2]=1;ar[y3]=1; for(i=0;i<10;i++) ars=ars+ar[i]; if(ars == 8)ausgabe(); } } } } } und eine Lösung void ausgabe(void) { printf(" %4d %4d %4d %4d\n",s1,e1,n1,d1); printf(" %4d %4d %4d %4d\n",m2,o2,r2,e2); printf("1%4d %4d %4d %4d\n",o3,n3,e3,y3); printf("\n\n%8d\n",a); printf("+ %6d\n",b); printf("========\n"); printf("%8d\n",c); lz=lz+1; printf("das war Loesung Nummer %5d\n",lz); } 2
3 main - Kommandozeilenparameter Sie können einem Programm beim Aufruf Argumente übergeben die das Programm zur Laufzeit auswerten kann solche Argumente heißen Kommandozeilenargumente und werden in der main Funktion deklariert entweder so int main (int argc, char *argv[ ]) oder so int main (int argc, char **argv) argc = argument count argc liefert hierbei die Anzahl der übergebenen Parameter argv = argument values argv ist ein Feld von Zeigern auf char (Liste von strings) dem ersten Parameter wird immer der Programm-Name selbst als Argument übergeben Die Namen argc und argv sind die üblichen Variablennamen für die Kommandozeilenparameter 3
4 Zugriff auf die main - Kommandozeile Das Betriebssystem speichert die einzelnen Worte, die Sie auf der Kommandozeile beim Programmaufruf eingeben, als Zeichenketten ab n a m e \0 n a r g 1 \0 n a r g 2 \0 e r z j 3 Die Anfangsadressen dieser Strings werden in einem Vektor von Zeigern gespeichert NULL Die Anfangsadressen dieses Vektors steht in der Variablen argv argv: 1200 Kommandozeile: name narg1 narg2 Die Anzahl der übergebenen Argumente stehen in der Variablen argc argc: 3 4
5 Zugriff auf die einzelnen Kommandozeilenargumente Ausgehend von der Zeigervariablen argv haben Sie mit einer ersten indirekten Adressierung (z.b. *argv oder argv[0]) die Anfangsadressen der jeweiligen Argumente, die als Zeichenketten zur Verfügung stehen Mit einer zweiten indirekten Adressierung (z.b. **argv oder argv[0][0]) können Sie auf die einzelnen Zeichen der Argumente zugreifen Dabei können Sie Zeigerschreibweise oder Vektorschreibweise verwenden. Zeigerschreibweise: Anfangsadresse von name : *argv 1. Zeichen von name : **argv Vektorschreibweise: Anfangsadresse von name : argv[0] 1. Zeichen von name : argv[0][0] Gemischte Schreibweise: 1. Zeichen von name : *argv[0] 2. Zeichen von name : (*argv)[1] 5
6 Beispiele: Zugriff auf die Kommandozeilenargumente #include <stdio.h> int main (int argc, char *argv[ ]) { printf ("Anzahl der uebergebenen Argumente ist: %i\n", argc); for (int i = 0; i < argc; i++) { printf ( Argument Nr. %i ist: %s\n", i, argv[i]); } return 0; } Programmname ausgeben: puts(argv[0]); oder puts(*argv); Erstes Argument auf Vorhandensein überprüfen: if(argv[1] == NULL){ printf( %s: Argurnent erwartet!\n, argv[0]); return 1;} int i =1; while(argv[i]!= NULL) puts(argv[i++]); int i =1; while(i < argc) puts(argv[i++]); while(*++argv!= NULL) puts(*argv); while(--argc!= 0) puts(* +argv); #include <stdio.h> int main (int argc, char *argv[ ]) { char *s; if (argc > 1) { s = argv[1]; if ((s[0] == '/') && (s[1] == '?')){ printf("hilfe zum Programm\n"); // weitere Hilfetexte } } } 6
7 Komplexe Datentypen Neben den einfachen Datentypen (char, int, float) gibt es noch die zusammengesetzte Datentypen Aufzählungstypen enum Strukturen struct Vereinigungstypen union die Bitfelder zur komfortablen Benutzung einzelner bits und die selbstdefinierten Datentypen zur besseren Lesbarkeit von C-Programmen 7
8 Aufzählungstyp der Aufzählungstyp wird verwendet um anstelle von Zahlen mit Namen arbeiten zu können Beispiel: Wochentage (Montag.. Sonntag) Vereinbarung eines Aufzählungstyps: enum TypName {Element1, Element2,.. }; hierbei ist TypName der Name eines so erstellten neuen Datentyps gefolgt von einer in Klammern stehenden Liste in welcher durch Komma getrennt, die Namen der einzelnen Elemente stehen Definition einer Variablen eines Aufzählungstyps: enum TypName Variablenname; Vereinbarung und Definition können zusammengefasst werden enum Wochentage {Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag}; enum Wochentage tag; enum {Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag} tag; 8
9 enum Die Listenelemente werden durchnumeriert beginnend mit 0 man kann dem Listenelement auch einen eigenen Wert zuordnen alle folgenden Elemente werden dann von dort aus aufsteigend numeriert enum Wochentage {Montag, Dienstag, Mittwoch = 5, Donnerstag, Freitag, Samstag, Sonntag}; Variablendefinition unter Nutzung des neuen Datentyps // Variable tag mit Initialwert Montag: Wochentage tag = Montag; if (tag == 5) { aktion = backup; } durch enum wird der Code lesbarer if (tag == Mittwoch) { aktion = backup; } 9
10 enum - weitere Hinweise Die Elemente der Liste werden beginnend mit 0 bewertet. Soll das erste Element mit einer anderen Zahl anfangen, so wird diese dem ersten Element zugewiesen. enum Noten {sehr_gut = 1, gut, befriedigend, ausreichend, mangelhaft}; auch gleichwertige Elemente sind denkbar das jeweilige Element muss mit einem Wert versehen werden von da an wird wieder aufsteigend bewertet. enum bool {falsch, unwahr = 0, richtig, wahr = 1}; 0 1 Typ-Definition, Variablen-Deklaration und Initialisierung sind in einem Schritt möglich: enum bool {falsch, unwahr = 0, richtig, wahr = 1} fertig = falsch; 10
11 Strukturen Strukturen verwendet man dort, wo unterschiedliche Daten zu einem Datenobjekt zusammengefasst werden Vereinbarung einer Struktur: beginnt mit Schlüsselwort struct gefolgt von einem StrukturNamen und einer Liste von Komponenten in Klammern { } mit Semikolon abgeschlossen; jede Komponente wird durch Name und Datentyp beschrieben. Definition einer Strukturvariablen: beginnt mit Schlüsselwort struct gefolgt von dem StrukturNamen und dem Variablennamen und Semikolon Vereinbarung und Definition können zusammengefasst werden enum format {Pform, Rform}; // Datentyp für Vektoren struct vektor { format form; double betrag; double winkel; double x; double y; }; // Datentyp für komplexe Zahlen struct complex { float re; // Realteil float im; // Imaginärteil }; 11
12 Arbeiten mit Strukturen // Deklaration einer Struktur // Datentyp für komplexe Zahlen struct complex { float re; // Realteil float im; // Imaginärteil }; // Deklaration einer Variablen complex c1, c2; // Deklaration einer Struktur // und Variablendeklaration in einem Schritt // Datentyp für komplexe Zahlen struct complex { Name der Struktur! float re; // Realteil float im; // Imaginärteil } c1, c2; Name der Variablen! // Zugriff auf die Komponenten c1.re = c2.re ; c1.im = c2.im ; Auf die Komponenten einer Struktur wird mit dem Punkt-Operator. zugegriffen. 12
13 Zugriff auf Komponenten von Strukturen über den. Operator (Punktoperator) bei Zeiger auf Strukturen über den -> Operator (Pfeiloperator) anstelle von (*Stukturname).Komponente struct psatz { char *name; int Jahr; } person, *person_ptr; #include <stdio.h> #include <stdlib.h> int main () { struct psatz {char * name; int jahr;} person; struct psatz * person_ptr; person_ptr = &person; person.name = (char *) malloc (80); printf ("Bitte geben Sie einen Namen ein: \n"); gets (person.name); printf ("Bitte geben Sie das Alter von %s ein: \n", person.name); scanf ("%i", &person.jahr); printf ("%s ist %i Jahre alt\n", person_ptr->name, person_ptr->jahr); printf ("%s ist %i Jahre alt\n", (*person_ptr).name, (*person_ptr).jahr); return 0; } 13
14 Vereinigungstyp - union Eine union wird ähnlich wie struct definiert. Bei Strukturen werden die einzelnen Komponenten hintereinander im Speicher abgelegt. Im Unterschied zu struct werden die Komponenten der union überlappend auf dem selben Speicher abgelegt. Nur eine der überlappenden Elemente ist sinnvoll. Eine Unionvariable belegt mindestens soviel Speicherplatz wie ihre größte Komponente Vereinbarung einer Union: beginnt mit Schlüsselwort union gefolgt von einem UnionNamen und einer Liste von Komponenten in Klammern { } mit Semikolon abgeschlossen; jede Komponente wird durch Name und Datentyp beschrieben. Definition einer Unionvariablen: beginnt mit Schlüsselwort union gefolgt von dem UnionNamen und dem Variablennamen und Semikolon Ein Zugriff auf die Komponenten erfolgt entweder mit dem Punkt- oder mit dem Pfeiloperator 14
15 Anwendung Vereinigungstyp - union enum format {Pform, Rform}; struct vektor { format form; double r; double phi; double x; double y; }; Zugriff: v1.form = Rform; v1.vr.x = 10.0; v1.vr.y = 20.0; Zum Vergleich: Struktur Hiermit unterscheiden Sie Rform von Pform v2.form = Pform; v2.vp.r = sqrt(v1.vr.x * v1.vr.x + v1.vr.y * v1.vr.y); v2.vp.phi = atan (v1.vr.y / v1.vr.x); Und jetzt: Union enum format {Pform, Rform}; struct VPform { double r; double phi; }; struct VRform { double x; double y; }; struct vektor{ format form; union { VPform vp; VRform vr; }; } v1, v2; 15
16 struct und union - weitere Hinweise Abhängig von den Deklarationen werden die Zugriffe einfacher - bzw. mehr verschachtelt Zugriff so: v1.uv.vr.x = 10.0; struct vektor{ format form; union { struct { double r; double phi; } vp; struct { double x; double y; } vr; } uv; } v1, v2; struct vektor{ format form; union { struct { double r; double phi; }; struct { double x; double y; }; }; } v1, v2; Anonyme Union! Anonyme Struktur! Keine Namen für die Strukturen! Zugriff jetzt so: v1.form = Rform; v1.x = 10.0; v1.y = 20.0; 16
17 Bitfelder Bitfelder sind besondere Strukturen in C Zugriff auf einzelne bits oder eine Gruppe von bits struct Flags { unsigned int CF : 1; unsigned int : 5; unsigned int ZF : 1; unsigned int SF : 1; unsigned int : 3; unsigned int OF : 1; unsigned int : 0; } Insbesondere interessieren : CF - Carry OF - Overflow SF - Sign ZF - Zero 17
18 struct Flags { unsigned int CF : 1; unsigned int : 5; unsigned int ZF : 1; unsigned int SF : 1; unsigned int : 3; unsigned int OF : 1; unsigned int : 0; } flag; if (flag.of) printf ("Overflow\n"); Bitfelder - Regeln Bitfelder werden als Komponenten einer Struktur definiert erlaubte Datentypen sind int unsigned int signed int hinter der Komponente wird durch : getrennt die Anzahl der bits für diese Komponente angegeben wird für die Komponente kein Name angegeben, so werden soviele ungenutzte bits reserviert wie durch den Doppelpunkt angegeben wird als Breite 0 angegeben, so wird das nachfolgende Element im nächsten 16bit Wort abgelegt (alignment). Ansonsten wird auf die Komponenten wie auf eine normale Strukturkomponente zugegriffen. Bitfelder sind implementationsabhängig 18
19 typedef Mit typedef wird ein neuer Name für einen bestehende Typ vereinbart. Es wird kein Datentyp damit deklariert! Es wird auch kein Speicher reserviert. SYNTAX: typedef existierendertyp neuertypname Beispiele: typedef unsigned int size_t; (aus der <stdio.h>) typedef struct {float re; float im;} complex; Es können nun Variablendeklarationen mit dem neuen Namen erfolgen: size_t z = 10; complex c1, c2; 19
20 und eine kleine Anwendung mit einem kleinen Würfel #include <stdio.h> typedef struct { int side[6]; }cube; cube cub[1]; enum seiten {FRONT, BACK, LEFT, TOP, RIGHT, BOTTOM}; int main() { } int ret; int rot_y_right(cube*); int show_cube(cube*); int init_cubes(cube*); ret=init_cubes(&cub[0]); printf("\nshow Initial Configuration\n\n"); ret=show_cube(&cub[0]); ret=rot_y_right(&cub[0]); printf("\nshow Configuration after turning\n\n"); ret=show_cube(&cub[0]); return 0; int rot_y_right(cube *c) { int tmp; tmp = c->side[front]; c->side[front] = c->side[left]; c->side[left] = c->side[back]; c->side[back] = c->side[right]; c->side[right] = tmp; return 0; } int show_cube(cube *c) { char *col[4] = {"red","green","blue","white"}; printf("show sides for Cube:\n"); printf("front\tback\tleft\tright\ttop\tbottom\n"); printf("%s\t%s\t%s\t%s\t%s\t%s\n",col[c->side[front]], col[c->side[back]], col[c->side[left]], col[c->side[right]], col[c->side[top]], col[c->side[bottom]]); return 0; } int init_cubes(cube *c){ /* Initialize Cube */ enum farbe {RED, GREEN, BLUE, WHITE}; c->side[front] = WHITE; c->side[back] = BLUE; c->side[left] = RED; c->side[top] = GREEN; c->side[right] = RED; c->side[bottom] = RED; return 0; } 20
Arrays (Felder/Vektoren)
Arrays (Felder/Vektoren) Zusammenfassung mehrerer Variablen des gleichen Typs unter einem Namen im Speicher direkt hintereinander abgelegt Definition: Typname Arrayname [Größe]; Beispiel: int ar [5]; Zugriff
MehrÜbersicht. Informatik 1 Teil 9: komplexe Datentypen (Strukturen, Enumerationen, Unions)
Übersicht 9.1 Strukturen (Verwendung) 9.2 Strukturen (Typdeklaration) 9.3 Strukturen (Variablendeklaration) 9.4 Felder aus Strukturen 9.5 Zugriff auf Strukturkomponenten 9.6 Zugriff auf Strukturkomponenten
MehrVariablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes
Variablen Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes v ist Stück im Speicher, der 4 Bytes lang ist Speicherzugriff? Über Adressen!
MehrC-Programmierkurs Mathematik
Mathematik WS 2018/2019 Dr. Bodo Kalthoff Speicher für Werte Variablen Über Variablennamen ansprechbar Sprechende Namen vergeben! Variablen können Zahlen, Buchstaben oder komplexere Werte enthalten Der
MehrPraxis der Programmierung
Arrays, Pointerarithmetik, Konstanten, Makros Institut für Informatik und Computational Science Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Arrays (Felder/Vektoren) 2 Arrays: Motivation
MehrEinführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin
Fakutltät IV Technische Universität Berlin 5. Mai 2014 Inhaltsverzeichnis 1 2 3 4 5 6 7 Überblick Beispielprogramm in Java Beispielprogramm in C 1 2 3 4 5 6 7 Beispielprogramm in Java Beispielprogramm
MehrINE1 Arrays, Zeiger, Datenstrukturen
INE1 Arrays, Zeiger, Datenstrukturen Arrays Felder von Elementen gleichen Typs Verwenden von Adressen: Zeiger Datenstrukturen mit struct Zeiger auf Datenstrukturen Spezielle Zeiger und komplexe Deklarationen
MehrObjekte werden eindeutig beschrieben durch ihren Typ und einen beliebig wählbaren Bezeichner.
Grundlegende Deklarationen Seite 1 von 6 Jedes Programm benötigt Objekte. Ein Objekt ist ein reservierter Bereich im Systemspeicher in welchem Informationen abgelegt werden. Informationen sind z.b. Zahlen,
MehrC++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue
C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen Leibniz Universität IT Services Anja Aue Zeiger (Pointer) Verweis auf eine Speicherstelle. Speicherung einer Speicheradresse.
MehrTyp : void* aktuelle Parameter Pointer von beliebigem Typ
2. Funktionen - Prototypvereinbarung typangabe funktionsname(parameterliste); - Funktionsdefinition typ funktionsname(parameterliste){ Anweisung - Funktionstyp -> Typ der Funktionswertes zulaessige Typangaben
MehrStrukturen in C. Strukturen stellen eine Zusammenfassung von Datenelementen unterschiedlichen Typs unter einem Namen dar.
Strukturen in C Strukturen stellen eine Zusammenfassung von Datenelementen unterschiedlichen Typs unter einem Namen dar. Dadurch sind sie vergleichbar mit Feldern, die eine Zusammenfassung (Reihung) von
MehrProgrammiersprache 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,
MehrProgrammierkurs C++ Datenstrukturen Seite 1
Programmierkurs C++ Datenstrukturen Seite 1 3 Datenstrukturen 3.1 Arrays Zur Wiederholung als Strukturelement der Programmierung gehört auf der Seite der Datenstrukturen die Liste. Eine Liste kann auf
MehrProgrammieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff
Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Textausgabe per printf Die Funktion printf ist kein Bestandteil der C Sprache sondern gehört zur C Bibliothek. printf
Mehr7 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
MehrProgrammieren in C. Speicher anfordern, Unions und Bitfelder. Prof. Dr. Nikolaus Wulff
Programmieren in C Speicher anfordern, Unions und Bitfelder Prof. Dr. Nikolaus Wulff Vergleich: Felder und Strukturen Felder müssen Elemente vom selben Typ enthalten. Strukturen können Elemente unterschiedlichen
Mehr9. Vektoren. (auch Felder/array)
9. Vektoren (auch Felder/array) Motivation Hat man mehrere Objekte gleichen Datentyps, so kann man sie explizit deklarieren, wenn die Anzahl bekannt ist double x1,x2,x3,x4; Nachteile: versagt, -wenn die
MehrZeichendarstellung. 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
MehrC- Kurs 07 Höhere Datentypen
C- Kurs 07 Höhere Datentypen Dipl.- Inf. Jörn Hoffmann jhoffmann@informa?k.uni- leipzig.de Universität Leipzig Ins?tut für Informa?k Technische Informa?k Höhere Datentypen Überblick Höhere Datentypen Werden
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine
MehrC-Kurs 2010 Pointer. 16. September v2.7.3
C-Kurs 2010 Pointer Sebastian@Pipping.org 16. September 2010 v2.7.3 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 License. C-Kurs Mi Konzepte, Syntax,... printf, scanf Next
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)
MehrStrukturierte Datentypen (struct) 2006 Pearson Education, Inc. All rights reserved.
1 8 Strukturierte Datentypen (struct) 2 8.1 Einführung 8.2 Definition von Strukturen 8.2.1 Selbstbezügliche Strukturen 8.2.2 Definition von Variablen strukturierter Datentypen 8.2.3 Bezeichner für Strukturen
MehrEinführung Programmierpraktikum C Michael Zwick
Einführung Programmierpraktikum C Michael Zwick Vorlesung, Übung & Fragestunde Dr.-Ing. Michael Zwick Raum Z945 zwick@tum.de (089) 289 23609 Tutorium Ab Dienstag: Auswahl Tutoriumsplatz auf www.ldv.ei.tum.de/lehre/computertechnik
MehrProgrammiertechnik. 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
MehrElementare 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
MehrProbeklausur Name: (c)
Einführung in die Praktische Informatik 30.1.2013 Probeklausur Name: Teil I: Datentypen (20 Punkte) Lösen sie die Probleme, indem sie die korrekten Lösungen ankreuzen bzw. in die vorgesehenen Freiräume
MehrEinführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz
Patrick Schulz patrick.schulz@paec-media.de 29.04.2013 1 Einführung Einführung 2 3 4 Quellen 1 Einführung Einführung 2 3 4 Quellen Hello World in Java Einführung 1 public class hello_ world 2 { 3 public
MehrDr. Monika Meiler. Inhalt
Inhalt 11 Dynamische Feldvereinbarung... 11-2 11.1 Dynamische Vereinbarung von Vektoren... 11-3 11.2 Dynamische Vereinbarung von Matrizen... 11-5 11.3 Die Kommandozeile... 11-8 Propädeutikum 11-1/8 11
MehrKurze Einführung in die Programmiersprache C++ und in Root
Kurze Einführung in die Programmiersprache C++ und in Root Statistik, Datenanalyse und Simulation; 31.10.2006 Inhalt 1 Einführung in die Programmiersprache C++ Allgemeines Variablen Funktionen 2 1 Einführung
MehrF 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
MehrStrukturierte Datentypen
Kapitel 10 Strukturierte Datentypen Über die normalen Datentypen hinaus gibt es in C weitere, komplexere Typen, die sich aus den einfacheren zusammensetzen. Außerdem besteht die Möglichkeit, eigene Synonyme
MehrK Ergänzungen zur Einführung in C
K Ergänzungen zur Einführung in C K Ergänzungen zur Einführung in C K.1 Zeiger, Felder und Zeichenketten Zeichenketten sind Felder von Einzelzeichen (char), die in der internen Darstellung durch ein \0
MehrBetriebssysteme, Rechnernetze und verteilte Systeme 1. Crashkurs C (2)
Betriebssysteme, Rechnernetze und verteilte Systeme 1 Crashkurs C (2) Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/teaching/ss2008/bsrvs1/
Mehr2. 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
MehrGrundlagen und Konzepte von C Datenstrukturen
Grundlagen und Konzepte von C Datenstrukturen Ausarbeitung von Andreas Gadelmaier Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik,
Mehr4.2 Programmiersprache C
4.2.1. Elementare Datentypen (signed) int, unsigned int, (signed) short (int), unsigned short (int), (signed) long (int), unsigned long (int) Elementare Datentypen für ganze Zahlen mit oder ohne Vorzeichen.
MehrProgrammierkurs C++ Variablen und Datentypen
Programmierkurs C++ Variablen und Datentypen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Überblick Welche Datentypen gibt es in
Mehr2. Datentypen und Deklarationen
2. Datentypen und Deklarationen Programm = Datenstrukturen+Kontrollstruktur Programme verarbeiten Daten. Daten werden in C durch Datenstrukturen aus verschiedenen Datentypen beschrieben. Es gibt (wie in
MehrGI 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
MehrTeil 6: Strukturen und Unionen Gliederung
Teil 6: Strukturen und Unionen Gliederung Strukturen Typdefinitionen Unionen Dynamische Speicherverwaltung Strukturen Typdefinitionen Unionen Dynamische Speicherverwaltung Strukturen 6.2 Strukturen Typdefinitionen
Mehrint i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben
Datenfelder (Array) Seite 1 von 7 Bei den bisherigen Programmen wurde für jede verwendete Variable (oder für jedes Objekt) ein eigener Typ und Name vergeben. Die Initialisierung, d.h. die Belegung mit
MehrOrganisatorisches. Übungsleiter: Karsten Otto Homepage: Aufgaben
Organisatorisches Übungsleiter: Karsten Otto (otto@inf.fu-berlin.de) Homepage: http://www.inf.fu-berlin.de/lehre/ss04/sysi/ Aufgaben Montags im Netz Vorbesprechung Dienstag/Mittwoch in den Übungen Abgabe
Mehr8. 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
MehrC- Kurs 03 Ausdrücke und Operatoren
C- Kurs 03 Ausdrücke und Operatoren Dipl.- Inf. Jörn Hoffmann jhoffmann@informadk.uni- leipzig.de Universität Leipzig InsDtut für InformaDk Technische InformaDk Ausdrücke Institut für Informatik Ausdrücke
MehrBeispiele: und wieder Rechnen
Beispiele: und wieder Rechnen Aufgabenstellung: Zu schreiben ist ein C-Programm, das alle dreistelligen Zahlen bestimmt, die durch alle ihre Ziffern teilbar sind, z.b. die Zahl 312, sie ist durch 3, 1
MehrInformatik. Pointer (Dynamisch) Vorlesung. 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1
Informatik Vorlesung 08 Pointer (Dynamisch) 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Pointer (Zeiger) Dynam. Speicher Bisher: Speicherbedarf muss
MehrÜbersicht. Einführung in die Programmierung. Zeichenketten. Zeichenketten. Zeichenketten. Arrays und Zeichenketten. Arrays und Zeichenketten
Übersicht Einführung in die Programmierung Bachelor of Science Prof. Dr. Rethmann Fachbereich Elektrotechnik und Informatik Hochschule Niederrhein Arrays Datentypen, Operatoren und Kontrollstrukturen Funktionen
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29
Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente
MehrProgrammierung mit C Strukturen
Programmierung mit C Strukturen Strukturen Variablen mit unterschiedlichen Datentypen werden zusammengefasst. Variablen zu einem Thema werden zusammengefasst. Beispiele für Strukturen: Personendaten (Name,
MehrProgrammiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 9. Zeiger Arbeitsspeicher / Adressen Der Arbeitsspeicher des Computers (RAM) besteht aus einem Feld von Speicherzellen, beginnend bei Adresse
MehrC++ Notnagel. Ziel, Inhalt. Programmieren in C++
C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt
Mehreinlesen 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
MehrDr. Monika Meiler. Inhalt
Inhalt 3 C-Ausdrücke...3-2 3.1 Arithmetische Ausdrücke...3-3 3.2 Wertzuweisungen...3-5 3.3 Inkrementieren und Dekrementieren...3-6 3.4 Logische Ausdrücke (Bedingungen)...3-7 3.5 Bedingte Ausdrücke...3-8
MehrGrundlagen der Informatik 2. Typen
Grundlagen der Informatik 2. Typen Speicher, Speicherbedarf Ein-/Ausgabe Grundlagen der Informatik (Alex Rempel) 1 Wiederholung // root calculation #include #include using namespace
MehrAbgeleitete Datentypen (1) Richtlinien
Abgeleitete Datentypen (1) Richtlinien Verbunddatentypen erlauben durch Kombination und Verschachteln beliebige komplexe Datenstrukturen Entwurf von Datenstrukturen hat wesentlichen Einfluss auf Art und
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)
MehrObjektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
Mehr5. Abgeleitete Datentypen
5. Abgeleitete Datentypen Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Felder (Arrays)!Zeichenketten (Strings)!Strukturen (Structs) Copyright: M. Gross, ETHZ, 2003 2 Arrays! Ein Array ist
Mehr5. Abgeleitete Datentypen
5. Abgeleitete Datentypen Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Felder (Arrays)!Zeichenketten (Strings)!Strukturen (Structs) Copyright: M. Gross, ETHZ, 2003 2 Arrays! Ein Array ist
MehrVariablen, Konstanten und Datentypen
Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Variablen, Konstanten und Datentypen Überblick
MehrProgrammiersprachen Einführung in C
Programmiersprachen Einführung in C Teil 4: Prof. Dr. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen
MehrTeil 6: Strukturen und Unionen Gliederung
Teil 6: Strukturen und Unionen Gliederung Strukturen Typdefinitionen Unionen Dynamische Speicherverwaltung Strukturen 6.2 Strukturen Ursprung in Pascal als Datentyp record, Verbunddatentyp Strukturtyp
MehrHinweise zur Prüfung Programmieren WS0304 Seite 1. Schreiben Sie folgende For-Schleife in eine äquivalente While-Schleife um.
Hinweise zur Prüfung Programmieren WS0304 Seite 1 Aufgabe 1 1.1 (5 Punkte) Vervollständigen Sie die Funktion testnums()... Eine mögliche Lösung lautet: int testnums(int numbers[], int factor, int max){
MehrZusammengehörige Daten struct. Strukturierte Datentypen und Funktionszeiger. Zugriff auf struct-elemente. Variablendeklarationen mit struct
Zusammengehörige Daten Anstatt logisch zusammengehörende Daten in mehreren unabhängigen Variablen zu speichern, kann man für sie einen eigenen Datentyp ( Verbund, Record ) definieren, der diesen Zusammenhang
MehrMussten wir eine ganze Reihe solcher Zahlen speichern, haben wir das eindimensionale Array verwendet.
C Zweidimensionale Arrays Fachspezifische Softwaretechnik 1 Scriptum 2017 HTL St.Pölten Elektronik und Technische Informatik EL Autor: Kuran Zweidimensionale Arrays: Bisher konnten wir in Variablen einfache
MehrRO-Tutorien 3 / 6 / 12
RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
Mehrstructure-type-specifier struct [ identifier ] { struct-declaration-list } struct identifier struct-declaration-list struct-declaration
Verbundtypen structure-type-specifier struct [ identifier ] { struct-declaration-list } struct identifier struct-declaration-list struct-declaration struct-declaration-list struct-declaration struct-declaration
MehrKlausur. 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 Anfang SS 2003 Klausur 1. Aufgabe (2 Punkte) Kodieren Sie folgende Dezimalzahlen in Binärzahlen um. Zeigen Sie den Rechenweg, die negative Zahl soll
MehrInhalt. 4.5 Arbeit mit Zeigern (engl. Pointer)
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 Zeigern
MehrDas folgende Programm demonstriert, wie man Speicheradressen von Variablen ermittelt.
Kapitel 8 Zeiger (Pointer) Bislang war beim Zugriff auf eine Variable nur ihr Inhalt von Interesse. Dabei war es unwichtig, wo (an welcher Speicheradresse) der Inhalt abgelegt wurde. Ein neuer Variablentyp,
MehrSpeicherklassen (1) Lokale Variablen
Speicherklassen (1) Lokale Variablen Lokale Variablen beschränken sich auf die Funktionen, in denen sie definiert werden Sind in der Funktion gekapselt können also nur in der Funktion verändert werden
MehrÜbungspaket 14 Eindimensionale Arrays
Übungspaket 14 Eindimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung eindimensionaler Arrays Kapitel: 33 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:
MehrTeil 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
MehrInhalt. 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
MehrDatei: svn/ckurs/trunk/c_texte/c_arrptr.txt, Datum: 30. Juni Felder und Zeiger
Datei: svn/ckurs/trunk/c_texte/c_arrptr.txt, Datum: 30. Juni 2015 Felder und Zeiger 1. Felder 1. Felder werden deklariert und definiert durch die Angabe der Elementanzahl nach dem Feldnamen mit dem Feldoperator
MehrInformatik I - Übung 2 Programmieren in Eclipse
Informatik I - Übung 2 Programmieren in Eclipse. / Info1 / HelloWorld / HelloWorld Wort1 Wort2 Daniel Hentzen dhentzen@student.ethz.ch 5. März 2014 1.2 Häufigste Fehler im Terminal auf Gross-/Kleinschreibung
MehrAbgeleitete Datentypen
Abgeleitete Datentypen Prof. Dr. Markus Gross Informatik I für D-MAVT (FS 2014) Felder (Arrays) Zeichenketten (Strings) Strukturen (Structs) union, enum & typedef Arrays Ein Array ist ein Datentyp, der
MehrModellierung und Programmierung
Modellierung und Programmierung Dr. Martin Riplinger 12.12.2012 IAM Institut für Angewandte Mathematik Strukturen: Motivation Situation: Mit Funktionen verfügen wir über ein wirksames Mittel, um Programmcode
MehrFH 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:
MehrPointer und Arrays. INE1, Montag M. Thaler, Office TG208. ZHAW, M. Thaler, K. Rege, G.
Pointer und Arrays INE1, Montag M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Variable Speicherplatz Datenwert über Name ansprechbar hat Typ hat Adresse (Speicheradresse)
MehrTag 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)
MehrKapitel 8. Adressen und Zeiger
Kapitel 8 Adressen und Zeiger 1 Gliederung Kapitel 8 Adressen und Zeiger 8.1 Definition 8.2 Einfache Beispiele 8.3 Zeigerarithmetik und Vektoren 8.4 Vektoren als Funktionsparameter 8.5 Messwertprogramm,
MehrThemen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente
Themen Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente Formatierte Eingabe mit cin Die Formatierung der Eingabe ist der Ausgabe sehr ähnlich: Die Flags werden
MehrProgrammieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff
Programmieren in C Felder, Schleifen und Fließkommaarithmetik Prof. Dr. Nikolaus Wulff Addition von Zahlen 1 2 3 4 5 #include int main() { int x,y,z,sum; x = 1; y = 2; z = 4; sum = x + y + z;
MehrZeiger (engl. Pointer)
Zeiger (engl. Pointer) Zeiger Ein Zeiger (engl. Pointer) speichert eine Adresse, unter der ein Wert im Speicher des Computers gespeichert werden kann. Eine Variable im Gegensatz speichert einen Wert. Der
MehrInformatik. Strukturen und Aufzählungstypen. Vorlesung
Informatik Vorlesung 06 Strukturen und Aufzählungstypen 03. Dezember 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Datentypen Die bisher benutzten Datentypen waren
Mehr2. 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)
MehrBereits behandelt: Einfache Datentypen / Variablen. Schleifen und Verzweigungen. Funktionen. Heute: Felder, Zeiger, Referenzen. Freispeicherverwaltung
Kompaktkurs C++ Themen C 1 Bereits behandelt: Einfache Datentypen / Variablen Schleifen und Verzweigungen Funktionen Heute: Felder, Zeiger, Referenzen Freispeicherverwaltung Zeichenketten Kommandozeilenargumente
MehrKapitel 2/3: Darstellung von Information / Kontrollstrukturen. Inhalt. Zusammengesetzte Datentypen Wiederholungen (in Programmen)
Kapitel 2/3: / Kontrollstrukturen Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Inhalt Zusammengesetzte
MehrTeil 5: Felder, Zeiger, Zeigerarithmetik Gliederung
Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung Felder (Arrays) Mehrdimensionale Felder Zeiger und Adressen Zeigerarithmetik Felder Mehrdimensionale Felder Zeiger und Adressen Zeigerarithmetik Felder
Mehr1.6 Programmstrukturen/Abweisende Schleife
1.6 Programmstrukturen/Abweisende Schleife 1.6.1 Schleife Die meisten Programmiersprachen haben Konstruktionen, die eine beliebige Wiederholung von Programmteilen ermöglichen. Diese Konstruktionen heißen
Mehr