Algorithmique et langage C. Et me la renvoyer bien sûr… Developpez.com, wiki, siteduzero et autre sont les bienvenus… (les questions sont en orange) C’est.

Slides:



Advertisements
Présentations similaires
GEF 243B Programmation informatique appliquée
Advertisements

Premier programme en C :
Les fonctions A quoi ça sert ?
Rappels C.
Cours n° 7 Standard Template Library II.
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
GEF 243B Programmation informatique appliquée Expressions et opérateurs §
GEF 243B Programmation informatique appliquée Expressions et opérateurs.
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Tests et itérations Programmes séquentiels ne résolvent pas tous les problèmes exemple simple : calcul des racines d'un polynôme de d° 2 dans R Algorithme.
Paramètres et pointeurs
Dossier TICE Excel.
4. Les structures de tests
1 Une introduction à Java IFT 287 (Semaine 1). 2 Java - Historique Développé par Sun Microsystems en 1994 –Inventeur James Gosling (canadien!) Objectif.
2ième Classe (Mercredi, 13 Octobre) C++ Intro CSI2572.
Langage C Révision.
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Si le Diaporama ne s'ouvre pas en plein écran Faites F5 sur
Petites Pensées En voyage …
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Algorithmique et structure de données
PROGRAMMATION SCIENTIFIQUE EN C PRO Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.
Les Classes les structures en C (struct) regroupent des variables : structuration de l'analyse mais problèmes de cohérence problèmes de sécurité d'accès.
JE SUIS PARTI SI LOIN DE TOI JE n'AI PAS FAIT CE QUE TU AIMES
Cliquez pour débuterhttp:// Seigneur, j’ai passé toute ma vie, ma longue vie, à croire en toi et aux enseignements de ton Église,
Base de programmation Script unity en c#.
Leçon 2 : Surcharge des opérateurs IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Les pointeurs Enormément utilisé en C/C++ ! Pourquoi? A quoi ça sert?
Récursivité Définition récursive d’un problème. Critère d’arrêt et convergence. Performance des algorithmes récursifs. Résolution d’un problème à l’aide.
Structures de données IFT-2000
Conteneurs STL.
Sixième cours Les chaînes de caractères et le passage de paramètres par référence Passage de paramètres par référence String.h.
Un langage de programmation hybride
Salut, Peux-tu me rendre un service ?
Algorithmique et langage C. Les traitements Comment utiliser les données.
Structures de données IFT-2000
Une introduction à Java
Structures alternative et répétitive
Lettre à mon Père « La Parole libère » Ô mon père Tu ne sais guère A quel point j’ai souffert depuis ton départ La vie, m’était profondément amère, Plus.
L’essentiel du langage C
Pour vous faire sourire
Exemple de gestion d'un buffer clavier en liste circulaire
©KarinB. Je me considère malgré tout comme un priviligié...
Délire de PPS Manuel et musical
Coucou devine qui te parle ?
2.1 - Historique Chapitre 2 : Introduction au langage C++
4 Introduction des objets. Les chaînes et tableaux
PROPOSER DE FAIRE QUELQUE CHOSE
La notion de type revisitée en POO
Si le Diaporama ne s'ouvre pas en plein écran Faites F5 sur votre clavier.
SIF-1053 Architecture des ordinateurs
ALGORITHMIQUE ET PROGRAMMATION C
Notions avancées du C++
Argc et argv Utilisation des paramètres de la ligne de commande.
Copains-Copines 1 Unité 6 Commencez! Jeux Chansons.
Module I3 algorithmique et programmation
Les surcharges d'opérateurs
8PRO100 Éléments de programmation Les pointeurs de caractères.
C'est quoi ... aimer ?.
Conception de Programmes - IUT de Paris - 1ère année – Cours 6 - Les opérateurs L’amitié Les opérateurs –Introduction –Surcharge par fonction.
Conception de Programmes - IUT de Paris - 1ère année Cours 2 – Références et passage de paramètres Les Références –Introduction aux références.
8PRO107 Éléments de programmation Les adresses et les pointeurs.
Généricité.
MINUTES DU LANGAGE 1- Je choisis un sujet
PRO-1027 Programmation Scientifique en C
Répondre à des questions: choisir des stratégies
C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++
Transcription de la présentation:

Algorithmique et langage C

Et me la renvoyer bien sûr… Developpez.com, wiki, siteduzero et autre sont les bienvenus… (les questions sont en orange) C’est pour voir si ça suit dans la classe et bien sûr, évaluer au mieux ton écoute ^_^… 3… 2… 1… Si tu veux la doc, Il faut répondre au question

Les procédures Les procédures sont stockées en mémoire, elles regroupent un ensemble d’instruction en prenant des entrées (appelées passage de paramètre). Elles se déclarent comme suit (en C) void ma_procedure(typeB val1,typeB val2,…,typeA valN) { start_procedure(val1,val2); do_procedure(); end_procedure(valN); return ; } Cela veut dire que j’ai déclaré les 3 procédures suivantes ? ? ? paramètres

Les fonctions Les fonctions sont stockées en mémoire, elles regroupent un ensemble d’instruction en prenant des entrées (appelées passage de paramètre) et générant des sorties. Elles se déclarent comme suit (en C) typeA ma_fonction(typeB *val1,typeB val2,…,typeA valN) { val2+=10; *val1=val2; return valN; } Alors quand j’exécute toto =ma_fonction(&tutu, tata,…,titi); Donc ? paramètres par ? tutu = tata+10 et toto = titi

Les fonctions… et les pointeurs (encore je sais…  ) Soit la déclaration suivante typeA (*ptr_fonction) (typeB *val1,typeB val2,…,typeA valN); Alors je peux écrire ptr_fonction = &ma_fonction; Du coup quand je fais toto= ? (&tutu, tata,…,titi); Donne le même résultat que toto= ? (&tutu, tata,…,titi);

La fonction main là ou ça commence (c’est pas trop tôt!!!) int main(int argc, char *argv[]) { cout << argv[0] << endl; system("PAUSE"); return EXIT_SUCCESS;} La fonction main admet 2 paramètres d’entrées : argc est le nombre du tableau de pointeur argv : Le premier élément (argv[0]) est le nom du fichier Les autres sont déterminer par les ? passés en paramètre d’entrée (faire cmd.exe pour s’en rendre compte) La fonction main retourne un argv : return si tout vas bien (représenté par EXIT_SUCCESS) sinon un code erreur

Les Opérateur les opérateur permettent l’association de variable renvoyant des valeurs ou les affectant ( = ) dans des lvalue (? value ou ? value). elle peuvent être positionné à gauche et/ou à droite d’une affectation. constante (pointeur y compris) tableau fonction alors que l’on ne peut rien affecter dans les rvalue (? value ou ? value). elle ne peuvent être positionné qu’à droite d’une affectation. constante ? ?

Les opérateurs du langage C &  obtention de l’adresse *  indirection ->  sélection dans l’objet pointé pointeur sizeof (type)  donne la taille de type (type)  casting (expliqué précédemment).  sélection dans objet [ ]  indexation { }  fonction *  séquence type

Les opérateurs numériques +  addition -  soustraction x  multiplication /  division %  modulo Calcul =  affectation usuelle -=  *=  /=  %=  +=  affectation A ?= B; est la contraction de A = A ? B; >>  incrément <<  décrément affectation (in/de)crémentation Appliqué à un élément, exemple A >>; veut dire A=A+1;

logique Les opérateurs booléens >  supérieur à <  inférieur à ≥  sup ou égal à ≤  inf ou égal à =  égal à ≠  différent de Comparaison &  et |  ou association !  non réflexion Entre 2 éléments, exemple A ? A renvoi vrai Renvoi l’inverse de l’élément, exemple !(A ? A) renvoi faux

Les opérateurs bit à bit >>  à droite <<  à gauche décalage &  et |  ou ! |  xor !  non logique Soit A un unsigned short int A = 5 & 9; (101 et 1001) donne A = 5 | 9; (101 ou 1001) donne A = 5 ^ 9; (101 xor 1001) donne A = ~ A=12; (1100) donne ( ) Soit en décimal (12 – 2 16 )? Soit A == 3, un unsigned short int alors A << 2 donne A = 12 Mais si A = A << 1 donne A = 0 ?????????? assignation ? A == ?

Les opérateurs : la priorité

Les ? Les ?sont stockées en mémoire. (chaque ? a son adresse) le processus enchaîne les ? grâce à une tête de lecture (un ? encore) : Il lit et exécute le contenu de l'adresse du ?. il incrémente le ? de la taille du contenu. Il lit et exécute le contenu de l'adresse du ?. il incrémente le ? de la taille du contenu. Il lit et exécute le contenu de l'adresse du ?. il incrémente le ? de la taille du contenu. … … jusqu'à la fin des instructions (si une fin réelle existe bien sûr). Ou jusqu’au plantage système... Exemple d’instruction : ?

Les ? en C vide expression bloc goto if switch ou-case while do for break continue return {…}{…} expression; ; goto etiquette; if (condition) instruction [else instruction] while (condition) instruction do instruction while (condition) for (init;loop;end) instruction break; continue; return instruction switch (valeur) {ou-case … ou-case} case constante: instruction default : instruction

Les structures de contrôle Primordiale Langage bas niveau (assembleur) goto (ou jump en assembleur) vers une adresse A (appelée étiquette)  on affecte l'adresse A dans la tête de lecture du processus. En assembleur, il est assortie d'une condition booléenne –Valeur1 plus grande/petite que valeur2. –Valeurs égales. L'assembleur propose un mélange bigarré de ces « saut conditionnel ». En C on le déclare comme suit … ? … ?

Les structures conditionnelles Condition binaire the (is_car) {wash_it();} ? {stop_procedure();} the is_car wash_it(); oui stop_procedure(); non début fin

Les structures conditionnelles Condition analogique if (type_car) { ? "VIP" do gloss_it(); if "MIP","VIP": {aspire_in(); ? ;} ? "economic": ? ; ? alert_security();} Si VIP Si MIP ou VIP ? Si economic ? ? oui début fin

À nombre d’occurrence inconnu ? (current_car.is_car) { wash_it(current_car); current_car = pop();} ou ? { wash_it(current_car); current_car = pop();} ? (is_car); oui Les structures itératives si is_car wash_it(current_car); current_car=pop(); non début fin wash_it(current_car); current_car=pop(); début si is_car oui non fin