Sie sind auf Seite 1von 3

F¨orderunterricht in C

11.04.2010

1. Schreiben Sie eine Funktion mach gross, der ein Zeichen ubergeben¨ wird. Wenn es sich bei dem Zeichen um einen Kleinbuchstaben handelt, liefert die Funktion den entsprechenden Grobuchstaben zuruck,¨ sonst das Zeichen selbst.

2. Schreiben Sie eine Schleife, in der Zeichen von stdin bis ’\n’ gelesen werden und nur die gelesenen Grobuchstaben ausgegeben werden, andere Zeichen nicht. Außerdem soll in der Schleife die Anzahl der Grobuchstaben mitgez¨ahlt werden.

3. Schreiben Sie eine Funktion zs gerade, der ein Parameter vom Typ int ubergeben¨ wird. Die Funktion berechnet vorerst die Ziffernsumme der ubergebenen¨ Zahl. Die Funktion liefert als Ruckgabewert¨ 1, wenn diese Ziffernsumme gerade ist, sonst 0. Unter Verwendung dieser Funktion soll das Hauptprogramm in einer Schleife alle dreistelligen Zahlen ermitteln, deren Ziffernsumme gerade ist und diese Zahlen auf der Konsole ausgeben.

4. Schreiben Sie eine rekursive Funktion drei hoch, welcher ein Parameter n vom Typ int ubergeben¨ wird und die Potenz zur Basis 3 hoch n liefert.

5. Schreiben Sie eine rekursive Funktion, welcher ein Argument n vom Typ int uber-¨

geben wird und welche die Kehrwerte von

z.B. fur¨

n

= 5

n bis 1 1 am Bildschirm ausgibt.

1

1/5=0.20

1/4=0.25

1/3=0.33

1/2=

0.50

1/1=1.00

Außerdem soll die Funktion die Summe dieser Kehrwerte liefern.

6. Schreiben Sie eine Funktion teile, welche zwei Integerwerte x und y ubergeben¨ bekommt. Es soll x durch y dividiert werden. Das Ergebnis der Division und der Divisionsrest sollen in zwei per Reference ubergebene¨ Variablen gespeichert wer- den. Im Falle einer Division durch Null soll 0 (falsch), im Erfolgsfall 1 (wahr) retouniert werden.

7. Schreiben Sie eine Funktion, weilche einen einen positiven Kreisradius r erh¨alt und die Fl¨ache und den Umfang des Kreises bestimmt und in zwei Integervariablen des Aufrufers schreibt, welche der Funktion per Reference ubergeben¨ werden. Sollte der ubergebene¨ Wert r nicht positiv sein, so retouniert die Funktion 0 (falsch), im Erfolgsfall 1 (wahr).

U = 2 rπ, A = r 2 π

1

F¨orderunterricht in C

15.04.2010

1. Schreiben Sie eine Funktion, die alle positiven Werte eines Integerfeldes durch die entsprechenden negativen Werte ersetzt und welche die Anzahl der Ersetzungen retourniert. Beispiel: Die Funktion ver¨andert das Feld {3,-2,0,5,-4} zu {-3,-2,0,-5,-4} und liefert als Ergebnis den Wert 2.

2. Schreiben Sie eine Funktion, welche den kleinsten und den gr¨oßten Wert eines Feldes vom Typ double bestimmt und in zwei Variable schreibt, die der Funktion mit Hilfe von Call by Reference ubergeben¨ wurden. Rufen Sie die Funktion auch auf und deklarieren Sie alle notwendigen Variablen. L¨osen Sie die Aufgabe nach folgender Vorgangsweise:

Sortieren Sie das Feld

Nun steht das kleinste Feldelement an erster, das gr¨oßte Feldelement an letzter Stelle.

3. Schreiben Sie eine Funktion, die in einem ubergebenen¨ Feld vom Typ int das erste Zeichen vorne wegnimmt und hinten wieder anh¨angt. Ruft man die Funktion fur¨ das Feld

{

1 ,

2 ,

3 ,

4 ,

5

}

auf, so ver¨andert sie den Feldinhalt auf

{

2 ,

3 ,

4 ,

5 ,

1

}

4. Schreiben Sie eine Funktion delDouble(

die aus einem Doublefeld einen

Wert an einer bestimmten Stelle l¨oscht. Sollte der Wert an der angegebenen Stel- le nicht existieren, so ist das Feld nicht zu ver¨andern. Weiters soll eine Funktion

printDouble(

) zur Ausgabe der beinhaltenden Werten eines Doublefeldes pro-

grammiert werden. Die Funktion soll in folgenden F¨allen richtig arbeiten:

),

double arr

[ ]

=

{1.23 ,

3.45 ,

5.34 ,

5.78 ,

9.34 ,

7 . 1 9 } ;

delDouble (

arr ,

3 ,

s i z e ) ;

/

printDouble ( arr

,

s i z e ) ;

Ausgabe :

1.23 ,

3.45 ,

5.34 ,

9.34 ,

7.19

/

delDouble ( arr ,

10 ,

s i z e ) ;

 

printDouble ( arr

,

s i z e ) ;

/

Ausgabe :

1.23 ,

3.45 ,

5.34 ,

9.34 ,

7.19

/

5. a) Schreiben Sie eine Funktion, die pruft,¨

ob ein Feld vom Typ double absteigend

sortiert ist. Es ist also zu vergleichen, ob jedes Feldelement (bis auf das letzte)

2

F¨orderunterricht in C

gr¨oßer oder gleich seinem Nachfolger ist. Im Erfolgsfall liefert die Funktion 1, sonst 0.

b) Schreiben Sie eine Funktion, die ein unsortiertes Feld vom Typ double abstei- gend sortiert. Rufen Sie zu diesem Zweck die in a) programmierte Funktion auf und sortieren Sie das Feld nur dann, wenn die Funktion aus a) den Wert 0 liefert.

3