Codage Indenter le code Limiter la portée des variables Traiter les erreurs en premier Utiliser le switch au delà de 3 tests en cascades Ne jamais utiliser.

Slides:



Advertisements
Présentations similaires
La boucle for : init7.c et init71.c
Advertisements

L’ interruption de boucle
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Introduction à la programmation (Java)
Base de programmation Script unity en c#.
Instruction sélective switch-case Instruction répétitive do-while For
Miguel Garzon CrUise Lab - SITE. Introduction Data Types and Sizes Constants Logic Operators Type conversions Example.
IFT 6800 Atelier en Technologies d’information
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
ECP – Option SA Henri Fallon
Les Opérateurs Ils régissent toutes les opérations ou transformations sur les valeurs des variables. Opérateur d'affectation Opérateurs arithmétiques Opérateurs.
L’essentiel du langage C
2.1 - Historique Chapitre 2 : Introduction au langage C++
3 Les instructions. Cours 32 Plan du cours 3 Instruction Bloc Portée L’alternative Affectations =, +=, *=… Comment comparer –Comparer des réels –Comparer.
SIF-1053 Architecture des ordinateurs
Un survol du language C.
Cours n° 3 Traitements en Java
Structures de contrôle
PRO-1027 Programmation Scientifique en C
Tableaux et Pointeurs Chaînes de Caractères Programmation Impérative II.
CINI – Li115 1 Semaine 4 Révisions ● Questions de cours ● Types des expressions ● Déclaration de variables ● Instruction conditionnelle et boucles ● Structure.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
1 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 27/09/2016 Algorithmique & Langage.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
1 Bonnes Pratiques ● Indentation ● Présentation ● Initialisation des variables ● Conditions ● Gestion d'erreurs ● Conventions.
UE2 - M22 Licence acoustique
Tableaux en C Mardi 2/05.
Algorithme de recherche
Masques et opérateurs de décalage
>>> Amphi Python
Synthèse TP 2 Codeblock 1 Les objectifs de ce tp sont :
Ajouter le code dans une page html
Les Instructions Itératives (Les Boucles)
Introduction au Langage Pascal
Cours de programmation en langage C (Norme ANSI)
Langage C Structure d'un programme Types Lire Ecrire Tester
Représentation des nombres réels
Quelques Termes INFORMATIQUE ? ORDINATEUR ( Système Informatique)?
Chapitre 1 nombres, chaînes de caractères, booléens, et VARIABLES
Session 1 6 mars 2017 Plateforme ICONICS Justine Guégan
« Un langage de programmation est une convention pour donner des ordres à un ordinateur. Ce n’est pas censé être obscur, bizarre et plein de pièges subtils.
Pointeurs et langage C.
Opérateurs Toute donnée informatique est stockée en mémoire sous la forme d'une combinaison de bits (mot machine). Les opérateurs bits permettent de modifier.
Algorithmique et programmation de modèles numériques
Instructions de contrôle
AO (Architecture des ordinateurs)
Ajouter le code dans une page html
Session 1 31 mai 2017 Plateforme ICONICS Justine Guégan
SIF-1053 Architecture de ordinateurs
Arguments de la ligne de commande
Science du traitement rationnel de l'information
« Un langage de programmation est une convention pour donner des ordres à un ordinateur. Ce n’est pas censé être obscur, bizarre et plein de pièges subtils.
Coding party Écrire un programme qui élève un nombre au carré Écrire un programme qui teste si un nombre est pair Écrire un programme qui calcule la factorielle.
Coding party Écrire un programme qui élève un nombre au carré Écrire un programme qui teste si un nombre est pair Écrire un programme qui calcule la factorielle.
Programmation en C++ C++ de base
Synthèse 8 : Langage informatique
Exercice PHP DEUST TMIC
Eléments de base du langage C
MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE SCIENTIFIQUE
Le Java premiers pas.
B.Shishedjiev - Informatique
Sylvie DELAËT 2002 Architecture des machines Bienvenus en Amphi d’Architecture des Machines.
Le programme informatique L’algorithme Le codage
Programmation par Objets et Java
Quelle est la valeur de S après exécution des instructions suivantes :
Le langage C# : Partie 1.
Yves Chevallier & Andrew Watson
Python Nicolas THIBAULT
Eléments de base du langage C
PROGRAMMATION SOUS R. PRESENTE PAR : ACHETTOU ISMAIL LAARICH TARIQ ENCADRE PAR : Pr. EXPOSÉ SUR LA PROGRAMMATION SUR R 2.
Transcription de la présentation:

Codage Indenter le code Limiter la portée des variables Traiter les erreurs en premier Utiliser le switch au delà de 3 tests en cascades Ne jamais utiliser l'instruction continue Utiliser des constantes pour les nombres Ne pas écrire du code redondant Ne pas écrire des fonctions de plus de 100 lignes Utiliser les commentaires (pertinents !) Respecter les règles d'écriture

Codage :: Indentation du code int eau = stock; int soda = stock; int choix; do { printf("eau : %d, soda : %d\n", eau, soda); printf("choix boisson (1 : eau, 2 : soda) :"); scanf("%d", &choix); if ( choix == 1 ) { if ( eau ) { eau--; printf("prendre bouteille eau\n"); } else if ( choix == 2 ) if ( soda ) { soda--; printf("prendre bouteille soda\n"); } while ( eau || soda ); int eau = stock; int soda = stock; int choix; do { printf("eau : %d, soda : %d\n", eau, soda); printf("choix boisson (1 : eau, 2 : soda) :"); scanf("%d", &choix); if ( choix == 1 ) { if ( eau ) { eau--; printf("prendre bouteille eau\n"); } else if ( choix == 2 ) if ( soda ) { soda--; printf("prendre bouteille soda\n"); } while ( eau || soda );

Codage :: portée des variables #define max_size 6000 unsigned int liste[max_size]; unsigned int i, j; unsigned char permut; static void bubble_sort(unsigned int liste[]) { j = max_size; do { permut = false; for (i = 0; i < j - 1; i++) if ( liste[i] > liste[i+1]) permut = swap(&liste[i], &liste[i+1]); j--; } while ( j > 0 && permut ); } #define max_size 6000 static void bubble_sort(unsigned int liste[]) { unsigned int i, j = max_size; unsigned char permut; do { permut = false; for (i = 0; i < j - 1; i++) if ( liste[i] > liste[i+1]) permut = swap(&liste[i], &liste[i+1]); j--; } while ( j > 0 && permut ); }

Codage :: traitement des erreurs printf("Enter frame (10 bits): "); scanf("%s" , data); // parcours de la trame for (i = 0 ; i < 10 ; i++) { // vérification des bits if ( data[i] != '0'&& data[i] != '1' ) { error = true ; if ( i == 0 ) printf("start bit error\n"); else if ( i == 9 ) printf("stop bit error\n"); else printf("frame bit error\n"); } else... if ( error ) return -1; printf("Enter frame (10 bits): "); scanf("%s" , data); // vérification bit de start if ( data[0] != '0' ) { printf("start bit error\n"); return -1; } // vérification bit de stop if ( data[9] != '1' ) { printf("stop bit error\n"); // parcours de la trame for (i = 1 ; i < 9 ; i++) { // vérification des bits if ( data[i] != '0'&& data[i] != '1' ) //... else...

Codage :: if else en cascade // parcours de la trame for (i= 0 ; i < 10 ; i++) { // vérification des bits if ( data[i] != '0'&& data[i] != '1' ) { error = true ; if ( i == 0 ) printf("start bit error\n"); else if ( i == 9 ) printf("stop bit error\n"); else printf("frame bit error\n"); } else... // parcours de la trame for (i= 0 ; i < 10 ; i++) { // vérification des bits if ( data[i] != '0'&& data[i] != '1' ) { error = true ; switch (i) { case 0 : printf("start bit error\n"); break; case 9 : printf("stop bit error\n"); default : printf("frame bit error\n"); } else...

Codage :: utilisation de constantes static char *caesar(char *src, char *dst, const int size) { // transformation majuscules majuscules(src); // transformation lettres -> chiffres int num, i = 0; while ( src[i] && i < size ) { num = src[i] - 'A'; // transformation lettres -> chiffres num = modulo(num + 2, 26); // chiffrement dst[i++] = 'A' + num; } return dst; const int mod = 26; // nombre de lettres de l'alphabet const int offset = 2; // décalage static char *caesar(char *src, char *dst, const int size) { // transformation majuscules majuscules(src); // transformation lettres -> chiffres int num, i = 0; while ( src[i] && i < size ) { num = src[i] - 'A'; // transformation lettres -> chiffres num = modulo(num + offset, mod); // chiffrement dst[i++] = 'A' + num; } return dst;

Codage :: commentaires pertinents static const unsigned int byte = 8; static char *bitmap(char *buffer, const unsigned char c) { // fonction bitmap unsigned int i; // on boucle for (i = 0; i < byte; i++) // on transforme la valeur buffer[i] = c & (unsigned int) pow(2, byte - i - 1) ? '1' : '0' ; buffer[byte] = 0; // dernière valeur à 0 // retourne la valeur return buffer; } static const unsigned int byte = 8; static char *bitmap(char *buffer, const unsigned char c) { // transforme un caractère ASCII en binaire // in : chaîne binaire vide, caractère ASCII // out: chaîne binaire de la conversion unsigned int i; // on boucle sur la taille d'un octet (8 bits) for (i = 0; i < byte; i++) // ET logique entre la caractère ASCII et une valeur binaire // valeur binaire = 2^(i-1) soit 2^[0 ; 7] // le masque doit retourner '1' ou '0' buffer[i] = c & (unsigned int) pow(2, byte - i - 1) ? '1' : '0' ; buffer[byte] = 0; // une chaîne se termine par 0 return buffer; }

Approche Lire du code Ré utiliser du code Relire son code Optimiser son code Évaluer son code

Méthodes de conception Descendante Programmation procédurale Analyse cartésienne (fonctions) Langage C, Pascal, … Ascendante Programmation Orientée Objet Analyse systémique (relations) Langage C++, PHP, Python, ...

Méthodes de conception :: descendante