Mission 2 : Bases de programmation

Mission 2 : Bases de programmation

Introduction

Depuis son apparition durant la seconde guerre mondiale, l'informatique n'a cessé de transformer profondément la société. La science et les différents domaines de l'ingénieur sont aujourd'hui de plus en plus dépendants de l'informatique pour des besoins de calcul ou de simulation notamment. Dans un rapport récent [1], plusieurs scientifiques ont mis en avant les liens de plus en plus forts entre l'informatique et les différentes disciplines scientifiques. Ils vont même jusqu'à prévoir l'émergence de nouvelles formes de "sciences" qui feront la synthèse entre les sciences ou les métiers traditionnels de l'ingénieur et l'informatique. Dès aujourd'hui, cette synthèse a créé de nouveaux domaines comme la bioinformatique qui fait le lien entre la biologie moléculaire et l'informatique, la climatologie dont les prédictions dépendent d'ordinateurs de plus en plus puissants, mais aussi les nanotechologies où les modélisations informatiques sont essentielles pour comprendre les interactions entre atomes et molécules ou la physique des particules où des équipements tels que le Large Hadron Collider (LHC) installé récemment au CERN à Genève produisent des quantités de mesure tellement gigantesques qu'il faut utiliser des milliers d'ordinateurs pour les traiter.

Si les ordinateurs sont tellement utiles pour résoudre des problèmes scientifiques ou d'ingénierie c'est grâce à leur puissance de calcul. Cette puissance de calcul est à deux niveaux : matériel et logiciel. Au niveau matériel, les processeurs utilisés dans les ordinateurs actuels sont capables d'effectuer très rapidement des additions, multiplications, divisions, soustractions et comparaisons de nombres réels.

Pour cette mission, vous devez écrire un programme Python qui permet de trouver les solutions entières à des équations du style :

xm + yn = zp

Vous constaterez que l'énoncé de cette mission est plutôt directif. Dans les problèmes suivants, la mission sera bien moins explicite et une partie du travail de préparation consistera à la préciser.

[1]Towards 2020 Science, disponible depuis http://research.microsoft.com/towards2020science/

Pré-requis

Conditions à remplir pour pouvoir résoudre le problème :

  • savoir effectuer son login,
  • s'y retrouver dans les icônes, les fenêtres, etc. de Linux sur un poste de travail,
  • savoir lancer un programme comme Thonny et soumettre son travail sur le serveur de correction,
  • connaître le maniement élémentaire de Thonny,
  • savoir utiliser le navigateur (browser) Internet,
  • se débrouiller en anglais.

Objectifs

A l'issue de cette mission, chacun d'entre vous :

  • sera en mesure de dire quelques mots sur certains concepts sous-jacents à un programme Python simple :

    • types de données
    • chaînes de caractères
    • opérations arithmétiques
    • opérations booléennes
    • appel de fonction
    • boucles for
  • sera en mesure d'utiliser l'environnement de travail Thonny pour traiter des programmes écrits en Python et de soumettre son travail au serveur de correction.

Préparation, étude et apprentissage

Vous devez lire et comprendre ces parties du syllabus pour pouvoir mener à bien cette mission :

Comment bien préparer la mission

  1. Avoir assisté au cours et avoir fait la liste des points abordés.
  2. Lire une première fois les sections du livre de référence et noter les points qui demandent éclaircissement.
  3. Repasser sur les sections du livre qui traitent des points demandant éclaircissement.
  4. Répondre le mieux possible aux questions du QCM et du Questionnaire de démarrage; en cas de besoin, revoir les sections pertinentes du livre et/ou en discuter avec d’autres membres du groupe.
  5. Confronter vos réponses à celles d’autres étudiants lors de la séance du bilan intermédiaire.
  6. S’il reste des points à éclaircir, en discuter avec les autres membres de votre groupe.

Rappelez-vous qu'il est impossible d'atteindre les objectifs visés par ce problème sans effectuer préalablement le travail d'étude individuel en consultant les sections du livre de référence.

Questionnaire de démarrage

Les questions qui figurent ci-dessous sont des exemples de questions que vous pourriez vous poser à la lecture de l'énoncé et des ressources qui s'y rapportent. Si vous avez convenablement fait ce qui était attendu de vous pendant la phase d'étude et d'apprentissage, vous devriez être en mesure de répondre sans difficulté à ces questions. Si ce n'est pas le cas, il est encore temps de rattraper votre retard (mais ne tardez pas trop !). Il ne faut en aucun cas commencer la phase de réalisation avant d'être en mesure de répondre à ce questionnaire.

Pour chaque question, indiquez toujours où vous avez trouvé les éléments de réponse (livre page ..., documents fournis, manuels en ligne, ...). Travaillez en deux temps:

  1. faites la liste des éléments de réponse (au brouillon, p. ex. sur la page de gauche)
  2. rédigez la réponse

Visez à fournir des réponses complètes, motivées et qui prouvent votre compréhension de la matière. Ne vous contentez pas de réponses superficielles.

  • la réponse est-elle correcte ? (pas d’affirmations erronées)
  • la réponse est-elle complète ? (rien d’important n’a été oublié)
  • la réponse est-elle claire ? (on la comprend dès la première lecture)
  • la réponse est-elle précise et les termes utilisés sont-ils adéquats ? (pas d’à peu près...)
  • la réponse témoigne-t-elle d’une réelle compréhension/connaissance de la matière ? (la réponse ne donne pas l’impression que les auteurs se sont débarrassés de la question le plus rapidement possible)
  • la réponse est-elle bien rédigée ? (structure, style, orthographe)

Pour vous aider dans la réalisations de ces exercices, certains d'entre eux sont disponibles sur Inginious avec une correction automatisée. Il a été fait en sorte que cette correction automatique soit utile à votre compréhension de la matière, cependant cela ne doit pas vous empêcher de discuter de vos réponses, correctes ou non, avec votre tuteur et les membres de votre groupe.

Questions à choix multiple

Please log in to see this exercise

Question 1

Définissez les concepts suivants :

  • variable
 
 

  • valeur
 
 

  • data type
 
 

  • instruction
 
 

  • expression
 
 

Question 2

Dans l'extrait de programme ci-dessous, indiquez après chaque ligne les valeurs contenues dans les variables a, b, c.

a = 0
b = 1
c = 2

a = b       # ligne 1
a = a*2     # ligne 2
b = 17      # ligne 3
c = a+b     # ligne 4
a = b-c     # ligne 5
c = a+b+c+a # ligne 6

Question 3

Expliquez, avec vos propres mots, ce que représente la notation

i = i + 1

et ce qu'elle a comme effet. Pourrait-on la remplacer par une autre notation ?

 
 
 
 

Question 4

Quelle est la relation entre une instruction et une expression ? Donnez des exemples.

 
 
 
 

Question 5

Expliquez ce que produisent les instructions suivantes :

  • print( 10 + 10 )
  • print( "10" + "10" )
  • print( int("10") + int("10") )
 
 
 
 

Question 6

Que se passe-t-il si on exécute ce programme ? Comment peut-on le corriger ?

n = input("n = ? ")
print("n^2 =", n ** 2)
 
 
 
 

Question 7

Expliquez ce que produisent les instructions suivantes :

  • print(10 / 3)
  • print(10 // 3)
  • print(10 % 3)
 
 
 
 

Question 8

Que fait le programme suivant ?

for n in [0, 1, 2, 3, 4]:
    print(10 ** n)

Comment pourrait-on écrire autrement la boucle for ?

 
 
 
 

Question 9

Please log in to see this exercise

Question 10

Please log in to see this exercise


Page précédente Page suivante
<string>