Deux exercices sur les boucles
3 participants
Forum INFOMATH :: Enseignement de l'informatique :: Informatique - Collège & Lycée :: Exercices Pascal
Page 1 sur 1
Re: Deux exercices sur les boucles
salut tout le monde!!
voilà voilou j'ai à vous proposer deux excercices dont je cherche la résolution si vous voulez bien me la rediger !! merci d'avance
ex1:
ecrire un programme pascal qui permet de saisir une chaîne de caractères CH1 ,d'en extraire les deux nombres formés par les chiffres figurant dans la chaîne Ch1 (extraction apartir de la droite puis extraction à partir de la gauche )
exple: si CH1='a45b3cz' le pg affichera 4532 et 2354
[b]ex2:
ecrire un pg Pascal qui saisit un tableau T et affiche l'ordre alphabetique de chaque lettre (se trouvant dans le tableau).
à +
voilà voilou j'ai à vous proposer deux excercices dont je cherche la résolution si vous voulez bien me la rediger !! merci d'avance
ex1:
ecrire un programme pascal qui permet de saisir une chaîne de caractères CH1 ,d'en extraire les deux nombres formés par les chiffres figurant dans la chaîne Ch1 (extraction apartir de la droite puis extraction à partir de la gauche )
exple: si CH1='a45b3cz' le pg affichera 4532 et 2354
[b]ex2:
ecrire un pg Pascal qui saisit un tableau T et affiche l'ordre alphabetique de chaque lettre (se trouvant dans le tableau).
à +
cooletzen- Entier Naturel
-
Nombre de messages : 42
Age : 34
Localisation : tunisie
Réputation : 4
Points : 5845
Date d'inscription : 24/12/2008
Re: Deux exercices sur les boucles
Bonsoir,
Bon je te donne des indications pour que tu essai toute seule de resoudre ces 2 exercices
Pense à lire chaque caractére de la chaine (donc utilisation d'une boucle), à chaque itération le comparer avec une liste de valeurs, soit la liste des entiers de 0 à 9. Si tu le trouve dans cette liste alors tu le copie dans une autre chaine, et en le concaténant avec ce qui existe déjà dans cette variable.
Deux boucles seront utilisée, une qui part du debut de la chaine et une de la fin.
On attend ta proposition
J'ai pas bien compris tu veux dire quoi avec l'ordre alphabétique de chaque lettre
Dans ton exemple il manque le 2 dans la derniere partie de la chaine CH1.cooletzen a écrit:exple: si CH1='a45b3cz' le pg affichera 4532 et 2354
Bon je te donne des indications pour que tu essai toute seule de resoudre ces 2 exercices
cooletzen a écrit:ex1:
ecrire un programme pascal qui permet de saisir une chaîne de caractères CH1 ,d'en extraire les deux nombres formés par les chiffres figurant dans la chaîne Ch1 (extraction apartir de la droite puis extraction à partir de la gauche )
exple: si CH1='a45b3cz' le pg affichera 4532 et 2354
Pense à lire chaque caractére de la chaine (donc utilisation d'une boucle), à chaque itération le comparer avec une liste de valeurs, soit la liste des entiers de 0 à 9. Si tu le trouve dans cette liste alors tu le copie dans une autre chaine, et en le concaténant avec ce qui existe déjà dans cette variable.
Deux boucles seront utilisée, une qui part du debut de la chaine et une de la fin.
On attend ta proposition
cooletzen a écrit:
ex2:
ecrire un pg Pascal qui saisit un tableau T et affiche l'ordre alphabetique de chaque lettre (se trouvant dans le tableau).
J'ai pas bien compris tu veux dire quoi avec l'ordre alphabétique de chaque lettre
lamia- Modérateur
-
Nombre de messages : 1936
Age : 38
Localisation : Tunis
Réputation : 53
Points : 6800
Date d'inscription : 04/11/2007
Feuille de personnage
Capacité linguistique:
(996/1000)
Re: Deux exercices sur les boucles
De ma part, je te propose les instructions (algorithmiques) suivantes :
EXERCICE 1:
Pour construire le nombre de Gauche ===> Droite:
Tu peux construire les deux nombres (les deux sens) en une seule boucle. Tu sais comment ???
Bon courage.
EXERCICE 1:
Pour construire le nombre de Gauche ===> Droite:
- Code:
0) DEBUT_PROGRAMME
1) Ecrire("Entrer une chaine:");
2) lire(ch);
3) NombreGD := 0;
4) POUR i de 1 à longueur(ch) FAIRE
SI (ch[i] in "0..9") ALORS
Convertir_chaine(ch[i],chiffre,e);
NombreGD := 10*Nombre + chiffre;
FINSI
FINPOUR
5) FIN_PROGRAMME
Tu peux construire les deux nombres (les deux sens) en une seule boucle. Tu sais comment ???
Bon courage.
Napoléon- Admin
-
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7871
Date d'inscription : 19/03/2007
Feuille de personnage
Capacité linguistique:
(999/1000)
Re: Deux exercices sur les boucles
Pour le deuxième exercice, une astuce te permet de déterminer l'ordre alphabétique de chaque lettre.
On note Ordre(L) l'ordre alphabétique d'une lettre L. Il est calculé comme suit:
Ordre(L) = CODE_ASCII(Majuscule(L)) - CODE_ASCII("A") + 1
où CODE_ASCII est la fonction qui retourne le code ASCII d'une lettre donnée. En effet, deux lettres consécutives ont deux codes ASCII consécutifs.
Prenons un exemple:
Ordre("g") = ASCII("G") - ASCII("A") + 1 = 7
On note Ordre(L) l'ordre alphabétique d'une lettre L. Il est calculé comme suit:
Ordre(L) = CODE_ASCII(Majuscule(L)) - CODE_ASCII("A") + 1
où CODE_ASCII est la fonction qui retourne le code ASCII d'une lettre donnée. En effet, deux lettres consécutives ont deux codes ASCII consécutifs.
Prenons un exemple:
Ordre("g") = ASCII("G") - ASCII("A") + 1 = 7
Napoléon- Admin
-
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7871
Date d'inscription : 19/03/2007
Feuille de personnage
Capacité linguistique:
(999/1000)
Re: Deux exercices sur les boucles
nabiL a écrit:De ma part, je te propose les instructions (algorithmiques) suivantes :
EXERCICE 1:
Pour construire le nombre de Gauche ===> Droite:
- Code:
0) DEBUT_PROGRAMME
1) Ecrire("Entrer une chaine:");
2) lire(ch);
3) NombreGD := 0;
4) POUR i de 1 à longueur(ch) FAIRE
SI (ch[i] in "0..9") ALORS
Convertir_chaine(ch[i],chiffre,e);
NombreGD := 10*[b]Nombre[/b] + chiffre;
FINSI
FINPOUR
5)[color=red] FIN_PROGRAMME[/color]
Tu peux construire les deux nombres (les deux sens) en une seule boucle. Tu sais comment ???
Bon courage.
euuuuuuuuuuuh de quel nombre il s'agit j'ai pas saisi.....
et comment faire pour les ecrire en une seule boucle
Dernière édition par cooletzen le Mer 21 Jan - 22:15, édité 2 fois
cooletzen- Entier Naturel
-
Nombre de messages : 42
Age : 34
Localisation : tunisie
Réputation : 4
Points : 5845
Date d'inscription : 24/12/2008
Re: Deux exercices sur les boucles
Le nombre construit de DROITE ====> GAUCHE.
Réfléchis et propose une solution d'abord
comment faire pour les ecrire en une seule boucle
Réfléchis et propose une solution d'abord
Napoléon- Admin
-
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7871
Date d'inscription : 19/03/2007
Feuille de personnage
Capacité linguistique:
(999/1000)
Re: Deux exercices sur les boucles
j'ai pas saisi ce nombre mnin janabiL a écrit:
NombreGD := 10*Nombre + chiffre;
.
cooletzen- Entier Naturel
-
Nombre de messages : 42
Age : 34
Localisation : tunisie
Réputation : 4
Points : 5845
Date d'inscription : 24/12/2008
Re: Deux exercices sur les boucles
cooletzen a écrit:nabiL a écrit:De ma part, je te propose les instructions (algorithmiques) suivantes :
EXERCICE 1:
Pour construire le nombre de Gauche ===> Droite:
- Code:
0) DEBUT_PROGRAMME
1) Ecrire("Entrer une chaine:");
2) lire(ch);
3) NombreGD := 0;
4) POUR i de 1 à longueur(ch) FAIRE
SI (ch[i] in "0..9") ALORS
Convertir_chaine(ch[i],chiffre,e);
NombreGD := 10*[b]Nombre[/b] + chiffre;
FINSI
FINPOUR
5)[color=red] FIN_PROGRAMME[/color]
Tu peux construire les deux nombres (les deux sens) en une seule boucle. Tu sais comment ???
Bon courage.
euuuuuuuuuuuh de quel nombre il s'agit j'ai pas saisi.....
et comment faire pour les ecrire en une seule boucle
euh je pense qu'il manque l'instructiion qui affiche le resultat ( ecrire ('le nombre de gauche a droite est ',gd) non???
de ma part pour resoudre ce pb j'ai pensé à faire deux boucles pour les deux resultats voici l'analyse descendante que j'ai faite ;
resultat:
ch2<------ch[long(convch(s,ch)]
pour j de long (ch) à 1 faire
ch2<------ch2 + ch[j]
fin pour
ndg<--------val (ch2)
ecrire (''le nombre de droite a gauche est' ', ndg)
s<--------0
pour i de 1 à long ch1 faire
si ch1[i]= val(ch1[i] )
alors s<------s+ch1[i]
fin si
ecrire (''le nombre de droite à gauche est ", ndg)
ch1=
repeter
ch1=donné ("donner une chaine")
jusqu'à
long ch1<>0
i,j= compteurs
voilà mon gribouillage nchalla fhemtouh
cooletzen- Entier Naturel
-
Nombre de messages : 42
Age : 34
Localisation : tunisie
Réputation : 4
Points : 5845
Date d'inscription : 24/12/2008
Re: Deux exercices sur les boucles
cooletzen a écrit:j'ai pas saisi ce nombre mnin ja:shock:nabiL a écrit:
NombreGD := 10*Nombre + chiffre;
En effet, cette instruction te permet de faire un décalage à gauche de tous les chiffres du nombre, avant de lui ajouter un chiffre à son extreme-droite.
Par exemple:
Si X = 124, et on veut coller 9 à droite de X (pour obtenir 1249)
Alors il suffit de faire:
X := 10 * X + 9.
NON?
Napoléon- Admin
-
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7871
Date d'inscription : 19/03/2007
Feuille de personnage
Capacité linguistique:
(999/1000)
Re: Deux exercices sur les boucles
euh je pense qu'il manque l'instructiion qui affiche le resultat ( ecrire ('le nombre de gauche a droite est ',gd) non???
OUI. Ajoute-la.
....
Avec deux boucles, on peut s'en sortir facilement. Mais si tu réfléchis mieux, tu t'en sortiras avec une seule boucle.
Je te donne la solution?
Napoléon- Admin
-
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7871
Date d'inscription : 19/03/2007
Feuille de personnage
Capacité linguistique:
(999/1000)
Re: Deux exercices sur les boucles
c malinnabiL a écrit:cooletzen a écrit:j'ai pas saisi ce nombre mnin ja:shock:nabiL a écrit:
NombreGD := 10*Nombre + chiffre;
En effet, cette instruction te permet de faire un décalage à gauche de tous les chiffres du nombre, avant de lui ajouter un chiffre à son extreme-droite.
Par exemple:
Si X = 124, et on veut coller 9 à droite de X (pour obtenir 1249)
Alors il suffit de faire:
X := 10 * X + 9.
NON?
cooletzen- Entier Naturel
-
Nombre de messages : 42
Age : 34
Localisation : tunisie
Réputation : 4
Points : 5845
Date d'inscription : 24/12/2008
Re: Deux exercices sur les boucles
oui donnez la solutionnabiL a écrit:euh je pense qu'il manque l'instructiion qui affiche le resultat ( ecrire ('le nombre de gauche a droite est ',gd) non???
OUI. Ajoute-la.
....
Avec deux boucles, on peut s'en sortir facilement. Mais si tu réfléchis mieux, tu t'en sortiras avec une seule boucle.
Je te donne la solution?
cooletzen- Entier Naturel
-
Nombre de messages : 42
Age : 34
Localisation : tunisie
Réputation : 4
Points : 5845
Date d'inscription : 24/12/2008
Re: Deux exercices sur les boucles
- Code:
0) DEBUT_PROGRAMME
1) Ecrire("Entrer une chaine:");
2) lire(ch);
3) NombreGD := 0; NombreDG := 0; n := length(ch);
4) POUR i de 1 à longueur(ch) FAIRE
SI (ch[i] in "0..9") ALORS
Convertir_chaine(ch[i],chiffre,e);
NombreGD := 10*NombreGD + chiffre;
FINSI
SI (ch[n-i+1] in "0..9") ALORS
Convertir_chaine(ch[n-i+1],chiffre,e);
NombreGD := 10*NombreDG + chiffre;
FINSI
FINPOUR
5) FIN_PROGRAMME
Les deux nombres sont: NombreDG et NombreGD.
Y-a-t-il des problèmes?
Napoléon- Admin
-
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7871
Date d'inscription : 19/03/2007
Feuille de personnage
Capacité linguistique:
(999/1000)
Re: Deux exercices sur les boucles
ça sera pas plutot nombreDG:=10......nabiL a écrit:
NombreGD := 10*NombreDG + chiffre;
?
cooletzen- Entier Naturel
-
Nombre de messages : 42
Age : 34
Localisation : tunisie
Réputation : 4
Points : 5845
Date d'inscription : 24/12/2008
Re: Deux exercices sur les boucles
sinon tout est clair merci reçu 5 sur 5 boss
sinon aussi :tongue : j'aimerai qu'on m'explique le fonctionnement de la fonction Random et des exemples si c'est possible
je sais kathart 3likom
sinon aussi :tongue : j'aimerai qu'on m'explique le fonctionnement de la fonction Random et des exemples si c'est possible
je sais kathart 3likom
cooletzen- Entier Naturel
-
Nombre de messages : 42
Age : 34
Localisation : tunisie
Réputation : 4
Points : 5845
Date d'inscription : 24/12/2008
Re: Deux exercices sur les boucles
je sais kathart 3likom
Pas du tout. C'est le but du forum déjà. Alors n'hésite jamais à poser des questions, et surtout invite tes amis pour enrichir le contenu du forum.
Napoléon- Admin
-
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7871
Date d'inscription : 19/03/2007
Feuille de personnage
Capacité linguistique:
(999/1000)
Sujets similaires
» Nombres Amis + Boucles
» Exercice: Extrait BAC : anagramme + boucles
» Exercice: Extrait BAC : Boucles + tableaux
» Exercice : Obligatoirement positifs et négatifs + boucles
» Exercice corrigé: Extrait BAC : Boucles + Random + Simulation d'un jeu
» Exercice: Extrait BAC : anagramme + boucles
» Exercice: Extrait BAC : Boucles + tableaux
» Exercice : Obligatoirement positifs et négatifs + boucles
» Exercice corrigé: Extrait BAC : Boucles + Random + Simulation d'un jeu
Forum INFOMATH :: Enseignement de l'informatique :: Informatique - Collège & Lycée :: Exercices Pascal
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum