aide scolaire
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

non redondance

Aller en bas

non redondance  Empty non redondance

Message  Admin Dim 1 Mai - 18:04

ÉNONCÉ
On se propose d'écrire un programme Pascal permettant:
a) de saisir un tableau T de N chaînes de caractères non vides composés chacune d'un maximum de cinq caractères (N est une constante de valeur 10)
b) de garder la première occurrence pour les éléments redondantes (qui apparaissent plus q'une fois) et de remplacer toutes les autres occurrences par des chaînes vides.
c) D'afficher les chaînes non vides restantes du tableau T.

Exemple:
soit le tableau initial suivant
Ali | Ali | Salem |Amal |Eya |Mohamed |Amal |Salem |Salem |Aziz
le tableau final sera:
Ali | Salem |Amal |Eya |Mohamed |Aziz


Par la suite on propose l'algorithme suivant:
0) Début Non_Redondance
1) Pour i de 1 à N Répéter
Lire (T[i])
Fin Pour
2) Proc Remplace (N,T)
3) Proc Affiche (N,T)
4) Fin Non_Redondance
Questions:
1. Traduire en Pascal l'algorithme Non_Redondance ci-dessus.
2. Transformer la séquence 1) en une procédure saisie et y ajouter les contrôles nécessaires pour la saisie des éléments du tableau T
3. Ecrire la procédure Remplace permettant de réaliser le traitement b) ci-dessus mentionné.
4. Ecrire la procédure Affiche permettant d'afficher les éléments non redondants du tableau T.

PASCAL
program non_redondance;
uses wincrt;
const
n=10;
type
tab=array[1..n] of string;
var
i:integer;
t:tab;
ch:string;
procedure remplace(n:integer;var t:tab);
var
ch:string;
j:integer;
begin
for i:=1 to n do
if t[i]<>'' then begin ch:=t[i]; for j:=i+1 to n do if t[j]=ch then t[j]:='';end;
end;
procedure affiche(n:integer;t:tab);
begin
for i:=1 to n do if t[i]<>'' then writeln(t[i]);
end;
begin
for i:=1 to n do repeat write('mot n° ',i);readln(t[i]); until( (t[i]<>'') and (length(t[i])<=5));
remplace (n,t);
affiche (n,t);
end.

Admin
Admin

Messages : 137
Date d'inscription : 29/12/2010

https://aidescolaire.yoo7.com

Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum