Algorithmique et Programmation: Les Structures de Données et Fonctions Standards

Ce laboratoire présente les structures de données et les fonctions standards en algorithmique et programmation, notamment en Pascal. Il permet de comprendre et d'utiliser les fonctions arithmétiques, les fonctions sur les caractères ainsi que les fonctions et procédures sur les chaînes de caractères.

D'après le document Algorithmique et Programmation: Les Structures de Données et Fonctions Standards

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Algorithmique et Programmation: Les Structures de Données et Fonctions Standards

Document source

Afficher l'aperçu du document

Consulter le document original →

Ce laboratoire présente les structures de données et les fonctions standards en algorithmique et programmation, notamment en Pascal. Il permet de comprendre et d'utiliser les fonctions arithmétiques, les fonctions sur les caractères ainsi que les fonctions et procédures sur les chaînes de caractères. Pour réaliser ce TP, il est nécessaire de disposer d'un environnement de programmation Pascal et de connaissances de base en programmation.

Objectifs

  • Utiliser les fonctions arithmétiques standards en Pascal (troncature, arrondi, valeur absolue, carré, racine carrée, fonctions trigonométriques, exponentielle, logarithme).
  • Manipuler les fonctions prédéfinies pour les caractères (conversion ASCII, successeur, prédécesseur, conversion en majuscule).
  • Appliquer les fonctions et procédures standards sur les chaînes de caractères (longueur, position, extraction, concaténation, suppression, insertion, conversion entre chaînes et nombres).

Prérequis et installation

  • Environnement de développement Pascal compatible avec les fonctions standards décrites.
  • Connaissances de base en programmation Pascal, notamment la syntaxe des fonctions et procédures.
  • Compréhension des types de données réels, entiers et chaînes de caractères.

Fonctions arithmétiques standards

Ce premier volet consiste à utiliser les fonctions arithmétiques les plus courantes en Pascal. Ces fonctions permettent de manipuler des nombres réels et entiers pour effectuer des opérations mathématiques de base.

Exécutez les commandes suivantes pour tester les fonctions :

Tronc(3.14) = TRUNC(3.14)
Tronc(-1.25) = TRUNC(-1.25)
ENT(3.14) = INT(3.14)
ENT(-1.5) = INT(-1.5)
Arrondi(9.49) = ROUND(9.49)
Arrondi(2.5) = ROUND(2.5)
Abs(-20) = ABS(-20)
Carré(5) = SQR(5)
RacineCarré(2) = SQRT(2)

Ces fonctions ont les rôles suivants :

  • TRUNC(x) : supprime la partie décimale de x, ne conservant que la partie entière.
  • INT(x) : donne la partie entière d'un réel x.
  • ROUND(x) : arrondit x à l'entier le plus proche.
  • ABS(x) : donne la valeur absolue de x.
  • SQR(x) : calcule le carré de x.
  • SQRT(x) : calcule la racine carrée de x (erreur si x négatif).

Testez également les fonctions trigonométriques et exponentielles :

Aléa := RANDOM
Aléa(3) := RANDOM(3)
Sin(PI/2) := SIN(PI/2)
Cos(PI/2) := COS(PI/2)
Arctan(1) := ARCTAN(1)
Tan(PI/4) := TAN(PI/4)
Exp(0) := EXP(0)
Ln(1) := LN(1)

Ces fonctions retournent :

  • RANDOM : un réel entre 0 et 1 exclu.
  • RANDOM(n) : un entier entre 0 et n-1.
  • SIN(x), COS(x), TAN(x) : valeurs trigonométriques de x en radians.
  • ARCTAN(x) : valeur en radians de l'arctangente de x.
  • EXP(x) : exponentielle de x.
  • LN(x) : logarithme népérien de x (x > 0 sinon erreur).

Fonctions prédéfinies pour les caractères

Ce deuxième volet porte sur les fonctions manipulant les caractères, identifiés par leur code ASCII (entier entre 0 et 255).

Testez les fonctions suivantes :

ORD('A') = ORD('A')
ORD('a') = ORD('a')
CHR(65) = CHR(65)
CHR(97) = CHR(97)
SUCC('C') = SUCC('C')
SUCC('2') = SUCC('2')
PRED('C') = PRED('C')
PRED('2') = PRED('2')
MAJUS('d') = UPCASE('d')
MAJUS('A') = UPCASE('A')

Les rôles sont :

  • ORD(c) : renvoie le code ASCII du caractère c.
  • CHR(x) : renvoie le caractère correspondant au code ASCII x.
  • SUCC(c) : renvoie le caractère successeur de c s’il existe.
  • PRED(c) : renvoie le caractère prédécesseur de c s’il existe.
  • UPCASE(c) : convertit le caractère c en majuscule si possible.

Fonctions et procédures standards sur les chaînes de caractères

Ce dernier volet présente les fonctions et procédures pour manipuler les chaînes de caractères.

Exécutez les exemples suivants :

L := LENGTH('Bonjour')
Mot1 := 'Bac'
Mot2 := 'ac'
X := POS(Mot2, Mot1)
Mot := 'Baccalauréat'
X := COPY(Mot, 1, 3)
H := '14'
M := '10'
Heure := CONCAT(H, ':', M)
Mot := 'CD ROM'
DELETE(Mot, 3, 4)
Ch1 := 'ur'
Ch2 := 'cos'
INSERT(Ch1, Ch2, 3)
STR(2018, Ch)
STR(14.52, Ch)

Les fonctions et procédures ont les rôles suivants :

  • LENGTH(ch) : retourne la longueur de la chaîne ch.
  • POS(ch1, ch2) : retourne la position de la chaîne ch1 dans ch2.
  • COPY(ch, p, nbc) : extrait une sous-chaîne de longueur nbc à partir de la position p dans ch.
  • CONCAT(ch1, ch2, ..., chn) : concatène plusieurs chaînes.
  • DELETE(ch, p, n) : supprime n caractères de ch à partir de la position p.
  • INSERT(ch1, ch2, p) : insère la chaîne ch1 dans ch2 à partir de la position p.
  • STR(d, ch) : convertit un nombre décimal d en chaîne de caractères affectée à ch.

Pour convertir une chaîne en nombre décimal, utilisez :

VAL(ch, d, erreur)

Cette fonction convertit la chaîne ch en valeur décimale d et affecte à erreur un code indiquant si la conversion a réussi.

Résultats attendus

  • TRUNC(3.14) = 3, TRUNC(-1.25) = -1
  • INT(3.14) = 3, INT(-1.5) = -2
  • ROUND(9.49) = 9, ROUND(2.5) = 3
  • ABS(-20) = 20
  • SQR(5) = 25
  • SQRT(2) ≈ 1.414
  • RANDOM retourne un réel entre 0 et 1 exclu
  • RANDOM(3) retourne un entier entre 0 et 2
  • SIN(PI/2) = 1, COS(PI/2) = 0
  • ARCTAN(1) = PI/4 ≈ 0.785
  • TAN(PI/4) = 1
  • EXP(0) = 1
  • LN(1) = 0
  • ORD('A') = 65, ORD('a') = 97
  • CHR(65) = 'A', CHR(97) = 'a'
  • SUCC('C') = 'D', SUCC('2') = '3'
  • PRED('C') = 'B', PRED('2') = '1'
  • UPCASE('d') = 'D', UPCASE('A') = 'A'
  • LENGTH('Bonjour') = 7
  • POS('ac', 'Bac') = 2
  • COPY('Baccalauréat', 1, 3) = 'Bac'
  • CONCAT('14', ':', '10') = '14:10'
  • DELETE('CD ROM', 3, 4) = 'CD'
  • INSERT('ur', 'cos', 3) = 'course'
  • STR(2018, ch) donne ch = '2018'
  • STR(14.52, ch) donne ch = '14.52'
  • VAL('10.50', d, e) donne d = 10.5 et e = 0 (pas d'erreur)
  • VAL('20/20', d, e) donne e ≠ 0 (erreur de conversion)

Pièges courants

  • Utiliser SQRT(x) avec un x négatif provoque une erreur fatale.
  • La fonction LN(x) nécessite que x soit strictement positif, sinon erreur.
  • Les fonctions SUCC et PRED ne fonctionnent que si le caractère a un successeur ou prédécesseur valide dans le code ASCII.
  • Lors de l'utilisation de VAL, vérifier le code d'erreur pour s'assurer que la conversion s'est bien déroulée.
  • La fonction RANDOM(n) retourne un entier entre 0 et n-1, attention à ne pas confondre avec la plage attendue.
  • Les positions dans les chaînes commencent à 1 en Pascal, pas à 0.
  • Lors de l'utilisation de DELETE ou INSERT, vérifier que les positions et longueurs sont valides pour éviter des erreurs d'exécution.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions