Obj-C-1
ob C Programm.
ob C Programm.
Set of flashcards Details
Flashcards | 34 |
---|---|
Language | Deutsch |
Category | Computer Science |
Level | Other |
Created / Updated | 24.06.2013 / 02.11.2019 |
Weblink |
https://card2brain.ch/box/objc1
|
Embed |
<iframe src="https://card2brain.ch/box/objc1/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Kompilierte Datei "1-1-HWelt" auf der Konsole ausführen?
./1-1-HWelt
if else
if (bedingung) {
// diesen code ausführen, wenn bedingung true
} else {
// diesen code ausführen, wenn bedingung false
}
Verwendung boolscher Variablen.
&& Logisches UND
|| Logisches ODER
ZB: auslagern komplexer bed. in einen boolschen ausdruck:BOOL isNotOk = !((weight >0.0) && (weight < 4000.0));
if (isNotOK) {
printf(„Der Wert liegt ausserhalb der Grenzen!\n“);
}
else if
bei mehr als 2 Möglichkeiten:
if (bed1) {
//anw1; }
else if (bed2) {
// anw2; }
else if (bed3) {
// anw3; }
else { // letzte möglichkeit; }
ACHTUNG: Das ganze Konstrukt wird verlassen, sobald eine Bedingung wahr ist! Häufiger Programmierfehler, wenn es mehrere true -Möglichkeiten in so einem if-Konstrukt gibt!
ternärer Operator:
ist eine sehr elegante Möglichkeit, einer Variablen aufgrund von zwei Möglichkeiten einen Wert zuzuweisen:
<typ> varName = (bed) ? <wert1> : <wert2>;
Beispiele:
int zaehler = (i > j) ? 10 : 5; // ist i>j -> zaehler=10 andernfalls zaehler =5
Rekursion (Beispiel coden: Ausgabe: "Fakultaet von n ist: n!" n wird im Programm definiert!Keine Eingabe.
int fakultaet(int n)
{
if (n>0)
{
return n*fakultaet(n-1); //hier ruft sich die Funktion selbst auf!
}
else
{
return 1;
}
}
int main(int argc, const char * argv[])
{
// insert code here...
int zahl = 7;
printf("Fakultaet von %d (%d!)ist: %d",zahl,zahl, fakultaet(zahl));
return 0;
}
Globale Variablen: Definition, Geltungsbereich
-) werden nach den #inlude Anweisungen deklariert. (ZB: float lastTemperature; )
-) gelten in allen Dateien und Funktionen einer Anwendung. (Ja es gibt Apps, die aus mehreren Dateien (Bibliotheken) bestehen)
Statische Variablen: Definition u Geltungsbereich
werden wie globale V nach #include deklariert, nur mit dem Zusatz static (ZB: static float lastTemperature; )
-) gelten in allen Funktionen der einen Datei in der sie deklariert sind! Nicht in allen anderen.
Token für Formatstrings:
a) oktale Ausgabe
b) hexadezimale
a) %o
b) %x
Tokens für Formatstrings:
a) float
b) double
c) Zahl im E-Format
d) float auf 2 Dezimalstellen
a) %f
b) %f
c) %e
d) %.2f
Tokens für Formatstrings:
a) long in hex
b) long in Octal
c) integer
a) %lx
b) %lo
c) %d
Tokens in Formatstrings:
a) String
b) Pointer
a) %s
b) %p
while -Schleife
int i=0; //Initialisierung
while (i<12) { // Bed. prüfen
printf(„%d. Adi is cool\n“, i);
i++; // Bed. neu initialisieren
}
While-Schleifen lassen sich immer einfacher und kompakter in der FOR-Schleife abbilden:
FOR Schleife
for ( int i=0; i <12; i++) { //Initialisierung; Bed. prüfen; Bed. neu initialisieren
printf(„%d. Adi is cool\n“, i);
Wie kann man Schleifen vorzeitig beenden?
Mit break lassen sich Schleifen vorzeitig beenden.
if (i==12) {
break;
}
Wie kann man eine Schleife vorzeitig vom Kopf starten lassen?
if (i<=12) {
continue;
}
Wie deklariert man einen Zeiger auf eine float x Variable?
float x;
float *addr_f = &x;
Was bewirkt der folgende Befehl:
*addr_i = 89;
*addr_i = 89; //speichert den Wert 89 auf die angegebene Adresse. Da sich die Variable i darauf bezieht, enthält nun i den Wert 89! Dies nennt man auch Dereferenzierung des Zeigers.
Referenzübergabe: Bsp. für eine Funktionsdeklaration, die 2 Werte übergibt, und 2 zurück erhält!
Aufruf der Funktion!
double x=0.5; double y=4.0;
double r, phi;
void xy_To_rPhi(float x, float y, double *r_Ptr, double *phi_Ptr) { ..}
Aufruf: xy_To_rPhi(x, y, &r, &phi);
Anwendung von typedef struct am Bsp: Eine Type Person mit Eigenschaften height (float) und weight (int) !
typedef struct {
float heightinMeters;
int weightinKilos;
} Person;
ANwendung:
Person person1; // erzeugen
person1.weightinKilos=87;
person1.heightinMeters=1.80; //Werte zuweisen
float bmi = bodyMassIndex(person1); //übergabe an eine Funktion
aktuelle Uhrzeit ausgeben
<time.h> //Header einbinden
long secondsSince1970 = time(NULL); //Aufruf
struct tm now; //Instanz erzeugen
printf("..", now.tm_hour, now.tm_min, now.tm_sec);
localtime_r(&secondsSince1970, &now); //Aufruf
printf("Die aktuelle Zeit ist: %d:%d:%d\n", now.tm_hour, now.tm_min, now.tm_sec); //Ausgabe
NSString: einen Formatstring erstellen aus: "Die beste Nummer ist:" un der INT 9
NSString *x = [NSString stringWithFormat:@“Die besten Nummer ist %d“,5];
NSString: ANzahl der Zeichen des NSStrings x ermitteln
NSUInteger charCount = [x length];
NSString: ANzahl der Zeichen des NSStrings x ermitteln
NSUInteger charCount = [x length];
In der Klassen-Doku findet sich folgender Eintrag: Wie ist das im Code anzugebe?
KLasse: NSHost
Class Method
currentHost
+ (NSHost *)currentHost
Return Value
NSHost object
NSHost *myPC = [NSHost currentHost];
In der Klassen-Doku findet sich folgender Eintrag: Wie ist das im Code anzugebe?
KLasse: NSHost
Class Method
hostWithAddress
+ (NSHost *)hostWithAddress:(NSString *)address
Parameters
address
Network address to look up, e.g, @"127.0.0.1"
Return Value
The host for address
NSHost *lookupIP = [NSHost hostWithAddress:@"127.0.0.1"];
In der Klassen-Doku findet sich folgender Eintrag: Wie ist das im Code anzugebe? (Eine NSHost Klasse myPC gibt es schon)
KLasse: NSHost
Instance Method
address
+ (NSString *)address
Return Value
One of the network address for the receiver,e.g, @"192.168.2.4"
NSString *myAddress = [myPC address];
oder so auch:
NSString *myAddress = myPC.address;
In einer Klassenbeschreibung steht für eine Klassenmethode NSDate folgendes (Auszug):
(id)date
Return value
A new date object set to the current date and time
(id)date ist die Kurzform dafür, dass eine Ob-C typ. Instanzierung auf ein NSDate-Objekt erfolgen soll, und zwar mit der Klassen-Methode date, also:
NSDate *aktZeit = [NSDate date];
NSArray: anlegen eines Arrays aus 3 NSDate-Objekten now, tomorrow und yesterday
NSArray *dateList = [NSArray arrayWithObjects:now, tomorrow, yesterday, nil];
Mit welcher Methode betsimmt man die Anzahl der Array-Elemente? Bsp für Array dateList
NSUInteger anzE = [dateList count];
NSArray: Wie greift man auf ein einzelnes Element des Arrays dateList zu?
[dateList objectAtIndex:i]
int i;
NSArray: Was ist fast enumeration? Gib das Beispiel für Array dateList an, es sollen alle Elemente ausgegeben werden.
for (NSDate *d in dateList {
NSLog(@“Hier ist Array-E: %@“, d);
}
Einschränkung: Damit dürfen Array-Elemente NICHT hinzugefügt oder entfernt werden!
NSMutableArray: Wichtige Funktion?
Wie erzeugt?
Im Gegensatz von NSArray kann man damit Zeiger einfügen und entfernen. Ist eine Unterklasse von NSArray.
Ein leeres Array erstellen array:
NSMutableArray *dateList = [NSMutableArray array];
if (10==a) ...
>geht das?
>Vorteil ggü if (a ==10) ..
>ja, von profis bevorzugt
> damit ist ein if (a=10) -Zuweisung!- nicht mehr möglich, weil Compiler eine Fehler ausgibt.