- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique

-
Travaux Pratiques d’ALGORITHMIE ET PROGRAMMATION EN PASCAL - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------------

TP N°1: NOTIONS SUR L'UTILISATION DE L'ENVIRONNEMENT MS-DOS

PREMIERE PARTIE: COMMANDES USUELLES SUR LES FICHIERS ET LES DIRECTORIES
DEUXIEME PARTIE : NOTIONS DE PROGRAMME EXECUTABLE ET DE LOGICIEL
TROISIEME PARTIE: NOTION DE DISQUE SYSTEME SUR MSDOS


TP N°2: ENVIRONNEMENT WINDOWS ET EXECUTION DE PROGRAMMES

PREMIERE PARTIE: WINDOWS ET L'UTILISATION DE LA SOURIS
DEUXIEME PARTIE: L'ENVIRONNEMENT GRAPHIQUE
TROISIEME PARTIE: EXECUTION D'UN PROGRAMME


TP N° 3: ENVIRONNEMENT INTEGRE DE TURBO PASCAL

TP REALISE EN 4 PARTIES
- Familiarisation avec les commandes usuelles de l’éditeur ; compilation et exécution en mémoire.
- Importation d’une partie de fichier et fonctions copie-coller ; affichage en mode multifenêtres ; exécution partielle.
- Basculement environnements windows et turbo pascal, ; compilation et exécution sur disque.
- Recherche et remplacement de texte ; exécution du programme obtenu dans l’environnement windows de 3 manières
différentes ; création de raccourcis de programme exécutables.


TP N
0
4 : NOTIONS PRELIMINAIRES DE TURBO PASCAL

L’OBJECTIF DU TP EST LA FAMILIARISATION AVEC LES NOTIONS DE :
- édition, compilation et édition des liens,
- les entrées sorties standard (clavier et écran),
- déclaration de variables entières et réelles, affectation de valeurs,
- erreurs syntaxique, sémantique, de programmation,
- quelques structures et instructions de base du turbo pascal.


TP N
0
5 : LES STRUCTURES ALTERNATIVES ET REPETITIVES EN TURBO PASCAL

TRADUCTION EN LANGAGE PASCAL D’ALGORITHMES CONTENANT LES STRUCTURES :
- boucle « for do » ,
- séquences alternatives avec « if then else» et boucle post testée « repeat until » ,
- séquence répétitive avec boucle pré testée « while do » .


TP N
0
6: LES PROCEDURES EN TURBO PASCAL

TRANSFORMATION D’UN PROGRAMME EN PROGRAMME PRINCIPAL ET DEUX PROCEDURES, AVEC :
- utilisation uniquement de variables globales,
- puis variables globales et variables locales,
- puis appel de procédures par transmission de paramètres,
- puis utilisation des deux procédures commeunités de compilation.


TP N0 7 : CODE ASCII, CHAINES DE CARACTERES, TABLEAUX
EN TURBO PASCAL


TP N0 8 : CREATION ET LECTURE DE FICHIERS DE CARACTERES
EN TURBO PASCAL

- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique- -1-
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------- 1/23

TP N°1: NOTIONS SUR L'UTILISATION DE L'ENVIRONNEMENT MS-DOS


PREMIERE PARTIE: COMMANDES USUELLES SUR LES FICHIERS ET LES DIRECTORIES

1°Commandes MD, DIR, nom de lecteur suivi de 2 points
Création de la directory toto1 dans la racine du disque D:
a°) D:↵ signifie aller au lecteur D:
b°)MD toto1↵ crée la sous directory toto1 dans la directory courante.
c°)DIR↵ affiche le contenu de la directory courante (D:\)
d°)DIR toto1↵ affiche le contenu de la directory toto1
Remarquer la directory "." (directory courante) et la directory ".." (directory père).
2°Commandes CD et MD et signification de " \ " (séparateur ou racine)
Création de 2 sous directory toto12 et toto13 à l'intérieur de toto1.
a°)1°méthode: aller à toto1 ("CD toto1" ou "CD D:\toto1" ou "CD \toto1") puis "MD
toto12" et "MD toto13"
b°)Autres méthodes: rester dans la racine de "D:" et taper soit "MD D:\toto1\toto12" soit
"MD toto1\toto12" soit "MD \toto1\toto12". Les mêmes commandes peuvent être utilisées pour
créer la sous directory toto13.
3°Signification de " \ " et "* "
a°)Visualiser le contenu de la racine de D:
Soit aller à la directory racine (commande "CD \" ou "CD D:\" ou "CD..") puis commande
"DIR" ,
soit aller à la directory toto1 (commande "CD D:\toto1") puis commande "DIR .." .
b°)affichage du contenu de toto1:
commande "DIR toto1" on observera toto12 et toto13 incluses dans toto1;
(commandes alternatives: "DIR D:\toto1" ou " DIR \toto1" ou "CD D:\toto1" puis "DIR").
d°)visualiser le contenu de toto12 et toto13
commandes ( "DIR toto1\toto12" ou "DIR D:\toto1\toto12" ) et ( "DIR \toto1\toto13" ou
"DIR .\toto1\toto13" ).
e°)Utilisation du symbole " * " pour visualiser le contenu de toto1 et qui commence par la
chaîne de caractères "tot": commande " DIR D:\toto1\tot* "
4°Utilisation des 2 points " .. " signifiant directory père
a°)Aller à la sous directory toto12 : commande "CD \toto12" ou "CD .\toto12" ou "CD
D:\toto12" ou "CD toto12").
b°)commande "DIR↵" on observe les 2 points
c°)commande "DIR.. ↵" on voit le contenu du père (toto1) càd toto12 et toto13.
d°commande "DIR ..\toto13" on voit le contenu de toto13
e°)Aller à la sous directory toto13 : commande "CD ..\toto13"
f°)visualiser le contenu de toto13: commande "DIR↵" ou "DIR . ↵"
5°Commande COPY et utilisation du symbole " * "
Un fichier possède un nom (8 caractères au maximum sous MSDOS et commençant de
préférence par 1 lettre), et une extension (au maximum 3 caractères).
Copie de tous les fichiers commençant par "turbo" (première "*" ) quelle que soit leur
extension (deuxième "*"), et se trouvant dans la directory "C:\TP7" , vers la directory "D:\toto1",
en leur gardant le même nom (première "*" ) et la même extension (deuxième "*"). Commande "
COPY C:\TP7\turbo*.* D:\toto1\*.* "
Source ou origine destination
En fonction de la directory où se trouve les fichiers de turbo pascal, la source peut changer.

TP N°1: NOTIONS SUR L'UTILISATION DE L'ENVIRONNEMENT MS-DOS
- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique- -2-
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------- 2/23


6°)Commande "REN"
a°)Aller à la directory toto1 (commande "CD \toto1")
b°)commande "REN turbo.exe toto.exe" puis commande "DIR"



DEUXIEME PARTIE : NOTIONS DE PROGRAMME EXECUTABLE ET DE LOGICIEL


logiciel = ∑programmes, dont certains sont exécutables et d'autres constituent des
données pour ces programmes exécutables.
1° Sous MS-DOS un programme exécutable a l'extension ".com" ou ".exe" ou ".bat" (ou
".sys"). L'ordre de priorité est le précédent.
Par exemple pour le logiciel "turbo pascal" aller à la directory "toto1" puis taper la
commande "DIR / W" puis "DIR / P". On remarque turbo.exe (ou "turbo.com") et le reste
constitue des données pour ce programme.
2° Pour exécuter un programme sous MSDOS il suffit de taper son nom.
a°)Copier "toto.exe" vers la directory "toto12".
b°)Aller à la directory toto12 et exécuter le programme "toto.exe".
Observer le message d'erreur "manque fichier de données" qui confirme le texte donné au 1°.
c°)Aller à la sous directory toto1 et exécuter le programme "toto.exe". On remarque que
tout se passe bien et on entre dans l'environnement du logiciel "turbo pascal" (qui fera l'objet du tp
numéro 3).
3° On va maintenant supprimer toutes les directories créées ainsi que leur contenu.
a°Aller à la racine de D: commande "CD D:\" puis commande "RD toto1". Il y aura le
message d'erreur "directory not empty".
b°Aller à la directory toto1: "CD toto1". c° puis "RD toto12" et "RD toto13" puis "DIR".
On observe la disparition des 2 directories.
c°Rester dans la directory toto1 et entrer la commande "DEL *.*" puis répondez oui à la
question et enfin taper la commande "DIR". On observe que toto1 est vide.
d°Rester dans toto1 et entrer la commande "RD toto1" et observer le mesage d'erreur qui
normal.
e° Aller de toto1 vers la racine (commande "CD \") puis supprimer toto1 ("RD toto1").


TP N°1: NOTIONS SUR L'UTILISATION DE L'ENVIRONNEMENT MS-DOS
- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique- -3-
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------- 3/23


TROISIEME PARTIE: NOTION DE DISQUE SYSTEME SUR MSDOS


1°Séquence de démarrage d'un ordinateur sous MS-DOS
Le système d'exploitation MS-DOS se trouve en partie dans le BIOS (en mémoire rom), et
en majeure partie dans le disque dur (Hard Disk).
Au démarrage le BIOS recopie le contenu de la RAM-CMOS en RAM, puis il effectue une
vérification de l'existence des matériels et de leur conformité avec les paramètres définis dans la
ram-cmos. Ces paramètres "hardware" sont sauvegardés en ram-cmos lorsq'on effectue le
"SETUP" de l'ordinateur. Si le contenu de la ram-cmos est effacé (pile défectueuse) le système
charge les paramètres par défaut (minimum de paramètre défini par le constructeur).
Ensuite le bios vient charger du "boot secteur" du disque vers la mémoire ram de
l'ordinateur les 2 fichiers IO.SYS et MSDOS.SYS, puis les exécute. Ensuite le sysex revient à la
racine du disque pour recopier en mémoire RAM le fichier interpréteur de commandes
COMMAND.COM.
Ensuite le sysex charge (de la racine du disque) en mémoire ram le fichier de configuration
"config.sys" avant de l'exécuter. S'il ne le trouve pas il charge les paramètres par défaut insérés par
le constructeur dans le BIOS.
Enfin si le fichier de directives de commandes "autoexec.bat" existe en racine, il est chargé
en mémoire ram puis exécuté.

Les deux fichiers cachés IO.SYS et MSDOS.SYS et l'interpréteur de commandes
COMMAND.COM sont nécessaires pour faire d'un disque un disque de démarrage (ou disk
system). Ces trois fichiers sont recopiés automatiquement sur le boot secteur d'un disque par la
commande "FORMAT /S" ( ou "FORMAT /B" suivi" de "SYS").

N.B. Utiliser la commande externe "TYPE" pour voir le contenu de ces deux fichiers. Insister sur
l'importance de la commande externe "PATH".

2° On classe les commandes du langage du Sysex Ms-Dos en deux catégories: des
commandes externes pour lesquelles il existe un fichier exécutable pour chaque commande
(FORMAT, MODE, ATTRIB…), et des commandes internes (DIR, CD, MD…) pour lesquelles
l'interpréteur de commandes (fichier COMMAND.COM) suffit.

Pour changer les attributs d'un fichier (Archive, Read only, Hidden, System) utiliser la
commande externe "ATTRIB".
a° Par exemple aller à la directory "c:\windows\Dos" ou "c:\wndows\command" pour lister les
commandes externes.
b° Puis aller à la racine de "c:\" et taper la commande "DIR COMMAND" pour vérifier
l'existence du fichier command.com .
c° Puis "ATTRIB –h *. sys" puis à nouveau "DIR" pour voir les fichiers cachés "IO.SYS"
et "MSDOS.SYS".
d° Remettre l'attribut caché aux 2 fichiers précédents par les commandes:
"ATTRIB +h IO.SYS" et "ATTRIB +h MSDOS.SYS".
TP N°1: NOTIONS SUR L'UTILISATION DE L'ENVIRONNEMENT MS-DOS
- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique- -4-
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------- 4/23

TP N°2: ENVIRONNEMENT WINDOWS ET EXECUTION DE PROGRAMMES
-----------------------------------------------------



PREMIERE PARTIE: WINDOWS ET L'UTILISATION DE LA SOURIS


1° CE QUE REPRESENTE WINDOWS
Windows =Dos +environnement graphique incluant les notions de bureau, dossiers,
fichiers. C'est un environnement graphique pour faciliter les commandes et la manipulation des
fichiers à l'aide de la souris et d'un menu déroulant.
J usqu'à WIN 3.11, c'est un simple logiciel comme un autre qui fournit un environnement
graphique. A partir de Windows 95 c'est devenu un système d'exploitation, qui comprend deux
parties:
- un noyau dos (DOS 7.0) pour garder la compatibilité avec les versions de ms-dos
antérieures à la version 6.22,
- un environnement graphique inspiré du bureau : répertoires, dossiers, fichiers,…

Sous MS-DOS l'entrée standard (STDIN) est constituée par le clavier alors que la sortie
standard (STDOUT) est constituée par l'écran. Sous windows l'entrée standard est constituée
indifféremment par la souris ou le clavier.

2° UTILISATION DE LA SOURIS

2-1- Click avec le bouton gauche de la souris sur un répertoire ou un fichier, il est
sélectionné. On remarque cette sélection par la mise en surbrillance de ce fichier ou ce répertoire.
2-2- Double click avec le bouton gauche
a° Sur un fichier éxécution de ce fichier s'il s'agit d'un programme, ou ouverture de ce
fichier en faisant appel automatiquement au logiciel approprié en fonction de son extension. Par
exemple si ".doc" appel du logiciel "WORD", si ".txt" appel d'un éditeur de texte tel que
"WORDPAD", si ".bmp" appel d'un éditeur d'images tel que "PAINT".
b° Sur un dossier ou répertoire ouverture du dossier en entrant dedans et en visualisant
son contenu.
2-3-Click avec le bouton droit sur un fichier accès à un menu avec les options
principales suivantes: -ouvrir =exécuter le fichier
-imprimer , envoyer vers, copier, couper, renommer
-créer un raccourci =c'est un raccourci du programme. Ce raccourci peut être placé sur le
bureau et ensuite en cliquant dessus cela provoque l'appel au programme correspondant.
-propriétés
2-4- Click avec le bouton droit sur un fichier avec déplacement vers un dossier
apparition d'un menu avec 4 options: déplacer, copier, créer un raccourci, annuler.
2-5- Click avec le bouton gauche sur un fichier avec déplacement vers un dossier
déplacement du fichier vers la directory.
TP N°2: ENVIRONNEMENT WINDOWS ET EXECUTION DE PROGRAMMES
- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique- -5-
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------- 5/23


DEUXIEME PARTIE: L'ENVIRONNEMENT GRAPHIQUE


1°Le bureau : il est constitué d'un ensemble d'icones de raccourcis vers des programmes ou des
répertoires ou le poste de travail.
2°Poste de travail: il permet d'avoir des informations et d'accéder aux mémoires de masse, à la
corbeille, aux imprimantes, etc…
3°La barre des tâches : comme son l'indique elle visualise les noms des taches en cours ou en
veille. En cliquant dessus avec le bouton droit on peut accéder à l'explorateur windows.
4°Le menu démarrer: on rencontre les options principales suivantes:
- Exécuter: un programme
- rechercher un fichier
- documents : pour accéder à un document "word" de la sous directory documents
- paramètres: pour le réglage des paramètres de l'ordinateur . Il offre les sous options
suivantes: panneau de configuration, imprimantes, barre des taches et menu démarrer.
- Programmes: permet d'accéder à toutes les applications qui sont installées, notamment
"l'explorateur windows", l'accès aux "commandes dos", les applications WORD et
EXCEL faisant partie de la suite OFFICE.*
5°Explorateur windows et winfile
Il comprend principalement 5 options ou menus:
-menu File ou Fichier: pour les opérations sur les fichiers
-menu Edit ou Edition: pour les opérations de sélection et copier-coller des fichiers
-menu View ou Affichage: pour controler les paramètres d'affichage des fichiers
-menu Tools ou Outils: pour rechercher des fichiers ou dossiers
-menu Help ou ?: pour obtenir des informations sur windows et son utilisation



TROISIEME PARTIE: EXECUTION D'UN PROGRAMME


Il existe 5 manières d'exécuter un programme sous windows:
1°Bureau: double click sur l'icône du raccourci du programme
2°Menu démarrer +Exécuter +Nom du programme avec son chemin.
3° Menu démarrer +Programmes +Commandes DOS +taper le nom du programme
4°Avec l'explorateur windows mettre le curseur sur le fichier (fichier en surbrillance) puis:
- soit double clicker sur le fichier
- soit aller au menu File ou Fichier puis Open ou Ouvrir

N.B. Ecrire un fichier batch d'affichage d'un message. Le mettre dans la racine, créer un raccourci
et le mettre sur le bureau; puis essayer les 5 méthodes d'exécution.


TP N°2: ENVIRONNEMENT WINDOWS ET EXECUTION DE PROGRAMMES
- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique-
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------
TP N°3: ENVIRONNEMENT INTEGRE DE TURBO PASCAL

-6-
6/23

TP N° 3: ENVIRONNEMENT INTEGRE DE TURBO PASCAL
-------------------------------
PARTIE 1
1°Démarrer le logiciel turbo pascal.
2°Créer un nouveau programme (menu FILE commande NEW ), puis écrire dedans le texte suivant:
{DEPARTEMENT D'ELECTRONIQUE}
PROGRAM affiche_texte (input,output);
uses crt;
BEGIN
clrscr;
writeln ( ' TES 451:INITIATION A L''INFORMATIQUE -2°sem 2001- ' );
writeln ( ' TP N°0_3: environnement integre de turbo pascal ' );
writeln;
writeln ( ' APPUYER SUR UNE TOUCHE POUR SORTIR ' );
readln;
END.
3°Sauver le programme sous le nom "tp0_3" (menu FILE sous menu SAVE AS). Observer ce qui se passe.
4°Compiler le programme (menu COMPILE sous menu COMPILE avec pour DESTINATION l'option MEMORY)
puis l'exécuter (menu RUN commande RUN).

PARTIE 2
5°Changer de sous directory en allant à la directory "c:\tp_451" (menu FILE sous menu CHANGE DIR)
6°Ouverture du fichier "tp_test" (menu FILE sous menu OPEN)
7°Après sélection du texte identique à celui qui se trouve entre accolades, le copier ensuite (menu EDIT commande
COPY).
{ writeln ( ' J e suis le fichier "TOTO.TXT" et mon conseil est: ' );
writeln ( ' attention au virus "I LOVE YOU" sur internet ' );
writeln;
writeln ( ' APPUYER SUR UNE TOUCHE POUR SORTIR ' );
readln;
}
Pour sélectionner un texte il faut le mettre en relief comme suit: mettre le curseur sur le premier caractère, puis en
laissant le bouton de la touche "shift" appuyé, déplacer le curseur à l'aide des touches de direction.
8°Afficher en même temps le contenu des fichiers "tp0_3" et "tp_test" (menu WINDOW commande TILE)
(passage d'un fichier à l'autre par l'option NEXT du menu WINDOW)
9°Coller le texte qui a été sélectionné dans le fichier "tp_test" à l’intérieur du fichier "tp0_3" , juste avant l'instruction
END (menu EDIT commande PASTE).
10°Se mettre dans le fichier "tp_test" puis le fermer (menu WINDOW commande CLOSE), puis afficher le fichier
"tp0_3" en pleine page (menu WINDOW commande ZOOM ).
11° Sauver le nouveau programme (menu FILE commande SAVE ), le compiler en mémoire puis l'exécuter.
12°Mettre le curseur avant la partie rajoutée puis exécuter le programme jusqu'au curseur (menu RUN commande GO
TO CURSOR). Refaites l'opération en décalant à chaque fois le curseur d'une ligne vers le bas, et observez le résultat.

PARTIE3
13°Allez à l'environnement DOS (menu FILE commande DOS SHELL). Exécutez la commande DIR, et observez
bien la liste des fichiers avec leurs extensions.
14°Retournez à l'environnement du turbo pascal (commande EXIT), puis dans le menu COMPILE sous menu
DESTINATION réglez l'option sur DISK, puis compilez à nouveau le programme.
15°Allez à l'environnement DOS (menu FILE commande DOS SHELL). Exécutez la commande DIR, que remarquez
vous?
16°Retournez à l'environnement du turbo pascal (commande EXIT), puis dans le menu COMPILE vérifiez que le sous
menu DESTINATION est bien réglé sur l'option DISK, puis exécutez la commande MAKE.
17°Allez à l'environnement DOS (menu FILE commande DOS SHELL). Exécutez la commande DIR, que remarquez
vous?
18°Exécutez le programme "tp0_3".
19°Retournez à l'environnement du turbo pascal (commande EXIT).
20°Tester les commandes "CUT" et "UNDO" du menu EDIT en sélectionnant d'abord une partie du texte, en le
supprimant (CUT) et en annulant cette dernière commande (UNDO).


- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique-
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------
TP N°3: ENVIRONNEMENT INTEGRE DE TURBO PASCAL

-7-
7/23
PARTIE 4
21°Aller à l'environnement WINDOWS (touche "windows" du clavier) sans fermer l'environnement du turbo
pascal!. Aller à l'explorateur windows puis exécuter le programme "tp0_3.exe" de 2 manières différentes: commande
OPEN du menu FILE ou double click de la souris sur le nom du fichier.
22°Exécuter le programme "tp0_3.exe" à partir de l'option EXECUTER du menu DEMARRER, suivi du nom du
fichier avec son chemin.
23°Créer un raccourci du programme "tp0_3.exe" avec une icône sur le bureau, puis exécuter ce programme à partir
du bureau (mettre le curseur sur le nom du fichier, puis clicker avec le bouton droit de la souris, puis envoyer le
raccourci vers le bureau).
24°Retour à l'environnement du turbo pascal en cliquant sur l'icône du turbo pascal sur la barre des tâches.
25°Dans le menu SEARCH sous menu FIND rechercher la chaîne de caractères "writeln". Puis utiliser la commande
"SEARCH AGAIN" pour chercher la chaîne suivante. Utiliser pour cela les touches de raccourci.
26°Positionner le curseur en début de fichier et remplacer dans le tout le texte la chaîne "writeln" par "WRITELN"
(menu SEARCH sous menu REPLACE). Compiler et exécuter à nouveau le programme en mémoire. Que remarquez
vous? Conclure.
27°Retourner à l'environnement windows en fermant l'environnement du turbo pascal (menu FILE commande EXIT).


{
UNIVERSITE DE CONSTANTINE
FACULTE DES SCIENCES DE L'INGENIEUR
DEPARTEMENT D'ELECTRONIQUE
TP 0_3: environnement intégré de turbo pascal
}
PROGRAM affiche_texte (input,output);
{uses crt;}
BEGIN
{clrscr;}
writeln('TES 451:INITIATION A L''INFORMATIQUE -2øsem 2001-');
writeln('TP Nø0_3: environnement int‚gr‚ de turbo pascal');
writeln;
writeln('APPUYER SUR UNE TOUCHE POUR SORTIR');
readln;
{}
writeln('J e suis le fichier "TOTO.TXT" et mon conseil est:');
writeln(' attention au virus "I LOVE YOU" sur internet');
writeln;
writeln('APPUYER SUR UNE TOUCHE POUR SORTIR');
readln;
{}

END.
- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique- 8
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------- 8/23
------------------------------
TP N
0
4 : NOTIONS PRELIMINAIRES DE TURBO PASCAL
------------------------------

-I- OBJECTIFS DU TP

Familiarisation avec les notions de :
- Edition, compilation et édition des liens
- Les entrées sorties standards (clavier et écran)
- Déclaration de variables entières et réelles, affectation de valeurs
- Erreurs syntaxique, sémantique, de programmation
- Quelques structures et instructions de base du TURBO PASCAL

-II-PROGRAMME

PROGRAM TEST(input, output) ;
VAR
A, C, F : Integer ;
D,E : Real ;
BEGINN
WRITELN (‘Opérations élémentaires avec différents types d’’erreurs’) ;
WRITELN (‘Donner les entiers A et C’) ;
READLN A;
B :=20 ;
D : =A/B ;
E : =A/C
F : =A*B ;
WRITELN (‘Les résultats obtenus sont :’D, E, F) ;
END.

-III-TRAVAIL DEMANDE

1° Après la saisie puis la compilation du programme, donnez les erreurs syntaxiques et
sémantiques.
2° Après correction des erreurs, sauvegarder le programme sur disque, puis effectuer la
compilation. Exécutez le programme en donnant à la variable A la valeur : A =10. Que se passe-
t-il et pourquoi ?
3° Corrigez le programme puis l’exécuter de nouveau en donnant A=10 et C=0, puis A=10 et
C=2. Que se passe –t-il et pourquoi?
4°Corrigez le programme par insertion d'un point d'arrêt avant la dernière instruction du
programme. Que remarquez vous et pourquoi?
5° Transformez la dernière ligne du programme en trois lignes d'affichage, chacune affichant une
des variables D,E,F. Que remarquez vous et pourquoi?
6°J usqu'ici la compilation et l'exécution se faisaient dans la mémoire RAM. Dans le sous menu
"compiler" choisir l'option "vers disque". Compilez le programme puis l'exécuter à partir du
disque.
TP N° 4 : NOTIONS PRELIMINAIRES DE TURBO PASCAL
- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique- 9
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------- 9/23
Comment formater l'affichage d'un nombre réel ?

Par défaut, lorsque l'on affiche un nombre réel avec Write ou bien qu'on le transforme en
chaîne avec Str, il est affiché sous forme scientifique, correspondant à une mantisse réelle m à 20
chiffres (1 <=m <10) et un exposant e signé à 4 chiffres.
Ainsi, le nombre 15 serait écrit : 1.50000000000000E+0001. Mais il arrive souvent que
l'on veuille écrire ce nombre 15 sous la forme 15.0

Pour ce faire, il faut utiliser les spécificateurs de précision. Pour définir une précision, on
ajoute derrière le nombre ou le nom de la variable à afficher un caractère deux points ":", la taille
du champ, puis encore deux points et le nombre de chiffres souhaités après la virgule, comme
ceci: Write(15:6:2);
Cet exemple affiche le nombre 15, sur un total de 6 caractères (en ajoutant des espaces
devant si nécessaire), et avec 2 chiffres après la virgule.

Si besoin est, on peut aussi utiliser des variables comme spécificateurs :
var
r: Real;
Width, Prec: Byte;
begin
Write(f:Width:Prec);
end;

Les spécificateurs sont tous les deux facultatifs. On peut donc ne spécifier que Width, pour
afficher alignée à droite par exemple. Cependant, si on désire spécifier Prec, alors Width doit
obligatoirement être mis. Si jamais on n'en a pas utilité, on peut le mettre à zéro, comme ceci :

Write(f:0:Prec);

Il est à noter que la syntaxe est la même pour Str :

var
f: Real;
s: string;
Width, Prec: Byte;
begin
Str(f:Width:Prec, s);
end;


TP N° 4 : NOTIONS PRELIMINAIRES DE TURBO PASCAL
- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique- 10
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------- 10/23
------------------------------
TP N
0
5 : LES STRUCTURES ALTERNATIVES ET REPETITIVES EN TURBO PASCAL
------------------------------
-I-Préparation : traduire en langage PASCAL les algorithmes suivants

1°Boucle « FOR DO »
ANALYSE
ENTREE : nombre, LIMITE ;
SORTIE : Inverse-reel, Inverse-entier ;
ALGORITHME
DEBUT
ECRIRE (`Calcul de l’inverse d’un nombre compris entre 1 et 10`) ;
ECRIRE (`Donner la valeur de LIMITE`) ;
LIRE (LIMITE) ;
Pour nombre allant de 1 à LIMITE Faire
DEBUT
Inverse-reel 1/nombre ;
Inverse-entier 1/nombre ;
ECRIRE (nombre, Inverse-reel, Inverse-entier) ;
FIN ;
FIN.

2°Séquences alternatives avec « IF THEN ELSE» et boucle post-testée « REPEAT UNTIL »
ANALYSE
ENTREE : nombre-pos, nombre-neg ;
SORTIE : nombre est positif, ou nombre est négatif;
ALGORITHME
DEBUT
Ecrire (`Affichage du signe d’un nombre`) ;
Répéter
Ecrire (`Entrez un nombre positif ou négatif `) ;
LIRE (nombre) ;
Si nombre >0 Alors
Faire
nombre-pos =nombre ;
ECRIRE (`Le nombre` , nombre-pos ,` est positif`) ;
Fin Faire

Sinon
Faire
nombre-neg =nombre ;
ECRIRE (`Le nombre` , nombre-neg ,` est négatif `) ;
Fin Faire
Jusqu’à ce que nombre =0 ;
FIN.

TP N
0
5 : LES STRUCTURES ALTERNATIVES ET REPETITIVES EN TURBO PASCAL
- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique- 11
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------- 11/23
3°Séquence répétitive avec boucle prétestée « WHILE DO »
ANALYSE
ENTREE : nombre-pos, nombre-neg ;
SORTIE : nombre est positif, ou nombre est négatif;
ALGORITHME
DEBUT
Ecrire (`Affichage du signe d’un nombre`) ;
nombre 1 ;
Tant que nombre <>0
Faire
Ecrire (`Entrez un nombre positif ou négatif `) ;
Lire (nombre) ;
Si nombre >0 Alors
Faire
nombre-pos =nombre ;
Ecrire (`Le nombre` , nombre-pos ,` est positif`) ;
Fin Faire
Sinon
Faire
nombre-neg =nombre ;
Ecrire (`Le nombre` , nombre-neg ,` est négatif `) ;
Fin Faire
Fin Faire
Fin Tant que
FIN.



-II- Manipulation
Après saisie et compilation (donc correction des erreurs) des programmes établis,
confirmez et commentez leur exécution.














TP N
0
5 : LES STRUCTURES ALTERNATIVES ET REPETITIVES EN TURBO PASCAL
- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique- 12
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------- 12/23
SOLUTIONS DE LA PREPARATION DU TP N
0
5 DE TURBO PASCAL: les boucles

1°Boucle « FOR DO »
PROGRAM boucle_fordo (input, output) ;
VAR
nombre, limite : integer ;
inverse_entier : integer ;
inverse_reel : real ;
BEGIN
writeln('entrez un nombre compris entre 1 et 10:');
readln (limite);
for nombre :=1 to limite do
begin
inverse_entier :=trunc (1/nombre);
inverse_reel :=1/nombre;
writeln (nombre, inverse_entier, inverse_reel);
end;
END.
2°Séquences alternatives avec « IF THEN ELSE» et boucle post-testée « REPEAT UNTIL »
PROGRAM saisie_affich ( input, output);
VAR nombre, nbre_pos, nbre_neg : integer;
BEGIN
repeat
writeln('entrez un nombre positif ou négatif');
read (nombre);
if nombre >0 then
begin
nbre_pos :=nombre;
writeln ('le nombre ',nbre_pos,' est positif');
end
else if nombre <0 then
begin
nbre_neg :=nombre;
writeln ('le nombre ',nbre_neg,' est négatif');
end;
until nombre =0;
END.
TP N
0
5 : LES STRUCTURES ALTERNATIVES ET REPETITIVES EN TURBO PASCAL
- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique- 13
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------- 13/23

3°Séquence répétitive avec boucle prétestée « WHILE DO »

PROGRAM saisie_affich2 ( input, output);
VAR nombre, nbre_pos, nbre_neg : integer;
BEGIN
nombre :=1;
while nombre <>0 do
begin
writeln('entrez un nombre positif ou négatif');
read (nombre);
if nombre >0 then
begin
nbre_pos :=nombre;
writeln ('le nombre ',nbre_pos,' est positif');
end
else if nombre <0 then
begin
nbre_neg :=nombre;
writeln ('le nombre ',nbre_neg,' est négatif');
end;
end;
END.
TP N
0
5 : LES STRUCTURES ALTERNATIVES ET REPETITIVES EN TURBO PASCAL
- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique- 14
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------- 14/23
------------------------------
TP N
0
6: LES PROCEDURES EN TURBO PASCAL
------------------------------

Soit le programme suivant de saisie et affichage de nombres :

PROGRAM Saisie_Affich ( input, output ) ;
VAR
nombre, nombre_pos, nombre_neg: integer ;
BEGIN
repeat
writeln (`Entrez un nombre positif ou négatif `) ;
readln (nombre) ;
if nombre > 0 then
begin
nombre_pos : = nombre ;
writeln ('Le nombre ' , nombre_pos ,' est positif') ;
end
else if nombre < 0 then
begin
nombre_neg : = nombre ;
writeln ('Le nombre ' , nombre_neg ,' est négatif') ;
end ;
until nombre = 0 ;
END.


-I-Préparation
1- Transformez le en un programme principal et deux procédures, utilisant uniquement des
variables globales. Le programme principal a pour nom "Saisie_Affich", et les procédures
auront pour noms "Affich_Pos" et "Affich_Neg",
2- Modifiez le programme en utilisant "nombre" comme variable globale, "nombre_pos" et
"nombre_neg" comme variables locales.
3- Modifiez le dernier programme, en utilisant l’appel de procédure par transmission de
paramètres. Ainsi les variables "nombre_pos" et "nombre_neg" n’ont pas besoin d’être
déclarées (leur déclaration se fait dans la définition de la procédure) ni initialisées (leurs
valeurs sont transmises lors de l’appel de la procédure).
4- Partant de ce dernier programme, extraire les deux procédures et les mettre chacune dans un
fichier séparé comme « unité ». Modifiez les procédures et le programme principal en
conséquence.

-II-Manipulation
-1-Saisissez, puis compilez le programme initial ainsi que les trois programmes établis lors de la
préparation. Sauvegardez les 4 fichiers source sur disque.
-2-Compilez les quatre programmes en sauvegardant les fichiers exécutables sur disque.
-3-Vérifiez pour différentes valeurs de « nombre » qu’on obtient bien le même résultat pour les
cinq programmes.

TP N
0
6: LES PROCEDURES EN TURBO PASCAL
- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique- 15
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------- 15/23
SOLUTIONS DE LA PREPARATION DU TP N
0
6 DE TURBO PASCAL: les procédures

1°Programme modifié avec variables globales et deux procédures.
PROGRAM Saisie_Affich2 ( input, output ) ;
VAR
nombre, nombre_pos, nombre_neg : integer ;
PROCEDURE Affich_Pos ;
begin
nombre_pos : = nombre ;
writeln ('Le nombre ' , nombre_pos ,' est positif') ;
end ;
PROCEDURE Affich_Neg ;
begin
nombre_neg : = nombre ;
writeln ('Le nombre ' , nombre_neg ,' est négatif ') ;
end ;
BEGIN
repeat
writeln ('Entrez un nombre positif ou négatif ') ;
readln (nombre) ;
if nombre > 0 then Affich_Pos
else if nombre < 0 then Affich_Neg ;
until nombre =0 ;
END.

2°Programme modifié avec variables locales
PROGRAM Saisie_Affich3 ( input, output ) ;
VAR
nombre : integer ;
PROCEDURE Affich_Pos ;
VAR nombre_pos : integer ;
begin
nombre_pos : =nombre ;
writeln ('Le nombre ' , nombre_pos ,' est positif') ;
end ;
PROCEDURE Affich_Neg ;
VAR nombre_neg : integer ;
begin
nombre_neg : =nombre ;
writeln ('Le nombre ' , nombre_neg ,' est négatif') ;
end ;
BEGIN
repeat
writeln ('Entrez un nombre positif ou négatif ') ;
readln (nombre) ;
if nombre > 0 then Affich_Pos
else if nombre< 0 then Affich_Neg ;
until nombre =0 ;
END.
TP N
0
6: LES PROCEDURES EN TURBO PASCAL
- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique- 16
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------- 16/23
3°Programme modifié avec passage de paramètres aux procédures

PROGRAM Saisie_Affich4 ( input, output ) ;
VAR
nombre : integer ;
PROCEDURE Affich_Pos (nombre_pos : integer);
begin
writeln ('Le nombre ' , nombre_pos ,' est positif') ;
end ;
PROCEDURE Affich_Neg(nombre_neg : integer);
begin
writeln ('Le nombre ' , nombre_neg ,' est négatif') ;
end ;
BEGIN
repeat
writeln ('Entrez un nombre positif ou négatif') ;
readln (nombre) ;
if nombre >0 then Affich_Pos (nombre)
else if nombre< 0 then Affich_Neg (nombre) ;
until nombre =0 ;
END.

4°Programme modifié avec les deux procédures comme unités séparées de compilation

On part du programme précédent comportant un programme principal et deux procédures
avec passage de paramètres.
Les 2 procédures sont maintenant placées dans des unités (positif et négatif) qui constituent
des sous programmes indépendants utilisables par n'importe quel programme. Ces programmes
(« positif.pas » et « negatif.pas » ) sont compilés séparément. Après compilation on obtient deux
fichiers unités : « positif.tpu » et « négatif.tpu », auxquels on peut faire appel à partir de n’importe
quel programme. Il suffit de rajouter dans le programme la commande « uses nom_unité»
*)

(*Ce qui suit est un programme placé dans un fichier à part nommé «positif.pas»
Dans un programme unité, on utilise 4 mots clefs : unit, interface, implementation, end.*)

UNIT positif;
INTERFACE (*on déclare ici les procédures qui vont faire partie de cette unité,
ainsi que les variables globales communes à toutes les procédures de l’unité*)
procedure Affiche_Pos (nombre_pos:integer);
IMPLEMENTATION (*on déclare maintenant le corps de chaque procédure de l'unité*)
procedure Affiche_Pos (nombre_pos:integer);
begin
writeln ('Le nombre ' , nombre_pos ,' est positif') ;
end ;
END.
(*fin de l’unité positif*)

TP N
0
6: LES PROCEDURES EN TURBO PASCAL
- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique- 17
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------- 17/23
(*Ce qui suit est un programme placé dans un fichier à part nommé negatif*)

UNIT negatif;
INTERFACE
procedure Affiche_Neg (nombre_neg:integer);
IMPLEMENTATION
procedure Affiche_Neg (nombre_neg:integer);
begin
writeln ('Le nombre ' , nombre_neg ,' est negatif') ;
end ;
END.
(*fin de l’unité negatif*)

(* Programme principal *)
PROGRAM Saisie_Affich5 ( input, output ) ;
USES positif,negatif;
VAR
nombre : integer ;
BEGIN
repeat
writeln ('Entrez un nombre positif ou négatif') ;
readln (nombre) ;
if nombre >0 then Affiche_Pos (nombre)
else if nombre <0 then Affiche_Neg (nombre) ;
until nombre =0 ;
END.

TP N
0
6: LES PROCEDURES EN TURBO PASCAL
- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique- 18
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------- 18/23
-----------------------------------------------------
TP N0 7 : LES CODES ASCII, CHAINES DE CARACTERES, TABLEAUX EN TURBO PASCAL
----------------------------------------------------------------

PROGRAM lecture_char (input,output);
uses crt;
var
F: Text;
i:integer;
Carac: Char; chaine,nom_fich:string;
tab1_char :string[7];
tab2_char :array[1..9] of char ; tab3_int:array[1..3] of integer ;
BEGIN
writeln('NOUS ALLONS ETUDIER DANS CE TP:');
writeln('----------------------- LES CARACTERES ET LEUR CODE ASCII --------------------');
writeln('----------------------- LA STRING OU CHAINE DE CARACTERES --------------------');
writeln('---------------- LE TABLEAU D''ENTIERS ET LE TABLEAU DE CARACTERES -----------');
Tab3_int[1] :=ord('A')
Tab3_int[2] :=ord('3') ; Tab3_int[3] :=ord(' ') ;
clrscr; writeln('le code ASCII du caractere "A" est ', Tab3_int[1] , ' en decimal');
writeln('le code ASCII du caractere "3" est ', Tab3_int[2] , ' en decimal');
writeln('le code ASCII du caractere " " est ', Tab3_int[3] , ' en decimal');
writeln ;
writeln('ENTREZ LE CARACTERE DONT VOUS VOULEZ AVOIR LE CODE ASCII (S POUR SORTIR) :') ;
carac :='E';
while carac <>'S' do
begin
readln(carac) ;
writeln('le caractere "',carac,'" a pour code ascii ', ord(carac)) ;
end ;
writeln ;
clrscr;
for i :=0 to 6 do tab1_char[i] :=chr(63+i) ;
writeln('les caracteres qui ont pour code ascii de 63 a 69 en decimal sont:');
for i :=0 to 6 do Write(tab1_char[i]);
writeln;
for i :=0 to 8 do tab2_char[i] :=chr(48+i) ;
writeln('les caracteres qui ont pour code ascii de 48 a 56 en decimal sont:');
for i :=0 to 8 do Write(tab2_char[i]);
writeln ;
writeln;
writeln('ENTREZ UN CODE ASCII (entre 0 et 255) POUR AVOIR LE CARACTERE CORRESPONDANT :') ;
writeln(' (ZERO POUR SORTIR)');
i :=1 ;
while i <>0 do
begin
readln(i);
writeln( i,' est le code ascii en décimal du caractere "', chr(i), '"') ;
end ;
writeln ;
writeln ;
clrscr;
END.


TP N0 7 : LES CODES ASCII, CHAINES DE CARACTERES, TABLEAUX EN TURBO PASCAL
- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique- 19
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------- 19/23
-I-PREPARATION

-1 -a- Quelle est l’instruction qui permet d’obtenir le code ascii d’un caractère ?
-b- Quelle est l’instruction qui à partir d’un code ascii permet d’obtenir le caractère
correspondant?
-c- Quand on exécute le programme donné, donnez tout ce qui apparaîtra sur l'écran en
respectant les espaces et la casse (majuscule ou minuscule),
-2- En vous inspirant du programme donné, écrire un programme qui permet de :
*saisir une chaîne de caractères au clavier et de la ranger dans un tableau (max 16 caractères),
*compter le nombre de fois la lettre " A " dans cette chaîne, et d'afficher ce nombre,
*répéter en boucle ce programme jusqu’à ce que le premier caractère de la chaîne soit un zéro.
-II-MANIPULATION
-1- Saisissez, compilez puis exécutez le programme donné et observez ce qui se passe en
précisant :
-a- la différence entre les instructions « write » et « writeln » ;
-b- ce que fait l’instruction « clrscr » ;
-c- la différence entre les instructions « ord (‘3’) » et « chr (‘3’) » ;
-d- la différence entre les instructions « array[1..9] of char » et « string[9] » ;

2- Saisissez, compilez puis exécutez votre programme établi lors de la préparation.

TP N0 7 : LES CODES ASCII, CHAINES DE CARACTERES, TABLEAUX EN TURBO PASCAL
- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique- 20
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------- 20/23

SOLUTION DE LA PREPARATION DU TP N
0
7 DE TURBO PASCAL
CODES ASCII, CARACTERES ET TABLEAUX
--------------------------------------------------------------

PROGRAM comptage_nbre_a(input,output);
uses crt;
Var
i, nbre_A:integer;
Carac_sortie: Char;
chaine_carac : string[16];
BEGIN
carac_sortie :=' ';
for i :=1 to 16 do chaine_carac[i] :=' ';
while carac_sortie <>'0' do
begin
clrscr;
nbre_A :=0;
writeln('ENTREZ UNE CHAINE DE CARACTERES comprenant des "A"(au max 16
caracteres)') ;
writeln('pour sortir la chaine doit commencer par "0"');
readln(chaine_carac);
for i:=1 to 16 do
begin
if chaine_carac[i] ='A'then nbre_A :=nbre_A +1
else if chaine_carac[i] ='0'then carac_sortie :='0';
end ;
writeln ('le nombre de A dans la chaine est de : ', nbre_A);
readln;
end;
END.
TP N0 7 : LES CODES ASCII, CHAINES DE CARACTERES, TABLEAUX EN TURBO PASCAL
- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique- 21
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------- 21/23
--------------------------------------
TP N0 8 : CREATION ET LECTURE DE FICHIERS DE CARACTERES EN TURBO PASCAL
--------------------------------------
PROGRAM l ect _ecr i t _f i chi er ( i nput , out put ) ;
Uses cr t ;
Var
pt r _f i l e: t ext ; * pt r _f i l e est un poi nt eur sur un f i chi er de t ype t ext e *)
i : i nt eger ;
car ac: char ;
chai ne, nom_f i ch : st r i ng;
BEGI N
cl r scr ;
wr i t el n( ' NOUS ALLONS ETUDI ER DANS CE TP: ' ) ;
wr i t el n( ' - - - - - - - - - - LA CREATI ON ET LA LECTURE DE FI CHI ER TEXTE - - - - - - - - - - - - ' ) ;
wr i t el n( ' LA DI FFERENCE ENTRE LES I NSTRUCTI ONS READ et READLN, WRI TE et WRI TELN' ) ;
Assi gn( pt r _f i l e, ' t ot o. t xt ' ) ;
{assi gnat i on du poi nt eur pt r _f i l e au f i chi er t ot o. t xt }
Rewr i t e( pt r _f i l e) ; {cr éat i on du f i chi er t ot o. t xt }
wr i t el n( pt r _f i l e, ' J e sui s l e f i chi er " TOTO. TXT" et mon consei l est : ' ) ;
{écr i t ur e du t ext e dans f i chi er }
wr i t el n( pt r _f i l e, ' at t ent i on au vi r us " I LOVE YOU" sur i nt er net ' ) ;
{écr i t ur e du t ext e dans f i chi er }
cl ose( pt r _f i l e) ; {f er met ur e du f i chi er }
r eadl n( car ac) ; cl r scr ;
r eset ( pt r _f i l e) ;
{r éouver t ur e du f i chi er t ot o. t xt avec r emi se du poi nt eur sur l e début du f i chi er }
wr i t el n( ' NOUS VENONS DE CREER LE FI CHI ER " TOTO. TXT" AVEC CE TEXTE A L' ' I NTERI EUR: ' ) ;
wr i t el n;
whi l e not Eof ( pt r _f i l e) do {t ant qu' on n' est pas à l a f i n du f i chi er f ai r e }
begi n
Readl n( pt r _f i l e, chai ne) ; {l ect ur e d' une st r i ng à par t i r du f i chi er }
Wr i t el n( chai ne) ; {af f i chage de l a st r i ng qui a ét é l ue}
end;
cl ose( pt r _f i l e) ; {f er met ur e du f i chi er }
wr i t el n ; wr i t el n ;
wr i t el n( ' ENTREZ LE NOM DU FI CHI ER TEXTE A LI RE ( AVEC L' ' EXTENSI ON TXT) : ' ) ;
r eadl n( nom_f i ch) ; {l ect ur e du nomdu f i chi er }
Assi gn( pt r _f i l e, nom_f i ch) ;
Reset ( pt r _f i l e) ; {ouver t ur e du f i chi er nom_f i ch}
wr i t el n;
wr i t el n( ' FI CHI ER ' , nom_f i ch, ' : ' ) ;
wr i t el n( ' LECTURE DU CONTENU DU FI CHI ER CARACTERE PAR CARACTERE AVEC " READ " ' ) ;
wr i t el n( ' AFFI CHAGE DU CONTENU DU FI CHI ER CARACTERE PAR CARACTERE AVEC " WRI TE" ' ) ;
wr i t el n;
whi l e not Eof ( pt r _f i l e) do
begi n
Read( pt r _f i l e, Car ac) ; {on l i t et écr i t un par un t ous l es car act er es même EOL}
Wr i t e( Car ac) ; {donc on f ai t du dumpi ng}
end;
r eset ( pt r _f i l e) ;
{sans f er mer l e f i chi er on r emet l e poi nt eur pt r _f i l e sur l e début du f i chi er
nom_f i ch}
wr i t el n ; wr i t el n ;
wr i t el n( ' NOUVELLE LECTURE DU FI CHI ER ' , nom_f i ch, ' : ' ) ;
wr i t el n( ' LECTURE DU CONTENU DU FI CHI ER LI GNE PAR LI GNE AVEC " READLN " ' ) ;
wr i t el n( ' AFFI CHAGE DU CONTENU DU FI CHI ER LI GNE PAR LI GNE AVEC " WRI TE " ' ) ;
wr i t el n;
whi l e not Eof ( pt r _f i l e) do
begi n
Readl n( pt r _f i l e, chai ne) ;
{on l i t t out e une l i gne sans l e car act er e EOL}
Wr i t e( chai ne) ; { on af f i che ensui t e ce qui est l u }
end;
cl ose( pt r _f i l e) ;
r eadl n;
END.
TP N0 8 : CREATION ET LECTURE DE FICHIERS DE CARACTERES EN TURBO PASCAL
- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique- 22
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------- 22/23
-I- PREPARATION
-1- Quand on exécute le programme donné, donnez tout ce qui apparaîtra sur l'écran en respectant
les espaces et la casse (majuscule ou minuscule).
-2-En vous inspirant du programme donné, écrire un programme qui permet :
- de saisir une chaîne de caractères au clavier (max 16 caractères) et de la stocker dans tableau
tab1_carac,
- puis de stocker cette chaîne dans un fichier (ayant pour nom « toto.txt »),
- puis de lire ce fichier et de stocker son contenu dans un tableau tab2_carac,
- puis d’afficher le contenu du tableau tab2_carac.
-II- MANIPULATION
-1- Saisissez, compilez puis exécutez le programme donné en observant :
- la différence entre les instructions « readln » et « read » ;
- la différence entre les instructions « writeln » et « write » ;
-2- Saisissez, compilez puis exécutez votre programme.
TP N0 8 : CREATION ET LECTURE DE FICHIERS DE CARACTERES EN TURBO PASCAL
- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique- 23
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
----------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------- 23/23
SOLUTION DE LA PREPARATION DU TP N0 8 DE TURBO PASCAL
CREATION ET LECTURE DE FICHIERS DE CARACTERES
----------------------------------
{pr ogr amme demandé pour l a pr épar at i on du TP}
PROGRAM l ect _ecr i t _f i chi er ( i nput , out put ) ;
uses cr t ; {ces comment ai r es ne sont pas une er r eur . }
{i l s per met t ent d' i l l ust r er l a not i on d' uni t é de compi l at i on
et d' édi t i on de l i ens ( voi r comment ai r es pl us l oi n) . }
var
pt r _f i l e: Text ;
t ab1_car ac, t ab2_car ac: st r i ng[ 16] ;
BEGI N
cl r scr ; {i l y aur a une er r eur de compi l at i on au ni veau de cet t e l i gne;
car cet t e commande dos est i nconnue. I l f aut pour l ' édi t i on
des l i ens pr éci ser l ' uni t ‚ qui cont i ent l a déf i ni t i on de cet t e
commande. Pour cel a on r aj out e l a décl ar at i on de l ' uni t é
cor r espondant e par " uses cr t " au début du pr ogr amme
( i l suf f i t pour cel a d' enl ever l es comment ai r es de début de pr ogr amme) }
wr i t el n( ' Ent r ez une sér i e de car act èr es ( au maxi mum16 car act èr es) ' ) ;
wr i t el n;
wr i t e( ' - - - >' ) ;
r eadl n( t ab1_car ac) ;
Assi gn( pt r _f i l e, ' t ot o. t xt ' ) ;
Rewr i t e( pt r _f i l e) ;
wr i t el n;
wr i t el n( ' NOUS VENONS DE CREER LE FI CHI ER " TOTO. TXT" AVEC CE TEXTE A L' ' I NTERI EUR: ' ) ;
wr i t el n;
wr i t e( ' - - - >' ) ;
wr i t el n( t ab1_car ac) ;
wr i t el n( pt r _f i l e, t ab1_car ac) ;
cl ose( pt r _f i l e) ;
wr i t el n;
r eset ( pt r _f i l e) ;
wr i t el n( ' Ensui t e l e t ext e a ét é copi é du f i chi er dans l e t abl eau t ab2_car ac' ) ;
wr i t el n;
wr i t el n( ' l e cont enu de t ab2_car ac est : ' ) ;
wr i t el n;
wr i t e( ' - - - >' ) ;
whi l e not Eof ( pt r _f i l e) do
begi n
Readl n( pt r _f i l e, t ab2_car ac) ;
Wr i t el n( t ab2_car ac) ;
end;
cl ose( pt r _f i l e) ;
r eadl n;
END.
TP N0 8 : CREATION ET LECTURE DE FICHIERS DE CARACTERES EN TURBO PASCAL
- Université de Constantine - Faculté des sciences de l'ingénieur - Département d'électronique-
Travaux Pratiques de TES 451 : INITIATION A L'INFORMATIQUE - ©H.Hamdi 2000-2006
---------------------------------------------------------------------------------------------------------------------------------------------
TP N0 9 : CREATION ET LECTURE DE FICHIERS D’ENREGISTREMENTS EN TURBO PASCAL

Objectifs du TP
- Mise en œuvre de la notion de structure en pascal
- Mise en œuvre de la notion de pointeur de fichier
Enoncé
Chaque étudiant est une structure comprenant : un nom de type chaîne de caractères et une note de type réel.
Il s’agit de créer le fichier de notes des étudiants, après saisie au clavier et sauvegarde sur fichier ; puis de lire ce fichier et lister
les étudiants admis .

Program create_liste_etudiants(input,output);

Type student =record
nom:string;
note:real;
end;
Var fich_etud: File Of student;
etud_en_cours: student;
nbr_etud_traites, nbr_etudiants: integer;

BEGIN
Assign(fich_etud, 'd:\notes_ufc.moi');
{Affectation de la valeur "d:\notes_ufc.moi" à la variable fich_etud,
ou assignation du nom "notes_ufc.moi" du fichier physique au nom logique "fich_etud",
on peut dire également qu'on fait correspondre au fichier logique identifié par son nom "fich_etud" le fichier physique qui a pour
nom "notes_ufc.moi" et qui se trouve sur la racine du disque D: }
{Remarques
1- Lors de l’assignation et donc de la création du fichier physique, TURBO PASCAL tronque le nom à 8 caractères
conformément à MSDOS, et ceci indépendamment de la longueur du chemin.
Dans notre cas le vrai nom du fichier stock‚ sur la racine de D: sera "notes_uf.moi".
2- Lors de l’assignation, si on donne uniquement le nom du fichier sans le chemin, le fichier sera créé dans le répertoire
courant, c'est-à-dire celui où se trouve ce programme exécutable cree_lis.exe}
Rewrite(fich_etud); {création du fichier "notes_uf.moi"}
nbr_etud_traites:=0;
Write('Entrez le nombre d''étudiants dans la classe-->');
Readln(nbr_etudiants);
While (nbr_etud_traites <nbr_etudiants) do
begin
Write('Entrez le nom de l''étudiant:-->');
Read(etud_en_cours.nom);
Write(' Entrez la moyenne de l''étudaint:-->');
Readln(etud_en_cours.note);
Write(fich_etud,etud_en_cours); {écriture d’un enregistrement sur le fichier}
nbr_etud_traites:=nbr_etud_traites +1;
end;
Close(fich_etud);
Reset(fich_etud); {ouverture du fichier "notes_uf.moi" en lecture}
Writeln;
Writeln('******** LISTE DES ETUDIANTS ADMIS *********');
Writeln;
While Not EOF(fich_etud) do
begin
read(fich_etud,etud_en_cours); {lecture d'1 enregistrement de type "student" à partir du fichier "notes_uf.moi"}
if etud_en_cours.note >=10 then
Writeln(etud_en_cours.nom); {affichage du nom de l'étudiant admis}
end;
Close(fich_etud);
Readln;
END.

Sign up to vote on this title
UsefulNot useful