Modulprüfung
Institut für Produktion
IT und Prozesse Informationstechnologie
Matr.Nr:
Prof. Dr.-Ing. R. Mayr Beginn SS09( 150 min )
Beurteilungsfeld
Aufgabe 1:
( nicht beschreiben!! )
Gegeben seien eine 4-stellige negative Zahl zur Basis 8 dargestellt im 7-
Komplement mit der Ziffernfolge 7757 zu der die positive Zahl zur Basis 4
mit der Ziffernfolge 100 addiert werden soll. Die Rechnung erfolgt in
einem System zur Basis 8 mit 4 Ziffern (1. Ziffer der Zahl repräsentiert das
Vorzeichen). Das System kennt nur die Addition zur Basis 8 (es gibt einen
zusätzlichen Überlauf).
Beweis der Rechnung im 10-er System (mit Subtraktion) ist Bestandteil der
Aufgabe!
( 10 Punkte )
( 10 Punkte )
#include <stdio.h>
typedef struct zeile{ long koeff[2];} ZEILE;
typedef struct matrix{ ZEILE mz[2];} MATRIX;
MATRIX mat(MATRIX *a,MATRIX *b)
{
MATRIX c;
short n,m, p;
for(n=0;n<=1;n++)for(m=0;m<=1;m++)c.mz[n].koeff[m]=0;
for(m=0;m<=1;m++)
for(p=0;p<2;p++)
for(n=0;n<2;n++)c.mz[m].koeff[p]+=a->mz[m].koeff[n]*b->mz[n].koeff[p] ;
return c;
}
int main (void)
{
short i,k;
MATRIX mat1,mat2, mat3;
MATRIX *pmat1,*pmat2;
pmat1=&mat1;
pmat2=&mat2;
for(i=0;i<=1;i++)
for(k=0;k<=1;k++)
{
mat1.mz[i].koeff[k]=1;
mat2.mz[i].koeff[k]=0;
}
mat2.mz[0].koeff[0]=1;
mat2.mz[1].koeff[1]=1;
for(i=0;i<=1;i++)
{
for(k=0;k<=1;k++)printf("mat1[%d%d] = %d ",i,k,mat1.mz[i].koeff[k]);
printf("\n");
}
printf("\n\n");
for(i=0;i<=1;i++)
{
for(k=0;k<=1;k++)printf("mat2[%d%d] = %d ",i,k,mat2.mz[i].koeff[k]);
printf("\n");
}
printf("\n\n");
mat3=mat(pmat1,pmat2);
for(i=0;i<=1;i++)
{
for(k=0;k<=1;k++)printf("mat3[%d%d] = %d ",i,k,mat3.mz[i].koeff[k]);
printf("\n");
}
return 0;
}
( 20 Punkte )
- Page
- Pagetable
(Skizze erforderlich)
( 15 Punkte )
- Transparenz
- Längsparität
( 10 Punkte )
( 10 Punkte )
( 15 Punkte )