- Gestion des erreurs de lecture
- Positionnement dans un flux
- Etat d’un flux
- Tri de tableau
- Tester ses programmes (V2)
Archives de Catégorie: R1.01 – Init Dev
R1.01 – Amphi 11
R1.01 – Amphi 12
Planning 2024-2025
Semaine du 2 septembre
- Amphi 01
- Amphi 02
- Amphi 03
Semaine du 9 septembre
- Amphi 04
- TD1
Semaine du 16 septembre
- Amphi 05
- Amphi 06
- TD2
- Mini test 1
Semaine du 23 septembre
- Amphi 07
- Amphi 08
- TD3
- TD4
- Mini test 2
Semaine du 30 septembre
Amphi 09Amphi 10- TD5
- Mini test 3
- TP1
- TD6 – partie #1
Semaine du 07 octobre
- TD6 – partie #2
- TP #2
Mini test #4
Semaine du 14 octobre
Mini test #5- TD7
- TP3 : lancement de la SAE #1.02
- Test Algo
- partie #1 QCM (environ 40 questions / 20 min)
- partie #2 (un gros exercice), le thème de cette année c’est quels sont les algorithmes utilisés par les bibliothèque Python;
- Document autorisé : 1 feuilles A4 (recto/verso) – sauf pour ceux qui on un justificatif des dysgraphie, auquel cas, ils pourront imprimé leur document autorisé.
Semaine du 21 octobre
- TD10
- TP4
- Amphi :
- Correction du test;
- Réponse aux questions relatives à la SAE
- Coding live d’une des réponses à la SAE (vous n’aurez plus le droit de l’utiliser)
- Le code fourni en amphi est disponible ici
- Amphi #9
- Le fichier contenant la liste des votants est disponible ici
Semaine du 4 novembre
Semaine du 11 novembre
Semaine du 18 novembre
Semaine du 25 novembre
- TP 12
- Soutenance SAE 1.02
Semaine du 2 décembre
Semaine du 9 décembre
Semaine du 16 décembre
R1.01 – Prog#8 – Exercice 1
Télécharger le projet git de ce repo : https://github.com/alain13100/MinGL2_IUT_AIX.
Faites en sorte d’afficher :
* des 10 pixels de couleur pourpre dans la fenêtre;
* 2 triangles;
* 3 cercles;
* 1 carré;
* un rectangle;
* un pacman.
R1.01 – Prog#8 – Exercice 2
Le code suivant contient la procédure de génération d’un tableau et la recherche de la valeur maximale.
using namespace std; void initVect (vector& V, const size_t & _size, const unsigned & min, const unsigned & max) { V.resize(_size); for (unsigned & val : V) val = min + rand() % (max - min); } unsigned maxElemem (const vector & V) { return *max_element (V.begin(), V.end()); } int main() { srand (time(nullptr)); vector V; unsigned maxAGenerer (20); initVect (V, 10, 1, maxAGenerer); //TODO return 0; }
Compléter le contenu pour afficher l’histogramme du tableau.
Veillez à bien dimensionner votre fenêtre.
R1.01 – PROG#13 – Exercice 1
Déclarerez une variable de type map < string, string >
. La première chaine de caractères désigne un nom de famille, le second le prénom d’une personne.
Dans le main ()
:
- déclarer une
map
, - insérer 4 éléments dans cette
map
, - parcourez la
map
pour l’afficher.
R1.01 – PROG#13 – Exercice 2
Ecrire le corps de la fonction insertIntoMapIfNotExists ()
de signature :
void insertIntoMapIfNotExists (map <string, string> & MyMap, const string & Nom, const string & prenom);
Cette fonction doit insérer dans la map
le couple (nom, prenom)
que si le nom n’est pas déjà présent.
Ecrire ensuite le corps de la fonction doublement générique showMap ()
de signature :
template <typename T, typename U> void showMap (const map <T, U>& MyMap);
Quelles sont les spécifications de cette nouvelle fonction ?
Modifier l’exercice 1 en conséquence.
Que se passe-t-il s’il y a plusieurs membres d’une même famille.
Recoder tout!
R1.01 – PROG#13 – Exercice 3 Pacman
Télécharger la correction du projet suivante
Générer la documentation à l’aide de doxygen.
Modifier le fichier type.h en y ajoutant la struct suivante :
struct CMyParamV2{
char tokenP1 = (‘X’);
char tokenP2 = (‘Y’);
char KeyUp = (‘z’);
char KeyDown = (‘s’);
char KeyLeft = (‘q’);
char KeyRight = (‘d’);
std::size_t NbColumn = (10);
std::size_t NbRow = (10);
std::string ColorP1 = KColor.find(“Blue”)->second;
std::string ColorP2 = KColor.find(“Green”)->second;
};
Puis ajouter le code suivant dans params.h :
#include “type.h”
void initParams (CMyParamV2 & param);
Créer le fichier params.cpp dans le répertoire Correct_Prof et insérer le code suivant :
#include <string>
#include “params.h”
#include “game.h”
using namespace std;
void initParams (CMyParamV2 & Param)
{//Move Keys
Param.KeyUp = ‘z’;
Param.KeyDown = ‘s’;
Param.tokenP1 = ‘A’;
Param.tokenP2 = ‘X’;
//Size of grid — suppose to be a rectangle
Param.NbColumn = 10;
//Display Colors
Param.ColorP1 = KColor.find(“KRed”)->second ;
}
Modifier la fonction initParams () de façon à spécifier les touches gauches et droite, ainsi que le nombre de lignes et la couleur du second joueur.
Dans game.cpp :
Ajouter l’appel à la fonction initParams () dans ppal ().
Dans gridmanagement.cpp, modifier les fonction displayGrid () et initGrid () pour prendre en compte la structure de données.
R1.01 – PROG#13 – exercice 4
Le but de cet exercice est de charger un fichier de configuration au format YAML.
Télécharger le fichier config.yaml, et changez l’extension. Modifiez le si besoin.
Ajouter la définition de la fonction
void LoadParams (CMyParamV2 & Param); |
Cette fonction doit lire le fichier config.yaml
de façon à remplir la struct MyParms
, après son initialisation.
Pour ce faire, procéder de la sorte :
- Vérifier que vous arrivez bien à atteindre le fichier
config.yaml
en utilisant un chemin relatif; - Parcourez ce fichier de façon à extraire tous les clés (de types
string
) et toutes les valeurs; - Faites les insertions dans la structure de données de type
CMyParam
, si besoin