Exemple de DS1
2 participants
Page 1 sur 1
Exemple de DS1
Voici un exemple de DS1 proposé par Mr Nour Dean Zouari (Lycée Hannibal)
Exercice 1 (6 points)
Nous disposons d'un fichier de réels enregistré sous le nom physique "F_VALEURS1.FCH". Ce fichier est déjà trié par ordre croissant. Nous désirons insérer dans ce fichier et à sa bonne place une nouvelle valeur V donnée. Ecrire une analyse et l'algorithme d'une procédure nommée INSERTION réalisant cette tâche.
L'insertion doit se faire directement dans le fichier et non pas à travers un transfert dans un tableau ou dans un autre fichier.
Exercice 2 (6points)
Etant donné un fichier de texte contenant un ensemble de lignes. Il est demandé de chercher pour chaque ligne, l'existence ou non d'un mot donné et d'afficher suivant le cas l'un des messages suivants :
Le mot (mot) existe dans ligne (i) ou Le mot (mot) n'existe pas dans ligne (i).
Ecrire une analyse et un algorithme d'une procédure nommée CHERCHE et dont les paramètres sont "nl" de type texte et "mot" de type chaîne de caractère.
Exercice 3 (8 points)
Ecrire les analyses et les algorithmes des différents modules d'un programme qui demande un entier A strictement positif et un autre B positif et inférieur à A puis teste si ce nombre A est divisible par B et ce sans l'utilisation des opérateurs "/", "MOD" et "DIV".
Utiliser obligatoirement un procédé récursif pour déterminer une fonction de type booléen qui vérifie si A est divisible par B ou non.
Exemples : Si A = 45 et B = 5 le programme affiche : 45 est divisible par 5
Si A = 23 et B = 2 le programme affiche : 23 n'est pas divisible par 2
Donnez vos solutions
Exercice 1 (6 points)
Nous disposons d'un fichier de réels enregistré sous le nom physique "F_VALEURS1.FCH". Ce fichier est déjà trié par ordre croissant. Nous désirons insérer dans ce fichier et à sa bonne place une nouvelle valeur V donnée. Ecrire une analyse et l'algorithme d'une procédure nommée INSERTION réalisant cette tâche.
L'insertion doit se faire directement dans le fichier et non pas à travers un transfert dans un tableau ou dans un autre fichier.
Exercice 2 (6points)
Etant donné un fichier de texte contenant un ensemble de lignes. Il est demandé de chercher pour chaque ligne, l'existence ou non d'un mot donné et d'afficher suivant le cas l'un des messages suivants :
Le mot (mot) existe dans ligne (i) ou Le mot (mot) n'existe pas dans ligne (i).
Ecrire une analyse et un algorithme d'une procédure nommée CHERCHE et dont les paramètres sont "nl" de type texte et "mot" de type chaîne de caractère.
Exercice 3 (8 points)
Ecrire les analyses et les algorithmes des différents modules d'un programme qui demande un entier A strictement positif et un autre B positif et inférieur à A puis teste si ce nombre A est divisible par B et ce sans l'utilisation des opérateurs "/", "MOD" et "DIV".
Utiliser obligatoirement un procédé récursif pour déterminer une fonction de type booléen qui vérifie si A est divisible par B ou non.
Exemples : Si A = 45 et B = 5 le programme affiche : 45 est divisible par 5
Si A = 23 et B = 2 le programme affiche : 23 n'est pas divisible par 2
Donnez vos solutions
Hanafi- Messages : 106
Date d'inscription : 25/10/2008
Re: Exemple de DS1
Bonjour tout le monde
Voici ma proposition et j’espère qu’elle est correcte
Exercice 1 :
Uses WinCrt;
Type
fiche=file of real;
Procedure insertion;
var
f:fiche;
n,aux1,aux2:real;
i:integer;
begin
write('Donner n = ');readln(n);
assign(f,'c:\F_VALEURS1.FCH');
reset(f);
read(f,aux1);
while not (EOF(f))and(n>aux1) do
read(f,aux1);
if eof(f) then
write(f,n)
else
begin
seek(f,filepos(f)-1);
read(f,aux2);
seek(f,filepos(f)-1);
write(f,n);
while not eof(f) do
begin
read(f,aux1);
seek(f,filepos(f)-1);
write(f,aux2);
aux2:=aux1;
end;
write(f,aux2);
end;
close(f);
end;
begin
insertion;
end.
Exercice 2:
uses wincrt;
var
t:text;
mot:string;
procedure cherche(var t:text;mot:string);
var
x:string;
i:integer;
begin
reset(t);
i:=0;
while not eof(t) do
begin
i:=i+1;
readln(t,x);
write('Le mot (',mot);
if pos(mot,x)<>0 then
write(') existe dans ligne (')
else
write(') n''existe pas dans ligne (');
writeln(i,').');
end;
end;
begin
assign(t,'c:\Texte.txt');
write('Donner un mot = ');readln(mot);
cherche(t,mot);
end.
Exercice 3 :
uses wincrt;
var
a,b:integer;
procedure lecture(var a,b:integer);
begin
repeat
write('Donner un entier strictement positif A = ');readln(a);
until a>0;
repeat
write('Donner un autre entier inferieur a A = ');readln(b);
until b<a;
end;
function divi(a,b:integer):boolean;
begin
if a<0 then
divi:=false
else
if a=0 then
divi:=true
else
divi:=divi(a-b,b);
end;
begin
lecture(a,b);
if divi(a,b) then
writeln(a,’ est divisible par ‘,b)
else
writeln(a,’ n’’est pas divisible par ‘,b)
end.
Voici ma proposition et j’espère qu’elle est correcte
Exercice 1 :
Uses WinCrt;
Type
fiche=file of real;
Procedure insertion;
var
f:fiche;
n,aux1,aux2:real;
i:integer;
begin
write('Donner n = ');readln(n);
assign(f,'c:\F_VALEURS1.FCH');
reset(f);
read(f,aux1);
while not (EOF(f))and(n>aux1) do
read(f,aux1);
if eof(f) then
write(f,n)
else
begin
seek(f,filepos(f)-1);
read(f,aux2);
seek(f,filepos(f)-1);
write(f,n);
while not eof(f) do
begin
read(f,aux1);
seek(f,filepos(f)-1);
write(f,aux2);
aux2:=aux1;
end;
write(f,aux2);
end;
close(f);
end;
begin
insertion;
end.
Exercice 2:
uses wincrt;
var
t:text;
mot:string;
procedure cherche(var t:text;mot:string);
var
x:string;
i:integer;
begin
reset(t);
i:=0;
while not eof(t) do
begin
i:=i+1;
readln(t,x);
write('Le mot (',mot);
if pos(mot,x)<>0 then
write(') existe dans ligne (')
else
write(') n''existe pas dans ligne (');
writeln(i,').');
end;
end;
begin
assign(t,'c:\Texte.txt');
write('Donner un mot = ');readln(mot);
cherche(t,mot);
end.
Exercice 3 :
uses wincrt;
var
a,b:integer;
procedure lecture(var a,b:integer);
begin
repeat
write('Donner un entier strictement positif A = ');readln(a);
until a>0;
repeat
write('Donner un autre entier inferieur a A = ');readln(b);
until b<a;
end;
function divi(a,b:integer):boolean;
begin
if a<0 then
divi:=false
else
if a=0 then
divi:=true
else
divi:=divi(a-b,b);
end;
begin
lecture(a,b);
if divi(a,b) then
writeln(a,’ est divisible par ‘,b)
else
writeln(a,’ n’’est pas divisible par ‘,b)
end.
Bonne chance a tous pour les examens.
Réviser bien
Réviser bien
Ilyes KHAILI- Messages : 24
Date d'inscription : 13/11/2008
Age : 34
Re: Exemple de DS1
Excellent travail, Ilyes !!! B r a v o !!!
Comme d'habitude, vous méritez d'être nommé Le Principal Plus Important Genie de Programmation. Je suis fiére de vous. Bonne chance pour vos examens.
Comme d'habitude, vous méritez d'être nommé Le Principal Plus Important Genie de Programmation. Je suis fiére de vous. Bonne chance pour vos examens.
Hanafi- Messages : 106
Date d'inscription : 25/10/2008
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|