Différences entre versions de « C algo td3 »
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’} → {‘c’, ‘d’, ‘a’, ‘b’} | ||
− | |||
<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 à 20: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: