DIGICOM


Algorithme & programmation

C'est quoi programmer ?

Programmer

C'est quoi programmer ?

Programmer, c'est créer la logique d'un programme et traduire cette logique en un code compréhensible par la machine.

La logique d'un programme est appelée un algorithme

Algorithmes

Algorithmes

  • Algorithme d'Euclide
    Recherche du plus grand diviseur commun de deux nombres naturels
    - 300

Algorithmes

  • Algorithme d'Euclide
    Recherche du plus grand diviseur commun de deux nombres naturels
    - 300
  • Algorithme d'Eratosthène
    Déterminer les nombres premiers
    - 200

Algorithmes

  • Algorithme d'Euclide
    Recherche du plus grand diviseur commun de deux nombres naturels
    - 300
  • Algorithme d'Eratosthène
    Déterminer les nombres premiers
    - 200
  • Algorithme d'Ada Lovelace
    Algorithme de détermination des nombres de Bernouilli
    1840

Algorithmes

  • Algorithme d'Euclide
    Recherche du plus grand diviseur commun de deux nombres naturels
    - 300
  • Algorithme d'Eratosthène
    Déterminer les nombres premiers
    - 200
  • Algorithme d'Ada Lovelace
    Algorithme de détermination des nombres de Bernouilli
    1840
  • Algorithme du Simplexe
    Algorithme de résolution des problèmes d'optimisation linéaire
    1947

Algorithmes

  • Algorithme d'Euclide
    Recherche du plus grand diviseur commun de deux nombres naturels
    - 300
  • Algorithme d'Eratosthène
    Déterminer les nombres premiers
    - 200
  • Algorithme d'Ada Lovelace
    Algorithme de détermination des nombres de Bernouilli
    1840
  • Algorithme du Simplexe
    Algorithme de résolution des problèmes d'optimisation linéaire
    1947
  • Algorithme du Page Rank
    Algorithme de classifiaction de la pertinence d'une page WEB
    1996

Le crêpier psycho-rigide

Activité inria & pixees

Algorithmes

crêpier psycho-rigide

A la fin de sa journée, un crêpier dispose d’une pile de crêpes désordonnée. Le crêpier étant un peu psycho-rigide, il décide de ranger sa pile de crêpes, de la plus grande (en bas) à la plus petite (en haut).

Algorithmes

Pour cette tâche, le crêpier peut faire une seule action : glisser sa spatule entre deux crêpes et retourner le haut de la pile.

Algorithmes

Pour cette tâche, le crêpier peut faire une seule action : glisser sa spatule entre deux crêpes et retourner le haut de la pile.

Comment doit-il procéder pour trier toute la pile ?

Algorithmes

Un algorithme est suite non ambiguë d’instructions ou d’opérations permettant de résoudre un certain type de problème.

Pour trouver un algorithme de résolution d'un type de problème, il faut souvent le décomposer en sous-problèmes plus simples à résoudre.

Langage de programmation

Comment donner des instructions à la machine ?


Langage

Le langage natif d'un processeur, celui qu'il peut comprendre, est appelé le langage machine.

C'est une suite de 0 et de 1 (des bits) spécifique à un processeur.

Langage

Le rôle d'un langage de programmation est de faire la traduction entre un langage compréhensible par l'homme et celui de la machine.
Source : openclassrooms.com

ENIAC - 1944

Programmeuse


Grace Hopper


À partir de 1957, Grace Hopper, employée par la firme IBM, défend l’idée qu’un programme devrait être écrit dans un langage proche du langage naturel plutôt qu’en langage machine et sera considérée comme l’une des principales inspiratrices du langage COBOL.

Langage

Python



Python est un langage interprété, c'est à dire que le code est lu ligne par ligne par un interpréteur.
L'interpréteur va passer à travers chaque ligne du code Python pour le traduire en langage machine et l'éxecuter.

PIXEL ART

Pixel Art

Le pixel art désigne une composition numérique comme base des carrés avec généralement un nombre de couleurs limité.

Pixel Art

Objectif


faire un carré rouge

Le module turtle
  • forward(nb) avancer de nb pixels,
  • backward(nb) reculer de nb pixels,
  • left(nb)pivoter à gauche de nb°,
  • right(nb)pivoter à droite de nb°.
  • pencolor(color)changer la couleur du stylo.
  • fillcolor(color)changer la couleur de l'interieur du tracé.
  • begin_fill()débuter un tracé plein.
  • end_fill()terminer un tracé plein.

Editeur


VARIABLES

Variables

Problèmatique


Comment changer facilement la taille du carré ?

Editeur


Variables

Rôle d'une variable

A l'intérieur d'un programme, il est souvent nécessaire de pouvoir en conserver et réutiliser une valeur, par exemple le résultat d’un calcul.

Pour mémoriser ces valeurs on utilisera le principe des variables.

Variables

affectation

En Python, les variables fonctionnent comme des étiquettes. Quand on assigne une valeur à une variable, on pose une étiquette avec un nom sur une valeur.
L'affectation s'effectue à l'aide du signe =

nom_variable = expression

Variables

affectation

Le mécanisme d'affectation des variables de Python effectue 2 étapes succéssives :


  1. évalue l'expression à droite du signe =


Variables

affectation

Le mécanisme d'affectation des variables de Python effectue 2 étapes succéssives :

  1. évalue l'expression à droite du signe =
  2. il lui attribut le nom qui est à gauche du signe =


Variables

Affectation

a = 1

Variables

Réaffectation

a = 2


Variables

Double affectation

b = 2


Variables

Règles de nommage (Obligatoire)



  • Ne pas contenir un signe opératoire + - * / %, d'espace ni le caractères # (il est réservé aux commentaires)
  • Doit commencer par une lettre
  • Ne doit pas être un mot clé Python (if, in, as, ...)

Variables

Règles de nommage (Bonnes pratiques)



  • Le nom des variables doivent être minuscule
  • Les mots sont séparés par des _ (espace souligné)
  • Les noms choisis sont explicites

Variables

Type

Affectation Type Python Description
a = 2 int entiers relatifs
a = 3.5 float nombres en représentation flottante
a = "DIGICOM" str chaîne de caractères (entre " )
a = True bool booléen

Variables

Affichage

L'instruction print permet d'imprimer à l'écran des caractères. Cette instruction peut être utisée pour connaitre la valeur d'une variable.

print(nom_variable )

Variables

Exemple


nom  = "Guido"
print("Bonjour")
print(nom)
        

Variables

Exemple

Il peut être utile de placer une expression à évaluer dans une chaine de caractère.
Python possède un mécanisme nommé formated string pour répondre à ce problème. Le chaîne de caractère doit commencé par un f et l'expression à évaluer est placée entre accolade {...}

Variables

Exemple


print(f"2 + 2 = {2+ 2}")
              

Variables

Entrée

Dans certains cas, il peut être nécessaire de demander des informations à l’utilisateur.
Pour cela, Python dispose d'une instruction : input.
Cette instruction va renvoyer une chaîne de caractères que l'on pourra stocker dans une variable.

Variables

Entrée


nom = input("Entrer votre nom :\n")
print(f"Bonjour {nom}, comment allez-vous ?")  

Variables

Entrée


nombre = input("Entrer un  nombre :\n")   
print(5*nombre)

Variables

Transtypage

Python est doté d'un mécanisme qui permet, quand c'est possible, de changer le type d'une variable.
Par exemple
Instruction Description
int(...) Transforme quans c'est possible l'objet en objet de type int
str(...) Transforme quans c'est possible l'objet en objet de type str
float(...) Transforme quans c'est possible l'objet en objet de type float

Variables

Entrée


nombre = int(input("Entrer un  nombre :\n"))   
print(5*nombre)

BOUCLES

Boucles

Problèmatique


Comment réduire la taille de ce code ?

Editeur


Boucles

Rôle d'une boucles

Les boucles font partie des grandes structures de base de l’algorithmique, et donc de la programmation.
Il s’agit de répéter une séquence d’instructions un certain nombre de fois.
On dit que l’on réalise une itération de la boucle à chaque fois que la séquence d’instruction est exécutée.

Boucles

Boucle for

En Python, lorsque que l’on connaît le nombre de répétitions à effectuer, on utilise généralement la boucle itérative for
A chaque itération, Python va prendre un élément de l’itérable et de la boucle à chaque fois que le corps de la boucle est exécuté. Le bloc d’instructions à répéter est délimité par l’indentation.

for variable in itérable:
    bloc instructions

Boucles

Exemple


for _ in range(5):
    bloc_instructions_1
bloc_instruction_2
            

range

L'instruction range



L'instruction range(n) permet d'obtenir un iterrable contenant les entiers de 0 à n-1.

range(entier)

Boucles

Exemple


for nombre in range(5):
    print(nombre)
            

range

Les options de l'instruction range



L'intruction range admet 2 options :
  • On peut définir le début de l'instruction range, ainsi
    range(3,9)
    donnera un itérable qui contiendra l'ensemble des entiers de 3 à 8 inclus c'est à dire de 3, 4, 5, 6, 7 et 8.

range

Les options de l'instruction range



L'intruction range admet 2 options :
  • On peut définir le début de l'instruction range, ainsi
    range(3,9)
    donnera un itérable qui contiendra l'ensemble des entiers de 3 à 8 inclus c'est à dire de 3, 4, 5, 6, 7 et 8.
  • On peut aussi définir le pas de l'instruction range ainsi
    range(3, 12, 2)
    donnera un iterable qui contiendra les entiers de 3 à 11 en allant de 2 en 2 c'est à dire 3,5, 7, 9 ,11.

Titre du popup

Message du popup !