TP : Informatique pour Tous PCSI& MPSI Champollion Fiche no : 1



Documents pareils
TP 1. Prise en main du langage Python

Présentation du langage et premières fonctions

Initiation à la programmation en Python

Découverte de Python

STAGE IREM 0- Premiers pas en Python

L informatique en BCPST

Chapitre 2 Devine mon nombre!

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

Algorithmique et Programmation, IMA

DETERMINER LA LARGEUR DE PAGE D'UN SITE et LES RESOLUTIONS d'ecran

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

Représentation d un entier en base b

1. Structure d'un programme FORTRAN 95

Cours d algorithmique pour la classe de 2nde

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

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Recherche dans un tableau

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

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)

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Le langage C. Séance n 4

Algorithmique et programmation : les bases (VBA) Corrigé

Programmation avec Xcas ou Python

Programmation Web. Madalina Croitoru IUT Montpellier


Utilisation d objets : String et ArrayList

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

Calcul Formel et Numérique, Partie I

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

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Introduction à l informatique en BCPST

1 Recherche en table par balayage

Initiation à l algorithmique

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

Corrigé des TD 1 à 5

Création d un formulaire de contact Procédure

Cours 7 : Utilisation de modules sous python

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

Réglages du portail de P&WC

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Guide d installation de MySQL

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

2 Comment fonctionne un ordinateur, dans les grandes lignes

Module d anonymisation

Continuité et dérivabilité d une fonction

TRIGONOMETRIE Algorithme : mesure principale

Configurer la supervision pour une base MS SQL Server Viadéis Services

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

ALGORITHMIQUE ET PROGRAMMATION En C

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Comment faire des étiquettes

Projet de programmation (IK3) : TP n 1 Correction

Langage Java. Classe de première SI

Java Licence Professionnelle CISII,

Ateliers Python+Qt : Premiers pas : S'installer pour PyQt... en quelques minutes sous Windows!

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

!-.!#- $'( 1&) &) (,' &*- %,!

Guide d installation logicielle

Introduction à la présentation graphique avec xmgrace

Les GPO 2012 server R2 (appliqués à Terminal Serveur Edition)

DM 1 : Montre Autoquartz ETA

COMMENT RESTAURER DES S OUTLOOK AVEC SECURITOO BACKUP

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

I. Introduction aux fonctions : les fonctions standards

TP1 - Prise en main de l environnement Unix.

Stopack : logiciel pour l entrepôt

EN Télécom & Réseau S Utiliser VMWARE

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

Installation d'un TSE (Terminal Serveur Edition)

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Algorithmique avec Algobox

Manuel d utilisation du module Liste de cadeaux PRO par Alize Web

v Sygic, a.s. All rights reserverd. Manuel utilisateur

Déplacer un serveur d'impression

HMI target Visu / PLC HMI. Pour réaliser une interface homme machine avec PLC control

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Créer et modifier un fichier d'import des coordonnées approximatives avec Excel

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

TP 1 Prise en main de l environnement Unix

TP1. Outils Java Eléments de correction

N importe qui possédant un code MS valide peut initier la rencontre. Néanmoins, il serait préférable de laisser cette

USTL - Licence ST-A 1ère année Initiation à la programmation TP 1

Office 365/WIFI/Courrier. Guide pour les étudiants

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Administration de Parc Informatique TP02 : Utilisation du logiciel Marionnet

1 Introduction et installation

Début de la procédure


Procédure d installation de la Sauvegarde de Windows Server

Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark

Projet Matlab : un logiciel de cryptage

Python - introduction à la programmation et calcul scientifique

Securexam Consignes pour l EFU Les 2, 3 et 4 juin 2015

Transcription:

1 L environnement Pyzo TP : Informatique pour Tous PCSI& MPSI Champollion Fiche no : 1 Après avoir allumé l ordinateur et que "Fenêtres" ait "fini son démarrage", cliquer sur l icône Pyzo. On voit apparaître (entre autres choses) : 1. Fenêtre de commande en ligne (Interpréteur ou shell) : où l on peut exécuter des commandes 2. Fenêtre d éditeur de texte : où l on peut regrouper les commandes et écrire des ligne de commande plus longues et plus complexes et surtout sauvegarder ces commandes dans un fichier.py (Python standard)ou.pyw (Python windows) 3. Barre des menus : ne pas hésiter à faire connaissance avec les différents items et commandes. 4. Suivre sagement les explications de votre honorable professeur chargé du TP. Pour plus d efficacité, on met la fenêtre Pyzo et le fichier pdf du T.P. côte à côte, pour ce faire cliquer avec le bouton droit sur la barre de commande (demarrer) puis choisir mosaique verticale. 2 L environnement Idlex Comme pour Pyzo, c est un environnement de programmation complet, avec un interpréteur (un shell), un éditeur comportant des fonctions d aide à la programmation, (coloration syntaxique des mots clés en Python, alignement automatique, indentation,...). Essayez le. Les fichiers créés avec IEP sont des fichiers source, (des fichiers texte). On peut les ouvrir et les exécuter avec Idlex. 3 Just to start Dans la suite on présente très (voire très très) sommairement quelques notions du langage Python pour avoir un premier contact. On exécute les instructions suivantes sur la fenêtre de commande en ligne : 1. Les variables et leurs types (élémentairement) : Pour des raisons évidentes (lisibilité, efficacité... etc), on préfère leur donner des noms, cela s appelle une affectation. Exemple : a 3.14159 (pseudo code) cela se traduit en Python par : a=3.14159 (ne pas confondre l affectation avec le signe égalité en mathématiques). Les entiers (type int) : >>> # ceci est un commentaire Python le neglige >>> a=5 # on attribue le nom a au nombre (objet) 5 >>> a # afficher la valeur >>> type(a) >>> a=a+5 # deviner a? Les flottants (type f oat) : >>> x=5.3 # on attribue le nom x au nombre (ou l objet) 5.3 >>> x # afficher la valeur >>> type(x) Opérations mathématiques élémentaires : On vous laisse interpréter les résultats et deviner les opérations sousjacentes >>> 3+3-1 # fastoche >>> 2*32 # +fastoche >>> 13/6 # fastoche >>> 13//6 #? >>> 13%6 #? >>> 2**(6) # fastoche (1).../... Tournez S.V.P. Đ Les traditions, ce sont les règles qu imposent les morts aux survivants.

>>> 2+3*6+2**4-1 >>> 2^32 # >>> a=4; # quel est le type de a? >>> b=4.; # quel est le type de b? >>> s1=a+a # quel est le type de s1? >>> s2=a+b # quel est le type de s2? Quantité et Variables logiques(boolean) (type boo ) : >>> a=3; b=4 >>> (a==b) # valeur logique de légalite a = b: True si vrai False sinon >>> a!=b # tester si a b >>> a>b >>> a<=b >>> not(a == b) # negation >>> (a==b) or (a<=b) # le ou logique >>> (a==b) and (a<=b) # le et logique Chaînes de caractères (string) (type str) : c est une séquence ordonnée de "caractères" alphanumériques (et quelques signes de ponctuation). Les caractères sont entourés par des apostrophes ou des guillemets " ". >>> Nabi a1= A o... mais A o >>> type(nabi a1) >>> Nabi a2=" T es une fi e et t as pas de shampooing" >>> en(nabi a1) # longueur de la chaine >>> Nabi a1[0] >>> Nabi a1[9] >>> Nabi a1[-1] >>> Nabi a2[-1] >>> Nabi a2[-6] Tuples :Séquences d objets ordonnés et entourés par des parenthèses : t=(5,7,"toto") Listes :Séquence d objets ordonnés et entourés par des crochets (sinon le capitaine se fâche) : s=[51,7,"toto", tata ] 2. Encore quelques notions : (a) Demander (input) et afficher (print) : >>> Nom=input( Give your name: ); type(nom) >>> a=input( Donner votre age: ) >>> type(a) # Ah mais que se passe t il? >>> a=int(input("donner annee de votre naissance:")) >>> b=int(input("donner annee de a date d aujourd hui:")) >>> x=f oat(input("donner a duree en annees:")) >>> print("dans ",x, annees(ans),,nom," aura ",b-a+x) (b) Affectation (plus profondément) : >>> a,b,c=2,3.4,"coucou" # affectation parallele >>> x=y =2013 # affectation simultanee (c) Répéter un nombre déterminé de fois (for) : Traitons un exemple : Les carrés des entiers dans[[ 0; 7 [[ pour n allant de 0 à 7(exclu) faire afficher(n 2 ) fin >>> for n in range(7):# n [[ 0;6 ]] (pas de 7 quoi)... print(n**2) (2).../... Tournez S.V.P. Đ Deux principes à respecter scrupuleusement : (1) Ne jamais dire tout ce que l on sait. (2)...

(d) Répéter avec condition d arrêt (whi e) : Encore un exemple, cherchons la plus petite puissance de 2 supérieure égale à un nombre donné : Donner le nombre x s 0 psd = 1 tant que psd < x faire s s+1 psd = 2.psd fin Traduction en Python >>> x=f oat(input( Donner un nombre (positif) x= )) >>> s=0; psd=1; >>> while psd<x: # Attention deux points :... s=s+1... psd =2* psd # Attention indentation print( La p us petite puissance de 2 superieure a,x, est:,s) (e) Faire des choix, if, e if et e se : >>> a=int(input( Donner un entier: )) >>> if a!==0: # Attention aux deux points :... print(a, est mu tip e de 3 )# Attention a l indentation... elif a!==1:... print( 1 reste de division de,a, par 3 )... else:... print( 1 reste de division de,a, par 3 ) Il est pénible de taper tout ça dans l interpréteur, d où la nécessité absolue de passer par l éditeur de texte (i.e. écrire dans un fichier puis l exécuter). 3.1 Un peu de Maths...... Qd même Les fonctions mathématiques usuelles ne sont pas immédiatement disponibles au démarrage de Python. Elles sont stockées dans des fichiers spécialisés (appelés modu es), que l on charge en mémoire pour les utiliser. Celui des mathématiques (il y en a d autres) est le module math. Voici quelques exemples : >>> 2*pi >>> exp(1) >>> import math # Il y a d autres methodes qu on verra plus tard >>> math.pi # the famous number π 3.14159 >>> math.exp(1) # the second famous number e 2.718 >>> math.cos(math.pi)#? >>> math.sqrt(3)# 3 >>> math.f oor(math.pi+6.3) >>> he p(math.f oor) # English is in use with Python >>># pour afficher toutes les fonctions contenues dans le module >>>dir(math) 4 Exercices Exercice 1 [Correction] En utilisant l interpréteur, afficher les valeurs des expressions suivantes : 5+2; 5*4; 2.1/5; 17//15; 17/5; 17%5 Commencer par écrire les expressions ligne par ligne, puis tout écrire sur une même ligne de l interpréteur. Écrire la ligne des expressions précédentes dans un fichier (i.e. avec l éditeur), sauvegarder puis exécuter. Que remarque t-on? Comment y remédier? Exercice 2 [Correction] Observer les scripts suivants, les traduire en Python et interpréter les résultats obtenus : (3).../... Tournez S.V.P. Đ Deux choses semblent être infinies l univers et la bêtise humaine, quoique pour l univers on n est pas sûr.

1. x 3 y 5 x x+y y x-y x x-y 2. x 3 y 5 tmp x x y y tmp Préciser les avantages et les inconvénients de chaque méthode. 3. x 3 y 5 x,y y,x Exercice 3 [Correction] Dans l éditeur taper les instructions dans un fichier, deviner (ou prédire) les valeurs affichées par x, y, puis les vérifier en exécutant le script. 1. x=10 y=5 z=x+y x=y y=z print( x+y+z) 2. x=45 y=5 x=y y=x 3. x=45 y=5 z=x x=y y=z Exercice 4 [Correction] Deviner, avant exécuter, les valeurs affichés par ce script (on utilise l interpréteur) 1. x= TrUc ; y= truc ; en(y); x[1]; y[2]; x[4]; x[-4]; print(x,y) 2. t=[6,12,"aieu"]; t[-1]; t[0]; t[2]; t[2][1]; Exercice 5 [Correction] Écrire un script en Python qui demande à l utilisateur la valeur de la température en Degrés Celsius et renvoie l équivalent en Fahrenheit. Écrire un script en Python qui demande à l utilisateur la valeur de la température en Degrés Fahrenheit et renvoie l équivalent en Celsius. Exercice 6 [Correction] Deviner ce que doit afficher chaque script avant de l exécuter : # script (1) if 10**2<99: print("pif") # script (2) if 5**2>20: print( Pouf ) # script (3) if 10**2<99 or 5**2>20: print("no Money No Honey") # script (4) if 10**2<99: print("pif") if 5**2>20: print( Pouf ) # script (5) if 10**2<99: print( The winner is PCSI ) else: print( The winner is MPSI ) Exercice 7 [Correction] Saisir le code ci-dessous, deviner les valeurs que doivent afficher i et somme puis le vérifier en exécutant le script : (4).../... Tournez S.V.P. Đ Quand vous allez tuer quelqu un, rien n empêche d être poli W. Churchill.

somme =0 for i in range(5,18):# c.a.d. i N [5;18[ if i%3==0: somme=somme+i # Exercice 8 [Correction]...Année bissextile. Écrire un code Pyhton, qui suite à une valeur donnée par l utilisateur indique si l année est bissextile ou non. On rappelle qu une année est bissextile ssi elle est divisible par 4 mais pas par 100 ou divisible par 400. Ind. 1900 n est pas bissextile par contre 2000 et 2004 le sont. Exercice 9 [Correction] Écrire un script qui calcule la somme des carrés des entiers compris entre 5 et 100. Modifier le script précédent afin de calculer la somme des carrés d entiers compris entre deux bornes données par l utilisateur. En modifiant à nouveau le script, trouver le plus petit entier n tel que k=n k 2 > 2013 2014 k=0 Exercice 10 [Correction]... Un peu de tourisme. Si vous avez encore du temps résolvons une petite énigme Le burj Khalifa(i.e. la tour Khalifa - ) est un gratte-ciel situé à Dubaï, devenu le 27 mars 2008 la plus haute structure du monde. La version finale mesure 828 m de haut et compte 160 étages habitables. Un industriel souhaite vanter la solidité de ses verres "incassables". En vue d une prochaine publicité, il désire savoir (exactement) l étage le plus haut de la burj Khalifa qui n entrainera pas une fin en petits morceaux de l un de ses verres, après une chute (malencontreuse). Il n a malheureusement à sa disposition que deux (et seulement deux) prototypes identiques de ses verres "incassables".(le coût de production du prototype de ce verre "incassable" est exorbitant). Quel est le nombre minimum d essais qu il doit effectuer pour déterminer avec certitude l étage maximal certifiant son verre "incassable"? Vous pouvez taper le code suivant qui donne la solution au problème n=160 t=[0,1] #t est une liste for i in range(2,n+1): t.append(i) #ajoute i \ {a} la fin de t for p in range(1,i): temp=max(p,t[i-p]+1) if temp < t[i]: t[i]=temp t[n] #Pour i entre 1 et n #t [ i ] contient le nombre déssais pour i \ {e}tages Pouvez vous expliquer pourquoi? Tapez dans l interpréteur : t[1:23] Que constatez-vous? En utilisant la propriété qui semble apparaître proposez un code s inspirant de celui de l exercice 9 qui : Demande à l utilisateur d entrer un étage n affiche le nombre minimal d essai à réaliser avec 2 vitres Si vous avez encore du temps... Montrez la propriété sur laquelle se fonde le code précédent Reprenez l exercice avec 3 vitres (5) Fin de l énoncé Đ La hiérarchie c est comme une étagère, plus c est haut plus c est inutile

The PCSI(s) of Champollion Correction 1 Solution 5 (Énoncé)...Celsius Fahrenheit tmpc=f oat(input( Donner a temp\ {e}rature en Ce sius )) tmpf =1.8* tmpc +32 print( La temp\ {e}rature en Fahrenheit est:,tmpf) # tmpf=f oat(input( Donner a temp\ {e}rature en Fahrenheit )) tmpc =( tmpf-32)/1.8 print( La temp\ {e}rature en Fahrenheit est:,tmpc) Solution 8 (Énoncé)...... Année bissextile. year=int(input( Give the year number p ease: )) if (year%4==0 and year%100!=0) or (): print("l annee ",year," est bissexti e") else: print("l annee ",year," est non bissexti e") Solution 9 (Énoncé) Voici une proposition de solution : a=int(input( Donner e 1 er entier: )) b=int(input( Donner e 2 nd entier: )) if a>b: a,b=b,a # ainsi a est le min et b est la max s:=0 for k in range(a,b+1): s=s+k**2 print(s)# s contient b a k2 # test =2013*2014# borne a ne pas depasser k=0 s=k**2 while s<test: k+=1 # k k +1 s+=k**2 # s s+k 2 print( e premier entier ou on depasse:,test, est:,k) Solution 10 (Énoncé)...... Un peu de tourisme. Une simple indication. Si on lache la première vitre de l étage p, soit elle se casse, et la seule procédure qui reste est de tester tous les étages depuis le premier, soit elle ne se casse pas et il reste n p étages à tester Il semble que il y ait 1 étage nécessitant 1 test puis 2 étages nécessitant 2 tests puis 3 étages nécessitant 3 tests........................... FIN Đ Les traditions, ce sont les règles qu imposent les morts aux survivants.