• Aucun résultat trouvé

Notions: séquence d'instructions pour résoudre un problème, nombre fini d'instructions, temps fini d'exécution.

N/A
N/A
Protected

Academic year: 2022

Partager "Notions: séquence d'instructions pour résoudre un problème, nombre fini d'instructions, temps fini d'exécution."

Copied!
2
0
0

Texte intégral

(1)

Exercice n°1 - Définition d’un algorithme

Notions: séquence d'instructions pour résoudre un problème, nombre fini d'instructions, temps fini d'exécution.

Exercice n°2 - Cochez la case Oui ou Non pour indiquer si l’expression est vraie :

Python est un langage :

orienté objet OUI,

interprété dynamique OUI, procédural OUI,

machine NON, typé OUI

Exercice n°3 - Quelle est la méthode permettant d’ajouter un élément à la fin d’une liste ? append

Exercice n°4 - Quel élément syntaxique permet d’identifier un bloc d’instructions composées en Python ?

L'indentation du bloc (le : en fin de ligne introduisant cette indentation)

Exercice n°5 - Soit la définition des variables, Que valent les expressions suivantes... Quel est le type du résultat des expressions suivantes :

>>> s = "Joe Student"

>>> sequence = [ "3", "9", 6, 2, "0", 8 ]

>>> dept = { 75:"Paris", 91:

"Essonne" }

>>> pt1 = ( 1, 4)

>>> pt2 = (12, 15)

>>> rect = (pt1,pt2)

>>> s * 2

'Joe StudentJoe Student'

>>> s[4:]

'Student'

>>> dept[75]

'Paris'

>>> rect[0][1]

4

>>> 75 in dept True

>>> max(dept) 91

>>> type(s)

<class 'str'>

>>> type(s[2:5])

<class 'str'>

>>> type(s.upper())

<class 'str'>

>>> type(3/2)

<class 'float'>

>>> type(sequence[1])

<class 'str'>

>>> type(sequence[1:3])

<class 'list'>

>>> type(sequence.index("0"))

<class 'int'>

>>> type(sequence[-1])

<class 'int'>

>>> type(34 <= 12)

<class 'bool'>

>>> type(dept)

<class 'dict'>

>>> type(dept[75])

<class 'str'>

Exercice n°6 - Écrire en Python la fonction f: f(x) = 3x² - 2x + 1 def f(x) :

"""Calcul de 3x² - 2x + 1"""

return 3 * x ** 2 - 2 * x + 1

Exercice n°7 - Qu’affichent les instructions ci-dessous ?

>>> for i in range(3,11,2) : ... print(i)

...

3 5 7 9

Exercice n°8 - Les instructions ci-dessous provoquent une erreur, pourquoi ? Comment la corriger ? long = input("Longueur du rectangle:")

larg = input("Largeur du rectangle:") print ("Surface du rectangle:", long*larg)

input

renvoie une valeur de type

str

, il faut convertir (transtyper) en type

float

.

Exercice n°9 - Les instructions ci-dessous provoquent systématiquement une erreur de syntaxe, pourquoi ? out = input("Nom fichier sortie:")

in = input("Nom fichier entrée:") if out == in :

print("Impossible de travailler sur le même fichier.") in

est un mot réservé du langage, on ne peut pas l'utiliser comme variable.

Exercice n°10 - Écrire les instructions de boucles permettant d’afficher une table de multiplication des nombres de 1 à 9 entre eux. L’affichage se fera simplement par des lignes comme ci-dessous...:

for i in range(1,10) : for j in range(1,10) : print(i,'x',j,'=',i*j)

1 x 1 = 1 1 x 2 = 2 ...

9 x 8 = 72 9 x 9 = 81

Exercice n°11 - Soit une variable globale compteur_appels, contenant un nombre entier et utilisée par ailleurs pour compter combien de fois une fonction est appelée dans un programme.Écrire une fonction

statistiques_appels(), sans paramètre et sans valeur de retour, qui affiche la valeur courante de compteur_appels, puis remet ensuite ce compteur à zéro.

def statistiques_appels():

global compteur_appels

print ("Nombre d'appels", compteur_appels) compteur_appels = 0

Exercice n°12 - Soit une liste :... Écrire une boucle qui remplace, directement dans la liste vals, toutes les valeurs négatives par leur carré.

>>> vals = [ 1, 5, -3, 8, 9, -4, -2, 7 ]

>>> for i,v in enumerate(vals) : ... if v<0 :

... vals[i] = v**2

...

>>> vals

[1, 5, 9, 8, 9, 16, 4, 7]

Correction DS Informatique Scientifique S'2- page 1/2

(2)

Exercice n°13 - Soit un dictionnaire qui contient une correspondance entre certains numéros de départements et le nom correspondant, écrire une boucle parcourant les clés numéros de département par ordre croissant, et affichant à chaque fois numéro et nom de département. Note : Il est interdit de coder "en dur" les numéros des départements, il faut utiliser ceux présents dans le dictionnaire.

>>> depart = { 91:"Essonne", 75:"Paris", 18:"Cher", 46:"Lot", 89:"Yonne" }

>>> for n in sorted(depart.keys()) : ... print(n,"==>",depart[n]) ...

18 ==> Cher 46 ==> Lot 75 ==> Paris 89 ==> Yonne 91 ==> Essonne

Exercice n°14 -Écrire une fonction racinespoly2() prenant trois paramètres a b et c, et retournant un tuple qui contient les racines flottantes de l'équation du second degré ax²+bx+c=0. Le tuple retourné sera vide s’il n’y a pas de racine, ou contiendra une ou deux valeurs flottantes.

from math import sqrt def racinespoly2(a,b,c) : delta = b**2 - 4*a*c if delta < 0 : return () elif delta == 0 : x = -b/(2*a)

return (x,) # tuple d'une seule valeur else :

x1 = (-b - sqrt(delta)) / (2*a) x2 = (-b + sqrt(delta)) / (2*a) return (x1,x2)

Exercice n°15 - Écrire les instructions Python permettant de lire un fichier texte "apache.log", utilisant des caractères ascii, et d’en afficher uniquement les lignes qui contiennent le texte "cracker".

f = open("apache.log","r",encoding="ascii") for ligne in f :

if "cracker" in ligne : print (ligne)

f.close()

Exercice n°16 -Les instructions ci-dessous entraînent une boucle sans fin, pourquoi ? i = 0

while i<100 :

print(i,i**2) j = i+1

La variable i, utilisée dans le test de fin de la boucle, n'est pas modifiée dans celle-ci.

Exercice n°17 - Dans l'appel de la fonction standard open() qui permet d'ouvrir un fichier, à quoi sert le paramètre encoding ?

Permet d'indiquer comment interpréter les caractères accentués.

Exercice n°18 - Dans les méthodes d’une classe, à quoi correspond le premier paramètre self ?

A l'objet (ou l'instance), qui est manipulée (à laquelle la méthode s'applique).

Exercice n°19 - Soit une classe Poly2, utilisée pour stocker les coefficients d’un polynôme du second degré et fournissant les méthodes pour le manipuler. Quelle méthode de Poly2 est appelée lorsque l’on crée un nouvel objet de la classe Poly2 ?

__init__

Exercice n°20 - Le message d’erreur suivant s’affiche: Quel genre d’erreur dois-je rechercher dans mon programme ? Traceback (most recent call last):

File "<string>", line 1, in <fragment>

builtins.IndexError: list index out of range

Un calcul d'index dans une liste dont la valeur est invalide (trop petite / trop grande), et qui est utilisé pour accéder à des éléments de la liste.

Exercice n°21 Quel est l’effet de l’instruction:... que l’on trouve souvent à la fin des modules ?Quel est son usage ? if __name__ == "__main__" :

Permet de n'exécuter le bloc d'instructions du

if

que lorsque le module est le module "principal", c'est à dire le module dont on a demandé l'exécution par Python.

Utilisé entre autres pour les auto-tests des modules outils.

Correction DS Informatique Scientifique S'2- page 2/2

Références

Documents relatifs

Dans cette partie, on se propose de déterminer la période des entiers supérieurs ou égaux à 2, qui sont premiers avec 10, en fonction de leur décomposition en facteurs premiers..

[r]

Embed the control logic state table in a memory array.. op conditional code

3- Ne cessant d’améliorer notre commande, nous avons constaté qu’un phénomène d’oscillation de l’eau autour d’un niveau provoque de nombreux démarrage et arrêt

Elle est d’autant plus importante que la masse de la charge est grande et s’oppose à la mise en mouvement. Elle est caractérisée par le moment d’inertie J, qui s’exprime en

Pour justifier le résultat d’une opération dans une boucle, on doit exhiber un invariant de boucle : c’est une propriété portant sur les variables intervenant dans la boucle et

Les élèves ne disposant pour l’instant que d’informations qualitatives sur l’énergie potentielle et l’énergie cinétique d’un système, le but de

Exercice n°3 - Quelle est la fonction du module math permettant de calculer la racine carrée d’un