Introduction à la programmation Notions d’analyse et d’algorithmes
https://sites.google.com/site/gteinfolink GteInfoLink @gteinfolink
GteInfoLink http://sites.google.com/site/gteinfolink Documents & Fichiers
https://onedrive.live.com/redir?resid=68935A1295531FAA%2117830
https://doc.co/RLPfkd
https://mix.office.com/watch/1jkpt63rc0tqb
boubacar.diarra@live.fr
Programme en langage évolué PROGRAMMATION PROBLEME Description formelle Algorithme ANALYSE Programme en langage évolué PROGRAMMATION Programme en langage machine EDITION DE LIENS COMPILATION Programme exécutable
MOYENNE D’UNE LISTE DE NOMBRES PROBLEME MOYENNE D’UNE LISTE DE NOMBRES
Description «littéraire» On souhaite calculer la moyenne d’une liste de nombres. L’utilisateur tapera ces nombres sur le clavier de son ordinateur. Après avoir initialisé la somme et le nombre d’éléments à zéro, le programme lira les nombres dont il accumulera la somme. Il incrémentera de un le nombre d’éléments saisis à chaque nombre tapé. L’utilisateur tapera le nombre -1 pour indiquer la fin de la liste.
Description pas à pas E1 [Initialiser des variables] Somme 0; NbDeNombres 0 E2 [Lire nombre] Nombre LireNombre() E3 [Est-ce la fin?] Si Nombre égal -1 alors aller au pas E5 E4 [Accummuler] Somme Somme + Nombre NbDeNombres NbDeNombres + 1 Aller au pas E2 E5 [Fin du programme] Afficher Somme / NbDeNombres
ORDINOGRAMME E1 E2 Initialiser Lire nombre E3 E4 Fini? Accumuler E5 Afficher
Algorithme Nombre, Somme = réels NbDeNombre = entier Début Somme 0 NbDeNombres 0 Nombre LireNombre() Tant que Nombre différent de -1 Somme Somme + Nombre NbDeNombres NbDeNombres + 1 Fin tant que Si NbDeNombres superieur à zéro Afficher Somme / NbDeNombres Fin Si Fin
Structure d’un algorithme TITRE Déclarations Début RECETTE Fin
REGLE D’OR UN ALGORITHME = UNE PAGE
Eléments du langage Déclarations Affectation Structures conditionnelles Répétitions En nombre défini En nombre indéfini Procédures Fonctions
DECLARATIONS Entier Réel Caractères Chaînes de caractères Tableaux
CONDITIONNELLES Si <Condition> [Liste d’actions] Fin Si Sinon Fin si
Répétitions en nombre indéfini Tant que <Condition> [Liste d’actions] attention: au moins une action exécutée doit avoir une incidence sur l’évaluation de la condition de contrôle de la boucle Fin tant que
Répétitions en nombre défini Pour <Variable> <valeur initiale> jusqu’à <valeur finale> [par pas de <valeur pas>] Liste d’actions Fin pour <Variable>
Equation du Second degré à une inconnue avec des coefficients réels
Equation du second degré à coefficients réels a,b,c, delta = réels Début Si a est égal à zéro Si b est égal à zéro Si c est égal à zéro Infinité de solutions Sinon Aucune solution Fin Si /* c */ Une solution réelle Fin Si /* b */ delta b*b – 4*a*c Si delta est négatif deux solutions complexes conjuguées sinon Si delta est égal à zéro Une solution réelle double Deux solutions réelles fin Si fin si /* delta */ Fin si /* a */ fin
Jeux de données Test a=0.0,b=0.0 et c=0.0 a=0.0,b<>0.0, et c quelconque a, b, c avec b*b – 4*a*c < 0.0 a, b, c avec b*b – 4*a*c = 0.0 a, b, c avec b*b – 4*a*c > 0.0
Jeu de données Test a=0, b=0, c=0 => a=0, b=0, c=8 => infinité de solutions a=0, b=0, c=8 => aucune solution a= 0, b=8, c=2 => 1 sol. réelle (-0.25) a=1, b=-1, c=-6 => 2 sol. reélles- (-2 et 3) a=1, b=-8, c=16 => 1 sol. réelle (4) a=1, b=2, c=3 => 2 sol.complexes (-1-1.414i et -1+1.414i)
Les outils de la programmation
Ordinogrammes (diagrammes de flux), algorithmes Programmation visuelle : RAPTOR, SNAP, BLOCKLY, etc… Programmation en langages évolués Programmation formelle: VB ,C#, C, C++,F#, FORTRAN,JAVASCRIPT, JAVA, etc...
SNAP http://snap.berkeley.edu/run
RAPTOR http://raptor.martincarlisle.com
RAPTOR Interpréteur d’ordinogrammes (flowcharts) Windows 8/Windows 10, .NET Framework 4.5.
Flowgorithm http://flowgorithm.org/
http://smallbasic.com/default.aspx
Small Basic Windows 10 Windows 8.1 Windows 8 Windows 7
Microsoft Excel Microsoft Office 2016 Microsoft Office 2013
PROGRAMME Flowgorithm ORDINOGRAMME ALGORITHME RAPTOR SNAP SMALLBASIC VBA EXCEL
Titre du formulaire Contrôle Contrôle Contrôle Contrôle Contrôle Contrôle Contrôle Contrôle Contrôle Contrôle
La programmation événementielle UTILISATEUR Programme (Gestionnaire d ’évènements) Contrôle Actions (souris, Clavier ou autre dispositif entrée) Message
LES CONTROLES Contrôles d’affichage(Label,Image) Contrôles de saisie(TextBox) Divers(Frame)
LES CONTROLES Nom Etat (activé, désactivé) Visibilité (visible, caché) Contenu (texte, indicateur, …) Modifiable
And, Or,True, False,CDbl, CStr, Math.Sqr, Mots réservés Public, Private,ByVal, As,Sub,Function, End, If, Then, Else, Dim, Double,String,Len, And, Or,True, False,CDbl, CStr, Math.Sqr,
Propriétés remarquables des contrôles Name Caption Text Visible Enabled
Structures conditionnelles If <Condition> then <Liste d’actions> End If Else
INTERFACE UTILISATEUR(Chaines de caractères) PROGRAMME INTERFACE UTILISATEUR(Chaines de caractères) PROGRAMME (Nombres)
Fonctions de conversion de type Conversion en entier: CInt(<valeur>) Conversion en nombre réel: CDbl(<valeur chaîne>) Conversion en chaîne de caractères CStr(<valeur entière ou réelle>
Longueur d’une chaîne de caractères: Fonction Len Len(x) Fonction racine carrée: Math.Sqr(x)
Opérations sensibles pouvant lancer des exceptions Conversion chaîne de caractères vers nombre Racine carrée nombre négatif Division par zéro
Feuille de route Dessiner le formulaire Nommer les contrôles pouvant être l ’objet d’interaction Créer les gestionnaires d’évènements Ecrire les procédures et fonctions utilisateur Tester le programme
ImageSplash
FrameResult FrameOneReal FrameTwoReals FrameComplex Noms des contrôles Frame FrameResult FrameOneReal FrameTwoReals FrameComplex
Noms des contrôles TextBox TextBoxA,TextBoxB,TextBoxC TextBoxOneReal TextBoxReal1,TextBoxReal2 TextBoxRe1,TextBoxIm1,TextBoxRe2,TextBoxRe2
CommandButtonResolve CommandButtonReset CommandButtonClose Noms des contrôles CommandButton CommandButtonResolve CommandButtonReset CommandButtonClose
Nom des contrôles Image ImageNoSolution ImageInfinity ImageSplash
Gestionnaires d’évènements CommandButtonClose_Click() CommandButtonReset_Click() CommandButtonResolve_Click() TextBoxA_Change() TextBoxB_Change() TextBoxC_Change() UserForm_Initialize()
Procédures Utilisateur clear_results() rearrange_results() check_input() result_infinity() result_nosolution() result_onereal(ByVal x As Double) result_tworeals(ByVal x1 As Double, ByVal x2 As Double) result_complex(ByVal x1 As Double, ByVal im1 As Double, ByVal x2 As Double, ByVal im2 As Double)
Feuille de route Dessiner le formulaire Nommer les contrôles pouvant être l ’objet d’interaction Créer les gestionnaires d’évènements Ecrire les procédures et fonctions utilisateur Tester le programme
https://blockly-games.appspot.com/?lang=fr BLOCKLY https://blockly-games.appspot.com/?lang=fr