Différences entre versions de « C algo td3 »

De The Linux Craftsman
Aller à la navigation Aller à la recherche
Ligne 112 : Ligne 112 :
  
 
*Écrire l’algorithme en pseudo-code pour une version du programme utilisant un tableau intermédiaire.
 
*Écrire l’algorithme en pseudo-code pour une version du programme utilisant un tableau intermédiaire.
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">
 +
<big>Afficher la solution:</big>
 +
<source class="mw-collapsible-content" lang="c">
 +
#include <stdio.h>
 +
#include <stdlib.h>
 +
 +
#define N 10
 +
int main() {
 +
int tab[] = { 1, 2, 3, 4 }, res[4], i;
 +
for (i = 0; i < 4; i++) {
 +
res[3 - i] = tab[i];
 +
}
 +
for (i = 0; i < 4; i++) {
 +
printf("A l'index %d, le tableau source vaut %d et le tableau destination vaut %d\n", i, tab[i], res[i]);
 +
}
 +
return EXIT_SUCCESS;
 +
}
 +
</source>
 +
</div>
 +
 +
*Écrire l’algorithme en pseudo-code pour une version du programme n’utilisant pas de tableau intermédiaire.
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:700px">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:700px">
 
<big>Afficher la solution:</big>
 
<big>Afficher la solution:</big>
 
<source class="mw-collapsible-content" lang="c">
 
<source class="mw-collapsible-content" lang="c">
 +
#include <stdio.h>
 +
#include <stdlib.h>
  
 +
#define N 10
 +
int main() {
 +
int tab[] = { 1, 2, 3, 4 }, tmp, i;
 +
for (i = 0; i < 4; i++) {
 +
tmp = tab[3-i] + tab[i];
 +
tab[i] = tmp - tab[i];
 +
}
 +
for (i = 0; i < 4; i++) {
 +
printf("A l'index %d, le valeur est %d\n", i, tab[i]);
 +
}
 +
return EXIT_SUCCESS;
 +
}
 
</source>
 
</source>
 
</div>
 
</div>
 +
== Exercice 5 ==
 +
L’objectif consiste ici à généraliser l’exercice précédent. On souhaite permettre à l’utilisateur d’effectuer une permutation circulaire des valeurs du tableau en précisant la valeur d’un décalage de position.
 +
 +
Cette valeur sera saisie par l’utilisateur : une valeur positive correspondant à un décalage vers la droite et une valeur négative à un décalage vers la gauche.
 +
 +
Par exemple, un décalage de +2 donne :
 +
 +
 +
{‘a’, ‘b’, ‘c’, ‘d’} &rarr; {‘c’, ‘d’, ‘a’, ‘b’}
  
*Écrire l’algorithme en pseudo-code pour une version du programme n’utilisant pas de tableau intermédiaire.
 
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:700px">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:700px">
 
<big>Afficher la solution:</big>
 
<big>Afficher la solution:</big>
Ligne 126 : Ligne 169 :
 
</source>
 
</source>
 
</div>
 
</div>
 +
 
== Exercice 5 ==
 
== Exercice 5 ==

Version du 26 février 2014 à 21:37

Exercice 1

Dérouler le programme suivant de façon à suivre l’état des variables :

#define N 5
int main(){
    int tab[N], i;
    i=0;
    while(i < N){
        tab[i]=N-i;
        i+=1;
    }
    return 0;
}


Afficher la solution:

#include <stdio.h>
#include <stdlib.h>

#define N 5
int main() {
	int tab[N], i;
	i = 0;
	while (i < N) {
		tab[i] = N - i;
		printf("L'index %d du tableau vaut %d\n", i, tab[i]);
		i += 1;
	}
	return 0;
}

Exercice 2

Dérouler le programme suivant de façon à suivre l’état des variables :

#define N 7
int main(){
    int tab[N], i;
    tab[0]=1;
    for(i=1; i < N; i++){
        tab[i]=tab[i-1]+2;
    }    
    return 0;
}


Afficher la solution:

#include <stdio.h>
#include <stdlib.h>

#define N 7
int main() {
	int tab[N], i;
	tab[0] = 1;
	for (i = 1; i < N; i++) {
		tab[i] = tab[i - 1] + 2;
		printf("L'index %d du tableau vaut %d, la somme de %d avec 2\n", i, tab[i], tab[i - 1]);
	return 0;
}

Exercice 3

Dérouler le programme suivant de façon à suivre l’état des variables :

#define N 10
int main() {
	int tab[N], i;
	tab[0] = 1;
	tab[1] = 1;
	i = 2;
	do {
		tab[i] = tab[i - 1] + tab[i - 2];
		i++;
	} while (i <= 7);
	return 0;
}


Afficher la solution:

#include <stdio.h>
#include <stdlib.h>

#define N 10
int main() {
	int tab[N], i;
	tab[0] = 1;
	tab[1] = 1;
	i = 2;
	do {
		tab[i] = tab[i - 1] + tab[i - 2];
		printf("L'index %d du tableau vaut %d, la somme de %d avec %d\n", i, tab[i], tab[i - 1], tab[i-2]);
		i++;
	} while (i <= 7);
	return 0;
}

Exercice 4

L’objectif de cet exercice consiste à écrire un programme permettant d’inverser l’ordre des valeurs d’un tableau.

Exemple : {1, 2, 3, 4} → {4, 3, 2, 1}.

  • Écrire l’algorithme en pseudo-code pour une version du programme utilisant un tableau intermédiaire.

Afficher la solution:

#include <stdio.h>
#include <stdlib.h>

#define N 10
int main() {
	int tab[] = { 1, 2, 3, 4 }, res[4], i;
	for (i = 0; i < 4; i++) {
		res[3 - i] = tab[i];
	}
	for (i = 0; i < 4; i++) {
		printf("A l'index %d, le tableau source vaut %d et le tableau destination vaut %d\n", i, tab[i], res[i]);
	}
	return EXIT_SUCCESS;
}
  • Écrire l’algorithme en pseudo-code pour une version du programme n’utilisant pas de tableau intermédiaire.

Afficher la solution:

#include <stdio.h>
#include <stdlib.h>

#define N 10
int main() {
	int tab[] = { 1, 2, 3, 4 }, tmp, i;
	for (i = 0; i < 4; i++) {
		tmp = tab[3-i] + tab[i];
		tab[i] = tmp - tab[i];
	}
	for (i = 0; i < 4; i++) {
		printf("A l'index %d, le valeur est %d\n", i, tab[i]);
	}
	return EXIT_SUCCESS;
}

Exercice 5

L’objectif consiste ici à généraliser l’exercice précédent. On souhaite permettre à l’utilisateur d’effectuer une permutation circulaire des valeurs du tableau en précisant la valeur d’un décalage de position.

Cette valeur sera saisie par l’utilisateur : une valeur positive correspondant à un décalage vers la droite et une valeur négative à un décalage vers la gauche.

Par exemple, un décalage de +2 donne :


{‘a’, ‘b’, ‘c’, ‘d’} → {‘c’, ‘d’, ‘a’, ‘b’}

Afficher la solution:

Exercice 5