0% ont trouvé ce document utile (0 vote)
325 vues218 pages

Pfe GC 0225

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1/ 218

'"

iRtpubliqut bu' ~tntgal

,ECOLE POLYTECHNIQUE DE THIES

PROJ]~T
DE
FIl'J D'El'lJD:ES

1
TITRE: Œ>NCEPTION D'lIN LOGICIEL DE DI~SIONNEHENT DES POUfRES ET DALLES

EN BJrn>N ARME SUIVANT LES NORMES CANADIENNE (CAN 3. A23. 3. M84) _

ET FRANCAISE (BAEL.83)

AUTEUR: Hr ADJAGBOM Sylvain Médard

DŒ.ECTEUR: Hr 11IIAH El Hadj::.Hamadou

CO·-DJRECTEUR,"'"'-: _
GENIE: CIVIL
=------
DA~'E: JUIN 1990
A mes Parents

A mes frères et soeurs

A ma future épouse

A tous mes amis

i
REM E Rel E MEN T S

Nous remercions très sincèrement notre directeur de projet,

Monsieur EL HADJ MAMADOU THIAM qui n'a ménagé aucun effort pour la

réussite effective de ce projet.

Que ces quelques lignes témoignent de toute notre gratitude à

l'égard de tous les professeurs de l'Ecole Polytechnique de Thiès

qui nous ont donné les notions qui ont constitué des pré-requis à

ce projet.

Nous remercions également les techniciens du centre de calcul

pour leur collaboration effective.

Nous sommes également redevables à l'ensemble des Élèves-

Ingénieurs en particulier: Accrombessy Franck, Accrombessy Patrick,

Anato Pascal , Gaga Simplice, Houèdokoho Narcisse, okey Vladimir

et sossou Ludovic qui nous ont aidé pour l'arrangement des textes

et programmes.

Nous tenons à remercier enfin tous ceux qui de près ou de loin

nous ont apporté leurs soutiens moraux ou matériels.

ii
SOM MAI R E

Ce rapport sanctionne un projet de fin d'étude. L'objectif visé

par ce projet, est de mettre au point un logiciel d'analyse et de

dimensionnement des poutres et dalles en béton armé suivant les

normes Canadienne CAN3A23.3M84) et Française ( BAEL83 ).

Les concepts de base utilisés sont ceux des états limites

ultimes de contrainte. Après une brève introduction montrant

l'utilité d'une telle étude; nous procéderons au chapitre II à un

rappel des notions fondamentales du calcul aux états limites et à

l'établissement des formules de design du logiciel au chapitre III.

Le chapitre IV donne les procédures utilisées pour le développement

du programme ainsi que les explications nécessaires à l'utilisation

du logiciel. Le logiciel écrit en Turbo Pascal (version 4) a été

traité à l'aide des différents exemples tirés d'ouvrages portés en

référence.

Les résultats obtenus par le logiciel pour les différentes

catégories de poutres et dalles sont en acqord avec ceux de ces

livres, malgré quelques différences mineures explicitées dans le

chapitre V : Conclusions et Recommandations. ILs nous ont permis

aussi de nous assurer de la validité du programme.

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

aux états limites de contraintes 3


2.1 Les différents états limites 3
2.1.1 Etat limite ultime 3
2.1.2 Etat limite de service 4
2.2 Charges, combinaison de charges et facteurs
de sécurité ........................ 4
2 .2 . 1 Les charges ............................. 4
2.2.2 Facteurs de sécurité 5
2.2.3 Combinaison de charges :. 5
2.2.4 Diagramme contrainte-déformation du béton et
de l'acier ............................ 8
2.2.4.1 Béton 8
2.2.4.2 Acier....................................... 9
2.3 Hypothèses de calculs ~ Il

2.3. 1 Norme canadienne Il


2.3.2 Norme française 13
Chapitrelll: Etablissement des formules de design pour le

iv
log iciel . 15

3.1 Selon la norme canadienne (CAN3A23.3M84) . 15

3.1.1 Flexion simple . 15

3.1.1.1 Poutres rectangulaires . 15

3.1.1.1.1 Simplement armées . 15

3.1.1.1.2 Doublement armées . 20

3.1.1.2 Poutre en Té 28
3.1.1.3 Dalles armées selon une direction . 35

3.2 Selon la norme française . 37

3.2.1 Flexion simple . 37

3.2.1.1 Poutres rectangulaires . 37

3.2.1.1.1 Simplement armées . 37

3.2.1.1.2 Doublement armées . 40

3.2.1.2 section en Té . 47

3.2.1.2.1 section en Té ne comportant que des armatures

tendues . 48

3.2.2.2.2 section en Té comportant des armatures

tendues et comprimées . • . . . . . . . . . . . . . . . . . . . . . . 52

3.2.1.3 Dalles armées selon une direction . 57

ChapitreIV Développement des programmes . 59

4.1 Organigrammes . 59

4.1.2 Programmes . 59

4.2 utilisation et possibilités du logiciel . 60

4.2.1 utilisation . 60

4.2.2 Possibilités du logiciel ..................• 61

4.2.2.1 Norme canadienne (CAN3A23.3M84) . 61

v
4.2.2.1.1 Poutre rectangulaire isolée 61

4.2.2.1.1.1 Analyse de poutre rectangulaire simplement

armée ou doublement armée 61

4.2.2.1.1.2 Dimensionnement de poutre rectangulaire

(simplement ou doublement armée) 61

4.2.2.1.2 Dimensionnement de poutre en Té simplement

armée 63

4.2.2.1.3 Dimensionnement des poutres rectangulaires

continues 64

4.2.2.1.3.1 Les moments sont connus 64

4.2.2.1.3.2 utilisation des coefficients du code (CAN3M84)

(Méthode forfaitaire) 65

4.2.2.1.4 Dalles pleines portant dans une direction ..... 66

4.2.2.2 Norme française (BAEL83) 68

4.3 Quelques exemples d'application 69

4.3.1 Exemples dans la norme canadienne 69

4.3.2 Exemples dans la norme française 77

4.3.3 Interprétation de résultats et limites du

logiciel 81

Chapitre V: Conclusion et recommandations 83

Annexes

Annexe N°l Quelques prescriptions du code (CAN3M84) ..... 84

Annexe N°2 Les organigrammes 87

Annexe N°3 - Liste des procédures du logiciel et


leurs fonctions 104

- Listing du programme 113

-Références Bibliographiques 195

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

Module d'élasticité du béton EC

Module d'élasticité de l'acier ES

c Distance de la fibre la plus raccourcie


à l'axe neutre C
d Hauteur utile D
h Hauteur totale HTOT
Asb : Armature de la section balancée ASBBA

b Largeur de la section rectangulaire B


Moment résistant pondéré MR

Moment fléchissant pondéré de design MF

Rapport de l'armature tendue à l'aire du béton RO


Pourcentage minimal d'acier ROMINI
Pourcentage maximal d'acier tendu ROBBA
Pourcentage maximal d'acier ROB

A' s Armature comprimée APS

f' s contrainte de compression dans l'acier comprimé FPS

d' Distance de la fibre la plus comprimée au centre


de gravité de l'armature comprimée DP
contrainte de compression dans l'acier comprimé
à l'état des déformations unitaires FPSB
Rapport de l'aire de l'armature comprimée sur
J' l'aire du béton ROP

vii
VARIABLES UTILISÉES BAEL83 )

Dans la théorie Dans le logiciel

Limite d'élasticité de l'acier FE

Allongement correspondant au début du palier EPL

Allongement unitaire des armatures tendues . EPS

Coefficient de sécurité pour l'acier introduit


dans les calculs aux états limites ultimes GS

Coefficient de calcul AF
Coefficient de calcul MU
Coefficient de calcul BE

Coefficient limite de calcul AFL


Coefficient limite de calcul MUL
Coefficient limite de calcul BEL

contrainte de traction dans l'armature tendue S1GS

d Hauteur utile D
h Hauteur totale de la section du béton H

b Largeur de la section rectangulaire B


A section totale des armatures tendues A

y Distance de l'axe neutre à la fibre la plus


comprimée y
€b Raccourcissement unitaire du béton de la fibre
la plus comprimée EPB
ab (=(O.85*f c28 ) / Y p ) : contrainte du béton dans
la zone comprlmée pour un rectangle S1GB
fc~: Résistance caractéristique du béton FC
Coefficient de sécurité pour le béton GB

M Moment de flexion M'


A' section totale des armatures comprimées AP

d' Distance du centre de gravité des armatures


Comprimées à la fibre la plus comprimée DP

Hauteur de la table de compression de poutre T HO

Largeur de la nervure de la poutre en T BO

a' 5 contrainte dans les armatures comprimées S1GS

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 II. 3. a .... .'. ..... . . . . ................ . .... 12

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

En 1848 Joseph Louis Lambot imagina d'associer intimement un

réseau de barres et du béton de ciment : ainsi naissait un nouveau

matériau qui est le béton armé. En guise de première application

pratique Lambot se construisit une barque en Béton Armé qu'il


exposa à l'exposition universelle de Paris. Depuis ce jour,
d'énormes progrès ont été réalisés dans le sens d'une meilleure
connaissance du matériau et d'une maîtrise de ses lois de
comportement.
Dès lors il importe de savoir comment associer le béton et les
barres d'acier pour un bon fonctionnement du matériau face aux

sollicitations. En effet le béton résiste fort bien aux contraintes


de compression mais très mal aux contraintes de traction, alors que

l'acier, par contre, y résiste très bien. D'où l'idée de placer des

barres d'acier dans les zones où se produisent des efforts de

traction, ces barres étant placées dans le sens de ces efforts: on

pourra donc voir apparaître dans ces zones, de microfissures du

béton sous l'effet des contraintes de traction mais les aciers

empêcheront les fissures de s'ouvrir et prendront seuls à leur

compte les efforts de traction.

Certes les soucis premiers furent de se doter des méthodes ou

formules plus ou moins empiriques mais qui garantissaient une bonne

sécurité des ouvrages construits en béton armé sans grandes

attentes pour les considérations économiques.

\
\
1
Les développements de la science et de la technique, notamment

les découvertes successives enregistrées dans la mécanique des

matériaux en Résistance des matériaux, permirent par l'usage bien

combiné de l'analyse théorique et de l'expérimentation

scientifique, de mettre en place des formules de base suffisamment

élaborées pour constituer des outils puissants pour l'analyse et

le dimensionnement des éléments en béton armé.

Dans cette recherche constante d'équations plus précises,

guidée par le souci de toujours mieux représenter les différents

comportements non élastiques d'un matériau non homogène face aux

diverses sollicitations, on est arrivé à établir des équations de

plus en plus complexes. L'utilisation de ces équations permet

certes d'obtenir des résultats plus affinés, combinant la sécurité

et l'économie; cependant les calculs auxquels ils donnent lieu sont

devenus fastidieux et prennent un temps considérable.

C'est ainsi que ce projet de fin d'étude se propose de mettre

au point un logiciel d'analyse et de dimensionnement des sections

de poutres et dalles en béton armé suivant le code canadien

(Can 3A23-3 M84 ) et le code français ( règles BAEL 83 ).

Après avoir exposé les hypothèses et théories qui soutendent

les calculs aux états limites de contraintes suivant les deux

normes, nous élaborerons les principaux organigrammes nécessaires

pour la conception du logiciel et enfin présenterons le logiciel

proprement dit. En dernière partie nous allons tester le logiciel

avec différents cas concrets d'analyse et de dimensionnement des

sections en Béton Armé.

2
Chapitre II

Rappels des notions fondamentales du calcul aux

états limites de contraintes

Pendant près d'un siècle, le béton armé a été calculé "aux


contraintes admissibles" définies à partir des contraintes de

rupture de ces matériaux multipliées par un coefficient de


performance inférieur à 1. On calculait les contraintes dans ces

matériaux sous l'effet le plus défavorable des charges exactement


prévues et elles ne devraient pas dépasser ces contraintes
admissibles. La sécurité globale d'un ouvrage n'était donc assurée

que par ces coefficients de performance, comme si le seul facteur


d'insécurité était la résistance intrinsèque des matériaux
util isés. Aussi la méthode des contraintes admissibles ne nous

donne pas des moyens de tenir compte du degré d'incertitude des

diverses sortes de charges. La notion de sécurité a évolué et


cherche, aujourd'hui, à prendre en compte tous les facteurs

d'insécurité; ainsi on utilise actuellement un nouveau principe


basé sur une théorie semi-probabiliste qui est à la base du Calcul

"aux états limites".


On désigne par état limite, un état au de-là duquel l'ouvrage
ou un de ces éléments cesse de répondre aux fonctions pour

lesquelles il a été conçu.


2.1) Les différents états limites.

2.1.1) Etat limite ultime

Ils correspondent à la valeur maximale de la capacité


portante de la construction et dont le dépassement entraînerait la

3
ruine de l'ouvrage. Ces états limites sont relatifs à la limite:

soit de l'équilibre statique de l'ouvrage:

soit de la résistance de l'un des matériaux utilisés:

soit de la stabilité de forme d'un ou de plusieurs

éléments de l'ouvrage.

2.1.2) Les états limites de service.

Ils constituent les limites au-delà desquelles les

conditions normales d'utilisation de l'ouvrage ne sont plus

satisfaites. Il s'agit de:

la limite pour l'ouverture des fissures:

la limite pour les flèches excessives.

2.2) Charges. combinaison de charges et facteurs de sécurité

2.2.1) Les charges

Il existe divers types de charges dont on doit teni~ compte


afin de définir la capacité portante des éléments en béton armé.

Nous avons:
les charges permanentes ( poids propre de la structure, des

équipements fixes ... )

Elles sont représentées par le symbole:

D dans la norme canadienne

G dans la norme française

les surcharges d'exploitation représentées par le symbole:

L dans le code canadien

Q, dans le code français (Q, charge variable de base)


les charges dynamiques ( vents, séisme

symboles: Q dans la norme canadienne

4
Qi dans la norme française

Qi ( ce sont les autres actions variables) i>l

dites d'accompagnement

charges de température

symbole : T dans la norme canadienne

Qi dans la norme française i>l

2.2.2 Facteur de sécurité

Dans les deux codes on utilise des coefficients de

majoration pour les différentes charges. Nous avons alors

dépendamment des charges, les coefficients de pondération dans le

tableau suivant:

Tableau 2.1

Code canadien Code français


Can3 A23.3 3M84 règle BAEL 8~

Type de charges Coefficients de Coefficients de


Pondération Pondération

Charge permanente ClD = 1. 25 Yr, : 1.35


Surcharge vive ClL = 1. 50 ~I : 1. 50
Vent, séisme Cl.. = 1. 50 '(Q; : 1. 20
Température Cl l = 1. 25 'r~;: 0.80

2.2.3) Combinaison de charges


Code canadien ( Can3A23.M84

Pour la combinaison des charges nous devons tenir compte de

toutes les charges possibles dans un ouvrage et savoir aussi que

toutes ces charges n'apparaitront pas en même temps et avec la même

probabilité. On distinguera:

5
_ les charges de service S ) qui constituent la somme de

toutes les charges sans facteur de majoration.

les charges de design: elles sont la somme des charges

majorées ( symbole U).

* Pour les états limites ultimes on a:

Les symboles a sont définis ci-avant.

Yest le coefficient de simultanéité des charges) suivant

l'article ( Art 9.2.1 Can 3 A23.3M84 ) est égal à:

1 lorsqu'une seule des charges (L, Q ou T) est présente dans

l'équation:

0.70 lorsque deux charges (L, Q ou T ) est présente dans

l'équation

. 0.60 lorsque les trois charges L, Q, T sont présentes dans

l'équation.

(est le coefficient de risque. Y=l pour tous les bâtiments,

exceptés ceux dont l'effondrement n'entraîne aucune conséquence

grave, ni blessure. Pour ces derniers opeut être réduit jusqu'à

0.8.

* Pour la vérification des exigences de tenue en service

la combinaison des charges sera:

S= D + )f(L+Q+T)

les valeurs de fétant les mêmes que précédemment.

Code francais ( REGLES BAEL 83)

Pour déterminer les sollicitations auxquelles une construction

est soumise on utilise les combinaisons d'action définies ci-après,

6
avec les notations suivantes:

G~~: ensemble des actions permanentes défavorables;

Gmini: ensemble des actions permanentes favorables;

Q1: une action variable dite de base;

Qi: les autres actions variables di tes d'accompagnement (avec


i>l) ;

* Combinaison à considérer pour les états-limites ultimes.

Situations durables ou transitoires: la combinaison

d'actions à considérer est représentée symboliquement par:

1. 35G~~ + Gmi ni + OC1 Q1 + L \iQi

les valeurs des facteurs de pondération sont données au 2.2.2).

- situation accidentelles: en désignant par FA la valeur

représentative de l'action accidentelle, la combinaison d'actions

à considérer est:

G~~ + Gmini + FA + L ~iQi


le coefficient ~i a pour valeurs:
0.5 pour les effets dus à la température, s'il y a lieu de les

prendre en compte .

* Combinaison à considérer pour les états limites de service:

Dans le cas général:

G~~ + Gmini + Q1 + L (rai /1. 3) Qi

et dans le cas spécial des charges routières sans caractère

particulier par:

G~~ + Gmini + 1.2Q1 + L('ta';l1.3)Qi


* Nous avons enfin les coefficients de réduction des résistances
des matériaux dans le tableau de la page suivante:

7
Tableau2 2 .
Code Canadien Code français BAEL83
M84

0.67 ('i.. =1. 5 pour les cas


-1 fréquents)
Béton ckc = 0.6 ~'o= ou
0.87 ('<
=1.15 pour les
situations accidentelles

0.87 (Ys = 1. 1 5 pour les cas


A fréquents)
Acier <Ps = 0.85 '6's = ou
1 ( Ys : 1 cas accidentels)

2.2.4 ) Diagramme contrainte-déformmation du béton et de l'acier

2.2.4.1) BETON

* Code canadien (Can3A23.3M84)

La contrainte maximale f' e est

atteinte pour un

raccourcissement unitaire du

béton de 0.003 à 0.004. -D


L
L'article A23 . 3 permet r
8
d'utiliser une déformation
0.001 0.00:2 0.004
unitaire maximale f
e =0 . 0 0 3 pour
oero-rre e r cre un r ee u-es (rmvnvn)

(Fig.d.1.o)

le calcul de la résistance en flexion des éléments en béton armé.

Le module d'élasticité dans le code canadien est:

E e=X1.5*0.0043(f'e)'/2 où te est la densité du béton.

8
* Code français

Le diagramme en parabole

rectangle est util isé pour le


o
calcul à l'état limite ultime;
"
.... - ...,[DII!'TI!II"fT'IQr""eQl

l
- .... '
" l -,

dans le calcul à l'état limite o.S'5t


1

de service, on suppose que l'on

reste dans le domaine élastique


2 3 3.:5

(droite 00 C F 1g . a . "l . o )

résistance

caractéristique à la compression à j jours (MPa)

En pratique f c j = f c28 .
Le raccourcissement maximal du béton est limité à 3.5%<!f

- Le module dans le code français est donné par :

* •
sous charges lnstantanées ( < à 24h ): Eij=11000f c j 1/3

On peut admettre pour de très grandes valeurs de j (j ~ 00 ):

E;..=11000 (1.lf c28 ) 1/3

* Sous charge de très longue durée (action permanente) on

admet, compte tenu du fluage :

Ev j=1/3E i j •

2.2.4.2) Acier

* Code canadien can3-M84

La figure 2.d.a ainsi que le module d'élasticité qui en résulte

sont identiques que l'on se trouve en compression ou en traction.

Le code canadien permet l'utilisation des barres d'armatures de

limites d'élasticité 300, 350 ou 400 MPa . Lorqu'on veut pour un

9
design particulier, choisir une

limite élastique supérieure à

400MPa, la valeur de cette

limite sera celle correspondant

à un allongement unitaire de

0.0035 (Art. 421). .!--"""'..,,;!-------'o-c.-=C=035C rrml rmo


oerce-rre t Ions

Le module d'élasticité de (Flg.d.2.a)

l'acier est: MPa

(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

Diagramme: 1 (1';g.d.2.b) Diagrarrrne: 2 (flg.d. 2.c)

Les diagrammes sont symétriques par rapport à l'origine. On

limite l'allongement des aciers à 10%~

* le diagramme 1 est celui des armatures à haute adhérence de

type 1 ,3 et 4 et des ronds lisses:

avec Es=200.000 MPa

10
*Lorsqu'une grande précision est recherchée on applique le

diagramme 2, celui des armatures à haute adhérence.

Pour 0s:S:0.7fel!s €s=os/E s

Pour 0.7 f el Ys:s:o, €s=os/E s + 0.823( (Os/f e -0.7)5

(E s=200.000 MPa).

N.B. Les règles BAEL 83 n'ont retenu que le diagramme 1. Mais ces

règles précisent qU'''il est cependant possible d'utiliser un autre

diagramme, se rapprochant du diagramme réel de l'acier employé,

à condition de se référer à la valeur garantie de la limite

d'élasticité f e et de vérifier que l'augmentation de la résistance

entre la limite élastique et la valeur correspondante à

l'allongement de 10%~ est effectivement obtenue."

2.3) Hypothèses de calculs

2.3.1) Norme canadienne

Les hypothèses fondamentales de calcul sont:

1 Les déformations de l'acier d'armature et du béton sont

directement proportionnelles à la distance mesurée à partir de

l'axe neutre. (Art.8.3.2 et 10.2.2) c'est-à-dire une section plane

avant chargement reste plane après chargement.

2 La résistance du béton tendu doit être négligée

3 A une même distance de l'axe neutre, la déformation dans l'acier

est la même que dans le béton. Il y a compatibilité des

déformations c'est-à-dire pas de glissement de l'armature sur le

béton. Il Y a adhérence parfaite des barres;

4 Les forces internes sont en équilibres sous l'action des


charges extérieures;

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

limité à 0.003 (Art.8.3.3 et 10.2.3):

6 La force dans l'acier d'armature doit être calculée à partir

du diagramme contrainte-déformation de l'acier. Pour un acier

d'armature de limite d'élasticité spécifiée de 400MPa ou moins,

on peut faire les hypothèses suivantes :

a) Pour les déformations unitaires €s=fs/E s inférieures à celle

à la limite d'élasticité, €y=fy/E s' la force dans l'acier doit être

prise égale à

où ct>s=O. 85.
b) si €s>€y' la force dans l'acier doit être prise égale à

ct>sfyAs où ct>s =0.85


7 Pour le béton, le diagramme réel des contraintes a une forme

parabolique (fig.d.1.a ). Pour des raisons visant à faciliter le

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

adoptée pour la contrainte maximum du béton:

( Voir fig.II.3.a ci-dessus).

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 .

2.3.2) Norme française:


Les hypothèses de calcul 1,2 et 3 décrites dans la norme canadienne
restent valables ici. Nous allons ajouter le complément:
3
4 Raccourcissement ultime du béton: f
w= 3 . 5 10- en flexion (soit
3
3.5%.. ) et f
w=2 . 0 10. en compression centrée (2%,,)
5 Allongement ultime des armatures limité à 10%..

6 Le diagramme des déformations de la section, représenté par

une droite, est supposé passer par l'un des trois points A, B ou

C (fig.6.1). Ces points sont appelés pivots et définis de la

manière suivante:

A correspond à un allongement de 10%;, de, l'armature la plus

tendue supposée concentrée au centre de gravité de l'ensemble des

armatures tendues;

B correspond à un raccourcissement de 3.5%.. du béton de la fibre

la plus comprimée;

C correspond à un raccourcissement de 2%.. de la fibre de béton

située à une distance égale à 3/7h (h=hauteur totale de la section)

de la fibre la plus comprimée.

Nous distinguons trois diagrammes sur la figure 6.1: .

* Domaine 1: le diagramme des déformations passe par le point A.

13
~
....
", -----('---
1 1 ~
1 1 iii
1 1
1
c
o
h d

Considérons la figure 6.2 qui est un cas

limite pour le domaine 1. Nous pouvons

déterminer une condition sur la distance de

l'axe neutre à la fibre la plus comprimée

(y) pour matérialiser le domaine 1:

Bb/Aa=y/(d-y) soit 3.5/10=y/(d-y) d'où

y=O.2593d, où d est la hauteur utile.

Donc si y~O.2593d le diagramme des déformations passe par le point

A (Domaine 1).

* Domaine 2: Le diagramme des déformation passe par le point B.

Il résulte de ce qui précède que le domaine 2 est caractérisé par:

O.2593d~y~h.

*Domaine 3: Le diagramme des déformations passe par le point C et

la section est entièrement comprimée. Le domaine est caractérisé

par: y~h.

14
chapitre III

ETABLISSEMENT DES FORMULES DE DESIGN POUR LE

LOGICIEL.

3.1) Selon la norme canadienne (Can3A23.3M84)

3.1.1) FLEXION SIMPLE

3.1.1.1) Poutres rectangulaires


3.1.1.1.1) Simplement armées
La poutre rectangulaire simplement armée est celle qui comporte
uniquement les armatures tendues.

t i'------i
al
! f-----.J
l
C=O,85. rpc
f', .b.a

T
'----> >- - J
T= rps. As. f y
fig.a.1

Equilibre des forces internes


Force de compression du béton: C = O,85.rpc.f'c .b.a [a. 1]

Force de traction dans l'armature d'acier: T = rps .A s. f y [a. 2]

principe: La résistance ultime d'un élément sera déterminée


en considérant en premier la rupture de l'acier
d'armature. L'écoulement de l'acier se produira
donc avant l'écrasement du béton.

_ A l' équil ibre C = T

[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]

Mr Kr.b.d' .10. 6 kN.m [a. 9]

b. d' [a.10]
Kr

Kr = Mpa [a.11]
b. d'

Conditions balancées

Nous appelons section balancée, la section qui comporte un


pourcentage d'acier fmax telle qu'il y ait rupture simultanée du
béton et de l'acier:
f s = f y = > Ecoulement

=====> 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

0,85 si f' < 30 MPa

[
c

BI = [a.15]
f' c - 30
0,85 - 0,08 ( ) sans être inférieur à 0,65
10

En mettant cette valeur de a dans l'équation [a.1] on obtient

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]

A sb = armature tendue maximale = A smax


600 f' c
A l'équilibre C = T = > A sb 0, 6 . BI ( ) b.d. [a.18]
600 + f y fy

Asb
fmax fb
b.d
- 600 f'
> fb = 0, 6 . BI ) . c
[a.19]
600 + f y fy

l'article (art. 10.5.1) impose un pourcentage minimal d'acier;

1,4
[a.20]
'min = f y

Discussion des proportions d'acier d'armature.

la section est sous-armée ( rupture ductile )

section balancée

section sur-armée rupture brusque )

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 =

b) On vérifie si f mi n < j < Yb


Si oui on continue à l'étape 2
- Si non on conclut que la section n'est pas bonne en B.A.

2') On calcule a =

a
Mr = 0, 85 . As • f y (d - kN.m
2

Design Le moment pondéré Mf dû à la combinaison la plus


défavorable des charges pondérées est calculé. Il s'agit
de déterminer les dimensions et l'armature tendue de la
section d'une poutre dont le moment résistant Mr est au
moins égal à Mf.

~ Ouelques règles de bonne pratique:

* La bonne pratique suggère : 0, 5 { < < 0,6. b '


assurera une bonne résistance , une bonne ductilité, un bon
ce qui ~ J f
comportement au point de vue des flèches et de la fissuration mais
aussi une section économique .

* La largeur et la hauteur utile de la poutre peuvent être


déterminées économiquement en utilisant la règle suivante :
d
1,5 < < 2 pour les poutres dites secondaires
b

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 )

LISTE DES FORMULES FONDAMENTALES ( A.23.3 M 84 )

*) Poutres rectangulaires simplement armées

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

Mr b •d 2 • Kr. 10- 6 kN.m

As approx mm •
C/Js·f y.O,9.d

600 f' c
!max = !b = 0, 6. B1 ( ).---
600 + f y

1,4
fmin =-

[ 0,B5 pour f', ~ 30 MPa

BI =
fIC - 30
0,85 - 0,08 ( ) < 0,65 pour f'c > 30 MPa
10

19
PROCÉDURE A SUIVRE POUR LE DESIGN.

1 Etablir les charges et calculer les moments pondérés.

Une règle de bonne pratique consiste en général à ajouter 10%

à la charge totale pondérée pour tenir compte du poids propre

de la poutre.

2 Choisir la valeur de J et calculer Kr


3 Déterminer les dimensions b et d.

4 Calculer la section d'armature et la proDondeur


1
totale de
la poutre

5 Vérifier le poids propre et réviser Kr.


Ajuster suivant l'approximation linéaire

Krnouveau

KrOriginal
6 Calculer la section d'armature définitive et vérifier
l'espacement des barres.

3.1.1.1.2) Poutre rectangulaires doublement armées

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

sur la section à L'état limite ultime , en deux parties:

Une première constituée par la section de poutre simplement armée

avec l'armature tendue As'.

Une deuxième partie constituée par l'armature tendue A sz et

l'armature comprimée A's. voir fig b.l )

As = armature tendue A' s = armature comprimée

On a:

c, = force de compression agissant sur la partie comprimée de


la section

Cz = force de compression dans l'armature comprimée

T, et Tz = force de traction dans les armatures tendues


As' et A sz

Pour établir les formules , supposons que la déformation unitaire

de l'armature comprimée n'atteint pas le palier de ductilité

on a alors
f' s = E s e:' s < f y

Du diagramme des déformations de la figure b.l, on obtient:

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

d'autre part C, = 0.85.<pc.f'c.b.a et a = B,.c

d'où C, = o. 85 . <Pc • f ' c • B, • c [b. 3]

et Cz = A' s (<p s• f 's - 0.85. <Pc • f ' c [b. 4]

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.

Pour l'équilibre statique de la section, on doit avoir:


T, = ~s. fy.A s' = c,
Tz = ~s· fy.A sz = Cz
En remplaçant Cz par sa valeur tirée de l'équation [b. 4] on a

~s· fy.A sz = A' s. ( ~s· f' s - 0.85·~c·f'c

A' s . f ' s - ....


'+"c· f' C
d'où [b. 5]

En portant f's de l'équation [b.2] dans l'expression de Cz de


l'équation [b.4] On a :
c - d'
Cz = O,85.A's [ Es·O,003 ( ) - O,6.f'c [b. 6]
c

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]

De cette équation [b.8] on peut calculer la valeur de c donc celle


de a = B,.c
Le moment résistant pondéré de la section doublement armée est
égal à la somme des moments des couples C, ,T, et Cz ' Tz .
22
8,. c
Mr = Ml + M2 = C, (d - ) + C z (d - d') [b.9]
2

En remplaçant C, et Cz par leurs valeurs

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.

Pour établir les formules simplifiées, on suppose que la


déformation unitaire de l'armature comprimée atteint le palier de
ductilité, ce qui est presque toujours le cas.

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é

par l'acier et compris dans Cl' et en remplaçant f's par f y dans


l'équation [b.12], on obtient

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

ce qui entraîne As2 = A' s [b.15]

Les moments de ces couples sont donnés par

a a
Ml = T, ( d - = [b.16]
2 2

M2 = C 2 ( d - dl) = O.85.f y.A's ( d - d' [b.17]

Le moment résistant pondéré Mr est donné par

a
Mr = Ml + M2 = O,85f~s,(d - --) + O,85f~'s(d - d') [b.18]
2

L'approximation obtenue avec les formules simplifiées est très

bonne.

ARMATURE TENDUE MAXIMALE PERMISE:

L'armature tendue maximale permise dans une section rectangulaire

doublement armée ne doit pas dépasser celle à l'état d'équilibre

des déformations unitaires

On doit donc avoir :


Asmax = ( As' + As2 ) max = Asb

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'

comme poutre simplement armée Elle est dénotée

600 f' c
f, = f b = O. 6.8, (
600 + fy
) [b.19]

Pour la partie correspondant à A s 2' la formule [b.5] nous donne

A' s ( f 'sb - c1>c· f ' c )


As 2 = [B.20]
fy

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

En négligeant le terme c1>c.f'c ,on trouve

tx D=
= lb f,b + J:- f' sb

f
lb. 23]
y

f' sb = contrainte de compression dans l'armature comprimée à l'état

d'équilibre des déformations unitaires, qu'on a supposé

être inférieur à ~ .

Dans presque tous les cas

et f' s

donc l'équation [b.23] devient

[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

=> Calcul comme poutre simplement armée


j < lb ? <OUi
Non => Calcul comme poutre doublement armée

! lb
< ?
<
oui => Rupture ductile

Non => pas acceptable en béton armé

3°) Vérification de l'acier de compression

f' c d' 600


On calcule O. 6.8, .
d

f' c d' 600


1 Oui:l'acier de compression
s'écoule.

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

Les critères de design pour une poutre rectangulaire doublement

armée sont presque les mêmes que ceux qui ont déjà été définis

pour une poutre rectangulaire simplement armée à savoir :

Le critère de la profondeur minimale

La règle de bonne pratique pour le rapport d/b

Les règles d'enrobage et de disposition des armatures

la règle du pourcentage d'acier d'armature

f' c d' 600


0,6.81 . - - .
f y d

* PROCÉDURE POUR LE DESIGN DES SECTIONS RECTANGULAIRES


DOUBLEMENT ARMEES

l') Etablir les charges, calculer le moment pondéré,ajouter 10% à

la charge totale pondérée pour tenir compte du poids propre de la

poutre.

2') Déterminer la capacité en flexion de la section (M R1 ) comme si

elle était simplement armée en utilisant la quantité maximale

permise soit 0.85*Jb (règle de bonne pratique).

3') Calculer la différence de moment qui devra être reprise par

l'acier de compression; Vérifier f's

4') Calculer la section d'acier de compression A's . Vérifier les

espacements.

27
3.1.1.2 Poutre en Té

Exigences du A23-3M84 concernant la table de compression des

sections en Té.

AD) Pour une poutre symétrique en T, simplement appuyée, la largeur

effective b de la table à retenir pour les calculs doit être égale

à la plus faible des valeurs suivantes:

1).4 * portée de la poutre

2) 24 * h f + bw
3)L'espacement entre les axes des poutres adjacentes.

B) Pour une poutre symétrique en T, continue, la largeur effective

b de la table à retenir pour les calculs doit être égale à la plus

faible des valeurs suivantes:

1).25 * portée de la poutre

2) 24 * h f + bw

3)L'espacement entre les axes des poutres adjacentes.

C) Pour une poutre avec une table de compression d'un côté de la

nervure seulement (en forme de L renversé) la largeur effective b

de la table à retenir pour les calculs doit être égale à la plus

faible des valeurs suivantes:

1)1/12 * portée de la poutre + bw

2) 6 *h f + bw

3) bw + 1/12 fois la distance libre en.

28
0) Pour une poutre isolée, où la section en T est utilisée pour

augmenter l'aire de la partie comprimée de la section, l'épaisseur

de la table doit être au moins égale à la moitié de la largeur de

la nervure et la largeur effective de la table ne doit pas être

plus de 4 fois la largeur de la nervure.

E) Là où les tables des poutres en T sont tendues, une partie de

l'armature tendue ne doit pas être distribuée sur la plus petite

des dimensions suivantes:

Soit la largeur effective b de la table ,soit une largeur de table

égale à 1/10 de la portée de la poutre, il faut mettre de


l'armature longitudinale additionnelle dans les poutres extrêmes

de la table.

Remarques: Les exigences A,B,C et D,en limitant la largeur b

de la table de compression , permettent pour simplifier les calculs

de faire l'hypothèse que les contraintes dues à la flexion sont

uniformes à travers la largeur de la table en T.

L'exigence E permet le contrôle des fissures de la

partie tendue de la table de la section en T.

29
* Analyse du comportement de la section en T:

Simplement Armée

Pour analyser le type de comportement de la section, on détermine

d'abord l'expression du moment équilibré par la table de

compression seule à l'état limite ultime, ainsi que l'aire de

l'armature tendue inférieure correspondant à ce moment

Dans ce cas: a=h f.

La force de compression C agissant sur la table est donnée par:

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

d'où 0.85<Pcf'cbhf = <PsAsfy (c.T.3)


Le moment du couple C,T est le moment équilibré par la table de

compression seule à l'état l imi te ultime. Ce moment dénoté Mréf est

donné par:

(c.T.4)

L'aire de l'armature tendue inférieure correspondant au moment

Mréf et désignée par Asréf résulte de l'équation (c. T. 3) .

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:

As < A s r éf ou Mf < Mr é f la dimension de la table de compression est


surabondante pour équilibrer Mf et la section se comporte comme une
section rectangulaire b*d. Les calculs sont alors identiques à ceux
déjà vus pour une poutre rectangulaire.

Dans le cas où As>Asréf ou Mf>M r ef, la section se comporte comme une


section en Té, car la table de compression est insuffisante et
l'équilibre statique de la section nécessite la participation d'une
partie de la nervure sous la table. On a alors:
ac-h,

* Etablissements des formules fondamentales

Pour établir les formules, on divise l'aire comprimée du béton en


deux parties. L'aire 1 est constituée par la nervure et l'armature
tendue As 1 et l'aire 2 qui est constituée par la partie de la table
de compress ion (b-b w) h f en dehors de la nervure, et l'armature tendue

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)

Pour l'équilibre statique de la section on doit avoir:

T, + T z = Cl + C z

T, + T z <PsAsfy

d'où: <PsAsfy =0.85(<pcf'cbwa + <pcf'c(b-bw)hf) (a.T.10)

<P s =0.85 et <Pc =0.6; de l'équation (a.T.10) on tire As

0.6f'cb wa + 0.6f'c(b-b w)hf

As = (a.T.11)

a= (a.T.12)

(a.T.13)

En remplaçant C, et Cz par leurs valeurs:

Mr = 0.85<Pcf'cbwa(d-a/2) + 0.85<Pcf'c(b-bw)hf(d-hf/2) (a.T.14)

O. 6f' c (b-b w) h f

T2 = C2 (a.T.15)

32
En posant: ! = As/bwd et ff = Asz/bwd

fy(As-A sz) fyd ( ! - ft)


a = = (a.T.16)

O. 6f' c

* L'armature tendue maximale permise dans une section se

comportant en T ne doit dépasser celle à l'état d'équilibre des

déformations unitaires.On doit donc avoir:

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)

* Armature tendue maximale


Comme on l'a vu précédemment, pour qu'une section se comporte
en Té, il faut que l'armature tendue As qu'elle contient satisfasse
la relation suivante:

d'où

1·) Fmin > (a.T.20)

Mais il faut touj ours que: J


> 1. 4/ f y avec ! =

1.4
2· ) *
f y
b

N.B. C'est la plus grande des valeurs qui constitue

34
3.1.1.3) Dalles armées selon une direction.

On admet qu'une dalle pleine porte dans une direction lorsque

la longueur du grand côté est égale à au moins deux fois celle du

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

poutre de largeur b=1000mm. Dans les dalles on ne désire pas

utiliser les étriers pour l'effort tranchant. C'est pourquoi on

choisit, dans le cas échéant,une épaisseur de dalle suffisante pour

pouvoir supporter l'effort tranchant sans être obligé d'utiliser

les étriers.

Pour éviter toute ambiguïté, l'armature requise pour le moment

fléchissant est spécifiée par le numéro des barres à utiliser avec

l'espacement entre les axes de ces barres et non par le nombre de

barres par mètre de largeur de dalle.

A cet effet on a préparé un tableau (voir annexe W 1) qui

suivant les dimensions et les espacements des barres, donne l'aire

en mm 2 de l'armature requise par les calculs, par mètre de largeur

de dalle.

35
* Pour une dalle d'une travée, simplement appuyée, si la charge

est uniforme, le moment fléchissant pondéré maximal pour une bande


2
de un mètre de largeur est égale à: Mf = Wf 1 / 8.

Wf = charge pondérée par mètre carré de dalle.

1= distance libre entre nus d'appuis, plus l'épaisseur de la dalle.

Cette portée ne doit pas dépasser la distance entre les axes des

appuis (art 8.7.1)

*Lorsque la dalle pleine portant dans une direction est continue

sur plusieurs travées et que les exigences de l'article 8.3.3 du

A.23.3M84 sont remplies, alors on peut calculer cette dalle

continue par la méthode des valeurs forfaitaires exposée à l'annexe

(c'est tiré de la page 198 Réf N°l) .si les exigences de l'article

8.3.3 ne sont pas remplies, il faut calculer la dalle par la

méthode de Cross.

36
3.2) Selon la norme Francaise (Règle BAEL 83)

3.2.1)Flexion simple

3.2.1.1) Poutres rectangulaires

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)

Considérons la section rectangulaire représentée à la figure

(BIla), cette section est soumise à un moment M. Les diagrammes

des déformations et contraintes sont représentés sur la figure.

La résultante des efforts de compression dans le béton est :

F b =0.8*ob*b*y (a.1)

La résultante des efforts de traction dans les aciers a pour


valeur :
Fs =A*o s . . (a. 2)
A l'équlllbre ====> A*os=0.8*ob*b*y (a.3)

M-Fb*Z=O ====> M-0.8*ob*b*y*Z=0 (a.4)

(a. 5)

Posons y=a*d , Z=8*d et ~= __ ~M~ _ O<a<=l


°b*b*d' 0<8<=1

Z=d-0.4*y=(1-0.4a)*d

Donc 8=1-0.4*a (a.6)

L'équation a.4 s'écrit alors M-0.8*ob*b*Y*Z=M-0.8*ob*b*a*d*8*d=0

====>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= 1- Vl-2*U ' (a. 8)


0.8 (O<a<=l)

* si a<=0.2593 , nous sommes dans le domaine 1 et le diagramme

des déformations passe; par le pivot A , donc Es =10%0

* A a=0.2593 , ~= 0.8*a*(1-0.4*a)=0.1859=0.186 .

* si 0.2593<=a<=1 , nous sommes dans le domaine 2 et le

diagramme des déformations passe par le pivot B. Pour a=l, ~=0.480

Nous aurons alors 0.186<=~<= 0.480 et le raccourcissement du

béton de fibre extrême sera Eb=3.5%o

La considération des triangles semblables Gaa' et Gbb'

(diagramme des déformations de la figure Bra nous donne , pour

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

==> Es=3.5%.*(1/a -1)

d'où 1000*E s=3.5*(1/a -1) (a. 9)

En remplaçant Z=B dans l'équation a.5 nous obtenons

==> M-A*o s *B*d=O

d'où A= M (a.lO)
o s *B*d
Les valeurs limites al ,El ~l BI sont définies ci-après.

* si ~<=~l ' la section sera armée uniquement par des armatures

tendues.

* si ~>~l ' la section sera armée uniquement par des armatures

tendues et des armatures comprimées.

38
Poutres rectangulaires simplement armées ( Règles BAEL 83)

Formules fondamentales et unités

JJ.= M d'où a,B,IOOOE s ,et as

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'

* Pour les aciers ronds lisses , barres à haute adhérence

type l , f i l s à haute adhérence type 3 , treillis à fils lisses.

On a

fe (f e en MPa)
200*os

al = 3.5 = 700* Os
3.5+1000*E l 700*os+f e

* Pour ces aciers

Es >= E l _ > as = fe-


e- -

39
*Procédure d'analyse:

1°) Calculer al ,fI ~l Bl

2°)calculer f s et Os

3°) Calcul de y=(A*os)/(0.8*ob *b)

4°)Calcul de a,B,~

5°)Calcul du moment résistant: M= ~*ob*b*d2

*Procédure de design

1°) Calculer al ,f l ~l Bl
2°) Calcul de a,B,~

3°)calculer f s donc Os

4°)calcul de A= M/( B*d*os)

3.2.1.1.2) Poutres doublement armées (en tension et compression)

Lorsqu'une section rectangulaire dont les dimensions sont

imposées, est soumise à un moment M, supérieur à celui que peut

équilibrer la section ne comportant que des armatures tendues,

soit parce que l'on a:

~ > 0.480 ,auquel cas une solution ne comportant que des armatures

tendues est impossible.

~ > ~l ' auquel cas une solution ne comportant que des armatures

tendues n'est pas économique. On renforce la partie de cette

section en y disposant des armatures qui seront comprimées.

40
Il Y a plusieurs méthodes pour déterminer ces armatures.

1 ère méthode de détermination des 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

représenté sur la figure BIb2

Etant donné que des armatures de compression sont supposées


nécessaires , nous sommes dans le domaine 2 et le diagramme des
déformations passe par le pivot B , le raccourcissement du béton

sur la fibre la plus comprimée est donc €b =3.5%~

Pour l'acier tendu, nous n'avons pas intérêt à descendre en

CX l = 3.5
3.5+1000*€l

Calculons le raccourcissement €s des armatures comprimées.

Les triangles semblables Gcc' et Gaa' nous donnent:

=__
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ù

* Cherchons la condition pour que: €" s >=€ l


Il, en sera ainsi lorsque: 6'<= J.5-1000*€l __
J.5+1000*~l (bl)

Nous constatons que les aciers ronds lisses, barres, HA typeJ,

treillis soudés en fils lisses les valeurs obtenues pour 6' sont

toujours supérieures à celles en pratique. Par conséquent, pour ces

aciers, la contrainte 0' s sera touj ours égale à fel 0 s •

La section N'2 représentée à la figure (BI.bl) équilibre le

moment fictif Mf 1=J.Ll *ob*b*d' lorsque ses armatures ont pour valeur

(b. 2)

(b. J)

La deuxième section fictive devra équilibrer le moment

résiduel

(avec Mf 2<O.40*M ) (b. 4)

Ce moment Mf 2 donnera une force de compression F s ' dans les

armatures comprimées A' et une force de traction F s dans les

armatures tendue A2 . Comme le bras de levier est d-6'*d , nous

avons :

Fs '=F s =M f2 / (d-6' *d) A'=F s '/0 s '= - - fM2 - -


(d-6' *d) *os 1

= 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

Résumé des formules de la 1 ière méthode

(Poutres doublement armées)


Mn=1L 1*O'b*b*d·
Al=_ _ Mn __
BI*d*O's
Mf2=M-Mn (avec Mf2<O. 40*M )
A'=F s' /O's'= --M f 2 - - ;
d-6' *d) *O's'
A= Al_ _ Mn __ + A' *~..-!-
BI*d*O's O's Il

G2è~ Méthode de détermination des armatures

_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

fig :2a fig 2.b

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)

* Raccourcissement des armatures comprimées

ryf;~_d!- ~ __. ,...,,-----.,.-----0


8
Î
16'~tb
y=ad
3.5%",

t c f--~'l

l "--------' a
r J~
A 10%"

fig 2.c fig 2.d

Nous distinguerons deux cas selon que le diagramme des

déformations passe par le pivot A ou le pivot B.

POUTRES RECTANGULAIRES DOUBLEMENT ARMEES (Règle BAEL83)

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 ' =Fs ' /0 s '= __M_ f22-*=-=1':-'0'----:-


3 ,.
d-6' *d) *Os'
3
A= _ _
Mn ,;;. I""O'--_
* .... + AI * 0s-s-'--
Bl*d*os °s
44
en kNm ;
* b,d en cm

*A , A' en cm"

2 ièmeMéthode

A= M*10 3 +o.s*a b*b*y*(O.4*y-&I*d)


as (d-& 1 *d)

en kNm ;
* b, d, Y en cm
* ab' ,as'et as en MPa ;
*A , A' en cm"

~ Le diagramme des déformations passe par le pivot A ;(fig 2.C)

donc €s=lO%. ; la considération des triangles semblables GaA et

Gee' nous donne

cc'jaA = cGjaG

Soit lOOO€s'jlO = (a*d-6'*d)j(d-a*d) = (a-6')j(1-a)

d'où lOOO*€s' = lO*(a-€)j(l-a) (b. 9)

45
Pour les aciers autres que le type 2

as '=200 (lOOO*E' s) (as 'en MPa)

QLe diagramme des déformations passe par le pivot B (fig 2.2)

Alors Eb =3.5% . . Les triangles Gaa' et Gee' nous donnent:

cC'/aa'=cG/aG Soit Es'/E s = (a*d-o'*d)/(d-a*d) = (a-o')/(l-a)

(b.lO)

En considérant les triangles Gaa' et GbB; on a:

aa'/bB'=Ga/Gb Soit 1000*E s/3.5 =(d-a*d)/a*d =(l-a')/a (b.11)

En multipliant membre à membre (b.lO) et (b.ll) on obtient

1000*E s=3. 5* (a-o') /a (b.12)

Pour les aciers autres que le type 2 : as'=f~os

46
SECTION EN T:

Les section en T se rencontrent fréquemment dans les constructions

en béton armé par exemple dans les planchers, les murs de

soutènement, les tabliers de pont et, d'une manière générale, dans

tous les ouvrages où l'on fait concourir le hourdis à la

résistance de la poutre.

Dans l'étude des sections en T, nous seront amenés à distinguer

deux cas suivant que la zone comprimée, de hauteur égale à O,By

se trouve située uniquement dans la table ( fig.a ) ou s'étend

dans la masse ( fig.b ).

y Il

'-- 1--- • -- " xe '" -eut Y"( 1

-4--b ----t' -+-b a---f


a

(fig.a) (fig.b)

:'-b"":
a
- - - - - - 1 2 - - - - - - -..... - - - - - - - 1 1
1 ..

(fig.c)

47
3.2.1.2 ) SECTION EN T:

Les section en T se rencontrent fréquemment dans les constructions

en béton armé par exemple dans les planchers, les murs de

soutènement, les tabliers de pont et, d'une manière générale, dans

tous les ouvrages où l'on fait concourir le hourdis à la

résistance de la poutre.

Dans l'étude des sections en T, nous seront amenés à distinguer

deux cas suivant que la zone comprimée, de hauteur égale à O,By

se trouve située uniquement dans la table ( fig.a ) ou s'étend

dans la masse ( fig.b ).

+----b-------it-
--

. -- Cl )(-1:: '" -I::ut .. (

I-'----L-----'i- _ • - _ _....L..

-+--b o---t --e--b o---f

(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

nervure à partir de son parement est limitée par la plus

restrictive des conditions suivantes ( A.4.1,3 )

1 On ne doit pas attribuer la même zone de hourdis à deux nervures

différentes.

~ La largeur notée b, ne doit pas dépasser le dixième de la portée

d'une travée

d La largeur notée b, ne doit pas dépasser les 2/3 de la distance

de la section considérée à l'axe de l'appui extrême le plus

rapproché

~ La largeur notée b, est enfin limitée au quarantième de la somme

des portés encadrant l'appui intermédiaire le plus rapproché,

augmenté des 2/3 de la distance de la section considérée à cet

appui.

3.2.1.2.1) La section en Té ne comporte que des armatures tendues

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.

Cherchons la condition qui doit être réalisée pour que la zone

comprimée n'intéresse que la table.

En prenant les moments par rapport au point a (fig.T.b):

ho ho
Mo - Fb ( d - = 0 d'où Mo = Fb ( d -
2 2

. Si le moment M appliqué à la section est inférieur à Mo équilibré

par la table seule une partie de la table est comprimée .

. si le moment M est supérieur à Mo, la table entière et une partie

de la nervure sont comprimées.

Par conséquent

ho
- si M ~ ab .b.ho ( d - ) ,seule une partie, ou la
2

totalité, de la table est comprimée et la section en Té est à

calculer comme une section rectangulaire de largeur b et de

hauteur utile d.

ho
- si M > ab b.ho ( d - ) une partie de la nervure est
2

comprimée et la section en Té est à calculer par une méthode qui

lui est propre donnée ci-après.

Considérons la section en T représentée sur la figure T.c, pour

laquelle la partie comprimée s'étend dans la nervure, nous avons

alors :

49
ho

Le diagramme des contraintes est représenté sur la fig T.f

b ab
'"
tI r
"J~YI :j
-j

y d L 1

---*
~
Fs
a

fig.T.e fig.T.f

Soit F, la résultante des compressions sur la partie simplement

hachurée de la (fig T.e) ( débort de la table) ,cette

résultante passe à la distance hO/2 de l'arrête

supérieure et à pour valeur

F2 La résultante des compressions sur la partie doublement

hachurée de la (fig T.f), cette résultante passe à la

distance 0,4Y de l'arête supérieure et a pour valeur

Fs résultante des tractions dans les armatures tendues,

A l'équilibre nous avons:

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

Cette expression est identique à celle trouvée pour la section


rectangulaire simplement armée.

Comme
et

Nous avons Mn - [A.o s - ab· (b-b o) .ho] (d-O,4Y) = 0


Mn - [A.o s - Ob. (b-b o) .ho] (1-0,4a)d = 0

=> car B (1-0,4a)

d'où
Bd
A = [T. 3]

Les formules ci-dessus ne sont à utiliser que lorsque Es < El

c'est-à-dire Mn $ ML ,la section en T sera armée doublement comme


indiqué ci-après.

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-

( fig T.g ( fig T.h ( fig T. i )

6'd r'- t---------~


3,5%0 8

e's
Y=a. d
d

fig.T.j

fig T.j) :Diagramme des déformations de la section réelle

Etant donné que les armatures de compression sont nécessaires nous

sommes dans le domaine 2 et le diagramme des déformations passe

par le point 8; donc le raccourcissement du béton sur la fibre la

plus comprimée est égal à 3,5 %~ .

52
Nous prendrons pour l'allongement des aciers tendus Es = El

Ainsi la position de l'axe est déterminée car:

3,5
al =
3,5 + 1000 El

Comparons la hauteur de la zone comprimée, donnée par O,BY = O,Bald

à la hauteur ho de la table.

La valeur la plus faible de al pour les aciers normalement utilisés

est :
al = 0,43B.

Ce qui nous donne: O,Bald = O,B x 0.43Bd = 0,35d .

En pratique on a toujours: ho < 0,35d , par conséquent dans le

cas où les armatures comprimées sont nécessaires,la partie

comprimée s'étendra toujours dans la nervure.

Comme dans le paragraphe 3.2.1.2.1) la section fictive représentée

sur la figure T.h équilibre un moment Mf 1 donné par:

Mf 1 = J1. l oo b . b o . d ' + Ob (b-b o ) .ho. (d-hoj2) [T.4]

Les armatures sont données par :

Al = [T. 5]

La 2 ffioo section fictive (fig T.i) devra donc équilibrer le moment

résiduel

Mf 2 = M - Mf 1 (avec Mf 2 < 40 % M j • Ce moment

résiduel Mf 2 donnera une force de compression F'S dans les

armatures comprimées et une force de traction Fs dans les

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

Les armatures de la section réelle sont A' et A

• Condition pour que les armatures comprimées s'écoulent:

3,5 (al - 6')


lOOOf' s = 3,5 =>
lOOOa L

-lOOOa L f L + 3, 5a l
=> 6' :$
3,5

-lOOOa L f L
+ 3,5a l '
D'où
3,5

Conclusion

. 6' :$ => "


c' > c
s-"L donc a' s =
3,5

. 6' > => f' s < f L donc a's


3,5

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

suivantes sont simultanément remplies :

lx
1°) Le rapport lx/ly est inférieur ou égal à 0,4 ~ 0,4)
ly

2°) La dalle est uniformément chargée.

On évalue les moments en ne tenant compte de la flexion que

suivant la plus petite dimension. Dans ces conditions, on ne

calcule que les armatures parallèles au côté lx.

On est donc ramené à l'étude d'une poutre de section rectangulaire,

de largeur un mètre , de hauteur totale ho et de portée lx.

57
· lorsqu'une dalle continue peut être considérée comme·

partiellement encastrée sur ses appuis de rive, et en particulier

lorsqu'il s'agit d'un plancher à charge d'exploitation modérée,

on prend pour les moments dans chacune des travées les valeurs

suivantes :

Moment en travée =
10

-Plx'
Moment sur appuis =
16

Avec P charge uniforme résultant du poids propre et de ~a dalle


d'exploitation;

lx Portée dans le sens lx;

moment pour la dalle sur deux appuis libres


8

Suivant l'importance des charges d'exploitation, utiliser

les méthodes du code français ( Règles BAEL 83 ) pour déterminer

les moments.

Le dimensionnement des dalles revient à celui d'une section

rectangulaire pour laquelle b =100 cm et de hauteur ho ( épaisseur

de la dalle ) une fois le moment connu.

58
Chapitre IV

DEVELOPPEMENT DES PROGRAMMES

4.1°) Organigrammes et Programmes

4.1.1°) Organigrammes

Les organigrammes sont divisés en deux grandes parties:

* La norme canadienne qui présente quatre modules, ces derniers

ont à leur sein plusieurs sous-modules divisés en différents petits

organigrammes. A la page suivante nous présentons la structure

générale de l'organigramme de la norme canadienne; signalons que

nous avons mis à l'annexe N°2 quelques organigrammes qui 'ont été

fréquemment utilisés pour tous les sous-modules.

* La norme française présente aussi quatre parties; tous les

organigrammes de cette norme sont mis en annexe N°2 du rapport.

4.1.2°) Programmes

A partir des différents organigrammes, nous avons écrit tout ce

logiciel en langage Turbo Pascal (version 4). Nous avons au total

sept fichiers, de 5750 lignes occupant 320016 bytes :

- Punit1: c'est un fichier qui est exploité par les autres fichiers

en effet il comporte plusieurs procédures que ces derniers ont en

commun; ces procédures sont expliquées à l'annexe N°3.

- Punit2: il comporte des procédures qui sont utilisées par les

autres fichiers à l'exception de Punit1.

- Sylvain: ce fichier comprend toutes les procédures principales

d'analyse et de dimensionnement des poutres rectangulaires

isolées suivant la norme canadienne(Can3A23.3M84).

Té : Ce fichier comme son nom l'indique traite les poutres

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)

POUTRE MOM[/V1S CONNUS


R EC TANGU LAiR!;
CONTi NUE
.NORMé
CANA.Di EN NE ISOLE E.
POUTRE
CCAN31i~3M EN FORME
DE T S~fYIETRiQU[
.:1

CONTiNUE·

DF\LL ES EN :.FO/<M EllE


. L. L- Ctû..M.VrN:Ja )
/'

::rs~ tZ:.t c,...:t.~

NORME

FR FIN ~f\iSE ~:::::::---~---~---l


(BF1EL~3)

59'
en Té simplement armées dans le code canadien;

-Dalle: il traite les dalles portant dans une direction(Can3M84);

-continu: il traite les poutres rectangulaires continues(Can3M84)

-Afnor : dans ce fichier nous avons regroupé le dimensionnement

en béton armé suivant la norme française (règles BAEL83).

Tous ces fichiers à l'exception de Punit1 et Punit2 sont

exécutables directement. Le Listing de ces fichiers et les

fonctions de chaque sous-programme (procédure) se trouvent à

l'annexe N°3 de ce rapport.

4.2 0
) UTILISATION et POSSIBILITÉS DU LOGICIEL

4.2.1 0
) utilisation

Ce logiciel qui se donne pour tâche le dimensionnement en béton

armé est assez facile d'utilisation; en effet son caractère

interactif permet à l'utilisateur d'avoir les guides nécessaires

au cours de l'exécution de ce dernier. Cependant il y a certaines

remarques auxquelles l'utilisateur doit accorder d'importance

- au niveau des saisies de données si l'utilisateur introduit des

valeurs aberrantes (par exemples: .55 au lieu de 0.55 ou bien une

hauteur totale(h) < hauteur utile(d», l'ordinateur ne prend pas.

- au cours de l'exécution si l'utilisateur décide arrêter pour

retourner au menu il lui faudra appuyer: ( CTRL PAUSE ).

Signalons qu'au niveau de chaque module il est prévu une option

pour le retour au menu ou pour la sortie du logiciel.

N.B.: Pour démarrer il faut mettre la disquette du logiciel dans

le lecteur puis taper: EPTBACAF suivi de la touche RETOUR

60
4.2.2) Possibilités du logiciel

Ce logiciel nous offre plusieurs possibilités que nous allons

expliquer pour chaque module.

4.2.2.1) NORME CANADIENNE (CAN3A23.3M841

Dans cette partie on distingue 4 grandes options qui sont

poutre rectangulaire isolée, poutre rectangulaire continue,

poutre en forme de Té et dalle portant dans une direction:

A l'intérieur de chacune de ces options nous avons différents

modules. Ceci est bien illustré à l'organigramme C.

4.2.2.1.1) Poutre rectangulaire isolée

4.2.2.1.1.1) Analyse de poutre rectangulaire simplement armée

ou doublement armée

Ici nous déterminons le moment résistant de la poutre à partir

de l'armature et des dimensions de la section du béton. Mais avant

le calcul du moment résistant, des vérifications sont faites sur

les conditions de rupture ductile; c'est-à-dire, on voit si le

pourcentage d'acier est compris entre les pourcentages minimal et

maximal d'acier. L'autre vérification que nous faisons concerne la

hauteur totale minimale exigée pour la condition de flèche.

4.2.2.1.1.2) Dimensionnement de poutre rectangulaire

(Simplement armée et Doublement armée)

* Poutre Simplement armée

Nous avons la possibilité de dimensionner selon qu'on connaisse

les dimensions de la section de la poutre ou non.

- Si les dimensions sont inconnues, l'utilisateur a la possibilité

de choisir un réel <PAS> tel que: O.50<=PAS<=O.60

61
afin de respecter la règle de bonne pratique; au cas où il ne

désire pas respecter cette règle relative aux pourcentages d'acier,

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

dans le logiciel nous avons pris pour ce cas le rapport d/b=1.75

.Après propositions des valeurs de b et d le programme nous laisse

le soin d'arrondir ces-dernières à notre guise. Au lieu que le

logiciel nous propose des dimensions nous avons la possibilité

d'essayer des dimensions nous-même. Une fois les dimensions

choisies, le logiciel nous calcule la section d'acier et nous

détermine le nombre de barres si on le désire. On a aussi la

possibilité de choisir des barres de diamètres différents, mais au

maximum deux diamètres différents.


Plusieurs vérifications sont faites, notamment:

- Vérification du pourcentage d'acier (rupture ductile)

- Vérification du poids propre

Vérification de la hauteur totale minimale exigée

- Vérification de l'espacement et suggestion quand il y a problème.

Lorsque les dimensions sont connues, le logiciel nous calcule la

section d'acier, et toutes les vérifications ci-dessus sont faites.

Mais si le pourcentage d'acier est supérieur à la valeur maximale,

le logiciel nous suggère d'armer la section doublement ou

d'augmenter la section du béton.

* Poutre Doublement Armée


Pour les poutres rectangulaires doublement armées, les

62
dimensions sont généralement connues, le logiciel nous calcule

alors la section d'armatures tendue et comprimée puis nous

détermine le nombre de barres. Les vérifications précédentes sont

faites ici aussi. Lors de l'exécution le programme nous signale si

l'acier de compression s'écoule ou non. Si le logiciel remarque que

la poutre se comporte comme une poutre rectangulaire simplement

armée, il le signale et retourne au menu pour une nouvelle

sélection.

4.2.2.1.2) Dimensionnement de poutre en Té Simplement armée

Dans ce logiciel c'est seulement les poutres en Té armées

uniquement en tension qui sont traitées. On distingue quatre

options dans cette partie

-Poutre symétrique en Té simplement appuyée,

-Poutre symétrique en Té, continue,

-Poutre en forme de < L > renversé ,

-Poutre en Té isolée.

Le logiciel calcule la largeur effective b de la poutre en Té,

sauf dans le cas de poutre isolée, où c'est l'utilisateur même qui

donne ses dimensions, mais dans tous les cas le programme vérifie

si les dimensions sont conformes aux exigences de la norme. Après

saisie et vérification des données, le logiciel nous calcule les

sections d'acier et le nombre de barres. Ici aussi nous faisons les

vérifications d'espacement et des pourcentages d'acier. si la

poutre se comporte comme poutre rectangulaire, le logiciel nous le

signale et fait systématiquement le calcul ainsi. Mais si la

poutre en Té doit être armée doublement (dépassement du pourcentage

63
maximal d'acier), le logiciel nous précise que ce cas n~est pas
traité dans ce dernier.

4.2.2.1.3) Dimensionnement des poutres rectangulaires continues

Dans cette partie nous avons deux principales options :

soit les moments fléchissants sont déjà connus soit on utilise

les coefficients du code ( méthode forfaitaire ) pour déterminer

ces derniers afin de faire le dimensionnement proprement dit .

On peut traiter jusqu'à la travées différentes à la fois, au-delà

le logiciel n'accepte pas la valeur; toutefois celui qui possède

le programme source peut augmenter le nombre de travées au niveau

de la déclaration du tableau qui prend le nombre de travées

4.2.2.1.3.1) Les moments sont connus

On dispose déjà des moments, on veut déterminer les dimensions de

la section de béton et l'armature. Lorsqu'on ne connaît pas les

dimensions le logiciel détermine ces dernières à partir du plus

grand moment. si l'utilisateur n'avait pas tenu compte du poids

propre de la section dans l'estimation des moments, le programme

multiplie le plus grand moment par 1.10 avant de déterminer les

dimensions. Une fois les dimensions déterminées, on cherche les

diamètres des barres pour le plus grand moment touj ours et on

vérifie l'espacement et la hauteur minimale exigée pour les

conditions de flèche. Après toutes ces vérifications pour le plus

grand moment on est sûr que les dimensions conviendront pour les

autres moments Ainsi on entre maintenant les autres moments

travée par travée , mais on ne doit pas entrer un moment supérieur

64
au plus grand moment qu'on avait donné . Tous ces moments sont

traités l'un après l'autre en suivant le sens de gauche vers la

droite sur la poutre , le logiciel nous oriente bien au cours de

l'exécution.

A l'affichage des résultats il suffit d'appuyer sur la barre

d'espacement du clavier pour visualiser les résultats, mais

lorsqu'on désire avoir les résultats sur imprimante ou quand on

veut retourner au menu il faut appuyer sur la touche "ESC" ou bien

"ÉCHAP".

N.S. Il est à noter que l'on peut avec cette option, dimensionner

une poutre rectangulaire encastrée à ses deux extrémités. Pour ce

cas on choisit une travée et on entre les moments aux extrémités

et celui en travée, ainsi le logiciel nous fait tous les calculs

d'armature. On peut dimensionner de la même façon une poutre

rectangulaire encastrée à une extrémité et simplement appuyée à la

deuxième à cette deuxième extrémité, i l suffit de prendre un

moment nul

4.2.2.1.3.2) utilisation des coefficients du codeCCAN3A.23.3M84}

Méthode forfaitaire }

Nous disposons de la charge pondérée totale, puis nous voulons

déterminer les dimensions de la section du béton et l'armature ou

bien l'armature seule.

Les coefficients du code sont sélectionnés selon qu'on ait deux

travées ou plus et une poutre, un poteau ou un mur à la rive

Il est important de signaler dans cette partie que, si le nombre

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

appuis; et d'autre part les travées intérieures doivent avoir les

mêmes portées aux nus des appuis .Cette limitation est due à un

souci d'économie d'espace mémoire sur la disquette afin de pouvoir

aborder tous les points prévus dans le projet. Une fois les moments

déterminés les armatures sont calculées comme précédemment.

Lorsque les dimensions ne sont pas connues, c'est le logiciel même

qui trie le plus grand moment avec lequel il calcule les dimensions

qui doivent être retenues pour toute la poutre. Toutes les

vérifications sont faites comme dans les cas précédents. Le

logiciel refuse de continuer l'exécution tant que la valeur que

nous entrons pour le nombre de travées n'est pas supérieur à 1 ,

car c'est l'une des prescriptions de la méthode forfaitaire

4.2.2.1.4) Dalles pleines portant dans une direction

Seules les dalles armées dans une direction sont traitées dans

ce logiciel. Ainsi quand on choisit cette option le logiciel nous

demande d'entrer la longueur du plus grand côté de la dalle et

celle du plus petit côté afin de vérifier si la dalle porte

effectivement dans une direction. Rappelons qu'une dalle porte

dans une direction si son grand côté est supérieur ou égal à 2 fois

son petit côté ( CAN3A23.3M84 ).

Pour les dalles continues l'épaisseur minimale est calculée à

partir de la portée de la travée intérieure et celle de la travée

de rive; l'utilisateur a la possibilité d'arrondir à sa guise. Le

logiciel calcule la hauteur utile d (en mm) en prenant pour

enrobage 20 mm. Ainsi il détermine la section d'acier au niveau de

66
chaque moment pour une bande de 1000 mm. Pour chaque armature

calculée, le logiciel détermine les espacements qui devraient

exister entre deux barres consécutives. Lorsque l'espacement

calculé est inférieur à celui déterminé à partir de l'armature

minimale, ce dernier est retenu. Le logiciel calcule en outre

l'espacement maximal permis, donc l'espacement définitif que

l'utilisateur retiendra, doit être la plus petite valeur entre

l'espacement calculé et celui maximal permis. Tous les résultats

sont affichés travée par travée; on a la possibilité de les avoir

sur imprimante.

N.B. Notons que l'on peut aussi utiliser cette option pour

dimensionner une dalle isolée simplement appuyée, en effet il

suffira de choisir une travée et de prendre des moments nuls aux

appuis. Et les calculs se font comme précédemment.


4.2.2.2) NORME FRANcAISE (BAEL 83)

Nous distinguons ici quatre options :

Poutre rectangulaire armée uniquement en tension , .


- Poutre rectangulaire armée en tension et en compression
poutre en forme de T armée uniquement en tension ;

Poutre en forme de T armée en tension et en compression.

Pour chacune de ces options, généralement les dimensions sont

connues conformément à la méthodologie française et le logiciel

nous calcule l'armature.

Mais signalons que le logiciel a une spécification très

importante qu'il ne faut guère ignorer :« Etant donné que c'est


BAEL 83 que nous avons suivi, dans les calculs le logiciel'se base

67
uniquement sur les aciers autres que ceux du type 2 . L'acier du

type 2 correspond aux armatures à haute adhérence obtenues par

laminage à chaux suivi d'un écrouissage sans réduction de section»

Pour la norme française nous nous arrêtons au calcul d'armatures.

Au cours de l'exécution, si après certaines vérifications le

logiciel se rend compte qu'une section au lieu d'être armée

simplement devrait être armée doublement ou vice-versa, un message

apparaît pour nous le signaler; et le logiciel fait

systématiquement le calcul suivant le cas qui convient.

Etant donné qu'on s'arrête au calcul d'armature nous n'avons pas

jugé utile de faire sortir les résultats sur imprimante. Ce qui

nous prendrait d'ailleurs assez de bytes. Enfin toutes les

remarques que nous avons faites au niveau des saisies de données

dans la norme canadienne restent valables ici.

N.B. Au cours de l'exécution, le logiciel nous demande si on est

en situation accidentelle ou autres afin de choisir lui-m~me ~

et J(b. Il faut comprendre par situation accidentelle, situation

où la sécurité est très préoccupante , et par autres situations ,

les circonstances ordinaires.

Notons que si quelqu'un désire dimensionner une dalle

simplement appuyée dans cette norme, il lui suffira de choisir

l'option poutre rectangulaire armée en tension seule en prenant

pour largeur b=100 centimètres

68
4.3.1 ) EXEMPLES DANS LA NORME CANADIENNE (CAN3A23.3M84l

4.3.1.1) Analyse de poutre rectangulaire simplement armée

*Exemple 4.1 de la page 56 du livre de ARAM SAMIKIAN (2 e édition)


DONNÉES fI c =30 MPa f =400 MPa
y As =3000 mm'
Largeur B=350 mm Hauteur utile 0=630 mm CALCULER LE MOMENT
RÉSISTANT Mr.

Résultat du livre Moment résistant Mr = 545.2 KN.m

PAR LE LOGICIEL NOUS OBTENONS

6:3;0 ~ 000

(f?n mm" 3000uOOO

POUI·-· c en t: a'Je 0.0035


Pour- cent 03.qe o. o 1 ~)6
POLlI~cent:aqe 0.0229

Ha(Jteu~ mir1imale e>:igée (er, mm) = 500.000


- - - - - -. . ~---_P----_ . __.. _._---~ .._-_.P----_._---- . __..
_~ _

69
4.3.1.2)Dimensionnement de poutre rectangulaire simplement armée

* Exemple 4.4 de la page 60 du livre de ARAM SAMIKIAN(2 e édition)

DONNÉES f' c =30 MPa f y =400 MPa Largeur B=350 mm .

La poutre est simplement appuyée de portée 8000 mm et sollicitée

par un moment pondéré de 390 KN.m . Déterminer les dimensions et

l'armature tendue de la section.

Résultats du livre B= 350 mm ; 0=550 mm As =2435 mm'

As prévu = 5 barres N°25 = 2500 mm'

PAR LE LOGICIEL NOUS OBTENONS

--"'----"r-----. - _.. "0'_

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.

Moment résistant Mr = 417 KN.m


Résultat du livre

PAR LE LOGICIEL NOUS OBTENONS

_.-------~----------,---~--- ---_.__.----- --- ----- ~-- ~._---_._---------~------------~_._----~-------~._------

MOMENT RESISTANT (F.~n I<N .. rn ) 41. 7" 1 ~)~,~


Ha.ut elH' Ut i l e 450.000
Largeur 8 (en mm) 300.000
Section d'acier TENDU (en mm~~ 3500 .. (H)O

F'c.Kwcentage t'1 i r~1 i ffii:'=t l d " P,c: i f.·?r-' o , OC)~~;5


POUl" cent ""'.;)e d " (:'C i Er' o. 02~;9
Püurcer.. tage 1"lA>: i ma 1 d' ik i F:r- O. C)274

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

D= 550 mm H=65 0 mm ; D'=66 mm .


( La pout re est simp leme nt appu yée et a une porté
e de 8000 mm )
elle est soll icité e

par un mome nt pond éré de 780 KN.m .

Déte rmin er les arma tures tendu e et comp rimée

Résu ltats du livre As =5157 mm' A' s = 1394 mm'

PAR LE LOGI CIEL NOUS OBTENONS :

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

*Exemple 5.1 de la page 94 du livre de ARAM SAMIKIAN (2 e édition)

DONNÉES fI c =30 MPa .


, f y . =400 MPa Largeur de la nervure

B=350 mm

La poutre est simplement appuyée de portée 16000 mm et sollicitée

par un moment pondéré de 3000 KN.m

Déterminer l'armature tendue

Résultats du livre Armature tendue requise As 9630 mm'

PAR LE LOGICIEL NOUS OBTENONS

._--_.._----_._-_.__._-------_. __.__ .--_._--_._----_. __._-_._._--_._._._--_._-_._-_._---


.. _-_._-------_._---_._----_..__

~
._ - - - ---_ . _ - -- _. _- - - -- - --_

.m~.MI~J. ~N SiMPLEMENT ARM~F


:~.~ ~.~:..'~ ~>t ',' ~~> ~~ ~~ ,,~ , M " _M, M' ._. ~ • ...• _.

'-~"'._'"
FOUlhl fl
R~SULTATS F I N A L S . -
V•• 9•• '!••• ]
BI ••.••••••
•• - - . M •• _ M _ _ • • M ._. • .~ •• •• • •• •• • • • • • _ _. _•• _ . _ _ • • __ ...__ ••• •• _ .

Largeur- Bw de la Nervure (en mm)


Largeur EffectivE 8 (en mm)
Moment de design (en KN.m)
SecticJn {J'ac:ie~ nécessaire (en ffiln2)
Ar-matLlre ct10isie (en mm 2)
Diamètres de bar"r"es (en mIn
Nombre de bar"res
Hauteur utile D (en mm)
Moment résistant (en KN.m)
Epai~=.!5eLw· de la T,,,blE' (en mm)
NOMBRE DE t.r TS

73
4.3.1.6) Exemple de poutre continue (moment connu)

On considère la poutre continue de la figure suivante

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

Diamètre maximal du gros granulat = 20 mm

Calculer les dimensions de cette poutre et les armatures requises

aux sections indiquées ( sections simplement armées ).

PAR LE LOGICIEL NOUS OBTENONS LES RÉSULTATS MENTIONNÉS A LA PAGE

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.

LARGEUR 8 (el) I~m) :·~7(1. 000


Il,'.un'L1I< UTILE 1) (l;·n mm) ·'lElO.OOO
1I{-',Un:.UR lOTf'LE )'1INlt'lf."LE "IBl.OEn

I\RI'1I'Yrur,E l'Il NI Mt,LE (en mll,2) 453.600


1',n~I"\TUr,E 11.\Xl Mt,LE i ("fi mm2) ;;:: 291"1. :,20

f'PF'U 1 GAUCHE EH Tnt;',JEE APPU 1 or,o 1T

MOMENT (en KN.m) -126.70 17:~. 00 -220.00


ACIER REQUIS (en mm 2) 836. ~~~1 1IT7.7-1 15~)5. "7

ACIER PREVU (en IIUn2 ) 997.::52 l "9i:_ 2n 21 (lil ...1 fi

SI DIAMETRE UNIFORME ON A
25.20 25.20 29.9(1
DIAME:TRE DES BARRES (mm)

NOMBRE TOTAL DE BARRES 2 ...•


-:r

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 :

I~PPU 1 GmJCHE EN TFaV.JEE APPU 1 Df\D 1 r

MOMENT (cn KN.m) -220.00 126.70 -18-1.30


ACIER REQUIS (en mm2) 1~55.·17 8:':;6.31 1266.89
ACIER PREVU (en mm2) 2106.46 997. :;j2 1496.2EI

SI DI#IETRE UNIFORME ON A
DIAMETRE DES BARRES (mm) 29.'}(l 25.20 25.20

NOMBRE TOTAL DE BARRES "'


-;»

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

Exemple 2.9 page 2.11 à 2.12 de Concrete Design Handbook

f' c = 25 MPa B= 500 mm D= 336 mm


Charge pondérée totale: Wf = 52.59 KN.m

Les autres données et résultats obtenus sont mentionnés ci-dessous.

--------- --------- -----

t r
Column line

Total span L (on cent ers)

Clear span L"


Moment coefficient CM
(mm) 6750
1/16
7500

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

* PAR LE LOGICIEL NOUS OBTENONS LES RÉSULTATS MENTIONNÉs A LA PAGE

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:~;

(',1~I'I{lTUF::F. ~1 1N 1NALE (E~n mm2) SElE!. (l(Il)


(',nl"l/yrum:: "11-))0: 1I'1P,LE (en ""r.2) 321 ~'~'" Ot)O
CHnnm:: TOlflL.E r--mmEnEE <I<N/rrol ~:;2 .. ~;)l,Ü

RESUL.TiHS FH~t',L::;' POUl'"' LA Tr<~WEE DE rdVE

APPUI GAUCHE EN TlHWEE APPU 1 Dr,O 1T

COEFFICIENT '-1/16' '+1/1'1' e -li 10'


PORTEE Ln (en mm) 6750.00 6 7~"iO. 00 6875.00
M<MRNT (en KN.m) -1'19.76 111.15 -24B. ~'j7

ACIER REQUIS (en mn12) 14Bb.21 1 T.~7 . nn 2796. ~j4

ACIER PREVU (en mm2) 111\1f~. 28 19'i'::;. (Iii 2992. ~j6

SI DIAMETRE UNIFORME ON A
DIAMETRE DES BARRES ('IU1!) 25.20 25.20 25.20

NCMBRE TOTAL DE BARRES 6

SI DIAM ETRE DIFFERENT ON A


PLUS GRAND DIAMETRE (mm) 0.00 0.00 0.00
(1 (1 1)
NCMBRE DE BARRES DE GRAND I{J
PLUS PETIT DIAMETRE (mm) 0.00 0.00 0.00
NCMBRE DE BARRES DE PETIT I{J
1) o o
1 1 1
NCMBRE DE LITS :

APPU 1 GP,UCHE EN TF:AVEE APPUI OBOIT

COEFFICIENT '--1/11' '+1/16' '-1/11'


PORTEE Ln (en mu) 6875.00 7000.00 687~"i. (JO

MCMENT (en KN .m) -225.97 161.06 -225.97


ACIER REQUIS (en mm2) 2ij 5 7 . 27 1617.-14 2t~57.27
ACIER PREVU (en mm2) 2-193.00 199~L 0'1 2493.80

SI DIAMETRE UNIFORME ON A
DIAMETRE DES BARRES (mm) 25.20 25.20 25.20

NCMBRE TOTAL DE BARRES 5 4 .- ,.J

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

sont mentionnés ci-dessous

LARGEUR DE LA BANDE DE CALCUL B (en mm) ..• .t 0(10. 000


HAUTEUR UTILE D (en mm) .- 104. ~:':;(I
EPAI SSEUR MINIMALE DE LA DALLE (en mm) - 129.167

EPAISSEUR RETENUE (en mm) - 130.000

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

APF'U 1 (l(,UCHE APPUI Df~[)IT

MOMENT (en KN.m) -9.71 -11.43

ACIER REQUIS (en rrrrn 2 ) 282.16 212. 8~~: 33~1 .. 04


DIAMETRE DES BARRES (mm) 1.1.30 11. :::0 l 1 • ;;;(1
ESPACEMENT CALCULEE (nm) ::;60 ::,90 . ::;00

ESPACEMENT MAXI PERMI S (rrrrn~., 3'1':' 390 390


ARMATURE MINIMALE (rnm2) s: 61.1. '.lU 260.00 :~60. 00

lb
4.3.2) Exemples dans la Norme Francaise (BAEL83)

4.3.2.1) Dimensionnement de poutre rectangulaire armée en

Tension

* Exemple de la page 77 du livre de PIERRE CHARON (2 e édition)

DONNÉES: béton: â b =14.2 MPa (f c28 =25 MPa )

acier FeE40 , type1 1 \=1.15 (f y =400 MPa )

B=30 cm D= 71 cm

La poutre est sollicitée par un moment pondéré de 420 KN.m .

Déterminer l'armature tendue

Résultats du livre A =19.10 cm' (armature tendue)

PAR LE LOGICIEL NOUS OBTENONS

POUTRE RECTANGULAIRE COMPORTANT llNIQUEMENT


LES ARMATURES TENDUES

LARGEUR DE LA POUTRE B (en cm) :~~o . 000


HAUTEUR TOTALE H (en cm) 75 . 000
HAlJTEUR U1ILE D (en cm) 71 .. 000
MOMENT POND~R~ M (en KN.m) 4:~O ..000
ARMATURE TENDUE REQUISE (er1 cm Z ) --------_._----_. __. '::. 19.112

77
4.3.2.2) Dimensionnement de poutre rectangulaire armée

en tension et en compression

* Exemple de la page 83 du livre de PIERRE CHARON (2 e édition)

DONN~ES: béton: ab =14.2 MPa (fc~ =25 MPa

acier FeE40, type1 ,Ys=1.15 (f y =400 MPa )

B=20 cm D= 43 cm D'= 4 cm

La poutre est sollicitée par un moment pondéré de 320 RN.m .

Déterminer les armatures tendue et comprimée .

Résultats du livre A =27.18 cm' A'= 8.41 cm'

PAR LE LOGICIEL NOUS OBTENONS

POUTRE RECTANGULAIRE COMPORTANT


ARMATURES TENDUES ET COMPRIM~ES

DISTANCE DE LA FIBRE LA PLUS COMPRIM~E AU


CENTRE DE GRAVIT~ DE L'ACIER COMPRIM~ (en cm) ------------} 4~(:jOO

LARGEUR DE LA POUTRE 8 (en cm) --------------} 20~OOO


5()~(j()O
HAUTEUR TOTALE H (en cm) ---------------}
HAUTEUR UTILE D (en cm) --------------} 43dOOO
MOMENT POND~R~ M (eri KN.ml ---------------} 320~()()()

ARMATURE TENDUE REQUISE (en cm Z ) --------------} 27.185


ARMATURE COMPRIM~E (en cm Z ) ----------------} 8.465

78
4.3.2.3) Dimensionnement de poutre en T armée en tension

* Exemple de la page 97 du livre de PIERRE CHARON (2 e édition)

DONNÉES: béton: ab =14.2 MPa (f c28 =25 MPa

acier FeE50, type1 , Ds=1.15 (f y =500 MPa )

Largeur de la table B=100 cm Largeur de la nervure Bo=30 cm

Hauteur utile D= 63 cm Épaisseur de la table Ho =8 cm

La poutre est sollicitée par un moment pondéré de 720 KN.m

Déterminer l'armature tendue

Résultats du livre A=28.24 cm' (armature tendue)

PAR LE LOGICIEL NOUS OBTENONS

RESULTATS FINALS POUTRE EN -r~ SIMPLEMENT ARM~E

LARGEUR DE LA TABLE DE COMPRESSION (en cm) ":. 100.000


LARGEUR DE LA NERVURE (en cm) 3() .. 000
_....__ ..... -~. "> f.j .. 000
EPAISSEUR DE LA TABLE DE COMPRESSION (en cm)

HAUTEUR TOTALE H (en cm) -"-_.'-' '> 70 .. 000


HAUTEUR UTILE D (en cm) 6~:~1I 000

MOMENT POND~R~ M (en KN.m) 720 .. ()OO


ARMATURE TENDUE REDUISE (er1 cm 2 ) ~;~B. 2~58

79
4.3.2.4) Dimensionnement de poutre en forme de T armée en

tension et compression

* Exemple de la page 101 du livre de PIERRE CHARON (2 e édition)

DONNÉES: béton: ab =14.2 MPa (f c28 =25 MPa

acier FeE40, type1 , 1(.=1.15 (f y =400 MPa )

Largeur de la table B=100 cm Largeur de la nervure Bo=30 cm

Hauteur utile 0= 80 cm Épaisseur de la table Ho =B cm

distance de la fibre la plus comprimée à AI est 0 1= 5 cm

La poutre est sollicitée par un moment pondéré de 1750 RN.m

Déterminer les armatures tendue et comprimée .

Résultats du livre A=78.13 cm' (armature tendue)

A'=2.95 cm' (armature comprimée)

PAR LE LOGICIEL NOUS OBTENONS

RESULTATS FINALS POUTRE EN T~ DOUBLEMENT ARM~E

LA DISTANCE QUI StPARE LA FIBRE LA PLUS COMPRIM~E


DU CENTRE DE GRAVIT~ DE L'ACIER COMPRIM~(en cm)---: =.; . 000
LARGEUR DE LA TABLE DE COMPRESSION (en cm) ----) 100,,000
LARGEUR DE LA NERVURE (en cm) --.----,"). :30" 000
EPAISSEUR DE LA TABLE DE COMPRESSION (er1 cm) ----) t3 .. 000

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

SECTION D'ACIER COMPRIM~ (cm 2 )

BO
4.3.3 ) INTERPRÉTATION DES RÉSULTATS ET LIMITES DU LOGICIEL

Les résultats obtenus par le logiciel à partir des différents

exemples tirés des références bibl iographiques N' l, N' 2 et N° 5

sont assez satisfaisants. Il est quand même bon de signaler que

pour certains exercices, on note de légères différences,

différences qui s'expliquent par le fait que dans les livres, pour

ces exercices ce sont les formules approximatives qui ont été

utilisées. Pour les poutres rectangulaires lorsque les dimensions

ne sont pas connues (CAN3A23.3M84) après avoir déterminé ces

dernières, dans les livres ils utilisent,


- directement
. -
le

pourcentage d'acier initial choisi entre 0.5*Jb et 0.6*fb pour

calculer l'armature alors que de façon rigoureuse on doit

calculer le nouveau pourcentage d'acier à partir des dimensions

déterminées. Pour l'exemple de la méthode forfaitaire choisi

dans le HANDBOOK, nous remarquons qu'ils ont pris comme coefficient

-1/10 au niveau du deuxième poteau (à gauche comme à droite) alors

que le code suggère -1/11 et -1/10 ; Ce qui explique l'écart entre

les résultats du logiciel et ceux du livre. Au niveau des autres

moments les résultats sont pratiquement les mêmes mais les

armatures obtenues pour les moments en travée diffèrent légèrement;

Ceci s'explique par le fait que dans le Handbook, les calculs à ces

sections sont faites comme pour une poutre en T

Dans l'ensemble, les résultats obtenus sont très satisfaisants;


Cependant le logiciel a certaines limites à savoir

81
1°) Au niveau de la norme française on aurait pu traiter le cas

des aciers du type2 (armatures à haute adhérence obtenues par

laminage à chaud suivi d'un écrouissage) bien que leur utilisation

soit rejetée par BAEL83, mais autorisée pour des cas exceptionnels.

2°) Au niveau des poutres continues rectangulaires (utilisation

des coefficients du code), lorsque le nombre de tavées est

supérieur à 2 , le logiciel ne traite que le cas où: les travées

de rive sont identiques du point de vue appui et portée ; il faut

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

à un problème de programmation c' est juste pour économiser

d'espace-mémoire sur la disquette afin d'avoir assez de bytes pour

traiter tous les points du projet.

82
Chapitre V

CONCLUSION ET RECOMMANDATIONS

Ce projet nous a permis de réaliser un logiciel d'analyse et

de dimensionnementdes poutres et dalles en béton armé suivant les

normes canadienne ( CAN3A23.3M84) et française ( BAEL 83)

Les états limites ultimes (surtout la flexion simple ont

constitué la base de nos calculs. Le logiciel a été écrit dans le

langage Turbo Pascal ( version 4 ). Les résultats obtenus avec ce

dernier sont très satisfaisants, en effet il a été Testé par

plusieurs exemples.

Ce logiciel présente alors une utilité non négligeable, aussi bien

pour les étudiants que pour les ingénieurs praticiens. Ceci à cause

de sa structure et de sa particularité d'avoir les deux normes,


normes qui sont assez utilisées dans nos pays .

Dans le souci d'une meilleure utilisation de ce logiciel nous

suggérons à l'usager de ce dernier d'être attentif aux messages

qui apparaissent à l'écran au cours de l'exécution.

Enfin nous souhaitons qu'à l'année prochaine un autre projet se

penche sur d'autres aspects du béton armé (cisaillement, torsion,

et les états limites de service ... ) qui n'ont pas été abordé~dans

ce logiciel .

83
ANNEXE N°l

QUELQUES PRESCRIPTIONS DU CODE


CAN 3 .A~3.?> Mi ~ . auieau 'i-j .
-
j

"",

: .'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
.- . "- . . . .
. " "., ",.

suse, iJUbh:s d'ëtre en(JcmmasÉ;€:~ iJdt' (.l: KiI€.· :;l1e'··


importante

É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

Poutres ou 1/16 1/18.5 1/21 1/8


dalles nervurées
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,- ':- ....-~

la méthode exposée au paragraphe 8.1,2,

[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.

e,1,2 Méth .de «lprC'chi.e de calcul


~e ~3.j (art. 8: \ p~;n1etïul.ilsa;ior. Ge ta r,'éthed" eoproc..ée C" :.es i=-:c::ëS CO",- •••_ •• CéICL,
Mues et des danes pleines continues portant dans une direction, exposée ci-après, iorsque
les conditions suivantes sont remplies:

el les travées sont au nombre de deux ou pILIS;

b) les portées des travées adjacentes ne diffèrent pas de plus de 20 % ; •


C} les cnarges s~nt uniformément réparties;

dl la surcharge pondérée n'est pas supérieure à trois fois la charge ::"r'"f12nenle


pondérée;

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.

Les moments fléchissants sont donnés par

__ , ;-:-0 __- -;-;-;-_ __---,


~
,"'If = Cw ft~


, -, ,,,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'·"-~"

'j ------------- -------- .,


t ~ •• - _ _ ' .... 014 ... • ... -.-"

diJllension des.. .. ' 10 15


- 20
-".-
25 30
-35
barres nO

diamètre nominal 11.3 16.0 19.5 25.2 29.9 35.7


en mm •
,
aire d'une barre 100 200. ·300 500 700 1000
en'mm2 .

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 .

,'220 455.~ . 909 , p64 2273 3\82 4545


,240 1 • -
-1 .:. ; 833 1250 2eS:; , .:. '; .;. .- ·~16:- 1
. 1
· 260 .: '''.: 385 769 :115'. .1923 2692 3846
280; 357 . 714 , - i071 1;,86 2500 3571
.ioo .
333 "667. iooo 1667 2333 3333
,
.320 ,
. 313 625 ,9.33 .1";63
1
:138 3125
340 294 ~88 Of 882 lJ]l 2059 2941
1
'360. 1
\:,
,,: , .. 278 5~6._
'526' .
83J 1389 19~4 ' 2778
· ~80 263 789, ,~,316 1842 2632
400 250 500 750 .
, d250 1750 2500 ,
". .-
", .\ i !
i
. 714 1667 2381
.420 238 476 1190
, t
"

"
·..J'440 ,' .'
r .. '227 . - ~ ',55:. 682 ' . 113fi 1591 2273 1 , . ,.
1 1512 217·j- .. ,.
. 1 .
' .. 652' ,.
" .~

.. 460 Zi7 43S lOS7


,
1

625 /1' . lQ~2


1 1

..
• 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

QUELQUES ORGANIGRAMMES PRINCIPAUX


IORJ;8WGRB""'E~C_~' __ C(ct~ d", P"''''''éG,d;;,~" I\1M'~~ M~""J
,j

d)Qc~~ ( J~~ ~fhûC>cJ


CCAN 3 A~ 3· 3Mg4-)
( DEBU~

1
!i
j
1
1.
(CAN3 A.e3.3 M'l4-)

DEBUT

\fQlL~~:.'!'DU~ RFSPÉ'C. TEA. .


_CEtT6__REGLE" ? (o("!)
~
()R(~AN.LG_~~MMLC3_: Jàel~~6:!V_d_0~~ de ~~
__ et. .J~c ._~ci~ __e:t~
CCRN3 M3-3 MU+-)

"1-e1 "" ,:le. ~ et .ù \f<rw, tGG'I'v-


\J,,;~v.d- ~ ?" (OIN)

No,",

{,"W."T L.·:.~ C!.Jv ~


r';eJ.,.-~ d./~<-N A~=')ItSeD
(GAN 3 f\~3·3 Mg4-)

l)bOLLf\P-:- \ 0 1

®
1
l FfN J

90
, liE BUT)

NAt) -= (4- ff ,ft5Bb)


i
jC pi... br()~)

11

N<$ ~ "2f\/,( NA 1/))


t
N 3 -=- N Aç1 -'N-t~
"li Ir"
NON
..
' N3<9°o i '

v N,=- N -00 -r -i-


1

~ ,
N- NfJ6
1
.- 1· ,~

"17

..-
."

..

fiR := .Pi ~ N ~ ( 1)0/


4-
"1 r
l' FiN J

9i
RGJlliJ~GRAMME CG,..

bEBuT

"(..D<l.)~
ASB.D-1. = PI 4-
PI ,;, ( b-1d~
4

)(1. -:: A~Bj) 1ASBt> 1..


N-1 =- INT(X{)

x~- A<;BD-N1*,ASBJl.:I..
- F\Sr.,D~

N~ = INT(x.<J) +1

ARi -= AR-+- f1sBD1- A!:>BJ)~

AR~ = 11P- + AS~D~

N~ -=
Nt·=+!
Ni -=.Nd.--:1
~-+-----l AR =
/'lift I\~M. -+ N·U ASI!>J).2,

FiN
1

AMMf C6; _ -Mt~~~~-~~ _ dC/J bllJ~ ck


(~ j 4~1I-v) ~~Ltr~

(Cf\N3 R~3· 3 M~4)


R

AX :. ASBD - AR

N~ ~ q,·H.
AA,:NitA~eb(+ N-2rA5Bb~

I:/li = Al(/AS>~b1
NX1 = INT(EX1)

.Ni =NH NJ(4 + -::f.

f\ R -:: N 1lt"S~ H + wol* i\setl~

1'11.. -= Not + l'ix!


M:. 1'i1*1I~&H'" N.t* AS~

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-)

~w': \ RAPPEL S Tf\1Po'RTllrvTS 1

~~_k_Vl~V>.~ ,f~o~" 'd"=- ~c.1 CCf"", 3 M84)


--1._ ~~ d JbtClU<..X . -- -- - - . . 4-0~
_-t-!._n(~_)_~- d d(J1~_.~~ ~~---=~~-O ~
3_=_~lo-"r_~_~_~R..u_J.<v-J.c~_/Iwo......t.._~.-__=p3S~
.

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.

HTOT -::: b+ENRo+-J)E +:Jl2


-Gt

,.. .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

{-. FAiRE. ~ LiTS


~._AIJGI'1e"'TER Lr(J t.~
3. _l'IUGhE''TCB_L,,J.AM,,,,,,,_lL
t~ ~.t... J..-';''k

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

t:5fA _ B -Z",EN(W - ~ .. 1Jé - NL"~4)


- (flL- 1.)
EsePt ~ ËSPPI +-2"

WON

NON

. HTar =- t T6N~ .,.!JI! +~5t Ti)~


Nlir~ ~ VEP.-i=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)

M" : M- Oï,~(b-b·f~"@· rJ-1O~


t
~:: (M~'~O)/( Ob i" bo "d~)

, ~ NO, ..
ri, =
<::-1- M-~,«'
fT

01 s

,...-- N.. ~<{


DIV-< NO/ ~
/:rMPossi13iLiTE/ ~ ,~(9u..L
/ / ts=~.r-1..-1)
~ooo Cc(

.
"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

* LISTE DES PROCEDURES ET LEURS FONCTIONS

* LISTING DU PROGRAMME
Liste des procédures et leurs fonctions

OUI Vérifie si une réponse a

la valeur OUI ou NON

CentrageMessage Centre les impressions à l'écran

ReverseVideo Change l'état de l'écran

Barre_Espacement Permet d'avoir le contrôle de l'exécution

ValideR Teste les réels

LireReelxy Fait la Saisie des réels uniquement

Cls(y1.y2:byte) Efface une partie de l'écran que l'on désire

ReponseVa l ide Vérifie la validité des réponses

ValideE Teste les entiers

LireEntierxy Fait la saisie des entiers

FastRite Pour la présentation à l'écran

Cadre Fait des cadres sur l'écran

Make_lIindow Fait des ouvertures de fenêtre à l'écran

Remove_lIindow Mouvemente la fenêtre

Initialise_lIindow: Initialise la fenêtre

Termine_lIindow fin de ·la fenêtre

Imprime les résultats de poutre

rectangulaire doublement armée

sur imprimante

Imprime les résultats de poutre

rectangulaire doublement armée

sur écran

calcul_PC_mini max_acier Calcule les pourcentage d'acier

CHOIX_PC_acier Choix du pourcentage d'acier

DIMENSIONS_POUTRE_SECTION_ACIER: Calcule les dimensions et As

TYPE_d_appui Choix du type d'appui

Majoration_Du_Poids_Propre Majoration du poids propre

Saisie_des_donnees_dim_inc Saisie des données

..104-
IMPRESSION_SANS_ESPACE_S_A_IMP Impression des résultats

IMPRESSION_SANS_ESPACE_S_A Impression des résultats

affichage_apres_calcul_d_armature: Pour savoir si on veut

vérifier l'espacement ou non

nbre_de_barres_de_meme_diametre Recherche des barres de même ~

nbre_de_barres_de_diam_differents: Recherche des barres de

diamètres différents

Choix_Des_Diametres Choix des diamètres

rappels_enrobage Rappels des enrobages

calcul_espacement_reel Calcul d'espacement réel

verif_espacement_sur_2_lits Vérification d'espacement

c_15_1 suggestion si >


max
calcul acier_b_et_d_connues Calcul d'armatures tendues

Verif_Espacement_Sur_Un_lit Vérification d'espacement

Calcul_du_Moment_Resistant Calcul du moment résistant

PRESENTATION Page titre ( premier menu)

Verif_Espacement Suggestion pour l'espacement

H_2_Espacement Vérifie l'espacement (suite)

C_11_1_Verif_HTOT Vérifie la hauteur totale

H_1_Espacement Vérifie l'espacement (suite)

Reprise de dimensionnement

C_11_2_Dim_Repris_HTOT Reprise de dimensionnement

H_3_Hauteur_Totale Vérifie la hauteur totale

Verif_Poids_Propre Vérification du poids propre

c_14_2-POids-propre Test du poids propre

Calcul_de_HMINI Calcul de la hauteur minimale

Verif 2Du_PC_RodD_Rupture_Ductile: Vérification de ductilité

C_13_2_Ductilite Suggestion pour la ductilité

Calcul_de_D_connaissant_H Calcul de la hauteur utile

Hauteur_Totale_OU_Utile Saisie de hauteur H ou D

C_17_D_Impression Impression des résultats

Saisie Des Donnees_Dim_Con Saisie des données

C_17_I_lmpression Impression des résultats

105
Sai si e_Rectang_Doubl ement_Armee Saisie des données

CALCUL_DE_H' CaLcuL du moment H'


Ac ier_Compr ime_tendu CalcuL de As et A's
EcouLement_Heme Vérifie L'écoulement de A's
C_22_LES_PC_D_ACIER CaLcuL des pourcentages d'acier

Ecoulement_Acier_Compression Vérifie L'écouLement de A's

C_25_'_A Impression des résuLtats

C_25_'_B Impression des résuLtats

C_25_'_C Impression des résultats

C_25_'_D(DL:Byte) Impression des résuLtats

C_25_2_A(DL:Byte) Impression des résuLtats

C_25_3_A Impression des résuLtats

C_25_' Impression des résuLtats

C_25_2 Impression des résuLtats

C_25_3 Impression des résultats

C_25_4 Impression des résultats

PRINCIPAL'_RECT_SIHPLE_ARHEE Programme PrincipaL de La

poutre rectanguLaire

simpLement armée

PRINCIPAL_2_RECT_DOUBLEHENT_ARHEE Programme PrincipaL

poutre rectangulaire

doubLement armée

AnaLyse de poutre rectanguLaire

simpLement armée

ANALYSE_IHPRESSION_DOUBLE Impression des résuLtats

ANALYSE_RE CT_DOUBLE AnaLyse de poutre rectanguLaire

doubLement armée

Saisie des données de poutre en

forme de Té

Saisie de données de poutre en

Té (suite)

CalcuL de Largeur de la tabLe de

compression de La poutre en Té

-1.06
: Calcul de la largeur de la table

de compression pour poutre

en Té simplement appuyée

Calcul de largeur de table de

compression pour poutre

symétrique continue

calcul de largeur pour poutre en

forme de Il l Il renversé

Détermination de largeur

effective b (le menu de

branchement suivant les cas)

Calcul de la section d'acier

Calcul des coefficients de

l'équation du second degré en a

Calcul des pourcentages minimal

et maximal d'acier pour la

section en Té

Calcul du moment résistant pour

la section en Té

Impression des résultats pour

poutre en Té

Impression des résultats pour

poutre en Té ( diamètre uniforme)

Impression des résultats pour

poutre en Té(diamètres différents)

Pour sélectionner le genre

dl impressîon

Calcul de moment de référence et

traitement des données

Programme principal de la poutre

dans la norme canadienne

Choix des coefficients du code

pour lorsqu'on a deux travées


Détermination des dimensions de b et

d pour la poutre continue

dans le cas de 2 travées et méthode

forfaitaire

Calcul de hauteur minimale pour

poutre rectangulaire continue

Choix des coefficients du code

quand on a plus de 2 travées

Calcul des moments par la méthode

forfaitaire

Calcul des moments par la méthode

forfaitaire

calcul des moments par la méthode

forfaitaire pour plus de 2 travées

ou pour 2 travées différentes

C_'9_G_' Tri des moments

C_'9_G Recherche du plus grand moment

C_20_'_C Détermination de b et d dans le

cas de plus de 2 travées

Impression des dimensions retenues

pour la poutre continue

Rappels d'enrobage pour poutre

continue

CALCUL_ESPACEMENT_REEL_MOOIFIE Calcul d'espacement pour poutre

continue

Vérification d'espacement pour

poutre continue

calcul de la hauteur utile d

pour poutre continue

Saisie des données :2 travées et

les dimensions sont connues

Traitement des données si les

dimensions sont inconnues


Détermination de b et d dans le

cas de 2 travées (suite)

Détermination de b et d dans le

cas de 2 travées (suite et fin)

C_20_' Calcul de b et d (plus de 2 travées)

H_S_' Traitement des données

H_S_2 Traitement des données

H_S_3 Traitement des données

H_S_4 Traitement des données

H_S_S Traitement des données

H_S_6 Traitement des donnée

C_'9_A Calcul d'armature pour les travées

C_'9_B Calcul d'armaure pour les travées

C_20_S_2 Saisie de données

IMPRESSION_2_TRAVEES_IMP Impression des résultats

IMPRESSION_2_TRAVEES Impression des résultats

IMPRESSION_rive_gauche_IMP Impression des résultats

IMPRESSION_rive_gauche Impression des résultats

IMPRESSION_TRAVEE_DE_RIVE IMP Impression des résultats

IMPRESSION_TRAVEE_DE_RIVE Impression des résultats

IMPRESSION_TRAVEE_INTERIEURE_IMP Impression des résultats

IMPRESSION_TRAVEE_RIVE_DROITE_IMP: Impression des résultats

IMPRESSION_TRAVEE_R 1VE_DROI TE Impression des résultats

C_20_'O_3_A Programme principal pour poutre continue

Moments inconnus et dimensions connues ,

Méthode forfaitaire ( 2 travées

Programme principal pour poutre continue

Moments inconnus et dimensions connues ,

Méthode forfaitaire (plus de 2 travées

Programme principal pour poutre continue

Moments inconnus et dimensions inconnues

Méthode forfaitaire ( 2 travées

Programme principal pour poutre continue


Moments inconnus et dimensions inconnues

Méthode forfaitaire (plus de 2 travées)

Sai si e_MOMENTs_Connus Saisie des données lorsque les moments

sont connus (poutre continue)

SAISIE_DES_MOMENTS Saisie des moments (poutre continue)

H_5_G Traitement des données pour poutre

continue (moments connus)

Traitement des données pour poutre

continue (moments connus)

Traitement des données pour poutre

continue (moments connus)

TRAITEMENT Traitement de toute les travées

IMPRESSION_MOMENTS_CONNUS_IMP: Impression des résultats

IMPRESSION_MOMENTS_CONNUS Impression des résultats

CONT_DIM_et_MOM_CONNUS Programme principal, poutre

continue, dimensions et moments

connus

CONT_D IM_I NCON_et_MOM_CONNUS Programme principal, poutre

continue, dimensions inconnues

et moments connus

MOMENTS Programme principal qui regroupe

les différents cas pour la poutre

continue ( avec moments connus)

FORFAITAIRE Programme principal qui regroupe

les différents cas pour la poutre

continue ( avec moments inconnus)

DALLE_C_18_2 Calcul d'épaisseur de dalle

DALLE_calcul_acier_b_et_d_connues Calcul d'armature(la dalle)

DALLE_C_2D_l_A Impression des dimensions

DALLE_Saisie_MOMENTs_Connus Saisie des données

DALLE_SAIS 1E_DES_MOMENTS Saisie des moments

DALLE_TRAITEMENT_GAUCHE Traitement des données


DALLE_TRAITEMENT_MILIEU Traitement des données

DALLE_TRAITEMENT_DROITE Trai tement des données

DALLE_IMPRESSION_MDMENTS_CDNNUS_IMP: Impression des résultats

DALLE_IMPRESSION_MDMENTS_CONNUS Impression des résultats

DALLE_DIM_et_MDM_CONNUS Programme principal pour

la dalle

Saisie des données pour

poutre rectangulaire

simplement armée

AFNOR_SAISIE_RECT_DOUBLEMENT Saisie des données

AFNOR_VALEURS_LIMITES_DES_COEFFICIENTS: Calcul des coefficients

AFNOR_RECHERCHE_de_CONTRAINTE_ACIER_CDMPRIME : calcul de u's

AFNOR_IMPRESSION_F~4_2_B Impression des résuLtats

AFNOR_IMPRESSION_DES_RESULTATS_TENDUE Impression des résuLtats

AFNOR_CALCUL_ARMATURE_DOUBLEMENT Impression des résuLtats

AFNOR_IMPRESSION_DOUBLEMENT Impression des résuLtats

AFNOR_Armature_rect_simpLe_Armee CaLcul d'armatures

AFNOR_DESIGN_RECT_SIMPLE_PRINCIPALl Programme principal pour

poutre rectangulaire

simpLement armée

AFNDR_DESIGN_RECT_DOUBLEMENT_PRINCIPAL2: Programme principal pour

poutre rectangulaire

doubLement armée

AFNOR_Saisie_POUTRE_EN_TE_SIMPLE Saisie pour poutre en Té

Afnor_ARMATURE_TENDUE_TE_SIMPLE Calcul d'armature

AFNOR_IMPRESSION_POUTRE_TE Impression des résultats

AFNOR_IMPRESSION_TE_SIMPLE Impression·des résultats

AFNOR_IMPRESSION_DOUBLEMENT_TE Impression des résultats

AFNOR_DESIGN_TE_SIMPLE_PRINCIPAL3 Programme principaL

pour poutre en Té simplement

armée
Afnor_Recherche_Contrainte_Compression_TE: Calcul de a' poutre T

AFNOR_Acier_tendu_Comprime_TE Calcul d'armature

AFNOR_OESIGN_TE_OOUBLEMENT_PRINCIPAL4 Programme principal de

poutre T doublement armée


LISTING DES PROGRAMMES

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

STRING79 STR 1NG [791 ;


Ptr_window "'W;ndows;

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);

PROCEOURE Make_Window( LIG


COL
L1G2
COL2 Integer;
VAR NO_WINDOW Integer;
CAORE_AFF { > 0000 0001 01 .. AFFICHE? }
FONO { 0000 0010 02 .- OOUBLE? }
CARACTERE Byte);

PROCEDURE Remove Window( NO WINDOW Integer);


PROCEDURE Initialise_Window;
PROCEDURE Termine_Window;
PROCEDURE IMPRESSION_SANS_ESPACE_D_A_IMP(VAR B,O,OP,AS,ASP,MFO:REAL);
PROCEDURE IMPRESSION SANS ESPACE 0 A(VAR B,D,OP,AS,ASP,MFO:REAL);
PROCEDUREcalcul PC mini max acier(Var fY,fc,bl,robba,romini,krminikrmax:Real);
PROCEOURE CHOIX:PC:acier(VAR RO,KR,BD2:Real);
PROCEDURE DIMENSIONS POUTRE SECTION ACIER(VAR B,D,RAP,ASBD,RO:REAL);
PROCEDURE TYPE d a~i(VAR DENO:REAL;VAR APPUI:integer);
PROCEDURE Majoration_Du_Poids_Propre(VAR MF:REAL;VAR PDOLLAR:CHAR);
PROCEDURE Saisie_des_donnees_dim_inc(VAR fC,fy,gc,l,mfo,mf:REAL);
PROCEDURE IMPRESSION_SANS_ESPACE_S_A_IMP(VAR b,d,mfo,asbd:REAL);
PROCEDURE IMPRESSION SANS ESPACE S A(VAR b,d,mfo,asbd:REAL);
PROCEDURE affichage_apres:calcul:d:armature(VAR asbd:REAL);
PROCEDURE nbre_de_barres_de_meme_diametre(VAR DO,ASBO,N,AR:REAL);
PROCEDURE nbre_de_barres_de_diam_differents(VAR Dl,D2,Nl,N2,asbd,ar,N:REAL);
PROCEDURE Choix Des Diametres(VAR ddollar:CHAR);
PROCEDURE rappels_enrobage;
PROCEDURE calcul_espacement_reel(VAR enro,de,dmax,espa,dmaxl:REAL);
PROCEDURE verif_espacement_sur_2_lits(VAR veri,nlit :INTEGER;VAR htot:REAL);
PROCEDURE c 15 1;
PROCEOURE calc~l_acier_b_et_d_connueS(VAR kr,ro,asbd:REAL);
PROCEDURE Verif_Espacement_Sur_Un_Lit(VAR espa,dO,dmaxl,htot:REAL;
VAR NLIT:INTEGER);
PROCEDURE Calcul_du_Moment_Resistant(VAR Al,A,MR:REAL);
PROCEDURE PRESENTATION;
IMPLEMENTATION
FUNCTION OUI:Boolean;
BEGIN
OUI := False;
IF (Ch IN ['0','0']) THEN OUI:= True
ELSE OUI := False
END;
PROCEOURE CentrageMessage(message:STRING79;ligne:byte);
VAR x:byte;
BEGIN
x:=length(message);
x:=(80·x) DIV 2;
GotoXY(x,ligne);Write(message);
END;
PROCEDURE ReverseVideo(Etat BooLean);
BEGIN
IF etat THEN
BEGIN
TextColor(Black);
TextBackGround(White);
END
ELSE
BEGIN
TextColor(White);
TextBackGround(Black);
END
END;

FUNCTIDN Barre_Espacement Boolean;


VAR
chl Char;
BEGIN
GotoXY(l,25); ClrEol;
ReverseVideo(True);
CentrageMessage(' Appuyer sur la BARRE D"ESPACEMENT pour continuer ',25);
ReverseVideo(False);
Barre_Espacement := False;
Chl:=ReadKey;
1F chl = , , THEN
Barre_Espacement := True;
END;

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);

VAR mot:STRING; ok:boolean;


BEGIN
ok:=false;
REPEAT
GotoXY(x,y);clrEol;
GotoXY(x,y);readln(mot);
IF NOT(valideR(mot,Limiteinf,Limitesup»
THEN Write(#7)
ELSE
BEGIN
val(mot,nombre,erreur);
ok:=true
END;
UNTIL ok;
END;

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 mot:STRING; ok:boolean;


BEGIN
ok:=false;
REPEAT
GotoXY(x,yl;clrEol;
GotoXY(x,yl;readln(motl;
IF NOT(valideE(mot,limiteinf,limitesupll THEN Write(#7l
ElSE
BEGIN
valCmot,entier,erreur)i ok:=true
END;
UNTll ok;
END;
PROCEDURE fastRite (Str:STRING79;Row,Col,Attrib:byte);

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;

FUNCTION Majuscule(ChSalsie: STRING79) : STRING79;


VAR
1 Integer;
ChRes STRING[SOI;

BEGIN
ChRes := I l ;
FOR i:= 1 TO Length(ChSaisie) DO
ChRes := ChRes + UpCase(ChSaisie[II);
Majuscule := ChRes
END;

PROCEDURE Trouve_lg_Cur( VAR LONGUEUR_CUR word);

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;

PROCEDURE Curseur( SON_TYPE : Char );

VAR REG registers;


LONGUEUR_CUR ward;

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);

GotoXY( 10,10);~rite('LARGEUR DE LA POUTRE B (en mm) -------_. ._>1);


GotoXY( 10,12);~rite('HAUTEUR UTILE 0 (en mm) --------- ._)1);
GotoXY( 10,14);~rite('MOMENT PONDERE Mf (en KN.m) ---------_._._)1);
GotoXY( 10,16);~rite('ARMATURE TENDUE REQUISE (en mm') .. _------ )1);
GotoXY( 10,18);~rite('ACIER COMPRIME (mm') --------- ->1);
ReverseVideo(Truel;
GotoXY(70,10);~rite(B:10:3) ;
GotoXY(70,12);~rite(D:10:3) ;
GotoXY(70,14);~rite(MFO:10:3)
GotoXY(70,16);~rite(AS:10:3) ;
GotoXY(70,18);~rite(ASP:10: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;
CentrageMessage(MOT,15);
Until REPONSEVALIDE;
IF OUI Then IMPRESSION_SANS_ESPACE_D_A_IMP(b,d,dp,as,asp,mfol;
Halt;
END;
PROCEDURE calcul_PC_mini_max_acier;
BEGIN
IF FC<=30 THEN b1:=0.BS
ELSE
BEGIN
b1:=0.BS-(0.OB*(fc-30»/30;
IF b1<0.6S THEN b1:=0.6S;
END;
robba:=0.6*b1*(600/(600+fy»*(fc/fy);
romini:=1.4/fy;
krmini:=0.BS*fy*rom;n;*(1-(romini*fy)/(1.2*fc»;
krmax:=0.BS*fy*robba*(1-(robba*fy)/(1.2*fc»;
END;(*fin de la PROCEDURE *)

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 );

GotoXY(12,15); ~rite('2. AUGMENTER LES DIAMETRES DE BARRES 1) ;


GotoXY(12,17); ~rite('3. AUGMENTER LA LARGEUR B 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

LES DONNtES SUIVANTES ~cc~c~c~~cc~1 ...W...·......... ').


~·.V.W.·.·"".·"_WN -i. ,
GotoXY(15,9);Write(' 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.18);Write(' NOMBRE DE LITS 1 );

GotoXY(2.19);Write(' 1 );

GotoXY(2.2D);Write(' SECTION D' 'ACIER CHOISIE (en mm') 1 );

GotoXY(2.21);Write(' MOMENT DE DESIGN (en KN.m) 1) i


GotoXY(2,22);Write(' MOMENT RESISTANT (en KN.m) l ' );

GotoXY(2,23);Write(' ~------------------------------- - - _ . l , ');


ReverseVideo(True);
GotoXY(55.13); Write(B :10:3);
GotoXY(55.14); Write(D :10:3);
GotoXY(55.15); Write(ASBD :10:3);
GotoXY(55.16); Write(DD :10:3);
GotoXY(55.17); Write(N :10:0);
GotoXY(55.18); Write(NLIT :10 );
GotoXY(55,2D); Write(AR :10:3);
GotoXY(55,21); Write(MFO :10:3);
GotoXY(55,22); Write(MR :10:3);
ReverseVideo(False);
REPEAT UNTIL BARRE_ESPACEMENT;
ClrSer; 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_D_IMPRESSION_IMP;
HaIt;
END;

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.18);Write(' PLUS PETIT DIAMETRE DE BARRE (en mm) 1 );

GotoXY(2.19);Write(' NOMBRE DE BARRES DE PETIT DIAMETRE 1 );

GotoXY(2.20);Write(' NOMBRE DE LI TS 1 );

GotoXY(2.21);Write(' 1 );

GotoXY(2.22);Write(' ARMATURE CHOISIE (en mm') 1) ;


GotoXY(2.23);Write(' MOMENT DE DESIGN MF (en KN.m ) 1 );

GotoXY(2.24);Write(' ....MOMENT RESISTANT MR (en KN.m) ...1'1 ));;


GotoXY(2.25);Write('
ReverseVideo(True);
GotoXY(55.13); Write(B :10:3);
GotoXY(55.14); Write(D :10:3);
GotoXY(55.15); Write(ASBD :10:3);
GotoXY(55.16); Write(Dl :10:3);
GotoXY(55.17); Write(Nl :10:0);
GotoXY(55.18); Write(D2 :10:3);
GotoXY(55.19); Write(N2 :10:0);
GotoXY(55.20); Write(NLIT :10 );
GotoXY(55.22); Write(AR :10:3);
GotoXY(55,23); Write(MF :10:3);
GotoXY(55.24); Write(MR :10:3);
REPEAT UNTIL Barre Espacement;
ReverseVideo(False);

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 );

GotoXY(2.3); Write(' If~:==~:::J ENTREZ LES DONN~ES SUIVANTES §@:;~::;~~I ');


GotoXY(2.4); 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);

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*x l ) ;
END;
PROCEDURE C_25_'_IMP;
BEGIN
c_O_imp;
END;
PROCEDURE C_25_2_IMP;
BEGIN
c_O_imp;
END;
PROCEDURE C_25_3_IMP;
BEGIN
c_O_imp;
END;
PROCEDURE C_25_4_IMP;
BEGIN
c_O_imp;
c_2_imp;
c_4_imp;
END;
PROCEDURE C_25_1_A;
BEGIN
ClrScr;
ReverseVideo(True);
GotoXY(10, l);Write(' ~--------------------------------------- ');
GotoXY(10, 2);Write(' R~SULTATS DE DESIGN DE POUTRE RECTANGULAIRE ');
GotoXY(10, 3);Write(' DOUBLEHENT ARH~E ');
GotoXY(10, 4);Write(' L- .... ');

ReverseVideo(False);
r-------------------------------------------.., ,);
GotoXY ( 1, 4) ;Wr i te( ,
HighVideo;

GotoXY( l, 5);Write(' Largeur B (en nm) ');


GotoXY( 1, 6);Write(' Hauteur UTILE 0 (en nm) ');
GotoXY( 1, 7);Write(' Distance de la fibre la pluscomprimée è As"(en nm)= ');
GotoXY( 1, 8);Write(' Le Homent Pondéré (en KN.m) = ');
GotoXY( 1,9 );Write(' Le Homent Resistant (en KN.m ');
ReverseVideo(True);
GotoXY(64, 5);Write (B :8:3);
GotoXY(64, 6);Write (0 :8:3);
GotoXY(64, 7);Write (OP :8:3);
GotoXY(64, 8);Write (HFO :8 :3 );
GotoXY(64,9 );Write (HR :8:3);
ReverseVideo(False);
END;< Fin de la PROCEDURE C_25_1_A}

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 );.
' );

GotoXY(64,10); Write(AS :8 :3);


GotoXY(64,ll); Write(ART:8 :3);
GotoXY(64,12); Write(ASP:8 :3);
GotoXY(64,13); Write(ARC:8 :3);
ReverseVideo(False);
END;<fin de la PROCEDURE C_25_1B}

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( l,16);Write(' Nombre de LITS pour l"Acier Tendu


ReverseVideo(True);
l 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';

Saisie des donnees dim inc(fc,fy,gc,l,mfo,mf);


Majoration=du-PQids-propre(mf,pdollar);
TYPE_D_APPUI(deno,appui);
Calcul_de_hmini(hmini);
Calcul-pc_mini_max_acier(fv,fc,b1,robba,romini,krmini,krmax);
ClrScr;
mot:='HAUTEUR TOTALE MINIMALE (en mm) à RESPECTER= ';
CentrageMessage(mot, 10);
ReverseVideo(true);
GotoXY(62,10); Write(hmÎni:12:3);
REPEAT UNTIL Barre Espacement;
ReverseVideo(false);
choix-pc_acier(ro,kr,bd2); ClrScr;
Begin
GOTOXY(5,10);Write('1. vous AVEZ DES VALEURS DE LA LARGEUR B à ESSAYER');
GOTOXY(5,12);Write('2. VOUS VOULEZ QU"ON VOUS PROPOSE DES DIMENSIONS');
CentrageMessage('FAITES VOTRE CHOIX ·····>(1 OU 2): ',14);
LireEntierXY(70,14,1,2,ch);

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.14);lIrite(' Hauteur Utile (en mm) 1 ) ;

GotoXY(2.15);lIrite(' Largeur B (en mm) ,);


GotoXY(2.16);lIrite(' Section d"acier TENDU (en mm' 1 );

GotoXY(2.17);lIrite('
GotoXY(2.18);lIrite(' Pourcentage Minimal d"Acier
l
1 );

1) ;

GotoXY(2.19);lIrite(' Pourcentage d"Acier 1) ;

GotoXY(2.20);lIrite(' Pourcentage MAximal d"Acier 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);
--------------------.- ');

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 Largeur De La Section Du BËTON B en (mm) >');
GotoXY(5.13);Write('La Hauteur Utile D (en mm) >');
GotoXY(5.14);Write('la Section D"Acier Tendu As (en mm') >');
GotoXY(5,15);Write('La Section D"Acier Comprimé As" (en mm') >');
GotoXY(5,16);Write('La Distance qui sépare la Fibre la plus comprimée ');
GotoXY(5,17);Write('Du Centre de Gravité de l"Acier Comprimé (en mm) .... >');

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);

ReverseVideo(False); Repeat until BARRE_ESPACEMENT; HALT;


END
Else
If RO >rob Then
Begin
clrscr;ReverseVideo(True);
CentrageMessage('LA SECTION EST INACCEPTABLE EN B.A. CAR [RO> ROMAXJ.', 15);
"

CentrageMessage('EN EFFET LA RUPTURE NE SERA PAS DUCTILE.', 16);


ReverseVideo(False); Repeat Until BARRE_ESPACEMENT; HALT;
END
ELSE If RO<=ROBBA Then
Begin
ClrScr;ReverseVideo(True);
CentrageMessage('LA POUTRE SE COMPORTE COMME POUTRE
RECTANGULAIRE SIMPLEMENT ARM~E ',15) ;
ReverseVideo(False);Repeat Until BARRE_ESPACEMENT;AR:=ART;
CALCUL_DU_MOMENT_RESISTANT(A1,A,MR);
ANALYSE_IMPRESSION_DOUBLE;
END
ELSE
BEGIN
Ecoulement_Acier_Compression;
ANALYSE_IMPRESSION_DOUBLE;
END;
END;

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);

Centragemessage('VOTRE CHOIX -----------> (1,2,3,4 OU 5)',24);


LireEntierXY(6D,24,1,5,ch);
CASE CH OF
1: BEGIN
PRINCIPAL1_RECT_SIMPLE_ARMEE;
REPEAT UNTIL Barre_Espacement;
END;
2: BEGIN
PRINCIPAL_2_RECT_DOUBLEMENT_ARMEE;
REPEAT UNTIL BARRE_ESPACEMENT;
END;
3: BEGIN
ANALYSE_RECT_SIMPLE;
END;
4: ANALYSE_RECT_DOUBLE;
5: HALT;
END;

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 );

GotoXY(12,15); ~rite('2. POUTRE SYMETRIQUE EN TË , CONTINUE 1 );

GotoXY(12, 17); ~rite('3. POUTRE EN FORME DE < L > RENVERSËE 1 );

GotoXY(12,19); ~rite('4. POUTRE ISOLËE 1 );

GotoXY(12,21); ~rite('5. RETOUR AU MENU 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 );

GotoXY(12,15);Write('2. VOUS DESIREZ ARRE TER LE DIMENSIONNEMENT A CE NIVEAU');


ReverseVideo(False);
CentrageMessage('FAITES VOTRE CHOIX --> (1 OU 2) ',18);
LireEntierXY(68,18,l,2,Key); Delay(600);
CASE Key OF
2: BEGIN
C_4_2_SA; HAL T;
END;
1: BEGIN
H_l_ESPACEMENT; RO:=AS/(B*D);
VERIF_DU_PC_ROOO_RUPTURE_DUCTILE(ROOO);
CALCUL MOMENT RESISTANT TE;
C_13_2=DUCTILÏTE; -
If DDOLLAR IN ['0','0'] Then IMPRESSION_TE_UNI
ELSE IMPRESSION_TE_DIF;
HALT;
END;
END;
END;

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);

~RITEln('LES DIMENSIONS RETENUES POUR TOUTE LA POUTRE SONT :');


ReverseVideo(False);
HighVideo;
~RITEln;
WRITEln('LARGEUR B (en mm) =' ,B:l0:3);
WRITEln('HAUTEUR UTILE D (en mm) =' ,0:10:3);
WRITEln('HAUTEUR TOTALE MINIMALE (en mm)=',HMINI:10:3);
~RITEln;
WRITEln('ARMATURE MINIMALE (en mm') =',ASMINI:10:3);
WRITEln('ARMATURE MAXIMALE (en mm') =' ,ASMAX:l0:3);

REPEAT UNTIL BARRE_ESPACEMENt;


NORMVIDEO;
END;

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

DOGR:=O; NGR:=O; NLITGR:=O D1GR:=0; D2GR:=0; N1GR:=0; N2GR:=0;

DOMR:=O; NHR:=O; NLITHR:=O D1HR:=0; D2HR:=0; N1HR:=0; N2HR:=0;

DooR:=D; NDR:=O; NLITDR:=O D1DR:=0; D2DR:=0; N1DR:=0; N2DR:=0;

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

DOGI:=O; NGI:=O; {NLITGR:=O; } D1GI:=0; D2GI:=0; N1GI:=0; N2GI:=0;

DOHI:=O; NHI:=O; NLITHI:=O D1HI:=0; D2HI:=0; N1HI:=0; N2HI:=0;

0001:=0; NDI:=O; NLITDI:=O 0101:=0; 0201:=0; N1DI:=0; N2DI:=0;

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:');

Writeln(LST.'PLUS GRAND DIAMETRE (mm) D1GR:10:2. D1MR:10:2. D1DR:10:2);


Writeln(LST.'NBRE DE BARRES DE GRAND;' N1GR:10:0, N1MR:10:0.N1DR:10:0 );
~riteln(LST,'PlUS PETIT DIAMETRE (mm) 1, D2GR:10:2, D2MR:l0:2,D2DR:10:2);

Writeln(LST.'NBRE DE BARRES DE PETIT;', N2GR:10:0,N2MR:10:0.N2DR:10:0);


Writeln(LST.'NOMBRE DE LITS: '.NLITGR:10:0,NLITMR:10:0.NLITDR:10:0);

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;

IF«RIVE='P'lOR (RIVE='p'll THEN


IIriteln('COEFFICIENT ','-1/24', 1+1/14" 1 1-1/9 1 1 1 ) ;

IF«RlVE='H'lOR (RIVE='m'll THEN


IIriteln('COEFFICIENT ','-1/16' '+1/14" , '-1/9" 'l;
IIriteln('PORT~E Ln(en mml
LRG:l0:2,' ',LRH:l0:2 LRD:l0:2 l;
IIriteln('HOHENT (en KN.ml '
HRG: 10:2 " , ,HRH: 10:2 HRD:l0:2 l;
IIriteln('ACIER REQUIS(en mm'l "
ASGR:l0:2,' •,ASHR:l0:2 ASDR:l0:2l;
IIriteln( 'ACIER PREVU(en mm' l "
ARGR: 10:2,' ',ARHR:l0:2 , ,ARDR:l0:2l;
IIriteln('DIAHETRE DES BARRES(mml ,
DOGR:l0:2, ',DOMR:10:2,' " DODR:10:2l;
IIriteln('NOMBRE TOTAL DE BARRES "
NGR:l0:0 " " NHR:l0:0 NDR:l0:0 l;
ReverseVideo(Truel;
IIriteln('SI DIAHETRE DIFFERENT ON A :'l;
ReverseVideo(Falsel;
IIriteln('PLUS GRAND DIAHETRE (mml ,
D1GR:l0:2,' ',D1HR:l0:2,' D1DR:l0:2l;
IIriteln('NBRE DE BARRES DE GRAND ~ "
N1GR:l0:0,' ',N1HR:l0:0,' N1DR:l0:0 l;
IIriteln('PLUS PETIT DIAHETRE (mml
D2GR:l0:2,' D2HR:l0:2,' D2DR:l0:2l;
IIriteln('NBRE DE BARRES DE PETIT ~ "
N2GR:l0:0,' ',N2HR:l0:0,' N2DR:l0:0 l;
IIriteln( 'NOMBRE DE LITS "
NLlTGR:l0:0,' NLlTHR:l0:0,' NLITDR:l0:0l;
If l=trav then 1:=0;
Repeat UNTIL BARRE_ESPACEHENT;

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 ) ;

IF«RIVE='M') OR (RIVE='m'» THEN


IIriteln(LST,'COEFFICIENT
11_1/16" ',' ',' 11+1/14 1 1
1 1
,, , Il -1/911 1 );

IIriteln(LST,'PORT~E Ln(en mm)


LRG:10:2 " ',LRM:10:2 LRD:10:2 );
IIriteln(LST,'MOMENT (en KN.m)
MRG:10:2 " ',MRM:10:2 MRD:10:2 );
writeln(LST);
IIriteln(LST, 'ACIER REQUIS(en mm2)
ASGR:10:2,' ',ASMR:10:2,' ASDR: 10:2);
IIriteln(LST,'ACIER PREVU(en mm2)
ARGR:10:2, ' ',ARMR:10:2 " , ,ARDR:10:2);
IIriteln(LST);
IIriteln(LST,' SI DIAMETRE UNIFORME ON A:');
IIriteln(LST,'DIAMETRE DES BARRES(mm) ,
DOGR:10:2 " OOMR:10:2,' DODR: 10:2);
IIriteln(LST);
IIriteln(LST,'NOHBRE TOTAL OE BARRES'
NGR:10:0 " " NMR:10:0 " NDR:10:0 );
IIRIlEln(LST);
IIriteln(LST,'SI DIAMETRE DIFFERENT ON A:');

IIriteln(LST,'PLUS GRAND DIAMETRE (mm)


D1GR:10:2,' ',D1MR:10:2,' D1DR:10:2);
IIriteln(LST,'NBRE DE BARRES DE GRAND ~ ,
N1GR:10:0,' ,N1MR:10:0,' ,, N1DR:10:0 );
IIriteln(LST,'PLUS PETIT DIAMETRE (mm)
D2GR:10:2,' ',D2MR:10:2,' D2DR:10:2);
IIriteln(LST,'NBRE DE BARRES DE PETIT ~ ,
N2GR:10:0,' ',N2MR:10:0,' N2DR:10:0 );
IIriteln(LST,'NOMBRE DE LITS:
NLITGR:10:0,' NLlTMR:10:0,' NLlTDR:10:0);
IIriteln(LST);
IIriteln(LST,'SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS');
REPEAT UNTIL BARRE_ESPACEMENT;
END;
PROCEDURE IHPRESSION_rive_gauche;

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

IF«RIVE='P') OR (RIVE='p'» THEN


Writeln('COEFFICIENT ,
11_1/24 1 1 ','
,, , 11+1/14 1 1 ,
, 1 ,, , 1 );

IF«RIVE='H') OR (RIVE='m'» THEN


Writeln( 'COEFFICIENT ,
Il.1/16 1 1 ',' ',' 11+1/14 11 ','

Writeln('PORT~E Ln(en mm) ,


LRG: 10:2 " ',LRH:10:2 LRD:10:2 );
Writeln('HOHENT (en KN.m)
HRG:10:2,' ',HRH:10:2 ,, HRD:10:2 );
Writeln('ACIER REQUIS(en mm')
ASGR:10:2,' ',ASHR:10:2 ASDR:10:2);
Writeln('ACIER PREVU(en mm')
ARGR:10:2,' ',ARHR:10:2, , ,ARDR:10:2);
Writeln('DIAHETRE DES BARRES(mm)
DOGR:1D:2, ',DOHR:10:2,' '. DODR: 10:2);
Writeln('NOHBRE TOTAL DE BARRES "
NGR:10:D " , NHR:10:0 " NDR:10:0 );
ReverseVideo(True);
Writeln('SI DIAHETRE DIFFERENT ON A:');
ReverseVideo(False);
Writeln('PLUS GRAND OIAHETRE (mm)
D1GR:10:2,' ,D1HR:10:2,' D1DR:1D:2);
Writeln('NBRE DE BARRES DE GRAND ~ "
N1GR:10:0,' N1HR:10:0,' N1DR:10:0 );
Writeln('PLUS PETIT DIAHETRE (mm)
D2GR:10:2,' D2HR:10:2,' D2DR:10:2);
Writeln('NBRE DE BARRES DE PETIT ~ "
N2GR:10:0,' ',N2HR:10:0,'
Writeln('NOHBRE DE LITS
NLITGR:10:0, '
, .
NLlTHR:10:0. '
N2DR:l0:0 );

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>:

. IF«RIVE='P') OR (RIVE='p'» THEN


Writeln(LST.'COEFFICIENT
11_1/24" l,' ',' "+1/14" ',' , , , "-1/10" 1) ;
IF«RIVE='M') OR (RIVE='m'» THEN
Writeln(LST.'COEFFICIENT
11-1/16" ',' ',' 11+1/14" ',' , , , "-1/10" 1 ) ;
Writeln(LST,'PORT~E Ln(en mm)
LRG:l0:2 .' ',LRM:l0:2 LRD:l0:2 );
Writeln(LST,'MOHENT (en KN.m)
MRG:l0:2 .' ',MRM:l0:2 MRD:l0:2 );
writeln(LST>;
Writeln(LST.'ACIER REQUIS(en mm2)
ASGR:l0:2,' '.ASMR:l0:2 " ASDR:l0:2);
Writeln(LST.'ACIER PREVU(en mm2)
ARGR: 10:2. ' '.ARMR:l0:2 " , .ARDR:l0:2);
Writeln(LST>;
Writeln(LST.' SI DIAMETRE UNIFORME ON A:');
Writeln(LST.'DIAHETRE DES BARRES(mm)
DOGR:l0:2. '. DOHR:10:2.' DOOR:l0:2);
Writeln(LST>;
Writeln(LST,'NOHBRE TOTAL DE BARRES'
NGR:l0:0 " '. NMR: 10:0 .' NOR,10:0 );
WRITEln(LST);
Writeln(LST.'SI DIAHETRE DIFFERENT ON A:');
Writeln(LST, 'PLUS GRAND DIAMETRE (mm)
D1GR:l0:2.' 'D1MR:l0:2,' Dl0R:l0:2);
Writeln(LST.'NBRE DE BARRES DE GRAND ~ ,
N1GR:l0:0,' '. N1MR:l0:0,' N1DR:l0:0 );
Writeln(LST.'PLUS PETIT DIAMETRE (mm)
02GR:l0:2.' ,D2MR:l0:2,' D2DR:l0:2);
Writeln(LST,'NBRE DE BARRES DE PETIT ~ ,
N2GR:l0:0.' '. N2HR:l0:0.' N2DR:l0:0 );
Writeln(LST.'NOHBRE DE LITS: •
NLITGR:l0:0.' '. NLITMR:l0:0,' NLITDR:l0:0);
Writeln(LST>;
Writeln(LST>;
REPEAT UNTIL BARRE_ESPACEMENT;
END;

.-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 );

IF«RIVE='P') OR (RIVE='p'» THEN


Writeln('COEFFICIENT ,, ,
1-1/24 1 1 ',' ',' "+1/14 1 1 1 , '
,, , "-1/10" 1 ) ;

IF«RIVE='M') OR (RIVE='m'» THEN


Writeln('COEFFICIENT ','
1-1/16 11 ',. ',' Il.1/14 '' ',' ,, , "-1110" 1 ) ;

Writeln('PORT~E Ln(en mm) "


LRG:10:2 " ',LRM:10:2 LRD: 10:2 );
Writeln('MDMENT (en KN.m)
MRG:10:2 " " MRM:10:2 " MRD:10:2 );
Writeln('ACIER REQUIS(en mm')
ASGR:10:2, , " ASMR:10:2,' ,, ASDR:10:2);
Writeln('ACIER PREVU(en mm')
ARGR:10:2,' " ARMR:10:2,' ',ARDR:10:2);
Writeln('DIAMETRE DES BARRES(mm)
DOGR:10:2,' " DOMR:10:2,' DODR:10:2);
Writeln('NOMBRE TOTAL DE BARRES
NGR:10:0,' , NMR:10:0 " NOR: 10:0 );
ReverseVideo(True);
Writeln('SI DIAMETRE DIFFERENT ON A:');
ReverseVideo(False);
Writeln('PLUS GRAND DIAMETRE (mm)
D1GR:10:2,' ',D1MR:10:2,' D1DR:10:2);
Writeln('NBRE DE BARRES DE GRAND; ,
N1GR:10:0,' ',N1MR:10:0,' N1DR:10:0 );
Writeln('PLUS PETIT DIAMETRE (mm)
D2GR:10:2,' ',D2MR:10:2,' D2DR:10:2);
Writeln('NBRE DE BARRES DE PETIT; ,
N2GR:10:0,' ,N2MR:10:0,' N2DR:10:0 );
Writeln('NDMBRE DE LITS: ,
NLITGR:10:0,' , NLITMR:10:0, ' NU TDR: 10: 0 );
If I=trav then 1:=0;
Repeat UNTIL BARRE_ESPACEMENT;

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 );

IIriteln(LST,'PORT~E Ln(en mm)


L1G:10:2 " ',L1M:10:2 L1D:10:2 );

IIriteln(LST,'MOMENT (en KN.m)


MIG:10:2 " " MIM:10:2 , MID:10:2 );
IIriteln(LST,'ACIER REQUIS(en mm')
ASG[ :10:2,' " ASMI :10:2,' ASDI :10:2);
IIriteln(LST,'ACIER PREVU(en mm')
ARG[:10:2,' " ARMI:10:2,' ARDI:10:2);
IIriteln(LST>;
IIriteln(LST,, SI DIAMETRE UNIFORME ON A:');
IIriteln(LST,'DIAMETRE DES BARRES(mm)
DOGI:10:2,' " DOMI:10:2,' Dool:10:2);
IIriteln(LST>;
IIriteln(LST, 'NOMBRE TOTAL DE BARRES
NGI:10:0,' " NMI:10:0 " NDI:10:0 );
IIriteln(LST>;
IIriteln(LST,'SI DIAMETRE D[FFERENT ON A:');
IIriteln(LST,'PLUS GRAND DIAMETRE (mm) "
D1GI :10:2,' ',D1MI :10:2,' D1DI :10:2);
IIriteln(LST,'NBRE DE BARRES DE GRAND ~ ,
N1GI :10:0,' N1MI :10:0,' N1DI :10:0 );
IIriteln(LST,'PLUS PETIT DIAMETRE (mm)
D2GI:10:2,' ,D2M[:10:2,' D2D[:10:2);
IIriteln(LST,'NBRE DE BARRES DE PET[T ~ "
N2GI:10:0,' ,N2MI:10:0,' N2D[:10:0 );
IIriteln(LST,'NOMBRE DE LITS:
NLlTGI:10:0,' NLlTM[:10:0,' NLlTDI:10:0 );
IIriteln(LST>;
IIriteln(LST,'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$');
Repeat UNTIL BARRE_ESPACEMENT;
END;

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);

IF «IDENT='I') OR (IDENT='i'» THEN


BEGIN
C_19_A;
C_20_'_A;
IHPRESSION_2_TRAVEES;
REPEAT UNTIl BARRE_ESPACEHENT; HAlT;
END
ELSE
Begin
C_'9_A; C_'9_B; C_20_'_A;
IHPRESSION_RlvE_gauche;
IHPRESSION_TRAVEE_RIVE_DROITE;
Repeat Until BARRE_ESPACEHENT; HALT;
END;
END;

BEGIN
C_20_S_2;
rappels_enrobage_HODIFIE;
Calcul-pc_mini_max_scier(fy,fc,b1,robba,romini,krmini,krmax);

C_'9_A; C_19_B; C_20_'_A;


IHPRESSION_TRAVEE_DE_RIVE;
IHPRESSION_TRAVEE_INTERIEURE;
Repeat Until BARRE_ESPACEHENT; HALT;
END;

IF «IDENT='I') OR (IDENT='i'» Then


BEGIN
C_'9_A;
C_20_'_A;
IHPRESSION_2_TRAVEES;
REPEAT UNTIL BARRE_ESPACEHENT; HALT;
END
ELSE
Begin
C_'9_A; C_'9_B; C_20_'_A;
IHPRESSION_RIVE_GAUCHE;
IHPRESSION_TRAVEE_RIVE_DROITE;
Repeat Until BARRE_ESPACEHENT; HALT;
END;
END;

Calcul-pc_mini_max_acier(fy,fc,b1,robba,romini,krmini,krmax);

C_19_A; C_19_B; C_20_1_A;


IHPRESSION_TRAVEE_DE_RIVE;
IHPRESSION_TRAVEE_INTERIEURE;
Repeat Until BARRE_ESPACEHENT; HALT;
END;

PROCEDURE Saisie_HOMENTs_Connus;

BEGIN
CLRSCR;
REPEAT

GotoXY(10,5); WRITE('ENTREZ LES DONN~ES SUIVANTES :');


GotoXY(5,8 ); Write('R~SISTANCE EN COHPRESSION DU B~TON (EN HPa)----------,');
GotoXY(5,10 );Write('CONTRAINTE DE L"ACIER (EN HPa) ---------------------,');
GotoXY(5,12); Write('HASSE VOLUHIQUE DU B~TON (Béton Normal: 24DDKg/m3)---,');
GotoXY(5,14); Write('GRANDE PORT~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,1E-4,1E+10,FC);
LireReelXY(70,10,1E-4,599,FY);
LireReelXY(70,12,1E-4,1E+10,GC);
LireReeIXY(70,14,1E-4,1E+10,L1);
LireReelXY(70,16, 1E-4, 1E+10,L2);

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

OOG[II :=O;NG[JI :=O;NLITG[II :=O;OIG[11 :=0;02G[JI :=0;N1G[11 :=0;N2G[1] :=0;

IF (OOOLLAR='O') OR (OOOLLAR='o') THEN


Begin
OOG[II :=00; NG[II :=N; NLlTG[11 :=NLlT
END
ELSE
BEGIN
01G[11 :=01 ;02G[11 :=02 ;N1G[l1 :=Nl;
N2G[11 :=N2 ;NG[JI :=N ;NLlTG[l1 :=NLlT;
END;
END;

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;

IF (OOOLLAR='O') OR (OOOLLAR='o') THEN


Begin
OQM[I) :=00; NM[I] :=N; NLlTM[I) :=NLlT
END
ELSE
BEGIN
01M[1] :=01 ;02M[1] :=02 ;N1M[1] :=Nl;
N2M[I):=N2 ;NM[II:=N ;NLITM[II:=NLIT;
END;
END;

BEGIN

000 [1] :=O;NO[1) :=O;NLlTO [1] :=0;010 [1] :=0;020 [1] :=0;Nl0 [1) :=0;N20 [1] :=0;

IF (OOOLLAR='O') OR (OOOLLAR='o') THEN


Begin
000[1]:=00; NO[I):=N; NLlTO[I):=NLlT
END
ELSE
BEGIN
010[1) :=01 ;020[1] :=02 ;Nl0[1) :=Nl;
N20[1):=N2 ;NO[I):=N ;NLITO[I):=NLIT;
END;
END;

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);

GotoXY(5,10); Write('UTllISATION DES COEFFICIENTS DU CODE,


lES DIMENSIONS SONT CONNUES');
GotoXY(5,13); Write('UTllISATION DES COEFFICIENTS DU CODE,
lES DIMENSIONS SONT INCONNUES');
CentrageMessage('Votre choix (3 OU 4)',16);
lireEntierXY(60,16,3,4,Option);

Case Option OF

3 IF (TRAV=2) Then C_20_10_3_A


ElSE C 20 10 3 B;
4 IF (TRAV=2) Th;n C_2D_1D_4_A
ElSE C 20 10 4 B;
End; - - --
END;

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;

PROCEDURE DALLE DIM et MOM CONNUS;


BEGIN - - - -
ClrScr;GotoXY(10,15);
ReverseVideo(True);
Write('DIMENSIONNEMENT DES DALLES ARMEES DANS UNE DIRECTION');
ReverseVideo(False);
REPEAT UNTIL BARRE_ESPACEMENT; ClrScr;
GotoXY(5.10);Write('ENTREZ LA LONGUEUR DU PLUS GRAND COT~ DE LA DALLE (mm)');
GotoXy(5.13);Write('ENTREZ LA LONGUEUR DU PLUS PETIT COTË DE LA DALLE (mm)');
Repeat
LireReelXY(60,10, l, lE+l0,LGRAND);
LireReelXY(60,13,l,LGRAND,LPETIT);
HighVideo;
Mot:='VOULEZ-VOUS FAIRE DES CORRECTIONS? (O/N)';
NormVideo;
Repeat
GotoXY(1.20);ClrEol;
CentrageHessage(Mot.20);
Until ReponseValide;
UNTIL (Not Oui);
Repeat Until BARRE_ESPACEMENT;
MOY:=LGRAND/LPETIT; IF MOY<2 Then
BEGIN
Clrser; GotoXY(10.15);
ReverseVideo(True);
Write('CETTE DALLE PORTE DANS DEUX DIRECTIONS CE QUI NE FAIT PAS');
GOTOXY(10.16);Write('L"OBJET DE CE LOGICIEL < RETOUR AU MENU >' );
REVERSEVIDEO(FALSE);
REPEAT UNTIL BARRE_ESPACEMENT; HALT;
END;
DALLE_Saisie_MOHENTs_Connus;
CALCUL_PC_MINI_MAX_ACIER(fy.fe.b1.robba,romini.krmini.krmax);
DALLE_C_18_2;
ClrSer;
GotoXY(5.6);Write('L"EPAISSEUR MINIMALE (en mm) à RESPECTER ');
ReverseVideo(True);
GotoXY(65.6);Write(HMINI:10:3);
REVERSEVIDEO(False);
REVERSEVIDEO(TRUE);
GotoXY(10.10);write('ENTREZ L"EPAISSEUR QUE VOUS AVEZ RETENUE (en mm)-->');
GotoXY(10.13);Write('ENTREZ LE DIAMETRE DES BARRES A UTILISER (en mm) -->');
Repeat
REVERSEVIDEO(FALSE);
LireReeIXY(70.10.1E-10.1E+10.h);
LireReeIXY(70.13.1E-10.(H-21).DDAllE);
HighVideo;
Mot:='VOULEZ-VOUS FAIRE DES CORRECTIONS? (O/N)';
NormVideo;
Repeat
GotoXY(1.20);ClrEol;
CentrageHessage(Mot.20);
Until ReponseValide;
Until (Not OUI);
Repeat Until BARRE ESPACEMENT;
B:=1000; -
D:=(H-20-(DDALLE/2» ;
ASMINI:=0.002*B*H;
DALLE_SAISIE_DES_MOMENTS;
DALLE_TRAITEMENT_GAUCHE;
DALLE_TRAITEMENT_MILIEU;
DALLE_TRAITEMENT_DROITE;
ClrSer;
DALLE_C_20_1_A;
DALLE_IMPRESSION_MOHENTS_CONNUS;
ClrSer; ReverseVideo(True);
MOT:=('VOULEZ-VOUS AVOIR LES RESULTATS SUR IMPRIMANTES? (O/N)');
REPEAT
GotoXY(1.15); ClrEol;
CentrageHessage(MOT.15);ReverseVideo(False);
Until REPONSEVALIDE;
IF OUI Then DALLE_IMPRESSION_MOHENTS_CONNUS_IMP;
HALT;
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 AFNOR_Armature_rect_simple_Armee; forward;


PROCEDURE AFNOR_CALCUL_ARMATURE_DOUBLEMENT; forward;
PROCEDURE AFNOR_ACIER_TENDU_COMPRIME_TE; forward;
PRDCEDUREAFNOR_Armature_tendue_TE_SimpLe; forward;
PROCEDURE AFNOR_SAISIE_RECT_SIMP_ARMEE;
Begin
CL rScr;
REPEAT
CentrageMessage('ENTREZ LES DONN~ES SUIVANTES' ,3);
GotoXY(Z,6);Write('LA R~SISTANCE EN COMPRESSION à Z8 Jours DU B~TON(MPa)··>');
GotoXY(Z,8); Write('LA LIMITE D"~LASTICIT~ DE L"ACIER (en MPa)··········>');
GotoXY(Z,1D); Write('LA LARGEUR DE LA SECTION DU B~TON (en cm) ----------->');
GotoXY(Z,1Z); Write('LA HAUTEUR TOTALE DE LA SECTION (en cm)···-····-····->');
GotoXY(Z,14); Write('LA HAUTEUR UTILE DE LA SECTION (en cm) -------------->');
GotoXY(Z,16); Write('LE MOMENT POND~R~ (en KN.m) -------->');
LireReeIXY(65,6,1E-1D,1E1Z,FcZ8);
LireReeIXY(65,8,1E-1D,1E1Z,FE);
LireRee1XY(65,1D, lE-1D, lE1Z,B);
LireReeIXY(65,1Z,lE-1D,1E1Z,H);
LireReelXY(65,14, lE-1D,(H·D.5),D);
LireReelXY(65,16,-lE+1D, lE1Z,MI);
REPEAT
GotoXY(15,18);CLREOL;
HighVideo;
CentrageMessage('VOULEZ-VOUS FAIRE DES CORRECTIONS ?(O/N)', 18);
NormVideo;
Until ReponseValide;
Unti L Not OU 1;
M := ABS(MI);
End;

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 IMPRESSION DES RESULTATS TENDUE;


Begin - - - -
ClrScr;
ReverseVideo(True);
CentrageMessage('POUTRE RECTANGULAIRE COMPORTANT UNIQUEMENT',l);
CentrageMessage('LES ARMATURES TENDUES',8);
ReverseVideo(False);
AFNOR_IMPRESSION_F_4_2_B;Repeat Until BARRE_ESPACEMENT;Halt;
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 DESIGN RECT DOUBLEMENT PRINCIPAL2;


Begin - - - -
ClrScr;
ReverseVideo(True);
CentrageMessage('DIMENSIONNEMENT DE POUTRE RECTANGULAIRE
DOUBLEMENT ARMEE ',15);
ReverseVideo(False);
Repeat Until BARRE_ESPACEMENT;
Afnor_Sais ie_Rect_Doubl ement;
Afnor Valeurs Limites Des Coefficients;
Afnor=Calcul_Armature=Doublement;
Afnor_lmpression_Doublement;
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

1°) Béton armé. calcul aux étàts limites. théorie et pratiques

par ARAM SAMIKIAN : 2 e édition (édition Gaëtan Morin) •

2°) Concrete design Handbook, CANADIAN PORTLAND CEMENT

ASSOCIATION, OTTAWA, ONTARIO, 1985.

3°) Calcul de charpente en béton par LAURENT LABONTE, Modulo

Editeur 1988.

4°) Calcul pratigue du béton armé. Règles BAEL83 par GEORGES

DREUX 4 e édition Eyrolles 1988.

5°) Calcul des ouvrages en béton armé suivant les règles BAEL80,

Théorie et Applications par PIERRE CHARON, Eyrolles 1983

6°) Règles techniques de conception et de calcul des ouvrages

de construction en béton armé suivant la méthode des états

limites. Règles BAEL83, Juillet 1985.

7°) Cours supérieur de béton armé. Règles BAEL80 par PAUL

DINNEQUIN. Eyrolles 1982.

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

'l'ab 1('<)u 'j •

'.
8[, 1

1 !

J,"). ~ . "::; ........' .~ •

Vous aimerez peut-être aussi