• 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 fonction du module math permettant de calculer la racine carrée d’un nombre ? sqrt

Exercice n°4 - Qu’est-ce qu’une “ instructions composé ”, où en trouve-t-on dans les programmes ?

Plusieurs instruction sur plusieurs lignes, dans un bloc indenté (le : en fin de ligne introduisant cette indentation). Trouvé dans les instructions de boucles while/for, les tests if, les définitions de fonctions...

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"

>>> vals = [ "8", "9", 2, 0, 2,

"0", 3 ]

>>> niveaux = { 0:"na", -1:7.8, 4:11.7, 2:0.3, -3:-7.12 }

>>> A = ( -4, 11.3)

>>> B = ( 9, 7.3)

>>> rectangle = (A,B)

>>> s[:4] * 2 'Joe Joe '

>>> niveaux[-1]

7.8

>>> vals[4]

2

>>> rectangle[1]

(9, 7.3)

>>> rectangle[0][1]

11.3

>>> 7.8 in niveaux False

>>> max(niveaux) 4

>>> niveaux[2]

0.3

>>> niveaux[-1]

7.8

>>> type(s)

<class 'str'>

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

<class 'str'>

>>> type(s.lower())

<class 'str'>

>>> type(9/8)

<class 'float'>

>>> type(vals[1])

<class 'str'>

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

<class 'list'>

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

<class 'int'>

>>> type(niveaux)

<class 'dict'>

>>> type(34 == 12)

<class 'bool'>

>>>

Exercice n°6 - Écrire en Python la fonction mathématique f: f(a,d) = d sin(3ad) Ne pas oublier les imports nécessaires.

from math import sin def f(a,d) :

"""Calcul de d.sin(3ad)"""

return d * sin(3*a*d)

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

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

...

1 4 7 10

Exercice n°8 - Les instructions ci-dessus provoquent une erreur, pourquoi ? Comment la corriger ? nom = input("Quel est votre nom:")

age = int(input("Quel est votre age (ans):"))

print ("Bonjour " + nom + ", agé de " + age + " ans")

age

est un entier, on ne peut le concaténer avec une chaîne, il faut le convertir (transtyper) en type

str

.

Exercice n°9 - Les instructions ci-dessus provoquent systématiquement une erreur de syntaxe, pourquoi ? chrome = float(input("Densité du chrome:"))

or = float(input("Densité de l'or:")) if chrome > or :

print("Le chrome est plus lourd que l'or.") or

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 la liste des noms des cases d’un jeu de bataille navale (“touche/coulé”) de 12x12, c’est à dire les combinaisons entre une lettre de A à L et un nombre de 1 à 12. L’affichage se fera simplement par des lignes comme ci-dessous::

>>> for l in 'ABCDEFGHIJKL':

... for n in range(1,13):

... print(l+str(n))

A1 A2 ...

L11 L12

Exercice n°11 - Soit une variable globale couleur_feu, contenant une chaîne qui indique la couleur d’un feu tricolore.

Écrire une fonction passage_au_vert(), sans paramètre et sans valeur de retour, qui affiche la couleur actuelle du feu, indique le changement d’état, puis stocke la chaine "VERT" dans la variable sus-citée pour mémoriser cet état.

def passage_au_vert():

global couleur_feu

print ("Feu au:",couleur_feu,"passage au VERT.") couleur_feu = "VERT"

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

(2)

Exercice n°12 - Soit une liste :... Écrire une boucle qui remplace, directement dans la liste prenoms, chaque prénom par sa version avec une majuscule au début (noter la méthode title() des chaînes). Après l’exécution de la boucle, la liste prenoms devrait donc contenir :

>>> prenoms = [ "jean", "yacine", "andrew",

"jerome", "li" ]

>>> for i in range(len(prenoms)):

... prenoms[i] = prenoms[i].title()

...

>>> prenoms

['Jean', 'Yacine', 'Andrew', 'Jerome', 'Li']

Exercice n°13 - Soit un dictionnaire qui contient une correspondance entre certains numéros de départements et le nom correspondant, Écrire une boucle permettant d’afficher les noms des départements triés par ordre alphabétique.

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

>>> for n in sorted(depart.values()):

... print(n) ...

Cher Essonne Lot Paris Yonne

Exercice n°14 -Écrire une fonction droite() prenant quatre paramètres x1, y1, x2 et y2, et retournant un tuple contenant deux valeurs : la pente et l’ordonnée à l’origine de la droite passant par les points (x1,y1) et (x2,y2). La fonction retournera un tuple vide si les abscisses sont confondues.

from math import sqrt def droite(x1,y1,x2,y2):

if x1==x2:

return () a = (y2-y1)/(x2-x1) b = y1 -a*x1

return (a,b)

Exercice n°15 - Écrire les instructions Python permettant de lire un fichier texte "index.html", utilisant des caractères encodés en iso-8859-1, et d’en afficher uniquement les lignes qui contiennent le caractère "@" afin de

rechercher les adresses email.

f = open("index.html","r",encoding="iso-8859-1") for ligne in f :

if "@" in ligne : print (ligne) f.close()

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

while i>=1 or i<=100 : print(i,i**2) i = i+1

Le test logique ou est toujours vrai car il y a toujours une des deux conditions qui est vérifiée.

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

Permet d'indiquer quel genre d'opérations on veut effectuer sur le fichier (lecture, écriture, ajout...).

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 affiche par print() un objet de la classe Poly2 ?

__str__

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.KeyError: 8

Un dictionnaire qui ne contient pas une clé, a-priori attendue, de valeur 8.

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

Une puissance d'un nombre réel est positive si l'exposant est un nombre entier pair. En conséquence, il n'est pas possible de définir la racine d'un nombre réel négatif pour un

Sachant que l’aire d’une sphère est donnée par la formule 4πR², quelle est la valeur exacte de son rayon?. En donner l’arrondi

10  Encadre chacun des nombres entre deux carrés parfaits successifs puis leur racine carré entre deux nombres entiers successifs.c. Calculer une

La racine carrée d'un nombre b est le nombre positif noté √ b qui a pour carré b. Un nombre négatif n'a donc pas de racine carrée car il ne peut pas être

Le sujet est (en principe) trop long pour le temps imparti, il est donc conseill´e de traiter en priorit´e les questions que l’on sait faire en en indiquant clairement la r´ef´erence

10 Encadre chacun des nombres entre deux carrés parfaits successifs puis leur racine carré entre deux nombres entiers successifs?.

10 Encadre chacun des nombres entre deux carrés parfaits successifs puis leur racine carré entre deux nombres entiers successifs?.

Les remarques pr~c~dentes prouvent que le contingent en M est alors r~duit s deux demi-plans issus de la paratingente seconde en _Mr, ces deux demi-plans