Wednesday, 22 November 2017

Recap Algo, Chapitre 2



STRUCTURES DE CONTRÔLE ALTERNATIVES
1. action conditionnelle 
Si <condition> Alors <action 1 >
Sinon < action 2 >
fsi ;
ou
Si <condition> Alors <action >
fsi ;
Remarque : On mettra tjrs fsi ; même si le bloc ne contient qu'une seule instruction. Ceci dit, la mise d'un ; avant sinon n'est ni interdite (l'action si n'est pas encore terminée) ni obligatoire (le séparateur sinon suffit).
2. action a choix multiple
Cas <expression 0> parmi
   <expression 1> : <action1> fin;
   <expression 2> : <action2> fin;
   ...
   <expression n> : <action n> fin;
   autrement : <action n+1>
fcas ;
Description : on évalue <expression 0>. Ensuite on évalue les autres expressions dans l'ordre : Si une expression donne la même évaluation que <expression 0>, on execute le bloc d'action correspondant puis on saute jusqu'a fcas. Sinon on passe a l'expression suivante et ainsi de suite. Si aucune expression ne correspond, on execute le bloc <action n+1> s'il existe. 
 

STRUCTURES DE CONTRÔLE RÉPÉTITIVES
1. Tant que :
Tant que <condition > faire
< action > 
ftq ;
2. Pour :
Pour < comp > ← < val_init > jusqu'a < val_finale > faire
< action >
fpour ;
3. Répéter :
Repeter
< action >
Jusqu’a <condition > ;




Wednesday, 15 November 2017

Codes sorces TP4

#include <stdio.h>
int x,y,z;
int main(){
    printf("\n Donner 2 nombres entiers SVP:")
    scanf("%d %d",&x,&y);
    z=x+y;
    printf("\n Le resultat de leur somme est %d \n Le resultat est donc ",z);
    if(z==0){printf(" nul");} //conseil:mettez les accolades
    else{
        if(z<0){printf("negatif");}
        else{printf("positif");}
    }
    return 0;
}

Lectures proposées:
1. les builtin functions de gcc :
https://stackoverflow.com/questions/23930588/how-gcc-handles-built-in-function
2. pourquoi scanf prevoit un double alors qu'on lui envoie un float:
https://stackoverflow.com/questions/19049043/gcc-scanf-warning-believes-float-is-double
3. je veux réaliser une affectation et l'évaluer dans if car je sais ce que je fais mais ce warning m'enerve: 
conseil : ne jamais désactiver ce warning (avec l'option -Wno-parentheses), il peux vous épargner des nuits blanches. Doubler plutôt les parenthèses
https://stackoverflow.com/questions/5476759/compiler-warning-suggest-parentheses-around-assignment-used-as-truth-value
4. ça veut dire quoi core dumped:  
https://en.wikipedia.org/wiki/Core_dump
https://stackoverflow.com/questions/2065912/core-dumped-but-core-file-is-not-in-current-directory
https://stackoverflow.com/questions/8305866/how-to-analyze-a-programs-core-dump-file-with-gdb
5. Pourquoi missing terminating " character est un warning + error en meme temps:
https://stackoverflow.com/questions/47330703/why-missing-terminating-character-is-a-warning

Sunday, 12 November 2017

Recap Chapitre1

Structure d’un algorithme


Algorithme < nom de l’algorithme > ;
< Partie déclarations >
Debut
< Partie actions >
Fin.
PARTIE DECLARATION

Const <identificateur > = < valeur > ;

Var < identificateur > : < type > ;

RÈGLES D’ÉCRITURE DES IDENTIFICATEURS

  1. Une chaîne alphanumérique (pouvant utiliser le tiret-bas et sans caractères accentués).
  2. le premier caractère est alphabétique.
  3. la taille doit être modérée.
  4. Les majuscules et minuscules sont indiscernables. 
  5. Les mots réservés sont interdits (debut, fin, si, alors, entier, var, const, ...).
TYPES SIMPLES
1. Entier        2.Reel      3.Caractere       4.Booleen
PARTIE ACTION
  1. Affectation : <identif lvalue> ← <expression> ;
  2. Lecture : lire(<lvalue>) ; 
  3. Ecriture : ecrire(<expression>) ;
RÈGLES DE PRIORITÉ ENTRE OPÉRATEURS

1. Les sous-expressions entre parenthèses sont évaluées avant d’intervenir dans le reste des calculs.
2. les opérateurs  –  non  unaires
3. opérateurs multiplicatifs * /
4. opérateurs additifs + - ou
5. opérateur relationnels   =   <   <=   >   >=   <>
6. les cas de conflit sont évalués de gauche a droite.