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>
|
Create or copy sets of flashcards
With an upgrade you can create or copy an unlimited number of sets and use many more additional features.
Log in to see all the cards.
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.
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;
}
-
- 1 / 34
-