programme fonctionnel
Les blocs

Un programme fonctionnel Python contient les blocs suivants dans l’ordre :

_images/exemple.PNG

Remarques

Il est important de respecter l’indentation dans les boucles et dans la définition des fonctions locales.

Le nom des variables doit être explicite.

L’utilisateur doit être guidé de façon précise.

Les tags
_images/python15p01.png
Programme fonctionnel

# 1101 programme fonctionnel.py # ----------Importation des modules-----# from tkinter import * from math import * import time #--------Définition des fonctions----------# def creer_fenetre(fenetre,taille,titre): #construit la fenêtre fenetre.geometry(taille) fenetre.title(titre) #fenetre.iconbitmap(icone) return fenetre def nettoie_canevas(donnees): #nettoie le canevas donnees[1].delete(ALL) def dessine_canevas(donnees,a): #dessine dans le canevas nettoie_canevas(donnees) ft="arial 40 bold" f,c,l,h=donnees[0],donnees[1],donnees[2],donnees[3] liste1=[15,15,30,50,l-50,h/2-80,l-10,20,35,h-30,35,h-50,l-70,h/2-30] liste=[10,10,10,h/2,l-10,h-40,l-10,10,l-30,10,l-30,h-45,50,h/2,20,10] if a==1: c.create_rectangle(10,10,l-10,h-10,fill="khaki") c.create_polygon(liste,fill="red",outline="gold",smooth=1) t_menu=c.create_text(l/2,3*h/4,text="MENU",fill="red",tag="ZERO",font=ft) c.tag_bind("ZERO", "<Button-1>",lambda utile:affiche_exemple(donnees)) if a==2: c.create_rectangle(10,10,l-10,h-10,fill="pale green") c.create_polygon(liste1,fill="blue",outline="gold",smooth=1) t_menu=c.create_text(l/2,3*h/4,text="MENU",fill="red",tag="ZERO",font=ft) c.tag_bind("ZERO", "<Button-1>",lambda inutile:affiche_exemple(donnees)) def quitter(donnees): #fermeture de la fenêtre donnees[0].destroy() def affiche_exemple(donnes): #Exemple de menu où il suffit de cliquer sur le texte #donnees=[fenetre,can,largeur,hauteur] f,c,l,h=donnees[0],donnees[1],donnees[2],donnees[3] nettoie_canevas(donnees) cl,ft,ta,tn="yellow","arial 40 bold","Affiche dessin 1!","Affiche dessin 2!" me="MENU" t_nettoie=c.create_text(l/2,2*h/4,text=tn,fill=cl,tag='DEUX' ,font=ft) t_dessin=c.create_text(l/2,h/4,text=ta,fill="yellow",tag='UN' ,font=ft) t_quitter=c.create_text(l/2,3*h/4,text="Quitter",fill="red",tag="TROIS",font=ft) c.tag_bind("UN", "<Button-1>",lambda inutile:dessine_canevas(donnees,1)) c.tag_bind("DEUX", "<Button-1>",lambda inutile:dessine_canevas(donnees,2)) c.tag_bind("TROIS", "<Button-1>", lambda utile:quitter(donnees)) #----------Programme Principal-------------# fenetre=Tk() fenetre.title('Programme type') largeur=int(fenetre.winfo_screenwidth()/4) hauteur=int(fenetre.winfo_screenheight()/3) taille=str(largeur)+"x"+str(hauteur) creer_fenetre(fenetre,taille,"Programme fonctionnel") can=Canvas(fenetre,width=largeur,height=hauteur,bg='light blue') can.grid(row=0,column=0) donnees=[fenetre,can,largeur,hauteur] f,c,l,h=donnees[0],donnees[1],donnees[2],donnees[3] ft="arial 40 bold" t_menu=c.create_text(l/2,3*h/4,text="MENU",fill="red",tag="ZERO",font=ft) c.tag_bind("ZERO", "<Button-1>",lambda utile :affiche_exemple(donnees)) fenetre.mainloop()
_images/programmefonctionnel01.PNG
_images/programmefonctionnel02.PNG
_images/programmefonctionnel03.PNG
_images/programmefonctionnel04.PNG
DEPLACEMENT BALLE :

Déplacer

Pour déplacer un objet dans un canevas, il faut tenir compte du repère dans lequel évolue l’objet.

1202 deplacement balle.py

Voici l’exemple d’une balle de diamètre 30 qui se déplace du point \(\mathbf{(0,300)}\) au point \(\mathbf{(1000,300)}\).

La balle se déplace horizontalement ou verticalement et change de direction à chaque point.

Premier point :

(0 ; 300 ), abscisse = 0 , ordonnée = 300.

Deuxième point :

(270 ;300), abscisse = 270 , ordonnée = 300.

Troisième point :

(270 ;300), abscisse =270 , ordonnée = 300

Quatrième point :

((530 ;170), abscisse =530 , ordonnée = 170

Cinquième point :

(530 ;300), abscisse = 530 , ordonnée = 300.

Sixième point :

(1000 ; 300), abscisse = 0 , ordonnée = 300.

_images/horizontal.PNG
Déplacement balle et plateau

_images/image239.png _images/image240.png
video mp4 by EasyHtml5Video.com v3.9.1