chaine de caractere
Serie 1
EX1:
ecrire un programme qui affiche " HELLO WORLD "
EX2:
ecrire un programme qui a affiche les données saisie par clavier .
ex :
nom : jlassi
prenom : zied
phone : 0021600000000
EX3:
ecrire un programme qui calcule et affiche la somme de deux entiers saisies ;ex:
7 + 2 = 9
EX4:
ecrire un programme qui affiche les resultas suivant ; somme , soustraction , multiplication , division entiere . ex:
7 + 2 = 9
7 - 2 = 5
7 * 2 = 14
8 / 2 = 4
EX5:
ecrire un programme qui affiche le rteste et la division entiere de deux entiers saisie: ex:
7 / 2 = 3
le reste est : 1
EX6:
ecire un programme qui affiche les opertation suivants de deux nombres reals saisies:
0.5 * 2 = 1
5 / 2 = 2.50
9 * 10 = 90
32000 + 40000 = 62000
EX7:
ecrire un programme qui fait ceci :
entrer un caractere : c
l'ordre du ' c ' dans la table ASCII est : 99
entrer un entier ASCII : 66
le caracter du code ASCII est : B
entrer un caractere : c
le majuscule de c est : C
le précédent du caractere c est : b
le successif de c est : d
EX8:
ecrire un programme qui affiche les resultas suivants d'un real saisie:
la partie entière de 5.2 est : 0.2
la valeur proche de 5.2 est : 5
la valeur absolue de 5.2 = 5.2 " si c'etait un real négatif comme -5.1 --> 5.1"
le racine carré de 5.2 est : 2.28
le carré de 5.2 est : 27.04
la partie fractionnaire de 5.2 est : 0.2
EX9:
ecrire un programme qui fusionne 3 chaine de caractère saisie . ex:
ch1 : ali
ch2 : baba
ch3 : va à l'ecole
-------> ali baba va à l'ecole
EX10:
ecrire un programme qui affiche la position d'une chaine de caractère
d' une autre chaine . ex :
ch1 : ali baba
ch2 : baba
pos : 5
program ex1;
uses wincrt;
begin
writeln(' HELLO WORLD');
end.
program ex2;
uses wincrt;
var ch1,ch2,ch3:string;
begin write('donner votre nom : ');
readln(ch1); write('donner votre prenom : ');
readln(ch2);
write('donner votre numero de telephone : ');
readln(ch3);
clrscr; { cette fonctionne efface l'ecran **
writeln('nom : ',ch1);
writeln('prenom : ',ch2);
writeln('phone : ',ch3);
end.
program ex3;
uses wincrt;
var x,y,r:integer;
begin
write('entrer x : ');
readln(x); write('entrer y : ');
readln(y);
r:=x+y;
writeln('');writeln(''); { pour faire l'espace **
writeln(' ',x,' + ',y,' = ',r);
end.
program ex4;
uses wincrt;
var
x,y,som,quo,sous,mul:integer;
begin
write('entrer x : ');
readln(x);
write('entrer y : ');
readln(y);
writeln('');writeln(''); { pour faire l'espace **
som:=x+y;
sous:=x-y;
mul:=x*y;
{ quo:=x/y; <--------- faire attention a ceci ,n´est pas autorisé pour les entiers **
quo:=x div y
writeln(' ',x,' + ',y,' = ',som);
writeln(' ',x,' - ',y,' = ',sous);
writeln(' ',x,' * ',y,' = ',mul);
writeln(' ',x,' / ',y,' = ',quo);
{ attention vous dever faire attention a la limite des intervalles integer [-32768,32767] **
end.
program ex5;
uses wincrt; var
x,y,quo,r:integer;
begin
write('entrer x : ');
readln(x);
write('entrer y : ');
readln(y);
writeln('');writeln(''); { pour faire l'espace **
{ quo:=x/y; <--------- faire attention a ceci ,n''est pas autoris pour les entiers **
quo:=x div y; r:=x mod y;
writeln(' ',x,' / ',y,' = ',quo);
writeln (' le reste de la division est : ',r);
{ attention vous dever faire attention a la limite des intervalles integer [-32768,32767] **
end.
program ex6;
uses wincrt;
var x,y,som,quo,sous,mul:real;
begin
write('entrer x : '); readln(x);
write('entrer y : '); readln(y);
writeln('');writeln(''); { pour faire l'espace **
som:=x+y;
sous:=x-y;
mul:=x*y;
quo:=x/y;
writeln(' ',x:00:1,' + ',y:00:1,' = ',som:00:1);
writeln(' ',x:00:1,' - ',y:00:1,' = ',sous:00:1);
writeln(' ',x:00:1,' * ',y:00:1,' = ',mul:00:1);
writeln(' ',x:00:1,' / ',y:00:1,' = ',quo:00:2);
{ vous aver bien remarque l'utilit de 00----> max exposant a afficher et que 1 ----> le nombre d'entier aprés le virgule**
end.
program ex7;
uses wincrt;
var x,m: char; n:integer;
begin
write('entrer un caractère :');
readln(x);
writeln('l ordre du caractère ',x,' est: ',ord(x));
write('entrer un entier ASCII :');
readln(n);
writeln('LE CARACTERE DU CODE ASCII ',N,' est: ',CHR(N));
write('entrer un caractère :');
readln(m);
writeln('le majuscule de ',m,' est : ',upcase(m));
writeln('le successif de ',m,' est : ',succ(m));
writeln('le présedent de ',m,' est : ',pred(m));
end.
program ex8;
uses wincrt;
var x1,x2,s:real;
begin
write('entrer un reel x1 : ');
readln(x1);
write('entrer un reel x2 : ');
readln(x2); s:= x1 + x2 ;
writeln('');
writeln(x1:0:2,' + ',x2:0:2,' = ',s:0:2);
writeln('la partie entire de ',s:0:2,' est : ',trunc(s));
writeln('la valeur proche de ',s:0:2,' est : ',round(s));
writeln('|',s:0:2,'| = ',abs(s):0:2);
writeln('le carree de ',s:0:2, ' est : ' ,sqr(s):0:4);
writeln('le racine carree de ',s:0:2, ' est : ' ,sqrt(s):0:4);
writeln('la partie fractionnaire de ',s:0:4, ' est : ',frac(s):0:4);
end.
program ex9;
uses wincrt;
var
ch1,ch2,ch3,ch4,ch:string;
begin write('entrer ch1 : ');
readln(ch1);
write('entrer ch2 : ');
readln(ch2);
write('entrer ch3 : ');
readln(ch3);
{ supposons q'on une chaine defenie par dfaut **
ch4:= ' pour faire du pascal';
{pour meilleur visbilit , on doit faire un espace **
ch:=concat(ch1,' ',ch2,' ',ch3,' ',ch4);
writeln('');
writeln('');
writeln(ch);
end.
program ex10;
uses wincrt;
var
ch1,ch2:string;
n:integer;
begin
write('entrer ch1 : ');
readln(ch1);
write('entrer la chaine chercher : ');
readln(ch2); n:=pos(ch2,ch1);
writeln('la position est : ',n);
end.
Serie 2
EX11:
ecrire un programme qui insert une chaine de caractère
dans une autre chaine de cractère à partir d'une position donnée .
ex:
ch1 : Honest Lincoln
ch2 : Abe
position : 8
------------> Honest Abe Lincoln
exe
EX12:
ecrire un programme qui elemine n caractere depuis la meme chaine
a partir de la meme chaine en donnant la position e le nnombre de caractere
exe
EX13:
ecrire un programme qui remplace une chaine de 4 caractère trouvé dans une autre chaine par des espaces. ex:
ch1 :ali baba va à l'ecole
ch2 :baba
--------> ali va à l'ecole
exe
EX14:
ecrire un programme qui compte le nombre de cractère d'une chaine puis l'afficher . ex:
ch : ali
n---> 3
exe
EX15:
ecrire un programme qui calcule le carré des nombres d'un entiers de 3 chiffre puis l'afficher.
ex:
123 ------> 1² + 2² + 3² = 14
exe
EX16:
ecrire un programme qui affiche l'unité,le dizaine,le centième,le millier
d'un entier. ex:
1524 ----------> m:1 c:5 d:2 u:4
exe
EX17:
ecrire un programme qui saisie une chaine de cractère puis affiche la longeur puis affiche le dernier caractete et le premier carctere.ex:
ch : ali baba fait du pascal
n : 23
ch[1]:a
ch[23]:l
exe
EX18:
ecire un programme qui lit une chaine de 3 caracter puis l'inverse.
ex: ali --------> ila
exe
EX19:
ecrit un programme qui lit un lit un entier de 3 chiffre puis l'inverse.
ex : 652 ------------> 256
exe
EX20:
ecire un programme qui affiche le quotient et le reste d'une division real sans utiliser ni DIV ni MOD.
ex : 7/3 = 2 et lereste est : 1
exe
program ex11;
uses wincrt;
var
ch1,ch2:string;
p:integer;
begin
write('donner un chaine : ');
readln(ch1);
write('donner une chaine inserer : ');
readln(ch2);
write('donner la position : ');
readln(p); insert(ch2,ch1,p);
writeln('la nouvelle chaine est : ',ch1);
end.
program ex12;
uses wincrt;
var ch:string;
p,n:integer;
begin
write('entrer une chaine : ');
readln(ch);
write('entrer la postion : ');
readln(p);
write('entrer le nombre de chaine eleminer : ');
readln(n);
delete(ch,p,n);
writeln('la nouvelle chaine est : ',ch);
end.
program ex13;
uses wincrt;
var
ch,ch2,rep:string;
p,n,x,l:integer;
begin
write('entrer une chaine : ');
readln(ch);
write('entrer la chaine eleminer : ');
readln(ch2);
x:=pos(ch2,ch); { x--------> postion de ch2 dans ch **
l:=length(ch2);
{ l --------> longeur de ch2 ** delete(ch,x,l);
rep:=' '; { 4 espace **
insert(rep,ch,x);
writeln('la nouvelle chaine est : ',ch);
end.
program ex15;
uses wincrt;
var x,c,d,u,s:integer;
begin
write('entrer un entier : ');
readln(x);
c:= x div 100;
d:= (x mod 100) div 10;
u:= x mod 10;
s:= sqr(c) + sqr(d)+ sqr(u);
writeln('');
writeln(c,' + ',u,' + ',d,' = ',s);
end.
program ex16;
uses wincrt;
var x,m,c,d,u:integer;
begin
write('entrer un entier : ');
readln(x);
m:=x div 1000;
c:= (x mod 1000) div 100;
d:= (x mod 100) div 10;
u:= x mod 10; writeln('');
writeln(' m : ',m);
writeln(' c : ',c);
writeln(' d : ',d);
writeln(' u : ',u);
end.
program ex17;
uses wincrt;
var ch:string;
l:integer;
begin
write('entrer une chaine : ');
readln(ch);
l:=length(ch);
writeln('');
writeln('longeur :',l);
writeln('ch[1] : ',ch[1]);
writeln('ch[',l,'] : ',ch[l]);
end.
program ex18;
uses wincrt;
var ch,ch2:string;
x:char;
begin
write('entrer une chaine : ');
readln(ch);
ch2:=ch;
{ pour conserver l'original por l'affichage **
x:=ch[1]; ch[1]:=ch[3];
ch[3]:=x;
writeln(ch2,' ----------> ',ch);
end.
program ex19;
uses wincrt;
var
n,c,d,u,x:integer;
begin write('donner un entier : ');
readln(n);
c:= n div 100;
d:= (n mod 100) div 10 ;
u:= n mod 10 ;
x:= u*100 + d*10 +c;
writeln('');
writeln(n,' --------> ',x);
{ on a pu faire une conversion de n vers type string l'aide de str(n) puis faire comme l'exercice 18 **
end.
program ex20;
uses wincrt;
var x,y,q,r:real;
begin
write('donner un entier : ')
;readln(x);
write('donner 2 me entier : ');
readln(y);
q:= trunc(x/y); { trunc : prendre que la partie entiere, frac prend le reste c..d aprs les virgules voir menu help,index**
r:= x - (q * y);
writeln(x:0:0,' / ',y:0:0,' = ',q:0:0);
writeln('le reste est : ',r:0:0);
end.