MPSI Tronc commun d informatique Prise en main



Documents pareils
Présentation du langage et premières fonctions

TP 1. Prise en main du langage Python

STAGE IREM 0- Premiers pas en Python

L informatique en BCPST

EXCEL TUTORIEL 2012/2013

Initiation à la programmation en Python

Python - introduction à la programmation et calcul scientifique

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

Algorithmique et Programmation, IMA

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Cours 7 : Utilisation de modules sous python

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Aide - mémoire gnuplot 4.0

Logiciel. Table de matières I Environnement requis...2

INF 321 : mémento de la syntaxe de Java

1 radian. De même, la longueur d un arc de cercle de rayon R et dont l angle au centre a pour mesure α radians est α R. R AB =R.

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

2 Comment fonctionne un ordinateur, dans les grandes lignes

Traitement de texte : Quelques rappels de quelques notions de base

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

I. Introduction aux fonctions : les fonctions standards

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Calcul Formel et Numérique, Partie I

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Le langage C. Séance n 4

Algorithmique et programmation : les bases (VBA) Corrigé

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

V- Manipulations de nombres en binaire

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Maple: premiers calculs et premières applications

RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.

TP1 - Prise en main de l environnement Unix.

YAPBA M. Logiciel libre de suivi de vos comptes

Ceci est un Chromebook, ton ordinateur!

Découverte de Python

Calcul Formel et Numérique, Partie I

La Clé informatique. Formation Excel XP Aide-mémoire

FICHIERS ET DOSSIERS

Installation du logiciel Windows Suivant Démarrer Tous les programmes Démarrer Tous les programmes Marketing Manager Marketing Manager Linux ici Mac

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Chapitre 2 Devine mon nombre!

Complément d information concernant la fiche de concordance

Conventions d écriture et outils de mise au point

Nathalie Barbary SANSTABOO. Excel expert. Fonctions, simulations, Groupe Eyrolles, 2011, ISBN :

Logiciel de Base. I. Représentation des nombres

Cours d algorithmique pour la classe de 2nde

LECON 2 : PROPRIETES DE L'AFFICHAGE Version aout 2011

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Licence Sciences et Technologies Examen janvier 2010

Tutoriel. Votre site web en 30 minutes

[WINDOWS 7 - LES FICHIERS] 28 avril Logiciel / Windows

:...2 I.6. :... 2 I.7. :... 2 I.8. :...3 I.9. :... 3 I.10. :... 3 II. 4 II.1.

CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!»

Correction des Travaux Pratiques Organiser son espace de travail

Recherche dans un tableau

Comment créer une facture

Représentation géométrique d un nombre complexe

Groupe Eyrolles, 2003, ISBN : X

CREATION D UNE EVALUATION AVEC JADE par Patrick RUER (

Rapports d activités et financiers par Internet. Manuel Utilisateur

SOMMAIRE. 1. Préambule Le calendrier Trajectoire d un objet lancé Régression linéaire...9

Comment mettre en page votre livre

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version /11/05

Développements limités usuels en 0

Leçon N 5 PICASA Généralités

SOMMAIRE 1 INTRODUCTION 4 2 GUIDE D UTILISATION ET TUTORIAUX VIDEOS EN LIGNE 4 3 CONTACTER VOTRE SUPPORT 4 4 RACCOURCIS CLAVIER 5

GUIDE DE PRISE EN MAIN

Compléments de documentation Scilab : affichage de texte et formatage de nombres

LES TYPES DE DONNÉES DU LANGAGE PASCAL

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

Conversion d un entier. Méthode par soustraction

Afin d accéder à votre messagerie personnelle, vous devez vous identifier par votre adresse mail et votre mot de passe :

Note de cours. Introduction à Excel 2007

LES TOUT PREMIERS PAS

Chapitre 11. Séries de Fourier. Nous supposons connues les formules donnant les coefficients de Fourier d une fonction 2 - périodique :

les Formulaires / Sous-Formulaires Présentation Créer un formulaire à partir d une table...3

Angles orientés et trigonométrie

Bases de programmation. Cours 5. Structurer les données

Algorithmes et mathématiques. 1. Premiers pas avec Python. Exo Hello world!

TP 1 : prise en main de Windows. TP 1 : prise en main de Windows

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Dragon Naturally Speaking 13

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

ALGORITHMIQUE ET PROGRAMMATION En C

Aide : publication de décisions VS


J ai peur des souris mais je me soigne Petit manuel à l attention des profs de langues vivantes désireux d affronter le Monstre Informatique

Créer une base de données

GUIDE Excel (version débutante) Version 2013

Représentation des Nombres

C2AI 9 rue de Catalogne Décines cedex Tél. : Fax :

Cours d initiation à la programmation en C++ Johann Cuenin

TP1 : Initiation à l algorithmique (1 séance)

Introduction au langage C

GESTION DU LOGO. 1. Comment gérer votre logo? Format de l image Dimensions de l image Taille de l image 9

Créer le schéma relationnel d une base de données ACCESS

Transcription:

1 Prise en main de l environnement informatique Se connecter avec vos identifiants. Lancer le programme scilab. Vérifier que pour scilab 3 + 4 est bien égal à 7. Refermer scilab. 2 L environnement Spyder Lancer le programme spyder. C est avec ce programme que nous allons effectuer l essentiel du tronc commun d informatique. Vous devez vous retrouver face à un environnement ressemblant à peu près à ça : En particulier il y a 3 sous fenêtres : la sous fenêtre de gauche qui est l éditeur de texte, la sous fenêtre en bas à droite qui est la console, et la sous fenêtre en haut à droite dont nous verrons certaines utilisations. 2.1 Le mode console La console peut comporter plusieurs onglets : sélectionner l onglet avec un prompt (trois chevrons, ou encore >>>) En même temps, dans la fenêtredes explorateurs, sélectionner l onglet Explorateur de variables. Dans la console, taper les instructions suivantes : >>> a = 3 >>> b = a+2 Vérifier que dans l explorateur de variables deux variables a et b ont été mémorisées, respectivement avec les valeurs 3 et 5. 1/10

Taper le programme suivant en respectant scrupuleusement la syntaxe, les retours à la ligne et les tabulations : un retour à la ligne est notée [Entrée] et une tabulation est notée [Tab], c est la touche avec une double flèche à gauche du clavier) : >>> a = 8 [Entrée] >>> if a%2 == 0 : [Entrée]... [Tab] print "a est pair" [Entrée]... else : [Entrée]... [Tab] print "a est impair" [Entrée]... [Entrée] Attention au double symbole ==. Normalement vous verrez apparaître le message "a est pair" Attention aussi au rôle fondamental des tabulations sous Python : si vous en oubliez le programme ne fonctionnera pas. Attention enfin au fait qu un bloc comprenant des indentations ne s exécutera dans la console que s il se termine par un dernier retour à la ligne : c est le rôle de la dernière touche [Entrée] sur une ligne vide. On sait qu on est à l intérieur d une structure avec des indentations quand le prompt >>> est remplacé par..., on revient au prompt normal en validant une ligne vide, ce qui provoque la validation (et l exécution) du bloc. 2.2 L éditeur de texte 2.2.1 Choisir l emplacement des sauvegardes Se placer désormais dans l éditeur de texte en cliquant dedans avec la souris. Aller dans Fichier > Enregistrer sous, créer dans Mes Documents un répertoire TP0 et sauvegarder dans le fichier TP0 1.py Par contre éviter la sauvegarde dans le fichier.spyder qui est parfois proposée par défaut (c est un répertoire caché). 2.2.2 Taper et exécuter un programme : la touche [F5] L éditeur est fait pour taper tout un programme, au lieu de valider les instructions une à une. Il n y a pas de prompt >>>. Les lignes écrites avec un espace au début sont les lignes indentées : 4 espaces correspondent exactement à 1 indentation ([Tab]), il faut impérativement qu il y ait au début de chaque ligne le nombre précis de tabulations. Parfois Python positionne lui même ces indentations, auquel cas il ne faut pas en rajouter. Parfois aussi Python positionne par défaut une tabulation superflue en début de ligne : dans ce cas il faut impérativement supprimer cette indentation superflue de début de ligne en appuyant sur la touche [Del]. Taper précisément le code suivant : a = 8 if a % 2 == 0 : print "a est pair" else : print "a est impair" a = a + 1 2/10

print "maintenant a vaut", a if a % 2 == 0 : print "a est pair" else : print "a est impair" Vous pouvez gagner du temps en effectuant un copié collé sur le bloc de 4 lignes qui se répète deux fois : if...print...else...print. Attention à une différence importante avec le mode console : ici un bloc comprenant des indentations n a pas besoin de validation d une ligne vide pour pouvoir s exécuter. Exécuter ce programme en appuyant sur la touche [F5]. Un onglet s ouvre au niveau de la console : c est une console uniquement en sortie du programme exécuté dans l éditeur. Normalement vous obtenez les messages suivants : a est pair maintenant a vaut 9 a est impair Les instructions print du programme écrivent leur message dans cette console en sortie ; cependant vous ne pouvez pas entrer d instruction dans cette console de sortie. Pour revenir à la console d entrée sortie il faudrait changer d onglet dans la console. 2.2.3 Changer de fichier source Sauvegarder le code de l éditeur avec Fichiers > enregistrer ou en appuyant sur [Ctrl+S]). Si vous avez bien effectué le travail de choix du répertoire de sauvegarde, elle est faite dans Mes documents/tp0/tp0_1.py Revenez dans l éditeur. Modifiez la première ligne a = 8 par a = 9. Sauvegardez. Cette nouvelle sauvegarde modifie le fichier TP0 1.py, l ancienne version est donc perdue. Imaginons qu on veuille modifier notre programme en gardant la première version. Changez la ligne a = 9 par a = 15, aller dans le menu Fichier Enregistrer sous et sauvegarder sous le nom TP0 2.py Désormais il y a deux fichiers, chacun avec une version différente du programme. 2.2.4 Ouvrir un programme Ouvrir la version 1 en allant dans Fichier Ouvrir (ou de manière similaire en appuyant sur l icône correspondante dans la barre de fichiers, ou en appuyant sur [Ctrl+O]). Choisir le fichier TP0 1.py, désormais vous avez deux onglets dans l éditeur, chacun avec une version du programme. Il est possible de fermer des onglets inutiles : fermez par exemple la version 2. Il est aussi possible d ouvrir un onglet vierge de l éditeur, ou bien avec Fichier Nouveau fichier, ou bien avec [Ctrl+N], ou bien avec l icône correspondante dans la barre de fichiers. 3/10

2.2.5 Exécution de portions de texte dans l éditeur : la touche [F9] Dans l éditeur ouvrir un onglet vierge de texte. Rentrer le programme suivant (en respectant bien les tabulations, les retours à la ligne et les lignes vides). Les lignes commençant par le symbole # sont des commentaires : elles servent seulement à comprendre le programme lors de le relecture par un humain, et ne sont pas prises en compte par l interpréteur Python. # Exercice 1 : une instruction conditionnelle x = 56 if x < 3 : x = 2*x else : x = x-1 print "Maintenant x vaut", x # Exercice 2 : calcul de norme import math x = 3 y = 4 math.sqrt (x**2 + y**2) Exécuter ce programme avec la touche [F5]. Constater que le message de l instruction print de l exercice 1 est bien affichée dans la console de sortie, mais que le calcul de norme de l exercice 2 n apparaît nulle part (ce calcul est effectué mais n est pas utilisé par une instruction print) : normalement le seul message affiché est Maintenant x vaut 55. Dans la fenêtre des explorateurs aller sur l onglet Explorateur de variables et constater qu aucune variable n a été enregistrée. Maintenant nous allons exécuter uniquement l exercice 2 : avec la souris, surligner tout le code de l exercice 2, mais pas le code de l exercice 1. Appuyer sur la touche [F9] : tout le code surligné est réinjecté en entrée dans la console. Le résultat final de l exercice 2 (5.0) apparaît dans la console : en effet l évaluation d une expression est affichée en mode console (contrairement au mode éditeur + [F5]). Constater que dans l explorateur de variables les variables x et y sont bien affectées. Essayer de faire pareil avec l exercice 1 : surligner à la souris uniquement le code de l exercice 1 et appuyer sur [F9]. Surprise : ça ne marche pas! L explication est que le code de l éditeur de texte est réinjecté en mode console avant d être exécuté, et donc que la structure indentée commençant par if doit finir par une ligne vide. Rajouter cette ligne vide (juste avant print) : # Exercice 1 : une instruction conditionnelle x = 56 if x < 3 : x = 2*x else : x = x-1 print "Maintenant x vaut", x 4/10

Recommencer la manipulation : surligner et appuyer sur [F9]. Cette fois ci l exécution se fait correctement, et dans l explorateur de variables la variable x prend la valeur 55 (donc le code de l exercice 2 n a pas été exécuté). En résumé : en validant le code de l éditeur avec la touche [F5], vous pouvez exécuter un programme en entier de façon simple, et la gestion des retours à la ligne correspond à celle des vrais codes en Python. Par contre si on veut tester des petits morceaux de code séparés, on est obligé d utiliser autant d onglets qu il y a de portions de code à tester. Par ailleurs le code est difficile à déboguer (c est à dire à corriger en cas d erreur). Il existe bien un mode débogueur, mais son usage est peu pratique. À l opposé, la touche [F9] permet d exécuter facilement de petites portions de code et permet un usage simple de l explorateur de variables ; en contrepartie son usage est peu approprié aux longs programmes, et elle nécessite de rajouter une ligne vide à la fin de chaque structure indentée (ce qui n existe pas normalement dans les programmes en Python). 3 L aide en ligne Le langage Python dispose d une importante documentation sur Internet. En général on trouve facilement sur les sites dédiés ou sur les forums toute la documentation nécessaire. En particulier le site docs.python.org possède une documentation détaillée. La version de Python utilisée ici est Python 2.7 : on ira donc sur http://docs.python.org/2.7/ 4 Calculs algébriques usuels sous Python Il faut connaître les principales fonctions de calcul algébrique sous Python. Essayez (à partie de l éditeur ou en mode console, comme vous voulez) les calculs suivants : >>> 3 + 4 # Addition 7 >>> 3-4 # Soustraction -1 >>> 3*4 # Multiplication 12 >>> 3 ** 4 # Puissance 81 Remarque : les espaces autour des symboles d opération sont facultatifs : on peut les mettre si on veut pour améliorer la lisibilité. Néanmoins, il est interdit de mettre un espace en début d instruction. Un espace en début d instruction serait considéré comme une indentation du code, ce qui correspond sous Python à une imbrication comme nous le verrons plus tard. En ce qui concerne la division c est plus compliqué. Comparez les instructions suivantes : >>> 9 / 2 4 >>> 9.0 / 2 5/10

4.5 >>> 9 / 2.0 4.5 >>> 9.0 / 2.0 4.5 Les calculs 9.0 / 2, 9 / 2.0 et 9.0 / 2.0 conduisent à des quotients exacts de divisions alors que 9 / 2 conduit à un quotient de division euclidienne. Pour comprendre cette différence de comportement, saisissons les instructions suivantes : >>> type (9) <type int > >>> type (9.0) <type float > Les valeurs manipulées par Python sont cataloguées selon différents types. Le type int désigne une valeur entière (en anglais : integer) alors que le type float désigne une valeur réelle, ou plus exactement une approximation d un réel par un décimal. float est un raccourci de floating point number : nombre à virgule flottante. Le comportement de l opérateur de division / dépend donc du typage de ses paramètres. Si les deux nombres sont de type int alors / effectue une division euclidienne et la valeur de retour est de type int. Si au moins l un des deux nombres est de type float alors / effectue une division exacte (aux erreurs d arrondi près) et la valeur de retour est de type float. Si on souhaite effectuer une division exacte avec des nombres entiers, on commence par transformer un nombre en float avec l opérateur float(). Il existe aussi l opérateur int() qui convertit un float en int, en tronquant la partie décimale. >>> 9 / 2 # division d une valeur int par une valeur int 4 >>> float(9) # conversion d une valeur int en float 9.0 >>> float(9) / 2 # maintenant la division devient exacte 4.5 >>> int (9.0) # conversion d une valeur float en int 9 >>> int (9.7) 9 >>> int (-9.2) -9 Pour que les choses soient un peu plus compliquées il faut savoir qu à partir de la version 3 de Python (ici nous utilisons la version 2.7) l opérateur / effectue une division exacte, même si les deux paramètres sont de type int. Par exemple l expression 9/4 s évaluera en 2 sous Python 2.7, mais en 2.25 sous Python 3. Dans tous les cas on peut effectuer une division euclidienne avec // : l expression 9//4 s évaluera en 2, que l on soit sous Python 2.7 ou sous Python 3. 6/10

Le module math de la bibliothèque standard Les fonctions mathématiques usuelles x x, sin, cos,... sont disponibles dans la bibliothèque standard de Python : ce ne sont pas des fonctions qui existent dans le noyau de Python mais elles ont déjà été programmées ; pour pouvoir les utiliser il faut les charger depuis le module math de la bibliothèque standard avec une instruction import. Voici un descriptif (non exhaustif) des principales fonctions du module math : >>> sqrt (4) Traceback (most recent call last): NameError: name sqrt is not defined >>> from math import * # charger toutes les fonctions du module math >>> sqrt (2) 1.4142135623730951 >>> pi 3.141592653589793 >>> e 2.718281828459045 >>> cos(pi) -1.0 >>> sin(pi) # remarquez les erreurs d arrondi 1.2246063538223773e-16 >>> exp(2) 7.38905609893065 >>> floor (3.6) # partie entiere 3.0 >>> ceil (3.6) # partie entiere superieure 4.0 >>> fabs (-3.6 ) # valeur absolue 3.6 >>> factorial (5) 120 >>> log(4) 1.3862943611198906 7/10

>>> log (4, 2) # logarithme en base 2 2.0 >>> pow (3, 4) # mise a la puissance 81.0 >>> acos (1.) # fonction arccos 0.0 >>> asin(1.) # fonction arcsin 1.5707963267948966 >>> atan (1.) # arctan 0.7853981633974483 >>> atan2 (2, -1) # atan2 (y, x) calcule un argument de x+iy 2.0344439357957027 >>> cosh(2) # cosinus hyperbolique 3.7621956910836314 >>> sinh (2) # sinus hyperbolique 3.6268604078470186 >>> tanh (3) # tangente hyperbolique 0.9950547536867305 Les parenthèses servent ou bien à délimiter les paramètres d une fonction, ou bien à définir des règles de priorité dans les calculs. Par connaître les règles précises de priorité dans les calculs en l absence de parenthèses, on se réfèrera à la documentation officielle de Python. Il s agit en gros des règles de priorité usuelles : la puissance est prioritaire sur le produit qui est prioritaire sur l addition. >>> from math import cos >>> cos 1 # syntaxe incorrecte : il manque les parentheses cos 1 # pour delimiter les parametres ^ SyntaxError: invalid syntax >>> cos (1) # syntaxe correcte 0.5403023058681398 >>> 1 + 3 * 5 # la multiplication est prioritaire sur l addition 16 >>> (1 + 3) * 5 20 8/10

5 Exercices 1) Le plan est muni d un repère orthonormé direct. Soient deux vecteurs u et v de coordonnées respectives (x u, y u ) et (x v, y v ). On admettra le résultat mathématique suivant : Le déterminant de u t de v est det( u, v ) = x u y v x v y u. det( u, v ) = 0 si et seulement si u et v sont colinéaires. det( u, v ) > 0 si et seulement si ( u, v ) est directe, c est à dire si et seulement si l angle ( u, v ) possède une mesure dans ]0, π[. det( u, v ) < 0 si et seulement si ( u, v ) est indirecte, c est à dire si et seulement si l angle ( u, v ) possède une mesure dans ] π, 0[. Soient trois points non alignés A(x A, y A ), B(x B, y B ) et M(x, y). Écrire une commande if qui permet de savoir si ( AB, AM) est directe ou non. Tester votre programme avec : ( ) ( ) ( ) 10 2 7 a) A, B et M 10 2 5 ( ) ( ) ( ) 10 2 3 b) A, B et M 10 2 5 (ici ( AB, AM) est directe) (ici ( AB, AM) est indirecte) 2) On suppose de plus dans cette question que la droite (AB) n est pas horizontale : y A y B. Écrire une instruction if qui permet de savoir si le point M est à droite ou non de la droite (AB). Attention : comme on peut le voir sur le schéma ci dessous, M peut être à droite de la droite (AB) alors que M est à gauche d un des deux points A et B. Par ailleurs, on ne sait pas si A est au dessus de B ou si c est B qui est au dessus de A. A- +M B- Tester votre programme avec : ( ) ( ) 10 2 a) A, B et M 10 2 droite de (AB)) ( ) ( ) 10 2 b) A, B et M 10 2 gauche de (AB)) ( ) 7 (ici M est à 5 ( ) 3 (ici M est à 5 3) On se donne trois points non alignés A, B et C. Soit M un quatrième point qui n appartient ni à la demi droites [AB) ni à la demi droite [AC). Écrire une instruction qui permet de savoir si le point M appartient à la partie saillante ou rentrante du secteur angulaire ( BAC). 9/10

-B Partie saillante A - C Partie rentrante 10/10