Kapitel 3. Programmieren in R. Vorlesung Programmieren in statistischer Software: R Sommersemester Bedingte Anweisungen, Schleifen, Funktionen
|
|
- Walther Franke
- vor 8 Jahren
- Abrufe
Transkript
1 Vorlesung Programmieren in statistischer Software: R Sommersemester 2009 Kapitel 3,, Christian Foliengestaltung von Martin Dörr
2 Inhalt dieses Abschnitts 1 I 2 Vermeiden von, 3 und
3 Syntax if ( Bedingung ) { auszuführende Befehle wenn Bedingung TRUE } if ( Bedingung ) { auszuführende Befehle wenn Bedingung TRUE } else { auszuführende Befehle wenn Bedingung FALSE } Beachte: Die Bedingung in dieser Form darf nicht vektorwertig sein bzw. wird dann nur das erste Element des Vektors ausgewertet Die Bedingung kann ein komplexerer logischer Ausdruck sein, der entsprechend auch und (&&) und oder ( ) Verknüpfungen enthält I Vermeiden von, und 3.3
4 Beispiel > x <- 5 > if ( x==3 ) { x <- x-1 } else { x <- 2*x } > x [1] 10 I Vermeiden von, und 3.4
5 I Syntax ifelse(test,yes,no) (siehe auch die Online Hilfe) Dient der vektorwertigen Auswertung von Bedingungen. Dabei werden für die Komponenten, die in dem vektorwertigen logischen Ausdruck test den Wert TRUE liefern, die entsprechenden Operationen von yes durchgeführt. Für die Komponenten, die in dem vektorwertigen logischen Ausdruck test den Wert FALSE liefern, werden die entsprechenden Operationen von no durchgeführt. I Vermeiden von, und 3.5
6 Beispiel > x <- 1:10 > x [1] > ifelse( x<6, x^2, x+1 ) [1] I Vermeiden von, und 3.6
7 In Algorithmen (z.b. iterativen Algorithmen zur Maximierung der Likelihood wie Fisher Scoring oder Newton Raphson) oder in Simulationen müssen die gleichen Operationen mehrmals abgearbeitet werden. Wenn die Anzahl vorher bekannt ist (z.b. wenn Operationen für alle Untersuchungseinheiten i = 1,..., n durchgeführt werden sollen), so kann die for() Schleife verwendet werden. Syntax for (Name in Vektor ) { auszuführende Befehle } Eine Variable mit Namen Name wird auf alle Elemente gesetzt, die in dem Vektor enthalten sind. Anschließend werden alle Operationen für alle Werte dieser sequentiell ausgeführt. I Vermeiden von, und 3.7
8 Beispiel > for ( i in 1:5 ) { print( i^2 ) } [1] 1 [1] 4 [1] 9 [1] 16 [1] 25 > for ( i in c(2,4,6,7) ) { print( i^2 ) } [1] 4 [1] 16 [1] 36 [1] 49 I Vermeiden von, und 3.8
9 Noch ein Beispiel Häufig wird folgendes Konstrukt benutzt: > x <- 1:4 > for ( i in 1:length(x) ) { print( x[i]^3 ) } [1] 1 [1] 8 [1] 27 [1] 64 Daran ist zunächst nichts auszusetzen. Was passiert allerdings, wenn die Länge des Objekts 0 ist? > x <- NULL > length(x) [1] 0 > for ( i in 1:length(x) ) { print( x[i]^3 ) } numeric(0) numeric(0) D.h. die Schleife wird zweimal durchlaufen, da der Ausdruck 1:length(x) den Vektor (1, 0) zurückliefert: I Vermeiden von, und > 1:length(x) [1]
10 Noch ein Beispiel (Forsetzung) Deshalb ist es besser, den bereits eingeführten Befehl seq(along=x) zu verwenden, der einen Indexvektor erzeugt, der gleiche Länge wie x hat. > x <- 1:4 > for ( i in seq(along=x) ){ print( x[i]^3 ) } [1] 1 [1] 8 [1] 27 [1] 64 > x <- NULL > for ( i in seq(along=x) ){ print( x[i]^3 ) } > D.h. im zweiten Fall wird erwartungsgemäß nichts zurückgeliefert. I Vermeiden von, und 3.10
11 Wenn die Anzahl der zu durchlaufenden Operationen vorher nicht bekannt ist, z.b. wenn ein iterativer Algorithmus zur Maximierung der Likelihood solange durchgeführt werden soll, bis eine gewisse Konvergenzgenauigkeit erreicht ist, kann die while() Schleife verwendet werden. Syntax while(bedingung){ auszuführende Befehle solange Bedingung TRUE } Wenn die Bedingung bereits vor Eintritt in die Schleife nicht erfüllt ist, wird die Schleife überhaupt nicht durchlaufen. I Vermeiden von, und 3.11
12 Beispiel > i <- 1 > while (i<5) { + print(i^2) + i <- i+2 + } [1] 1 [1] 9 Hier muss der Programmmierer selbst darauf achten, dass die Variable i innerhalb der beiden geschweiften Klammern hochgezählt wird (ansonsten: Endlosschleife). I Vermeiden von, und 3.12
13 Noch ein Beispiel: Fibonacci Zahlen > Fib1 <- 1 > Fib2 <- 1 > Fibonacci <- c(fib1, Fib2) > while (Fib2 < 300) { + temp <- Fib1+Fib2 + Fibonacci <- c(fibonacci, temp) + Fib1 <- Fib2 + Fib2 <- temp + } > print(fibonacci) [1] Beachte: Befehle der Art Fibonacci <- c(fibonacci, temp) können sehr kostspielig im Sinne von Rechenzeit sein, wenn die Schleife sehr oft durchlaufen wird, da jedesmal die Länge des Vektors dynamisch vergrößert werden muss. Beispiel (beide Varianten liefern einen Vektor, der mit den Zahlen 1 bis belegt ist): > x <- c(1,2) > system.time( for (i in 3:30000) x <- c(x,i) ) User System verstrichen > > system.time( x <- 1:30000 ) User System verstrichen I Vermeiden von, und 3.13
14 testet im Gegensatz zur while() Schleife keine Bedingung vor Eintritt in die Schleife und auch nicht während des Durchlaufs der Schleife. Dafür ist der Progarmmierer zuständig, indem er an geeigneter Stelle einen break Befehl einbaut. Syntax repeat{ auszuführende Befehle } I Vermeiden von, und 3.14
15 Beispiel 1 > i <- 1 > repeat{ + print( i^2 ) + i <- i+2 + if ( i>10 ) break + } [1] 1 [1] 9 [1] 25 [1] 49 [1] 81 I Vermeiden von, und 3.15
16 Beispiel 2 Zusätzlich steht noch der Befehl next zur Verfügung, um zum Beginn der Schleife zurückzuspringen. > i <- 1 > repeat{ + i <- i+1 + if (i<10) next + print(i^2) + if (i>=13) break + } [1] 100 [1] 121 [1] 144 [1] 169 I Vermeiden von, und 3.16
17 Beispiel 3: Maximumssuche mit Newton Verfahren Aufgabe: Suche Nullstelle der 1. Ableitung > # Lokale Maximussuche, indem die Nullstelle der 1. Ableitung > # durch ein Newton-Verfahren bestimmt werden soll > # Gesucht x, so dass: f (x) = 0 > # Newton-Verfahren: x = x - f (x)/f (x) > > # Beispiel: f(x) = -0.5 x^2-2x +1 hat (sogar globales) Maximum in x=-2 > func <- function(x){ return(-0.5*x^2-2*x + 1) } > > # Zeichne Funktion im Bereich [-9,5] > curve(-0.5*x^2-2*x +1, -9, 5) > > # 1. Ableitung > dfunc <- function(x) { return(-x -2) } > > # 2. Ableitung > dfunc2 <- function(x) { return(-1) } > > # Newton-Verfahren > # Startwert: x0 > x0 <- 100 > # Toleranz definiert Abbruchbedingung > tolerance <- 1.0E-6 > # Schleife > x <- x0 > # Zähle die durchläufe > i <- 1 > repeat { + x <- x - dfunc(x)/dfunc2(x) + if ( abs(dfunc(x)) < tolerance ) break + i <- i+1 + } > cat("nullstelle der 1. Ableitung: ", x, "\n") Nullstelle der 1. Ableitung: -2 > cat("maximum der Funktion: ", func(x), "\n") Maximum der Funktion: 3 > cat("anzahl der durchläufe bis zur Konvergenz: ", i, "\n" ) Anzahl der durchläufe bis zur Konvergenz: 1 I Vermeiden von, und 3.17
18 Vermeiden von, Bei R handelt es sich um eine sog. Interpreter-Sprache, d.h. jeder Befehl wird erst zur Laufzeit interpretiert und ausgeführt (im Gegensatz zu kompilierten Sprachen) Insbesondere mit vielen Durchläufen, insbesondere auch ineinander geschachtelte, können sehr langsam sein, z.b. für den sequentiellen Zugriff auf alle Elemente X[i, j] einer Matrix Verwende, wenn möglich, spezielle Befehle, die eine Operation auf alle Elemente eines Objekts (Liste, Vektor, Matrix) anwendet Es stehen die Befehle apply(), lapply(), sapply(), mapply() und tapply() zur Verfügung Für die schnelle Berechnung von Zeilen und Spaltensummen, sowie von Zeilen und Spaltenmittelwerten, stehen die rowsums(),colsums(), rowmeans() und colmeans() zur Verfügung I Vermeiden von, und 3.18
19 lapply und sapply Diese sind für Listen (lapply()) und Vektoren gedacht. Dabei liefert lapply als Ergebnis eine Liste zurück, auch wenn der Eingabe Vektor als Elemente nur Skalare enthält. sapply() dagegen versucht, die Ergebnisse in diesem Fall als Array, Vektor, etc. auszugeben. Syntax lapply(x, FUN,...) sapply(x, FUN,..., simplify = TRUE, USE.NAMES = TRUE) I Vermeiden von, und 3.19
20 Beispiel 1 zu lapply und sapply > x <- 1:4 > lapply(x, function(x) x^2 ) [[1]] [1] 1 [[2]] [1] 4 [[3]] [1] 9 [[4]] [1] 16 > sapply(x, function(x) x^2 ) [1] I Vermeiden von, und 3.20
21 Beispiel 2 zu lapply und sapply > X <- matrix(nrow=2, ncol=2, data=7:10 ) > sapply(x, function(x){ x/2 } ) [1] > X2 <- matrix(nrow=2, ncol=2, data=1:4) > l1 <- list(x, X2) > lapply(l1, function(x){ x%*%x } ) [[1]] [,1] [,2] [1,] [2,] [[2]] [,1] [,2] [1,] 7 15 [2,] > sapply(l1, function(x){ x%*%x } ) [,1] [,2] [1,] [2,] [3,] [4,] Der letzte sapply() Befehl zeigt ein nachvollziehbares, aber vielleicht nicht das gewünschte Ergebnis. Im Fall, dass die Eingabeliste komplexe Objekte (hier: Matrizen) enthält, ist also der lapply() Befehl zu empfehlen. Neben sapply() existiert noch der verwandte Befehl replicate(), siehe Online Hilfe. I Vermeiden von, und 3.21
22 apply für Matrizen Syntax apply(x, MARGIN, FUN,...) Die Argumente sind die Eingabematrix X die beizubehaltende Dimensionsnummer (1 für Zeilen, 2 für Spalten) die auf jede Zeile bzw. jede Spalte anzuwendende Funktion. Dabei kann es sich wiederum um bereits in R definierte oder eine selbst definierte Funktion handeln. Definiert man die Funktion erst beim Aufruf von apply() als FUN Argument, so spricht man von einer anonymen Funktion, da diese nach Ausführen des Befehls nicht mehr bekannt ist I Vermeiden von, und 3.22
23 Beispiele zu apply > X <- matrix( nrow=3, ncol=2, byrow=t, data=4:9 ) > X [,1] [,2] [1,] 4 5 [2,] 6 7 [3,] 8 9 > apply(x,1,max) [1] > apply(x,2,min) [1] 4 5 I # liefert den Index des jeweils maximalen Elements einer Zeile zurueck > apply(x,1, which.max) [1] Vermeiden von, und # eigene Funktion > apply(x,2, function(x){ max(x)-min(x) } ) [1]
24 tapply für Datensätze Die Idee von tapply() ist die Anwendung auf Datensätze zur Berechnung zusammenfassender Statistiken einer Variable bezüglich der Gruppierung nach einer anderen Variable. Im folgenden Beispiel ist x ein numerischer Vektor und fac ein Faktor. Es soll die Summe in x, gruppiert nach fac berechnet werden. Beispiel > x <- 1:10 > fac <- factor( c(1,1,1,1,1,2,2,2,2,2) ) > tapply( x, fac, sum ) tapply() liefert 2 Werte zurück, und zwar 15 für den Faktorwert 1 und 40 für den Faktorwert 2. D.h. es wurde die Summe der Zahlen von 1 bis 5 berechnet (15, Faktorstufe 1) und die Summe der Zahlen von 6 bis 10 (40, Faktorstufe 2). I Vermeiden von, und 3.24
25 mapply Der Befehl mapply() ist eine Art multivariate Version von sapply(). Folgendes Beispiel ist der Online Hilfe entnommen. Beispiel > mapply(rep, times=1:4, x=4:1) [[1]] [1] 4 [[2]] [1] 3 3 [[3]] [1] [[4]] [1] I Vermeiden von, und 3.25
26 Syntax sind Programmiereinheiten, die einen wohldefinierten Zweck haben übernehmen Inputvariablen, führen Berechnungen durch (oder erzeugen Grafiken, rufen andere auf, etc.) und produzieren Ausgaben und Ausgabevariablen Name <- function(argument1, Argument2,...) Ausdruck wobei Ausdruck eine einzelne Anweisung oder eine Folge von Anweisungen sein kann. In letzterem Fall müssen die Anweisungen in geschweiften Klammern stehen. I Vermeiden von, und 3.26
27 Beispiel: Berechnung der t-statistik (1 Stichprobe) onesample.tstatistik <- function(x){ n <- length(x) if (n<2) stop("length of input vector should at least be 2") num.na <- sum( is.na(x) ) if ( num.na > 0 ){ cat("note: vector of length ",n," contains ", num.na, " missing values which are omitted.\n") n <- length(x) - num.na if (n<2) stop("after omitting NAs, less than 2 observations remain for calculating the t statistics") } mx <- mean(x, na.rm=true) sx <- sd(x, na.rm=true) tstatistik <- mx / ( sx/sqrt(n) ) return( tstatistik ) } I Vermeiden von, und 3.27
28 Funktionsargumente mit Namen und Voreinstellungen Funktionsargumente können Namen haben Funktionsargumente können mit Werten vorbelegt werden können das Argument... enthalten Beispiel # Funktion zum Auswerten und Zeichnen von f.printplot <- function(func, xvalues=seq(from=0,to=1,by=0.1), plot=true, print=false,...){ function.values <- func(xvalues) if (plot) plot(xvalues, function.values,...) if (print) return( cbind(xvalues, function.values) ) else return(null) } # Definiere eine Funktion square <- function(x) x^2 I Vermeiden von, und # Aufruf mit verschiedenen Einstellungen f.printplot(square, type="l") f.printplot(square, xvalues=seq(from=-2,to=2,by=0.1), type="l") f.printplot(square,print=t, pch="*") 3.28
29 Normale Zuweisungen an in haben nur lokalen Gültigkeitsbereich und sind temporär. Ausnahme: assign() und superassignment Operator <<-, die außerhalb von (z.b. in der R-Konsole) angelegt werden haben globalen Gültigkeitsbereich und sind in sichtbar. In der Funktion kann eine Variable mit dem Namen einer globalen Variable verwendet werden, welche dann wiederum nur lokal sichtbar ist. I Vermeiden von, und 3.29
30 : Beispiel 1 # Beispiel zur lokalen Sichtbarkeit von, globales Assignment globalx <- 10 f <- function() { x <- 1 g() assign("globalx", 5, envir =.GlobalEnv) return(x) } g <- function() { x <- 2 } f() globalx Ergebnis > f() [1] 1 > globalx [1] 5 I Vermeiden von, und 3.30
31 : Beispiel 2 y <- 1 h <- function() { y <- y+1 return(y) } h() h() y I Ergebnis > h() [1] 2 > h() [1] 2 > y [1] 1 Vermeiden von, und 3.31
Erwin Grüner 09.02.2006
FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife
MehrStatistische Software (R-Vertiefung) Kontrollstrukturen: Bedingte Anweisungen. Logische Operatoren & Verknüpfungen. Syntax. Paul Fink, M.Sc.
Kontrollstrukturen: Bedingte Anweisungen Statistische Software (R-Vertiefung) if ( Bedingung ) { Ausdruck 1 } else { Ausdruck 2} Paul Fink, M.Sc. Institut für Statistik Ludwig-Maximilians-Universität München
MehrR-Tutorial. R bietet zahlreiche Hilfe-Funktionen an. Informiere Dich über die Funktion log():
Statistik für Bioinformatiker SoSe 2005 R-Tutorial Aufgabe 1: Hilfe. Logge Dich ein. Username und Passwort stehen auf dem Aufkleber am jeweiligen Bildschirm. Öffne eine Shell und starte R mit dem Befehl
MehrErweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:
VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt
MehrJava-Programmierung mit NetBeans
Java-Programmierung mit NetBeans Steuerstrukturen Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg - WS 2012/13 Steuerstrukturen Steuerstrukturen Verzweigungen Alternativen abweisende nichtabweisende
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
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;
MehrModellierung 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; {
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrC++ Tutorial: Timer 1
C++ Tutorial: Timer 1 Timer v1.0 Einleitung Raum und Zeit sind spätestens seit der kopernikanischen Wende wichtige Gegenstände des Denkens geworden. In einem Programm bestimmt die Zeit die Abläufe und
Mehr6.2 Scan-Konvertierung (Scan Conversion)
6.2 Scan-Konvertierung (Scan Conversion) Scan-Konvertierung ist die Rasterung von einfachen Objekten (Geraden, Kreisen, Kurven). Als Ausgabemedium dient meist der Bildschirm, der aus einem Pixelraster
MehrSoftwarelösungen: Versuch 4
Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]
MehrWir arbeiten mit Zufallszahlen
Abb. 1: Bei Kartenspielen müssen zu Beginn die Karten zufällig ausgeteilt werden. Wir arbeiten mit Zufallszahlen Jedesmal wenn ein neues Patience-Spiel gestartet wird, muss das Computerprogramm die Karten
MehrRunning R. Windows Aus Menü. Lese R Code ein führt den Code auch gleich aus, eventuell muss vorher das Verzeichnis gewechselt werden.
Einführung 1 / 1 Einführung 2/1 Running R Windows Aus Menü Linux Lese R Code ein führt den Code auch gleich aus, eventuell muss vorher das Verzeichnis gewechselt werden. Auf der Konsole/Eingabeaufforderung:
Mehr1 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
MehrProgrammierkurs 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
MehrLU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.
Zusätze zum Gelben Rechenbuch LU-Zerlegung Peter Furlan Verlag Martina Furlan Inhaltsverzeichnis Definitionen 2 (Allgemeine) LU-Zerlegung 2 3 Vereinfachte LU-Zerlegung 3 4 Lösung eines linearen Gleichungssystems
MehrErwin Grüner 15.12.2005
FB Psychologie Uni Marburg 15.12.2005 Themenübersicht Mit Hilfe der Funktionen runif(), rnorm() usw. kann man (Pseudo-) erzeugen. Darüber hinaus gibt es in R noch zwei weitere interessante Zufallsfunktionen:
MehrÜbersicht Programmablaufsteuerung
Übersicht Programmablaufsteuerung Konditionale Verzweigung: if - else switch-anweisung Schleifenkonstrukte: while, do - while for Schleife Sprung-Anweisungen: break, continue, goto, return Anweisungen
MehrBedingungen. Bedingungen. Bedingungen
Oftmals ist das Arbeiten mit notwendig. Dabei können sich die auf Formatierungen beziehen, aber auch auf Transformationen. Bedingte Formatierung Datentransformation 24.04.2006 Einführung in Excel 91 24.04.2006
MehrArge Betriebsinformatik GmbH & Co.KG, CAP News 40, Februar 2013. CAP-News 40
CAP-News 40 CAP-News ist in unrägelmäßigen Abständen erscheinende Information zum Produktkonfigurator CAP/VARIANTS. Hier werden die neuen Befehle, Funktionen und Möglichkeiten beschrieben. In CAP-News
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrKontrollstrukturen - Universität Köln
Kontrollstrukturen - Universität Köln Mario Manno Kontrollstrukturen - Universität Köln p. 1 Was sind Sprachen Auszeichnungssprachen HTML, XML Programmiersprachen ASM, Basic, C, C++, Haskell, Java, Pascal,
MehrÜbungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder
Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder Hinweise zur Übung Benötigter Vorlesungsstoff Ab diesem Übungskomplex wird die Kenntnis und praktische Beherrschung der Konzepte
Mehr1 topologisches Sortieren
Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung
MehrWürfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.
040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl
MehrEinfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at
Inhalt SWP Funktionale Programme (2. Teil) Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Interpreter für funktionale Sprache
MehrFunktionen 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
MehrGrundlagen der Theoretischen Informatik, SoSe 2008
1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrR ist freie Software und kann von der Website. www.r-project.org
R R ist freie Software und kann von der Website heruntergeladen werden. www.r-project.org Nach dem Herunterladen und der Installation von R kann man R durch Doppelklicken auf das R-Symbol starten. R wird
MehrFunktionale Programmierung mit Haskell
Funktionale Programmierung mit Haskell Dr. Michael Savorić Hohenstaufen-Gymnasium (HSG) Kaiserslautern Version 20120622 Überblick Wichtige Eigenschaften Einführungsbeispiele Listenerzeugung und Beispiel
MehrGrundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen
Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen 1. Quadratische Gleichungen Quadratische Gleichungen lassen sich immer auf die sog. normierte Form x 2 + px + = 0 bringen, in
MehrDruckerscriptsprache
Druckerscriptsprache Die Druckerscriptsprache stellt Ihnen ein mächtiges Werkzeug zur Erstellung und Automatisierung von komplexen Druckvorgängen zur Verfügung. Vom Folgedruck bis zum Archivfunktion ist
MehrZählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
Mehr5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu
Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten
MehrKonzepte der Informatik
Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens
MehrKlausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.
Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert
MehrJava 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7
Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen
MehrKontrollstrukturen und Funktionen in C
Kontrollstrukturen und Funktionen in C Lernziele: Vertiefen der Kenntnisse über Operatoren, Kontrollstrukturen und die Verwendung von Funktionen. Aufgabe 1: Quickies: Datentypen in C a) Was sind die elementaren
MehrIm Jahr t = 0 hat eine Stadt 10.000 Einwohner. Nach 15 Jahren hat sich die Einwohnerzahl verdoppelt. z(t) = at + b
Aufgabe 1: Im Jahr t = 0 hat eine Stadt 10.000 Einwohner. Nach 15 Jahren hat sich die Einwohnerzahl verdoppelt. (a) Nehmen Sie lineares Wachstum gemäß z(t) = at + b an, wobei z die Einwohnerzahl ist und
MehrLineare Gleichungssysteme
Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der
MehrTipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten "bedingten Wahrscheinlichkeit".
Mathematik- Unterrichts- Einheiten- Datei e. V. Klasse 9 12 04/2015 Diabetes-Test Infos: www.mued.de Blutspenden werden auf Diabetes untersucht, das mit 8 % in der Bevölkerung verbreitet ist. Dabei werden
MehrBeispiel 19. December 4, 2009
Beispiel 9 December 4, 2009 Computermathematik (für Informatik) 4. Übungsblatt (Musterlösung) 2. 2. 2009 Die heutigen Übungen sollen mit dem Computeralgebrasystem Sage gelöst werden. Die Lösung der Beispiele
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung
Grundlagen der Programmierung Prof. H. Mössenböck 14. Schrittweise Verfeinerung Entwurfsmethode für Algorithmen Wie kommt man von der Aufgabenstellung zum Programm? Beispiel geg.: Text aus Wörtern ges.:
MehrHandbuch Fischertechnik-Einzelteiltabelle V3.7.3
Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3
MehrGraphic Coding. Klausur. 9. Februar 2007. Kurs A
Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt
MehrRepetitionsaufgaben Wurzelgleichungen
Repetitionsaufgaben Wurzelgleichungen Inhaltsverzeichnis A) Vorbemerkungen B) Lernziele C) Theorie mit Aufgaben D) Aufgaben mit Musterlösungen 4 A) Vorbemerkungen Bitte beachten Sie: Bei Wurzelgleichungen
MehrStudentische Lösung zum Übungsblatt Nr. 7
Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int
MehrKapitel MK:IV. IV. Modellieren mit Constraints
Kapitel MK:IV IV. Modellieren mit Constraints Einführung und frühe Systeme Konsistenz I Binarization Generate-and-Test Backtracking-basierte Verfahren Konsistenz II Konsistenzanalyse Weitere Analyseverfahren
MehrEinfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
MehrW-Rechnung und Statistik für Ingenieure Übung 11
W-Rechnung und Statistik für Ingenieure Übung 11 Christoph Kustosz (kustosz@statistik.tu-dortmund.de) Mathematikgebäude Raum 715 Christoph Kustosz (kustosz@statistik.tu-dortmund.de) W-Rechnung und Statistik
MehrEinführung in die C++ Programmierung für Ingenieure
Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF
MehrErstellen von x-y-diagrammen in OpenOffice.calc
Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei
MehrStand: 28.11.2012. Adressnummern ändern Modulbeschreibung
Seite 1 Inhalt Allgemein...3 Installation...3 manuelle Eingabe von alten und neuen Adressnummern...4 Vorbereiten von Adressnummern-Änderungen in Tabellen...5 Seite 2 Allgemein Das INKS-Modul ermöglicht
MehrKontrollstrukturen, Strukturierte Programmierung
, Strukturierte Programmierung Steuer- und Kontrollfluss Strukturierte Programmierung Arten von Strukturblöcken Sequenz Alternative Iteration C-Spezifisches Seite 1 Elementare Algorithmen SelectionSort
MehrEinführung in die Programmierung
Name, Vorname Matrikelnummer Probeklausur zur Vorlesung Einführung in die Programmierung WS 2008/09 Dauer: 2 Stunden Hinweise: Schreiben Sie Ihren Namen und Ihre Matrikelnummer auf dieses Deckblatt und
MehrScala kann auch faul sein
Scala kann auch faul sein Kapitel 19 des Buches 1 Faulheit Faulheit ( lazy evaluation ) ist auch in C oder Java nicht unbekannt int x=0; if(x!=0 && 10/x>3){ System.out.println("In if"); } Nutzen der Faulheit?
MehrEntwurf von Algorithmen - Kontrollstrukturen
Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer
MehrAbituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)
Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR) Eine Firma stellt USB-Sticks her. Sie werden in der Fabrik ungeprüft in Packungen zu je 20 Stück verpackt und an Händler ausgeliefert. 1 Ein Händler
MehrProgrammiervorkurs WS 2012/2013. Schleifen und Methoden
Programmiervorkurs WS 2012/2013 Schleifen und Methoden Ein Befehl soll mehrfach ausgeführt werden, z.b.: public class MyCounter { System.out.println(1); Ein Befehl soll mehrfach ausgeführt werden, z.b.:
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)
MehrStatistische Auswertung:
Statistische Auswertung: Die erhobenen Daten mittels der selbst erstellten Tests (Surfaufgaben) Statistics Punkte aus dem Punkte aus Surftheorietest Punkte aus dem dem und dem Surftheorietest max.14p.
MehrÜbungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag
Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
MehrDiana Lange. Generative Gestaltung Operatoren
Diana Lange Generative Gestaltung Operatoren Begriffserklärung Verknüpfungsvorschrift im Rahmen logischer Kalküle. Quelle: google Operatoren sind Zeichen, die mit einer bestimmten Bedeutung versehen sind.
MehrGrundlagen der Videotechnik. Redundanz
Grundlagen der Videotechnik Redundanz Redundanz beruht auf: - statistischen Abhängigkeiten im Signal, - Information, die vorher schon gesendet wurde - generell eine Art Gedächtnis im Signal Beispiel: Ein
MehrEinführung in die Algebra
Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 13 Einheiten Definition 13.1. Ein Element u in einem Ring R heißt Einheit, wenn es ein Element v R gibt mit uv = vu = 1. DasElementv
MehrOutlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang
sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche
MehrProfessionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E
MehrKurzeinführung LABTALK
Kurzeinführung LABTALK Mit der Interpreter-Sprache LabTalk, die von ORIGIN zur Verfügung gestellt wird, können bequem Datenmanipulationen sowie Zugriffe direkt auf das Programm (Veränderungen der Oberfläche,
MehrAGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b
AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität
MehrMORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH
MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte
MehrZwischenablage (Bilder, Texte,...)
Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen
MehrLehrer: Einschreibemethoden
Lehrer: Einschreibemethoden Einschreibemethoden Für die Einschreibung in Ihren Kurs gibt es unterschiedliche Methoden. Sie können die Schüler über die Liste eingeschriebene Nutzer Ihrem Kurs zuweisen oder
MehrMediator 9 - Lernprogramm
Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop
MehrFallunterscheidung: if-statement
Fallunterscheidung: if-statement A E 1 E 2 V 1 V 2 Syntax: if ( ausdruck ) Semantik: else anweisungsfolge_1 anweisungsfolge_2 1. Der ausdruck wird bewertet 2. Ergibt die Bewertung einen Wert ungleich 0
MehrSysteme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss
Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige
MehrPrüfung Computation, Programming
Prüfung Computation, Programming 1. Computation: Reguläre Ausdrücke [5 Punkte] Zusammenfassung reguläre Ausdrücke a Das Zeichen a. Ein beliebiges Zeichen [abc] Ein beliebiges Zeichen aus der Menge {a,
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Organisatorisches Freitag, 05. Mai 2006: keine Vorlesung! aber Praktikum von 08.00 11.30 Uhr (Gruppen E, F, G, H; Vortestat für Prototyp)
MehrLineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3
Lineare Funktionen Inhaltsverzeichnis 1 Proportionale Funktionen 3 1.1 Definition............................... 3 1.2 Eigenschaften............................. 3 2 Steigungsdreieck 3 3 Lineare Funktionen
MehrIT-Zertifikat: Allgemeine Informationstechnologien II PHP
IT-Zertifikat: Allgemeine Informationstechnologien II PHP PHP ( PHP: Hypertext Preprocessor ) ist eine serverseitige Skriptsprache: Der PHP-Code wird nicht wie bei JavaScript auf dem Clientrechner ausgeführt,
MehrEinführung in. Logische Schaltungen
Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von
MehrHandbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)
Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...
MehrUnterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis
Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Das komplette Material finden Sie hier: Download bei School-Scout.de
Mehr5. Tutorium zu Programmieren
5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting
Mehrteamsync Kurzanleitung
1 teamsync Kurzanleitung Version 4.0-19. November 2012 2 1 Einleitung Mit teamsync können Sie die Produkte teamspace und projectfacts mit Microsoft Outlook synchronisieren.laden Sie sich teamsync hier
MehrEinführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)
Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl
Mehr7 Rechnen mit Polynomen
7 Rechnen mit Polynomen Zu Polynomfunktionen Satz. Zwei Polynomfunktionen und f : R R, x a n x n + a n 1 x n 1 + a 1 x + a 0 g : R R, x b n x n + b n 1 x n 1 + b 1 x + b 0 sind genau dann gleich, wenn
MehrWelche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen?
Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen können zwei Ebenen (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen? Wie heiÿt
MehrMusterlösungen zur Linearen Algebra II Blatt 5
Musterlösungen zur Linearen Algebra II Blatt 5 Aufgabe. Man betrachte die Matrix A := über dem Körper R und über dem Körper F und bestimme jeweils die Jordan- Normalform. Beweis. Das charakteristische
MehrFrankfurt am Main. Dortmund. Stuttgart. Düsseldorf
Aufgabenstellung Ein Handlungsreisender will seine Produkte in den zehn größten Städten Deutschlands verkaufen. Er startet in Berlin und will seine Reise dort beenden. Die zehn einwohnerreichsten Städte
MehrP r o g r a m m a b l a u f s t e u e r u n g
Jede Programmiersprache braucht Konstrukte zur Steuerung des Programmablaufs. Grundsätzlich unterscheiden wir Verzweigungen und Schleifen. Schleifen dienen dazu, bestimmte Anweisungen wiederholt auszuführen,
MehrZur drittletzten Zeile scrollen
1 Fragen und Antworten zur Computerbedienung Thema : Zur drittletzten Zeile scrollen Thema Stichwort Programm Letzte Anpassung Zur drittletzten Zeile scrollen Scrollen VBA Excel 1.02.2014 Kurzbeschreibung:
MehrEinführung in das Programmieren Prolog Sommersemester 2006. Teil 2: Arithmetik. Version 1.0
Einführung in das Programmieren Prolog Sommersemester 2006 Teil 2: Arithmetik Version 1.0 Gliederung der LV Teil 1: Ein motivierendes Beispiel Teil 2: Einführung und Grundkonzepte Syntax, Regeln, Unifikation,
MehrJava Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
Mehrder Eingabe! Haben Sie das Ergebnis? Auf diesen schwarzen Punkt kommen wir noch zu sprechen.
Medizintechnik MATHCAD Kapitel. Einfache Rechnungen mit MATHCAD ohne Variablendefinition In diesem kleinen Kapitel wollen wir die ersten Schritte mit MATHCAD tun und folgende Aufgaben lösen: 8 a: 5 =?
MehrDie Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.
Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,
MehrExcel Funktionen durch eigene Funktionen erweitern.
Excel Funktionen durch eigene Funktionen erweitern. Excel bietet eine große Anzahl an Funktionen für viele Anwendungsbereiche an. Doch es kommt hin und wieder vor, dass man die eine oder andere Funktion
MehrInhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.
1. Einführung in die Informatik Inhalt 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele Peter Sobe 1 Darstellung von Algorithmen Aus den Einführungsbeispielen und
Mehr