1 Notion de langage de programmation
|
|
|
- Charlotte Goudreau
- il y a 10 ans
- Total affichages :
Transcription
1 1 Notion de langage de programmation Définition 1 Un procédé systématique qui permet de traiter des informations sous la forme d une série d instructions à exécuter s appelle un algorithme. Ce mot vient du nom du mathématicien Al-Khwarizmi. Une recette de cuisine, le calcul de la longueur de l hypoténuse d un triangle rectangle, une technique de calcul multiplication, sont des algorithmes. Au XX ème siècle, on a inventé des machines capables d exécuter des algorithmes, ce sont les ordinateurs. Un programme est un texte qui décrit un algorithme que l on veut faire exécuter par un ordinateur. L ordinateur ne comprend que le langage machine suite binaire de 0 et de 1, difficilement manipulables par l homme, même si les langages d assemblage en donnent des représentations compréhensibles. En pratique, on écrit le code source du programme dans un langage de programmation de haut niveau (C, Python, Java... ) sous la forme d un fichier texte puis un compilateur ou un interpréteur le transforme en une suite d instructions compréhensibles par la machine. dans les langages compilés (C), le code source doit être compilé en un fichier binaire par un compilateur qui dépend de l architecture de la machine puis on exécute ce fichier binaire ; dans les langages interprétés (Perl), un interpréteur transcrit les instructions du code source en langage machine à la volée, au fur et à mesure de son exécution ; dans les langages semi-interprétés, le fichier source est transformé en un code intermédiaire le byte-code qui est ensuite interprété. En Java les deux étapes sont distinctes, le byte-code étant exécuté par une machine virtuelle. En Python, les deux opérations sont effectuées à la volée par l interpréteur : le texte du programme est d abord traduit en bytecode, puis ce dernier est exécuté. On peut le constater si programme1.py est importé dans un autre programme programme2.py. Python crée lors de la première exécution de programme2.py, un répertoire pycache contenant un fichier programme1.cpython-32.pyc contenant le byte-code de programme1.py. Une partie du travail sera donc faite pour une prochaine exécution de programme2.py. Les langages compilés sont plus rapides et les langages interprétés ont une meilleure portabilité sur les différentes architectures de machines. La plupart des langages de programmation comportent des constructions fondamentales : la déclaration et l affectation de variables, la séquence, le test, la boucle, la fonction... C est le noyau impératif du langage. Il existe d autres styles (ou paradigmes) de programmations (objets, fonctionnelle... ). Remarque 1 Python est un langage semi-interprété multi-paradigme (impératif, objets... ) créé par Guido Van Rossum au début des années 90. Il est sous licence libre GPL et gratuit et fonctionne sur toutes les plateformes (Windows, Linux, OSX... ). Actuellement les versions courantes sont Python et Python 3.2.3, l évolution du langage étant assurée par la Python Software Foundation à but non lucratif. Attention la branche 3.x de Python n est pas totalement rétrocompatible avec la branche 2.x. Quelques liens vers des ressources : Site officiel : www. python. org/ www. python. org/ download/ www. python. org/ doc/ Cours sur Python : inforef. be/ swi/ python. htm ou python. developpez. com/ cours/ Tutoriel sur Python : www. siteduzero. com/ tutoriel apprenez-a-programmer-en-python. html En Python on peut tester des instructions en mode console mais on composera les programmes (ou scritps) plus longs avec un éditeur de texte (éditeur d Idle, Notepad+ sous Windows, Geany... ). Nous travaillerons avec Python 2.7 et et Python 3.2 car certaines bibliothèques (comme Pygame) n ont pas été encore portées sur la branche 3.x. Python est installé par défaut sur la distribution Linux Ubuntu, sous Windows on peut télécharger les installateurs à partir de http: // www. python. org/ download/ et on disposera d un environnement graphique Idle avec console et éditeur de texte. 2 La console Python On peut utiliser la console Python (celle fournie par Idle, ou avec la commande python ou python3 dans une console si Python est installé ), comme une calculatrice. On saisit une expression ou une instruction après les trois >>> de l invite de commande, on appuie sur Entrée et Python l interprète. Si c est une expression il applique la fonction eval() pour l évaluer. Page 1/20
2 Une expression est une suite de caractères qui peut définir une valeur pour l interpréteur. Elle peut être constituée d opérations sur des constantes (nombres, booleens,chaines de caratcères) ou des variables (noms associés à des valeurs variables). On peut évaluer plusieurs expressions sur une même ligne en les séparant par une «,». Exécuter le code suivant : 1 >>> print( Hello World ) 2 Hello World 3 >>> 3*5+7-(10+3) >>> 2**3 # pour l exponentiation (et non pas 2^3) >>> 2,5/3, 2.5/3 8 (2, ) >>> 5/2, 5//2, 5%2 #Division exacte, Quotient et reste de la division euclidienne 11 (2.5, 2, 1) Tout ce qui se situe à droite d un symbole «dièse» # jusqu au changement de ligne, est ignoré par l interpréteur. On peut ainsi insérer des commentaires. 3 Expressions et variables Exécuter les instructions suivantes : 1 >>> a = 12 #On affecte à la variable nommée a la valeur 12, le symbole d affectation est = 2 >>> a, id(a), type(a) #Valeur de a, Identifiant mémoire de a et Type de a 3 (12, , <class int >) 4 >>> b, c = a, 2*a #On peut affecter en parallèle la valeur de a à la variable b et la valeur 2*a à la variable c 5 >>> b, id(b), type(b) # b = a donc b a même valeur et même identifiant que a 6 (12, , <class int >) 7 >>> c, id(c), type(c) 8 (24, , <class int >) 9 >>> a = 0 10 >>> a, id(a), type(a) #Lorsqu on change la valeur de a, on change son identifiant 11 (0, , <class int >) 12 >>> b, id(b), type(b) #En revanche la valeur et l identifiant de b ne changent pas tant que b ne subit pas une nouvelle affectation 13 (12, , <class int >) 14 >>> m=10;n=100;p=1000;q=10000;r= #le ; est le séparateur d instruction 15 >>> m=m+1;n+=1;p-=1;q*=2;r/=2 #Pour incrémenter une variable on peut utiliser le raccourci n +=1 à la place de n = n+1. Des raccourcis similaires existent avec les opérateurs -,* et / 16 >>> m,n,p,q,r 17 (11, 101, 999, 20000, ) 18 >>> del a #La primitive del permet de supprimer une variable Définition 2 Dans un programme Python, comme dans d autres langages, l ensemble des données en mémoire à un instant t s appelle l état courant du programme. Le programme utilise des constantes mais il peut aussi modifier certaines données variables. Une variable est l association entre un nom de variable et une case mémoire contenant la valeur de la variable. Pour créer une variable, on doit d abord faire une déclaration de variable qui établit un lien entre le nom de la variable et une case mémoire qui contiendra sa valeur lorsque la variable sera affectée. La valeur d une variable est modifiée par une affectation de variable. En Python, pour affecter à la variable de nom var la valeur entière 2, on écrit var = 2. var est alors une variable de type entier. Le type d une variable caractérise la nature de sa valeur. Une affectation de variable est une instruction, elle diffère d une expression car elle peut modifier l état courant du programme. Contrairement à d autres langages (Java,C), en Python, le type d une variable est dynamique, il peut changer selon sa valeur. Ainsi après l instruction var = Hello, la variable var serait de type chaîne de caractères. Page 2/20
3 C est pourquoi, en Python, l étape de déclaration de variable n est pas nécessaire, elle est réalisée lors de chaque affectation. La case mémoire associée au nom de variable est repérée par un identifiant mémoire obtenu avec la commande id(var). Lorsqu il exécute une affectation de variable, l interpréteur Python évalue d abord l expression à droite du symbole =, il remplit une case de la mémoire de l ordinateur avec la valeur obtenue dans l état courant de l exécution du programme puis il associe cette case mémoire avec le nom de la variable. Une expression peut être : une variable comme var ou un calcul avec des constantes comme 2+3 formée de plusieurs sous- expressions reliées par des opérateurs comme 2*var-5. Par exemple l instruction bar = var crée une variable bar qui possède la même valeur que la variable var. bar et var pointeront vers la même case mémoire, on dit que bar est un alias de la variable var. L instruction var = var+1 évalue l expression var+1 dans l état courant du programme ce qui donne 2+1 = 3, remplit une case mémoire avec cette valeur et relie le nom var à cette case. Si la valeur de var+1 était déjà en mémoire, Python crée un lien entre cette case mémoire et var, sinon il crée une nouvelle case mémoire. Ainsi l identifiant mémoire de la variable var est changé par l affectation var = var+1. Mais attention, Python ne recalcule pas les valeurs des variables qui avaient été définies précédemment par une expression avec var. Pour être plus précis, les données des types de base (int,float,bool,string) ne sont pas mutables donc elles peuvent être partagées par plusieurs variables, alors que les données de type composés (list,tuple,dict) sont mutables et donc non partagées (sauf si on crée un nouvel alias vers la donnée). 1 >>> var = 2 2 >>> id(var) >>> bar = var #bar est un nouvel alias vers la valeur 2 5 >>> id(bar) >>> mar = 3 8 >>> id(mar) >>> var = var+1 #réaffectation de var, son identifiant change 11 >>> id(var),id(mar) #var est désormais un alias vers 3 la valeur de mar 12 ( , ) 13 >>> var,bar,id(bar) #bar n a pas été modifié 14 (3, 2, ) 15 >>> var = var+1 #nouvelle valeur de var qui n était pas en mémoire 16 >>> var,id(var) #un identifiant mémoire tout neuf 17 (4, ) 18 >>> liste1 = [1,2,3] 19 >>> liste2 = [1,2,3] #liste1 et liste2 partagent la m\^eme liste 20 >>> id(liste1),id(liste2) #mais n ont pas le m\^eme identifiant mémoire 21 ( , ) 22 >>> liste3 = liste2 #liste3 est un nouvel alias vers la valeur de liste2 23 >>> id(liste3) VAR 2 BAR Page 3/20
4 F.JUNIER 2014/2015 Chapitre 2 Eléments de programmation ISN Exercice 1 1. Quelles sont les valeurs de x et y après les instructions suivantes? Prédire, puis vérifier. x = 42; y = 10; x = y; y = x 2. Mêmes questions pour : x = 42; y = 10; z = x; x = y; y = z 3. Mêmes questions pour : x = 42; y = 10; (x,y) = (y,x) 4 Type d une variable Exécuter le code suivant : 1 >>> flottant = 1/3; chaine = ISN ; booleen = 1>0; Booleen = 1 == 0 2 >>> type(flottant), type(chaine), type(booleen), type(booleen) #D autres types de variables 3 (<class float >, <class str >, <class bool >, <class bool >) 4 >>> id(booleen), id(booleen) #Les nomns de variables sont sensibles à la casse 5 ( , ) 6 >>> flottant+chaine 7 Traceback (most recent call last): 8 File "<stdin>", line 1, in <module> 9 TypeError: unsupported operand type(s) for +: float and str Définition 3 Le type d une variable (et plus généralement d une expression) indique la nature des données que cette variable contient : nombre entier,nombre à virgule, chaîne de caractères, booleens, tableaux, listes, dictionnaires... Propriété 1 Dans certains langages (C, Java... ), le type d une variable doit être déclaré avant son affectation et il ne peut pas changer,on parle de typage statique. Python est un langage à typage dynamique, c est-à-dire que le type d une variable peut changer après réaffectation. Cependant c est un typage fort, par exemple on ne peut additionner une variable de type float et une variable de type string. En Python,comme dans la plupart des langages, les principaux types de base sont : le type entier int, réservé à une variable dont la valeur est un entier relatif stocké en valeur exacte. Il n y a pas de limite de taille. le type flottant float pour un nombre à virgule, comme 3.14, stocké en valeur approchée sous la forme d un triplet (s,m,e) sur 64 bits : 1 bit de signe s, 11 bits d exposant e, 52 bits de mantisse m. le type booleen bool, pour les expressions logiques comme 1 < 2 qui peuvent prendre deux valeurs : vrai (True) ou faux (False). le type string pour les chaînes de caractères notées entre quotes simples (apostrophes) ou doubles (guillemets). Dans les chaînes entre triples quotes, on peut faire des sauts de ligne. Les primitives (fonctions définies par défaut) int(), float(), bool(), str() permettent de modifier le type d une variable. Exécuter le code suivant : Page 4/20
5 1 >>> booleen, int(booleen), 4/3, int(4/3) 2 (True, 1, , 1) 3 >>> N = input( Entrez un entier : ) #La primitive input permet de capturer une entrée clavier 4 Entrez un entier : 12 5 >>> N,type(N) 6 ( 12, <class str >) 7 >>> help(input) #La primitive help() permet l affichage de la documentation 8 Help on built-in function input in module builtins: 9 input(...) 10 input([prompt]) -> string 11 >>> N = int(n); type(n) #input() retourne un string qu on change en entier avec int() 12 <class int > 13 >>> import math #On importe le module avec les fonctions mathématiques (puis faire help(math ) ) 14 >>> 0.8*2**(-3),0.1*3-0.3 #Vérification (notez que l exponentiation ** est prioritaire sur la multiplication *) et attention les flottants sont stockés en valeurs approchées 15 (0.1, e-17) 16 #si un calcul donne un flottant, utiliser round() pour arrondir 17 #le transtypage par int() retourne la troncature 18 #la division entière // retourne la partie entière du quotient (pour les entiers positifs) 19 >>> 5/3,round(5/3),5//3,int(5/3) 20 ( , 2, 1, 1) 21 >>> -5/3,round(-5/3),-5//3,int(-5/3) 22 ( , -2, -2, -1) 23 >>> chaine1 = "possibilité d apostrophes"; chaine2 = possibilité de "guillemets" #Simples, doubles ou triples quotes pour les chaînes 24 >>> chaine3 = Un saut de ligne est possible 26 >>> print(chaine3);print();print(chaine1,4**2,chaine2,sep= ; ) #print() permet d afficher la valeur d une ou plusieurs variables 27 Un saut de ligne 28 est possible possibilité d apostrophes;16;possibilité de "guillemets" Exercice 2 Retour sur l affectation parallèle Lorsqu il rencontre le symbole d assignation =, Python évalue d abord l expression à droite puis l assigne au nom (ou identificateur) de variable à gauche. L expression à droite peut être un tuple et Python peut l affecter à un tuple d identificateurs à gauche. On peut parler d affectation parallèle. Le module dis permet de désassembler le bytecode utilisé par l interpréteur Python en une sorte de langage d assemblage et permet de mieux comprendre le fonctionnement de l interpréteur : >>> import dis >>> dis.dis( a = 2; b = 3; a, b = b, a ) 1 0 LOAD_CONST 0 (2) 3 STORE_NAME 0 (a) 6 LOAD_CONST 1 (3) 9 STORE_NAME 1 (b) 12 LOAD_NAME 1 (b) 15 LOAD_NAME 0 (a) 18 ROT_TWO 19 STORE_NAME 0 (a) 22 STORE_NAME 1 (b) 25 LOAD_CONST 2 (None) 28 RETURN_VALUE L affectation parallèle est pratique pour échanger les contenus de deux variables x et y sans variable de stockage ou pour faire des permutations circulaires. On en profite pour vérifier que Python est un langage à typage dynamique. >>> a, b, c = True, Hello, 1 >>> a, b, c (True, Hello, 1) >>> a, b, c = c, a, b >>> a, b, c (1, True, Hello ) Page 5/20
6 1. Ecrire un script Python qui réalise une permutation circulaire des contenus de trois variables sans affectation parallèle et avec une seule variable de stockage. 2. Ecrire un script Python qui réalise une permutation des contenus de deux variables de même type sans affectation parallèle et sans variable de stockage. Tester pour x, y = 4, 5. Les types des valeurs doivent être conservés. Adapter pour la permutation circulaire de trois variables. 5 Structures conditionnelles Définition 4 Une structure conditionnelle est composée d une d instruction de contrôle puis d un bloc d instructions. En Python, l instruction de contrôle commence par le mot clef if suivi d une condition à valeur booleenne (True ou False) et se termine par le symbole «:». Le bloc d instructions qui suit s exécute si et seulement si la condition de l instruction de contrôle a pour valeur True. En Python il est délimité par le nombre d espaces en début de ligne, son indentation, qui doit être supérieure à celle du if. Si la valeur de la condition est False, on peut proposer l exécution d un bloc d instruction alternatif après le mot clef else suivi de «:». Dans d autres langages (C, Java... ), les blocs d instruction sont délimités par des accolades. if condition: Bloc si condition == True else: Bloc si condition == False Syntaxe Python Exemple 1 { sin x si π x π 1. Le programme if_else.py permet de calculer l image d un réel x par la fonction f (x) = 0 sinon La ligne 1 est un commentaire spécial pour indiquer à l interpréteur l encodage de caractères utilisé dans le script. A la ligne 2 on importe toutes les fonctions du module math pour utiliser la fonction sin. Expliquer l utilisation des primitives float() et input() à la ligne 3. La ligne 4 est l instruction de contrôle composée du mot clef if, d une condition x>=-pi and x<=pi qui prend une valeur booleenne True ou False et du signe deux points : qui termine la condition. Les lignes 5 et 6 constituent le bloc d instruction qui s exécute si la valeur de la condition x>=-pi and x<=pi est vraie (True). Toutes les instructions du bloc ont la même indentation. A la ligne 6, l opérateur modulo % permet insérer la valeur de la variable res dans la chaîne de caractères. La ligne 7 comprend le mot clef else au même niveau d indentation que le if et se termine par le symbole deux points :. Les lignes 8 et 9 constituent le bloc d instruction qui s exécute si la valeur de la condition x>=-pi and x<=pi est False. La ligne 10 est au même niveau d indentation que le if, on est sorti du bloc d instructions conditionnelles. 2. Dans le programme if_else_elif.py on a rajouté un bloc elif (contraction de else if) pour offrir trois alternatives de traitement conditionnel. if, elif et else sont sur le même niveau d indentation. Le mot clef pass permet de sortir d un bloc d instruction. Page 6/20
7 1 #-*- coding: Utf-8 -* 2 from math import* 3 x = float(input( Entrez un réel : \n )) 4 if x>=-pi and x<=pi: 5 res = sin(x) 6 print( Le résultat est %d %res) 7 else: 8 res = 0 9 print( Le résultat est %d %res) 10 print( Les tests sont terminés ) if_else.py 1 #-*- coding: Utf-8 -* 2 n = int(input( Entrez un entier : \n )) 3 r = n%3 4 if r == 0: 5 pass 6 elif r == 1: 7 print( Gain de %d euro %r) 8 else: 9 print( Perte de %d euro %r) if_else_elif.py Remarque 2 Dorénavant on prendra l habitude d insérer dans nos programmes des bouts de codes non interprétés par l interpréteur qui expliquent le rôle des différentes parties du programme. Ces commentaires permettent à un programmeur de comprendre un programme écrit par un autre ou de relire un de ses programmes. En Python tout ce qui suit le caractère dièse # jusqu au prochain saut de ligne est un commentaire. Exercice 3 1. Ouvrir le programme if_else.py avec un éditeur de texte et le modifier pour qu il prenne en entrée un réel x et qu il affiche en sortie sa valeur absolue : x = { x si x 0 x si x < Ouvrir le programme if_else_elif.py avec un éditeur de texte et le modifier pour qu il prenne en entrée trois réels a, b et c et qu il affiche en sortie une phrase indiquant le nombre et les valeurs des racines de l équation ax 2 + bx+ c = 0. Principaux opérateurs de comparaison de variables x == y x est égal à y x!= y x est différent de y x > y x est strictement supérieur à y x < y x est strictement inférieur à y x >= y x est supérieur ou égal à y x <= y x est inférieur ou égal à y x is y id(x) == id(y) Principaux opérateurs sur des expressions booleenes E and F Vraie si E est Vraie ET F est Vraie E or F Vraie si E est Vraie OU F est Vraie not E Vraie si E est Fausse Exercice 4 Importance de l indentation Dans l éditeur, saisir puis sauver/exécuter les scripts suivants : 1 #script 1 2 if 10**3 < 999: 3 print("ga") 4 5 if 6**2 > 30: 6 print("bu") 7 8 if 10**3 < 999 or 6**2 > 30: 9 print("zo") 1 #script 2 2 if 10**3 < 999: 3 print("ga") 4 if 6**2 > 30: 5 print("bu") 6 7 if 10**2 < 99 or 5**2 > 20: 8 print("zo") 1 #script 3 2 if 10**3 < 999: 3 print("ga") 4 if 6**2 > 30: 5 print("bu") 6 if 10**3 < 999 or 6**2 > 30: 7 print("zo") Remarque 3 En Python l indentation recommandée est de 4 espaces. En pratique, dans les éditeurs spécialisés pour Python (Idle, Spyder), l indentation est réglée automatiquement sur 4 espaces, la touche de tabulation correspond à une indentation et les tabulations sont automatiquement remplacées par des espaces (4 en l occurrence). Page 7/20
8 Nous utiliserons Geany, un éditeur de texte généraliste, donc il nous faudra d abord paramétrer l éditeur comme ci-dessous dans la fenêtre accessible depuis le menu Préférences>Editer ou le raccourci clavier CTRL+ALT+P. Il faut se méfier de la tabulation. C est un caractère invisible comme l espace mais dont la largeur varie selon les éditeurs de texte. Si on mélange tabulations et espaces, un code peut sembler bien indenté dans un éditeur mais ce ne sera pas le cas dans un autre et l interpréteur Python va générer des erreurs. Une fois qu on a fait les réglages ci-dessus dans Geany, on est tranquille et toutes les tabulations seront transformées en espace. Pour s en assurer on peut activer l option Affichage>Editeur>Afficher les espaces. Les espaces s affiche avec des. et les tabulations avec des flèches. On peut aussi demander la conversion de toutes les tabulations en espaces avec Document>Remplacer les tabulations par des espaces. Pour plus d informations sur les bonnes pratiques de rédaction d un code Python, on pourra consulter la PEP 8 : www. python. org/ dev/ peps/ pep-0008/ Par ailleurs il est bon ce connaître quelques raccourcis clavier valables dans la plupart des éditeurs de texte : CTRL+A pour tout sélectionner CTRL+C pour copier la sélection CTRL+V pour coller la sélection CTRL+X pour couper la sélection CTRL+S pour enregistrer le fichier ouvert CTRL+I pour indenter la sélection CTRL+U pour désindenter la sélection CTRL+Z pour annuler l action précédente Enfin, on peut remarquer que si on enregistre notre code source dans un fichier d extension.py, Geany active la coloration syntaxique et l auto-complétion pour Python, comme les éditeurs spécialisés (Idle,Spyder). la coloration syntaxique met en évidence les mots clefs du langage par un code de couleurs l auto-complétion affiche une info-bulle avec une liste de fonctions du langage qui commence par les mêmes caractères que ceux qu on vient de taper. Page 8/20
9 Méthode Importer un module On a parfois besoin d utiliser des fonctions de Python qui ne sont pas chargées pas défaut. Ces fonctions sont stockées dans des programmes Python appelées modules ou bibliothèques. Par exemple le module math contient les fonctions mathématiques usuelles et le module random contient plusieurs types de générateurs de nombres pseudo-aléatoires. Pour importer une fonction d un module on peut procéder de deux façons : 1 #import du module de mathématique (création d un point d accès) 2 import math 3 4 #pour utiliser la fonction sqrt, on la préfixe du nom du module et d un point 5 racine = math.sqrt(2) Première façon 1 #import de la fonction sqrt du module math 2 from math import sqrt 3 4 racine = sqrt(2) 5 6 #Pour importer toutes les fonctions de math, ecrire 7 #from math import * Deuxième façon Pour obtenir de l aide sur le module math dans la console Python, il faut d abord l importer avec import math puis taper help(math), mais le mieux est encore de consulter la documentation sur internet Principales fonctions du modules random : Fonction Effet randrange(a,b) retourne un entier aléatoire dans [a ;b[ randint(a,b) retourne un entier aléatoire dans [a ;b] random() retourne un flottant aléatoire dans [0 ;1[ uniform(a,b) retourne un flottant aléatoire dans [a ;b] Exercice 5 L Indice de Masse Corporelle se calcule par la formule IMC= masse où la masse est en kilogrammes et la taille en mètres. Un IMC t ai lle2 est considéré comme normal s il est compris entre 18,5 et 25. En dessous de 18, la personne est en sous-poids et au-dessus de 25 elle est en surpoids. 1. Ecrire un programme qui demande la taille et retourne l intervalle de masse correspondant à un IMC normal. 2. Ecrire un programme qui demande la masse et retourne l intervalle de taille correspondant à un IMC normal. Exercice 6 Les années bissextiles sont les années non séculaires divisibles par 4 ou les années séculaires divisibles par 400. Ecrire un programme qui prend en entrée une année n et qui affiche en sortie si elle est bissextile. Page 9/20
10 6 Boucles 6.1 Boucles for Définition 5 Boucle for ou Pour Si on veut répéter un bloc d instructions un nombre déterminé n de fois, on utiliser une boucle for avec une variable compteur i qui va prendre successivement les valeurs de m à n avec un pas de s. En Python, la fonction range crée un itérateur, qui est une sorte de distributeurs d entiers consécutifs. range(n) retourne un itérateur parcourant les entiers consécutifs entre 0 et n exclu. range(m,n) retourne un itérateur parcourant les entiers consécutifs entre m compris et n exclu. range(m,n,s) retourne un itérateur parcourant les entiers consécutifs entre m compris et n exclu avec un pas de s.. 1 for i in range(m,n,s): 2 Bloc 3 4 for i in range(n): 5 #i varie de 0 à n-1 6 Bloc Syntaxes Python En plus de break, Python propose le mot clef continue qui permet dans une boucle Pour de passer directement à l itération suivante. Exercice 7 Dans l éditeur, saisir puis sauver/exécuter les lignes suivantes : 1 for i in range(10,15): 2 print("bonjour ",i) Remplacer print("bonjour ",i) par print("bonjour "+i), exécuter. Remplacer enfin print("bonjour ",i) par print("bonjour "+str(i)) et exécuter. Exercice 8 Applications directes 1. Ecrire un programme qui prend en entrée un entier n et qui retourne les vingt premiers multiples entiers de n. n 2. Ecrire un programme qui prend en entrée un entier n et qui retourne la valeur de la somme k. 3. Ecrire un programme qui prend en entrée un entier n et qui retourne la valeur du terme de rang n de la suite (u n ) définie par : u 0 = 2 et u n+1 = 1 2 u n+ 1 2 n+ 1 k=1 4. Ecrire un programme qui prend en entrée un entier n et qui affiche tous les entiers pairs inférieurs ou égaux à n. 5. Ecrire un programme qui affiche la chaîne de caractères (somme des 100 premiers entiers dans l ordre décroissant sous forme de chaîne de caractères). 6. Ecrire un programme qui affiche tous les couples (i, j ) avec 1 i 6 et 1 j 6 comme ci-dessous : (1, 1),(1, 2),(1, 3),(1, 4),(1, 5),(1, 6) (2, 1),(2, 2),(2, 3),(2, 4),(2, 5),(2, 6) (3, 1),(3, 2),(3, 3),(3, 4),(3, 5),(3, 6) (4, 1),(4, 2),(4, 3),(4, 4),(4, 5),(4, 6) (5, 1),(5, 2),(5, 3),(5, 4),(5, 5),(5, 6) (6, 1),(6, 2),(6, 3),(6, 4),(6, 5),(6, 6) Page 10/20
11 6.2 Boucles while Définition 6 Boucle while ou TANT QUE C est une structure itérative dont la première instruction est while condition: suivie d un bloc d instruction d indentation supérieure qui s exécute tant que la valeur booleenne de la condition est vraie (True). Si cette valeur est False la boucle est achevée. Attention au risque de boucle infinie avec les boucles while si le test d arrêt n est jamais vérifié... Exemple 2 La boucle 1 ci-contre calcule le logarithme entier d un réel x supérieur ou égal à 1, c est-à-dire le nombre de fois qu il faut le diviser par deux pour obtenir un nombre inférieur ou égal à 1. Ainsi le logarithme entier de est 10 car et > 1. La condition de sortie de la boucle 2 est contrôlée par l utilisateur, s il ne répond pas y, la boucle sera infinie. Exercice 9 Ecrire un programme qui demande de parier sur le nombre de coups nécessaires pour obtenir un 6. Le programme lance un dé à six faces jusqu à l obtention du 6 et affiche si l utilisateur a remporté son pari. 1 #boucle 1 2 x = float(input( Entrez un réel : \n )) 3 i, stock = 0, x 4 while x>1: 5 x = x/2 6 i += 1 7 print( Le logarithme entier de %s est %s %( stock,i)) 8 9 #boucle 2 10 test = True 11 while test: 12 rep = input( Sortie de boucle? (y/n) ) 13 if rep == y : 14 test = False Exercice Ecrire un programme qui prend en entrée un réel M et qui affiche en sortie le plus petit entier n tel que n k 3 > M. 2. Écrire un programme où l ordinateur choisit un mot de passe puis demande à l utilisateur de saisir le mot de passe tant que celui-ci n est pas correct. { u0 = 1 3. On considère la suite (u n ) définie par u n+1 = 2u n + n. Ecrire un programme qui retourne le plus petit indice n tel que u n > Modifier ce programme pour qu il affiche le plus grand indice n tel que u n k=1 Exercice 11 Rurple épisode 1 Lancer le logiciel Rurple de puis le partage réseau T. Ce logiciel permet de déplacer un robot nommée Rurple sur une scène en utilisant le langage de programmation Python augmenté de quelques fonctions spécifiques. Voici les principales fonctions qui permettent de déplacer le robot pu de la faire interagir avec son environnement : «avance( )» (ou appui sur touche A) : le robot avance d une case devant lui. «gauche( )» (ou appui sur touche G) : le robot effectue un quart de tour vers la gauche. «depose( )» (ou appui sur touche D) : le robot dépose une bille sur la case où il se trouve. «prends( )» (ou appui sur touche P) : le robot ramasse une bille sur la case où il se trouve. L interface graphique est composé d une barre de menu classique en haut et de trois fenêtres : Page 11/20
12 La fenêtre de gauche accueille le programme (ou script) des instructions que l on souhaite faire exécuter au robot. Celui-ci lit le programme de haut en base et exécute les instructions de façon séquentielle. Certaines instructions comme les conditions ou les boucles permettent de faire des sauts en avant ou en arrière dans le code source du programme. On peut enregistrer/ouvrir/créer un nouveau un programme/script (au format *.py comme un script Python) en sélectionnant le menu Programme. Il faut enregistrer un nouveau programme avant de l exécuter. La fenêtre en haut à droite contient la grille d évolution du robot, on peut régler sa taille à partir du menu Scène et il est possible d insérer des murs ou des billes dans la grille en cliquant dessus avec le bouton gauche. On peut ouvrir/créer une nouvelle/enregistrer (au format *.wld) une scène depuis le menu Scène. Pour réinitialiser la scène, on peut cliquer sur le bouton correspondant de la barre d outils ou effectuer la combinaison de touches sur CTRL + R. La fenêtre en bas à droite contient trois volets Affichage/Fonctions/Variable. Dans Affichage seront écrites les messages du robot (c est le programmeur qui le fait parler... ). Dans Fonctions se trouvent la liste des fonctions spécifiques à Rurple en plus des fonctions classiques de Python. Dans Variables on pourra observer l évolution du contenu des variables. En dessous de la barre de menu se trouve un barre d outils avec trois icônes cliquables pour contrôler l exécution d un programme (lecture puis interprétation par le robot) selon trois fonctionnalités : Exécuter, Suspendre, Stopper, Exécuter pas à pas (fait une pause après chaque ligne/instruction). 1. Ecrire une boucle for qui permet au robot de parcourir de gauche à droite toute la scène de dimension 8 1 ci-dessus. Le programme fonctionne-t-il si on change la largeur de la scène? 2. Créer un nouveau programme (boucletantque.py), saisir le code 1 ci-contre avec une boucle while pour laquelle on retrouve les deux points et l indentation. Exécuter le programme avec une scène rectangulaire 8 1 comme pour la boucle for ci-dessus. 3. Observer l évolution de la variable de boucle k en exécutant le programme pas à pas. 4. Que se passe-t-il si on change la largeur de la scène? Tester pour une largeur inférieure puis supérieure à Créer un nouveau programme (boucletantque2.py) avec le code 2 ci-contre. Tester ce programme. Quel avantage présentet-il? 1 #code tant que 1 2 k = 0 3 while k < 7 : 4 k = k avance() 1 #code tant que 2 2 while not mur_devant(): 3 avance() 6. Si on remplace l instruction avance() par print( Bonjour ) que se passe-t-il? Exercice 12 Rurple épisode 2 1. En utilisant une boucle Tant Que, créer un nouveau programme cueillettetantque.py qui permet au robot de cueillir toutes les fraises déposées sur une scène rectangulaire de dimensions n 1 avec au plus 1 fraise par case. Page 12/20
13 2. En utilisant une boucle Tant Que, créer un nouveau programme cueillettetantque1.py qui permet au robot d avancer puis de cueillir toutes les fraises déposées sur la deuxième case comme ci-dessous où il y a 3 fraises. 3. En utilisant une boucle Tant Que, créer un nouveau programme cueillettetantque2.py qui permet au robot d avancer puis de cueillir toutes les fraises déposées sur les cases d une scène rectangulaire de dimensions n 1 avec éventuellement plus d une fraise par case. Exercice 13 Rurple épisode 3 1. En utilisant deux boucles for imbriquées, écrire un programme de quatre lignes qui permet au robot de faire le tour d une scène de dimensions 4 4 et de revenir à sa position de départ comme dans l exemple initial. 2. Comment modifier le programme précédent pour que le robot puisse faire le tour de n importe quelle scène rectangulaire de dimensions n m avec n> 1 et m> 1? 3. Dans le menu scène, sélectionner Nombre de billes et placer quatre billes dans la poche du robot. Modifier le programme précédent pour que le robot fasse un tour de la scène et dépose une bille à chaque coin de n importe quelle scène rectangulaire. 4. Choisir une scène rectangulaire de dimensions Modifier le programme précédent pour que le robot fasse un tour de la scène et dépose une bille au milieu de chaque côté. Page 13/20
14 Exercice a. Soit i un entier, développer (i+ 1) 2. b. Sans utiliser l opérateur d exponentiation **, compléter le script Python ci-contre pour que la variable s n contienne en sortie de boucle la somme i Un entier naturel supérieur ou égal à 2 est premier s il n est divisible que par 1 et par lui-même. Une propriété (à justifier) établit qu un entier n est premier s il n est divisible par aucun des entiers compris entre 2 et n (la partie entière de n). Ecrire un programme qui détermine si un entier entré par l utilisateur est premier. i=0 1 n = int(input( Entrez un entier n : )) 2 i = 0 3 c = i 4 s = c 5 while i<n: 6 c =... 7 s =... 8 i =... 9 print( somme des carrés de 0 à,n, :,s) Exercice Exécuter le script ci-contre pour a = 230 et b = 113 et représenter l évolution des variables dans un tableau. 2. Que représentent les valeurs des variables m et n affichées en sortie? 1 a = int(input( a= )) 2 b = int(input( b= )) 3 if a > 0 and b > 0: 4 m, n = a, 0 5 while m >= b: 6 m, n = m - b, n print( m=,m, n=,n) Exercice Ecrire avec une boucle while un programme qui calcule le quotient de a par b où a et b sont des entiers naturels saisis au clavier. 2. Faire une recherche sur internet sur les différents algorithmes d Euclide qui permettent de calculer le PGCD de deux entiers naturels a et b. a. Programmer avec une boucle while l algorithme dit «des divisions successives». b. Programmer avec une boucle while l algorithme dit «des différences successives». Méthode Boucle infinie avec break Parfois (dans les jeux), on utilise des boucles infinies qui tournent tant qu un événement particulier ne s est pas produit. En Python, le mot clef break permet de sortir d une boucle while directement à partir du corps de boucle. 1 password = secret 2 while True: 3 entree = input( Entrez le mot de passe ) 4 if entree == password: 5 break Page 14/20
15 Exercice 17 Terminaison de boucle 1. Parmi les programmes boucle1 et boucle2 ci-contre déterminer ceux qui comportent une boucle qui ne se termine pas. 2. Une suite (u n ) est dite de Syracuse si elle est définie ainsi : u 0 est un entier positif { un u n+1 = 2 si u n est pair 3u n + 1 si u n est impair Une conjecture non démontrée stipule que pour tout entier positif u 0 la suite de Syracuse (u n ) atteint la valeur 1 pour un certain indice. Ecrire un programme qui demande d entrer un entier a et qui retourne l indice du premier terme égal à 1 pour la suite de Syracuse de premier terme u 0 = a. 1 p = False 2 n = 0 3 while not p: 4 n+=1 5 if n**2 == 81: 6 p = True 7 print(n) boucle1.py 1 from math import* 2 p = True 3 n = 0 4 while p: 5 n+=1 6 if cos(n) == 0: 7 p = False 8 print(n) boucle2.py 6.3 Savoir tester et instrumenter un programme Méthode 1. Pour déterminer si un programme donne les résultats attendus correctement il faut l exécuter plusieurs fois avec un jeu d entrées tests telles que : on connaît à l avance le résultat pour ces entrées tests ; tous les cas possibles sont recouverts par le jeu de tests même les cas limites. 2. Si un programme ne fonctionne pas correctement, pour détecter les erreurs, on peut l instrumenter, c est-à-dire ajouter des instructions de sortie dans le programme (avec des print), qui permettent de visualiser ce qu il se passe au cours de son exécution. Pour des programmes longs, on peut utiliser un outil spécialisé comme un débogueur. Pour de gros programmes, le jeu de tests et instrumentation doivent être prévus dès le début, ce n est pas une perte de temps. Une méthode rudimentaire sans débogueur peut consister à créer une variable debug de type booléen et d insérer des instructions de débogage (par exemple pour le suivi des variables) dans des blocs conditionnels commandés par la valeur de debug. On donne ci-dessous un exemple de débogage d un script correct (pourquoi?) de calcul de la somme des chiffres d un entier écrit en base 10 : 1 debug = True 2 if debug: 3 k = 0 4 n = int(input( Entrez un entier : )) 5 somme = 0 6 while n > 0: 7 somme = somme + n%10 8 if debug: 9 k += 1 10 print( itération :, k) 11 print( Somme :, somme) 12 print( n :, n, end= \n\n ) 13 n = n // 10 1 Entrez un entier : itération : 1 3 Somme : 3 4 n : itération : 2 7 Somme : 5 8 n : itération : 3 11 Somme : 6 12 n : Page 15/20
16 Exercice Proposer un jeu de tests satisfaisant pour le programme de calcul des solutions réelles d une équation du second degré. 2. Le programme ci-contre a pour but de calculer la somme des carrés des entiers successifs entre 1 et n. a. Tester ce programme pour déterminer s il est correct. b. Instrumenter ce programme pour déterminer l erreur. 1 n = int(input( Entrez un entier )) 2 i = 1 3 s =0 4 while i<=n: 5 i = i*i 6 s = s+i 7 i= i+1 8 print(s) 6.4 Des boucles simples et des doubles Exercice Ecrire un programme qui affiche les vingt premiers termes de la table de multiplication par 11 à l aide d une boucle for puis modifier ce programme pour qu il utilise une boucle while. Les boucles for sont un cas particulier de boucles while. 2. Ecrire une programme prend en entrée un entier naturel n et qui affiche en sortie le terme de rang n de la suite de Fibonacci : u n = u 0 = 1 u 1 = 1 u n+2 = u n+1 + u n 3. Écrire un programme qui calcule et affiche la liste des diviseurs d un nombre entier naturel entré au clavier. 1 #-*- coding: Utf-8 -*- 2 for i in range(100): 3 print( * ) 4 for j in range(100): 5 print( * ) etoile1.py 1 #-*- coding: Utf-8 -*- 2 for i in range(100): 3 for j in range(100): 4 print( * ) etoile2.py 4. Combien d étoiles * sont affichées par les programmes etoile1 et etoile2 ci-contre qui utilisent deux boucles imbriquées? Exercice Tester le programme suivant pour n=4, n=10, n= Que représente la somme calculée par ce programme? 3. Modifier ce programme pour qu il n utilise pas le mot clef continue. 1 # -*- coding: utf-8 -*- 2 3 n = int(input( Entrez un entier n : \n )) 4 somme = 0 5 for i in range(n): 6 if i%2 == 0: 7 continue 8 if i%3 == 0: 9 #equivalent de somme = somme + i**2 10 somme += i**2 Page 16/20
17 11 print( La somme cherchée est %s %somme) continue Exercice 21 { u0 = 3 1. On considère la suite (u n ) définie par u n+1 = 3u n + n. Ecrire un script Python qui prend en entrée un entier n et qui retourne le terme de rang n de la suite (u n ). u 0 = 1 2. On admet que la suite (u n ) définie par u n+1 = 1+ 2 est définie pour tout n N et converge vers 2. u n Ecrire un script qui détermine le plus petit entier p tel que up 2 < Exercice 22 Pour chaque script déterminer le nombre d étoiles affichées : 1 #Script 1 2 i, j = 100, while i> 0: 4 i = i-1 5 print( * ) 6 while j>0: 7 j = j-1 8 print( * ) 1 #Script 2 2 i = while i> 0: 4 i = i-1 5 print( * ) 6 j = while j>0: 8 j = j-1 9 print( * ) 1 #Script 3 2 i = while i> 0: 4 i = i-1 5 j = while j>0: 7 j = j-1 8 print( * ) 1 #Script 4 2 i, j = 100, 50 3 while i>j: 4 i = i-1 5 j = 50 6 print( * ) 7 while j>0: 8 j = j-1 9 print( * ) Exercice 23 Rurple épisode 4 (plus difficile) Cet exercice pourra être repris quand nous aurons appris comment regrouper un bloc d instructions dans une fonction. Celà permet d éviter les copier-coller lorsqu un bloc d instructions est réutilisé. 1. Quelle suite d instructions permet au robot de faire demi-tour? de tourner à droite? 2. Créer un nouveau programme qui permette au robot de cueillir toutes les billes/fraises déposées sur une grille rectangulaire de dimensions 7 4 avec au plus une fraise sur chaque case (y compris sur la case de départ). Le programme doit fonctionner quelle que soit la disposition des fraises. A la fin de la cueillette, le robot doit afficher le nombre de fraises cueillies. Page 17/20
18 3. Modifier le programme précédent pour qu il permette au robot de cueillir toutes les billes/fraises déposées sur n importe quelle grille rectangulaire de dimensions 7 4 avec éventuellement plus d une fraise sur chaque case (y compris sur la case de départ). 7 Dessiner avec le module turtle Exercice 24 Dessin avec le module turtle Le module turtle de Python permet de construire des figures en donnant des instructions à une tortue comme dans le langage LOGO. 1. Faire une recherche sur internet sur le langage LOGO et la tortue LOGO. 2. Tester le programme suivant. 3. Modifier ce programme pour qu il dessine un triangle équilatéral, puis un hexagone puis un octogone Remplacer la valeur 90 par 70 en ligne 7 et insérer l instruction i = 0 juste avant le while de la ligne 5 puis les instructions i=i+1 et print(i) comme premières instructions du bloc commandé par le while. 5. Tester le programme modifié. Que se passe-t-il? 6. Calculer le plus petit commun multiple de 70 et 360 avec un autre programme et expliquer le déroulement du programme polygone.py. Il semblerait plus naturel de remplacer le test abs(pos())<1 par pos() == (0,0). On peut essayer mais celà ne fonctionne pas comme prévu... Pour stopper une boucle infinie on peut faire Ctrl+C. La fonction pos() retourne les coordonnées de la position courante de la tortue sous la forme d un couple de flottants et contrairement aux entiers les flottants sont représentés en valeur approchée et une valeurs très proche de (0,0) n est pas (0,0) pour l ordinateur... 1 from turtle import * #import de toutes les fonctions du module turtle 2 pencolor( red ) #couleur du crayon 3 # la boucle while contient les instructions données à la tortue 4 pos() #affichage de la position initiale de la tortue : l origine (0,0) 5 while True: 6 forward(100) #avance de 100 pixels 7 left(90) #tourne à gauche de 90 degrés 8 if abs(pos())<1: #si la position est à une distance de (0,0) inférieure à 1 9 break # on sort de la boucle 10 done() #pour lancer la construction polygone.py Page 18/20
19 Principales fonctions du module turtle reset() goto(x,y) forward(d) backward(d) up(), down() left(θ), right(θ) color( red ),width(l) circle(r) done() ou mainloop() effacer tout et recommencer aller au point de coordonnées (x,y) avancer de d reculer de d lever ou baisser le crayon tourner à gauche et à droite de θ degrés couleur, épaisseur du tracé trace un cercle de rayon R lance la construction Exercice 25 Tester puis expliquer les programmes suivants : 1 from turtle import* 2 for i in range(4): 3 forward(100) 4 left(90) 5 mainloop() 1 from turtle import* 2 rayon = 20 3 while rayon<100: 4 circle(rayon) 5 rayon=rayon+10 6 mainloop() 1 #-*- coding: Utf-8 -* 2 from turtle import* 3 rayon = 20 4 while rayon<100: 5 circle(rayon) 6 up() 7 right(90) 8 forward(10) 9 left(90) 10 down() 11 rayon=rayon mainloop() 1. Ecrire un programme qui permet de tracer un hexagone régulier puis plus généralement un polygone régulier à n côtés (faire une rechercher internet sur la somme des angles d un polygone régulier à n côtés). 2. Ecrire un programme qui permet de tracer une spirale polygonale comme celle ci-dessous puis modifier un paramètre du programme pour tracer d autres types de spirales polygonales. 3. Ecrire un programme qui permet de tracer une étoile à cinq branches comme celle ci-dessous. 4. Ecrire un programme qui dessine le drapeau européen avec douze étoiles à cinq branches jaunes sur un fonds bleu. Une spirale Une étoile Page 19/20
20 Table des matières 1 Notion de langage de programmation 1 2 La console Python 1 3 Expressions et variables 2 4 Type d une variable 4 5 Structures conditionnelles 6 6 Boucles Boucles for Boucles while Savoir tester et instrumenter un programme Des boucles simples et des doubles Dessiner avec le module turtle 18 Page 20/20
Présentation du langage et premières fonctions
1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en
TP 1. Prise en main du langage Python
TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer
L informatique en BCPST
L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité
Initiation à la programmation en Python
I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de
Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un
Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Découverte de Python
Découverte de Python Python est un des langages informatiques au programme des concours à partir de la session 2015. Ce tutoriel vous permettra de vous mettre à peu près à niveau de ce qui a été fait en
Cours d algorithmique pour la classe de 2nde
Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage
Algorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
INTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
STAGE IREM 0- Premiers pas en Python
Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer
Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
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)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
Initiation à l algorithmique
Informatique S1 Initiation à l algorithmique procédures et fonctions 2. Appel d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex 3 -
Introduction à MATLAB R
Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d
INITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5
SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N
Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7
Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin
Algorithmique avec Algobox
Algorithmique avec Algobox 1. Algorithme: Un algorithme est une suite d instructions qui, une fois exécutée correctement, conduit à un résultat donné Un algorithme doit contenir uniquement des instructions
EXCEL TUTORIEL 2012/2013
EXCEL TUTORIEL 2012/2013 Excel est un tableur, c est-à-dire un logiciel de gestion de tableaux. Il permet de réaliser des calculs avec des valeurs numériques, mais aussi avec des dates et des textes. Ainsi
Algorithmique et programmation : les bases (VBA) Corrigé
PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage VBA des éléments vus en algorithmique. Table des matières 1 Pourquoi
Guide de l utilisateur Mikogo Version Windows
Guide de l utilisateur Mikogo Version Windows Table des matières Création d un compte utilisateur 3 Téléchargement et installation 4 Démarrer une session 4 Joindre une session 5 Fonctionnalités 6 Liste
Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java
Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page
Maple: premiers calculs et premières applications
TP Maple: premiers calculs et premières applications Maple: un logiciel de calcul formel Le logiciel Maple est un système de calcul formel. Alors que la plupart des logiciels de mathématiques utilisent
Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS
Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS Mémento Ouvrir TI-Nspire CAS. Voici la barre d outils : L insertion d une page, d une activité, d une page où l application est choisie, pourra
Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions
Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental
Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2
éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........
IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Troisième projet Scribus
Sommaire 1. Réponse à la question du deuxième projet... 2 2. Présentation du projet... 2 2.1. Organiser son travail... 2 3. Réalisation... 2 3.1. Préparation du texte... 2 3.1.1. Les styles «Dys»... 3
Cours 7 : Utilisation de modules sous python
Cours 7 : Utilisation de modules sous python 2013/2014 Utilisation d un module Importer un module Exemple : le module random Importer un module Exemple : le module random Importer un module Un module est
Introduction au langage C
Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les
Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume
Studio HERITIER Emmanuelle PERSYN Elodie SCHMUTZ Amandine SCHWEITZER Guillaume Cours R Présentation projet 10/10/2013 Introduction RStudio est une interface créé par JJ Allaire Elle est sortie le 11 Février
Bases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation
1 Recherche en table par balayage
1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément
Recherche dans un tableau
Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6
MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.
Page 1 de 9 MATLAB : COMMANDES DE BASE Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */. Aide help, help nom_de_commande Fenêtre de travail (Command Window) Ligne
ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.
ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. Sciences et Technologies de l Industrie et du Développement Durable Formation des enseignants parcours : ET24 Modèle de
Guide de l utilisateur. Faites connaissance avec la nouvelle plateforme interactive de
Guide de l utilisateur Faites connaissance avec la nouvelle plateforme interactive de Chenelière Éducation est fière de vous présenter sa nouvelle plateforme i+ Interactif. Conçue selon vos besoins, notre
Introduction à l informatique en BCPST
Introduction à l informatique en BCPST Alexandre Benoit BCPST L informatique en BCPST «L enseignement de l informatique en classes préparatoires de la filière BCPST a pour objectif d introduire puis de
Solutions du chapitre 4
Solutions du chapitre 4 Structures de contrôle: première partie 4.9 Identifiez et corrigez les erreurs (il peut y en avoir plus d une par segment de code) de chacune des proposition suivantes: a) if (
GUIDE D UTILISATION DU BACKOFFICE
GUIDE D UTILISATION DU BACKOFFICE 1. Modifier les pages du site : - Aller dans l onglet «PAGE HTML», puis «Liste des pages HTML» - Pour visualiser votre page, cliquer sur le nom écrit en vert, dans la
I00 Éléments d architecture
I00 I Exemples d ordinateur Pour les informaticiens, différentes machines de la vie courante sont des ordinateurs : par exemple les ordinateurs portables, les ordinateurs fixes, mais aussi les supercalculateurs,
2 Comment fonctionne un ordinateur, dans les grandes lignes
Programmation 1 Cours n 1 GB3, 2 nd semestre 2014-2015 Cours de Python Gilles Bernot Les notes de cours et les feuilles de TD sont disponibles (avec un peu de retard par rapport au déroulement du cours)
Rappels sur les suites - Algorithme
DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................
Sommaire. Images Actives Logiciel libre développé par le CRDP de l académie de Versailles 2 Rue Pierre Bourdan Marly le Roi - 78160
Sommaire Choisir son image... 2 Enregistrer son travail... 3 Créer les détails... 4 Supprimer une zone ou un détail... 6 Les commentaires... 6 Créer un lien hypertexte... 8 Appliquer un modèle... 8 Personnaliser
MANUEL DE PROCÉDURE POUR LA MISE À JOUR DU SITE DE FIDAFRIQUE. Documentation utilisateur Octobre 2005
MANUEL DE PROCÉDURE POUR LA MISE À JOUR DU SITE DE FIDAFRIQUE Documentation utilisateur Octobre 2005 I. Principes 1.1 - Généralités Les personnes autorisées à intervenir sur le site sont enregistrées par
Publier dans la Base Documentaire
Site Web de l association des ingénieurs INSA de Lyon Publier dans la Base Documentaire Remarque : la suppression des contributions n est pas possible depuis le Front-Office. lbuisset Page 1 18/09/2008
UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.
UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases
Corrigé des TD 1 à 5
Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un
Guide d utilisation 2012
Guide d utilisation 2012 Tout ce dont vous avez besoin pour bien démarrer REACOM La performance marketing SOMMAIRE Démarrez avec reagiciel Accédez à votre console d administration 4 Gestion internet Aperçu
Apprendre à manipuler le clavier Médiathèque de Bussy Saint-Georges APPRENDRE A MANIPULER LE CLAVIER
APPRENDRE A MANIPULER LE CLAVIER Apprendre à manipuler le clavier SOMMAIRE : I APPRENDRE A TAPER AU CLAVIER... PAGES 3-11 1.1 - Positionnement des touches d'un clavier... Page 3 1.2 - Les touches importantes
Licence Sciences et Technologies Examen janvier 2010
Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.
1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information
TP Numéro 2 CRÉER ET MANIPULER DES TABLEAUX (Mise en forme, insertion, suppression, tri...) 1 CRÉER UN TABLEAU 1.1 Présentation Pour organiser et présenter des données sous forme d un tableau, Word propose
à l édition de textes
Introduction à l édition de textes Introduction Le traitement de texte consiste en la création et la modification de textes (appelés aussi documents) à l'aide d'un ordinateur. Les premiers logiciels de
Chapitre 2 Devine mon nombre!
Python 3 : objectif jeux Chapitre 2 Chapitre 2 Devine mon nombre! 2.1. Thèmes abordés dans ce chapitre commentaires modules externes, import variables boucle while condition : if... elif... else la fonction
Programmer en JAVA. par Tama ([email protected]( [email protected])
Programmer en JAVA par Tama ([email protected]( [email protected]) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Tutoriel code::blocks
Tutoriel code::blocks E. Lunéville 2006 Le logiciel code::blocks fait partie des logiciels de type EDI (Environnement de Développement Intégré, IDE en anglais) pour le langage C++. Il est multiplateforme
V- Manipulations de nombres en binaire
1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,
RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.
S Vous n aimez pas la souris Les raccourcis clavier sont là pour vous faciliter la vie! INTRODUCTION : Vous avez du mal à vous habituer à la manipulation de la souris Des solutions existent : les raccourcis
Conventions d écriture et outils de mise au point
Logiciel de base Première année par alternance Responsable : Christophe Rippert [email protected] Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
POUR ALLER UN PEU PLUS LOIN SUR UN TABLEUR. Version EXCEL
POUR ALLER UN PEU PLUS LOIN SUR UN TABLEUR Version EXCEL Document réalisé par Francis Petit, IA-IPR de Mathématiques à Grenoble, à partir d un document de Jean-Raymond Delahaye, professeur au lycée Alain
Programmation C++ (débutant)/instructions for, while et do...while
Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de
F7n COUP DE BOURSE, NOMBRE DÉRIVÉ
Auteur : S.& S. Etienne F7n COUP DE BOURSE, NOMBRE DÉRIVÉ TI-Nspire CAS Mots-clés : représentation graphique, fonction dérivée, nombre dérivé, pente, tableau de valeurs, maximum, minimum. Fichiers associés
CAPTURE DES PROFESSIONNELS
CAPTURE DES PROFESSIONNELS 2 Téléchargement 3 Installation 8 Prise en main rapide 10 Lancement Recherche 14 Gestion des fichiers 23 Compare et Sépare 24 Fichiers annexes 2/ Le menu Utilitaires 32 Internet
Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1
Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 B. Baert & F. Ludewig [email protected] - [email protected] Qu est-ce que la programmation? Programmer Ecrire un
Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2
Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................
SolidWorks edrawings et publications
SolidWorks edrawings et publications Ce tutorial a pour but de vous expliquer ce qu est edrawings et ce que ce format de fichier peut vous rendre comme services, puis de vous expliquer les différentes
Comment accéder à d Internet Explorer
Comment accéder à d Pour ouvrir l application, vous n avez qu à doublecliquer sur l icône de celle-ci : ou vous pouvez encore allez le chercher par le raccourci dans la barre des tâches : Lorsque l application
Guide de démarrage rapide. (pour la version 5.0.)
Guide de démarrage rapide (pour la version 5.0.) 2 Table des matières Introduction Réglages de l application MyTalk Mobile 1. MODIFICATION 2. DEMARRER 3. AFFICHER 4. SYNTHETISEUR VOCAL 5. NOMBRE DE MOTS
Tutoriel. Votre site web en 30 minutes
Tutoriel Votre site web en 30 minutes But du tutoriel Nous allons vous présenter comment réaliser rapidement votre site avec Web Creator Pro 6 en vous basant sur l utilisation des modèles fournis avec
TP1 - Prise en main de l environnement Unix.
Mise à niveau UNIX Licence Bio-informatique TP1 - Prise en main de l environnement Unix. Les sujets de TP sont disponibles à l adresse http://www.pps.jussieu.fr/~tasson/enseignement/bioinfo/ Les documents
Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT
Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,
Cahier n o 6. Mon ordinateur. Fichiers et dossiers Sauvegarde et classement
Cahier n o 6 Mon ordinateur Fichiers et dossiers Sauvegarde et classement ISBN : 978-2-922881-10-3 2 Table des matières Fichiers et dossiers Sauvegarde et classement La sauvegarde 4 Enregistrer 4 De quelle
Sélection du contrôleur
Démo CoDeSys - 1 - 1. Configuration de l environnement de travail : Lancer le logiciel CoDeSys Fichier Nouveau Lors de la première utilisation, une boîte de dialogue apparaît permettant la sélection du
1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :
1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus : La procédure d installation démarre. La fenêtre suivante vous indique
HMI target Visu / PLC HMI. Pour réaliser une interface homme machine avec PLC control
HMI target Visu / PLC HMI Pour réaliser une interface homme machine avec PLC control VERSION : 1.4 / PH DATE : 5 Novembre 2014 Sommaire Ce manuel explique de manière pratique les étapes successives pour
SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique
SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique DOMAINE P3.C3.D1. Pratiquer une démarche scientifique et technologique, résoudre des
GESTION DU LOGO. 1. Comment gérer votre logo? 2. 2.1. Format de l image 7 2.2. Dimensions de l image 8 2.3. Taille de l image 9
GESTION DU LOGO 1. Comment gérer votre logo? 2 1.1. Insérer un logo 3 1.1.1. Insérer un logo dans le bandeau 3 1.1.2. Insérer un logo dans les éditions 4 1.2. Supprimer un logo 6 1.2.1. Supprimer un logo
Guide d installation de MySQL
INF 1250 Introduction aux bases de données Guide d installation de MySQL 1 Introduction Ce guide vous indique la façon d installer et d utiliser le logiciel MySQL de Oracle (disponible en licence GPL).
Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B
Excel : Réalisation d un classeur Compta Saisir les étiquettes Renommer la première feuille Compta Laisser la première ligne vide et sur la deuxième ligne saisir les étiquettes Se placer sur A2 et saisir
Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie
Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis
Organiser les informations ( approche technique )
Organiser les informations ( approche technique ) Introduction : Le stockage des informations est une fonctionnalité essentielle de l outil informatique, qui permet de garantir la pérennité des informations,
Notions fondamentales du langage C# Version 1.0
Notions fondamentales du langage C# Version 1.0 Z 2 [Notions fondamentales du langage Csharp] [Date : 25/03/09] Sommaire 1 Tout ce qu il faut savoir pour bien commencer... 3 1.1 Qu est ce qu un langage
Le logiciel de création de site internet IZISPOT est un outil très puissant et qui est assez simple après quelques temps d utilisation.
1 Le logiciel de création de site internet IZISPOT est un outil très puissant et qui est assez simple après quelques temps d utilisation. Voici un mode opératoire qui vous guidera dans l utilisation de
Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. [email protected]
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 [email protected] LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
GUIDE Excel (version débutante) Version 2013
Table des matières GUIDE Excel (version débutante) Version 2013 1. Créer un nouveau document Excel... 3 2. Modifier un document Excel... 3 3. La fenêtre Excel... 4 4. Les rubans... 4 5. Saisir du texte
Groupe Eyrolles, 2006, pour la présente édition, ISBN : 2-212-11782-5
Groupe Eyrolles, 2006, pour la présente édition, ISBN : 2-212-11782-5 Table des matières Chapitre A : Principes de base des scripts... 1 Élaboration de votre premier script... 1 Importance du modèle...
Cours d Algorithmique et de Langage C 2005 - v 3.0
Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU [email protected] Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris
Programmation Web. Madalina Croitoru IUT Montpellier
Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance
Les calques : techniques avancées
Les calques : techniques avancées 9 Au cours de cette leçon, vous apprendrez à : importer un calque d un autre fichier ; créer un masque d écrêtage ; créer et modifier un calque de réglage ; employer les
Chapitre 4 Pierre, papier, ciseaux
Python 3 : objectif jeux Chapitre 4 Chapitre 4 Pierre, papier, ciseaux (version graphique) 4.1. Thèmes abordés dans ce chapitre Le module tkinter : Label, Button Fenêtre Événements Réceptionnaire d'événements
Le langage C. Séance n 4
Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de
Algorithme. Table des matières
1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............
Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...
Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez
TP 1 Prise en main de l environnement Unix
Introduction aux systèmes d exploitation (IS1) TP 1 Prise en main de l environnement Unix Le but de ce premier TP est de commencer à vous familiariser avec l environnement Unix. 1 Ouverture de session
PRISE EN MAIN D ILLUSTRATOR
CHAPITRE 1 PRISE EN MAIN D ILLUSTRATOR Présentation... 13 Contenu du livre... 13 Les nouveautés... 14 Composants de l interface... 15 Afficher les documents... 20 Organiser son espace de travail... 21
