Aujourd'hui: Le 19 mars 2024
Visites aujourd'hui : 771
Top visites par jour : 35537
Le 27 mai 2019
Visiteurs en ligne: 5
  Accueil
Algo & programmation
edu
Matière informatique
Informatique
Formations
Exercices livre scolaire

Bac scientifiques

Exercices du livre scolaire (corrigés)



Les chaînes de caractères

Exercice 8  : page 22

Écrire les instructions PASCAL permettant de réaliser les objectifs suivants :

1- Obtenir la longueur de la chaîne "Informatique"

2- Récupérer la sous-chaîne de 5 caractères à partir de la position 8 de la chaîne "Informatique"

3- Effacer les 5 premiers caractères de la chaîne "Informatique"


Corrigé :

Utilisant pour cet exercice ch:='Informatique' ;

1-



Résultat d'exécution :


l:= length(ch) ;


12


writeln(l) ;

2-





ch2:=copy(ch,8,5) ;


ch2:='tique' ;

3-





delete(ch,1,5) ;


ch:='matique' ;

Program longueur ;

uses wincrt ;

var

l:integer ;

ch,ch2:string ;

begin

ch:='informatique' ;

l:=length(ch) ;

writeln(l) ;


ch2:=copy(ch,8,5) ;

writeln(ch2) ;


delete(ch,1,5) ;

writeln(ch) ;

end.


Exercice 9: page 22

a est un entier, x est un réel et ch est un caractère.

Dire pourquoi les instructions suivantes sont erronées, et les corriger dans la

mesure du possible.

* a:=3.4

* x:=5,16

* ch:=x

* a:=maxent+5


Corrigé :

Utilisant pour cet exercice : a est un entier, x est un réel et ch est un caractère.

Instructions

erronées

Erreurs

Corrections

proposées

a:=3.4

On ne peut pas affecter un réel à un entier.

a:=3 ;

a:=34 ; a:=trunc(3.4) ;

x:=5,16

On n'utilise pas la , pour représenter un réel mais le .

x:=5.16 ;

ch:=x

on ne peut pas affecter un réel à un caractère.

Ch:='x' ;


a:=maxent+5

maxent n'est pas une variable ou une constante déclarée.

a:=5 ; ou

const maxent=1000 ;

...

a:=maxent+5 ;



Exercice 10: page 23

Soit la partie déclarative du programme Pascal suivant :

PROGRAM Dates;

CONST

Date1='03/07/2006';

VAR

Date2: STRING[10];

Jour: STRING[2];

Mois: STRING[2];

Annee: STRING[4];

......

Compléter le corps du programme par les instructions (bloc BEGIN...END) permet-

tant de réaliser les traitements suivants :

* Mettre Date1 dans Date2 sous la forme jjmmaaaa ( indication: Date2 va contenir

03072006 )

* Mettre le jour dans la variable Jour, le mois dans la variable Mois et l'année dans

la variables Annee.

Corrigé :

code pascal correspondant :

PROGRAM Dates;

uses wincrt ;

CONST Date1='03/07/2006';

VAR

Date2: STRING[10];

Jour: STRING[2];

Mois: STRING[2];

Annee: STRING[4];

Begin

{ 1- Mettre Date1 dans Date2 sous la forme jjmmaaaa }

Date2:=concat(copy(date1,1,2),copy(date1,4,2),copy(date1,7,4)) ;

{2ème méthode :

Date2:=copy(date1,1,2) + copy(date1,4,2) + copy(date1,7,4) ;


3ème méthode :

date2:=date1 ;

delete(date2,3,1) ;

delete(date2,5,1) ;

}

writeln(date2) ;

{ 2- Mettre le jour dans la variable Jour, le mois dans la variable Mois et l'année dans la variables Annee }

jour:=copy(date1,1,2) ;

mois:=copy(date1,4,2) ;

annee:=copy(date1,7,4) ;

{2ème méthode : puisque date2:='03072006' ;

jour:=copy(date2,1,2) ;

mois:=copy(date2,3,2) ;

annee:=copy(date2,5,4) ;

}


writeln('jour=',jour) ;

writeln('mois=',mois) ;

writeln('année=',annee) ;

end.


Exercice 11: page 23

Soit la partie déclarative du programme Pascal suivant :

PROGRAM mots ;

CONST

m1= 'abcd';

m2='ordinateur';

m3='scalaire';

VAR

symetrie: STRING[8];

compose: STRING ;

......

Compléter la partie du programme Pascal précédente en ajoutant des variables (si

c'est nécessaire) et le bloc BEGIN ... END pour :

* Avoir dans la variable « symetrie » une chaîne de caractères symétrique obtenue

à partir de la variable « m1 ».

* Avoir dans la variable « compose » une chaîne de caractères obtenue en com-

binant la première moitié de « m2 » et la deuxième moitié de « m3 » en utilisant

les fonctions : concat() et copy().


Corrigé :

code pascal correspondant :

PROGRAM mots ;

uses wincrt ;

CONST

m1= 'abcd';

m2='ordinateur';

m3='scalaire';

VAR

symetrie: STRING[8];

compose: STRING ;

Begin

{ 1- Avoir dans la variable "symetrie" une chaîne de caractères symétrique obtenue à partir de la variable "m1". }

symetrie:=concat(m1,m1) ; {autre méthode : symetrie:=m1+m1 ; }


writeln(symetrie) ;

{ 2- Avoir dans la variable " compose " une chaîne de caractères obtenue en combinant la première moitié de " m2 " et la deuxième moitié de " m3 " }

compose:=concat (copy(m2,1,5), copy(m3,5,4) ) ;

{autre méthode : compose:=copy(m2,1,5)+ copy(m3,5,4)  ; ; }

{2ème méthode : méthode générale on déclare a2,a3:integer ;

a2:=length(m2) ;

a3:=length(m3) ;

compose:= copy(m2,1, a2 div 2 ) + copy (m3, a3 div 2 + 1, a3-a3 div 2) ; }

writeln(compose) ;

end.


Exercice 12  : page 23

Ecrire un programme Pascal qui permet de transformer la chaîne de caractères "informatique" en majuscule sans utiliser la fonction upcase(c), et la mettre dans une variable nommée maj.

Indication : le code ASCII de 'a' est 97 et le code ASCII de 'A' est 65.


Corrigé :

code pascal correspondant :

PROGRAM majus ;

uses wincrt ;

VAR

ch : string ;

Begin

ch:='informatique' ;


ch[1]:= chr ( ord(ch[1])-32) ;

ch[2]:= chr ( ord(ch[2])-32) ; }

....

ch[12]:= chr ( ord(ch[12])-32) ;

{ on peut utiliser la boucle pour i:integer;

for i:=1 to length(ch) do

ch[i]:= chr ( ord(ch[i])-32) ; }

end.









Date d'ajout de la page: 10/11/2013   Dernière mise à jour de la page: 10/11/2013




Dernière modification: 10 mars 2024

K i t e b . n e t © 2008-2024