Probléme en algorithme
Fermé
joseph90
Messages postés
40
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
21 janvier 2012
-
19 janv. 2008 à 14:34
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 - 21 janv. 2008 à 11:52
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 - 21 janv. 2008 à 11:52
A voir également:
- Probléme en algorithme
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Code ascii algorithme - Guide
- Algorithme euromillion excel gratuit - Forum Algorithmes / Méthodes
- Algorithme maximum de 3 nombres ✓ - Forum Algorithmes / Méthodes
7 réponses
tatou_38
Messages postés
1928
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
5 août 2015
121
19 janv. 2008 à 14:39
19 janv. 2008 à 14:39
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.
tarek_dotzero
Messages postés
817
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
12 avril 2022
121
19 janv. 2008 à 14:55
19 janv. 2008 à 14:55
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;
joseph90
Messages postés
40
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
21 janvier 2012
19 janv. 2008 à 21:18
19 janv. 2008 à 21:18
merci mé j v une algorithme compléte svp + traduction en pascal
merci**
merci**
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
tatou_38
Messages postés
1928
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
5 août 2015
121
19 janv. 2008 à 23:29
19 janv. 2008 à 23:29
exigeant en plus joseph90 !
tarek_dotzero
Messages postés
817
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
12 avril 2022
121
20 janv. 2008 à 09:59
20 janv. 2008 à 09:59
/* 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.
tarek_dotzero
Messages postés
817
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
12 avril 2022
121
21 janv. 2008 à 11:52
21 janv. 2008 à 11:52
Une petite remarque:
Les commentaires en pascal sont { } et non pas /* */.
Les commentaires en pascal sont { } et non pas /* */.