Choisissez votre style : colorisé, impression

Série 2
Premiers pas en programmation

Buts

Cette série a pour but de vous familiariser avec les divers outils dont vous aurez besoin pour écrire et compiler vos programmes en C++, en vous faisant pratiquer sur des exemples simples de (premiers) programmes.

information Informations

Pour vous aider dans votre pratique (voire votre [auto-]évaluation), un thème et un niveau de difficulté (de 1 = facile à 3 = avancé) est associé à chaque exercice. Pratiquez donc en priorité les thèmes avec lesquels vous vous sentez le moins à l'aise. De même, si vous êtes doué pour la matière, attaquez directement les exercices niveau 2 et 3.
Si par contre vous êtes en difficulté, focalisez vous sur les niveau 1 et 2 puis revenez plus tard sur le niveau 3.
Notez que les niveaux sont déterminés en fonction du moment où la série est prévue... il est clair qu'un même exercice donné plus tard au cours de l'année (par exemple au moment de l'examen) serait considéré comme beaucoup plus facile !
Il existe de plus des exercices de niveau 0, qui reprennent pas à pas un exemple du cours et l'expliquent en détail. Ces exercices sont prévus pour vous faire assimiler le cours à votre rythme, en particulier aux débutants. Commencez donc par là si vous êtes en difficulté.

La totalité de la série n'est pas prévue pour être finie en 2 heures ! La série est à considérer comme un regroupement de plusieurs exercices, un peu comme un chapitre de livre d'exercices, où chacun peut choisir (à l'aide des indications ci-dessus) ce qui lui semble adapté à sa progression.

Le niveau moyen pour 2 heures d'exercices correspond à deux exercices niveau 1 et un exercice niveau 2.

Pour finir, je vous conseille également, en plus des 2 heures d'exercices hebdomadaires à l'emploi du temps, de travailler par vous-même chez vous de façon régulière en guise d'exercices personnels. Ce travail supplémentaire devrait en moyenne correspondre à 2 à 3 heures hebdomadaires.

Pour résumer :

Niveau 0
Reprise pas à pas d'un exemple du cours. Les exercices de ce niveau peuvent sans problème être sautés par tous ceux qui estiment avoir une suffisamment bonne compréhension de la programmation de base et du cours.
Niveau 1
Ces exercices élémentaires devraient pouvoir être faits par tous dans un temps raisonnable (30 à 45 minutes maximum). Ils permettent de travailler les bases.
Niveau 2
Ces exercices plus avancés devraient être abordés par tous, sans forcément être finis. La reprise de l'exercice avec la correction devrait constituer un bon moyen de progresser.
Niveau 3
Ces exercices d'un niveau avancé sont pour les plus motivés/habiles d'entre vous. Ils peuvent dans un premier temps être ignorés. Ils devraient être repris, si nécessaire avec la correction, lors des révisions.

Préliminaires :

Si ce n'est déjà fait, faites les quiz du MOOC.

Pour vos premiers pas en programmation, vous pouvez aussi bien travailler avec un environnement basique, c'est à dire au moyen d'un simple éditeur de texte (typiquement Geany), qu'avec des outils plus évolués; ce que l'on appelle des «Environnement de développement intégrés (EDI)». Il en existe plusieurs et ce cours travaillera avec QtCreator. C'est notamment cet outil qui est suggéré pour développer le mini-projet en fin de semestre et pour le projet du second semestre. Vous êtes libre d'utiliser tout outil où vous êtes à l'aise, mais l'équipe du cours ne peut garantir de support pout tout type d'environnement de développement.

Premier exercice niveau 0 

Une variante de cet exercice est disponible en page 8 de l'ouvrage C++ par la pratique

Le but de cet exercice est de vous apprendre, pas à pas, à

Certains exercices de la série nécessitent de saisir des données d'entrée. Dans QTCreator cela peut se faire en procédant à cette manipulation. Notez que vous disposez d'un petit guide d'utilisation de QTCreator (dont un FAQ pouvant être utile!)
La suite de la série peut être réalisée sur Geany ou QtCreator (vous êtes libre du choix).

Second exercice niveau 0 (IMC) 

Le but de cet exercice est de vous apprendre, pas à pas, à écrire un petit programme simple comportant :

Cliquez ici si vous voulez faire cet exercice.

Exercice 1 : Variables (niveau 1)

Exercice n°1 (pages 13 et 195) de l'ouvrage C++ par la pratique
(pages 13 et 197 dans la 2e édition).
Exercice n°1 du MOOC
Écrivez un programme age (sous Geany un simple fichier age.cc et sous QtCreator ce peut être votre projet qui s'appelle age) qui :
  1. demande son âge à l'utilisateur ;
  2. lit la réponse de l'utilisateur et l'enregistre dans une variable age de type entier ;
  3. calcule l'année de naissance (à un an près) de l'utilisateur et l'enregistre dans la variable annee de type entier ;
  4. affiche l'année de naissance ainsi calculée.
Compilez et exécutez votre programme (voir exercice précédent pour les détails, mais en résumeé : F9 dans Geany, «Compile» dans Emacs, puis F5 dans Geany ou ./age dans le terminal).

Indications :


Exercice 2 : Fondue (niveau 1)

Exercice n2 du MOOC

Le but de cet exercice est d'écrire un programme qui permet d'adapter automatiquement, en fonction du nombre de convives, les quantités d'ingrédients nécessaires à la confection d'une fondue fribourgeoise (au pur Vacherin fribourgeois ; une recette typiquement suisse, mais à ne pas confondre avec la fondue « moitié-moitié », suisse également ;-) ).

Ecrivez un programme fondue (sous Geany un simple fichier fondue.cc et sous QtCreator ce peut être votre projet qui s'appelle fondue) qui :

  1. déclare une constante BASE, initialisée à 4, et qui indique le nombre de personnes pour laquelle est conçue la recette de base ;

  2. déclare une variable fromage, initialisée à 800.0, qui donne la quantité de fromage en grammes nécessaire pour BASE personnes (du « Vacherin fribourgeois » en l'occurrence !) ;

  3. déclare une variable eau, initialisée à 2.0, qui donne la quantité d'eau en décilitres nécessaire pour BASE personnes ;

  4. déclare une variable ail, initialisée à 2.0, qui donne le nombre de gousses d'ail nécessaires pour BASE personnes (on choisit le type double car on veut pouvoir utiliser des moitiés de gousses par exemple) ;

  5. déclare une variable pain, initialisée à 400.0, qui donne la quantité de pain en grammes nécessaire pour BASE personnes ;

  6. demande à l'utilisateur d'introduire le nombre de convives pour lequel on veut préparer la recette ;

  7. lit la réponse de l'utilisateur et l'enregistre dans une variable nb_convives de type entier ;

  8. adapte les quantités de chaque ingrédient en faisant une règle de trois (nouvelle_quantite = quantite_de_base * nb_convives / BASE ) ;

  9. et affiche la recette pour le nombre de convives voulus selon l'exemple ci-dessous.

Exemple d'exécution du programme

Entrez le nombre de personne(s) conviée(s) à la fondue : 3

Pour faire une fondue fribourgeoise pour 3 personnes, il vous faut : 
 - 600.0 gr de Vacherin fribourgeois
 - 1.5 dl d'eau
 - 1.5 gousse(s) d'ail
 - 300.0 gr de pain
 - du poivre à volonté

Exercice 3 : Variables (niveaux 2 (début) et 3 (explication))

Exercice n°2 (pages 13 et 196) de l'ouvrage C++ par la pratique
(pages 13 et 198 dans la 2e édition).
Exercice n°3 du MOOC
Écrivez un programme calcul.cc (sous Geany un simple fichier calcul.cc et sous QtCreator ce peut être votre projet qui s'appelle calcul)qui :
  1. déclare les variables x et y de type entier ;
  2. déclare les variables a, b, c et d de type réel ;
  3. affecte la valeur 2 à x et 4 à y ;
  4. calcule la somme, la différence, le produit, et le quotient de x par y, et affecte les résultats à a, b, c et d ;
  5. affiche les valeurs de a, b, c et d.

Compilez et exécutez le programme.

Vous devez constater que le quotient de x par y (c'est-à-dire x / y) donne un résultat nul.

Modifiez ensuite votre programme en déclarant x et y avec le type réel.
Recompilez et exécutez.

Que constatez-vous ?

Même question avec x de type entier et y de type réel.
(Expliquez [à votre voisin] les différents résultats obtenus.)


Exercice 4 : Variables, opérateurs arithmétiques (niveau 2)

Une tante fortunée vous envoie un jour une petite enveloppe (en francs tout ronds) pour vos études à l'EPFL. L'étudiant(e) prévoyant(e) et organisé(e) que vous êtes décide de gérer cette somme de la façon suivante :

Vous décidez également de gérer cette somme en francs tout rond. Le reste de l'argent sera destiné à acheter un bouquet de fleur à votre maman pour la prochaine fête des mères. En supposant qu'un café à Sat vaut 2 Frs, qu'un numéro du Flash en vaut 4 et qu'un billet de métro vaut 3 Frs, écrivez le programme roseblanche.cc [1] vous permettant de produire la sortie suivante:

Exemple d'exécution du programme:

  Combien avez-vous reçu d'argent (Frs)? 800
  Livre et Fournitures: 600 Frs
  Vous pouvez ensuite acheter:
   33 cafes a Sat
   16 numeros du Flash
   22 billets de métro
  et il vous restera 4 Frs pour les roses blanches.
Indication: utilisez des variables de type int. Utilisez l'opérateur % qui vous donne le reste de la division entière.


[1] ... le petit clin d'oeil culturel de la journée ;-) (mais ne pas écouter l'interprétation de Berthe Sylva si vous êtes d'humeur sombre !)

Dernière mise à jour : 2024/09/10 12:37