Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Benoit AUGER--DUBOIS
L2_S1_ALGO_STRUCT_DONNEE
Commits
06f066b5
Commit
06f066b5
authored
Oct 16, 2021
by
Benoit AUGER--DUBOIS
Browse files
les exo du tp2
parent
cac067df
Changes
4
Hide whitespace changes
Inline
Side-by-side
Tp2/ex1.cpp
0 → 100644
View file @
06f066b5
#include <iostream>
using
namespace
std
;
int
main
(
)
{
int
a
=
1
,
b
=
2
,
c
=
3
;
int
*
p1
,
*
p2
;
p1
=
&
a
;
cout
<<
"valeur de p1 ligne 3:"
<<
*
p1
<<
endl
;
cout
<<
"Adresse de p1 ligne 3:"
<<
&
p1
<<
endl
;
p2
=
&
c
;
cout
<<
"valeur de p2 ligne 4:"
<<
*
p2
<<
endl
;
cout
<<
"Adresse de p2 ligne 4:"
<<
&
p2
<<
endl
;
*
p1
=
(
*
p2
)
++
;
cout
<<
"valeur de p1 ligne 5:"
<<
*
p1
<<
endl
;
cout
<<
"Adresse de p1 ligne 5:"
<<
&
p1
<<
endl
;
cout
<<
"valeur de p2 ligne 5:"
<<
*
p2
<<
endl
;
cout
<<
"Adresse de p2 ligne 5: "
<<
&
p2
<<
endl
;
p1
=
p2
;
cout
<<
"valeur de p1 ligne 6:"
<<
*
p1
<<
endl
;
cout
<<
"Adresse de p1 ligne 6: "
<<
&
p1
<<
endl
;
p2
=
&
b
;
cout
<<
"valeur de p2 ligne 7:"
<<
*
p2
<<
endl
;
cout
<<
"Adresse de p2 ligne 7: "
<<
&
p2
<<
endl
;
*
p1
-=
*
p2
;
cout
<<
"valeur de p1 ligne 8:"
<<
*
p1
<<
endl
;
cout
<<
"Adresse de p1 ligne 8: "
<<
&
p1
<<
endl
;
++
(
*
p2
);
cout
<<
"valeur de p2 ligne 9:"
<<
*
p2
<<
endl
;
cout
<<
"Adresse de p2 ligne 9: "
<<
&
p2
<<
endl
;
*
p1
*=
*
p2
;
cout
<<
"valeur de p1 ligne 10:"
<<
*
p1
<<
endl
;
cout
<<
"Adresse de p1 ligne 10: "
<<
&
p1
<<
endl
;
a
=
(
++
(
*
p2
)
)
*
*
p1
;
cout
<<
"valeur de a ligne 11:"
<<
a
<<
endl
;
p1
=
&
a
;
cout
<<
"valeur de p1 ligne 12:"
<<
*
p1
<<
endl
;
cout
<<
"Adresse de p1 ligne 12: "
<<
&
p1
<<
endl
;
*
p2
=
*
p1
/=
*
p2
;
cout
<<
"valeur de p2 ligne 13:"
<<
*
p2
<<
endl
;
cout
<<
"Adresse de p2 ligne 13: "
<<
&
p2
<<
endl
;
return
0
;
/* on remarque que les adresses de p1 et p2 ne change jamais une fois affectés,
seulement le contenu de ces adresses change contrairement a notre éxécution a la main.*/
}
\ No newline at end of file
Tp2/ex2.cpp
0 → 100644
View file @
06f066b5
#include <iostream>
using
namespace
std
;
typedef
char
T_chaine
[
50
];
struct
T_date
{
T_chaine
jour
;
T_chaine
mois
;
T_chaine
annee
;
};
struct
T_personne
{
T_chaine
nom
;
T_chaine
prenom
;
T_date
naiss
;
T_chaine
age
;
T_chaine
adresse
;
};
void
affPers
(
T_personne
pers
){
cout
<<
"nom :"
<<
pers
.
nom
<<
" prenom :"
<<
pers
.
prenom
<<
endl
<<
" Date de naissance : "
<<
pers
.
naiss
.
jour
<<
"/"
<<
pers
.
naiss
.
mois
<<
"/"
<<
pers
.
naiss
.
annee
<<
endl
<<
" age :"
<<
pers
.
age
<<
endl
<<
" adresse :"
<<
pers
.
adresse
<<
endl
;
}
void
affPers2
(
T_personne
*
pers
){
cout
<<
"nom,prenom : "
<<
pers
->
nom
<<
" "
<<
pers
->
prenom
<<
endl
<<
"date de naissance : "
<<
pers
->
naiss
.
jour
<<
"/"
<<
pers
->
naiss
.
mois
<<
"/"
<<
pers
->
naiss
.
annee
<<
endl
<<
"age : "
<<
pers
->
age
<<
endl
<<
"adresse : "
<<
pers
->
adresse
<<
endl
;
}
// Avantage moins long, désaventage efface les valeurs précedente du T_personne.
void
saisieP
(
T_personne
&
pers
){
cout
<<
"entre le nom de la personne : "
;
cin
>>
pers
.
nom
;
cout
<<
"entre le prenom de la personne : "
;
cin
>>
pers
.
prenom
;
cout
<<
"entrer l'adresse de la personne : "
;
cin
>>
pers
.
adresse
;
cout
<<
"entrer l'age de la personne : "
;
cin
>>
pers
.
age
;
cout
<<
"entrer l'année de naissance : "
;
cin
>>
pers
.
naiss
.
annee
;
cout
<<
"entrer le mois de naissance : "
;
cin
>>
pers
.
naiss
.
mois
;
cout
<<
"entrer le jour de naissance : "
;
cin
>>
pers
.
naiss
.
jour
;
}
// Avantage crée une nouvelle variable, désaventage plus long;
T_personne
saisieP2
(){
T_personne
P
;
cout
<<
"entre le nom de la personne : "
;
cin
>>
P
.
nom
;
cout
<<
"entre le prenom de la personne : "
;
cin
>>
P
.
prenom
;
cout
<<
"entrer l'adresse de la personne : "
;
cin
>>
P
.
adresse
;
cout
<<
"entrer l'age de la personne : "
;
cin
>>
P
.
age
;
cout
<<
"entrer l'année de naissance : "
;
cin
>>
P
.
naiss
.
annee
;
cout
<<
"entrer le mois de naissance : "
;
cin
>>
P
.
naiss
.
mois
;
cout
<<
"entrer le jour de naissance : "
;
cin
>>
P
.
naiss
.
jour
;
return
P
;
}
/* les saisies bug lorsque l'on met des espaces sinon cela fonctionne que ce soit
avec la variable string ou tableau de caractère*/
int
main
()
{
T_personne
humain
;
//humain = saisieP2() variante
saisieP
(
humain
);
//affPers(humain) variante
affPers2
(
&
humain
);
}
\ No newline at end of file
Tp2/ex3.cpp
0 → 100644
View file @
06f066b5
#include <iostream>
using
namespace
std
;
typedef
char
T_chaine
[
50
];
struct
T_date
{
T_chaine
jour
;
T_chaine
mois
;
T_chaine
annee
;
};
struct
T_personne
{
T_chaine
nom
;
T_chaine
prenom
;
T_date
naiss
;
T_chaine
age
;
T_chaine
adresse
;
};
void
affPers2
(
T_personne
*
pers
){
cout
<<
"nom,prenom : "
<<
pers
->
nom
<<
" "
<<
pers
->
prenom
<<
endl
<<
"date de naissance : "
<<
pers
->
naiss
.
jour
<<
"/"
<<
pers
->
naiss
.
mois
<<
"/"
<<
pers
->
naiss
.
annee
<<
endl
<<
"age : "
<<
pers
->
age
<<
endl
<<
"adresse : "
<<
pers
->
adresse
<<
endl
;
}
void
saisieP
(
T_personne
&
pers
){
cout
<<
"entre le nom de la personne : "
;
cin
>>
pers
.
nom
;
cout
<<
"entre le prenom de la personne : "
;
cin
>>
pers
.
prenom
;
cout
<<
"entrer l'adresse de la personne : "
;
cin
>>
pers
.
adresse
;
cout
<<
"entrer l'age de la personne : "
;
cin
>>
pers
.
age
;
cout
<<
"entrer l'année de naissance : "
;
cin
>>
pers
.
naiss
.
annee
;
cout
<<
"entrer le mois de naissance : "
;
cin
>>
pers
.
naiss
.
mois
;
cout
<<
"entrer le jour de naissance : "
;
cin
>>
pers
.
naiss
.
jour
;
}
/*
Le pointeur vers un T_personne est utile si il faut changer de binome pour ne pas avoir a réecrire
toutes les informations de la personnes.
Le T_pointeur est moins ergonomique si les binomes change au cours du temps.
*/
struct
T_binome
{
T_personne
*
etu1
;
T_personne
*
etu2
;
bool
isBinome
;
/* si les deux pointeurs sont affectés avec des valeurs différentes
isBinome est vrai sinon il est faux. */
};
/* les différents scenario sont pris en compte en amont lors
de l'affectation du booleen isBinome comme préciser dans le T_binome*/
void
affBSuccinct
(
T_binome
b
){
if
(
b
.
isBinome
){
cout
<<
b
.
etu1
->
nom
<<
" "
<<
b
.
etu1
->
prenom
<<
" est en binome avec : "
<<
b
.
etu2
->
nom
<<
" "
<<
b
.
etu2
->
prenom
<<
endl
;
}
else
{
cout
<<
"Le binome est incorrect"
;
}
}
void
affBComplet
(
T_binome
b
){
if
(
b
.
isBinome
){
affPers2
(
b
.
etu1
);
cout
<<
endl
<<
"est en binome avec : "
<<
endl
;
affPers2
(
b
.
etu2
);
}
else
{
cout
<<
"Le binome est incorrect"
;
}
}
void
addB
(
T_personne
P1
,
T_personne
P2
,
T_binome
&
B
){
B
.
etu1
=
&
P1
;
B
.
etu2
=
&
P2
;
if
(
&
P1
!=
&
P2
){
B
.
isBinome
=
true
;
}
else
{
cout
<<
"Entrer différents étudiants"
;
}
}
T_binome
addB2
(
T_personne
*
P1
,
T_personne
*
P2
){
T_binome
B
;
B
.
etu1
=
P1
;
B
.
etu2
=
P2
;
if
(
P1
!=
P2
){
B
.
isBinome
=
true
;
}
else
{
cout
<<
"Entrer différents étudiants"
;
}
return
B
;
}
/* les saisies bug lorsque l'on met des espaces sinon cela fonctionne que ce soit
avec la variable string ou tableau de caractère*/
int
main
()
{
T_binome
B
;
T_personne
etu1
,
etu2
;
saisieP
(
etu1
),
saisieP
(
etu2
);
B
=
addB2
(
&
etu1
,
&
etu2
);
// addB(etu1,etu2,B); alternative
affBSuccinct
(
B
);
// affBcomplet(B); alternative
}
\ No newline at end of file
Tp2/ex4.cpp
0 → 100644
View file @
06f066b5
#include <iostream>
using
namespace
std
;
typedef
int
T_nb
[
6
];
void
saisieGrille
(
T_nb
tab
)
{
for
(
int
y
=
1
;
y
<
7
;
y
++
){
tab
[
y
]
=-
1
;
}
int
temp
,
verif
;
int
i
=
1
;
while
(
i
<
7
)
{
cout
<<
"entrer un entier : "
<<
endl
;
cin
>>
temp
;
verif
=
estPresent
(
temp
,
tab
);
if
(
temp
>
0
&&
temp
<
50
&&
verif
==
0
){
tab
[
i
]
=
temp
;
i
++
;
}
}
cout
<<
"Les 6 entiers sont entrées"
<<
endl
;
}
int
estPresent
(
int
n
,
T_nb
tab
){
int
x
=
0
;
for
(
int
i
=
1
;
i
<
7
;
i
++
){
if
(
tab
[
i
]
==
n
){
x
=
1
;
}
}
return
x
;
}
void
affTab
(
T_nb
T
){
cout
<<
"les tirages du loto sont : "
;
for
(
int
i
=
1
;
i
<
7
;
i
++
){
cout
<<
T
[
i
];
}
cout
<<
endl
;
}
int
main
()
{
T_nb
tirage
,
grille
;
int
compteur
=
0
;
saisieGrille
(
tirage
);
saisieGrille
(
grille
);
affTab
(
grille
);
cout
<<
endl
;
for
(
int
i
=
1
;
i
<
7
;
i
++
){
compteur
=
compteur
+
estPresent
(
tirage
[
i
],
grille
);
}
if
(
compteur
==
6
){
cout
<<
"Félicitation vous avez les 6 numéros gagant !"
<<
endl
;
}
else
{
cout
<<
"Vous avez perdu avec "
<<
compteur
<<
" numéro gagnant"
<<
endl
;
}
return
0
;
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment