Pfe GC 0225
Pfe GC 0225
Pfe GC 0225
PROJ]~T
DE
FIl'J D'El'lJD:ES
1
TITRE: Œ>NCEPTION D'lIN LOGICIEL DE DI~SIONNEHENT DES POUfRES ET DALLES
ET FRANCAISE (BAEL.83)
CO·-DJRECTEUR,"'"'-: _
GENIE: CIVIL
=------
DA~'E: JUIN 1990
A mes Parents
A ma future épouse
i
REM E Rel E MEN T S
Monsieur EL HADJ MAMADOU THIAM qui n'a ménagé aucun effort pour la
qui nous ont donné les notions qui ont constitué des pré-requis à
ce projet.
et sossou Ludovic qui nous ont aidé pour l'arrangement des textes
et programmes.
ii
SOM MAI R E
référence.
iii
Table des matières
Pages
Dédicaces i
Remerciement ii
Sommaire ............................................... i i i
variables utilisées vii
Liste des figures et tableaux ix
Chapi tre 1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Chapitre II: Rappels des notions fondamentales du calcul
iv
log iciel . 15
3.1.1.2 Poutre en Té 28
3.1.1.3 Dalles armées selon une direction . 35
3.2.1.2 section en Té . 47
tendues . 48
tendues et comprimées . • . . . . . . . . . . . . . . . . . . . . . . 52
4.1 Organigrammes . 59
4.1.2 Programmes . 59
4.2.1 utilisation . 60
v
4.2.2.1.1 Poutre rectangulaire isolée 61
armée 63
continues 64
(Méthode forfaitaire) 65
logiciel 81
Annexes
vi
VARIABLES UTILISÉES (CAN3A23.3M84)
Dans la théorie Dans lelogiciel
f' c Résistance à la compression du béton FC
Contrainte calculée de l'acier FS
Limite d'élasticité de l'acier FY
Aire de l'armature tendue ASBD
Résistance à la traction du béton FR
Densité du béton GC
vii
VARIABLES UTILISÉES BAEL83 )
Coefficient de calcul AF
Coefficient de calcul MU
Coefficient de calcul BE
d Hauteur utile D
h Hauteur totale de la section du béton H
viii
Liste des figures et tableaux
Pages
Tableau 2.1 5
Tableau 2.2 8
Figure d.l.a 8
Figure d.l.b 9
Figure d.2.a 10
Figure d.2.b 10
Figure d.2.c 10
Figure 6.1 14
Figure a.1 15
Figure a.2 16
Figure b.1 20
Figure B.I.l.a 37
Figure B.I.l.b 41
Figure 2.a 43
Figure z .» 43
Figure a 47
Figure b 47
Figure c 47
Figure T.a 48
Figure T.b 48
Figure T.e 50
Figure T.f 50
Figure T.g 52
ix
Figure T.h 52
Figure T. i 52
Figure T. j 52
Figure D.1 57
x
Chapitre 1
INTRODUCTION
l'acier, par contre, y résiste très bien. D'où l'idée de placer des
\
\
1
Les développements de la science et de la technique, notamment
2
Chapitre II
3
ruine de l'ouvrage. Ces états limites sont relatifs à la limite:
éléments de l'ouvrage.
Nous avons:
les charges permanentes ( poids propre de la structure, des
4
Qi dans la norme française
dites d'accompagnement
charges de température
tableau suivant:
Tableau 2.1
probabilité. On distinguera:
5
_ les charges de service S ) qui constituent la somme de
l'équation:
l'équation
l'équation.
0.8.
S= D + )f(L+Q+T)
6
avec les notations suivantes:
à considérer est:
prendre en compte .
particulier par:
7
Tableau2 2 .
Code Canadien Code français BAEL83
M84
2.2.4.1) BETON
atteinte pour un
raccourcissement unitaire du
(Fig.d.1.o)
8
* Code français
Le diagramme en parabole
l
- .... '
" l -,
(droite 00 C F 1g . a . "l . o )
résistance
En pratique f c j = f c28 .
Le raccourcissement maximal du béton est limité à 3.5%<!f
* •
sous charges lnstantanées ( < à 24h ): Eij=11000f c j 1/3
Ev j=1/3E i j •
2.2.4.2) Acier
9
design particulier, choisir une
à un allongement unitaire de
(Art. 8 . 5 . 2) .
* Code francais
Ranas 1 1sseG et
fe ,- MA TYPES _ 1~3 et 4
TYPE 2
1 , 1" - ------ - - -
-ra
'(
o. 71'
1
1
1 1
1 1
o "fe/Es o 2516 0 10~o
10
*Lorsqu'une grande précision est recherchée on applique le
(E s=200.000 MPa).
N.B. Les règles BAEL 83 n'ont retenu que le diagramme 1. Mais ces
11
5 A la fibre externe comprimée du béton, le raccourcissement
unitaire maximal du béton €cà utiliser dans les calculs doit être
prise égale à
où ct>s=O. 85.
b) si €s>€y' la force dans l'acier doit être prise égale à
f' O.85t~·
l
b
~
JI) 0 sJ 0/2
d
___._L. v.----------- ----[-.-.. 8XQ r"liQutrQ
1'-,. T T
- -----1-----. ----.-.-----'--------_
Olagranrne o 1 agr arrrne
Section de rectangu 1 aire
reet des
poutre equlvalent
contraintes
C fig. -3-aJ
12
calcul, la distribution rectangulaire équivalente (Whitney) est
0 . 8 5 si f 1 ~30MPa
a=B" c avec B,. = 0 . 85 - 0 . 08 (c( f' - 30) /10 ) sans être
[ inférieure ~ 0.65 .
une droite, est supposé passer par l'un des trois points A, B ou
manière suivante:
armatures tendues;
la plus comprimée;
13
~
....
", -----('---
1 1 ~
1 1 iii
1 1
1
c
o
h d
A (Domaine 1).
O.2593d~y~h.
par: y~h.
14
chapitre III
LOGICIEL.
t i'------i
al
! f-----.J
l
C=O,85. rpc
f', .b.a
T
'----> >- - J
T= rps. As. f y
fig.a.1
[a. 3 ]
O,85·rpc· f'c· b
Calculons le moment résultant de la section :
a
As.fy
Mr = O,85.rps.fy (d - N.mm
[a. 4]
1,2.f'c.b
15
Le rapport de la section d'acier
est représenté par le symbole"
JAS"sur
.
la section du béton (b.d)
1= _A_ s_ _
[a. 5]
[a. G]
[a. 7]
On a Mr Kr.b.d' [a. 8]
b. d' [a.10]
Kr
Kr = Mpa [a.11]
b. d'
Conditions balancées
=====> Ecrasement
ECU = 0, 003
t
'b € Cil 0,003
1
=
d neutre d € cil + €y 0,003 + fy!2. la 5
Cb GOa
= [a.12]
d GOa + f y
GOa
cb ( ) .d [a.13]
GOa + f y
1G
La valeur de c b permet de positionner l'axe neutre aux conditions
dites balancées.
A l'état d'équilibre des déformations unitaires, on a
600
a = BI. c = BI ( ) •d [a.14]
600 + f y
[
c
BI = [a.15]
f' c - 30
0,85 - 0,08 ( ) sans être inférieur à 0,65
10
600
C = 0, 85 . 0, 6. f ' c. BI ) b.d [a.16]
600 + f y
T = o, 8 5 . A sb • f y [a.17]
Asb
fmax fb
b.d
- 600 f'
> fb = 0, 6 . BI ) . c
[a.19]
600 + f y fy
1,4
[a.20]
'min = f y
section balancée
N.B En B.A on préfère avoir des ruptures ductiles donc ,on fait
des sections sous-armées . Ceci permettra de se rendre compte
de grandes déformations qui précèdent la rupture.
17
Analyse Les dimensions et la quantité d'acier d'armature tendue
d'une section d'une poutre sont données. Il s'agit de
calculer le moment résistant Mr de cette section.
Procédure:
l ') a) On calcule
b.d
ti~ et t: lb =
2') On calcule a =
a
Mr = 0, 85 . As • f y (d - kN.m
2
d
1,5 < < 3 pour les poutres principales
b
18
* La profondeur pourra être calculée dans un premier essai à
partir du critère de la flèche.
( Norme Can3 .A23.3 M84 : Art 9.5.5.2 )
a = mm
a
Mr C/Js.As• f y (d - ) . 10- 6 kN.m
2
j. f y
Kr = O,85.{.f y (1 - MPa
l,2.f ' C
As approx mm •
C/Js·f y.O,9.d
600 f' c
!max = !b = 0, 6. B1 ( ).---
600 + f y
1,4
fmin =-
BI =
fIC - 30
0,85 - 0,08 ( ) < 0,65 pour f'c > 30 MPa
10
19
PROCÉDURE A SUIVRE POUR LE DESIGN.
de la poutre.
Krnouveau
KrOriginal
6 Calculer la section d'armature définitive et vérifier
l'espacement des barres.
b 6
•A 's
1
d r
h =
j As
•
'-----------J
1 • Asl
Tl
1èrepartie Déformation
fig.b.l unitaire.
20
Pour établir les formules on peut considérer les forces agissant
On a:
on a alors
f' s = E s e:' s < f y
e: ' s
=
0.003
> e: ' s =
0.003 (c - d' ) [b.l ]
c - d' c c
et
c - d'
f' s = Es·e:'s = E s · 0 . 0 03 [b. 2]
c
21
Le terme 0,85 ~c.f'c dans l'équation [b.4] tient compte du béton
remplacé par l'acier et compris dans Cl.
T, = As.O,85.f y = c, + Cz [b.7]
Remplaçons dans cette équation [b.7] , C, et Cz par leurs valeurs
tirées des équations [b.3] et [b.6], on trouve le relation.
c - d'
- 0.6f'c]
c
d'où l'on tire l'équation du second degré en c :
[b. 8]
8,. c c - d
Mr=O.85.0.6f'cB,cb(d - ----)+O.85A's[E s·O.003 -O.6.f'c] (d-d')
2 c
[b.10]
FORMULES SIMPLIFIEES.
On a alors f' s
et
De la figure b.1 on a
c, [b.11]
T, tP s • fy.A s'
C z = A' s ( tP s • f 's - O. 85. tP c • f ' c) [b. 12 ]
En négl igeant le terme 0.85. tPcf' c qui tient compte du béton remplacé
C z = tPs·fy.A's [b.13]
Tz = tP s • f y • A sz
23
Pour l'équilibre statique de la section
d'où a = [b.14]
De même
a a
Ml = T, ( d - = [b.16]
2 2
a
Mr = Ml + M2 = O,85f~s,(d - --) + O,85f~'s(d - d') [b.18]
2
bonne.
Asmax Asb
!max = et !b
b.d b.d
t ~=
On doit avoir Asb ( As' + As2 ) max
!max
b.d b.d
24
Yb est composée de deux parties La part ie 1, correspondant à As'
600 f' c
f, = f b = O. 6.8, (
600 + fy
) [b.19]
Posons l =
A' s
=>
As 2
JI( f s b - c1>c· f 'c
[b.21]
b.d b.d fy
-
d'où
i: = ~ ~+ 1/( f'sb c1>c. fIC
[b. 22]
fy fy
tx D=
= lb f,b + J:- f' sb
f
lb. 23]
y
être inférieur à ~ .
et f' s
[b.24]
25
*Procédure d'analyse pour poutre rectangulaire doublement armée :
1°) Calcul de :
-
f=
As
j~~ { = 0.6.8,. ( 600
)
f' c
b d b d 600 + f y fy
-
fb= lb + J/
2°) Vérification sur les conditions de rupture ductile
! lb
< ?
<
oui => Rupture ductile
0.6.8, .
d <fJ- f) \
Non:l'acier de compression
ne s'écoule pas.
4°) Calcul de MR
a
~ = 0.51.f'c.a.b ( b - ) + O. 85 • Ais. f y • ( d - d' )
2
avec a =
0.6.f'c
26
* DESIGN
armée sont presque les mêmes que ceux qui ont déjà été définis
poutre.
espacements.
27
3.1.1.2 Poutre en Té
sections en Té.
2) 24 * h f + bw
3)L'espacement entre les axes des poutres adjacentes.
2) 24 * h f + bw
2) 6 *h f + bw
28
0) Pour une poutre isolée, où la section en T est utilisée pour
de la table.
29
* Analyse du comportement de la section en T:
Simplement Armée
C =0.85<Psf'cbhf (c.T.I)
La force de traction dans l'armature tendue est donnée par:
T = <PsASfy (c.T.2)
Pour l'équilibre statique de la section ,on doit avoir:
C =T
donné par:
(c.T.4)
On a donc:
(c.T.5)
30
Lorsque l'aire de l'armature tendue inférieure As que contient la
section d'une poutre en T est pl us petite que l'a ire A s r éf ou lorsque
le moment pondéré Mr éf sollicitant la section est plus petit que
Mr éf, c'est-à-dire:
As2 •
31
Les forces agissant sur ces parties sont telles que:
On a:
C, =0.85<Pcf'cbwa (a.T.6)
T, =<PsAs' f y (a •T • 7 )
Cz=0.85<Pcf'c(b-bw)hf (a.T.8)
T z = <PsASZfy (a.T.9)
T, + T z = Cl + C z
T, + T z <PsAsfy
As = (a.T.11)
a= (a.T.12)
(a.T.13)
O. 6f' c (b-b w) h f
T2 = C2 (a.T.15)
32
En posant: ! = As/bwd et ff = Asz/bwd
O. 6f' c
On pose !max
On doit avoir:
600 fi
C
0.68, ( - - - - - - - -
= (a.T.17)
33
Asb
( l + ~ (a.T.18)
bwd
-
et tx i. = = !b + l (a.T.19)
d'où
1.4
2· ) *
f y
b
34
3.1.1.3) Dalles armées selon une direction.
petit côté, ces longueurs étant mesurées entre nus des appuis.
Méthodes de calcul
Une dalle pleine portant dans une direction se calcule comme une
les étriers.
de dalle.
35
* Pour une dalle d'une travée, simplement appuyée, si la charge
Cette portée ne doit pas dépasser la distance entre les axes des
(c'est tiré de la page 198 Réf N°l) .si les exigences de l'article
méthode de Cross.
36
3.2) Selon la norme Francaise (Règle BAEL 83)
3.2.1)Flexion simple
3.2.1.1.1)Simplement armées
1:'Y
-b b €b b' b
!"'
0.8 Y
1
h
1
d ~
. Fb
1-
1 a a'
F1
1 2 3
Figure (BIla)
F b =0.8*ob*b*y (a.1)
(a. 5)
Z=d-0.4*y=(1-0.4a)*d
====>M-0.8*ob*b*a*8*d'=0
37
or B=1-0.4a ====>M-0.8*ob*b*a(1-0.4a)*d'=0
d'où ~=0.8*a*(1-0.4*a) (a.7)
0.32*a'-0.8*a+~=0
* A a=0.2593 , ~= 0.8*a*(1-0.4*a)=0.1859=0.186 .
l'allongement Es de l'acier:
__
E 1000*E s_ = ---SJ.=.y d-a*d = l-a
s_ = ...QL
Eb Gb 3.5 Y a*d a
d'où A= M (a.lO)
o s *B*d
Les valeurs limites al ,El ~l BI sont définies ci-après.
tendues.
38
Poutres rectangulaires simplement armées ( Règles BAEL 83)
A= M
a s *B*d
M est en kN.m
b et d en cm
à b et as en MPa
A est en cm'
On a
fe (f e en MPa)
200*os
al = 3.5 = 700* Os
3.5+1000*E l 700*os+f e
39
*Procédure d'analyse:
2°)calculer f s et Os
4°)Calcul de a,B,~
*Procédure de design
1°) Calculer al ,f l ~l Bl
2°) Calcul de a,B,~
3°)calculer f s donc Os
~ > 0.480 ,auquel cas une solution ne comportant que des armatures
~ > ~l ' auquel cas une solution ne comportant que des armatures
40
Il Y a plusieurs méthodes pour déterminer ces armatures.
1 --
-b--+ b 3.5%.. B
--rO'd _ - Y=CXI'dI c
A'
= r A'
\d-o 'd) . ,. d
--- G
d d
+-.
A
t Al
1IIlIII
A2
_-
3
a
1 2
figure BIbl figure BIb2
De la figure BIb2 on peut écrire : A=A1+ A2 .
Le diagramme des déformations de la section réelle est
CX l = 3.5
3.5+1000*€l
=__
CX l.""*.".d:--..."o'-'....:*""'d"'-_ = 3.5/(3.5+1000*€ll-0'
d-d*cx l 1-3.5/ (3. 5+1000*€l)
= 3.5* (1-0' 1 -1000*€ l-'-'*-"o__
1000*€1
41
D'où
treillis soudés en fils lisses les valeurs obtenues pour 6' sont
moment fictif Mf 1=J.Ll *ob*b*d' lorsque ses armatures ont pour valeur
(b. 2)
(b. J)
résiduel
avons :
= A'* 0
~-
'
Os
42
Les armatures de la section réelle seront A' et A= Al+A2
(b. 5)
A' *----s-
0 1 (b. 6)
Os
_b
• b b' ,
-
6b
f ... 1~~ Fs - . ç-
i;I+Y
r
1
0.8
~
r
h d
Q l Fb
1 -
Fs
.1. fI
a
43
F s '=A' *0 s '
D'où
M+ 0.8*y*ob*b(0.4*y-o'*d) (b.7)
A =
(d-o'*d)* Os
(b.8)
t c f--~'l
l "--------' a
r J~
A 10%"
FORMULES FONDAMENTALES
1 ièr~éthode :
3
Mf' = 1J1*Ob*b*d2 *10-
3)/(BI*d*Os)
A, =(Mn*10
(avec Mf2<0.40*M )
*A , A' en cm"
2 ièmeMéthode
en kNm ;
* b, d, Y en cm
* ab' ,as'et as en MPa ;
*A , A' en cm"
cc'jaA = cGjaG
45
Pour les aciers autres que le type 2
(b.lO)
46
SECTION EN T:
résistance de la poutre.
y Il
(fig.a) (fig.b)
:'-b"":
a
- - - - - - 1 2 - - - - - - -..... - - - - - - - 1 1
1 ..
(fig.c)
47
3.2.1.2 ) SECTION EN T:
résistance de la poutre.
+----b-------it-
--
I-'----L-----'i- _ • - _ _....L..
(fig.a) (fig.b)
:-b"":
o
- - - - - - 1 2 - - - - - - - -...., ...
, ------11
(fig.c)
47
La largeur de hourdis à prendre en compte de chaque côté d'une
différentes.
d'une travée
rapproché
appui.
b
"
1
"
• fI-
A
-- - a T,
. - -
- ..
fig.T.a fig.T.b
48
Supposons que pour le moment Mo, la hauteur de la zone comprimée
soit ho.
ho ho
Mo - Fb ( d - = 0 d'où Mo = Fb ( d -
2 2
Par conséquent
ho
- si M ~ ab .b.ho ( d - ) ,seule une partie, ou la
2
hauteur utile d.
ho
- si M > ab b.ho ( d - ) une partie de la nervure est
2
alors :
49
ho
b ab
'"
tI r
"J~YI :j
-j
y d L 1
---*
~
Fs
a
fig.T.e fig.T.f
50
Posons:
Mn = M - i\. (b-bo) .ho. (d-ho/2) [T. 1]
y = ad;
Mn - O.Sab.bo.ad. (d-O,4.a.d) = 0
Mn - O,Sob.bod' .a. (1-0,4.a) = 0
Posons encore
Nous aurons
Ji. = a ( 1 - O.4a
Comme
et
d'où
Bd
A = [T. 3]
51
3.2.1.2.2) La section comporte des armatures tendues et des
armatures comprimées.
b ,
d
-
A'
-
l:l;lI --
A'
- - - -- ..
A
..
Al A2
1IlI:;;iI-
e's
Y=a. d
d
fig.T.j
52
Nous prendrons pour l'allongement des aciers tendus Es = El
3,5
al =
3,5 + 1000 El
à la hauteur ho de la table.
est :
al = 0,43B.
Al = [T. 5]
résiduel
53
armatures tendues. Comme le bras de levier a pour valeur d - 6'd
nous avons:
[T. 6]
d - 6'd
F' s Mf 2
A' = [T. 7]
a' s d- 6 'd ) a's
Fs Mf 2 a' s
A2 = A' [T. 8]
as (d-6'd)a s as
-lOOOa L f L + 3, 5a l
=> 6' :$
3,5
-lOOOa L f L
+ 3,5a l '
D'où
3,5
Conclusion
54
POUTRE EN T NE COMPORTANT OUE DES ARMATURES TENDUES
( Règle BAEL 83 )
FORMULES FONDAMENTALES.
3
Mo = Ob X b x ho ( d - hO/2 ) x 10-
+
B x d
A
M et Mn en kN.m
b 1 b o ho et d en cm
ab et as en MPa
A en cm'.
55
POUTRE EN T COMPORTANT DES ARMATURES TENDUES ET COMPRIMEES
( Règles BAEL 83 )
FORMULES FONDAMENTALES
3
Mf 2 X 10
A' =
( d - S'd ) a's
a' s
A = + A'
M , Mn ' Mf 2 en kN. m
b , bo ' ho et d en cm
a' s en MPa
A et AI en cm"
56
3.2.1.3) Dalles armées selon une direction.
__----'u ----JUL--__UL-- _
ly
lx ~
lfi g 0.1)
La dalle ne porte que dans un seul sens lorsque les deux conditions
lx
1°) Le rapport lx/ly est inférieur ou égal à 0,4 ~ 0,4)
ly
57
· lorsqu'une dalle continue peut être considérée comme·
on prend pour les moments dans chacune des travées les valeurs
suivantes :
Moment en travée =
10
-Plx'
Moment sur appuis =
16
les moments.
58
Chapitre IV
4.1.1°) Organigrammes
nous avons mis à l'annexe N°2 quelques organigrammes qui 'ont été
4.1.2°) Programmes
- Punit1: c'est un fichier qui est exploité par les autres fichiers
59
QRGRNIGRAMf1E C
s~r~~
<- fi ""IlLYSE
/
b"JP~d Wvv>12.é
( A Nf'lL:::lSf'
POUTRE
REC Tf\NGULfliRE SùYl'l ~.~ .
1 SOLE E PC..!li M éNSioNN~ MENT)
~~mvmu':
(tiMEWSi ONJVEM6 N T)
CONTiNUE·
NORME
59'
en Té simplement armées dans le code canadien;
4.2 0
) UTILISATION et POSSIBILITÉS DU LOGICIEL
4.2.1 0
) utilisation
60
4.2.2) Possibilités du logiciel
ou doublement armée
61
afin de respecter la règle de bonne pratique; au cas où il ne
une autre possibilité s'offre à lui de choisir tel que f;:.= 1<=
o. 85* ~. Après le choix du pourcentage d'acier, le programme est
à même de nous proposer des dimensions si nous le désirons en effet
62
dimensions sont généralement connues, le logiciel nous calcule
sélection.
-Poutre en Té isolée.
donne ses dimensions, mais dans tous les cas le programme vérifie
63
maximal d'acier), le logiciel nous précise que ce cas n~est pas
traité dans ce dernier.
grand moment on est sûr que les dimensions conviendront pour les
64
au plus grand moment qu'on avait donné . Tous ces moments sont
l'exécution.
"ÉCHAP".
N.S. Il est à noter que l'on peut avec cette option, dimensionner
moment nul
Méthode forfaitaire }
de travées est supérieur à 2 ,le logiciel exige d'une part que les
65
2 travées de rive soient identiques du point de vue portée et
mêmes portées aux nus des appuis .Cette limitation est due à un
aborder tous les points prévus dans le projet. Une fois les moments
qui trie le plus grand moment avec lequel il calcule les dimensions
Seules les dalles armées dans une direction sont traitées dans
dans une direction si son grand côté est supérieur ou égal à 2 fois
66
chaque moment pour une bande de 1000 mm. Pour chaque armature
sur imprimante.
N.B. Notons que l'on peut aussi utiliser cette option pour
67
uniquement sur les aciers autres que ceux du type 2 . L'acier du
68
4.3.1 ) EXEMPLES DANS LA NORME CANADIENNE (CAN3A23.3M84l
6:3;0 ~ 000
69
4.3.1.2)Dimensionnement de poutre rectangulaire simplement armée
70
4.3.1.3') Analyse de poutre rectangulaire doublement armée
e
* Exemple 4.7 de la page 75 du livre de ARAM sAMIKIAN (2 édition)
As =3500 mm' A' s=600 mm'
f' =30 MPa f y =400 MPa
DONNÉES: c
Hauteur utile 0=450 mm D' =61 mm
Largeur B=300 mm
CALCULER LE MOMENT RÉSISTANT Mr.
6()() .. 000
71
4.3.1 .4 ) Dime nsion neme nt de pout re recta ngul aire doub leme
nt
armé e
*Exe mple 4.9 de la page 79 du livre de ARAM SAMI
KIAN (2 e éditi on)
DONNÉES fI c =30 MPa f =400 MPa Larg eur B=35 0 mm •
y
51~52. 770
.29~ 1'''00
8. ooo
:=j61 7 .. 2~:'O
Arma 'll.\re f:on~ prlme e f1ece ssair e (~:!n mlTt2) 1 ~~~;97 " ~j?7
[l"l ë.ifrrE'tl' -e:- clE'~:' j ,' t-ft'
barf~e ~j C'
,\" .. tUF' ,. CompY" :i, m,?Eë 29 .. 900
fTfd ... c:
~~mbre Tota l de barre s d'Ac ier Cnmr) , . . i (nf: 2 .. 000
Nomb re de LITS pour l'Arl natur e Cornpt'~:i. m(~e 1
Arma tLlre COinp rimee Ch(~isj,R ( E'rl mm=~) 1404. ::;08
72
4.3.1.5)Dimensionnement de poutre en forme de T simplement armée
B=350 mm
~
._ - - - ---_ . _ - -- _. _- - - -- - --_
'-~"'._'"
FOUlhl fl
R~SULTATS F I N A L S . -
V•• 9•• '!••• ]
BI ••.••••••
•• - - . M •• _ M _ _ • • M ._. • .~ •• •• • •• •• • • • • • _ _. _•• _ . _ _ • • __ ...__ ••• •• _ .
73
4.3.1.6) Exemple de poutre continue (moment connu)
1[1_- !
,.
1 1
.
IlL
1
•
; 1 PI
1
Itl
8J~'M . 8)9"M
i
,""
+H.lJ 3 -~~O ~ 1.a ~1 - "94-) '3
fI c =30 MPa
SUIVANTE :
74
n:i:lH:t.*UH:t:rU:t***LES DIMEI'~SIO"m nET ENLIES F'C1UI~ TOUTE U; POUTHE SONT; U****UI
l'llt:141t:t:t.
SI DIAMETRE UNIFORME ON A
25.20 25.20 29.9(1
DIAME:TRE DES BARRES (mm)
SI DIAMETRE Dl FFERENT ON A :
PLUS GRAND DIAMETRE (mm)
o. (1() 0.00 0.00
NOM BRE DE BARRES DE GRAN D '{J
1) (1 o
PLUS PETIT DIAMETRE (mm) 0.(10 0.(1(> 0.00
(1 1) (1
NOMBRE DE BARRES DE PETIT '(J
1 1 1
NOM BRE DE LI TS :
SI DI#IETRE UNIFORME ON A
DIAMETRE DES BARRES (mm) 29.'}(l 25.20 25.20
SI DIAMETRE DIFFERENT ON A :
P LUS GRAN U m AM ET RE (mo) (>.0(1 0.00 0.00
1) ü (1
NOMBRE DE BARRE S DE GRAN 0 '{J
PLUS PETIT DIAMETRE (rom) 0.00 0.00. 0.00
NOMBRE DE BARRES DE PETIT 'fJ
(0 o o
1 1 1
N()-IBRE DE LITS :
4.3.1.7) Méthode forfaitaire
t r
Column line
6750
1/14
6875
1/10
7500
7000
T
7000
1/16 1/11
Factored moment
M, = w 1 L~ CM (kNm) 149.8 171.2 2486 161.1 234.3
Str enqth factor
K, = (M, 10G)/(bw d') (MPa) 2.65 3.04 4.40 2.85 4.15
Web reinforcement ratio fJw
trorn Table 2.18 except . (see 6. below) ('fo) 0.88 0.96' 166 0.89' 1.54
Are" of steel required A, (mm') 1478 1613 2789 1495 2587
Bar selection 3-No.25 4-No.25 6-No.25 3-No.25 6-No.25
SUIVANTE:
75
l' '1 ~I :.'l t l ~, ~ ~ li: lI'~, •• +~. ~~ 1:* ,t LES 0 ll'IEN~;J 1ClI",IS r~ETENUEG
1. +:1 :1 ~~ ~' ~I ~. ~' *
F'üUI~ TDIJTE IlA PDUTRE EiDNT: ****l *t:\::j. t
Lf'.HGEUH B <en mm) 50(1. ooo
Hi\I.ITEUn UT 1LE 0 (en mm) ~~~'~::6 .. 000
W,UTEUR rOH\LE MIN It11~LE '~O:J .. -t (J:~;
SI DIAMETRE UNIFORME ON A
DIAMETRE DES BARRES ('IU1!) 25.20 25.20 25.20
SI DIAMETRE UNIFORME ON A
DIAMETRE DES BARRES (mm) 25.20 25.20 25.20
SI DIAMETRE DIFFERENT ON A :
PLUS GRAND DIAMETRE (mm) 0.00 0.00 O.OCi
NCMBRE DE BARRES DE GRAND I/J o (1 o
PLUS PETIT DIAMETRE (mm) 0.00 (l.OO Ct.OC
Cl (1 (1
NCMBRE DE BARRES DE PETIT I{J
1 1 1
NCMBRE DE LITS :
4.3.1.8) Dalle portant dans une direction
fIe =30 MPa: f y =400 MPa .utiliser les barres N'lO (~=11.3 mm)
Les moments de Design et les résultats obtenus par le logiciel
t~PF'U 1 onu:r T
MOMENT (en KN.m) -4.00 6.B8 -10.b9
2
ACIER REQUIS (en mm ) 11'1.1:::: 1'7'B.IO 311.(~,~:j
DIAMETRE DES BARRES (mm) .t 1 • ;.;0 .t.I.;~;O 11. :::;(1
ESPACEMENT CALCULEE (mm) ~':;;90 ::'90 . 320
ESPACEMENT MAXI PERMIS (mm) 390 :::90 390
ARMATURE MINIMALE (rrrrn2 ) 260. (li) 260.00
lb
4.3.2) Exemples dans la Norme Francaise (BAEL83)
Tension
B=30 cm D= 71 cm
77
4.3.2.2) Dimensionnement de poutre rectangulaire armée
en tension et en compression
B=20 cm D= 43 cm D'= 4 cm
78
4.3.2.3) Dimensionnement de poutre en T armée en tension
79
4.3.2.4) Dimensionnement de poutre en forme de T armée en
tension et compression
C?O .. ()()()
HALITEUR TUTALE H (en cm)
HAUTEUR UTILE D (en cm) 1:-10"000
17~jO ..()OO
MOMENT POND~R~ M (en KN.m)
ARMATURE TENDUE REQUISE (en cm 2 ) :> 7t3.1E37
BO
4.3.3 ) INTERPRÉTATION DES RÉSULTATS ET LIMITES DU LOGICIEL
différences qui s'expliquent par le fait que dans les livres, pour
Ceci s'explique par le fait que dans le Handbook, les calculs à ces
81
1°) Au niveau de la norme française on aurait pu traiter le cas
soit rejetée par BAEL83, mais autorisée pour des cas exceptionnels.
aussi que les travées intérieures aient les mêmes portées. Comme
nous l'avons expliqué plus haut, cette limitation n'est pas due
82
Chapitre V
CONCLUSION ET RECOMMANDATIONS
plusieurs exemples.
pour les étudiants que pour les ingénieurs praticiens. Ceci à cause
et les états limites de service ... ) qui n'ont pas été abordé~dans
ce logiciel .
83
ANNEXE N°l
"",
: .'1\': v
< ,,:.:-'i.(': :'{.' ::'~.. ::.:~
Tableau 9-1 '.' F
i
Épa'ï'!;seur endessousde laquelle on doit calculer les i
;
r""
flèches des poutres non précontraintes ou dcc dalles
portant dans une direction, qui, ne supportent pas ou ne
~01"1f: p ~~, d}(&';,~ ;"~è (' ~~C:: cloiso ,l:'; (.~: ~ utes conr.tructlorr
.- . "- . . . .
. " "., ",.
Épaisseur minimale, h
Continues Continues
1 À appui à une aux deux En porte-
Pièces simple extrémité extrémités à-faux i
'.
Dalles pleines 1120 1/28 1/10
portant dans une
direction
Les valeurs de ce tableau doivent être utilisées directement pour les piéces en
béton de densité normale be :?: 2400 kq/rn '}, comportant de l'acier d'armature
de nuance 400. Dans d'autres conditions, on doit modifier les valeurs comme
suit:
a) dans le cas du béton léger et semi-Iéger, les valeurs du tableau doi .ent
être multipliées par (1.65 - 0.0003"e), (,'e étant la masse volumique en kÇ;/li1 3),
mais ne doivent pas être intérieures à 1.00: et
b) lorsque la valeur de f y diffère de 400 MPa. les valeurs du tableau doivent
être multipliées par (04i f/670)
'm"
.. ~
; ~ '.' .
Cepencant. dans la très grande majorité des ces c, ~,~ -;' >s -,
~. __.-:.. __ -~_. r:"--: l:?-.r,- ':- ....-~
[es valeurs obtenues par cette méthode pour les moments fléchissants des poutres SOnt
assez croches de celles qui seraient obtenues Dar ure enalvse elus ~y"C'o ~' -Ôz: , , ' 0'"
CC',: ~"s ces calculs laborieux.
el les éléments sont prismatiques, et les moments dï-er:'o ro, ,~ -:»: " 0 ' ,. , - - , " oc--,
les mêmes dans les différentes travées.
• La méthode consiste à donner des valeurs forfaitaires aux efforts trancbcnts et aux moments
fl-?chissants en travées et aux nus des appuis.
•
, -, ,,,r: 0.7, Cf'l"Hir:i'!nts C pour le calcul des moments f1échissal l c
,
,,1
';;':;>'~i?':::· ,. " 1
--1
S S 24
--------,L
,
+-
1"
.Loi • -
+..1.-
14
2 t: ces
~E
:.f ., C
.\
. ~,
"
...
..
· -~.
• 1
'
-;- ...., _... '. -_... ,
~'" ... -...
1
<~', .
.. ~~'" " ,,;-~i'·"-~"
espacement, des
.barres en nun
,
.
, 80 1250 2500 3750 6250 8750 12500·
100 lf100 2'JnD ~0. r"~· ()
..., ,' .... - "ro.f"! , ( , -;~ \
120·, .. 833 1667 25'00 4167 5831 8333
l
140,. 714 1429 2143 3571 5000 7143 1
160 i'~ . 625 125J 1 1875 3125 4375 625D '- 1
180 556 1111 ' 1667 2778 3889 5556
200 500 1000 1500 2500 3500 5000 .
"
·..J'440 ,' .'
r .. '227 . - ~ ',55:. 682 ' . 113fi 1591 2273 1 , . ,.
1 1512 217·j- .. ,.
. 1 .
' .. 652' ,.
" .~
..
• 480 208 417 1':'58 2083 ,1
, !
..
. _ .. "-
.
500'
- . ... ...... - .."
200
. ...
4CC' 600 . lOna
\L 1
1400 20CC '
. 1 _ 'I
'f
1
Tableau 9.1
"
1 !
'. "
' .....
. ','
~.
'..; .
'--
..
'
8G ;,~ ", . . {!-.
;:' .,./' J'
.. .... ",
,f
ANNEXE N°2
1
!i
j
1
1.
(CAN3 A.e3.3 M'l4-)
DEBUT
No,",
l)bOLLf\P-:- \ 0 1
®
1
l FfN J
90
, liE BUT)
11
~ ,
N- NfJ6
1
.- 1· ,~
"17
..-
."
..
9i
RGJlliJ~GRAMME CG,..
bEBuT
"(..D<l.)~
ASB.D-1. = PI 4-
PI ,;, ( b-1d~
4
x~- A<;BD-N1*,ASBJl.:I..
- F\Sr.,D~
N~ = INT(x.<J) +1
N~ -=
Nt·=+!
Ni -=.Nd.--:1
~-+-----l AR =
/'lift I\~M. -+ N·U ASI!>J).2,
FiN
1
AX :. ASBD - AR
N~ ~ q,·H.
AA,:NitA~eb(+ N-2rA5Bb~
I:/li = Al(/AS>~b1
NX1 = INT(EX1)
fiN
ORG-fW/GRÀMMé C].-1.: RcAAMû': k ,~ P.m1.b~ k R~tJL~1~ >I,.t·'/' L .4.t3.3)
- (CAN3A~3.j M~4-)
E'Y.l4,':., i
\EN&.Q'Y!.CfCC~)~LENBQ..
\JJ.IAh~_TI!LE.TP,.t';R(-) ~J~.E __'
\ l:>j~ M!:':TRL~OS.c;.IlANULATS__l-)~ .b Mft><
E5PA::: ESPA + ~
NON
NON
NLiT: 1.
,.. .r-:-:
\ p~ d/Esp«e-e-..t'
FiN
9S
ORC,,, N1CtRIl"'MCC- j:.J., -\j,-~/;e.at~&YV-~~~~~r~c.~--C~1.4)
(CAN3M3'~M84-)
;'VVCr<N: ISU&GE$T/ON
NON
tiN
,%
f---.------.--------~-.-- -,-- ._--._-..-~~
OR GfINi uR ftf1t1 é C - '3- -t '
NLO :: NI-t
NL.:: II\ff(NLO)
NLO!)~ N LO __ NL
-.
NL=NL+1 r
WON
NON
1·
ORGANiGRAMME F1: e"~Ll s. V~ ~~ k eaf0-~
Et) eXe) ~t e:} ~ ~
fit 1awv
(BAEL83)
~ cr- ~-e~ HA cL ~"- e
( bEBUT J
/~'~"'A U'C~/
~. AJ,..0 ~",-"eLOW'>
1
~
-1? ~s:: -1
"'ON
. NON ~?
~
t s -= ~) A.S
.
f e= ~e
.zoo 000 .:r iS's
t
3",5
c{r :: ( ~ 5 +;J coo.. é e)
i"
~e : A - 0)4:f o(e
't
~t:: <)8:1 C<e * ~e
t
l FÎt'i )
ORGRNiGRRMME f1 CJMJl 01/~.L~ 'p~J\/ ~ ~
)LQ JCI.Mf l..2C':'U>--1 c<J..M,.~ ~~vJ
(Bf\E L <iS 3)
Ô
e-: ;t€/vlft':' e-t1/
f
L" Se~ old-f èi... QM>,.u
R.-.. ~~ cl """"'
c"""1'"'~O-VU
FiN
ORGANiGRI1~/IME F3 ReJ?v~e- ck. RrL c~~;t rfs/
CpU\."" i, (tc~ (Ccci;,"", 1 œ....x cl.. tyr ~)
(BAEL~3)
( DEBUT)
+
.
( Fi N )
-1.00
ORGANiGRAtvWlE F4 CJvJ s: ~0> /~~ J 'rt::
dl Jv\'t,~ "-wte..",,-r~ ,
(BflEL 83)
DEBUT
u:
C~~
~JLO>v
C/"'-
rut ië-u.
i~~o....., ~~t.J
fIN
ORGANiGRAMf'llE f 5 CJe--J k ~~ ~~eA dM ,p~
e-, foVv>" oL, T Q~C~ ~il.<.~~ 01. ~~m../
l Dt. BUT)
•
, ~ NO, ..
ri, =
<::-1- M-~,«'
fT
01 s
.
"VS:: Te
2 1«s NI>N ((05
~<é.," -n . :
...
{ FiN)
-10<,
ORGANiGRf\MM[ Fb : (~ d/~JteA ~ d c~~
de ff7L~ i?/VV ,f~. k T ~ QM/
~ il f2ftV tC('}vv-~,
FIN
Ao3
ANNEXE N°3
* LISTING DU PROGRAMME
Liste des procédures et leurs fonctions
sur imprimante
sur écran
..104-
IMPRESSION_SANS_ESPACE_S_A_IMP Impression des résultats
diamètres différents
Reprise de dimensionnement
105
Sai si e_Rectang_Doubl ement_Armee Saisie des données
poutre rectanguLaire
simpLement armée
poutre rectangulaire
doubLement armée
simpLement armée
doubLement armée
forme de Té
Té (suite)
compression de La poutre en Té
-1.06
: Calcul de la largeur de la table
en Té simplement appuyée
symétrique continue
forme de Il l Il renversé
Détermination de largeur
section en Té
la section en Té
poutre en Té
dl impressîon
forfaitaire
forfaitaire
forfaitaire
continue
continue
poutre continue
Détermination de b et d dans le
connus
et moments connus
la dalle
poutre rectangulaire
simplement armée
poutre rectangulaire
simpLement armée
poutre rectangulaire
doubLement armée
armée
Afnor_Recherche_Contrainte_Compression_TE: Calcul de a' poutre T
FICHIERS PAGES
CAN3 A23.3M84
PUNIT1 -------------------------------------113
PUNIT2 -------------------------------------129
SYLVAIN -------------------------------------146
TE -------------------------------------150
CONTINU
DALLE
-------------------------------------156
---------------------------------~---182
AFNOR(BAEL83)-------------------------------------187
unit PUnitl;
INTERFACE
USES Crt,Printer,Dos;
TYPE
Windows RECORD
Ecran ARRAY[1 .• 25,1 •• 8DI OF Integer;
No_window Integer;
Lig
Col
Lig2
Col2 Integer;
Suivant PTR_WINDOW;
END;
VAR
B,GC,D,FY,HMINI,L,DENO,COEFY,COEFG,HMINIG,HMINIY,
HTOT,ROOO,AR,RDHINI,ROBBA,ASBD,A,A1,MR,
HTOT1,MFO,DO,FC,B1,KRMINl,KRMAX,R01,R02,
PAS,RO,MF,BD2,KR,RAP,N10,N3,DP,AS,ASP,ASBD1,
ASBD2,D1,D2,X1,X2,AR1,AR2,ENRO,DE,DMAX,DMAX1,
ESPA,NLO,NLOO,EQ1,EQ2,EQ3,DELTA1,DELTA2,
RAC1,RAC2,MFN,KRNV,ASNV,RONV,ART,D1T,DOT,ARC,
D1c,D2c,D2t,ECOULE,ROP,ROOl,AS1,ROB,M1,M2,DOC
Real;
Sortir_Boucle1,Sortir_boucle2,
Doublement,Continue,TE Soolean;
Tete_window Ptr_window;
Pointeur_heap "'Integer;
Ecran Word;
EcranS ARRAY[1 •. 80,1 .. 251 OF Integer;
no window1,no window2,
no=window3,no=window4 Integer;
Car,PDollar,DDollar Char;
Erreur,Appui,Veri,NLIT,NTLIT,NCLIT,VERIT,
VERIC
Integer;
N,N1,N2,NL,NT,NC,NC1,NC2,NT1,NT2 Real;
Mot STRING79;
Ch Char;
FUNCTION OUI:Boolean;
PROCEDURE CentrageHessage(message:STRING79;ligne:byte);
PROCEDURE ReverseVideo(Etat : Boolean);
FUNCTION Barre_Espacement : Boolean;
FUNCTION ValideR(Donnee:STRING;limiteinf,limitesup:real):boolean;
PROCEDURE LireReelxy(x,y:byte;limiteinf,limitesup:real;
VAR nombre:real);
PROCEDURE Cls(y1,y2:byte);
FUNCTION ReponseValide:booLean;
FUNCTION VaLideE(donnee:STRING79;limiteinf,limitesup:integer):booLean;
PROCEDURE LireEntierxy(x,y:byte;limiteinf,Limitesup:integer;
VAR Entier:integer);
PROCEOURE FastRite (Str:STRING79;ROw,Col,Attrib:byte);
FUNCTION Majuscule(ChSaisie: STRING79) : STRING79;
PROCEOURE Trouve_lg_Cur( VAR LONGUEUR_CUR : word);
PROCEOURE Curseur( SON_TYPE Char);
PROCEOURE Scroll( Coingl
Coingc
Coindl
Coindc
Nbligne Integer;
Sens Char;
Fond
Caractere Byte);
PROCEOURE Cadre(Lig,Col,Lig2,CoI2:lnteger;
Car Char;
Fond
Caractere Byte);
FUNCTIDN VaLideR(Donnee:STRING;limiteinf,Limitesup:real):boolean;
VAR chiffre:real;
BEGIN
val(donnee,chiffre,erreur);
IF«erreur=O) AND (chiffre>=limiteinf) AND
(chiffre<=limitesup» THEN
vaLideR:=true ELSE valideR:=faLse;
END;
PROCEDURE LireReelxy(x,y:byte;Limiteinf,limitesup:real;
VAR nombre:real);
PROCEDURE CLs(yl,y2:byte);
VAR i:byte;
BEGIN
FOR i:=yl TO y2 DO
BEGIN
GotoXY(l,i); clrEoL;
END;
END;
FUNCTION ReponseValide:boolean;
BEGIN
ch:=readkey;
IF ch IN ['O',lo','N','n') THEN reponsevalide:=true
ElSE reponsevalide:=false
END;
FUNCTION ValideE(donnee:STRING79;limiteinf,limitesup:integerl:boolean;
VAR chiffre:integer;
BEGIN
val(donnee,chiffre,erreurl;
IF«erreur=Ol AND (chiffre>=limiteinfl AND
(chiffre<=limitesupll THEN
valideE:=true ElSE valideE:=false;
END;
PROCEDURE lireEntierxy(x,y:byte;limiteinf,limitesup:integer;
VAR Entier:integerl;
VAR StrPtr:'STRING79;
BEGIN strptr:=ptr(seg(str),ofs(str»;
INLINE
(S1E/S1E/S8A/S86/row/SFE/SCS/SB3/S50/SF6/SE3/S2B/SOB/SBA/S9E/col/SFE/SCB
/S03/SC3/S03/SCO/SBB/SFS/SBA/SBE/attrib/SC4/SB6/strptr/S2B/SC9/S26/SBA/SOC
/S2B/SCO/SBE/SOS/SAO/S49/S04/S1F/S20/SC9/S74/S34/S2C/S07/S74/S21/SBA/SOO
/SBS/SBE/SOA/SBA/SOA/S03/S46/S26/S8A/S1C/SEC/SAS/S01/S75/SFB/SFA/SEC/SAS
/S01/S74/SfB/SB9/S1D/S47/S47/SE2/SEB/S2A/SCO/S74/S0F/SBA/SOO/SBO/SBE/SOA
/S46/S26/S8A/S1C/SB9/S1D/S47/S47/SE2/SF6/S1F/SfB);
END;
BEGIN
ChRes := I l ;
FOR i:= 1 TO Length(ChSaisie) DO
ChRes := ChRes + UpCase(ChSaisie[II);
Majuscule := ChRes
END;
VAR REG:registers;
BEGIN
REG.AX := 15*256;
Intr(16,REG);
IF Lo(REG.AX) IN [2,71
THEN LONGUEUR CUR := 13
ELSE LONGUEUR=CUR := 7;
END;
BEGIN
TROUVE_LG_CUR(LONGUEUR_CUR);
IIITH REG DO
BEGIN
AX := 256;
CASE SON TYPE OF
'l' : ëx := Round(LONGUEUR_CUR/2) *256 + LONGUEUR_CUR;
'M' : CX := 60*256 + 1;
ELSE CX:= (LONGUEUR_CUR-1)*256 + LONGUEUR_CUR;
END;
END;
Intr(16,REG);
END;
PROCEDURE ScrollC Coingl
Coingc
Coir1dl
Coindc
Nbl igne Integer;
Sens Char;
Fond
Caractere Byte );
VAR REG : regi sters;
BEGIN
IIITH REG DO
BEGIN
IF SENS 'H'
THEN AX := C6 * 256) + NBLIGNE
ELSE AX := C7 * 256) + NBLIGNE;
CX := (COINGL-1) * 256 + COINGC-1;
DX := (COINDL-1) * 256 + COINDC-1;
BX := (FOND*16+CARACTERE) * 256;
END;
Intr( 16, REG)
END;
PROCEDURE Cadre(Lig,Col,Lig2,Col2:lnteger;
Car Char;
Fond
Caractere Byte);
VAR NO_LlG ,
NO_COL Integer;
CAR_H
CAR_V Char;
BEGIN
TextColorCCARACTERE);
TextBackGroundCFOND);
GotoXY(COL,LIG);
IF CAR = 'S'
THEN BEGIN
IIrite(' r');
CAR H := '-'.
CAR:V:= Il; 1
END
ELSE BEGIN
IIriteC' r');
CAR H := '-'.
CAR:V := III;
END;
FOR NO_COL := COL+1 TO COL2-1 DO
IIrite(CAR_H);
IF CAR = 'S'
THEN IIrHe( ',')
ELSE IIrite('l');
FOR NO_LIG := LIG+1 TO LIG2-1 DO
BEGIN
GotoXY(COL,NO_LIG);lIriteCCAR_V);
GotoXY(COL2,NO_LIG);lIrite(CAR_V);
END;
GotoXY(COL,LIG2);
IF CAR = 'S'
THEN IIrite(' L,)
ELSE IIrite('L');
FOR NO COL := COL+1 TO COL2 -1 DO
IIritë(CAR_H);
IF CAR 'S'
THEN IIr tee ,J,)
ELSE IIr te('J');
END;
PROCEDURE Make_Window( LIG
COL
LIG2
COL2 Integer;
VAR NO_WINDDW Integer;
CADRE_AFF { ----------> 0000 0001 01 AFFICHE? }
FOND ( 0000 0010 02 DOUBLE? }
CARACTERE Byte );
VAR PTEUR
PREC
SUIVANT PTR_WINDDW;
NO_LIG
NO_COL Integer;
BEGIN
New(PTEUR) ;
PTEUR'.Suivant := NIL;
IF TETE_WINDDW <> NIL
THEN BEGIN
PREC := TETE_WINDDW;
SUIVANT := TETE_WINDDW;
WHILE SUIVANT <> NIL DO
BEGIN
PREC := SUIVANT;
SUIVANT := SUIVANT'.suivant;
END;
PTEUR'.NO_WINDDW := PREC'.NO_WINDDW+l;
PREC'.Suivant := PTEUR;
END
ELSE BEGIN
PTEUR'.NO_WINDDW := 1;
TETE_WINDDW :=' PTEUR;
END;
NO_WINDDW := PTEUR'.NO_WINDDW;
FOR NO_LIG := LIG TO LIG2 DO
FOR NO_COL := COL TO COL2 DO
PTEUR'.ECRANINO_LIG.NO_COLl := MEMWIECRAN:(NO_LIG-l)*160+(NO_COL-l)*21;
. SCROLL(LIG.COL.LIG2.COL2.0.'H'.8.15);
IF (CADRE_AFF AND 1) =1
THEN IF (CADRE_AFF AND 2) =2
THEN CADRE(LIG.COL.LIG2,COL2,'D',FOND,CARACTERE)
ELSE CADRE(LIG.COL.LIG2,COL2.'S',FOND,CARACTERE);
PTEUR'.LIG := LIG;
PTEUR A.LIG2 := LIG2;
PTEUR A.COL2 := COL2;
PTEURA.COL := COL;
END;
PROCEDURE Remove_Window( NO_WINDDW Integer);
VAR PTEUR •
PREC : PTR_WINDDW;
NO_LIG
NO_COL : Integer;
BEGIN
PTEUR := TETE_WINDDW;
PREC := TETE_WINDDW;
WHILE PTEURA.NO_WINDDW <> NO_WINDDW DO
BEGIN
PREC := PTEUR;
PTEUR := PTEURA.Suivant;
END;
IF PTEUR = TETE WINDDW
THEN TETE_WINDoW := PTEURA.Suivant
ELSE PRECA.Suivant := PTEURA.Suivant;
FOR NO_LIG := PTEURA.LIG TO PTEUR'.LIG2 DO
FOR NO COL := PTEURA.COL TO PTEUR A.COL2 DO
MEMWïECRAN:(NO_LIG-l)*160+(NO_COL-l)*21 := PTEUR'.ECRANINO_LIG.NO_COL1;
Dispose(PTEUR);
END;
PROCEDURE Initialise_~indow;
BEGIN
Mark(POINTEUR_HEAP);
TETE_~IND~ := NIL;
TROUVE_LG_CUR(ECRAN);
IF ECRAN = 13
THEN ECRAN := SBDDD
ELSE ECRAN := SB800;
END;
PROCEDURE Termine_~indow;
BEGIN
Release(POINTEUR_HEAP);
END;
BEGIN
~riteln(LST,' POUTRE RECTANGULAIRE DOUBLEMENT ARMEE ');
~riteln(LST,' x*x*x*x*x*x* RESULTATS FINAlSx*x*x*x*x '):
~riteln(LST);
~riteln(LST,' LARGEUR DE LA POUTRE B (en mm) -------------->',B:10:3);
~riteln(LST,' HAUTEUR UTILE 0 (en mm) -------------->',0:10:3);
~riteln(LST,' MOMENT PONDERE Mf (en KN.m) -------------->',MFO:10:3);
~riteln(LST,' ARMATURE TENDUE REQUISE (en mm2) -------------->',AS:10:3);
~riteln(LST,' ACIER COMPRIME (mm2) -------------->',ASP:10:3);
REPEAT UNTIL Barre_Espacement;
END;
BEGIN
ClrSCr; ReverseVideo(True);
Mot := ('POUTRE RECTANGULAIRE DOUBLEMENT ARMEE ');
CentrageMessage(Mot,7);
Mot :='RESULTATS FINALS :';
CentrageMessage(Mot,8);
ReverseVideo(False);
PROCEDURE CHOIX_PC_acier;
VAR
Sortir_boucle1,Sortir_boucle2 Boolean;
BEGIN
sortir_boucle1:=false;
sortir boucle2:=false;
ro1 :;;0. S*robba;
ro2:=0.6*robba;
REPEAT
clrscr; highvideo;
mot:='REGLE DE BONNE PRATIQUE: ';
CentrageMessage(mot.6); normvideo;
mot:='Choisir un réel (PAS) avec 0.S<=PAS<=0.6 ';
CentrageMessage(mot.11);
mot:=ltel que:ro=pas*robba afin dl lavoir:';
CentrageMessage(mot.12);
mot:=lune section économique. 1;
CentrageMessage(mot, 13);
highvideo;
mot:='Voulez-vous respecter cette règle?(O/N)';
REPEAT
GotoXY(1.1S);clrEol;
CentrageMessage(mot.1S);
UNTIL reponsevalide;
1Foui THEN
BEGIN
mot:='Entrez le réel (PAS) tel que:0.S<=PAS<=0.6';
CentrageMessage(mot.17);
LireReelXY(64.17.0.S.0.6.PAS);
ro:=PAS*robba;
END (*fin de THEN*)
ELSE
BEGIN (*du ELSE*)
sortir_boucle1:=true;
REPEAT
clrscr;
mot:=IPourcentage minimal dllacier =1;
CentrageMessage(mot.12);
Writeln(romîni:10:6);
mot:=IPourcentage maximal dl lacier =1;
CentrageHessage(mot, 13);
Writeln(robba:10:6);
GotoXY(1.1S);clrEol;
GotoXY(1.16);clrEol;
mot:='Entrez un pourcentage dllacier tel que:';
CentrageMessage(mot,lS);
mot:='romini <= ro <= Oa8S*robba ';
CentrageMessage(mot, 16);
GotoXY(6S,lS); readln(ro);
UNTIL(ro>=romini) AND (ro<=D.8S*robba);
END;{fin du ELSE}
sortir_boucleZ:=«rol<=ro)AND(ro<=roZ»;
UNTIL sortir boucleI OR sortir boucleZ;
kr:=D.8S*ro*fY*(1-(ro*fy)/(1.Z;fc»;
bdZ:=(mf*lE+6)/kr;
END;(*fin de PROCEDURE*)
BEGIN
Clrscr;
REPEAT
clrscr;
ReverseVideo(True);
mot:='REGLES DE BONNES PRATIQUES:';
CentrageMessage(mot,3);
ReverseVideo(False);
ReverseVideo(True);
MOT:='POUR POUTRES PRINCIPALES 1.S <= DIB <= 3 ';
CentrageMessage(MOT,S);
ReverseVideo(False);
ReverseVideo(True);
MOT:='POUR POUTRES SECONDAIRES 1.S <= DIB <= Z';
CentrageMessage(HOT,7);
ReverseVideo(False);
GotoXY(l,lD); clrEol;
mot:='POUR UN PREMIER ESSAI Entrez une valeur pour la largeur B (en mm):';
CentrageMessage(mot, 10);
LireReeIXY(74,1D,1,1E+1D,B);
D:=sqrt(bdZ/B); RAP:=D/B;
GotoXY(lZ,lZ); Write('LARGEUR (en mm) B=',B:l0:3);
GotoXY(lZ,14); Write('HAUTEUR UTILE (en mm) 0=',0:10:3);
GotoXY(lZ,16); Write('RAPPORT DIB =',RAP:l0:3);
HIGHVIDEO;
mot:='Les Valeurs de B et 0 vous Conviennent -elles? (O/N)';
REPEAT
GotoXY(l,18); clrEol;
CentrageMessage(mot,18); NORHVIDEO;
UNTIL reponsevalide;
UNTIL OUI;
mot:='DONNEZ la LARGEUR B (en mm) arrondie ou NON que vous avez retenue';
CentrageMessage(mot,ZO);
mot:='DONNEZ la HAUTEUR UTILE D(en mm)arrondie OU NON que vous avez retenue';
CentrageMessage(mot,ZZ);
lirereelxy«(80+length(mot» DIV Z)+Z,ZO, lE-l, lE+l0,B);
lirereelxy«(80+length(mot»DIV Z)+Z,ZZ, lE-l, lE+l0,D);
ASBD:=ro*B*D; Writeln;
Write('Section d"acier As(en mm') = ');
GotoXY(WhereX+Z,WhereY);
ReverseVideo(True);
Write(ASBD:l0:3);
ReverseVideo(False);
END;{Fin de la PROCEDURE)
BEGIN
ct rscr-,
GotoXY(20,10);Write('1. POUTRE SIMPLEMENT APPUYEE');
GotoXY(20,11);Write('2. POUTRE EN PORTE-A-FAUX');
CentrageHessage( 'Votre choix:1,2', 13);
lireEntierxy(60,13,1,2,appui);
CASE appui OF
1: deno:=16;
2: deno:=8;
ENO;
ENO;
BEGIN
clrscr;highvideo;
Mot:='TAPEZ (P) SI VOUS AVEZ TENU COMPTE DU POIDS PROPRE DE LA POUTRE';
CentrageHessage(mot,5);
mot:='DANS LE CALCUL DU MOMENT SI NON UNE AUTRE TOUCHE';
CentrageHessage(mot,7); Normvideo;
GotoXY(68,7>;
pdollar:=ReadOCey;
IF «pdollar <>'P')AND(pdollar<>'p'» THEN
MF :=1. 1*MF;
END;{Fin de la PROCEDURE)
BEGIN
cLrscr;
REPEAT
ReverseVideo(True);
~~~~m H: m~~m~: I~Kg: :~: :~; :~:; ~;: ; ~: ;:~:]-E~N~T~R~E;Z-L~E~S;-; D~O;N ~ ~E;S:-;SU~I~V~A~N~T;ES~ @·; ;g:; ê: : : g:i: ~: : g:.:.: ~: : :~: { ~ ~
ReverseVideo(False);
GotoXY(5,10); Write('La Resistance en compression du béton (en MPa)-----> ');
GotoXY(5,11); Write('La Contrainte de l"acier (en MPa) ----- -.-> ');
GotoXY(5,12); Write('La Masse volumique du béton(béton normal(2400K9/m3)->');
GotoXY(5,13); Write('La Portée de la poutre (en mm)···------------------> ');
GotoXY(5,14); Write('le Moment pondéré (en KN.m)--------·-···········--->');
li rereelxy(63 , 10,1E-10,1E+10,fc);
lirereelxy(63, 11, 1E'10,599,fy);
lirereelxy(63, 12, 1E1-10,1E+10,gc);
lirereelxy(63, 13, 1E-10,1E+10,1);
lirereelxy(63,14,'1E+l0,IE+l0,mfo);
Highvideo;
mot:='Voulez-vous corriger les données?(O/N)';
Normvideo;
REPEAT
GotoXY(I,16);clrEol;
CentrageHessage(mot, 16);
UNTIL reponsevalide;
UNTIL NOT oui; .
MF:=ABS(mfo);
END;{fin de la PROCEDURE)
BEGIN
~riteln(LST,' POUTRE RECTANGULAIRE SIMPLEMENT ARMEE ');
~riteln(LST,'x*x*x*x*xx* RESULTATS FINALS: x*x*x*x*x*x**x');
~riteln(LST);
~riteln(LST,'LARGEUR DE LA POUTRE B (en mm) -------------->',B:10:3);
~riteln(LST,'HAUTEUR UTILE D (en mm) -------------->',D:10:3);
~riteln(LST,'MOMENT PONDERE Mf (en KN.m) -------------->',MFO:10:3);
~riteln(LST,'ARHATURE TENDUE REQUISE(en mm2~ -------------->',ASBD:10:3);
REPEAT UNTIL Barre_Espacement;
END;
PROCEDURE IMPRESSION_SANS_ESPACE_S_A;
BEGIN
ClrSCr; ReverseVideo(True);
Mot := 'POUTRE RECTANGULAIRE SIMPLEMENT ARMEE ';
CentrageHessage(Mot,7);
Mot :='RESULTATS FINALS :';
CentrageHessage(Mot,8);
ReverseVideo(False);
GotoXY( 10, 10);~rite('LARGEUR DE LA POUTRE B (en mm) --------- ->1);
_._._._-- __ • __ >1);
GotoXY( 10,12);~rite('HAUTEUR UTILE D (en mm)
GotoXY( 10,14);~rite('MOMENT PONDERE Mf (en KN.m) --------- ->1);
GotoXY( 10,16);~rite('ARHATURE TENDUE REQUISE (en mm') --------- ->1);
ReverseVideo(True);
GotoXY(70,10);~rite(B:10:3) ;
GotoXY(70,12);~rite(D:1D:3) ;
GotoXY(70,14);~rite(MFO:1D:3)
GotoXY(70,16);~rite(ASBD:1D:3)
ReverseVideo(False);
REPEAT UNTIL Barre_Espacement;
ClrScr; ReverseVideo(True);
MOT:=('VOULEZ-VOUS AVOIR LES RESULTATS SUR IMPRIMANTES? (O/N)');
REPEAT
GotoXY(1,15); ClrEol;
CentrageHessage(MOT,15);
Until REPONSEVALIDE;
IF OUI Then IMPRESSION_SANS_ESPACE_S_A_IMP(b,d,MFO,asbd);
HaIt;
END;
PROCEDURE affichage_apres_calcul_d_armature;
VAR ch:integer;
BEGIN
Clrscr;
CentrageHessage('La Section d' 'acier (en mm2) ',5);
ReverseVideo(True);
GotoXY(55,5);
~rite(ASBD:10:3);
ReverseVideo(False);
GotoXY(10,10);~rite('1. VOUS VOULEZ D~TERMINER LE NOMBRE DE BARRES
ET VERIFIER L' 'ESPACEMENT');
GotoXY(10, 11);~rite('2. VOUS D~SIREZ VOUS ARRETER AU CALCUL D"ARMATURE');
mot:='FAITES VOTRE CHOIX-->(1 ou 2)';
CentrageHessage(mot,13);lireEntierxy(60, 13, 1,2,ch);
CASE ch OF
1: exit;
2: BEGIN
IF Doublement=true THEN IMPRESSION_SANS_ESPACE_D_A( b,d,dp,as,asp,mfo)
ELSE IMPRESS 10N_SANS_ESPACE_S_A(b,d,mfo, asbd);
END;
END;
END;(*fin de la PROCEDURE*)
PROCEDURE nbre_de_barres_de_meme_diametre;
BEGIN
Nl0 :=(4.0*ASBD)/(PJ*sqr(DO»;
NZ :=INHN10);
N3 :=Nl0-NZ;
IF N3<O.OOl THEN N:=NZ
ElSE N:=NZ+l;
AR:=(PI*N*sqr(OO»/4.0;
END;
PROCEDURE nbre_de_barres_de_diam_differents;
VAR
Af,AX,NX1,EXl REAL;
BEGIN
asbdl:=(pi*sqr(dl»/4.0; asbdZ:=(pi*sqr(dZ»/4.0;
xl:=asbd/asbdl; nl:=int(xl);
xZ:=(asbd-nl*asbdl)/asbdZ; nZ:=int(xZ); NZ:=NZ+l;
ar:=nl*asbdl+nZ*asbdZ;N:=Nl+NZ;
IF ar<asbd THEN
BEGIN
ClrScr;
GotoXY(15,15);Write('ATTENTION ');Repeat Until Barre_Espacement;
End;
arl:=ar+asbdl-asbdZ; arZ:=ar+asbdZ;
IF arl>arZ THEN AF:=ARZ
ElSE AF:=AR1;
IF ar<AF THEN EXIT;
IF Nl<=l THEN Exit;
BEGIN
While (AR>=AF) ANO (Nl>l) Do
Begin
nl:=nl-l; nZ:=nZ+l; N:=Nl+NZ;
ar:=nl*asbdl+nZ*asbdZ;
END;
END;
IF AR>=ASBD THEN EXIT;
BEGIN
AX:=(ASBD-AR);
If ax<=asbdZ
Then
begin
nZ:=nZ+l; N:=Nl+NZ;
ar:=nl*asbdl+nZ*asbdZ; exit;
end
Else
If AX<=asbdl
Then
begin
Nl:=nl+l; N:=Nl+NZ;
ar:=nl*asbdl+nZ*asbdZ; exit;
end
Else
Begin
EX1:=ax/Asbdl; Nxl:=INT(EX1);
IF (exl-nxl)<O.OOl
Then
Begin
Nl:=Nl+NX1; N:=Nl+NZ;
Ar:=nl*asbdl+nZ*asbdZ;
End
Else
Begin
Nl:=Nl+NX1+1; N:=Nl+NZ;
Ar:=nl*asbdl+nZ*asbdZ;
End;
END;
END;
END;(*Fin de la PROCEDURE*)
PROCEDURE Choix_Des_Diametres;
BEGIN
01:=0; D2:=0;DO:=0;N1:=0;N2:=0;N10:=0;N:=0;
ddollar:='N' ;
REPEAT
mot:='Voulez-vous les barres de même diametre ? (O/N)';
GotoXY(1,15);clrEol;
CentrageMessage(mot, 15);
UNTIL reponsevalide; IF ou; THEN ddollar:='O';
IF Cddollar='o') OR Cddollar='O') THEN
BEGIN
GotoXY(5, 17);~rite('Donnez le diamètre que vous désirez utiliser (en mm):');
lirereelxyC60,17, 1, 100000,dO);
Nbre_De_barres_de_meme_diametre(dO,asbd,n,ar); Exit;
END
ELSE
. BEGIN
highvideo;
GotoXY(5, 17);~rite('Vous pouvez utiliser au maximum 2 diamètres différents.');
normvideo;
REPEAT
GotoXY(10,18);~rite('ENTREZ LE DIAMETRE LE PLUS GRAND ');
GotoXY(10, 19);~rite('ENTREZ LE DIAMETRE LE PLUS PETIT ');
l irereelxy(70, 18, 1,10001,d1);
l irereelxYC70, 19, 1, 1E+4,d2);
UNTIL d1>d2; dO:=d1;
nbre_de_barres_de_diam_differents(d1,d2,n1,n2,asbd,ar,n);
END;{fin de ELSE}
END;{fin de la PROCEDURE}
PROCEDURE rappels_enrobage;
BEGIN
clrscr; highvideo; mot:='RAPPELS IMPORTANTS:'; CentrageMessage(mot, 10);
mot:='R~SUM~ DES NORMES SUR L"ENROBAGE MINIMAL (CAN3M84)';
CentrageMessageCmot,11);
GotoXY(5, 13);~riteC'1. POUTRES ET POTEAUX------------------------->40mm');
GotoXY(5, 14);~ritec'2. DALLES MURS ET DALLES NERVUR(ES------------>20mm');
GotoXYC5, 15);~rite('3. B~TON MIS EN PLACE DIRECTEMENT SUR LE SOL-->75mm');
normvideo:
END;
PROCEDURE calcul_espacement_reel;
VAR ch:char;
BEGIN
rappels_enrobage;
REPEAT
CLS(17,20);
NormVideo;
GotoXY(10, 17);~rite('Entrez Enrobage Cen mm)');
GotoXY(10, 18);~rite('Entrez le Diamètre des étriers Cen mm)');
GotoXY(10, 19);~rite('Entrez le Diamètre des Gros Granulats (en mm)');
lirereelxy(65, 17,0.20, 10000,enro);
lirereelxy(65, 18, 1E-10, 1E+4,de);
lirereelxyC65, 19, 1E-10, 1E+4,dmax);
highvideo;
REPEAT
GotoXYC1,20);clrEOl;
CentrageMessage('VOULEZ-VOUS FAIRE DES CORRECTIONS (O/N) ',20);
UNTIL reponsevalide; NormVideo; UNTIL NOT OUI;
If N=1 Then
Begin
If Cb-2*enro-2*de-n*DO) >0 Then
begin espa:=100 ; DMAX1:=C4*dmax)/3
exit; end;
END;
ESPA:=(b-2*enro-2*de-n*dO)/Cn-1); DMAX1:=C4.0*dmax)/3;
END;{fin de la PROCEDURE}
PROCEDURE verif_espacement_sur_2_lits;
BEGIN
veri:=O;
nlo:=n/2; nl:=int(nlo); nlod:=nlo-nl;
IF nlod>=D.Ol THEN nl:=nl+l;
ESPA:=(b-2*enro-2*de-nl*dO)/(nl-l);
ESPA:=ESPA+2;
IF«espa>=dO) AND (espa>=2S) AND (espa>=DMAX1» THEN
BEGIN
HTOT:=d+enro+de+12.S+dO;
nlit:=2;
END
ELSE
BEGIN
highvideo; clrscr;
CentrageHessage('MEME AVEC 2 LITS ON A PROBLEME D"ESPACEMENT',S);
normvideo; veri:=1;
END;
ENO;{fin de la PROCEDURE)
BEGIN
clrscr;highvideo;
CentrageHessage('IL FAUT ARMER DOUBLEMENT',S);
REPEAT UNTIL Barre_Espacement;
normvideo;
IF continue=false THEN
BEGIN
GotoXY(S. 10);~rite('RETOURNER AU MENU POUR LE CHOIX D"OPTION ');
REPEAT UNTIL BARRE_ESPACEMENT;
HALT;
END
ELSE
BEGIN
highvideo;
CentrageHessage('DANS CE LOGICIEL LE DIMENSIONNEMENT N"EST PAS FAIT ',10);
CentrageHessage('POUR LES POUTRES CONTINUES ET EN Tl DOUBLEMENT ARMlES' , 12);
CentrageHessage('CHANGEZ ALORS LES DIMENSIONS DE LA POUTRE', 15); normvideo;
REPEAT UNTIL BARRE_ESPACEMENT;
END;
HALT;
END;
BEGIN
kr:=(lE+6*mf)/(b*sqr(d»;
IF kr<=krmini THEN
BEGIN
ro:=romini: asbd:=ro*b*d; exit;
END
ELSE
IF kr>krmax THEN c_1S_l
ELSE
BEGIN
eql:=O.8S*sqr(fy); eq2:=-1.02*fc*fy; eq3:=1.2*fc*kr;
deltal:=sqr(eq2)-(4.0*eql*eq3);
IF deltal<O THEN c_1S_l
ELSE
BEGIN
delta2:=sqrt(deltal);
rac1:=(-eq2-delta2)/(2.0*eq1);
rac2:=(-eq2+delta2)/(2.0*eq1);
IF rac1<romini THEN ro:=rac2
ELSE
IF rac1<=robba THEN ro:=rac1
ELSE ro:=rac2;
ENO;
ASBO:=ro*b*d;
END;
END;
BEGIN
ESPA := ESPA + 2;
IF «ESPA >=00) AND (ESPA >= 25) AND (ESPA >= DMAX1» THEN
BEGIN
HTOT := 0 + ENRO + DE + (00/2);
NLIT := 1;
END
ELSE
BEGIN
HighVideo;
Mot:=' PROBLEME D"ESPACEMENT ';
CL rScr;
ReverseVideo(True);
CentrageMessage(Mot,5);
ReverseVideo(False);
NorrnV;deo;
END;
END;
PROCEDURE Calcul_du_Moment_Resistant;
BEGIN
A := (AR*FY)/(0.6*FC*B);
A1 := (D-A/2)*1E-6;
MR := 0.85*AR*FY*A1;
END;
PROCEDURE Presentation;
BEGIN
cLrScr;
Cadre(2,2,24,78,'D',BLUE,RED);
FastRite (' ECOLE POLYTECHNIQUE DE THIES 1,4, 4,45);
FastRite (' PROJET DE FIN D"~TUDE 1,7, 4,10>;
FastRite ('TITRE: LOGICIEL DE DIMENSIONNEMENT EN B~TON ARM~ , ,13,4,10);
FastRite ('NORME CANADIENNE(CAN3A23.3M84) et
NORME FRANçAISE (Règles BAEL83)',14,4.10);
FastRite ('Auteur Mr SYLVAIN MEDARD ADJAGBONI , ,20,4,12);
FastRite ('Directeur du Projet: Mr El Hadj MAMADOU THIAM ',22,4,12);
Repeat Until BARRE_ESPACEMENT;
END;
END.
Uni t Punit2;
INTERFACE
USES Crt,Printer,PUNIT1;
PROCEDURE Verif_Espacement;
PROCEDURE H_2_Espacement;
PROCEDURE C_ll_l_Verif_HTOT;
PROCEDURE H_l_Espacement;
PROCEDURE Oimensionnement_Repris_Espace_HMINI;
PROCEDURE C 11 2 Oim Repris HTOT;
PROCEDURE H-3 Haüteur Totalë;
PROCEDURE Vërjf Poids-Propre(VAR mfn,krnv,kr,asnv,ronv:REAL);
PROCEDURE c_14_Z-PQids-propre;
PROCEDURE Calcul de HMINI(VAR hmini:REAL);
PROCEDURE Verif_Ou_PC_RodO_Rupture_Ductile(VAR rodO:REAL);
PROCEDURE C_13_2_0uctilite;
PROCEDURE Calcul_de_o_connaissant_H(VAR htotl,d:REAL);
PROCEDURE Hauteur Totale OU Utile;
PROCEDURE C_17_D_,mpression;
PROCEDURE Saisie_Des_Donnees_Dim_Con(VAR fC,fy,gc,l,mfo,mf,b:REAL);
PROCEDURE C_17_1_lmpression;
PROCEDURE Saisie_Rectang_Doublement_Armee( VAR dp,b,fc,fy,mfo,mf:REAL);
PROCEDURE CALCUL_DE_Ml(VAR AS1,Ml:REAL);
PROCEDURE Acier_Comprime_tendu(VAR M2,ASP,AS:REAL);
PROCEDURE Ecoulement_Meme(VAR MR:REAL);
PROCEDURE C_22_LES_PC_D_ACIER( VAR RO,ROP,ROB,RDDI:REAL);
PROCEDURE Ecoulement_Acier_Compression;
PROCEDURE C_25_1_A;
PROCEDURE C_25_1_B;
PROCEDURE C 25 1 C;
PROCEDURE C:25:1:D(DL:Byte);
PROCEDURE C_25_2_A(DL:Byte);
PROCEDURE C_25_3_A;
PROCEDURE C_25_1;
PROCEDURE C_25_2;
PROCEDURE C_25_3;
PROCEDURE C_25_4;
IMPLEMENTATION
PROCEDURE Verif_Espacement;
VAR
Key : 1nteger;
BEGIN
ClrScr;
HighVideo;
ReverseVideo(True);
CentrageMessage('PROBLEME D"ESPACEMENT AVEC LES VALEURS SUIVANTES ',2);
ReverseVideo(False);
Gotoxy(15,3); ~rite('La section d"acier (en mm') ',asbd:l0:3);
GotoXY(15,4); ~rite('La largeur B en mm est ',B:l0:3);
GotoXY(15,5); ~rite('Le nombre total de barres est ',N:l0:0);
GotoXY(15,6); ~rite('Le plus grand diamètre de barre est: ',00:10:3);
NormVideo;
ReverseVideo(True);
CentrageMessage(' r---------------------....,' 9)·
CentrageMessage( 1 1 1.: 10);
CentrageMessage( 'tUTt WiTtm) it SUGGESTION ' , 11);
ReverseVideo(False);
Cadre(12, 10.20,70.'B',2, 14);
ReverseVideo(True);
GotoXY(12,13); ~rite('l. FAIRE 2 LITS 1 );
ReverseVideo(False);
CentrageMessage('FAITES VOTRE CHOIX .. > (1, 2 ou 3l ',19l;
LireEntierXY(62,19,1,3,KeYl;
DeLay(600l;
CASE Key OF
1: BEGIN
Verif_Espacement_Sur_2_Lits(VERI,nLit,htotl;
IF Veri = 1 THEN
BEGIN
ReverseVideo(Truel;
CentrageMessage( 'IL FAUT CHOISIR UNE AUTRE SOLUTION ',12l;
END;
REPEAT UNTIL Barre_Espacement;
END;
2: BEGIN
CLrScr;
Choix des Diametres(ddoLlarl;
ESPA :=(B-' 2*ENRO . 2*DE - N*DOl/(N-1l;
Verif_Espacement_Sur_Un_Lit(espa,dO,dmax1,htot,nLitl;
IF ESPA >= DHAX1 THEN Exit;
Verif Espacement Sur 2 Lits(veri,nLit,htotl;
IF Veri <> 1 THEM Exit;
CLrScr;
RerseVideo(Truel;
GotoXY(10, 11l;~rite(' 'l;
GotoXY(10,12l;~rite(' AVEC CETTE ÀUGMENTATION DU DIAMETRE DES BARRES ON 'l;
GotoXY(10,13l;~rite(' A PROBLEME D' 'ESPACEMENT MEME AVEC 2 LITS 'l;
GotoXY(10,14l;~rite(' l 'l;
GotoXY(10,15l;~rite(' 'l;
ReverseVideo(FaLsel;
GotoXY(11, 14l;~rite(' FAITES ALORS UN AUTRE CHOIX OU AUGMENTER LE DIAMETRE 'l;
REPEAT UNTIL Barre_Espacement;
END;
3: BEGIN
CLrScr;
ReverseVideo(Truel;
CentrageMessage(' REPRISE DU DIMENSIONNEMENT ',12l;
REPEAT UNTIL Barre_Espacement;
IF «DOUBLEMENT=Truel OR (CONTINUE=TRUEl OR (TE=Truell THEN
BEGIN
CLrScr;
GotoXY(10,10l; HighVideo;
~rite(' RETOUR Au MENU POUR RECOMMENCER AVEC D' 'AUTRES DIMENSIONS'l;
REPEAT UNTIL BARRE_ESPACEMENT;NormVideo; HALT;
END
ELSE
BEGIN
Dimensions_Poutre_Section_Acier(b,d,rap,asbd,rol;
Choix Des Diametres(ddoLlarl;
ESPA :=(B-' 2*ENRO - 2*DE - N*DOl/(N'1l;
Verif_Espacement_Sur_Un_Lit(espa,dO,dmax1,htot,nLitl;
IF ESPA >= DHAX1 THEN Exit;
Verif_Espacement_Sur_2_Lits(veri,nLit,htotl;
IF Ver; <> 1 THEN Exit;
CLrScr;
ReverseVideo(Truel;
GotoXY(10,11l;~rite(' 'l;
GotoXY(10,12);~rite(' MALGRE L"AUGMENTATION DE LA LARGEUR ON A PROBLEME 'l;
GotoXY(10,13);~rite(' D"ESPACEMENT SUR UN LIT ET MEME SUR DEUX LITS 'l;
GotoXY(10.14);~rite(· ');
GotoXY(10.15);~rite(' ');
ReverseVideo(FaLsel;
GotoXY(11.14l;~rite(' AUGMENTER ALORS LE DIAMETRE OU LA LARGEUR DES BARRES ');
END;
END;
END; { Du CASE Key OF }
END; {Verif_Espacement }
~30
PROCEDURE H_2_Espacement;
BEGIN
ClrScr;
Gotoxy(10,5);~rite('Section d"acier (en mm ')=',asbd:l0:3);
Choix_des_Diametres(ddollar);
Calcul_Espacement_Reel(enro,de,dmax,espa,dmaxl);
Verif_Espacement_Sur_Un_Lit(espa,dO,dmaxl,htot,nlit);
IF ESPA < DMAXI THEN
REPEAT
VERIF_ESPACEMENT;
UNTIL «ESPA >=DMAX1) AND (ESPA >=00) AND (ESPA >= 25»;
END;
PROCEDURE C_ll_l_Verif_HTOT;
BEGIN
ClrSCr;
ReverseVideo(True);
GotoXY(10, 10); ~rite(' Hauteur Totale (en mm) ',HTOT:12:3);
GotoXY(10, 11); ~rite(' Hauteur Minimale (en mm) ',HMINI:12:3);
ReverseVideo(False);
IF HTOT < HMINI THEN
CentrageMessage('La Hauteur totale n"est pas conforme
aux exigences de la norme ',14);
END;
PROCEDURE H_l_Espacement;
BEGIN
H_2_Espacement;
C_ll_l_Verif_HTOT;
END;
PROCEDURE Dimensionnement_Repris_Espace_HMINI;
BEGIN
~HILE HTOT < HMINI DO
BEGIN
ClrScr;
ReverseVideo(True);
CentrageMessage('Augmenter les dimensions de section de béton ',15);
ReverseVideo(False);
Dimensions_Poutre_Section_Acier(b,d,rap,asbd,ro);
H_l_Espacement;
END;
END; { Dimensionnement_Repris_Espace_Hmini }
PROCEDURE C_ll_2_Dim_Repris_HTOT;
BEGIN
ReverseVideo(True);
CentrageMessage('REPRISE DU DIMENSIONNEMENT CAR Htotale < Hminimale ',16);
ReverseVideo(False);
REPEAT UNTIL Barre_Espacement;
Dimensionnement_Repris_Espace_Hmini;
END;
PROCEDURE H_3_Hauteur_Totale;
BEGIN
IF HTOT < HMINI THEN
C_ll_2_Dim_Repris_HTOT;
END;
~31
PROCEDURE Verif_Poids_Propre;
VAR
Key : Integer;
BEGIN
Calcul_du_Moment_Resistant(Al,A,MR);
IF (PDollar = 'P')OR(pdollar='p') THEN Exit;
IF Appui = 1 THEN
MFN := (MF/l.l) + (1.25/8)*(B*HTOT*2400*9.81*Sqr(L)*lE-15);
IF Appui = 2 THEN
MFN := (MF/l.l) + (1.25/2)*(B*HTOT*2400*9.81*Sqr(L)*lE-15);
IF MR >= MFN THEN
BEGIN
MF := MF Il.1; CLS(10,14); ReverseVideo(True);
GotoXY(10,ll);Write(' ');
GotoXY(10,12);Write(' LA SECTION CHOISIE PRENDBIEN LE POIDS PROPRE AUSSI ');
GotoXY(10,13);Write(' ');
REPEAT UNTIL Barre_Espacement;
ReverseVideo(False);
Exit;
END;
KRNV:= (MFN*lE+6)/(B*D*D); KR:=KRNV; Calcul_Acier_B_Et_D_Connues(kr,ro,asbd);
ASNV:= ASBD; RONV := RO; Cls(10,15); HighVideo;
GotoXY(10,ll);Write(' ');
GotoXY(10,12);Write(' LA SECTION N' 'EST PAS AD~QUATE FACE AU POIDS PROPRE ');
GotoXY(10,13);Write(' LA SECTION D' 'ACIER QU"IL NOUS FAUT EST (en mm'): ');
GotoXY(10,14);Write(' ');
NormVideo;
ReverseVideo(True);
GotoXY(59,13);Write(ASNV:l0:3);
REPEAT UNTIL Barre_Espacement;
ReverseVideo(False);
Cls(2,10);
Cadre(3,3,9,76,'H',2,15);
ReverseVideo(True);
GotoXY(5,5); Write(' 1- Augmenter la section d"armature ');
GotoXY(5,6); Write(' 2- Augmenter les dimensions de la section de béton ');
ReverseVideo(False);
CentrageMessage('FAITES VOTRE CHOIX (1 ou 2) ',8);
LireEntierXY(60,8,l,2,Key);
Delay(1000);
CASE Key OF
1: BEGIN
H_l_Espacement;
H_3_Hauteur_Totale;
END;
2: BEGIN
Oimensions_Poutre_Section_Acier(b,d,rap,asbd,ro);
H 1 Espacement;
H=3=Hauteur_Totale;
END;
END;
END; {Verif_Poids_Propre}
PROCEDURE c_14_2-PQids_propre;
BEGIN
IF (pdollar='p') OR(pdollar='P') THEN exit
ELSE
IF appui=3 THEN exit
ELSE
IF mr>=mfn THEN exit
ELSE BEGIN
clrscr;
CentrageMessage('LA SECTION N' 'EST PAS TOUJOUR BONNE',15);
verif-PQidsJPropre<mfn,krnv,kr,asnv,ronv);
END;
END;
PROCEDURE Calcul_de_HMINI;
BEGIN
IF GC >=2400 THEN
IF FY = 400 THEN
BEGIN
HMINI :=L/DENO;
EXIT;
END
ELSE
BEGIN
COEFY := (0.4 + FY/670l;
HMINI := (COEFY*Ll/DENO;
~RITE('HMINI=',hm;nil; EXIT;
END
ELSE
BEGIN
COEFG := (1.65-0.0003*GCl;
IF COEFG < 1 THEN
BEGIN
COEFG := 1;
HMINIG := (COEFG*Ll/DENO;
END
ELSE HMINIG := (COEFG*Ll/DENO;
IF FY = 400 THEN
BEGIN
HMINI := HMINIG;
EXIT ;
END
ELSE
BEGIN
COEFY := (0.4+FY/670l;
HMINIY := (COEFY*Ll/DENO;
IF HMINIG < HMINIY THEN HMINI := HMINIY
ELSE HMINI := HMINIG;
EXIT ;
END;
END;
END; (Calcul_de_HMINI)
PROCEDURE Verif_Du_PC_RodO_Rupture_Ductile;
VAR
Ch Integer;
BEGIN
RodO := AR/(B*Dl;
IF RodO < ROHINI THEN
BEGIN
HighVideo;
Mot := 'Le Pourcentage d"acier est inférieur au minimun exigé.';
CentrageHessage(Mot,10l; NormVideo;
DELAY(4500l;
ASBD := ROHINI*B*D;
Mot := 'Armature minimale (en mrn r ) = 1;
CentrageHessage(Mot,12l; GotoXY(75, 12l; ~rite(ASBDl;
HighVideo;
Mot := 'II faut rechoisir le diamètre des barres ';
CentrageHessage(Mot, 14l;
NormVideo; REPEAT UNTIL BARRE ESPACEMENT;
H_2_ESPACEMENT; -
Exit;
END
ELSE
IF RodO > Robba THEN
/133
BEGIN
HighVideo;
Mot := 'Avec ces dimensions, le pourcentage d"acier est trop grand ';
CentrageHessage(Mot, TO);NormVideo;
GotoXY(TO,T2); Write(' T.');
GotoXY(TO,T3); Write(' 2.');
HighVideo;
GotoXY(T4,T2); Write('Augmenter les dimensions de la section du béton ');
GotoXY(T4,T3); Write('Fsire une section doublement armée ');
NormVideo; ReverseVideo(True);
CentrsgeHesssge(' FAITES VOTRE CHOIX ----> (T ou 2) ',T4);
ReverseVideo(Fslse);
LireEntierXY(77,T4,T,2,Ch);
IF «TE=TRUE) OR (CONTINUE=TRUE) OR (CH=2» THEN
BEGIN
ClrScr;GotoXY(TO,T5);
ReverseVideo(True);
Write('RETOURNEZ ALORS AU MENU POUR RECOMMENCER AVEC L' 'OPTION VOULUE');
ReverseVideo(False);
GotoXY(TO,T7);ReverseVideo(True);
Write('ATTENTION LES POUTRES EN TË ET CONTINUE
NE SONT PAS ARMËES OOUBLEMENT ICI');
ReverseVideo(Fslse);
Write(#007);
Repeat Until BARRE_ESPACEMENT;HALT;
ENO
ELSE
BEGIN
OIMENSIONNEMENT_Repris_Espace_HMINI;
EXIT;
ENO;
ENO;
ENO; {Verif_Ou_PC_RodO_Rupture_Ouctile}
BEGIN
RODO := AR/(B*O);
WHILE ( (RODO < ROMINI) ANO (RODO > ROBBA) ) 00
Verif_Du_PC_RODO_RUPTURE_DUCTILE(RODO)
END; {C_T3_2_Ductilite}
PROCEDURE Calcul_de_D_connaissant_H;
BEGIN
IF HtotT >= Hmini THEN
D := HtotT-70
ELSE
BEGIN
HighVideo;
CentrageHesssge('VOUS N"AVEZ PAS RESPECTË LA HAUTEUR MINIMALE ',9);
NormVideo;
GotoXY(8,TT); Write('HAUTEUR TOTALE MINIMALE A RESPECTER ');
ReverseVideo(True);Write(HMINI:T2:3);ReverseVideo(False);
CentrsgeHesssge('ENTREZ UNE AUTRE VALEUR DE LA HAUTEUR TOTALE (en mm) ',T4);
LireReelXY(70,T4,TE-TO,TE+TO,HtotT);
Calcul_de_D_connaissant_H(htotT,d);
END;
END; {Calcul_de_D_connaissant_H}
~34
PROCEDURE Hauteur_Totale_OU_Utile;
VAR
Ch : 1nteger;
BEGIN
CLrScr;
(Cadre(Lig.Col.Lig2,Col2,Car.Fond.Caractere);}
Cadre(3,3,9,76.'H',2.15);
ReverseVideo(True);
GotoXY(5,5); Write(' 1- Vous connaissez la hauteur totaLe seule ');
GotoXY(5.6); Write(' 2- Vous connaissez la hauteur utiLe seule ');
ReverseVideo(False);
CentrageMessage('FAITES VOTRE CHOIX (1 ou 2) ',8);
LireEntierXY(70,8,1,2,Ch);
Delay(500);
CASE Ch OF
2: BEGIN
ClrScr;
ReverseVideo(True);
GotoXY(10,9); Write(' Donnez la hauteur utiLe 0 en mm ');
ReverseVideo(FaLse);
LireReelXY(70,9,1E-10,1E+10,D);
HTOT1 :=0+70;
WHILE HTOT1 < HMINI DO
BEGIN'
CLRSCR;
ReverseVideo(True);
GotoXY(12,13);Write(' ');
GotoXY(12,14);Write(' Vous devez augmenter La hauteur utiLe 0 à cause des ');
GotoXY(12,15);Write(' ');
GotoXY(12,16);Write(' des exigences de la norme pour la flèche. ');
GotoXY(12,17);Write(' -»
ReverseVideo(False);
ReverseVideo(True);
GotoXY(10,20); Write(' Donnez une autre vaLeur de La hauteur utiLe 0 en mm ');
ReverseVideo(FaLse);
LireReelXY(70.20,1E-10,1E+10,D);
HTOT1 := 0 + 70 ;
END;
END;
1: BEGIN
ClrScr;
ReverseVideo(True);
GotoXY(10,9); Write(' Donnez la hauteur totaLe en mm ');
ReverseVideo(FaLse);
LireReeLXY(70,9,1E-10,1E+10,HTOT1);
Calcul_de_D_connaissant_H(htot1,d);
END;
END;
END; {Hauteur_TotaLe_OU_Utile}
BEGIN
REPEAT
ClrScr;
ReverseVideo(True);
ï:
~~~~~~~~~:~~;~~:::~: li;;:@:;;@;":@;:.ê:;:@:;;ê.:;::~;l~E~N~T~R;EZ~:;;~;;;;-;~~;;i~~§i
1
ReverseVideo(False);
GotoXY(5, 10);Write('La Résistance en compression du béton (en MPa) ------->');
GotoXY(5,11);Write('La Contrainte de l"acier (en MPa)··········-··------->');
GotoXY(5, 12);Write('La Masse voLumique du béton(béton normaL:2400Kg/m3)--->');
GotoXY(5,13);Write('La Portée de la poutre (en mm) --------.- >');
GotoXY(5,14);Write('le Moment pondéré (en KN.m) ... -------------------->');
LireReelXY(65,10.1E-10.1E+10,FC);
LireReeLXY(65,11,1E-10,599,FY);
-135
LireReelXY(65,lZ,lEl-l0,lE+l0,GC);
LireReelXY(65,13,lE-l0,lE+l0,L);
LireReelXY(65,14,-lE+l0,lE+10,MFO);
Mot:='Voulez-vous corriger les données? (O/N) ';
REPEAT
GotoXY(l,16);elrEol;
ReverseVideo(True);
CentrageMessage(mot,16);
ReverseVideo(False);
UNTIL ReponseValide;
UNTI L NOT OUI;
MF:=ABS(MFO);
Delay(15DO);
ReverseVideo(True);
GotoXY(10.Z0); IIrite('@! ENTREZ LA LARGEUR DE LA POUTRE (em ...) ---, di');
ReverseVideo(False);
LireReelXY(70,ZO, lE-l0, lE+lD,B);
TYPE_D_APPUI(deno,appui);
CALCUL_DE_HMINI(HMINI);
ClrSer;
GotoXY(10,ZD); IIrite('LA HAUTEUR MINIMALE TOTALE A RESPECTER (en ...) ');
ReverseVideo(True);
GotoXY(65.ZD);lIrite(HMINI:10:3);
ReverseVideo(False); REPEAT UNTIL BARRE_ESPACEMENT;
Hauteur_Totale_OU_Utile;
END; {Saisie_Des_Donnees_Dim_Con }
PROCEDURE C_17_D_lmpression_IMP;
BEGIN
IIriteln(LST);
IIriteln(LST,' •••••••••••• POUTRE RECTANGULAIRE SIMPLEMENT ARMËE ••••••••• ');
IIriteln(LST,' RËSULTATS FINALS. ');
~r;teln(LST,' ••••••••••••••••••••• ***********************•••••••••••••••• ');
~riteln(LST,'x*x*x*x*x*x*xx·x·x·x·x*x*x*x*x*x*x*x*x*x*
x · x ·x· x · x · x · x · x · · x · x l ) ;
IIriteln(LST,' LARGEUR B (en ...) " B:ID:3);
IIriteln(LST,' HAUTEUR UTILE (en mn ) " 0:10:3);
IIriteln(LST,' SECTION D"ACIER NECESSAIRE (en orn2) = ',ASBD:ID:3);
IIriteln(LST,' DIAMETRE DES BARRE D"ACIER (en ...) ',00:10:3);
IIriteln(LST,' NOMBRE DE BARRES ',N:ID:D );
IIriteln(LST,' NOMBRE DE LITS ',NLIT:I0);
IIriteln(LST);
IIriteln(LST,' SECTION D' 'ACIER CHOISIE (en orn2) ',AR:ID:3);
IIriteln(LST.' MOMENT DE DESIGN (en KN.m) = ',MFO:ID:3);
IIriteln(LST,' MOMENT RESISTANT (en KN.m) ',MR:1D:3);
Writeln(LST,'x·x·x·x·x*·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x l ) ;
REPEAT UNTIL BARRE_ESPACEMENT; HALT;
END;
BEGIN
ClrSer;
ReverseVideo(True);
GotoXY( 10, 7) ;lIri te( , r-----------------------.., ,);
GotoXY(lD,8);lIrite(' r:::lJ1
POUTRE RECTANGULAIRE SIMPLEMENT ARMËE ;;;:::;1. ');
GotoXY(lD,9);lIrite(' RËSULTATS FINALS. ');
GotoXY(lD,lD);lIrite( ');
ReverseVideo(False);
GotoXY(Z, lZ);lIrite(' r---------------------------------------------,');
GotoXY(Z,13);lIrite(' LARGEUR B (en ...) ');
GotoXY(Z,14);lIrite(' HAUTEUR UTILE (en ...)
GotoXY(Z,15);lIrite(' SECTION D"ACIER NECESSAIRE (en
GotoXY(Z,16);lIrite(' DIAMETRE DES BARRE D"ACIER (en )
)
');
'l;
l');
A3b
GotoXY(2.17);Write(' NOMBRE DE BARRES 1 );
GotoXY(2.19);Write(' 1 );
BEGIN
Writeln(LST,' ••••** •••••••••••••••••••••••••••••••••••••••••• **********');
Writeln(LST,' POUTRE RECTANGULAIRE SIMPLEMENT ARMEE ');
Writeln(LST, , RESULTATS FINALS. ');
Writeln(LST,' *••••••••••••••••••••••••••••••••••••••••••••••••• ********');
Writeln(LST,' x·x·x**x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x**x*x');
Writeln(LST,' LARGEUR B (en mm) '.B:10:3);
Writeln(LST, ' HAUTEUR UTILE 0 (en mm) = '.0:10:3);
Writeln(LST,' SECTION D"ACIER NECESSAIRE (en mm2) '.ASBD:10:3);
Writeln(LST,' PLUS GRAND DIAMETRE DE BARRE (en mm)= '.01:10:3);
Writeln(LST,' NOMBRE DE BARRES DE GRAND DIAMETRE ',N1:10:3);
Writeln(LST,' PLUS PETIT DIAMETRE DE BARRE (en mm) ',02:10:3);
Wri telnClST,' NOMBRE DE BARRES DE PETIT DIAMETRE = ',N2:10:0);
Writeln(LST.' NOMBRE DE LITS ',NLIT:10);
Writeln(LST);
Writeln(LST.' ARMATURE CHOISIE (en mm2) '.AR:10:3);
Writeln(LST.' MOMENT DE DESIGN MF (en KN.m ) '.MF:10:3);
Writeln(LST.' MOMENT RESISTANT MR (en KN.m) '.MR:10:3);
Writeln(LST,' x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x·x');
REPEAT UNTIL Barre_Espaeement;HALT ;
END;
BEGIN
ClrSer;
ReverseVideo(True);
GotoXY (10. 7); Wri te(' ,.....-------------------------------------.
GotoXY(10.8);Write(' POUTRE RECTANGULAIRE SIMPLEMENT ARMEE l');
GotoXY(10.9);Write(' RESULTATS FINALS. l');
GotoXY(10,10);Write(' ');
ReverseVideo(False);
GotoXY(2,12);Write('
GotoXY(2,13);Write('
1----------------------,");
LARGEURB Cenmm) l');
GotoXYC2,14);WriteC' HAUTEUR UTILE 0 (en mm) ');
GotoXY(2.15);Write(' SECTION D"ACIER NECESSAIRE (en mm') = ') ;
GotoXY(2.16);Write(' PLUS GRAND DIAMETRE DE BARRE (en mm )= ') ;
GotoXY(2.17);Write(' NOMBRE DE BARRES DE GRAND DIAMETRE 1 );
GotoXY(2.20);Write(' NOMBRE DE LI TS 1 );
GotoXY(2.21);Write(' 1 );
ClrScr; ReverseVideo(True);
MOT:=('VOULEZ-VOUS AVOIR LES RESULTATS SUR IMPRIMANTES? (O/N)');
REPEAT
GotoXY(1.15); ClrEol;
CentrageMessage(MOT.15);
Until REPONSEVALIDE;
IF OUI Then C_17_1_IMPRESSION_IMP;
Halt;
END;
PROCEDURE Saisie_Rectang_Doublement_Armee;
BEGIN
REPEAT
ClrScr;
ReverseVideo(True);
GotoXY(2.2); Write(' 1 );
ReverseVideo(False);
GotoXY(5.5);Write('La Distance De La Fibre La Plus Comprimée au ');
GotoXY(5,6); Write('centre de gravité de l"armature comprimée (en mm) D' ');
GotoXY(5.8); Write('La Largeur De La Poutre (en mm) B -------> ');
GotoXY(5.10);Write('La Résistance en Compresson Du Béton Fc (en MPa)---> ');
GotoXY(5. 12);Write('La Contrainte de L"ACIER Fy (en MPa) ------------> ');
GotoXY(5.14);Write('Le Moment Pondéré Total (en KN.m) ----------------> ');
HighVideo;
LireReelXY(72.6.1E-1D.1E+l0.DP);
LireReeIXY(72.8.1E-l0.1E+l0.B);
LireReelXY(72.10.1E-4.1E+l0.FC);
LireReelXY(72.12.1E-1D.599.FY);
LireReelXY(72.14.-1E+l0,lE+l0.MFO);
NormVideo;
REPEAT
GotoXY(1.16);clrEol;
CentrageMessage('VOULEZ-VOUS FAIRE DES CORRECTIONS? (0/N)'.16);
UNTIL ReponseValide;
UNTIL NOT OUI;
MF :=ABS(MFO);
END;< fin de la PROCEDURE}
PROCEDURE Calcul_de_M1;
BEGIN
R01:=O.85*ROBBA;
AS1:=R01*B*D;
A:=(as1*fy)/(O.6*fc*b);
M1:=(O.85*fy*as1)*(d-(a/2»*1E-6;
IF M1>=MF THEN
Begin
ClrScr;ReverseVideo(True);
CentrageMessage('ON N"A PAS BESOIN D"ARMER DOUBLEMENT <RETOUR AU MENU>',15);
ReverseVideo(False);Repeat Until BARRE_ESPACEMENT;
HALT;
END;
End;
PROCEDURE Acier_Comprime_tendu;
BEGIN
M2:=MF-M1;
ASP:=(M2*1E+6)/(O.85*FY*(D-DP»;
AS:=AS1+ASP;
END;
PROCEDURE Ecoulement_Meme;
BEGIN
Ecoule:=(O.6*B1*FC*DP*600)/(FY*D*(600-FY»;
A:=(FY*(ART-ARC»/(O.6*FC*B);
MR:=(O.85*FY*(ART-ARC)*(D-A/2»*1E-6 + (O.85*ARC*FY*(D-DP»*1E-6;
IF rodi>=Ecoule THEN
BEGIN
Clrscr;HighVideo;
MOT:='L"ACIER DE COMPRESSION S' 'ECOULE.';
CentrageMessage(mot,10);REPEAT UNTIL Barre_Espacement; NormVideo;
END {fin de THEN}
ELSE
BEGIN
ClrScr;HighVideo;
Mot:='L"ACIER DE COMPRESSION NE S"ECOULE PAS.';
CentrageMessage(mot,10);REPEAT UNTIL Barre_Espacement;NormVideo;
END;{fin de ELSE} .
END;{fin de la PROCEDURE}
PROCEDURE C_22_LES_PC_D_ACIER;
BEGIN
RO:=ART/(B*D) ;
ROP:=ARC/(B*D);
ROB:=ROBBA+ROP;
ROOl:=RO-ROP;
END;
PROCEDURE Ecoulement_Acier_Compression;
BEGIN
Rodi:=(art-arc)/(b*d);
Ecoulement_Meme(mr);
END;
PROCEDURE C_O_IMP;
BEGIN
~riteln(LST,' •••••••••••• ***********.*****************************•••••• );
Writeln(LST, 1 R~SULTATS DE DESIGN DE POUTRE RECTANGULAIRE ');
Writeln(LST,' DOUBLEMENT ARM~E ');
~r;teln(LST,' ***********************••••••••• *********••••••••••••••••• ');
~r;teln(lST,' x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x·x·x·x·x·x·x·x l ) ;
Writeln(LST,'Largeur B (en mm) " B:8:3);
Writeln(LST,'Hauteur UTILE 0 (en mm) , ,0:8:3);
Writeln(LST, 'Distance de la fibre la plus comprimee à As I l (en mm) =',DP:8:3);
Writeln(LST,'Le Moment Pondere (en KN.m) =' ,MFD:8:3);
Writeln(LST,'Le Moment Resistant (en KN.m) = ',MR:8:3);
Wr i teln(LST);
END;
PROCEDURE C_'_IMP;
BEGIN
Writeln(LST,'Armature Tendue necessaire (en mm2) ',AS:8:3);
Writeln(LST,'Diametre des barres d"Armature Tendue (en mm) , ,DOT:8:3);
Writeln(LST, 'Nombre Total des barres d"Armature Tendue ',NT:8:3 );
Writeln(LST,'Nombre de LITS pour l"Acier Tendu , ,NTLlT:8);
Writeln(LST,'Armature Tendue Choisie (en mm2) , ,ART:8:3);
Writeln(LST);
END;
PROCEDURE C_2_IMP;
BEGIN
Writeln(LST,'Armature Tendue necessaire (en mm2) , ,AS:8:3);
Writeln(LST, 'Plus Grand Diametre de l"Acier Tendu (en mm) = ',DlT :8:3);
Writeln(LST,'Nombre de barres de Grand Diametre pour As ',NTI :8:0);
Writeln(LST,'Plus petit Diametre de l"Acier Tendu (en mm) ',D2T :8:3);
Writeln(LST,'Nombre de barres de Petit Diametre pour As ',NT2 :8:0);
Writeln(LST,'Nombre de LITS pour l"Acier Tendu ',NTLlT:8 );
Writeln(LST,'Armature Tendue Choisie (en mm2) ',ART:8:3l;
Writeln(LST);
END;
PROCEDURE C_3_IMP;
BEGIN
Writeln(LST,'Armature Comprimee necessaire (en mm2) •,ASP:8:3);
Writeln(LST,'Diametre des barres d"Armature Comprimee , ,DOC:8:3);
Writeln(LST, 'Nombre Total de barres d"Acier Comprime , ,NC:8:3);
Writeln(LST,'Nombre de LITS pour l"Armature Comprimee , ,NCLlT:8);
Writeln(LST,'Armature Comprimee Choisie (en mm2) , ,ARC:8:3);
Writeln(LST);
WriteLn(lST,'x·x·x·x·x·x**x·x·x·x·x·x·x·x·x·x·x·x·x·x·x*x*x*x*x**x*x*x*x*x l ) :
END;
PROCEDURE C_4_IMP;
BEGIN
Writeln(LST,'Armature Comprimee necessaire (en mm2) , ,ASP:8:3);
Writeln(LST,'Plus Grand Diametre de l' 'Acier Comprime (en mm) , ,d'c:8:3);
Writeln(LST,'Nombre de barres de Grand Diametre pour As" ',nc' :8:0);
Writeln(LST,'Plus petit Diametre de l"Acier Cmprime (en mm) , ,d2c:8:3);
Writeln(LST,'Nombre des barres de Petit Diametre pour As" ',nc2:8:0);
WritelnCLST, 'Nombre de LITS pour l"Acier Comprime 1 ,ncl it:8);
ReverseVideo(False);
r-------------------------------------------.., ,);
GotoXY ( 1, 4) ;Wr i te( ,
HighVideo;
BEGIN
GotoXY( l, la); Write(' Armature Tendue nécessaire (en nm') l' );
GotoXY( l,11); Write(' Armature Tendue Choisie (en nm') l ' );
GotoXY( 1,12); Write(' Armature Comprimée nécessaire (en nm')
GotoXY( 1,13); Write(' Armature Comprimée Choisie
ReverseVideo(True);
(en nm') l );.
' );
PROCEDURE C_25_1_C;
BEGIN
GotoXY( l,14);Write(' 1 Diamètre des barres d"Armature Tendue (en nm) ,);
GotoXY( l,15);Write(' Nombre Total des barres d"Armature Tendue 1 );
GotoXY(64,14);Write(DOT :8 :3);
GotoXY(64,15);Write(NT :8 :0);
GotoXY(64,16);Write(NTLIT:8 );
ReverseVideo(False);
END;< Fin de la PROCEDURE}
BEGIN
GotoXY(l ,DL); Write(' IDiamètre des barres d' 'Armature Comprimée
GotoXY(l ,DL+l); Write(' Nombre Total de barres d"Acier Comprimé
,);
GotoXY(l ,DL+2); Write(' Nombre de LITS pour l"Armature Comprimée
ReverseVideo(True);
l J );
1 );
GotoXY(64,DL);Write(DOC :8 :3)
GotoXY(64,DL+l);Write(NC :8 :0)
GotoXY(64,DL+2);Write(NCLIT:8 ) ;
ReverseVideo(False);
BEGIN
GotoXY(1 ,DLl; Write(' Plus Grand Diamètre de l"Acier Comprimé (en mml= 'l;
GotoXY(1 ,DL+ll;Write(' Nombre de barres de plus Grand ~ pour As" 'l;
GotoXY(1 ,DL+2l;Write(' Plus petit Diamètre de 1"Acier Cmprimé (en mml 'l;
GotoXY(1 ,DL+3l;Write(' Nombre des barres de plus Petit ~ pour As" 'l;
GotoXY(1 ,DL+4l;Write(' Nombre de LITS pour 1"Acier Comprimé 'l;
ReverseVideo(TRUEl;
GotoXY(64,DLl; Write(D1C :8 :3l;
GotoXY(64,DL+ll; Write(NCl :8 :Dl;
GotoXY(64,DL+2l; Write(D2C :8 :3l;
GotoXY(64,DL+3l; Write(NC2 :8 :Dl;
GotoXY(64,DL+4l; Write(NCLIT:8l;
ReverseVideo(FALSEl;
END; {fin de la PROCEDURE C_25_2_A}
BEGIN
GotoXY(1 ,14l;Write(' PLus Grand Diamètre de l' 'Acier Tendu (en mml 'l;
GotoXY(1 .15l;Write(' Nombre de barres de plus Grand ~ pour As 'l;
GotoXY( l ,16l;Write(' Plus petit Diamètre de l"Acier Tendu (en mml 'l;
GotoXY(1 ,17l;Write(' Nombre des barres de plus Petit ~ pour As = 'l;
GotoXY(1 ,18l;Write(' Nombre de LITS pour 1"Acier Tendu 'l;
ReverseVideo(TRUEl;
GotoXY(64,14l; Write(D1T :8 :3l;
GotoXY(64,15l; Write(NTl :8 :Ol;
GotoXY(64,16l; Write(D2T :8 :3l;
GotoXY(64,17l; Write(NT2 :8 :Ol;
GotoXY(64.18l; Write(NTLIT:8 l;
ReverseVideo(FALSEl;
END;
BEGIN
c_25_1_a;
c_25_1_b;
c_25_1_c;
c_25_1_d(17l;
REPEAT UNTIL BARRE_ESPACEMENT;
ClrScr; ReverseVideo(Truel;
MOT:=('VOULEZ-VOUS AVOIR LES RESULTATS SUR IMPRIMANTES? (O/Nl'l;
REPEAT
GotoXY(I,15l; ClrEol;
CentrageMessage(MOT,15l;ReverseVideo(Falsel;
Until REPONSEVALIDE;
IF OUI Then C_25_1_IMP;
HALT;
END;
PROCEDURE C_25_2;
BEGIN
c 25 1 a;
c-25-1-b;
c=25=I=c;
c_25_2_a(17l;
REPEAT UNTIL BARRE_ESPACEMENT;
ClrScr; ReverseVideo(True);
MOT:=('VOULEZ-VOUS AVOIR LES RESULTATS SUR IMPRIMANTES? (O/N)');
REPEAT
GotoXY(1.15); ClrEol;
CentrageMessage(MOT,15);ReverseVideo(FaLse);
Until REPONSEVALIDE;
IF OUI Then C_25_2_IMP;
HALT;
END;
BEGIN
c_25_1_a;
c_25_1_b;
c_25_3_a;
c_25_1_d( 19);
REPEAT UNTIL BARRE ESPACEMENT;
ClrScr; ReverseVideo(True);
MOT:=('VOULEZ-VOUS AVOIR LES RESULTATS SUR IMPRIMANTES? (O/N)');
REPEAT
GotoXY(1,15); ClrEol;
CentrageMessage(MOT,15);ReverseVideo(False);
Until REPONSEVALIDE;
IF OUI Then C_25_3_IMP;
HALT;
END;
BEGIN
c_25_1_a;
c 25 1 b;
c=25=3=a;
c_25.e,« 19);
REPEAT UNTIL BARRE_ESPACEMENT;
ClrScr; ReverseVideo(True);
MOT:=('VOULEZ-VOUS AVOIR LES RESULTATS SUR IMPRIMANTES? (O/N)');
REPEAT
GotoXY(1.15); ClrEol;
CentrageMessage(MOT.15);ReverseVideo(False);
Until REPONSEVALIDE;
IF OUI Then C_25_4_IMP;
HALT;
END;
END.
USES Crt,Printer,Dos,Punit1,Punit2;
VAR CH:INTEGER;
VAR Ch:integer;
BEGIN
CONTINUE:=FALSE; TE:=FALSE; DOUBLEMENT:=False;
ClrScr; GotoXY(10,15);
ReverseVideo(True);
Write('DIMENSIONNEMENT DE POUTRE RECTANGULAIRE SIMPLEMENT ARMEE ');
ReverseVideo(False);
Repeat Until BARRE_ESPACEMENT;
ClrScr;
HighVideo;
GotoXY(10, 10);Write('1.LES DIMENSIONS DE LA SECTION DU B~TON SONT CONNUES');
GotoXY(10, 12);Write('2.LES DIMENSIONS DE LA SECTION DU B~TON SONT INCONNUES');
ReverseVideo(True);
GotoXY(25,14); Write(' FAITES VOTRE CHOIX --------> (1 ou 2) ');
ReverseVideo(False);
LireEntierXY(70,14,1,2,Ch);
IF Ch=1 THEN
BEGIN
DDOLLAR:='N';
Saisie_des_donnees_dim_con(fc,fy,gc,l,mfo,mf,b);
Calcul-pc_mini_max_acier(fy,fc,b1,robba,romini,krmini,krmax);
BEGIN
. clrscr;highvideo;
Mot:='TAPEZ (P) SI VOUS AVEZ TENU COMPTE DU POIDS PROPRE DE LA POUTRE';
CentrageMessage(mot,5);
mot:='DANS LE CALCUL DU MOMENT SI NON UNE AUTRE TOUCHE';
CentrageMessage(mot,7); Normvideo;
GotoXY(68,7) ;
pdollar:=ReadKey;
IF «pdollar <>'P')AND(pdollar<>'p'» THEN
BEGIN
IF Appui = 1 THEN
MF:= (MF/1.1) + (1.25/8)*(B*HTOT1*2400*9.81*Sqr(L)*1E-15);
IF Appui = 2 THEN
MF:= (MF/1.1) + (1.25/2)*(B*HTOT1*2400*9.81*Sqr(L)*1E-15);
END
END;
Calcul_acier_b_et_d_connues(kr,ro,asbd);
Affichage apres calcul d armature(asbd);
H_2_Espaëement; - -
Verif_du-pc_rodO_rupture_ductile(rodO);
C_13_2_ductilite;
calcul_du_moment_resistant(a1,a,mr);
IF DDollar IN ['0', 'O'l THEN
C_17_D_impression
ELSE
C_17_i_impression;
END
ELSE
BEGIN
DDollar:='N';
IF CH=2 THEN
Begin
B:=exp(1/3*ln(BD2/sqr(1.75»);
0:= sqrt(B02/B);
ASBD:=ro*B*D;
ClrScr;ReverseVideo(True);
GotoXY(10,10); Write('LARGEUR PROPOS~E B (en mm) = ',b:10:2);
GotoXY(10,12); Write('HAUTEUR UTILE PROPOS~E 0 (en mm)=',D:10:2);
ReverseVideo(False);
Repeat
CLS(18,20);
HIGHVIDEO;
CentrageMessage('ENTREZ LES VALEURS ARRONDIES QUE VOUS RETENEZ ',15);
GotoXY(15,18);Write('LARGEUR B (en mm) ');
GotoXY(15,20);Write('HAUTEUR UTILE 0 (en mm)');
LireReelXY(55,18,1E-4,1E+1D,B);
LireReelXY(55,2D,1E-4,1E+1D,D); NormVideo;
Highvideo;
mot:='Voulez-vous faire des corrections? (O/N)';
Normvideo;
REPEAT
GotoXY(1,22);clrEol;
CentrageMessage(mot,22);
UNTIL reponsevalide;
UNTI L NOT oui;
ASBD:=RO*B*D;
End
ELSE
dimensions-POutre_section_acier(b,d,rap,asbd,ro);
End;
affîchage_apres_calcul_d_armature(asbd);
H 1 ESPACEMENT;
H=3=HAUTEUR_TOTALE;
verif-POids-propre(mfn,krnv,kr,asnv,ronv);
C_14_2_POIDS_PROPRE;
VERIF_du-pc_rodO_rupture_ductile(rodO);
C_13_2_ductilite;
calcul_du_moment_resistant(a1,a,mr);
IF DDOLLAR IN ['0','0'] TH EN
C_17_d_impression
ELSE
C_17_Î_impression
END;
END;
BEGIN
DOUBLEMENT:=true;
CONTINUE:=FALSE;TE:=talse;
ClrScr; GotoXY(10,15);
ReverseVideo(True);
Write('DIMENSIONNEMENT DE POUTRE RECTANGULAIRE DOUBLEMENT ARMEE ');
ReverseVideo(False);
Repeat Until BARRE_ESPACEMENT;
TYPE_d_appui(deno,appui);
Veric:=O ;Verit:=O;
REPEAT
CLrscr;
GotoXY(5,5);Write('Entrez La Portée de la Poutre (en mm)------------······>');
GotoXY(5,7);Write('Entrez La Densité du Béton (Béton Normal:Z400Kg/m3)····>');
LireReeIXY(65,5,lE-l0,lE+l0,1);
LireReelXY(65,7,lE-l0,lE+l0,Gc);
Mot:='Voulez·vous corriger les données ?(O/N)';
REPEAT
GotoXY(l,10);ClrEol;
ReverseVideo(True);
centragemessage(mot, 10);
ReverseVideo(talse);
UNTIL ReponseValide;
UNTIL NOT OUI;
Saisie rectang doublement armee(dp,b,tc,ty,mto,mt);
calcul=de_hmini(hmini); -
ClrScr;HighVideo;
CentrageMessage('HAUTEUR TOTALE MINIMALE à RESPECTER (en mm)= " 10);
GotoXY(65,10);
ReverseVideo(True);
Write(HMINI:10:3);
ReverseVideo(False);
REPEAT UNTIL Barre_Espacement; NormVideo;
HAUTEUR_TOTALE_OU_UTILE;
Calcul_PC_Mini_Max_Acier(ty,tc,bl,robba,romini,krmini,krmax);
Calcul_de_Ml(asl,ml);
Acier_Comprime_Tendu(mZ,asp, as);
ASBD:=AS;ClrScr;ReverseVideo(True);
CentrageMessage('CHERCHONS LA SECTION D"ACIER TENDU',15);
ReverseVideo(False);Repeat Until ,BARRE_ESPACEMENT;
Attichage_Apres_Calcul_d_Armature(asbd);
H_Z_Espacement;
IF (ddollar='o')OR(ddollar='O') THEN
BEGIN
NTLIT:=nlit;
nt:=n;
art:=ar:
dot:=dO;
verit:=2;
END
ELSE
BEGIN
ntl:=nl; ntZ:=nZ; art:=ar; dlt:=dl; dZt:=dZ; ntlit:=nlit;
END;
Asbd:=Asp;
CLrScr; HIGHVIDEO;
GotoXY(10,10);Write('PASSONS à L' 'ACIER COMPRIMË :');
DELAY(3000);NormVideo;
H_Z_Espacement;
IF (ddollar='o') OR (ddollar='O') THEN
BEGIN
ne:=n: arc:=ar; nclit:=nlit; veric:=3; doc:=dO;
END
ELSE
BEGIN
ncl:=nl; nc2:=n2; nclit:=nlit; arc:=ar; dlc:=dl; d2c:=d2;
END;
Ecoulernent_Acier_Compression;
IF verit=2 THEN
IF veric=3 THEN C_25_1
ELSE C_25_2
ELSE
IF Veric=3 THEN C~25_3
ELSE C_25_4;
END;
PROCEDURE ANALYSE_RECT_SIMPLE;
BEGIN
ClrScr;ReverseVideo(True);
CentrageMessage('ANALYSE DE POUTRE RECTANGULAIRE SIMPLEMENT ARM~E.',15);
Repeat Until BARRE_ESPACEMENT; ReverseVideo(False);
clrscr;
REPEAT
ReverseVideo(True);
rr',:
GGoottOoXXYY« 11 7»',: IIl1 ttee«: Il-'.~.:.~:.:.·'.:...~.:'·~'..·:.·.'Ë"..··.:~·.:.·_·.Ë:.:·.·~.·;~E;N~T;RE;;Z;-;~-;;;;;;-;~;:~;i~~iiii ' );
55',6
GotoXY( 15,8); IIri te(' _ê_._.__ . . _.i:'_._.i L_E_s_DO_N_N_~_E_S_S_U_I_V_A_N_TE_S_t",_;;;_::;;_;;;_:;;;_;_:ZM_~_;; : ~;
ReverseVideo(False);
GotoXY(5, 10);lIrite('La Resistance en compression du béton (en MPa) ------>');
GotoXY(5, 11);lIrite('La Contrainte de l"acier (en MPa) --------------->');
GotoXY(5, 12);lIrite('La Largeur De La Section Du B~TON B en (mm) ------->');
GotoXY(5,13);lIrite('La Hauteur Utile 0 (en mm) --------------->');
GotoXY(5,14);lIrite('la Section D"Acier (en mm') ---------------->');
GotoXY(5,15);lIrite('La Densité Du Béton (béton normal:240DKg/m3) -------->');
GotoXY(5,16);lIrite('La Portée de la POUTRE L en (mm) ------------>');
GotoXY(5,17);lIrite('La Hauteur Totale H (en mm) --------------->');
lirereelxy(68,10,lE-l0,lE+l0,fc);
- lirereelxy(68,ll,lE-l0,599,fy);
lirereelxy(68,12,lEl-1D,lE+1D,B);
1irereelxy(68,13,lE-l0,lE+1D,D);
lirereelxy(68,14,-lE+1D,lE+l0,AR);
lirereelxy(68,15, lE-l0, lE+1D,GC);
lirereelxy(68,16,lEl-l0,lE+l0,L);
lirereelxy(68,17,(d+l),lE+1D,HTOT);
Highvideo;
mot:='Voulez-vous corriger les données?(O/N)';
Norrnvideo;
REPEAT
GotoXY(l,19);clrEol;
CentrageMessage(mot,19);
UNTIL reponsevalide;
UNT IL NOT oui;
Calcul-pc_mini_max_acier(fy,fc,bl,robba,romini,krmini,krmax);
RO:=AR/(B*D);
If RO<ROMINI Then
Begin
clrscr;ReverseVideo(True);
CentrageMessage('LA SECTION EST INACCEPTABLE EN B.A. CAR [RO < ROMINI] .',15);
CentrageMessage('EN EFFET LA RUPTURE NE SERA PAS DUCTILE.', 16);
ReverseVideo(False); Repeat until BARRE_ESPACEMENT; HALT;
END
Else
If RD>robba Then
Begin
clrscr;ReverseVideo(True);
CentrageMessage('LA SECTION EST INACCEPTABLE EN B.A. CAR [RO> ROMAX] .',15);
CentrageMessage(IEN EFFET LA RUPTURE NE SERA PAS DUCT1LE.'.16);
ReverseVideo(False); Repeat Until BARRE_ESPACEMENT; HALT;
End;
CALCUL_DU_MOMENT_RESISTANT(Al,A,MR);
TYPE_D_APPUI(DENO.APPUI);
CALCUL_DE_HMINI(HMINI);
IF HTOT<HMINI Then
Begin
ClrScr;ReverseVideo(True);
CentraBeMessaBe('LA HAUTEUR TOTALE N"EST PAS CONFORME AUX EXIGENCES
DE LA NORME'.15); CentraBeMessaBe('POUR LA FLECHE. MERCI.'.16);
ReverseVideo(False);Repeat Until BARRE_ESPACEMENT;HALT;
End;
BEGIN
ClrScr;
ReverseVideo(True);
GotoXY(10. 7);lIrite(' r----------------------...., ');
GotoXY(10. 8);lIrite(' g POUTRE RECTANGULAIRE SIMPLEMENT ARM~E g ');
GotoXY(10. 9);lIrite(' R~SULTATS FINALS D"ANALYSE. ');
GotoXY(10.10);lIrite(' ');
ReverseVideo(False);
GotoXY(2.12);lIrite(' ; - - - - - - - - - - - - - - - - - - - - - - . . . , ' ) ;
GotoXY(2.13);lIrite(' MOMENT RESISTANT (en KN.m) ');
GotoXY(2.14);lIrite(' Hauteur Utile (en mm) ');
GotoXY(2.15);lIrite(' Largeur B (en mm) ');
GotoXY(2.16);lIrite(' Section dl'acier (en mm' -»
GotoXY(2.17>;lIrite(' ');
GotoXY(2.18);lIrite(' Pourcentage Minimal d"Acier ');
GotoXY(2.19);lIrite(' Pourcentage d"Acier ');
GotoXY(2.20);lIrite(' Pourcentage MAximal d"Acier ');
GotoXY(2.21);lIrite(' ');
GotoXY(2.22);lIrite(' Hauteur minimale exigée (en mm) ');
GotoXY(2. 23) ;lIri te(' '--------------------~- ..... ');
ReverseVideo(True);
GotoXY(55.13); IIrite(MR :10:3);
GotoXY(55.14); IIrite(D :10:3);
GotoXY(55.15); IIrite(B :10:3);
GotoXY(55.16); IIrite(AR :10:3);
GotoXY(55.18);lIrite(ROMIN1:10:4);
GotoXY(55.19); IIrite(RO :10:4);
GotoXY(55.20); IIrite(ROBBA:l0:4);
GotoXY(55.22); IIrite(HMINI:l0:3);
ReverseVideo(False);Repeat Until BARRE_ESPACEMENT; HALT;
END;
END;
PROCEDURE ANALYSE_IMPRESSION_DOUBLE;
BEGIN
ClrScr;
ReverseVideo(True);
r------------------------, ,);
GotoXY( 1O. 7) ;lIri te('
GotoXY(10. 8);lIrite(' POUTRE RECTANGULAIRE DOUBLEMENT ARM~E ');
GotoXY(10. 9);lIrite(' R~SULTATS FINALS D"ANALYSE. ');
GotoXY(10.10);lIrite(' ');
ReverseVideo(False);
GotoXY(2.12);lIrite(' r----------------------....,'
GotoXY(2.13);lIrite(' MOMENT RESISTANT (en KN.m)
ï:
1 ï:
GotoXY(2.17);lIrite('
GotoXY(2.18);lIrite(' Pourcentage Minimal d"Acier
l
1 );
1) ;
GotoXY(2.21);lIrite(' 1 ï:
GotoXY(2.22);lIrite(' 'Section
- d"Acier Comprimé (mm') l' );
...J' );
GotoXY(2.23);lIrite('
ReverseVideo(True);
GotoXY(55,13); Write(MR :10:3);
GotoXY(55.14); Write(O :10:3);
GotoXY(55.15); Write(B :10:3);
GotoXY(55.16); Write(ART :10:3);
GotoXY(55,18);Write(ROMINI:10:4);
GotoXY(55.19); Write(RO :10:4);
GotoXY(55.20); Write(ROB :10:4);
GotoXY(55.22); Write(ARC :10:3);
ReverseVideo(False);Repeat Until BARRE_ESPACEMENT; HALT;
END;
PROCEDURE ANALYSE_RECT_DOUBLE;
BEGIN
ClrScr;ReverseVideo(True);
CentrageMessage('ANALYSE DE POUTRE RECTANGULAIRE DOUBLEMENT ARMËE.',15);
Repeat Until BARRE_ESPACEMENT; ReverseVideo(False);
clrscr;
REPEAT
ReverseVideo(True);
G~o~t:o~X:Y~(~ 1~555 ': 6~)~ ,':. W~rrr ';.' t:e:(~:, ·. -·. ·.·-·.~ ·..
1-ïB.B. .~- !-E-N-T-R-EZ---------------,1'
:.-·.o·- · :-·.·.·
..··
..· .-
LES DONNËES SUIVANTES ~~;~:::1;~~ ');
);
ReverseVideo(False);
--------------------.- ');
lirereelxy(68,10,lE'10,lE+l0,fc);
lirereelxy(68,ll,lE'10,599,fy);
lirereelxy(68,12, lEl-l0, lE+l0.B);
lirereelxy(68,13,lE'10,lE+l0,D);
lirereelxy(68.14,-lE+l0,lE+l0,ART);
lirereelxy(68,15,lE'10,lE+l0,ARC);
lirereelxy(68,17,lEl'10,d'lE'4,DP);
Highvideo;
mot:='Voulez,vous corriger les données?(O/N)';
Normvideo;
REPEAT
GotoXY(1.19);clrEol;
CentrageMessage(mot,19);
UNTIL reponsevalide;
UNTI L NOT oui;
Calcul-pc_mini_max_acier(fy,fc,bl,robba,romini,krmini,krmax);
C_22_LES_PC_D_ACIER(RO,ROP,ROB,RODI);
If RO<ROMINI Then
Begin
clrscr;ReverseVideo(True);
CentrageMessage('LA SECTION EST INACCEPTABLE EN B.A. CAR [RO < ROMINIJ.', 15);
CentrageMessage('EN EFFET LA RUPTURE NE SERA PAS DUCTILE.', 16);
BEGIN
ReverseVideo(False);
ClrScr;
CADRE(7,5,23,7D,'B',2,14);
GotoXY(7,1D);Write('1.'); ReverseVideo(True);
GotoXY(1D.1D);
Write('DIMENSIONNEMENT DE POUTRE RECTANGULAIRE SIMPLEMENT ARM~E');
ReverseVideo(False);
GotoXY(7,13);Write('2.');
ReverseVideo(True);
GotoXY(1D,13);
Write('DIMENSIONNEMENT DE POUTRE RECTANGULAIRE DOUBLEMENT ARM~E');
ReverseVideo(False);
GotoXY(7,16);Write('3.');
ReverseVideo(True);
GotoXY(1D,16);
Write('ANALYSE DE POUTRE RECTANGULAIRE SIMPLEMENT ARM~E');
ReverseVideo(False);
GotoXY(7.19);Write('4.');
ReverseVideo(True);
GotoXY(1D,19);
Write('ANALYSE DE POUTRE RECTANGULAIRE DOUBLEMENT ARM~E');
ReverseVideo(False);
GotoXY(7,21);Write('5.');
ReverseVideo(True);
GotoXY(1D,21);Write(' RETOUR AU MENU ');
ReverseVideo(False);
END.
USES Crt,Printer,Punitl,Punit2;
VAR
HF,E,EN,BTOT,HF1,BCD,Bl,B2,B3,COEFA2,COEFA1,
COEFAO,Al,A2,A,MREF,BTEMP,AS,ROF,DELTA,ANV
REAL;
PROCEDURE c_30_2ABC
Begin
ClrScr;
REPEAT
ReverseVideo(True);
CentrageMessage('ENTREZ LES DONN~ES SUIVANTES' ,3);
ReverseVideo(False);
GotoXY(5,6 ); Write(' DENSITE DU BETON (Béton Normal: 2400Kg/m3) -------->');
GotoXY(5,7 ); Write(' LA R~SISTANCE EN COMPRESSION DU B~TON (en MPa)----->');
GotoXY(5,8 ); Write(' LA LIMITE D"~LASTICIT~ DE L"ACIER (en MPa)-------> ');
GotoXY(5,10); Write(' LA PORTEE DE LA POUTRE (en mm) .-----.-------> ');
GotoXY(5,12); Write(' L"EPAISSEUR DE LA TABLE DE COMPRESSION (mm)-------->');
GotoXY(5,14); Write(' LA LARGEUR DE LA NERVURE Bw (en mm)------------'>,);
GotoXY(5,16);Write(' ESPACEMENT ENTRE LES AXES DES POUTRES ADJACENTES(mm)->');
GotoXY(5,18); Write(' DISTANCE LIBRE ENTRE LES POUTRES ADJACENTES (mm)---->');
GotoXY(5,20); Write(' LE MOMENT POND~R~ (en KN.m) ------------------>');
LireReeIXY(68,6,lE-l0,lE+12,GC);
LireReeIXY(68,7, lE-l0, lE+l0,FC);
LireReeIXY(68,8,lE-l0,599,FY);
LireReeIXY(68,10, lE-l0, lE+12,L);
LireReelXY(68,12,lE-l0, lE+12,HF);
LireReelXY(68,14, lE-l0, lE+12,B);
LireReelXY(68, 16, lE-l0, lE+12,E);
LireReelXY(68, 18, lE-l0,(E-l),EN);
LireReelXY(68,20,-lE+l0,lE12,MFO);
REPEAT
GotoXY(15,23); CLREOL; HighVideo;
CentrageMessage('VOULEZ-VOUS FAIRE DES CORRECTIONS ?(O/N)',23);
NormVideo;
Until ReponseValide;
Until Not OUI; MF:= ABS(MFO);
Eoo;
PROCEDURE C_30_2D
Begin
ClrScr;
REPEAT
CentrageMessage('ENTREZ LES DONN~ES SUIVANTES' ,3);
GotoXY(5,6 ); Write(' DENSITE DU BETON (Béton Normal:2400Kg/m3) ------ .... >');
GotoXY(5.8 ); Write(' LA R~SISTANCE EN COMPRESSION DU B~TON (en MPa)------>');
GotoXY(5,10 );Write(' LA LIMITE D"~LASTICIT~ DE L"ACIER (en MPa)-------->');
GotoXY(5.12); Write(' LA PORTEE DE LA POUTRE (en mm) -------------------->');
GotoXY(5,14); Write(' L"EPAISSEUR DE LA TABLE DE COMPRESSION (en mm)----->');
GotoXY(5,16); Write(' LA LARGEUR DE LA NERVURE Bw (en mm)------·-·----··->');
GotoXY(5,18); Write(' LA LARGEUR EFFECTIVE B (en mm) ------------------>');
GotoXY(5,20); Write(' LE MOMENT POND~R~ (en KN.m) -----.-------------->');
LireReelXY(65,6, lE-l0, lE+12,GC);
LireReelXY(65,8, lE-l0, lE+l0,FC);
LireReelXY(65, 10, lE-l0,599,FY);
LireReelXY(65, 12, lE-l0, lE+12,L);
LireReelXY(65. 14, lE-l0, lE+12,HF);
LireReelXY(65,16, lE-l0, lE+12,B);
LireReelXY(65,18. lE-l0, lE+12,BTOT);
LireReeIXY(65,20.-1E+l0,lE12,MFO);
REPEAT
GotoXY(15,23);CLREOL;
HighVideo;
CentrageMessage('VOULEZ-VOUS FAIRE DES CORRECTIONS ?(O/N)',23);
NormVideo;
Until ReponseValide;
Until Not OUI; MF:= ABS(MFO);
Eoo;
~50
PROCEOURE C_30_10;
BEGIN
HF1:=B/2; BCO:=4*B;
If HF<HFl then
BeBin
CLRSCR; GotoXY(5,15);ReverseVideo(True);
~rite('L"EPAISSEUR Hf OE LA TABLE OOIT ETRE >=Bw/2, REPRENEZ :');
ReverseVideo(False); Repeat Until BARRE_ESPACEMENT;
C_30_20;
End
Else
Begin
If BTOT>BCO Then
begin
CLRSCR; GotoXY(5,15);ReverseVideo(True);
~rite('LA LARGEUR EFFECTIVE B OOIT ETRE <= 4*Bw , REPRENEZ :');
ReverseVideo(False); Repeat Until BARRE_ESPACEMENT;
C_30_20;
enct:
End;
ENO;
PROCEOURE C_30_1_0;
BEGIN
If Bl<=B2 Then
Begin
IF Bl<=B3 Then Begin BTOT:=Bl; EXIT; End
Else BEGIN BTOT:=B3; EXIT; ENO;
End
ELSE
Begin
If B2<=B3 Then Begin BTOT:=B2; EXIT End
Else Begin BTOT:=B3; EXIT End;
End;
ENO;
PROCEOURE C_30_1A;
BEGIN
Bl:=0.4*L; B2:=24*HF+B; B3:=E;C_30_1_0;
END;
PROCEDURE C_30_1B;
BEGIN
Bl:=0.25*L; B2:=24*HF+B; B3:=E; C_30_1_0
END;
PROCEDURE C_30_1C;
BEGIN
Bl:=(L/12)+B; B2:=6*HF+B; B3:=B+0.5*EN; C 30 1 0
END;
PROCEDURE C_30_1;
VAR
KEY :INTEGER;
BEGIN
ClrScr;
Cadre(12.10,23,70,'B',2,14);
ReverseVideo(True);
GotoXY(12,13); ~rite('l. POUTRE SYMETRIQUE EN TË SIMPLEMENT APPUYËE 1 );
ReverseVideo(False);
CentrageMessage('ANNONCER VOTRE CAS --> (l, 2,3,4 ou 5) ',24);
LireEntierXY(68,24,l,5,Key);
Delay(600);
CASE Key OF
1: BEGIN
C_30_2ABC;
C 30 lA;
DËNO:=16;
END;
Z: BEGIN
C_30_ZABC;
C_30_1B;
DENO:=Zl;
END;
3: BEGIN
C 30 ZABC;
C)(lC;
DENO:=18.5;
END;
4: BEGIN
C_30_ZD;
C_30_1D;
DENO:=16;
END;
5: HAll;
END; { Du CASE Key OF }
END;
PROCEDURE C_3Z_Z;
Begin
AS:=«0.6*FC*B*A)+(0.6*FC*(BTOT-B)*HF»/FY ASBD:=AS
End;
PROCEDURE C_3Z_l ;
Begin
COEFAZ:=(0.5l*FC*B)/Z
COEFA1:=(-0.5l*FC*B*D);
COEFAO:=(MF*lE+6)-(0.5l*FC*HF*(BTOT-B)*(D-HF/Z»;
DELTA:=sqr(COEFA1)-(4*COEFAZ*COEFAO)
IF DELTA<O
Then
Begin
ClrScr;GotoXY(5,15);ReverseVideo(True);
Write('DN DOIT ARMER CETTE POUTRE EN TË DOUBLEMENT AVEC CES DIMENSIONS. ');
REVERSEVIDEO(False);
GotoXY(5,16);ReverseVideo(True);
Write(' CE N"EST PAS PRËVU DANS CE LOGICIEL MERCI.');
Repeat Until BARRE_ESPACEMENT; HALT;
End
Else
BEGIN
Al:=(-COEFA1-(sqrt(DELTA»)/(Z*COEFAZ);
AZ:=(-COEFA1+(sqrt(DELTA»)/(Z*COEFAZ);
If Al<=O Then A:=AZ
Else
Begin
If AZ<=O Then A:=A1
Else
If Al<=AZ THEN A:=A1
Else A:=AZ
end;
end;
END;
PROCEDURE PC_MINI_MAX_ACIER_TE;
BEGIN
RDMINI:=(0.6*FC*BTOT*HF)/(FY*B*D);
ROF:=(0.6*FC*(BTOT-B)*HF)/(FY*B*D);
ROBBA:=(0.6*Bl*FC*600)/«600+FY)*FY);
ROB:=ROBBA+ROF;
END;
PROCEDURE CALCUL_MOMENT_RESISTANT_TE;
BEGIN
ANV:=«AR*FY)-(0.6*FC*(btot-B)*HF»/(0.6*FC*B);
MR:=«(0.85*0.6*FC*B*ANV)*(D-ANV/2»+«0.85*0.6*FC)*(BTOT-B)*HF*(D-HF/2»)*IE-6;
END;
PROCEDURE C_4_2_SA;
BEGIN CLrScr;
ReverseVideo(True);
GotoXY(10, 7); IIrite(' ; - - - - - - - - - - - - - - - - - - - - - - - . , ');
GotoXY(10,8); IIrite(' #1 POUTRE EN TE SIMPLEMENT ARMËE tÙ ');
GotoXY(10, 9); IIrite(' RËSULTATS FINALS. ');
GotoXY(10,10); IIrite(' ');
ReverseVideo(FaLse);
GotoXY(2,12); IIrite(' r-----------------------,.);
-»
GotoXY(2,13); IIrite(' ~ Largeur Bw de La Nervure (en mm)
GotoXY(2,14); IIri te(' ~ Largeur Effective B (en mm) ');
GotoXY(2,15); IIrite(' =~ Moment de design (en KN.m) ');
GotoXY(2,16); IIrite(' ~ Section dl'acier nécessaire (en mm l ) ');
GotoXY(2, 17); IIri te( , ~ Hauteur utiLe D (en mm) •);
GotoXY(2,18); IIrite(' ~ Epaisseur de La TabLe (en mm) ');
GotoXY(2,19); IIrite(' ');
ReverseV;deo(True);
GotoXY(55,13); IIrite(B :10:3);
GotoXY(55,14); IIrite(BTOT :10:3);
GotoXY(55,15); IIrite(MFO :10:3);
GotoXY(55,16); IIr;te(AS :10:3);
GotoXY(55,17); IIr;te(D :10:3);
GotoXY(55,18); IIr;te(HF :10:3);
ReverseV;deo(FaLse);
REPEAT UNTIL BARRE_ESPACEMENT;
END;
PROCEDURE Impression_TE_UNI;
BEGIN CLrScr;
ReverseVideo(True);
GotoXY(10,7); IIrite('
GotoXY(10, 8); IIrite(' ~
r----------------------,.);
POUTRE EN TE SIMPLEMENT ARMËE ::; ');
GotoXy(10, 9); IIrite(' ~ R~SULTATS FINALS. ');
GotoXY(10,10); IIrite(' ');
ReverseVipeo(False);
GotoXY(2,12); IIrite(' , - - - - - - - - - - - - - - - - - - - - . . . , . ) ;
GotoXY(2, 13); IIrite(' ::; Largeur Bw de La Nervure (en mm) t~t. -»
GotoXY(2,14); IIrite(' et. Largeur Effective B (en mm) 84. ');
GotoXY(2,15); IIrite(' ~ Moment de design (en KN.m) ~ -»
GotoXY(2,16); IIrite(' ~ Section d"acier nécessaire (en mm') ;:::::;;: ');
GotoXY(2,17); IIrite(' ::; Armature choisie (en mm') Ë~ ');
GotoXY(2,18); IIr;te(' et. Diamètres de barres (en mm ::; ');
GotoXY(2,19); IIr.ite(· ~ Nombre de barres ïti -»
GotoXY(2,20); IIrite(' §i Hauteur utiLe D (en mm) ~ ');
GotoXY(2,21>; Write(' et. Moment résistant (en KN.m) ~ 1);
GotoXY(2,22); IIrite(' ~ Epaisseur de La TabLe (en mm) = ~; ');
GotoXY(2,23); IIrite(' ~ NOMBRE DE LITS ~ ');
GotoXY(2,24); IIrite(' ');
ReverseVideo(True);
GotoXY(55,13); IIr;te(B :10:3);
GotoXY(55,14); IIrite(BTOT :10:3);
GotoXY(55,15); IIrite(MFO :10:3);
GotoXY(55,16); IIrite(AS :10:3);
GotoXY(55,17); IIr;te(AR : 10:3);
GotoXY(55,18); IIrite(DO :10:3);
GotoXY(55,19); IIrite(N :10:0);
GotoXY(55,20); IIrite(D :10:3);
GotoXY(55,21); IIrite(MR :10:3);
GotoXY(55,22); IIrite(HF :10:3);
GotoXY(55,23); IIr;te(NLIT :10);
ReverseVideo(FaLse);
REPEAT UNTIL BARRE_ESPACEMENT;
END;
/f 53
PROCEDURE Impression_TE_DIF;
BEGIN
ClrScr;
ReverseVideo(True);
GotoXY(10, 5); Write(' r--------------------_');
GotoXY(10, 6); Write(' ~ POUTRE EN TE SIMPLEMENT ARM~E ');
GotoXY(10, 7); Write(' R~SULTATS FINALS. ');
GotoXY(10, 8); Write(' ');
ReverseVideo(False);
r---------------------...,');
GotoXY(2, 10); Wr i te('
GotoXY(2,ll); Write(' ~ Largeur Bw de la Nervure (en mm) ');
GotoXY(2,12); Write(' ~ Largeur Effective B (en mm) ');
GotoXY(2,13); Write(' ~ Moment de design (en KN.m) -»
GotoXY(2,14); Write(' ~ Section d'Iocier nécessaire (en mm l ) ');
GotoXY(2,15); Write(' ~ Armature choisie (en mm') ');
GotoXY(2,16); Write(' ~ Nombre total des barres ');
GotoXY(2,17); Write(' ~ Plus grand diamètre de barre (en mm) ');
GotoXY(2,18); Write(' ~ Nombre de barres de plus grand ~ -»
GotoXY(2,19); Write(' ~ Plus petit diamètre de barre (en mm) ');
GotoXY(2,20); Write(' ~ Nombres de barres de plus pet i t ~ ');
GotoXY(2,21); Write(' ~ Hauteur utile 0 (en mm) ');
GotoXY(2,22); Write(' ~ Moment résistant MR (en KN.m) ');
GotoXY(2,23); Write(' ~ NOMBRE DE LITS ');
GotoXY(2.24); Write(' ');
ReverseVideo(True);
GotoXY(55,ll); Write(B :10:3);
GotoXY(55,12); Write(BTOT :10:3);
GotoXY(55,13); Write(MFO :10:3);
GotoXY(55,14); Write(AS :10:3);
GotoXY(55,15); Write(AR :10:3);
GotoXY(55,16); Write(N :10:0);
GotoXY(55,17); Write(Dl :10:3);
GotoXY(55,18); Write(Nl :10:0);
GotoXY(55,19); Write(D2 :10:3);
GotoXY(55,20); Write(N2 :10:0);
GotoXY(55,21); Write(D :10:3);
GotoXY(55,22); Write(MR :10:3);
GotoXY(55.23); Write(NLIT :10 );
REPEAT UNTIL Barre_Espacement;
ReverseVideo(False); HALT;
END;
PROCEDURE C_4_2;
VAR
KEY :INTEGER;
BEGIN
CLRSCR; Cadre(12,10,20,70,'B',2,14);
ReverseVideo(True);
GotoXY(12,13);write('l. VOUS VOULEZ DETERMINEZ LE NOMBRE DE BARRES 1 );
A54
PROCEOURE C_31;
BEGIN
HREF:=(O.51*FC*BTOT*HF)*(D-HF/Z)*lE-6
IF HF<=HREF THEN
Begin
Clrscr;GotoXY(10,15);ReverseVideo(True);
Write(' ON PEUT ARHER COMHE POUTRE RECTANGULAIRE .');
ReverseVideo(False);
Repeat Until BARRE_ESPACEHENT;
Calcul_PC_HINI_HAX_ACIER(FY,FC,Bl,ROBBA,ROMINI,KRHINI,KRHAX);
ROHINI:=(l.4*B)/(FY*BTOT);
ROBBA:=(O.6*Bl*FC*600)/«600+FY)*FY); DDOLLAR:='N';
krmini:=0.85*fy*romini*(l-(romini*fy)/(l.Z*fc»;
krmax:=0.85*fy*robba*(l-(robba*fy)/(l.Z*fc»;
BTEHP:=B; B:=BTOT;
CALCUL_ACIER_B_et_D_CONNUES(kr,ro,asbd);
B:=BTEHP;
AFF ICHAGE_APRES_CALCUL_D_ARHATURE(ASBD);
H_l_ESPACEHENT; B:=BTOT;
VERIF_DU_PC_ROOO_RUPTURE_DUCTILE(ROOO);
C_13_Z_DUCTILITE;
B:=BTOT; CALCUL_du_HOMENT_RESISTANT(Al,A,HR);
IF DDOLLAR IN l'O','o'J THEN
C 17 D IHPRESSION
Else-C=17_I_IHPRESSION;
END
ELSE
BEGIN
PC_HI NI_HAX_AC 1ER_TE;
C_3Z_1 ;
C_3Z_Z;
ENd;
--
C 4 Z·.
END;
PROCEDURE PRINCIPAL_4_TE;
BEGIN
TE:=TRUE;
C 30 1;
CALCÜL_DE_HHINI(HHINI);ClrScr;GotoXY(10,10);
ReverseVideo(True);
Write('HAUTEUR HINIHALE TOTALE (en mm) ',HHINI:10:2);
GotoXY(10, 15);Write('ENTREZ LA HAUTEUR UTILE D (en mm) 'l;
REVERSEVIDEO(Falsel;
LireReelXY(70,15, l, lE+l0,Dl;
C_31 ;
END;
BEGIN
PRINCIPAL_4_TE;
END.
..-155
USES Crt,Printer,Punitl,Punit2;
VAR
HG,HH,HD,DDG,NG.NLITG.D1G,D2G,N1G,N2G,DOM,NH,
NLITH,D1H,D2H.N1H,N2H,DOD,ND,NLITD,ASG,ARG,
ASH,ARH,ASD,ARD.D1D,D2D.N2D,N1D
:ARRAY[1 •. 101 OF REAL
HHINll,HHINI2,CRH,CRD,CRG,CIG,CIH,CID,~F,LRD,LRH.LRG,
Ll,L2,HIG.HIH,HID,HRG,HRH,HRD,LIG,LIH,LID,ZG1,ZG2,
ZG3,ZG,ZGR,ZGI,ZGRAND,LR,LI,DOGR,D2GR,D1GR,DOMR,
OODR,D1HR,D2HR,DOGI,D1GI.D2GI,DOMI,D1HI,D2HI,D1DI,
0201.ASGR.ARGR,ARHR,ASDR.ARDR,ASGI,ARGI,ASHI,ASDI,
010R,D2DR,DODI,ASHR,ARHI.ARDI,ASHINI,ASHAX
Real;
CK,TRAV, l,OPTION
: INTEGER;
NGR,NLITGR,N1GR,NHR,NLITHR.NDR,NLITDR,
N1HR,NLITGI,N1GI,N2GI,NHI,NLITHI,N1HI,
N2HI,N1DI,N2DI,NLITDI.N2GR,N2HR,N1DR,
N20R,NGI,NDI
Real;
Hot STRING79;
RIVE,IDENT Char;
PROCEDURE C_19_C_2;
BEGIN
ClrSer;
GotoXY(5. 10);~rite('l. POUTRE CONTINUE AYANT UNE POUTRE DE RIVE .');
GotoXY(5. l2);~rite('2. POUTRE CONTINUE AYANT UN POTEAU OU HUR DE RIVE .');
GotoXY(25,14);~rite('FAITESVOTRE CHOIX·····>(l ou 2)');
LireEntierXY(65,14,1,2,ek);
If ek=l then
Begin
RIVE:='P' ;CRG:=-1/24
End
ELSE
Begin
RIVE:='H' ;CRG:='1/16;
End;
BEGIN
CRH:=1/14 CRD:=-1/9;
END;
END; {Fin procedure}
PROCEDURE C 20 2 C;
Begin - - -
ClrSer; ReverseVideo(True);
GotoXY(10,3); ~rite('TAPER 1 SI LES DEUX TRAV~ES SONT IDENTIQUES
SI NON AUTRE TOUCHE');
(* Repeat*)
GotoXY(75,3);
~rite(' ');
GotoXY(75,3);
IDENT:=ReadKey;
(* ~rite(Chr(127»;*)
(* Until UpCase(IDENT)='I';*)
(* IF (UpCase(IDENT) ='1') Then*)
IF «IDENT='I') OR (IDENT='i'» THEN
Begin
GotoXY(10,6); ~rite('PLUS GRANDE PORT~E ENTRE AXES (en mm) ');
LireReelXY(69,6, lE-l0, lE+l0,Ll);
ReverseVideo(True);GotoXY(5,8);
~rite('ENTREZ LA PORT~E AUX NUS D"Ap'PUI D"UNE TRAV~E (en mm) ');
ReverseVideo(False);
LireReeIXY(69.8,lE-10,(Ll-1),LR);
C_19_C_2;
End
ELSE
BEGIN
Repeat
GotoXY(10,12);~rite('PLUS GRANDE PORT~E ENTRE AXES (en mm) ');
GotoXY(10,14);~rite('LAPORT~E AUX NUS D"APPUI DE LA PREMIERE TRAVEE (mm)');
GotoXY(10,16);~rite('LA PORT~E AUX NUS D"APPUI DE LA SECONDE TRAVEE (mm) ');
LireReelXY(73,12,lE-l0,lE+l0,Ll);
LireReelXY(73,14,lE-l0,(ll-1),LR);
LireReelXY(73,16,lE-l0,(ll-1),LI);
HighVideo; Mot:='VOULEZ-VOUS FAIRE DES CORRECTIONS? (o/N)';
NormVideo;
REPEAT
GotoXY(l,23);ClrEol;
CentrageMessage(Mot,9);
UNTIL ReponseValide;
UNTIL Not OUI;
C_19_c_2; CIG:=CRo ; CIM:=CRM; CID:=CRG;
END;
Repeat
GotoXY(5,18); ~r;te('LA CHARGE UNIFORMEMENT R~PARTIE (en KN/m) > ');
GotoXY(5,19); ~rite('LA R~SISTANCE EN COMPRESSION DU B~ToN (en MPa)······> ');
GotoXY(5,20); ~rite('LA LIMITE D"ELASTICITE DE L"ACIER (en MPa)··-·····>');
GotoXY(5,2l); ~rite('LA oENSIT~ DU B~ToN(B~ToN NORMAL 2400Kg/m3)-----····>');
LireReelXY(69,18, lE-l0, lE+l0,~F);
LireReelXY(69,19,lE-l0,lE+l0,FC);
LireReelXY(69,20,lE-l0,599,FY);
LireReelXY(69,2l,lE-l0,lE+l0,GC);
HighVideo;
Mot:='VOULEZ·VOUS FAIRE DES CORRECTIONS? (o/N)';
NormVideo;
REPEAT
GotoXY(l,23);ClrEol;
CentrageMessage(Mot,23);
UNTIL ReponseValide;
UNTIL Not OUI;
DENo:=18.5 ; L:=Ll ;
CALCUL_DE_HMINI(HMINI);
END;
PROCEDURE C_18_2;
BEGIN
DENO:=18.5 ;L:=Ll ;
CALCUL_DE_HMINI(hmini);
HMINll:=HMINI;
oENO:=2l;
L:=L2;
CALCUL DE HMINI(hmini);
HMINI2~=HHINI;
If HMINll>HMINI2 THEN HMINI:=HMINll
ELSE HMINI:=HMINI2
END;
PROCEDURE C_19_C_l;
BEGIN ClrScr;
GotoXY(5, 10);~rite('l. POUTRE CONTINUE AYANT UNE POUTRE DE RIVE .');
GotoXY(5,12);~rite('2. POUTRE CONTINUE AYANT UN POTEAU OU MUR DE RIVE .');
GotoXY(25,14);~rite('FAITESVOTRE CHOIX----->(l ou 2)');
LireEntierXY(65,14,l,2,ck);
If ck=l then
Begin
RIVE:='P' ;CRG:=-1/24
Ero
ELSE
Begin
RIVE:='M' ;CRG:=-1/16;
Ero;
BEGIN
CRM:=1/14 ; CRD:=-1/10 ;CIG:=-l/ll ;CIM:=1/16 CID:=-l/ll
END;
END; {Fin de la procedure}
PROCEDURE C_19_D_1;
BEGIN
MRD:=CRD*WF*CsqrCLRD»*lE-6;
MRG:=CRG*WF*CsqrCLRG»*1E-6;
MRM:=CRM*WF*CsqrCLRM»*1E-6;
END;
PROCEDURE C_'9_D_2;
BEGIN
MID:=CID*WF*CsqrCLID»*lE-6;
MIG:=CIG*WF*CsqrCLIG»*1E-6;
MIM:=CIM*WF*CsqrCLIM»*lE-6;
END;
PROCEDURE C_19_D;
BEGIN
C_19_D_1;
C_19_D_2;
END;
PROCEDURE C 19 G 1;
BEGIN - --,
If ZG1<ZG2 THEN
If ZG2<ZG3 THEN
Begin ZG:=ZG3; EXIT; End
ELSE
Begin ZG:=ZG2; EXIT; End
ELSE
If ZG1<ZG3 THEN
Begin ZG:=ZG3; EXIT; END
ELSE
BEGIN ZG:=ZG1; EXIT; End;
END;{Fin de procedure}
PROCEDURE C_19_G;
BEGIN
ZG1:=absCMRG);
ZG2:=absCMRM);
ZG3:=absCMRD);
C_19_G_';
ZGR:=ZG;
ZG1:=absCMIG);
ZG2:=absCMIM);
ZG3:=absCMID);
C_'9_G_1;
ZGI:=ZG;
If ZGR>=ZGI THEN ZGRAND:=ZGR
ELSE
ZGRAND:=ZGI;
END;
PROCEDURE C 20 1 C;
BEGIN - --
CLRSCR;
REPEAT
GotoXYC10.3); WRITEC'ENTREZ LES DONN~ES SUIVANTES :');
GotoXYCS.6); WriteC'CHARGE TOTALE POND~R~E CEN KN/m) -------------------->');
GotoXYCS.8 ); WriteC·R~SISTANCE EN COMPRESSION DU B~TON CEN MPa )--------->');
GotoXYCS, 10);WriteC'CONTAINTE DE L"ACIER CEN MPa) ----------------------->');
GotoXYCS.12); Write('MASSE VOLUMIQUE DU B~TONCbéton Normal:Z400Kg/ffi3)-----> ');
GotoXYCS.14); WriteC'PORT~E ENTRE AXES DE LA TRAV~E DE RIVE CEN mm)------->');
GotoXYCS, 16); WriteC'PORT~E ENTRE AXES DE LA TRAV~E INT~RIEURE CEN mm)---->');
GotoXYCS, 18); WriteC'PORT~E AUX NUS DES APPUIS DE LA TRAV~E DE RIVE Cmm)-->');
GotoXYCS,ZO);WriteC'PORT~E AUX NUS DES APPUIS DE LA TRAV~E INT~RIEURECmm)'>');
LireReelXYC70, 6,1E-4.1E+10,WF);
LireReelXYC70.8,1E-4,1E+10,FC);
LireReeIXYC70,10,1E-4,S99.FY);
LireReeIXYC70,1Z.1E-4.1E+10.GC);
li 58
LireReelXY(70,14, lE-4, lE+l0,Ll);
LireReelXY(70,16,lE-4,lE+l0,L2);
LireReelXY(70,18,lE-4,(Ll-l),LR);
LireReelXY(70,20.1E-4,(L2-1),LI);
HighVideo;
Mot:='VOULEZ-VOUS FAIRE DES CORRECTIONS? (O/N)';
NorrnVideo;
REPEAT
GotoXY(l,23);ClrEol;
CentrageHessage(Mot,23);
UNTIL ReponseValide;
UNTIL Not OUI;
C_18_2;
C_19_C_l;
If TRAV>3 Then LID:=LI
Else LID:=(LR+LI)/2 ;
BEGIN
LRG:=LR; LRM:=LR ; LRD:=(LR+LI)/2
LIG:=(LR+LI)/2 ;LIM:=LI;
END;
C_19_D ;
END;
PROCEDURE C_20_1_A ;
BEGIN
ASMINI:=ROHINI~B~D ;ASMAX:=ROBBA~B~D
ClrSer;
ReverseVideo(True);
PROCEDURE rappels_enrobage_MODIFIE;
VAR CH :CHAR ;
BEGIN
clrscr;
highvideo;
mot:='RAPPELS IMPORTANTS:';
CentrageHessage(mot, 10);
mot:='R~SUM~ DES NORMES SUR L"ENROBAGE MINIMAL (CAN3M84)';
CentrageHessage(mot, 11);
GotoXY(5.13);Write('l. POUTRES ET POTEAUX------------------------->4omm');
GotoXY(5,14);Write('2. DALLES MURS ET DALLES NERVUR~ES------------>20mm');
GotoXY(5,15);Write('3. B~TON MIS EN PLACE DIRECTEMENT SUR LE SOL-->75mm');
normvideo;
REPEAT
CLS(17,20);
NormVideo;
GotoXY(10.17);Write('Entrez Enrobage (en mm)');
GotoXY(10,18);Write('Entrez le Diamètre des étriers (en mm)');
GotoXY(10,19);Write('Entrez le Diamètre des Gros Granulats (en mm)');
lirereelxy(65, 17,0.20, 10000,enro);
lirereelxy(65, 18, lE-l0,10DOD,de);
lirereelxy(65, 19, lE-ID, lE+4,dmax);
highvideo;
REPEAT
GotoXY(l,20);clrEOl;
CentrageMessage('VOULEZ-VOUS FAIRE DES CORRECTIOKS (O/K) ',20);
UNTIL reponsevalide;
NormVideo;
UNTIL NOT OUI;
END;
PROCEDURE CALCUL_ESPACEMENT_REEL_MODIFIE;
BEGIN
If N=l Then
Begin
If (b-2*enro-2*de-n*DO) >0 Then
begin espa:=100 ; DMAX1:=(4*dmax)/3 exit; end;
END;
ESPA:=(b-2*enro-2*de-n*dO)/(n-l);
DMAX1:=(4.0*dmax)/3;
END;{fin de la PROCEDURE}
PROCEDURE H_2_Espacement_MODIFIE;
BEGIN
ClrScr;
Gotoxy(10,5);Write('Section d"acier (en mm')=',asbd:l0:3);
Choix_des_Diametres(ddollar);
Calcul_Espacement_Reel_MODIFIE;
Verif_Espacement_Sur_Un_Lit(espa,dO,dmaxl,htot,nlit);
IF ESPA < DMAXI THEN
REPEAT
VERIF_ESPACEMENT;
UNTIL «ESPA >=DMAX1) AND (ESPA >=00) AND (ESPA >= 25»;
END;
PROCEDURE C_20_'_D;
BEGIN
. ClrScr; ReverseVideo(True);
GotoXY(10,10);Write('ENTREZ LA LARGEUR B(en mm)');
LireReelXY(50.10,lE-l0,lE+l0,B);
ReverseVideo(False);
ReverseVideo(TrUe);
GotoXY(10, 15);Write('LA HAUTEUR TOTALE MINIMALE (en mm) =',HMINI:l0:3);
ReverseVideo(False); Repeat Until Barre_Espacement;
Hauteur_Totale_OU_Utile;
END;
PROCEDURE c_20_6_2;
BEGIN
C_20_2_C;
If «IDENT='I') OR (IDENT='i'» Then
BEGIN
LRG:=LR; LRM:=LR; LRD:=LR;
C_19_D_l;
END
ELSE
BEGIN
LRG:=LR; LRM:=LR; LRD:=(LR+LI)/2; LIG:=(LR+LI)/2 LIM:=LI; LID:=(LR+LI)/2
C_19_D;
END;
C_20_1_D;
END;
~60
BEGIN
elrser;h;ghv;deo;
Mot:='TAPEZ (P) SI VOUS AVEZ TENU COMPTE DU POIDS PROPRE DE LA POUTRE';
CentrageMessage(mot,5);
mot:='DANS LE CALCUL 'DU MOMENT SI NON UNE AUTRE TOUCHE';
CentrageMessage(mot,7); Normvideo;
GotoXY(68,7>;
pdollar:=ReadKey;
Begin
IF «pdollar <>'P')AND(pdollar<>'p'» THEN
MF:=ABS(ZGRAND)*1.1;
End;
MF:=ABS(ZGRAND);
Calcul-pc_mini_max_Bcier(fy,fc,b1,robba,romini,krmini,krmax);
ClrSer;
mot:='HAUTEUR TOTALE MINIMALE (en mm) à RESPECTER= ';
CentrageMessage(mot, 10);
ReverseVideo(true);
GotoXY(62,1D); ~rite(hmini:12:3); REPEAT UNTIL Barre_Espacement; (DELAY(4000);}
ReverseVideo(false);
ehoix-pc_aeier(ro,kr,bd2); ClrSer;
Begin
GOTDXY(5,10);~rite('1. VOUS AVEZ DES VALEURS DE LA LARGEUR B à ESSAYER');
GDTDXY(5,12);~rite('2. VOUS VOULEZ QU"ON VOUS PROPOSE DES DIMENSIONS');
CentrageMessage('FAITES VOTRE CHOIX ----->(1 OU 2): ',14);
LireEntierXY(70,14,1,2,ek);
IF Ck=2 THEN
Begin
B:=exp(1/3*ln(BD2/sqr(1.75»);
0:= sqrt(BD2/B);
ASBD:=ro*B*D; ClrSer;ReverseVideo(True);
GotoXY(10.10); ~rite('LARGEUR PROPOS~E B (en mm) = ',b:10:2);
GotoXY(10.12); ~rite('HAUTEUR UTILE PROPOS~E 0 (en mm)='.D:10:2);
ReverseVideo(False);
REPEAT;
HIGHVIDEO;
CentrageMessage('ENTREZ LES VALEURS ARRONDIES QUE VOUS RETENEZ ',15);
GotoXY(15.18);~rite('LARGEURB (en mm) ');
GotoXY(15.20);~rite('HAUTEURUTILE 0 (en mm)');
L;reReelXY(55.18.1E-4.1E+10,B);
L;reReelXY(55.20,1E-4.1E+10,D); ASBD:=RO*B*D;
Mot:='VOULEZ-VOUS FAIRE DES CORRECTIONS? (O/N)';
NormVideo;
REPEAT
GotoXY(1.23);ClrEol;
CentrageMessage(Mot.23);
UNTIL ReponseValide;
UNTI L not OUI;
End
ELSE
Begin
dimensions-PQutre_seetion_aeier(B.D.RAP.ASBD,RO);
End;
ClrSer; ReverseVideo(True);
CentrageMessage('CALCUL D"ACIER POUR LE PLUS GRAND MOMENT A PARTIR DE CES DIMENSIONS',15);
ReverseV;deo(False); Repeat Until BARRE_ESPACEMENT;
H 1 ESPACEMENT;
H-3-HAUTEUR TOTALE;
ë_20_1_A; -
END;
END;
..-16i
PROCEOURE C_20_2_0;
Beg;n
IF «IDENT = 'l') OR (IDENT=';'» Then
Begin
LRG := LR;
LRH := LR;
LRD := LR;
C 19 0 1;
ZG1:=abs(MRG); ZG2:=abs(HRH); ZG3:=abs(HRD);
C_19_G_1; ZGRAND:=ZG;
End
ELSE
Begin
LRG := LR;
LRH := LR;
LRD := (LR+LI)/2;
LIG := (LR+LI)/2;
lIH := LI;
LlO := (LR+LI)/2;
C_19_D;
C_19_G
End;
H_2_3;
End; { F;n de la procedure}
PROCEDURE C_20_2;
Begin
C_20_2_C; C_20_2_D;
End;
PROCEDURE C_20_1;
BEGIN
C_20_1_C;
C_19_g;
H_2_3;
C_20_1_A;
END;
PROCEDURE H_5_1;
BEGIN
IF (DDOLLAR='O') OR (DDOLLAR='o') THEN
Begin
DOGR:=DO; NGR:=N; NLITGR:=NLIT ;
END
ELSE
BEGIN
D1GR:=D1 ;D2GR:=D2 ;N1GR:=N1;
N2GR:=N2 ;NGR:=N ;NLITGR:=NLIT;
END;
END;
PROCEDURE H_5_2;
BEGIN
IF (DDOLLAR='O') OR (DDOLLAR='o') THEN
Begin
DDHR:=DO; NHR:=N; NLITHR:=NLIT ;
END
ELSE
BEGIN
D1HR:=D1 ;D2HR:=D2 ;N1HR:=N1;
N2HR:=N2 ;NHR:=N ;NLITHR:=NLIT;
END;
END;
BEGIN
IF (DDOLLAR='O') OR (DDOLLAR='o') THEN
Beg;n
DooR:=DD; NDR:=N; NLITDR:=NLIT ;
END
ELSE
BEGIN
D1DR:=D1 ;D2DR:=D2 ;N1DR:=N1;
N2DR:=N2 ;NDR:=N ;NLITDR:=NLIT;
END;
END;
BEGIN
IF (DDOLLAR='O') OR (DDOLLAR='o') THEN
Begin
DOGI:=DD; NGI:=N; NLITGI:=NLIT ;
END
ELSE
BEGIN
D1GI:=D1 ;D2GI:=D2 ;N1GI:=N1;
N2GI:=N2 ;NGI:=N ;NLITGI:=NLIT;
END;
END;
PROCEDURE H_S_S;
BEGIN
IF (DDOLLAR='O') DR (DDDLLAR='o') THEN
Begin
DOMI:=DD; NMI:=N; NLITMI:=NLIT ;
END
ELSE
BEGIN
D1MI:=01 ;D2MI:=D2 ;N1MI:=N1;
N2MI:=N2 ;NMI:=N ;NLITMI:=NLIT;
END;
END;
BEGIN
IF (DDOLLAR='O') OR (DDOLLAR='o') THEN
Beg;n
0001:=00; NDI:=N; NLITDI:=NLIT ;
END
ELSE
BEGIN
0101:=01 ;0201:=02 ;N1DI:=N1;
N2DI:=N2 ;NDI:=N ;NLITDI:=NLIT;
END;
END;
PROCEDURE H_S;
BEGIN
H_2_ESPACEMENT_MooIFIE;
END;
A63
PROCEDURE C_19_A;
BEGIN
Calcul-pc_mini_max_acier(fy.fc.bl.robba.romini.krmini.krmax);
ClrScr;ReverseVideo(True);
HOT:='CALCUL DE LA SECTION D"ACIER DE GAUCHE VERS LA DROITE:
TRAV~E PAR TRAV~E';
CentrageHessage(HOT.15);ReverseVideo(False);
REPEAT UNTIL BARRE_ESPACEHENT;
ClrSCr;GotoXY(10,15); Write('ACIER POUR HOMENT DE GAUCHE N'l');
REPEAT UNTIL BARRE_ESPACEHENT;
HF:=ABS(HRG);
Calcul_Acier_B_et_D_Connues(kr,ro,asbd);
ASGR:=ASBD;
H_5;
H_5_1;
ARGR:=AR;
ClrSCr;GotoXY(10.15); Write('ACIER POUR HOHENT EN TRAVËE N'l');
REPEAT UNTIL BARRE_ESPACEHENT;
HF:=ABS(HRH);
Calcul_Acier_B_et_D_Connues(kr.ro,asbd);
ASHR:=ASBD;
H_5;
H_5_2;
ARHR:=AR;
ClrSCr;GotoXY(lD,15); Write('ACIER POUR HOMENT DE DROITE N'l');
REPEAT UNTIL BARRE_ESPACEHENT;
HF:=ABS(HRD);
Calcul_Acier_B_et_D_Connues(kr.ro,asbd);
ASDR:=ASBD;
H_5;
H_5_3;
ARDR:=AR;
END;
BEGIN
Calcul-pc_mini_max_acier(fy.fc,bl.robba,romini.krmini,krmax);
ClrSCr;GotoXY(10. 15); Write('ACIER POUR HOMENT DE GAUCHE N'2');
REPEAT UNTIL BARRE_ESPACEHENT;
HF:=ABS(HIG);
Calcul_Acier_B_et_D_Connues(kr.ro,asbd);
ASG 1: =ASBD;
H_5;
H_5_4;
ARGI:=AR;
ClrSCr;GotoXY(10.15); Write('ACIER POUR HOMENT DE HILIEU N'2');
REPEAT UNTIL BARRE_ESPACEHENT;
MF:=ABS(MIM);
Calcul_Acier_B_et_D_COnnues(kr,ro,asbd);
ASM 1: =ASBD;
H_5;
H_5_5;
ARMI:=AR;
ClrSCr;GotoXY(10,15); Write('ACIER POUR MOMENT DE DROITE N"2');
REPEAT UNTIL BARRE_ESPACEMENT;
MF:=ABS(MID);
Calcul_Acier_B_et_D_Connues(kr,ro,asbd);
ASDI :=ASBD;
H_5;
H_5_6;
ARDI:=AR;
END;
Begin
C 20 1 C;
C:20:(o;
End;
BEGIN
Writeln(LST);
WRITEln(LST.'·····LES DIMENSIONS RETENUES POUR TOUTE LA POUTRE SONT:·······');
WRITEln(LST);
WRITEln(LST. ' LARGEUR B (en mm) = , .B:10:3);
WRITEln(LST. ' HAUTEUR UTILE D (en mm) , .D:10:3);
WRITEln(LST. ' HAUTEUR TOTALE MINIMALE (en mm)= '.HMINI:10:3);
WRITEln(LST);
WRlTE ln(LST. ' ARMATURE MINIMALE (en mm2) '.ASMINI :10:3);
WRITE ln(LST. ' ARMATURE MAXIMALE (en mm2) , .ASMAX:10:3);
WRITEln(LST. ' CHARGE TOTALE PONDEREE (KN/m) = '.WF:8:3) ;
WRITEln(LST);
Writeln(LST.'·x·x·x RESULTATS FINALS POUR CHAQUE TRAVEE ·x·x·x');
WRITEln(LST);
Writeln(LST.' APPUI GAUCHE'.'
Writeln(LST);
'.' EN TRAVEE , ,. '.' APPUI DROIT 1 ) ;
IF«RIVE='P') OR (RIVE='p'» THEN
Writeln(LST.'COEFFICIENT "-1/24" '.'
IF«RIVE='M') OR (RIVE='m'» THEN
.
, , 11+1/14" ',' -1/9 1 1 1 ) ;
Writeln(lST.'COEFFICIENT.' "-1/16" '.' ',' "+1/14" 1,1 -1/911 1 ) ;
Writeln(LST.'PORT~E Ln(en mm)' lRG:10:2 ' ',LRM:10:2 LRD:10:2 );
Writeln(lST.'MOMENT (en KN.m) MRG:10:2.' '.MRM:10:2 MRD:10:2 );
writeln(lST);
Writeln(LST.'ACIER REQUIS(en mm2) '. ASGR:10:2.' '.ASMR:10:2 .ASDR:10:2);
Writeln(LST.'ACIER PREVU(en mm2) '. ARGR:10:2.' ',ARMR:10:2 .ARDR:10:2);
Writeln(LST);
Writeln(LST.' SI DIAHETRE UNIFORME ON A:');
Writeln(LST.'DIAMETRE DES BARRES(mm) '.DOGR:10:2 .DOMR:10:2. DODR:10:2);
Writeln(lST);
Writeln(LST.'NOMBRE TOTAL DE BARRES '.NGR:10:0 • NMR:10:0 , NDR:10:0 );
WRITEln(LST);
Writeln(LST.'SI DIAHETRE DIFFERENT ON A:');
1~5
IIriteln(LST>;
IIriteln(LST,'$S$S$$$$$$$S$$$$$$$$$$S$$$$$$$$$$$$$$$$$$$$$$$$$S$$$$$$$$$'l;
REPEAT UNTIL BARRE_ESPACEHENT;
END;
PROCEDURE IHPRESSION_2_TRAVEES;
BEGIN
1:=0;
Repeat
Inc( Il;
CLRSCR;
REVERSEVIDEO(Truel;
IIriteln('······RESULTATS FINALS POUR CHAQUE TRAVEE·········'l;
REVERSEVIDEO(FALSEl;
IIriteln(' APPUI GAUCHE',' EN TRAVEE ','APPUI DROIT 'l;
ReverseVideo(Truel;
GotoXY(15,24l;lIrite('APPUYEZ SUR < ESC> POUR SORTIR 'l;
ReverseVideo(Falsel;
UNTIL READKEY=#027;
REPEAT UNTIL Barre_Espacement;
ClrScr; ReverseVideo(Truel;
HOT:=('VOULEZ-VOUS AVOIR LES RESULTATS SUR IHPRIHANTES ? (O/Nl'l;
REPEAT
GotoXY(I,15l; ClrEol;
CentrageMessage(HOT,15l;ReverseVideo(Falsel;
Until REPONSEVALIDE;
IF OUI Then IHPRESSION_2_TRAVEES_IHP;
Halt;
END;
BEGIN
IIriteln(LST);
IIRITEln(LST,'******LES DIMENSIONS RETENUES POUR TOUTE LA POUTRE SONT:***');
IIR ilE 1n(LST) ;
IIRITEln(LST " LARGEUR B (en mm) ',B: 10:3);
IIRITEln(LST, ' HAUTEUR UTILE 0 (en mm) , ,0:10:3);
IIRITEln(LST, ' HAUTEUR TOTALE MINIMALE (en mm)= ',HMINI :10:3);
IIRITEln(LST);
IIRIlEln(LST, ' ARMATURE MINIMALE (en mm2) ',ASMINI :10:3);
IIRITEln(LST,, ARMATURE MAXIMALE (en mm2) , ,ASMAX:10:3);
IIRIlE In(LST,' CHARGE TOTALE PONDEREE (KN/m) ',IIF:8:3) ;
IIRIlEln(LST);
IIriteln(LST,'x*x*x*x*xRESULTATS FINALS POUR TRAVEE DE RIVE GAUCHE *x*x*x');
IIRITEln(LST);
IIriteln(LST,,
APPUI GAUCHE',' ',' EN TRAVEE
,, , , , , APPUI DROIT 1 ) ;
IIriteln(LST);
IF«RIVE='P') OR (RIVE='p'» THEN
IIriteln(LST,'COEFFICIENT
11_1/24" ',' ',' "+1/14" 1 1 , , , Il -1/91 1 1 ) ;
BEGIN
1:=0;
Repeat
Inc(l);
CLRSCR;
REVERSEVIDEO(True);
Writeln('·······RESULTATS FINALS TRAVEE DE RIVE GAUCHE •••••••• ');
REVERSEVIDEO(FALSE);
Writeln('
• APPUI GAUCHE',' ',' EN TRAVEE , , , , " APPUI DROIT
NLlTDR:l0:0);
If I=trav then 1:=0;
Repeat UNTIL BARRE_ESPACEHENT;
ReverseVideo(True);
GotoXY(15,24);write('APPUYEZ SUR < ESC> POUR SORTIR ');
ReverseVideo(False);
UNTIL READKEY=#027;
REPEAT UNTIL Barre_Espacement;
ClrScr; ReverseVideo(True);
HOT:=('VOULEZ-VOUS AVOIR LES RESULTATS SUR IHPRIMANTES ? (O/N)');
REPEAT
GotoXY(1,15); ClrEol;
CentrageHessage(HOT,15);ReverseVideo(False);
Until REPONSEVALIDE;
IF OUI Then IHPRESSION_rive_gauche_IHP;
END;
BEGIN
Writeln(LST>;
WRITEln(LST.'····LES DIMENSIONS RETENUES POUR TOUTE LA POUTRE SONT:·····');
WRITEln(LST>;
WR ITEln(LST , ' LARGEUR B (en mm) ',B: 10:3);
WRITEln(LST " HAUTEUR UTILE D (en mm) ',D: 10:3);
WR ITEln(LST • ' HAUTEUR TOTALE MINIMALE (en mm)= ',HMINI:10:3);
WRITEln(LST>;
WRITEln(LST.' ARMATURE MINIMALE (en mm2) ',ASMINI :10:3);
WRITEln(LST. ' ARMATURE MAXIMALE (en mm2) ',ASMAX: 10:3);
WRITE ln( LST • ' CHARGE TOTALE PONDEREE (KN/m) ',WF:8:3) ;
Writeln(LST>;
WRITEln(LST>;
Writeln(LST.'x·x·x·x RESULTATS FINALS POUR LA TRAVEE DE RIVE x·x·x·x·x');
WRITEln(LST>;
Writeln(LST.'
, APPUI GAUCHE'.'
Writeln(LST>;
.
',' EN TRAVEE , , , .' APPUI DROIT 1>:
.-1.69
PROCEDURE IMPRESSION_TRAVEE_DE_RIVE;
BEGIN
1:=0;
Repeat
Inc(i );
CLRSCR;
REVERSEVIDEO(True);
Writeln('x*x*x*RESULTATS FINALS POUR LA TRAVEE DE RIVEx*x*x*x*x');
REVERSEVIDEO(FALSE);
Writeln(' ,
, APPUI GAUCHE',' ',' EN TRAVEE ' , , , , APPUI DROIT 1 );
ReverseVideo(True);
GotoXY(1S,24);Write('APPUYEZ SUR < ESC> POUR SORTIR ');
ReverseVideo(False);
UNTIL READKEY=#027;
REPEAT UNTIL Barre_Espacement;
ClrScr; ReverseVideo(True);
MOT:=('VOULEZ-VOUS AVOIR LES RESULTATS SUR IMPRIMANTES? (O/N)');
REPEAT
GotoXY(1,1S); ClrEol;
CentrageMessage(MOT,1S); REVERSEVIDEO(FALSE);
Until REPONSEVALIDE;
IF OUI Then IMPRESSION_TRAVEE_DE_RIVE_IMP;
END;
PROCEDURE IMPRESSION_TRAVEE_INTER[EURE_IMP;
BEGIN
IIriteln(LST>;
IIriteln(LST,' RESULTATS FINALS POUR LA TRAVEE [NTERIEURE 1 );
IIriteln(LST>;
IIriteln(LST,'
, APPUI GAUCHE',' , , , EN TRAVEE , , ',' APPUI DROIT 1) ;
IIriteln(LST>;
IIriteln(LST,'COEFFICIENT , ,
1·1/1'" ',' ',' 11+1/16"','
, , , "-1/11" 1 );
PROCEDURE IMPRESSION_TRAVEE_[NTERIEURE;
BEGIN
1:=0;
Repeat
Inc(l);
CLRSCR;
REVERSEVIDEO(True);
IIriteln('x·x·x·x·xRESULTATS FINALS POUR LA TRAVEE INTER[EUREx·x·x·xx·x');
REVERSEVIDEO(FALSE);
IIriteln('
, APPUI GAUCHE',' ',' EN TRAVEE , , ',' APPUI DROIT 1 ) ;
IIriteln('COEFFICIENT ,, ,
1-1/11 1 ' ',' ',' 11+1/16 1 1 1 , ' , , "-1/11"
IIriteln('PORT~E Ln(en mm) "
L1G:10:2 " ',L1M:10:2 L1D:10:2 );
IIriteln('MOMENT (en KN.m)
MIG:10:2 " " MIM:10:2 MID:10:2 );
IIriteln('ACIER REQUIS(en mm')
ASGI :10:2,' " ASMI :10:2,' ASDI :10:2);
IIriteln('ACIER PREVU(en mm')
ARGI:10:2,' " ARMI:10:2,' , , ARDI :10:2);
IIriteln('DIAMETRE DES BARRES(mm)
DOGI :10:2,' " DOM 1:10:2,' Doo[:10:2);
Writeln('NOMBRE TOTAL DE BARRES
NGI:l0:0,' " NMI:1D:D " NDI:l0:0 );
ReverseVideo(True);
Writeln('SI DIAMETRE DIFFERENT ON A:');
ReverseVideo(False);
Writeln('PLUS GRAND DIAMETRE (mm)
D1GI: 10:2, ' OlMI: 10:2, ' 0101 :10:2);
Writeln('NBRE DE BARRES DE GRAND ~ ,
N1GI :10:0,' NIMI :10:0,' N1DI:l0:0 );
Writeln('PLUS PETIT DIAMETRE (mm)
D2GI:l0:2.' ,D2MI:l0:2,' 0201 :10:2);
Writeln('NBRE DE BARRES DE PETIT ~ "
N2GI: 10:0, ' ',N2MI: 10:0, ' ,, N2DI :10:0 );
Writeln('NOMBRE DE LITS: ,
NLlTGI :10:0,' • NLiTMI :10:0,' NLlTDI :10:0 );
If I=trav then 1:=0;
Repeat UNTIL BARRE_ESPACEMENT;
ReverseVideo(True);
GotoXY(15.24);Write('APPUYEZ SUR < ESC> POUR SORTIR ');
ReverseVideo(False);
UNTIL READKEY=#027;
ClrScr; ReverseVideo(True);
MOT:=('VOULEZ-VOUS AVOIR LES RESULTATS SUR IMPRIMANTES? (O/N)');
REPEAT
GotoXY(1.15); ClrEol;
CentrageMessage(MOT,15);ReverseVideo(False);
Until REPONSEVALIDE;
IF OUI Then IMPRESSION_TRAVEE_INTERIEURE_IMP;
HALT;
END;
PROCEDURE IMPRESSION_TRAVEE_RIVE_DROITE_IMP;
BEGIN
Writeln(LST);
Writeln(LST,' RESULTATS FINALS POUR LA TRAVEE DE RIVE DROITE 1) ;
Writeln(LST);
Writeln(LST.' ,,
, APPUI GAUCHE',' ',' EN TRAVEE , , ',' APPUI DROIT
Writeln(LST);
IF«RIVE='P') OR (RIVE='p'» THEN
Writeln(LST,'COEFFICIENT ,, ,
1-1/9 1 1 ' , ' ',' 1'+1/14 1 1 ' , . , , , "-1/24" 1) ;
IF«RIVE='M') OR (RIVE='m'» THEN
Writeln(LST,'COEFFICIENT ,, ,
1-1/9" ',' ',' '1.1/14" ',1 , , , "-1/16" 1 ) ;
Writeln(LST,'PORT~E Ln(en mm)
L1G:l0:2,' ',L1M:l0:2,' L1D:l0:2 »
Writeln(LST.'MOMENT (en KN.m)
MIG:l0:2 " " MIM:l0:2 " MID:l0:2 );
Writeln(LST, 'ACIER REQUIS(en mm')
ASGI: 10:2, ' " ASMI: 10:2.' ASDI :10:2);
Writeln(LST,'ACIER PREVU(en mm')
ARGI :10:2,' " ARMI: 10:2,' ARDI :10:2);
Writeln(LST);
Writeln(LST,' SI DIAMETRE UNIFORME ON A:');
Writeln(LST,'DIAMETRE DES BARRES(mm) "
0001 :10:2,' " DOM 1:10:2,' 0001:10:2);
Writeln(LST);
Writeln(LST,'NOMBRE TOTAL DE BARRES
NGI :10:0,' NMI :10:0 " NDI:l0:0 );
Writeln(LST);
Writeln(LST,'SI DIAMETRE DIFFERENT ON A:');
Writeln(LST,'PLUS GRAND DIAMETRE (mm) ,
D1GI:l0:2,' ',D1MI:l0:2,' 0101: 10:2);
Writeln(LST,'NBRE DE BARRES DE GRAND ~ ,
NIGI :10:0.' ',N1MI :10:0.' NIDI :10:0 );
Writeln(LST,'PLUS PETIT DIAMETRE (nm) "
D2GI :10:2,' ',02141 :10:2,' 0201 :10:2);
Writeln(LST,'NBRE DE BARRES DE PETIT; "
N2GI :10:0,' ',N2MI :10:0,' N2DI :10:0 ï:
Writeln(LST,'NOMBRE DE LITS:
NLlTGI:10:0,' NLlTMI:10:0,' NLlTDI:10:0 );
Writeln(LST);
Writeln(LST,'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$');
Repeat UNTIL BARRE_ESPACEMENT;
END;
BEGIN
1:=0;
Repeat
Inc(l);
CLRSCR;
REVERSEVIDEO(True);
Writeln('x*x*x**xRESULTATS FINALS POUR LA TRAVEE DE RIVE DROITE x*x*x*x');
REVERSEVIDEO(FALSE);
Writeln('
, APPUI GAUCHE',' ',' EN TRAVEE ' , ',' APPUI DROIT 1 ) ;
IF«RIVE='P') OR (RIVE='p'» THEN
,, ,
Writeln('COEFFICIENT
1.1/9 1 1 ' , ' ',' 11+1/14 1 1 ' , '
IF«RIVE='M') OR (RIVE='m'» THEN
.
, , , , '-1124' , );
Writeln('COEFFICIENT ,, ,
1-1/9 • ' , '
1 ',' 11+1/14 1 1
','
, , , "-1/16" 1 ) ;
Writeln('PORT~E Ln(en nm)
L1G:l0:2,' ',L1M:l0:2 LID:l0:2 );
Writeln('MOMENT (en KN.m)
MIG: 10:2 " " 14114: 10:2 1410:10:2 );
Writeln('ACIER REQUIS(en nm')
ASGI: 10:2, ' " ASMI: 10:2, ' ASDI:l0:2);
Writeln('ACIER PREVU(en nm')
ARGI: 10:2,' " ARMI: 10:2, ' ARDI: 10:2);
Writeln('DIAMETRE DES BARRES(nm)
DOGI: 10:2, ' " DOMI: 10:2, ' 0001 :10:2);
Writeln('NOMBRE TOTAL DE BARRES
NGI:l0:0,' " NMI:l0:0 " NDI:l0:0 );
ReverseVideo(True);
Writeln('SI DIAMETRE DIFFERENT ON A:');
ReverseVideo(False);
Writeln('PLUS GRAND DIAMETRE (nm)
D1GI:l0:2.' ,01141:10:2,' 0101: 10:2);
Writeln('NBRE DE BARRES DE GRAND; ,
N1GI:l0:0,' ',N1MI:l0:0,' N1DI:l0:0 );
Writeln('PLUS PETIT DIAMETRE (nm)
D2GI :10:2,' ,02141 :10:2,' 0201 :10:2);
Writeln('NBRE DE BARRES DE PETIT; ,
N2GI:l0:0,' ',N2MI:l0:0,' N2DI:l0:0 );
Writeln('NOMBRE DE LITS:
NLITGI:10:0.' ,NLlTMI:10:0,' NLlTDI :10:0 );
If I=trav then 1:=0;
Repeat UNTIL BARRE_ESPACEMENT;
ReverseVideo(True);
GotoXY(15.24);write('APPUYEZ SUR < ESC> POUR SORTIR ');
ReverseVideo(False);
UNTIL READKEY=#027;
ClrScr; ReverseVideo(True);
MOT:=('VOULEZ-VOUS AVOIR LES RESULTATS SUR IMPRIMANTES? (O/N)');
REPEAT
GotoXY(1.15); ClrEol;
CentrageMessage(MOT,15);ReverseVideo(False);
Until REPONSEVAlIDE;
IF OUI Then IHPRESSION_TRAVEE_RIVE_DROITE_IHP;
HAL T;
END;
BEGIN
C 20 6 2;
rapPeïs_enrobage_HODIFIE;
Calcul-pc_mini_max_8cier(fy,fc,b1,robba,romini,krmini,krmax);
BEGIN
C_20_S_2;
rappels_enrobage_HODIFIE;
Calcul-pc_mini_max_scier(fy,fc,b1,robba,romini,krmini,krmax);
Calcul-pc_mini_max_acier(fy,fc,b1,robba,romini,krmini,krmax);
PROCEDURE Saisie_HOMENTs_Connus;
BEGIN
CLRSCR;
REPEAT
HighVideo;
Hot:='VOULEZ-VOUS FAIRE DES CORRECTIONS? (O/N)';
NormVideo;
REPEAT
GotoXY(1,20);ClrEol;
CentrageHessage(Hot,20);
UNTIL ReponseValide;
UNTIL Not OUI;
END; (Fin de procedure>
Begin
ClrScr;
GotoXY(10,15);Write('ENTREZ LES HOMENTS TRAV~E PAR TRAV~E ');
REPEAT UNTIL BARRE_ESPACEHENT;
FOR 1:=1 to TRAV DO
BEGIN
REPEAT
ClrScr;
GotoXY(10,8);Write('DONNEZ LES HOMENTS (en KN.m) DE LA TRAV~E N°',I);
GotoXY(20,11);Write('A L"APPUI DE GAUCHE:');
GotoXY(20, 13);Write('EN TRAV~E :');
GotoXY(20,15);Write('A L"APPUI DE DROITE:');
LireReeIXY(65,11,-ZGRAND,ZGRAND,HGIll);
LireReeIXY(65,13,-ZGRAND,ZGRAND,HHIll);
LireReeIXY(65,15,-ZGRAND,ZGRAND,HDIIl);
HighVideo;
Mot:='VOULEZ-VOUS FAIRE DES CORRECTIONS? (O/N)';
NormVideo;
REPEAT
GotoXY(I.20);ClrEol;
CentrogeMessoge(Mot.20);
UNTIL ReponseVolide;
UNTIL not OUI;
ENO;{Fin de FOR)
END;
BEGIN
BEGIN
OO'HI] : =O;NM [II :=O;NLl TM [1] : =O;OIM[J 1 : =0;02M (1) : =0; NIM [J 1 : =0; N2M [II : =0;
BEGIN
000 [1] :=O;NO[1) :=O;NLlTO [1] :=0;010 [1] :=0;020 [1] :=0;Nl0 [1) :=0;N20 [1] :=0;
PROCEDURE TRAITEMENT;
BEGIN
ClrScr;ReverseVideo(True);
MDT:='CALCUL DE LA SECTION D"ACIER DE GAUCHE VERS LA DROITE
TRAV~E PAR TRAV~E';
CentrageMessage(MOT,1S);ReverseVideo(False);
REPEAT UNTIL BARRE_ESPACEMENT;
FOR 1:=1 TO TRAV DO
BEGIN
ClrSCr;GotoXY(10,1S); Write('ACIER POUR MOMENT DE GAUCHE N°',I);
REPEAT UNTIL BARRE_ESPACEMENT;
ASBD:=O; ASG[IJ:=O;ARG[IJ:=O;
MF:=ABS(MG[JJ );
Calcul_Acier_B_et_D_Connues(kr,ro,asbd);
ASG [/1 : =ASBD;
H_S;
H_S_G;
ARG[JJ :=AR;
ClrSCr;GotoXY(10,1S); Write('ACIER POUR MOMENT EN TRAV~E N°',I);
REPEAT UNTIL BARRE ESPACEMENT;
ASBD:=O;ASM[IJ:=O;ARM[IJ:=O;
MF:=ABS(MM[IJ);
Calcul_Acier_B_et_D_Connues(kr,ro,asbd);
ASM[IJ:=ASBD;
H_S;
H_S_M;
ARM[IJ :=AR;
ClrSCr;GotoXY(10,1S); Write('ACIER POUR MOMENT DE DROITE N°',I);
REPEAT UNTIL BARRE_ESPACEMENT;
ASBD:=O;ASD[IJ:=O;ARD[I]:=O;
MF:=ABS(MD[IJ );
Calcul_Acier_B_et_D_Connues(kr,ro,asbd);
ASO [JJ :=ASBD;
H_S;
H_S_D;
ARD[J] :=AR;
END;
END;
BEGIN
Writeln(LST>;
WRITEln(LST,'****LES DIMENSIONS RETENUES POUR TOUTE LA POUTRE SONT:***');
WRITEln(LST>;
WRITEln(LST, ' LARGEUR B (en mm) , ,B:10:3);
WRITEln(LST, ' HAUTEUR UTILE 0 (en mm) , ,0:10:3);
WRITEln(LST,' HAUTEUR TOTALE MINIMALE (en mm)= ',HMINI :10:3);
WRITEln(LST>;
WRITEln(LST,, ARMATURE MINIMALE (en mm2) ',ASMINI: 10:3);
WRITEln(LST,' ARMATURE MAXIMALE (en mm2) ',ASMAX: 10:3);
WRITEln(LST>;
Writeln(LST>;
WRITEln(LST>;
1:=0;
Repeat
Inc(l );
BEGIN
Writeln(LST);
Writeln(LST,' x·x·x· RESULTATS POUR LA TRAVËE No',I,' x*x*x*x*x 1);
Writeln(LST);
Writeln(LST,'
, APPUI GAUCHE',' ',' EN TRAVEE , , , , , APPUI DROIT 1 ) ;
Writeln(LST);
Writeln(LST,'MOMENT (en KNom)
MGII):10:2,' " MMII):10:2 " MDII) :10:2 );
Writeln(LST,'ACIER REQUIS(en mm')
ASGII) :10:2,' " ASMIII:10:2,' ASDII) :10:2);
Writeln(LST,'ACIER PREVU(en mm')
ARGll) :10:2,' " ARMIII:10:2,' " ARDll):10:2);
writeln(LST);
Writeln(LST,' SI DIAMETRE UNIFORME ON A:');
Writeln(LST,'DIAMETRE DES BARRES(mm) ,
DOGll) :10:2,' " DOMII) :10:2,' 000III: 10:2);
Wr i te ln(LST);
Writeln(LST,'NOMBRE TOTAL DE BARRES "
NGll):10:0 " " NMII):10:0 " NDII):10:0 );
Writeln(LST,'SI DIAMETRE DIFFERENT ON A:');
Writeln(LST,'PLUS GRAND DIAMETRE (mm) ,
D1GII) :10:2,' " D1MII) :10:2,' 010II): 10:2);
Writeln(LST,'NBRE DE BARRES DE GRAND ~ ,
N1GII) :10:0,' " N1MII) :10:0,' N1DII) :10:0 );
Writeln(LST,'PLUS PETIT DIAMETRE (mm)
D2GII) :10:2,' " D2MII) :10:2,' 020 li) :10:2);
Writeln(LST,'NBRE DE BARRES DE PETIT ~ ,
N2GII):10:0,' " N2Mll):10:0,' N2DII) :10:0 );
Writeln(LST);
Writeln(LST,'NOMBRE DE LITS: ,
NLlTGll) :10:0,' ',NLlTMII) :10:0,' NLlTDII) :10:0 );
Writeln(LST);
Writeln(LST>;
END;
Until 1=TRAV;
REPEAT UNTIL BARRE_ESPACEMENT;
END;
PROCEDURE IMPRESSION_MOMENTS_CONNUS;
BEGIN
1:=0;
Repeat
Inc(l );
BEGIN
CLRSCR;
REVERSEVIDEO(True);
Writeln(' RESULTATS POUR LA TRAVËE N°',I);
REVERSEVIDEO(FALSE);
Writeln(' ,
, APPUI GAUCHE',' ',' EN TRAVEE
,, , ',' APPUI DROIT 1 );
writeln;
Writeln('MOMENT (en KNom)
MGII) :10:2 " " MMII) :10:2 MDII) :10:2 );
writeln;
Writeln('ACIER REQUIS(en mm') ,
ASGII):10:2,' " ASMII):10:2,' ASDII) :10:2);
writeln;
Writeln('ACIER PREVU(en mm') ,
ARGIII:10:2,' " ARMll):10:2,' ARD 1II :10:2);
writeln;
REVERSEVIDEO(True);
~riteln('SI DIAMETRE UNIFORME ON A:');
REVERSEVIDEO(False);
~riteln;
~riteln('DIAMETREDES BARRES(mm)
DOG[II :10:l,' " DOM li 1:10:l,' 000[II: 10:l);
~riteln('NOMBRE TOTAL DE BARRES "
NG[II:10:0 " " NM[II:10:0 " ND[II:10:0 );
ReverseVideo(True);
~riteln('SI DIAMETRE DIFFERENT ON A:');
ReverseVideo(False);
~riteln;
~riteln('PLUS GRAND DIAMETRE (mm) ,
D1G[II:10:l,' ',D1M[II:10:l,' 010[11 :10:l);
~riteln('NBRE DE BARRES DE GRAND ~ "
N1G[1l :10:0,' " N1MlII :10:0,' N1D [II: 10:0 );
~riteln('PLUS PETIT DIAMETRE (mm)
DlG[11 :10:l,' " DlM[II: 10:l,' DlD [II: 10:l);
~riteln('NBRE DE BARRES DE PETIT ~ "
NlG[II:10:0,' " NlM[II:10:0,' NlD[11 :10:0 );
~riteln;
~riteln('NOMBRE DE LITS: ,
NUTG[II: 10:0,' ',NUTM [II: 10:0,' NUTD [II: 10:0 );
IF I=TRAV Then 1:=0;
REPEAT UNTIL BARRE_ESPACEMENT;
ReverseVideo(True);
GotoXY(15,l4);~rite('APPUYEZ SUR < ESC> POUR SORTIR ');
ReverseVideo(False);
END;
UNTIL READKEY=#Ol7;
END;
BEGIN
ClrSer;GotoXY(10,15);
ReverseVideo(True);
~rite('POUTRE CONTINUE: DIMENSIONS CONNUES et MOMENTS CONNUS 1);
ReverseVideo(False);
Repeat until BARRE_ESPACEMENT;
Saisie_MOMENTs_Connus;
RAPPELS_ENROBAGE_MODIFIE;
CONTINUE:=TRUE;
CALCUL_PC_MINI_MAX_ACIER(fy,fe,b1,robba,romini,krmini,krmax);
C 1B l;
cTrsër;
REVERSEVIDEO(TRUE);
GotoXY(10,10);write('ENTREZ LA LARGEUR DE LA POUTRE (en mm)-->');
REVERSEVIDEO(FALSE);
LireReelXY(70, 10, 1E-10,1E+10,B);
GotoXY(5,lO);~rite('LA HAUTEUR TOTALE MINIMALE (en mm) à RESPECTER ');
ReverseVideo(True);
GotoXY(65,lO);~rite(HMINI:10:3);
Repeat Until BARRE_ESPACEMENT;
ReverseVideo(False);
Hauteur_Totale_OU_Utile;
SAISIE DES MOMENTS;
DO:=0;D1:=O;Dl:=0;N10:=0;N1:=0;Nl:=0;N:=0;
TRAITEMENT;
ClrSer; C_lO_1_A;
IMPRESSION MOMENTS CONNUS;
Repeat Until BARRE=espaeement;
ClrSer; ReverseVideo(True);
MOT:=('VOULEZ-VOUS AVOIR LES RESULTATS SUR IMPRIMANTES? (O/N)');
REPEAT
GotoXY(1.15); ClrEOlr
CentrageMessage(MOT.15);ReverseVideo(False):
Until REPOHSEVALIDE;
IF OUI Then IMPRESSION_MOMENTS_CONNUS_IMP:
HALT;
END;
BEGIN
CLrScr;GotoXY(10.15):
ReverseVideo(True);
~rite(tPOUTRE CONTINUE: DIMENSIONS INCONNUES et MOMENTS CONNUS ');
ReverseVideo(False);
Repeat Until BARRE_ESPACEMENT;
REPEAT
ClrScr;HighVideo;
ReverseVideo(True);
GotoXY(5.8);~rite('DETERMINATION DES DIMENSIONS A PARTIR DU GRAND MOMENT :');
ReverseVideo(False);
GOTOXY(5.15);~rite('ENTREZ LE PLUS GRAND DES MOMENTS DE LA POUTRE (KN.m) ');
LireReeLXY(70.15.-1E+l0.1E+l0.ZGRAND);NORMVIDEO;
HighVideo; ZGRAND:=abs(ZGRAND):
Mot:='VOULEZ-VOUS FAIRE DES CORRECTIONS? (O/N)';
NormVideo;
REPEAT
GotoXY(1.20);CLrEoL;
CentrageMessage(Mot.20);
UNTIL ReponseValide;
UNTIL Not OUI;
Sai si e_MOMENTs_Connus;
CONTINUE:=TRUE;
C_18_2;
H 2 3'
DO:~O;Dl:=O;D2:=O;Nl0:=O;Nl:=O;N2:=O:N:=O;
SAISIE_DES_MOMENTS;
TRAITEMENT;
ClrScr; C_20_1_A;
IMPRESSION_MOMENTS_CONNUS;
Repeat Until Barre_Espacement;
ClrScr; ReverseVideo(True);
MOT:=('VOULEZ-VOUS AVOIR LES RESULTATS SUR IMPRIMANTES? (O/N)');
REPEAT
GotoXY(1.15); CLrEoL:
CentrageMessage(MOT.15);ReverseVideo(FaLse);
Until REPONSEVALIDE;
IF OUI Then IMPRESSION_MOMENTS_CONNUS_IMP;
HALT;
END;
PROCEDURE MOMENTS;
Begin
ClrScr; ZGRAND:=lE+l0;
ReverseVideo(True);
GotoXY(2.4); ~rite(' DONNER LE NOMBRE DE TRAVËES ');
ReverseVideo(False);
lireEntierXY(45,4,l,10,TRAV);
ReverseVideo(True);
GotoXY(3,8); Write('l');
GotoXY(3,ll); Write('2');
ReverseVideo(False);
GotoXY(5,8); rite('lES MOMENTS FlECHISSANTS , LES DIMENSIONS SONT CONNUS ');
GotoXY(5,ll); Write('lES MOMENTS FlECHISSANTS SONT CONNUS,
lES DIMENSIONS SONT INCONNUES');
CentrageMessage('Votre choix (1 OU 2)',16);
lireEntierXY(6D,16,l,2,Option);
Case Option OF
1 : CONT_DIM_ET_MOM_CONNUS;
2 : CONT_DIM_INCON_ET_MOM_CONNUS;
END;
END;
PROCEDURE FORFAITAIRE;
Begin
ClrScri continu:=True;
ReverseVideo(True);
GotoXY(2,4); Write(' DONNER lE NOMBRE DE TRAV~ES ');
ReverseVideo(False);
lireEntierXY(55,4,2,10,TRAV);
ReverseVideo(True);
GotoXY(3,10); Write('3');
GotoXY(3,13); Write('4;);
ReverseVideo(False);
Case Option OF
Begin
CONTINUE:=TRUE;
ClrScr;
GotoXY(5,15);ReverseVideo(True);
Write('DIMENSIONNEMENT DE POUTRE RECTANGULAIRE CONTINUE ');
ReverseVideo(False);Repeat Until BARRE_ESPACEMENT;
ClrScr;
ReverseVideo(True);
GotoXY(6,8); Write('lES MOMENTS FlECHISSANTS SONT CONNUS ');
GotoXY(6,ll); Write('UTllISATION DES COEFFICIENTS DU CODE
(METHODE FORFAITAIRE)') ;
ReverseVideo(False);
GotoXY(3,8); Write( '1 ');
GotoXY(3,ll); Write('2 ');
CentrageMessage('FAITES VOTRE CHOIX (1 OU 2)',14);
li reEntierXY(6D, 14,l,2,Option);
Case Option OF
1 : Ml»lENTS;
2 : FORFAITAIRE;
End;
REPEAT UNTIL BARRE_ESPACEMENT;
End.
USES Crt,Printer,Punit1,Punit2;
VAR
HG,HH,HD,ASG,ASH,ASD,NG,NG1,NG2,
.NG3,NH,NH1,NH2,NH3,ND,
ND1,ND2,ND3
:ARRAY [1•. 10) OF REAL
HHINI1,HHINI2,L1,L2,ASHINI,H,DDALLE,S1,S,
ATEHP,LGRAND,LPETIT,HOY
: Real;
CK, TRAV ,1
:INTEGER;
Mot : STRING79;
PROCEDURE DALLE_C_18_2;
BEGIN
DENO:=24; L:=l1
CALCUL_DE_HMINI(hmini);
HHINI1:=HMINI;
DENO:=28;
L:=L2;
CALCUL_DE_HMINI(hmini);
HMINI2:=HMINI;
If HHINI1>HHINI2 THEN HMINI:=HHINI1
ELSE HHINI:=HMINI2 ;
END;
PROCEDURE DALLE_calcul_acier_b_et_d_connues;
BEGIN
kr:=(1E+6·mf)/(b·sqr(D»;
eq1:=D.85·sqr(fy); eq2:=-1.02·fc·fy; eq3:=1.2·fc·kr;
delta1:=sqr(eq2)-(4.D·eq1·eq3);
IF delta1<D THEN
BEGIN
ClrScr; ReverseVideo(True);
CentrageHessage('AVEC CES MOMENTS IL FAUT AUGHENTER L"EPAISSEUR.',10);
ReverseVideo(False);
Repeat Until BARRE ESPACEMENT;
HALT;{·····ATTENTION·····}
END
ELSE
BEGIN
delta2:=sqrt(delta1);
rac1:=(-eq2-delta2)/(2.0·eq1);
rac2:=(-eq2+delta2)/(2.0·eq1);
IF rac1<=romini THEN ro:=rac1
ElSE
IF rac1<=robba THEN ro:=rac1
ELSE ro:=rac2;
END;
ASBD:=ro·b·d;
END;
PROCEDURE DALLE_C_20_1_A ;
BEGIN
ClrScr; ReverseVideo(True);
WRITEln('LES DIMENSIONS RETENUES POUR LE CALCUL DE LA DALLE SONT :');
ReverseVideo(False);
HighVideo; WRITEln;
WRITEln('LARGEUR DE LA BANDE DE CALCUL B (en mm) e ! ,B:10:3);
WRITEln('HAUTEUR UTILE 0 (en mm) =' ,0:10:3);
WRITEln('EPAISSEUR HINIHALE DE LA DALLE (en mm) =',HMINI:1D:3);
WRITEln; WRITEln('EPAISSEUR RETENUE (en mm) =' ,H:1D:3);
WRITEln; WRITEln('ARHATURE HINIMALE (en mm') =',ASMINI:1D:3);
REPEAT UNTIL BARRE_ESPACEHENt; NORHVIDEO;
END;
PROCEDURE DALLE_Saisie_HOMENTs_Connus;
BEGIN
CLRSCR;
REPEAT
GotoXY(10,5); WRITE('ENTREZ LES DONN~ES SUIVANTES :');
GotoXY(5,8 ); Write('R~SISTANCE EN COMPRESSION DU B~TON (EN HPa)---------->');
GotoXY(5,10 );Write('CDNTRAINTE DE L' 'ACIER (EN HPa)·············-·-·-----> ');
GotoXY(5,12); Write('HASSE VOLUHlQUE DU B~TON (Béton Normal:2400Kg/m3)··-·>');
GotoXY(5,14); Write('GRANDE PDRT~E ENTRE AXES DE LA TRAV~E DE RIVE(mm)---->');
GotoXY(5,16); Write('GRANDE PORT~E ENTRE AXES DE LA TRAV~E INT~RIEURE(mm)->');
LireReelXY(70, 8,lE-4,lE+l0,FC);
LireReelXY(70,10,lE-4,599,FY);
LireReelXY(70,12,lE-4,lE+l0,GC);
LireReelXY(70,14, lE-4, lE+l0,Ll);
LireReelXY(70,16, lE-4, lE+l0,L2);
HighVideo;
Hot:='VOULEZ-VOUS FAIRE DES CORRECTIONS? (O/N)';
NormVideo;
REPEAT
GotoXY(l,20);ClrEol;
CentrageHessage(Hot,20);
UNTIL ReponseValide;
UNTIL Not OUI;
END; {Fin de procedure}
PROCEDURE DALLE_SAISIE_DES_HOMENTS;
Begin
ClrScr;
GotoXY(10,10); Write('ENTREZ LE NOMBRE DE TRAV~ES: ') ;
LireEntierXY(60, 10,1, 10,TRAV);
GotoXY(10,15);Write('ENTREZ LES HOMENTS TRAV~E PAR TRAV~E ');
REPEAT UNTIL BARRE_ESPACEHENT;
FOR 1:=1 to TRAV DO
BEGIN
REPEAT
ClrScr;
GotoXY(10,8);Write('DONNEZ LES HOMENTS (en KN.m) DE LA TRAV~E N",I);
GotoXY(20,ll);Write('A L"APPUI DE GAUCHE:');
GotoXY(20, 13);Write('EN TRAV~E :');
GotoXY(20.15);Write('A L' 'APPUI DE DROITE:');
LireReelXY(65,ll.-lE+l0.1E+l0,HG[II);
LireReelXY(65,13.-1E+l0,lE+l0,HH[I]);
LireReelXY(65.15,-lE+l0,lE+l0,HD[II);
HighVideo; Hot:='VOULEZ-VOUS FAIRE DES CORRECTIONS? (O/N)';
NormVideo;
REPEAT
GotoXY(l,20);ClrEol; CentrageHessage(Hot,20);
UNTIL ReponseValide; UNTIL (Not Oui);
ENO;{Fin de FOR}
END;
PROCEOURE OALLE_TRAITEHENT_GAUCHE;
BEGIN
FOR 1:=1 to TRAV DO
BEGIN
ASBD:=O; HF:=ABS(HG[II);
DALLE_Calcul_Acier_B_et_D_Connues;
ASG [Il : =ASBD;
If ASGIII<ASHINI Then ATEHP:=ASHINI
Else ATEHP:=ASGIII;
NGIII:=(ATEHP*4)/(PI*ddalle*ddalle);
NGllll:=100/NGIII;
NG2111:=INT(NGllll);
NG3 [1) : =NGl [Il -NG2 [Il ;
IF NG3111>0.5 THEN NG2111:=10*NG2111+10
ElSE NG2[11 :=NG2[11*10 ;
END;
END;
PROCEDURE DALLE_TRAITEMENT_MILIEU;
BEGIN
FOR 1:=1 to TRAV DO
BEGIN
ASBD:=O;
MF:=ABS(MMlll );
DALLE_Calcul_Acier_B_et_D_Connues;
ASMlll :=ASBD;
If ASMlll<ASMINI Then ATEMP:=ASMINI
Else ATEMP:=ASMlll;
NM Ill: =(ATEMP*4 )/(PI*dda Lle*dda LIe);
NM11ll :=100/NMlll;
NM21ll :=INT(NM11Il);
NM31Il:=NM11Il-NM21Il;
IF NM31Il>0.S THEN NM21Il:=10*NM21Il+10
ELSE NM21Il:=NM21Il*10
END;
END;
PROCEDURE DALLE_TRAITEMENT_DROITE;
BEGIN
FOR 1:=1 to TRAV DO
BEGIN
ASBD:=O;
MF:=ABS(MDlll );
DALLE_CalcuL_Acier_B_et_D_Connues;
ASDlll:=ASBD;
If ASDlll<ASMINI Then ATEMP:=ASMINI
Else ATEMP:=ASDlll;
NDlll:=(ATEMP*4)/(PI*ddaLle*ddaLle);
ND11Il:=100/NDlll;
ND21ll :=INT(ND11Il);
ND31ll :=ND11Il-ND211l;
IF ND31Il>0.S THEN ND21Il:=10*ND21Il+10
ELSE ND21Il:=ND21Il*10 ;
END;
END;
PROCEDURE DALLE_IMPRESSION_MOMENTS_CDNNUS_IMP;
BEGIN
IIriteln(LST);
IIriteln(LST);
IIriteln(LST);
IIRITEln(LST,'LES DIMENSIONS RETENUES POUR LE CALCUL DE LA DALLE SONT :');
ReverseVideo(FaLse);
Highvideo;
IIRITEln(LST);
IIRITEln(LST,'LARGEUR DE LA BANDE DE CALCUL B (en mm) =' ,B:10:3);
IIRITEln(LST,'HAUTEUR UTILE 0 (en mm) =' ,0:10:3);
IIRITELn(LST,'EPAISSEUR MINIMALE DE LA DALLE (en mm) =' ,HMINI :10:3);
IIRITELn(LST);
IIRITEln(LST,'EPAISSEUR RETENUE (en mm) =' ,H:10:3);
IIRITEln(LST);
1:=0;
Repeat
INC(I »
IIriteln(LST);
IIriteln(LST);
IIriteLn(LST,'x*x*x*x*x*x*x*RESULTATS POUR LA TRAVËE N.',I,'x*x*x*x*x*x*x');
IIriteLn(LST);
IIriteLn(LST,'
• APPUI GAUCHE',' ',' EN TRAVEE , , ',' APPUI DROIT 1 ) ;
writeln;
IIriteln(LST,'MOMENT (en KN.m)
MGlIJ:10:2,' ',MMlll:10:2 MD Ill: 10:2 );
writeln(LST);
IIriteln(LST,'ACIER REQUIS (en mm')
ASGlll:10:2,' " ASMlll:10:2,' ASDlll :10:2);
Writeln(LST,'DIAMETRE DES BARRES (mm)
DDAlIE:l0:2,' ',DDALLE:l0:2,' DDALLE:l0:2);
Writeln(LST, 'ESPACEMENT CALCULE (mm)
NG21I1 :10:0,' " NM2111 :10:0,' ND21I1 :10:0);
Writeln(LSl);
Writeln(LST,'ESPACEMENT MAXI PERMIS(mm)',
S:10:0.' " S:10:0 S:10:0 );
Writeln(LST,'ARMATURE MINIMALE (mm')
ASMINI :10:2,' " ASMINI :10:2,' ASMINI: 10:2);
UNTIL I=trav;
Repeat UNTIL BARRE_ESPACEMENT;
END;
BEGIN
Sl:=3*H; If Sl<500 then s:=sl else s:=500
1:=0;
Repeat
Inc(I);
BEGIN
CLRSCR;
REVERSEVIDEO(True);
WriteLn(' RESULTATS POUR LA TRAVËE N",I);
REVERSEVIDEO(FALSE);
Writeln('
, APPUI GAUCHE',' , , , EN TRAVEE , , , " APPUI DROIT
writeln;
Writeln('MOMENT (en KN.m) ,
MGlll:10:2,' " MMlll:10:2 " MDIII :10:l );
wr;teln;
Writeln('ACIER REQUIS (en mm') ,
ASGlII :10:2,' " ASMIII :10:l,' ASD II]: 10:l);
Writeln('DIAMETRE DES BARRES (mm) ,
DDAllE:l0:2, ' " DDALLE:l0:l,' DDALLE:l0:l);
WriteLn('ESPACEMENT CALCULE (mm) ,
NG2111 :10:0,' NMlllI :10:0,' NDlll] :10:0);
WriteLn;
WriteLn('ESPACEMENT MAXI PERMIS(mm)',
S:10:0, , S:10:0 S:10:0 );
Writeln('ARMATURE MINIMALE (mm') ,
ASMINI :10:2,' " ASMINI :10:2,' ASMINI:10:l);
If I=trav then 1:=0;
Repeat UNTIL BARRE ESPACEMENT;
ReverseVideo(TrUe);-
GotoXY(15,24);Write('APPUYEZ SUR < ESC> POUR SORTIR 1);
ReverseVideo(False);
END;
UNTIL READKEY=#027;
END;
Begin
DALLE_DIM_et_MOH_CONNUS;
End.
USES Crt,Printer,Punitl;
VAR
SIGB,FE,B,H,MI,M,D,EPL,AFL,BEL,MUL,GS,MU,
AF,BE,EPS,SIGS,A,DELTAP,DP,DELTAPCALCULE,
SIGPS,FCZB,Y,MF1,MFZ,AP,BO,MO,HO,MN
:REAL;
CK : INTEGER;
PROCEDURE AFNDR_SAISIE_RECT_DOUBLEMENT;
BEGIN
AFNOR SAISIE RECT SIMP ARMEE;
HighVideo; - - -
ReverseVideo(true);
GotoXY(Z,ZO);Write('LA DISTANCE DE LA FIBRE LA PLUS COMPRIM~E AU');
GotoXY(Z,Z1);Write('CENTRE DE GRAVIT~ DE L"ACIER COMPRIM~ (en cm) -.->');
LireReeIXY(70.Z1,D.l,(D-O.5),DP);
ReverseVideo(False);
NormVideo;
END;
PROCEDURE AFNOR_VALEURS_LIMITES_DES_COEFFICIENTS;
Var
Rep : Integer;
Begin
ClrScr; ReverseVideo(True);
GotoXY(Z5,5);Write(' 1- SITUATIONS ACCIDENTELLES ');
GotoXY(25,6);Write(' Z· AUTRES SITUATIONS ');
CentrageMessage('FAITES VOTRE CHOIX .. > (1 ou Z) ',8);
ReverseVideo(FaLse);
LireEntierXY(6D,8,l,Z,Repl;
IF Rep = 1 Then
BEGIN
sigb:=(D.85*fcZ8l/1.15;
GS := 1.0;
END;
IF Rep = 2 Then
BEGIN
SIGB:=(O.85*fc28)/1.5;
GS := 1.15;
END;
EPL := FE/(200000.0*GS);
AFL := 3.5/(3.5+1000.0*EPL);
BEL := 1.0-0.4*AFL;
MUL := O.8*AFL*BEL;
End;
PROCEDURE AFNOR_RECHERCHE_de_CONTRAINTE_ACIER_COMPRIME;
Begin
DELTAP:=DP/D; SIGS:=FE/GS;
DELTAPCALCULE:=(3.5-(1000*EPL»/(3.5+(1000*EPL»;
IF DELTAP<=DELTAPCALCULE THEN SIGPS:=FE/GS
ELSE
Begin
EPS:=(3.5/1000)*(1-DELTAP)-(EPL*DELTAP);
SIGPS:=200000*EPS
End;
End;
PROCEDURE AFNOR_IMPRESSION_F_4_2_B;
Begin
________ .. >1);
GotoXY( 5,10);Write('LARGEUR DE LA POUTRE B (en cm)
GotoXY( 5,ll);Write('HAUTEUR TOTALE H (en cm) ............. _>1);
GotoXY( 5,12);Write('HAUTEUR UTILE 0 (en cm) ---- •• ----- >1);
GotoXY( 5,13);Write('MOMENT PONDËRË M (en KN.m) •••.•••••••••• >1);
GotoXY( 5,14);Write('ARMATURE TENDUE REQUISE (en cm') •••• _ ••• ~ ••••• >I);
ReverseVideo(True);
GotoXY(65,10);Write(B:10:3)
GotoXY(65,ll);Write(H:10:3)
GotoXY(65,12);Write(D:10:3)
GotoXY(65,13);Write(M:10:3)
GotoXY(65,14);Write(A:10:3)
ReverseVideo(False);
END;
PROCEDURE AFNOR_CALCUL_ARMATURE_DOUBLEMENT;
BEGIN
MU:=(1000*M)/(SIGB*B*sqr(D»;
If MU<=MUL THEN
BEGIN
ClrScr;
HighVideo;
CentrageMessage('LA POUTRE SE COMPORTE COMME UNE POUTRE ARMËE
UNIQUEMENT EN TENSION '.12);
NormVideo;
Repeat Until BARRE_ESPACEMENT;
Afnor_Armature_Rect_Simple_Armee;
Afnor_lmpression_Des_Resultats_Tendue;
Repeat Until BARRE_ESPACEMENT;
Halt;
END
ELSE
BEGIN
Afnor Recherche De Contrainte Acier Comprime;
Y:=Afï*D ; - - --
MF1:=MUL*SIGB*B*(sqr(D»*O.OOl ;
MF2:=M·MF1;
AP:=(MF2*1000)/«D-DP)*SIGPS);
A:=«MF1*1000)/(BEL*D*SIGS»+(AP*(SIGPS/SIGS»
END;
END;{Fin de procedure}
PROCEDURE AFNOR_IMPRESSION_DOUBLEMENT;
Begin
ClrScr;
CentrageMessage('POUTRE RECTANGULAIRE COMPORTANT : 1,5);
CentrageMessage('ARMATURES TENDUES ET COMPRIMËES 1,6) ;
ReverseVideo(True); GotoXY(5.8);
Write('DISTANCE DE LA FIBRE LA PLUS COMPRIMËE AU 1 ) :
GotoXY(5.9);Write('CENTRE DE GRAVITË DE L"ACIER COMPRIMË (en cm) ');
ReverseVideo(False);
GotoXY(50.9);Write(' ------------>');
ReverseVideo(True);
GotoXY(65.9);Write(DP:10:3);
ReverseVideo(False);
AFNOR IMPRESSION F 4 2 B;
ReverseVideo(True); - -
GotoXY(5.15);Write('ARMATURE COMPRIMËE (en cm')
GotoXY(65.15);Write(AP:10:3);
ReverseVideo(False);
REPEAT UNTIL BARRE_ESPACEMENT
Halt;
END;
PROCEDURE AFNOR_Armature_rect_simple_Armee;
BEGIN
M:=ABS(MI); MU:=(M*1000)/(SIGB*b*sqr(D»;
IF MU>MUL THEN
Begin
ClrScr;HighVideo;
GOTOXY(10,10);Write('LA SECTION DOIT ET RE ARMËE DOUBLEMENT');
NDRMVIDEO;
GOTOXY(2.15);Write('ENTREZ LA DISTANCE DE LA FIBRE LA PLUS
COMPRIMËE à L"ACIER AS"(en cm)');
LireReelXY(76.15.0.5.(D-O.5).DP);
Afnor Calcul Armature Doublement;
Afnor:lmpression_Doubïement;
Repeat Until BARRE_ESPACEMENT;
Halt;
End {Fin de THEN}
ELSE
BEGIN
AF:=(1-sqrt(1-2*MU»/O.8
BE:=1-0.4*AF;
If AF<=O.2593 THEN EPS:=10*lE-3
Else
If AF>l THEN Begin
ClrScr; HighVideo;
GotoXY(10.10);WRITE('IMPOSSIBILITË CAR a >1 ');
Repeat Until BARRE_ESPACEMENT;
HALT; NORMVIDEO;
End {fin de THEN}
Else
EPS:=(3.5/1000)*«1/AF)·1);
IF EPS>=EPL THEN SIGS:=FE/GS
ELSE SIGs:=200000*EPS;
END; (Fin du grand ELSE)
A:=(M*1000)/(BE*D*SIGS) ;
END; ( Fin de la procedure)
PROCEDURE AFNOR_DESIGN_RECT_SIMPLE_PRINCIPAL1;
BEGIN
ClrScr;
ReverseVideo(True);
CentrageMessage('DIMENSIONNEMENT DE POUTRE RECTANGULAIRE
SIMPLEMENT ARMEE ',15);
ReverseVideo(False);
Repeat Until BARRE_ESPACEMENT;
Afnor_Saisie_Rect_Simp_Armee;
Afnor_Valeurs_Limites_Des_Coefficients;
Afnor_Armature_Rect_simple_Armee;
Afnor_lmpression_Des_Resultats_Tendue;
END;
PROCEDURE AFNOR_Saisie_POUTRE_EN_TE_SIMPLE;
Begin
ClrScr;
REPEAT
CentrageMessage('ENTREZ LES DONN~ES SUIVANTES' ,3);
GotoXY(1,6);Write('LA R~SISTANCE EN COMPRESSION à 28 Jours DU B~TON(MPa)-->');
GotoXY(1,8);Write('LA LIMITE D"~LASTICIT~ DE L"ACIER (en MPa)----------->');
GotoXY(1,10); Write('LA LARGEUR DE LA TABLE DE COMPRESSION (en cm)-------->');
GotoXY(1,12); Write('L"EPAISSEUR DE LA TABLE DE COMPRESSION (en cm)------>');
GotoXY(1,14); Write('LA LARGEUR DE LA NERVURE (en cm)-------------------->');
GotoXY(1,16); Write('LA HAUTEUR TOTALE DE LA SECTION (en cm)-------------->');
GotoXY(1,18); Write('LA HAUTEUR UTILE DE LA SECTION (en cm)--------------->');
GotoXY(1,20); Write('LE MOMENT POND~R~ (en KN.m)------------------------->');
LireReelXY(65,6, 1E-10,1E+12,Fc28);
LireReelXY(65,8, 1E-10~ 1E+12,FE);
LireReelXY(65, 10, 1E-10,1E+12,B);
LireReeIXY(65,12,1E-10,1E+12,HO);
LireReelXY(65, 14, 1E-10,1E+12,BO);
LireReelXY(65, 16, 1E-10,1E+12,H);
LireReeIXY(65,18,(HO-0.5),(H-0.5),D);
LireReelXY(65,20,-1E+10,1E12,MI);
REP~AT
GotoXY(15,23);CLREOL;
HighVideo;
CentrageMessage('VOULEZ-VOUS FAIRE DES CORRECTIONS ?(0/N)',23);
NormVideo;
Until ReponseValide;
Until Not OUI;
M := ABS(MI);
End;
PROCEDURE Afnor_ARMATURE_TENDUE_TE_SIMPLE;
BEGIN
MO:=(SIGB*B*HO)*(D-(HO/2»*1E-3;
If M<=HO THEN
Begin
ClrScr;
GotoXY(5,15);Write('ON PEUT DIMENSIONNER COMME UNE POUTRE RECTANGULAIRE
SIMPLEMENT ARM~E.');
A90
Repeat Until BARRE_ESPACEMENT;
Afnor_Armature_Rect_SimpLe_Armee;
Afnor_lmpression_Des_Resultats_Tendue;
REPEAT UNTIL BARRE ESPACEMENT;
Hal t; -
END
ELSE
BEGIN
MN:=M-(SIGB*(B-BO)*HO*(D-HO/Z)*IE-3);
MU:=(MN*IE+3)/(SIGB*BO*sqr(D»;'
IF MU<=MUL THEN
BEGIN
AF:=(I-sqrt(I-Z*MU»/O.8;
BE:=(1-0.4*AF);
If AF<=O.Z593 THEN EPS:=10*IE-3
ELse
1f AF>1 THEN
Begin
CLrScr; HighVideo;
GotoXY(10.10);WRITE('IMPOSSIBILIT~ CAR a >1 ');
NormVideo;
REPEAT UNTIL BARRE_ESPACEMENT;
HaIt;
End {fin de THEN}
Else
EPS:=(3.5/1000)*«I/AF)-I);
IF EPS>=EPL THEN SIGS:=FE/GS
ELSE SIGS:=ZOOOOO*EPS;
A:=(1000*MN)/(BE*D*SIGS)+(SIGB*(B-BO)*HO)/(SIGS);
END
ELSE
BEGIN
HighVideo;
MOT:='LI FAUT ARMER DOUBLEMENT CETTE POUTRE EN T~ ';
CentrageMessage(MOT.15);
NORMVIDEO;
Repeat Until BARRE_ESPACEMENT;
ClrScr;
ReverseVideo(True);
GotoXY(I. 8); Write('LA DISTANCE QUI S~PARE LA FIBRE LA PLUS COMPRIM~E');
GOTOXY(I. 9); Write('DU CENTRE DE GRAVIT~ DE L"ACIER COMPRIM~(cm)------>');
REVERSEVIDEO(False) ;
LireReeIXY(65.9.1E-3.(D-O.001).DP);
AFNOR_AC IER_TENDU_COMPR IME_TE;
END;
END;
END;
PROCEDURE AFNOR_IMPRESSION_POUTRE_TE;
Begin
GotoXY(5.10);Write('LARGEUR DE LA TABLE DE COMPRESSION (en cm) .... >1);
GotoXY(5. 11);Write('LARGEUR DE LA NERVURE (en cm) ____ >1);
GotoXY(5.1Z);Write('EPAISSEUR DE LA TABLE DE COMPRESSION (en cm) .... >');
GotoXY(5.14);Write('HAUTEUR TOTALE H (en cm) ___ ->1);
GotoXY(5.15);Write('HAUTEUR UTILE 0 (en cm) ____ >1);
GotoXY(5.17);Write('MOMENT POND~R~ M (en KN.m) ___ ->1);
GotoXY(5.18);Write('ARMATURE TENDUE REQUISE (en cm') _. __ >1);
ReverseVideo(True);
GotoXY(57.10);Write(B:l0:3) ;
GotoXY(57.11);Write(BO:l0:3) ;
GotoXY(57.1Z);Write(HO:l0:3) ;
GotoXY(57.14);Write(H:l0:3)
GotoXY(57.15);Write(D:l0:3)
GotoXY(57.17);Write(M:l0:3)
GotoXY(57.18);Write(A:l0:3)
ReverseVideo(False);
END;
131
PROCEDURE AFNOR_IMPRESSION_TE_SIMPLE;
BEGIN
ClrScr;
MOT:='RESULTATS FINALS POUTRE EN T~ SIMPLEMENT ARM~E .,.
-,
CentrageMessage(MOT,7);
AFNOR_IMPRESSION_POUTRE_TE;
Repeat Until BARRE_ESPACEMENT; Halt;
ENO;
PROCEDURE AFNOR_IMPRESSION_DOUBLEMENT_TE;
BEGIN
ClrScr;
ReverseVideo(True);
MOT:='RESULTATS FINALS POUTRE EN T~ DOUBLEMENT ARM~E :';
CentrageMessage(MOT,5);
ReverseVideo(False);
GotoXY(5, 8); Write('LA DISTANCE QUI S~PARE LA FIBRE LA PLUS COMPRIM~E');
GOTOXY(5, 9); Write('DU CENTRE DE GRAVIT~ DE L' 'ACIER COMPRIM~(en cm)--->');
REVERSEVIDEO(TRUE) ;
GOTOXY(57, 9); Write(DP:10:3);
ReverseVideo(FALSE);
AFNOR_IMPRESSION_POUTRE_TE;
GOTOXY(5,20);Write('SECTION D"ACIER COMPRIM~ (cm') ---->');
REVERSEVIDEO(TRUE);
GOTOXY(57,20);Write(AP:10:3);
REVERSEVIDEO(FAISE);
Repeat Until BARRE_ESPACEMENT; Halt;
END;
PROCEDURE AFNOR_DESIGN_TE_SIMPLE_PRINCIPAL3;
BEGIN
ClrScr;
ReverseVideo(True);
CentrageMessage('DIMENSIONNEMENT DE POUTRE EN TE SIMPLEMENT ARMEE ',15);
ReverseVideo(False);
Repeat Until BARRE_ESPACEMENT;
AFNOR_SAI SIE_POUTRE_EN_TE_SIMPLE;
AFNOR_VALEURS_LIMITES_DES_COEFFICIENTS;
AFNOR_ARMATURE_TENDUE_TE_SIMPLE;
AFNOR_IMPRESSION_TE_SIMPLE;
END;
PROCEDURE AFNOR_Saisie_POUTRE_EN_TE_DOUBLEMENT;
Begin
ClrScr;
REPEAT
CentrageMessage('ENTREZ LES DONN~ES SUIVANTES',1);
GotoXY(1. 4); Write('LA DISTANCE QUI S~PARE LA FIBRE LA PLUS COMPRIM~E');
GOTOXY(1. 5); Write('DU CENTRE DE GRAVIT~ DE L"ACIER COMPRIM~ (cm)----->');
GotoXY(1.7);Write('LA R~SISTANCE EN COMPRESSION à 28 Jours DU B~TON (MPa)->');
GotoXY(1.9 ); Write('LA LIMITE D"~LASTICIT~ DE L' 'ACIER (en MPa)---------> ');
GotoXY(1.11); Write('LA LARGEUR DE LA TABLE DE COMPRESSION (en cm)--------> ');
GotoXY(1,13); Write('L"EPAISSEUR DE LA TABLE DE COMPRESSION (en cm)------>');
GotoXY(1,15); Write('LA LARGEUR DE LA NERVURE (en cm)-------------------->');
GotoXY(1,17); Write('LA HAUTEUR TOTALE DE LA SECTION (en cm)-------------->');
GotoXY(1.19); Write('LA HAUTEUR UTILE DE LA SECTION (en cm)--------------->');
GotoXY(1.21); Write('LE MOMENT POND~R~ (en KN.m) ------------------------>');
LireReeIXY(65,5,1E-10.1E+12,DP);
LireReelXY(65.7.1E-10.1E+12.Fc28);
LireReelXY(65.9,1E-10.1E+12.FE);
LireReelXY(65.11, 1E-10, 1E+12.B);
LireReeIXY(65.13,1E-10.1E+12.HO);
LireReeIXY(65,15.1E-10.1E+12.BO);
LireReeIXY(65,17.1E-10.1E+12.H);
LireReeIXY(65,19.(HO-O.5),(H-O.5).D);
LireReeIXY(65,21.-1E+10,1E12,MI);
REPEAT
GotoXY(15.24);CLREOL;
HighVideo;
CentrageMessage('VOULEZ-VOUS FAIRE DES CORRECTIONS 7(O/N)'.23);
NormVideo;
Until ReponseValide;
Until Not OUI;
M := ABS(MI);
Ero;
PROCEDURE Afnor_Recherche_Contrainte_Compression_TE;
Begin
DELTAP:=DP/D; SIGS:=FE/GS;
DELTAPCALCULE:=«3.5*AFL)-(1000*EPL*AFL»/3.5;
IF DELTAP<=DELTAPCALCULE THEN SIGPS:=FE/GS
ELSE
Begin
EPS:=(3.5*(AFL-DELTAP»/(1000*AFL);
SIGPS:=200000*EPS
Ero;
Ero;
PROCEDURE AFNOR_Acier_terou_Comprime_TE;
BEGIN
MN:=M-(SIGB*(B-BO)*HO*(D-HO/2»*1E-3;
MU:=(MN*1000)/(SIGB*BO*sqr(D»;
If MU<=MUL THEN
BEGIN
CLRSCR;HIGHVIDEO; GOTOXY(10,15);
Write('ON PEUT DIMENSIONNER COMME UNE POUTRE EN TË SIMPEMENT ARMËE');
REPEAT UNTIL BARRE ESPACEMENT;
Afnor_armat~re_teroue_TE_simple;
Afnor_lmpression_TE_simple;
END
ELSE
Begin
MF1:=(MUL*sigb*BO*sqr(D)*1E-3)+(SIGB*(B-BO)*HO*(D-HO/2)*1E-3);
MF2:=M-MF1;
Afnor_Recherche_Contrainte_Compression_TE;
If MF2>=(O.4*M) THEN MF2:=O.4*M;
AP:=(MF2*1000)/«D-DP)*SIGPS);
A:=(MUL*SIGB*BO*D)/(BEL*SIGS)+(SIGB*(B-BO)*HO)/SIGS+(AP*SIGPS)/SIGS
AFNOR_IMPRESSION_DOUBLEMENT_TE;
Ero;
END;
PROCEDURE AFNDR_DESIGN_TE_DOUBLEMENT_PRINCIPAL4;
BEGIN
ClrScr;
ReverseVideo(True);
CentrageMessage('DIMENSIONNEMENT DE POUTRE EN TE
DOUBLEMENT ARMEE ',15);
ReverseVideo(False);
Repeat Until BARRE_ESPACEMENT;
Afnor_saisie-Pautre_en_te_doublement;
Afnor_Valeurs_limites_des_coefficients;
Afnor_acier_terou_comprime_TE;
END;
BEGIN
ClrScr;
Cadre(12,10,23,70,'B',2,14);
ReverseVideo(True);
GotoXY(12,13); Write('1. POUTRE RECTANGULAIRE SIMPLEMENT ARM~E ');
GotoXY(12,15); Write('2. POUTRE RECTANGULAIRE OOUBLEMENT ARM~E ');
GotoXY(12,17); Write('3. POUTRE EN T~ SIMPLEMENT ARM~E ');
GotoXY(12,19); Write('4. POUTRE EN T~ OOUBLEMENT ARM~E ');
GotoXY(12,21); Write('5. RETOUR AU MENU ');
ReverseVideo(False);
CentrageHessage('ANNONCER VOTRE CAS --> (1, 2,3,4 ou 5) ',24);
LireEntierXY(68,24,1,5,CK);
Oelay(600);
CASE CK OF
1: AFNOR_OESIGN_RECT_SIMPLE_PRINCIPAL1;
2: AFNOR OESIGN RE CT OOUBLEMENT PRINCIPAL2;
3: AFNOR=OESIGN=TE_SÏMPLE_PRINCÏPAL3;
4: AFNOR_OESIGN_TE_OOUBLEMENT_PRINCIPAL4;
5: HALT;
ENO; ( Ou CASE Key OF )
ENO.
Références bibliographiques
Editeur 1988.
5°) Calcul des ouvrages en béton armé suivant les règles BAEL80,
195
.--
i
• ~_._. _ ~ __ • • •• _ "_ ~ " ' _ _ H~ ~
dimension des 10 JO
barres n°
1
diamètre nominal 11 J 16 0 19.5 '25. ) 1 29.9 35.7
en l!DD i 1 •
:
aire d'une barre 2CO 300 - ""'.'"\
:uv 1000 1
en =2
1
espacement des
barres en mm 1 1
1 !
80 1230 2500 8750
lrn ! ' . 1 ! 1 12500
1 1
1
120 cl3] 1 1(;07 2500 .:i 1!;7 5833 8333
140 71":' 1/,29 21 i,j 'i) ï l ')000 7ILJ3
160
180
6";
-,
555
I Î:
11 l l
.J
1875
1
27; S 1
-:;S39
J,17c:.
,," ./ 6250
5556
1
200 SOL! ~500 3500 5000
1 i
220
240
~)5 909 i ~182
1
"
260 385 769 :::C,g:: 1
1
1
J33~
280 357 71 Li 1071 2500 < '.)! -
!
300 '"~
.,-,J 667 1000 1 ~J1J 1
1 1
320 -~ ~ .~
-. - . 625 93:::--
1,
1
!
340 !
360
,380
:29":-
275
263
538
556
526
'II g;s
263:
~ ..
400 250 500 1
':':':' ..i (
------ --+---------
420 23S .:, j 0
440 227 /,55
460
480
,...., i -
~s ~~
. 1:35
I, " ï '. '--- .' - !
500
-
2De
i ~"
"';""-'
--," 0'
_~,v~
1
'.
8[, 1
1 !