8. AP Praktikum

Nachdem ich heute morgen das 8. AP Praktikum erfolgreich bestanden habe, hier nun die Lösungen zu den Aufgaben!

Aufgabe 2:

#include <stdio.h>
#include <math.h>
void ausgeben(double Arrayname[], int anzahl)
{
int x=0;
int i;
for(i=0; i<anzahl-1; i++)
{
if(x<7)
{
printf(“%4.0lf  “, Arrayname[i]);
x++;
}
else
{
printf(“n”);
printf(“%4.0lf  “, Arrayname[i]);
x=1;
}
}
}

void signs(double Arrayname[], int anzahl, int pos, int null, int neg)
{
pos=0;
null=0;
neg=0;
int i;
for(i=0; i<anzahl-1; i++)
{
if (Arrayname[i]>0)
pos++;
else if(Arrayname[i]==0)
null++;
else
neg++;
}
printf(“n”);
printf(“n”);
printf(“Positive Zahlen: %i – Nullen: %i – Negative Zahlen: %in”, pos, null, neg);
}
int main() {

double array[100];

int l=0;
int a,b,c;
FILE *datei;

datei=fopen(“werte.dat”, “r”);
if(datei==NULL)
{
printf(“Fehler beim Öffnen!n”);
exit(1);
}

while(l!=100&&!feof(datei))
{
fscanf(datei, “%lf”, &array[l]);
l++;
}

fclose(datei);

if(l==100)
printf(“Es können nur maximal 100 Zahlen eingelesen werden, diese werden nun verarbeitet!n”);
else
printf(“Das Dateiende wurde erreicht, alle Zahlen wurden eingelesen, die Verarbeitung wird nun gestartet!”);
printf(“n”);
printf(“n”);

ausgeben(array, l);
signs(array, l, a, b, c);

return 0;
}

Aufgabe 3:

arrayFunctions.h:

int Einlesen(double Arrayname[]);

double Mittelwert(double Arrayname[], int anzahl);

double Big(double Arrayname[], int anzahl);

double Small(double Arrayname[], int anzahl);

double Small2(double Arrayname[], int anzahl);

void Ausgabe(double Arrayname[], int anzahl);

void Absolut(double Arrayname[], double Arrayname2[], int anzahl);

void Sort(double Arrayname[], int anzahl);

arrayFunctions.c:

#include “arrayFunctions.h”
#include <stdio.h>
#include <math.h>

int Einlesen(double Arrayname[])
{
int x=0;
int y=20;
int z=0;
int i;
for(i=0; i<20; i++)
{
z=y-x;
printf(“Verbleibende Eingaben: %in”, z);
printf(“Abbruch mit Ctrl+Dn”);
printf(“Geben Sie eine Zahl ein!n”);
if(scanf(“%lf”, &Arrayname[i])==EOF)
break;
x++;
}
return x;
}

double Mittelwert(double Arrayname[], int anzahl)
{
double t=0;
int i;
for(i=0; i<anzahl; i++)
{
t=t+Arrayname[i];
}
t=t/anzahl;
return t;
}

double Big(double Arrayname[], int anzahl)
{
double t=0;
int i;
if(Arrayname[0]<Arrayname[1])
t=Arrayname[1];
else
t=Arrayname[0];
for(i=2;i<anzahl; i++)
{
if(t<Arrayname[i])
t=Arrayname[i];
}
return t;
}

double Small(double Arrayname[], int anzahl)
{
double t=0;
int i;
if (Arrayname[0]>Arrayname[1])
t=Arrayname[1];
else
t=Arrayname[0];
for(i=2;i<anzahl; i++)
{
if(t>Arrayname[i])
t=Arrayname[i];
}
return t;
}

double Small2(double Arrayname[], int anzahl)
{
double t;
double s=0;
double r=0;
int i;

t=Small(Arrayname, anzahl);

if (Arrayname[0]>Arrayname[1])
if(t!=Arrayname[0])
s=Arrayname[0];
else
s=Arrayname[1];
else
if(t!=Arrayname[1])
s=Arrayname[1];
else
s=Arrayname[0];
for(i=2; i<anzahl; i++)
{
if(s>Arrayname[i])
if(t!=Arrayname[i])
s=Arrayname[i];
}

return s;
}

void Ausgabe(double Arrayname[], int anzahl)
{
int x=0;
int i;
for(i=0; i<anzahl; i++)
{
if(x<5)
{
printf(“%4.0lf  “, Arrayname[i]);
x++;
}
else
{
printf(“n”);
printf(“%4.0lf  “, Arrayname[i]);
x=1;
}
}
}

void Absolut(double Arrayname[], double Arrayname2[], int anzahl)
{
int i;
for(i=0; i<anzahl; i++)
{
Arrayname2[i]=fabs(Arrayname[anzahl-i-1]);
}
Ausgabe(Arrayname2, anzahl);
}

void Sort(double Arrayname[], int anzahl)
{
double z;
int i,j;
for(i=0; i<anzahl; i++)
{
for(j=0; j<anzahl-1; j++)
{
if(Arrayname[j]>Arrayname[j+1])
{
z=Arrayname[j+1];
Arrayname[j+1]=Arrayname[j];
Arrayname[j]=z;
}
}
}
Ausgabe(Arrayname, anzahl);
}

arrayMain.c:

#include <stdio.h>
#include <math.h>
#include “arrayFunctions.h”

int main() {

double array[20];
double array2[20];

int a;
double b,c,d,e;

a=Einlesen(array);

system(“clear”);
b=Mittelwert(array,a);
printf(“n”);
printf(“Der Mittelwert beträgt: %6.2lfn”, b);

c=Big(array,a);
printf(“n”);
printf(“Die größte Zahl ist: %.0lfn”, c);

d=Small(array,a);
printf(“n”);
printf(“Die kleinste Zahl ist: %.0lfn”, d);

e=Small2(array,a);
printf(“n”);
printf(“Die zweit kleinste Zahl ist: %.0lfn”, e);

printf(“——————-n”);
Ausgabe(array,a);
printf(“n”);

printf(“——————-n”);
Absolut(array,array2,a);
printf(“n”);

printf(“——————-n”);
Sort(array,a);
return 0;
}

Makefile:

array.out: arrayFunctions.o arrayMain.o
gcc -o array.out arrayFunctions.o arrayMain.o
arrayFunctions.o: arrayFunctions.h arrayFunctions.c
gcc -c arrayFunctions.c
arrayMain.o: arrayFunctions.h arrayMain.c
gcc -c arrayMain.c

In den nächsten Tagen folgt noch ein Eintrag zu dem QQ-1 Seminar von letzter Woche!

Facebooktwittergoogle_pluslinkedinmail

Leave a Reply