Examen python PCSI 2013-2014 DS N 1

Examen PCSI 2013-2014 DS N 1

Télécharger PDF

DS N° 1 PCSI 2013-2014

CLASSES PREPARATOIRES AUX GRANDES ECOLES : CPGE OMAR IBN LKHATTAB Option : Physique Chimie Science d’Ingénieur (PCSI)

Etablissement : CPGE OMAR IBN LKHATTAB

DEVOIR SURVEILLE N°1

V 1.2014.TRIMESTRE.N°2

DATE : 17/02/2014

DUREE : 2H00MIN

Enseignante : L.OUSTOUH

Les élèves sont informés que la précision des raisonnements algorithmiques ainsi que le soin apporté à la rédaction et à la présentation des copies seront des éléments pris en compte dans la notation. Il convient en particulier d’appeler avec précision les références des questions abordées. Si au cours de l’épreuve, un élève repère ce qui peut lui sembler être une erreur d’énoncé, il le signale sur sa copie et poursuit sa composition en expliquant les raisons des initiatives qu’il est amené à prendre.

Toutes utilisations du correcteur blanc seront sanctionnées.

Note :

  • toutes les réponses seront écrites en python.
  • Il n’est pas autorisé d’utiliser les fonctions prédéfinies de python pour la gestion des listes.

Exercice 1

  1. Ecrivez une fonction flou(T,n) qui prend en paramètre un tableau T et qui modifie T de sorte que pour tout entier k, la nouvelle valeur de T[k] soit égale à la moyenne entre les anciennes valeurs de T[k-1] et T[k+1]. Par convention on fixe T[-1]=T[n]=0 où n est la taille de T.
  2. Par exemple si T=[6,0,3,1,1], alors après exécution de flou(T,n), T vaudra [0.0,4.5,0.5,2.0,0.5]

  3. Ecrivez une fonction occurrence(T,n,r) qui retourne le nombre d’occurrences de r.
  4. Ecrivez une fonction tri_bulle(T,n) qui trie le tableau T de taille n en ordre décroissant.
  5. Ecrivez une fonction test_elt(T,n,e) qui teste si un élément e est présent ou non dans le tableau T de taille n trié en ordre décroissant ; utilisez la stratégie de recherche par dichotomie.

Exercice 2

On souhaite pouvoir déterminer le jour de la semaine (lundi, mardi, mercredi, jeudi, …) d’une date donnée. Pour cela, on peut utiliser la congruence de Zeller, qui est une formule qui donne la date d’un jour donné. Cette formule est définie par :

  • h est le jour de la semaine codé avec la convention : 0=samedi, 1=dimanche, 2=lundi, …
  • q est le jour du mois
  • m est le mois de l’année codé avec la convention : 3=mars, 4=avril, 5=mai,…, 12=décembre, 13= janvier, 14=février.
  • k est l’année du siècle (année mod 100)
  • j est le siècle ( )
  1. écrivez une fonction jour_de_la_semaine(T) qui prend en paramètre un tableau T de trois entiers où :
    • T[0] est le jour du mois.
    • T[1] le mois de l’année en utilisant le codage usuel (janvier=1, février=2, …, décembre=12)
    • T[2] est l’année.

    et qui renvoie le jour de la semaine codée en utilisant le codage usuel (1=lundi, 2=mardi, …, 7=dimanche)

  2. Ecrivez une fonction affiche_jour(T) qui affiche le jour de la date passée en paramètre en utilisant les mêmes paramètres et les mêmes conventions que la fonction jour_de_la_semaine(T).

Exercice 3

On souhaite calculer les coefficients qui apparaissent lors du développement de = =

  1. Proposez une implémentation de la fonction binomial_1(n,i) qui prends en paramètres deux entiers n et i et qui renvoie
    1. Ecrivez un programme qui calcule la somme S=
    2. Vérifiez que votre programme est juste :
      • Démontrez que votre programme se termine.
      • Vérifiez que S= est un invariant de boucle.
      • Estimez la complexité du programme.
  2. Démontrez que pour tout
  3. Ecrivez une fonction binomiaux(T,n) qui modifie un tableau T contenant n+1 éléments de sorte que T[i]=
  4. En utilisant la formule de récurrence précédente, écrivez une fonction calcul_binomiaux(T,U,n) qui prends en paramètre un tableau T à n+1 éléments vérifiant T[i]= et modifie un tableau U à n+2 éléments de sorte que U[i]=
  5. Exemple :

    • si T=[1] alors U=[1,1]
    • Si T=[1,1] alors U=[1,2,1]
    • Si T=[1,2,1] alors U=[1,3,3,1]
    • Si T=[1,3,3,1] alors U=[1,4,6,4,1]
  6. Ecrivez une fonction binomial_2(n,i) qui calcule sans utiliser de factorielles.

FAQ

1. Comment écrire une fonction en Python pour calculer la moyenne de deux valeurs ?

Pour écrire une fonction en Python qui calcule la moyenne de deux valeurs, vous pouvez utiliser la syntaxe suivante :

def moyenne(a, b):
    return (a + b) / 2

2. Qu'est-ce que la recherche par dichotomie ?

La recherche par dichotomie est une méthode de recherche qui consiste à diviser en deux une liste triée pour trouver un élément spécifique. Elle est plus efficace que la recherche linéaire pour les grandes listes.

3. Comment utiliser la formule de Zeller pour déterminer le jour de la semaine ?

La formule de Zeller utilise des paramètres spécifiques pour déterminer le jour de la semaine d'une date donnée. Elle est basée sur des congruences mathématiques et nécessite des ajustements pour les mois de janvier et février.

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne