1. Code source du TP6
#include <stdio.h>
#define LIGNE_MAX 5
#define COL_MAX 5
int main(){
//en plus
/*int taille;
scanf("%d",&taille);
int tmpTab[taille];*/ //votre compilateur peut accepter de declarer des tab comme ca localement mais ...
//sulp ne
unsigned int i,j,nbrLigne,nbrCol;
int somCol,
matElem[LIGNE_MAX][COL_MAX]={{4,2,3,5,1},{1,2,3,4,0},{1,2,3,4,0},{1},{0}},
tabSomColImpaire[(COL_MAX/2)+1]={0};
//lecture de la taille
printf(" Donner le nbr de lignes <=%u:",LIGNE_MAX);
scanf("%u",&nbrLigne);
printf(" Donner le nbr de colonnes <=%u:",COL_MAX);
scanf("%u",&nbrCol);
printf("\nVotre matrice est initialisee a:\n");
for(i=0;i<nbrLigne;i++){ //indices de 0 a taille-1
for(j=0;j<nbrCol;j++){
printf("\t%3d",matElem[i][j]); //les crochets pour degrouper
}
printf("\n");
}
//lecture des elements1
for(i=0;i<nbrLigne;i++){ //parcours ligne par ligne
for(j=0;j<nbrCol;j++){
printf("\nDonner l'element(%u,%u):",i+1,j+1); //pourquoi +1?
scanf("%d",&matElem[i][j]);
}
}
//traitements
for(j=0;j<nbrCol;j+=2){ //parcours col par col
somCol=0;
for(i=0;i<nbrLigne;i++){
somCol+=matElem[i][j];
}
tabSomColImpaire[j/2]=somCol;
}
//Affichage
printf("\nVous avez introduit la matrice:\n");
for(i=0;i<nbrLigne;i++){ //indices de 0 a taille-1
for(j=0;j<nbrCol;j++){
printf("\t%3d",matElem[i][j]);
}
printf("\n");
}
for(j=0,i=1;j<nbrCol;j+=2,i++){ //combiner 2 compteurs
printf("La somme des elements de la colonne %u est %d\n",i,tabSomColImpaire[i-1]);
}
return 0;
}
2. Exécuter le code suivant puis essayer de comprendre comment il effectue sa tache
#include <stdio.h>
#include <stdlib.h>
int main()
{
const int maxTaille=10;
int vectVal[maxTaille],i,nbrVal,val,isValIn,tmpVal;
printf("Donnez vos valeurs (pas plus de %d). Lorsque vous voulez arreter entrez zero",maxTaille);
i=0;
do{ //On met les accolades pour differencier rapidement entre while et do while
printf("\nVal(%d)=",i+1);
scanf("%d",&tmpVal);
if(!i&&!tmpVal){printf("\nIl faut au moins une val non nulle!");}
else{if(tmpVal)vectVal[i++]=tmpVal;}
}while(((i<maxTaille)&&(tmpVal))||(!i&&!tmpVal));
printf("\nLe nombre de valeurs a considerer est %d "
"\nDonner une valeur, je vais vous donner son premier rang "
"dans votre liste:",nbrVal=i);
scanf("%d",&val);
i=isValIn=0;
while(!isValIn &&(i<nbrVal)){
if(vectVal[i]==val){isValIn=1;}
i++;
}
if(isValIn){
printf("\n Le premier rang de votre valeur est %d",i);
}else{
printf("\n Votre valeur n'existe pas");
}
return 0;
}
3. Réaliser la même tache avec des boucles for.
#include <stdio.h>
#define LIGNE_MAX 5
#define COL_MAX 5
int main(){
//en plus
/*int taille;
scanf("%d",&taille);
int tmpTab[taille];*/ //votre compilateur peut accepter de declarer des tab comme ca localement mais ...
//sulp ne
unsigned int i,j,nbrLigne,nbrCol;
int somCol,
matElem[LIGNE_MAX][COL_MAX]={{4,2,3,5,1},{1,2,3,4,0},{1,2,3,4,0},{1},{0}},
tabSomColImpaire[(COL_MAX/2)+1]={0};
//lecture de la taille
printf(" Donner le nbr de lignes <=%u:",LIGNE_MAX);
scanf("%u",&nbrLigne);
printf(" Donner le nbr de colonnes <=%u:",COL_MAX);
scanf("%u",&nbrCol);
printf("\nVotre matrice est initialisee a:\n");
for(i=0;i<nbrLigne;i++){ //indices de 0 a taille-1
for(j=0;j<nbrCol;j++){
printf("\t%3d",matElem[i][j]); //les crochets pour degrouper
}
printf("\n");
}
//lecture des elements1
for(i=0;i<nbrLigne;i++){ //parcours ligne par ligne
for(j=0;j<nbrCol;j++){
printf("\nDonner l'element(%u,%u):",i+1,j+1); //pourquoi +1?
scanf("%d",&matElem[i][j]);
}
}
//traitements
for(j=0;j<nbrCol;j+=2){ //parcours col par col
somCol=0;
for(i=0;i<nbrLigne;i++){
somCol+=matElem[i][j];
}
tabSomColImpaire[j/2]=somCol;
}
//Affichage
printf("\nVous avez introduit la matrice:\n");
for(i=0;i<nbrLigne;i++){ //indices de 0 a taille-1
for(j=0;j<nbrCol;j++){
printf("\t%3d",matElem[i][j]);
}
printf("\n");
}
for(j=0,i=1;j<nbrCol;j+=2,i++){ //combiner 2 compteurs
printf("La somme des elements de la colonne %u est %d\n",i,tabSomColImpaire[i-1]);
}
return 0;
}
2. Exécuter le code suivant puis essayer de comprendre comment il effectue sa tache
#include <stdio.h>
#include <stdlib.h>
int main()
{
const int maxTaille=10;
int vectVal[maxTaille],i,nbrVal,val,isValIn,tmpVal;
printf("Donnez vos valeurs (pas plus de %d). Lorsque vous voulez arreter entrez zero",maxTaille);
i=0;
do{ //On met les accolades pour differencier rapidement entre while et do while
printf("\nVal(%d)=",i+1);
scanf("%d",&tmpVal);
if(!i&&!tmpVal){printf("\nIl faut au moins une val non nulle!");}
else{if(tmpVal)vectVal[i++]=tmpVal;}
}while(((i<maxTaille)&&(tmpVal))||(!i&&!tmpVal));
printf("\nLe nombre de valeurs a considerer est %d "
"\nDonner une valeur, je vais vous donner son premier rang "
"dans votre liste:",nbrVal=i);
scanf("%d",&val);
i=isValIn=0;
while(!isValIn &&(i<nbrVal)){
if(vectVal[i]==val){isValIn=1;}
i++;
}
if(isValIn){
printf("\n Le premier rang de votre valeur est %d",i);
}else{
printf("\n Votre valeur n'existe pas");
}
return 0;
}
3. Réaliser la même tache avec des boucles for.
No comments:
Post a Comment
Note: only a member of this blog may post a comment.