C_testat_4
Home Nach oben

 

Home
Nach oben
C_testat_1
C_testat_2
C_testat_3
C_testat_4
C_testat_5
C_testat_6
C_testat_7
C_testat_8

Aufgabenstellung von Herren Grams

Programmstrucktur

4.1 Schreriben Sie ein Programm zur Berechnung derjenigen Nullstellen der Funktion:
     f(x) = x-(1-x)^4
die im Intervall [0,1] liegt. Benutzen Sie den Zwischenwertsatz der Analysis. Geben Sie einen möglichst genauen Näherungswert für die Nullstelle aus.

4.2 Schreiben Sie einen Programm, das einen Textstring einliest und diesen dann sortiert wieder ausgibt. Auf die Eingabe "8. November 1994" hin soll der Bildschirm beispielsweise folgendes Ergebnis zeigen
    Eingabe: 8. November 1994
    Ausgabe:   .14899Nbeemorv

4.3 Ergänzen Sie das Programm shift so, dass die Bitfolge als String eingegeben werden kann und die Wandlung in eine Dezimalzahl durch das Programm selbst durchgeführt wird. Die Anzahl der Schiebepositionen sei variabel. Sie wird als ganze Zahl eingegeben. Ist sie positiv, wird nach links, ist sie negativ, wird nach rechts geschoben.

4.4 Erstellen Sie ein Programm, das eine Tabelle des kleinen Einmaleins in folgender  Form ausgibt:
   |   1   2   3   4   5   6   7   8   9  10
--------------------------------------------
 1 |   1   2   3   4   5   6   7   8   9  10
 2 |   2   4   6   8  10  12  14  16  18  20
 3 |   3   6   9  12  15  18  21  24  27  30
...| ... ... ... ... ... ... ... ... ... ...

4.5 Übertragen Sie das Pasca-Programm Textinversion aus dem Informatik Einführungskurs in C. Testen Sie die Wirkung der Ein- und Ausgabe von Zeichen mit Hilfe dieses Programms. Geben Sie auch Steuerzeichen auf unterschiedliche Art und Weise ein.

Lösungsansätze:

Aufgabe 4.1

//Nullstelle
#include <stdio.h>
#include <math.h>
void main() 
{
    double a=0,b=1,m;
    while (fabs((b-a)/b)>1e-15) 
    {
        m=((a+b)/2);
        if ((m-pow(1-m,4))<=0) 
        a=m;
        else
        b=m;
    }
    printf("!Rundungsfehler: %c 1e-15\n",241);
    printf("!Nullstelle der Funktion f(x)=x-(1-x)^4 :x= %1.15e\n",m);
}

Aufgabe 4.2

//Sortieren
#include <stdio.h>
void main ()
 {
    char a[80],m;
    int i=0,j=1,k=0;
    printf("!Sortieren\n?Text: ");
    gets(a);
    while (a[k]!=0)
     {
        while ((i<j)&&(a[j]<a[j-1])) 
        {
            m=a[j];
            a[j]=a[j-1];
            a[--j]=m;
        }
        ++k;
        j=k;
    }
    printf("!Sortiert: %s\n",a);
}

Aufgabe 4.3

/*Shift*/
#include <stdio.h>
#include <string.h>
#include <math.h>
void main () 
{
    char d[80];
    int z=0,s,i=0,j;
    printf("!Verschiebung von dualen Zahlen\n?Zahl: ");
    gets(d);
    printf("?Verschiebung: ");
    scanf("%d",&s);
    j=strlen(d);
    while (i<j)
     {
        z=z<<1;
        if (d[i]=='1') z++;
        i++;
    }
    printf("!Orginalzahl: %d\n",z);
    if (s>0) printf("!Nach links verschoben: %d",z<<abs(s));
    if (s<=0) printf("!Nach rechts verschoben: %d",z>>abs(s));
}

Aufgabe 4.4

// Einmaleins
#include <stdio.h>
void main () 
{
    int i=1,j=1,m=179;
    printf("!Einmaleins\n");
    printf(" %c",m);
    do 
        printf("%4.0d",i++);
    while (i<11);
    i=0;
    printf("\n");
    while (i<(4+10*4)) 
    {
        printf("%c",196);
        i++;
    }
    i=1;
    printf("\n");
    while (i<11) 
    {
        printf("%3.0d%c",i,m);
        while (j<11)
        printf("%4.0d",(i*j++));
        i++;
        j=1;
        printf("\n");
    }
}

Aufgabe 4.5

//invers
#include <stdio.h>
#include <string.h>

ReadWrite() 
{
    unsigned char s;
    scanf("%c",&s);
    if (s>13) ReadWrite(); 
    printf("%c",s);
    return 1;
}

void main ()
{
    printf("Textinversion\n");
    ReadWrite();
}