PS-Trainer C - Entwicklung
Aufgaben Nr. 2a
Homepage von PS-Trainer - C-Entwicklung - Bibliotheken - an PS-Trainer
PS-Trainer PS-Trainer

Zusammenarbeit mehrerer einfacher Unterprogramme:
Ziel dieser Aufgaben ist die Kontrolle, ob einfache Voraussetzungen für beginnende "komplexe Programmierung" erfüllt werden:


Aufgabe (1) :
Schreiben sie ein Konsolen-Programm, das folgende Arbeiten ausführt:
* Eingabe von 2 ganzen Zahlen (i,j) über die Konsole
* Kontrolle: beide ganze Zahlen sollen im Bereich -10...+10 liegen. Falls ok, arbeiten sie weiter. Falls nicht, beenden sie das Programm.
* Berechnung der Summe (k=i+j) der beiden ganzen Zahlen
* Ausgabe der Eingabezahlen und der Summe auf der Konsole.
Lösungsvorschlag:

/* Programm TEST 1 */

#include <stdio.h>

void main (void) {

int i,j,k;

printf("Geben sie eine ganze Zahl i (-10...+10) ein: ");
scanf("%d",&i);
printf("Geben sie eine ganze Zahl j (-10...+10) ein: ");
scanf("%d",&j);
printf("i=%d j=%d ",i,j);

if ( (i>=-10) && (i<=10) && (j>=-10) && (j<=10) )
{
k=i+j;
printf(" k=%d\n",k);
}
else printf("\n");
}


Aufgabe (2) :
Schreiben sie ein Konsolen-Programm, das folgende Arbeiten ausführt:
* Eingabe einer realen Zahl (r) über die Konsole
* Kontrolle: die Zahl soll im Bereich 0...1000 liegen. Falls positiv, arbeiten sie weiter. Falls negativ, beenden sie das Programm.
* Berechnen sie die Summe von dieser Zahl sowie 1/2, 1/3, 1/4 und 1/5 dieser Zahl (s=r+r/2+r/3+r/4+r/5)
* Ausgabe der Zahl und der berechneten Summe auf der Konsole.
Lösungsvorschlag:

/* Programm TEST 2 */

#include <stdio.h>

void main (void) {

float r,s;

printf("Geben sie eine reale Zahl r (0...1000) ein: ");
scanf("%f",&r);
printf("r=%f ",r);

if ( (r>=0.0) && (r<=1000.0) )
{
s=r+r/2.0+r/3.0+r/4.0+r/5.0;
printf(" s=%f\n",s);
}
else printf("\n");
}


Aufgabe (3) :
Schreiben sie ein Konsolen-Programm, das folgende Arbeiten ausführt:
* Eingabe einer ganzen Zahl (i) über die Konsole
* Kontrolle: die Zahl soll innerhalb des zulässigen ASCII-Bereichs liegen. Falls positiv, arbeiten sie weiter. Falls negativ, beenden sie das Programm.
* Berechnung des ASCII-Zeichens (c), das der eingegebenen Zahl entspricht (z.B. c='A' für i=65)
* Ausgabe der Zahl und des Zeichens auf der Konsole.
Lösungsvorschlag:

/* Programm TEST 3 */

#include <stdio.h>

void main (void) {

int i;
char c;

printf("Geben sie eine ganze Zahl i (0...255) ein: ");
scanf("%d",&i);
printf("i=%d ",i);

if ( (i>=0) && (i<=255) )
{
c=char(i);
printf(" c=%c",c);
}
printf("\n");
}


Aufgabe (4) :
Schreiben sie ein Konsolen-Programm, das folgende Arbeiten ausführt:
* Eingabe eines Zeichens (c) über die Konsole.
* Berechnung des ASCII-Codes (i) des eingegebenen Zeichens
* Berechnung der Art des Zeichens: Z für Ziffer 0...9, A für Großbuchstaben A...Z, X für alle anderen.
* Ausgabe des Zeichens, der Code-Zahl und der Art.
Lösungsvorschlag:

/* Programm TEST 4 */

#include <stdio.h>

void main (void) {

char c, art='X';
int i;

printf("Geben sie ein Zeichen c ein: ");
scanf("%c",&c);

i=int(c);
if ( (c>='0') && (c<='9') ) art='Z';
if ( (c>='A') && (c<='Z') ) art='A';

printf("c=%c i=%d Art=%c\n",c,i,art);
}


Aufgabe (5) :
Schreiben sie ein Konsolen-Programm, das folgende Arbeiten ausführt:
* Festlegung von zwei ganzen Zahlen (i,j) im Bereich -10...10 (Im Programm selbst, ohne Eingabe)
* Aufruf einer Funktion (mymul), die ein ganzzahliges Ergenis (k) liefert.
* Ausgabe der beiden Zahlen (i,j) sowie des Ergebnisses (k) auf der Konsole
* Schreiben sie eine Funktion (mymul), die als Argumente zwei ganze Zahlen erhält, diese miteinander multipliziert und als ganze Zahl an das aufrufende Programm zurückgibt.
Lösungsvorschlag:

/* Programm TEST 5 */

#include <stdio.h>

int mymul (int,int);

void main (void) {

int i,j,k;

i=5;
j=7;

k=mymul(i,j);
printf("i=%d j=%d k=%d\n",i,j,k);
}

int mymul (int a,int b)
{
return a*b;
}


Aufgabe (6) :
Schreiben sie ein Konsolen-Programm, das folgende Arbeiten ausführt:
* Festlegung einer realen Zahl (r) im Bereich (-100...100) und einer ganzen Zahl (i) im Bereich 1...10 (Im Programm selbst, ohne Eingabe)
* Aufruf einer Funktion (mydiv), die eine reale Zahl(f) als Ergebnis liefert.
* Ausgabe der beiden Zahlen (r,i) sowie des Ergebnisses (f) auf der Konsole
* Schreiben sie eine Funktion (mydiv), die als Argumente die beiden erwähnten Zahlen erhält, die reale Zahl durch die ganze Zahl dividiert und als reale Zahl an das aufrufende Programm zurückgibt.
Lösungsvorschlag:

/* Programm TEST 6 */

#include <stdio.h>

float mydiv (float,int);

void main (void) {

float r,f;
int i;

r=56.78;
i=7;

f=mydiv(r,i);

printf("r=%f i=%d f=%f\n",r,i,f);
}

float mydiv (float a,int b)
{
return a/float(b);
}


Aufgabe (7) :
Schreiben sie ein Konsolen-Programm, das folgende Arbeiten ausführt:
* Festlegung einer realen Zahl (r) im Bereich (-100...100). (Im Programm selbst, ohne Eingabe)
* Aufruf einer Funktion (mycateg), die eine ganze Zahl (i) als Ergebnis liefert.
* Ausgabe der realen Zahl (r) sowie des Ergebnisses (i) auf der Konsole.
* Schreiben sie eine Funktion (mycateg), die als Argument eine reale Zahl erhält, und an das aufrufende Programm eine ganze Zahl der Bedeutung "Kategorie" (k) zurückgibt. Definieren sie k=-1 für r<0, k=0 für r=0 und k=1 für r>0
Lösungsvorschlag:

/* Programm TEST 7 */

#include <stdio.h>

int mycateg (float);

void main (void) {

float r;
int i;

r=-56.78;

i=mycateg(r);

printf("r=%f i=%d\n",r,i);
}

int mycateg (float a)
{
int k=0;
if (a<0) k=-1;
if (a>0) k=1;
return k;
}


Aufgabe (8) :
Schreiben sie ein Konsolen-Programm, das folgende Arbeiten ausführt:
* Festlegung einer ganzen Zahl (i) im Bereich (0...900). (Im Programm selbst, ohne Eingabe)
* Aufruf einer Funktion (mycateg), die ein Zeichen (c) als Ergebnis liefert.
* Ausgabe der ganzen Zahl (i) sowie des Ergebnisses (c) auf der Konsole.
* Schreiben sie eine Funktion (mycateg), die als Argumente eine ganze Zahl erhält, und an das aufrufende Programm ein Zeichen der Bedeutung "Kategorie" (k) zurückgibt.
Definieren sie k='x' für i<300, k='y' für i=300...600 und k='z' für i>600.
Lösungsvorschlag:

/* Programm TEST 8 */

#include <stdio.h>

char mycateg (int);

void main (void) {

int i;
char c;

i=345;

c=mycateg(i);

printf("i=%d c=%c\n",i,c);
}

char mycateg (int a)
{
char k='x';
if (a>=300) k='y';
if (a>600) k='z';
return k;
}


Homepage von PS-Trainer - Entwicklung - an PS-Trainer

Aktuelle Daten dieser Seite Letzte Änderung:
  Geocities