حلول التمارين - الجزء ب
تجد هنا حلول جميع التمارين للدرسين 7 و8. هذا يمثل الجزء الثاني من سلسلة حلول التمارين.
الدرس 7: الجداول »» »»
|
التمرين 7.1 |
التمرين 7.2 |
التمرين 7.3 |
التمرين 7.4 |
التمرين 7.5 |
التمرين 7.6 |
التمرين 7.7 |
أ) جداول أحادية البعد-المتجهات |
التمرين 7.8 |
التمرين 7.9 |
التمرين 7.10 |
التمرين 7.11 |
التمرين 7.12 |
التمرين 7.13 |
التمرين 7.14 |
التمرين 7.15 |
التمرين 7.16 |
ب) جداول ثنائية البعد - المصفوفات |
التمرين 7.17 |
التمرين 7.18 |
التمرين 7.19 |
التمرين 7.20 |
التمرين 7.21 |
التمرين 7.22 |
التمرين 7.23 |
التمرين 7.24 |
التمرين 7.1
#include <stdio.h>
main()
{
int T[50];
int I,N;
long SOM;
printf("Dimension of the array (max.50) : ");
scanf("%d", &N );
for (I=0; I<N; I++)
{
printf("Element %d : ", I);
scanf("%d", &T[I]);
}
printf("The given array :\n");
for (I=0; I<N; I++)
printf("%d ", T[I]);
printf("\n");
for (SOM=0, I=0; I<N; I++)
SOM += T[I];
printf("Sum of the elements : %ld\n", SOM);
return 0;
}
التمرين 7.2
#include <stdio.h>
main()
{
int T[50];
int N;
int I,J;
printf("Dimension of the array (max.50) : ");
scanf("%d", &N );
for (I=0; I<N; I++)
{
printf("Element %d : ", I);
scanf("%d", &T[I]);
}
printf("Given array : \n");
for (I=0; I<N; I++)
printf("%d ", T[I]);
printf("\n");
for (I=0, J=0 ; I<N ; I++)
{
T[J] = T[I];
if (T[I]) J++;
}
N = J;
printf("Resulted array :\n");
for (I=0; I<N; I++)
printf("%d ", T[I]);
printf("\n");
return 0;
}
التمرين 7.3
#include <stdio.h>
main()
{
int T[50];
int N;
int I,J;
int AIDE;
printf("Dimension of the array (max.50) : ");
scanf("%d", &N );
for (I=0; I<N; I++)
{
printf("Element %d : ", I);
scanf("%d", &T[I]);
}
printf("Given array : \n");
for (I=0; I<N; I++)
printf("%d ", T[I]);
printf("\n");
/* نعكس الجدول */
for (I=0, J=N-1 ; I<J ; I++,J--)
/* T[I] و T[J] تبادل قيمتي*/
{
AIDE = T[I];
T[I] = T[J];
T[J] = AIDE;
}
printf("Resulted array :\n");
for (I=0; I<N; I++)
printf("%d ", T[I]);
printf("\n");
return 0;
}
التمرين 7.4
#include <stdio.h>
main()
{
int T[50], TPOS[50], TNEG[50];
int N, NPOS, NNEG;
int I;
printf("Dimension of the array (max.50) : ");
scanf("%d", &N );
for (I=0; I<N; I++)
{
printf("Element %d : ", I);
scanf("%d", &T[I]);
}
printf("Given array :\n");
for (I=0; I<N; I++)
printf("%d ", T[I]);
printf("\n");
NPOS=0;
NNEG=0;
for (I=0; I<N; I++)
{ if (T[I]>0) {
TPOS[NPOS]=T[I];
NPOS++;
}
if (T[I]<0) {
TNEG[NNEG]=T[I];
NNEG++;
}
}
printf("array TPOS :\n");
for (I=0; I<NPOS; I++)
printf("%d ", TPOS[I]);
printf("\n");
printf("array TNEG :\n");
for (I=0; I<NNEG; I++)
printf("%d ", TNEG[I]);
printf("\n");
return 0;
}
التمرين 7.5
#include <stdio.h>
main()
{
int T[50][50];
int L, C;
int I, J;
long SOM;
printf("Number of rows (max.50) : ");
scanf("%d", &L );
printf("Number of columns (max.50) : ");
scanf("%d", &C );
for (I=0; I<L; I++)
for (J=0; J<C; J++)
{
printf("Element[%d][%d] : ",I,J);
scanf("%d", &T[I][J]);
}
printf("Given array :\n");
for (I=0; I<L; I++)
{
for (J=0; J<C; J++)
printf("%7d", T[I][J]);
printf("\n");
}
for (SOM=0, I=0; I<L; I++)
for (J=0; J<C; J++)
SOM += T[I][J];
printf("Sum of the elements : %ld\n", SOM);
return 0;
}
التمرين 7.6
#include <stdio.h>
main()
{
int T[50][50];
int L, C;
int I, J;
long SOM;
printf("Number of rows (max.50) : ");
scanf("%d", &L );
printf("Number of columns (max.50) : ");
scanf("%d", &C );
for (I=0; I<L; I++)
for (J=0; J<C; J++)
{
printf("Element[%d][%d] : ",I,J);
scanf("%d", &T[I][J]);
}
printf("Given array :\n");
for (I=0; I<L; I++)
{
for (J=0; J<C; J++)
printf("%7d", T[I][J]);
printf("\n");
}
for (I=0; I<L; I++)
{
for (SOM=0, J=0; J<C; J++)
SOM += T[I][J];
printf("Sum - rows %d : %ld\n",I,SOM);
}
for (J=0; J<C; J++)
{
for (SOM=0, I=0; I<L; I++)
SOM += T[I][J];
printf("Sum - column %d : %ld\n",J,SOM);
}
return 0;
}
التمرين 7.7
#include <stdio.h>
main()
{
int M[10][10];
int V[100];
int L, C;
int I, J;
printf("Number of rows (max.10) : ");
scanf("%d", &L );
printf("Number of columns (max.10) : ");
scanf("%d", &C );
for (I=0; I<L; I++)
for (J=0; J<C; J++)
{
printf("Element[%d][%d] : ",I,J);
scanf("%d", &M[I][J]);
}
printf("Given array :\n");
for (I=0; I<L; I++)
{
for (J=0; J<C; J++)
printf("%7d", M[I][J]);
printf("\n");
}
for (I=0; I<L; I++)
for (J=0; J<C; J++)
V[I*C+J] = M[I][J];
printf("Resulted array : ");
for (I=0; I<L*C; I++)
printf("%d ", V[I]);
printf("\n");
return 0;
}
التمرين 7.8
#include <stdio.h>
main()
{
int U[50], V[50];
int N;
int I;
long PS;
printf("Dimension of arrays (max.50) : ");
scanf("%d", &N );
printf("** First array **\n");
for (I=0; I<N; I++)
{
printf("Element %d : ", I);
scanf("%d", &U[I]);
}
printf("** Second array **\n");
for (I=0; I<N; I++)
{
printf("Element %d : ", I);
scanf("%d", &V[I]);
}
/* حساب الجداء السلمي */
for (PS=0, I=0; I<N; I++)
PS += (long)U[I]*V[I];
printf("Dot product : %ld\n", PS);
return 0;
}
التمرين 7.9
#include <stdio.h>
#include <math.h>
main()
{
float A[20];
int I;
int N;
float X;
float P;
printf("Give the degree N of polynome (max.20) : ");
scanf("%d", &N);
printf("Give the Value X of the argument : ");
scanf("%f", &X);
for (I=0 ; I<N ; I++)
{
printf("Give the coefficient A%d : ", I);
scanf("%f", &A[I]);
}
/* pow بمساعدة الدالة
for (P=0.0, I=0 ; I<N ; I++)
P += A[I]*pow(X,I); */
/* Horner باستعمال*/
for (P=0.0, I=0 ; I<N ; I++)
P = P*X + A[I];
printf("Value of polynome for X = %.2f : %.2f\n", X, P);
return 0;
}
التمرين 7.10
#include <stdio.h>
main()
{
int A[50];
int N;
int I;
int MIN;
int MAX;
printf("Dimension of the array (max.50) : ");
scanf("%d", &N );
for (I=0; I<N; I++)
{
printf("Element %d : ", I);
scanf("%d", &A[I]);
}
printf("Given array :\n");
for (I=0; I<N; I++)
printf("%d ", A[I]);
printf("\n");
MIN=0;
MAX=0;
for (I=0; I<N; I++)
{
if(A[I]>A[MAX]) MAX=I;
if(A[I]<A[MIN]) MIN=I;
}
printf("Position of the minimum : %d\n", MIN);
printf("Position of the maximum : %d\n", MAX);
printf("Minimum : %d\n", A[MIN]);
printf("Maximum : %d\n", A[MAX]);
return 0;
}