Probléme en algorithme
joseph90
Messages postés
40
Date d'inscription
Statut
Membre
Dernière intervention
-
tarek_dotzero Messages postés 817 Date d'inscription Statut Membre Dernière intervention -
tarek_dotzero Messages postés 817 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
svp j ai besoi a votre aide pour trouver une solutin a cette exercice
************
soit v1 et v2 deux tableaux d entier de taille n (n est impair)
ecrire un algorithme permettant le trnsfert des element de v1 dans v2 selon le principe suivant:
les element de rang impair de v1 sont rangés dans v2 en ordre inverse en comencant par la fin de v2 et les element de rangés pair de v1 sont rangés dans v2 dans le méme prdre.
/////
exemple:
v1 10 12 20 25 30
v2 12 25 30 20 10
merci de me répondre c trés important
svp j ai besoi a votre aide pour trouver une solutin a cette exercice
************
soit v1 et v2 deux tableaux d entier de taille n (n est impair)
ecrire un algorithme permettant le trnsfert des element de v1 dans v2 selon le principe suivant:
les element de rang impair de v1 sont rangés dans v2 en ordre inverse en comencant par la fin de v2 et les element de rangés pair de v1 sont rangés dans v2 dans le méme prdre.
/////
exemple:
v1 10 12 20 25 30
v2 12 25 30 20 10
merci de me répondre c trés important
A voir également:
- Probléme en algorithme
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Algorithme euromillion excel gratuit - Forum Algorithmes / Méthodes
- Algorithme ajout rapide snapchat - Forum Snapchat
- Ajout rapide snap - Forum Snapchat
7 réponses
1. Tu balaye v1 de 2 en 2 en commençant au 2ème élément et transfère ce que tu trouves dans la case suivante de v2
2. Tu balaye v1 de -2 en -2 en commençant par le dernier élément de rang impair et transfère ce que tu trouves dans la case suivante de v2
C'est tout !
2. Tu balaye v1 de -2 en -2 en commençant par le dernier élément de rang impair et transfère ce que tu trouves dans la case suivante de v2
C'est tout !
Voici l'algorithme:
Algorithme ex;
Variables:
v1,v2,temp:tableau de 1 à N d'entiers;
i:entier;
Constantes N=...;
Début
temp <= v1
Pour i de 1 à N faire v1[i] <= v2[N-i];
v2 <= temp;
Fin.
Algorithme ex;
Variables:
v1,v2,temp:tableau de 1 à N d'entiers;
i:entier;
Constantes N=...;
Début
temp <= v1
Pour i de 1 à N faire v1[i] <= v2[N-i];
v2 <= temp;
Fin.
Tu peux facilement creer une boucle et tu manipule deux curseurs:
en Pascal cela donne:
cpt1 := 1;
cpt2 := n;
for cpt:= 1 to n do
begin
if (i mod 2 = 0) then
begin
v2[cpt2] = v1[cpt];
cpt2 := cpt2 - 1;
end
else
begin
v2[cpt1] := v1[cpt];
cpt1 := cpt1 + 1;
end;
end;
en Pascal cela donne:
cpt1 := 1;
cpt2 := n;
for cpt:= 1 to n do
begin
if (i mod 2 = 0) then
begin
v2[cpt2] = v1[cpt];
cpt2 := cpt2 - 1;
end
else
begin
v2[cpt1] := v1[cpt];
cpt1 := cpt1 + 1;
end;
end;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
/* Ce programme ne gère pas des cas particuliers ni exceptions */
/* Ce code n'est pas testé! */
Program monProgramme;
const
/* Definit la taille maximale */
tailleMax = 100;
var
/* Declaration des compteur */
cpt, cpt1, cpt2: Integer;
/* la taille des tableaux */
n: Integer;
/* Les deux tableaux */
v1, v2: array [1..tailleMax] of Integer;
/* Booleen pour les boucles */
b: Boolean;
/* Une variable pour les boucles FOR */
/* Le programme */
Begin
b := false;
/* une petite boucle qui garantit une taille n < tailleMax */
while (not(b)) do
begin
writeln("Faites entrer la taille des tableaux:");
readln(n);
if ((n<tailleMax) and (i mod 2 =1)) then b := true;
end;
/* Remplissage de v1 */
for i:=1 to n do
readln(v1[i]);
cpt1 := 1; /* Curseur pour les positions paires */
cpt2 := n; /* Curseur pour les positions impaires */
for cpt:= 1 to n do /* Traitement case par case */
begin
if (i mod 2 = 0) then
begin /* Position paire */
v2[cpt2] = v1[cpt]; /* On met la valeur à la fin */
cpt2 := cpt2 - 1; /* On decremente pour le faire pointer sur une case vide */
end
else
begin
v2[cpt1] := v1[cpt]; /* On met la valeur au debut */
cpt1 := cpt1 + 1; /* On incrementer pour le faire pointer sur une case vide */
end;
end;
/* Affichage du resultat */
for i:=1 to n do
writeln(v2[i];
/* Fin */
end.
/* Ce code n'est pas testé! */
Program monProgramme;
const
/* Definit la taille maximale */
tailleMax = 100;
var
/* Declaration des compteur */
cpt, cpt1, cpt2: Integer;
/* la taille des tableaux */
n: Integer;
/* Les deux tableaux */
v1, v2: array [1..tailleMax] of Integer;
/* Booleen pour les boucles */
b: Boolean;
/* Une variable pour les boucles FOR */
/* Le programme */
Begin
b := false;
/* une petite boucle qui garantit une taille n < tailleMax */
while (not(b)) do
begin
writeln("Faites entrer la taille des tableaux:");
readln(n);
if ((n<tailleMax) and (i mod 2 =1)) then b := true;
end;
/* Remplissage de v1 */
for i:=1 to n do
readln(v1[i]);
cpt1 := 1; /* Curseur pour les positions paires */
cpt2 := n; /* Curseur pour les positions impaires */
for cpt:= 1 to n do /* Traitement case par case */
begin
if (i mod 2 = 0) then
begin /* Position paire */
v2[cpt2] = v1[cpt]; /* On met la valeur à la fin */
cpt2 := cpt2 - 1; /* On decremente pour le faire pointer sur une case vide */
end
else
begin
v2[cpt1] := v1[cpt]; /* On met la valeur au debut */
cpt1 := cpt1 + 1; /* On incrementer pour le faire pointer sur une case vide */
end;
end;
/* Affichage du resultat */
for i:=1 to n do
writeln(v2[i];
/* Fin */
end.