Forum INFOMATH
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment :
Code promo Nike : -25% dès 50€ ...
Voir le deal

Exercice: Codage des entiers longs

Aller en bas

Exercice: Codage des entiers longs Empty Exercice: Codage des entiers longs

Message par Napoléon Mar 6 Oct - 13:43

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 :
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.
2. Ecrire la procédure addition(e1,e2:Entier; var e:Entier) qui place dans l'entier e la somme des entiers e1 et 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
Napoléon
Admin
Admin

Masculin
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7872
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
Exercice: Codage des entiers longs Left_bar_bleue999/1000Exercice: Codage des entiers longs Empty_bar_bleue  (999/1000)

https://infomath.1fr1.net

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

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