Exercice: Codage des entiers longs
Forum INFOMATH :: Enseignement de l'informatique :: Informatique - Collège & Lycée :: Exercices Pascal :: Fichiers et Enregistrements
Page 1 sur 1
Exercice: Codage des entiers longs
Entiers longs
Préambule
Le but de ce travail est de permettre d'effectuer des calculs sur des nombres entiers longs, c'est à dire susceptibles de s'écrire avec plusieurs centaines de chiffres.
Les entiers longs seront représentés par des tableaux de chiffres.
Définissons d'abord le nombre maximal de chiffres que pourra contenir un entier long :
Définissons le type Entier qui représentera un entier long :
* Le champ taille représente le nombre de chiffres utilisés. Il servira aussi de signal d'erreur lorsqu'il sera égal à 1.
* Le champ chiffres est le tableau contenant les chiffres.
Affichage et lecture
1. Ecrire la procédure afficher(e:Entier) qui affiche l'entier e ou "Erreur" si le champ taille est inférieur ou égal à 0.
2. Le tableau de chiffres représentant un entier long ne devra pas commencer par le chiffre 0, sauf pour le nombre 0 lui-même. Ecrire la procédure normaliser(var e:Entier) qui supprime les 0 superflus qui se trouvent au début du tableau de chiffres représentant l'entier e.
3. Ecrire la procédure lire(var e:Entier) qui permet à l'utilisateur d'entrer un entier long.
4. Ecrire la procédure convertir(n:LongInt; var e:Entier) qui permet de convertir un entier de type LongInt en entier long.
5. Vérification par un programme de test.
Comparaison et opérations
1. Ecrire la fonction compare(e1,e2:Entier):Integer qui renvoie :
3. Ecrire la procédure multB(var e:Entier; b:Byte) qui multiplie e par le chiffre contenu dans b, puis l'utiliser pour écrire la procédure multiplication(e1,e2:Entier; var e:Entier) qui fournit le produit de e1 et e2 dans e.
Applications
1. Pour pouvoir utiliser facilement le travail précédent nous pouvons l'enregistrer dans une unité uentier1.pas.
Il suffira ensuite d'écrire uses uentier1; pour pouvoir utiliser le type Entier et les différentes procédures et fonctions déjà construites.
2. Ecrire un programme calculant le nième terme de la suite de Fibonacci définie par : u1 = u2 = 1 et pour n>2, un = un-1 un-2.
3. Ecrire un programme calculant la factorielle d'un entier naturel.
4. Ecrire un programme calculant xy pour x et y entiers naturels.
Préambule
Le but de ce travail est de permettre d'effectuer des calculs sur des nombres entiers longs, c'est à dire susceptibles de s'écrire avec plusieurs centaines de chiffres.
Les entiers longs seront représentés par des tableaux de chiffres.
Définissons d'abord le nombre maximal de chiffres que pourra contenir un entier long :
- Code:
Const nMax=255;
Définissons le type Entier qui représentera un entier long :
- Code:
Type Entier=record
taille: Integer; {nombre de chiffres}
chiffres: array[1..nMax] of Byte; {tableau de chiffres}
end;
* Le champ taille représente le nombre de chiffres utilisés. Il servira aussi de signal d'erreur lorsqu'il sera égal à 1.
* Le champ chiffres est le tableau contenant les chiffres.
Affichage et lecture
1. Ecrire la procédure afficher(e:Entier) qui affiche l'entier e ou "Erreur" si le champ taille est inférieur ou égal à 0.
2. Le tableau de chiffres représentant un entier long ne devra pas commencer par le chiffre 0, sauf pour le nombre 0 lui-même. Ecrire la procédure normaliser(var e:Entier) qui supprime les 0 superflus qui se trouvent au début du tableau de chiffres représentant l'entier e.
3. Ecrire la procédure lire(var e:Entier) qui permet à l'utilisateur d'entrer un entier long.
4. Ecrire la procédure convertir(n:LongInt; var e:Entier) qui permet de convertir un entier de type LongInt en entier long.
5. Vérification par un programme de test.
Comparaison et opérations
1. Ecrire la fonction compare(e1,e2:Entier):Integer qui renvoie :
- Code:
1 si e1 > e2,
-1 si e1 < e2
0 si e1 = e2.
3. Ecrire la procédure multB(var e:Entier; b:Byte) qui multiplie e par le chiffre contenu dans b, puis l'utiliser pour écrire la procédure multiplication(e1,e2:Entier; var e:Entier) qui fournit le produit de e1 et e2 dans e.
Applications
1. Pour pouvoir utiliser facilement le travail précédent nous pouvons l'enregistrer dans une unité uentier1.pas.
Il suffira ensuite d'écrire uses uentier1; pour pouvoir utiliser le type Entier et les différentes procédures et fonctions déjà construites.
2. Ecrire un programme calculant le nième terme de la suite de Fibonacci définie par : u1 = u2 = 1 et pour n>2, un = un-1 un-2.
3. Ecrire un programme calculant la factorielle d'un entier naturel.
4. Ecrire un programme calculant xy pour x et y entiers naturels.
Napoléon- Admin
-
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7872
Date d'inscription : 19/03/2007
Feuille de personnage
Capacité linguistique:
(999/1000)
Sujets similaires
» Exercice: Matrice: Codage, chiffrement d'un texte
» Trigonométrie + Nombres entiers
» Concaténation de nombres entiers
» Somme des produits des chiffres des n premiers entiers
» Olympiade de maths: Opérations sur un ensemble d'entiers
» Trigonométrie + Nombres entiers
» Concaténation de nombres entiers
» Somme des produits des chiffres des n premiers entiers
» Olympiade de maths: Opérations sur un ensemble d'entiers
Forum INFOMATH :: Enseignement de l'informatique :: Informatique - Collège & Lycée :: Exercices Pascal :: Fichiers et Enregistrements
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum