Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur le langage C !

Modérateur : Jérémy

Boucle conditionnelle !
Jérémy
Administrateur du site
Administrateur du site
Messages : 2725
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#11 Message par Jérémy » sam. 28 mai 2016 09:50

Autre soucis: POURQUOI faire une BOUCLE pour 1 passe ?

Car je me sert du jour de cette passe pour modifier les paramètres !

Ma maigre expérience me fait dire, que quand on est pas dans le test et/ou le programme c'est difficile, voir très difficile de comprendre, de comprendre ce que veut faire l'auteur .

A force de chercher j'ai finis par trouver, et c'était en fait très simple . Pour sortir de la boucle suffit de lui mettre un paramètres qui permet de plus la faire .

Donc ici, si mon ecart ( qui correspond à la largeur de ma lettre) est inférieur à 9 ( donc une petite lettre) alors je met "m" à 2, qui me fait sortir de ma boucle, tout simplement :furieux: .
En fait il y tellement de boucle imbriquées que je pensais pas que ca allait fonctionner aussi simplement !

Du coup comme il faut aussi changement des paramètres suivant si c'est une lettre de 32 ou 16 Octets, ma formule ressemble à une formule de la NASA :roll:

Voila ce que ca donne avec une seule fonction :

Code : Tout sélectionner

void affichage_Lettre2(unsigned int position){

     
k  valeur 0;

     for (
k=0;k<=1;k++){
         for (
m=0;m<=1;m++){
             
position += m;
             for (
i=0;i<=7;i++){
                 for (
j=0;j<=7;j++){
                      
valeur +=  (  (((font16x8[(position+(k*t)+(j*d))])>>(7-i)) & (0x01))  << j  )  ;
                  }
                  
OLED_M_data(valeur);
                  
valeur ;
              }
           if (
ecart<9m=;
          }
      }


Maintenant que j'ai compris le principe pour bien faire , il faudrait que je reprenne tout à 0, car la je pense qu'il y a beaucoup de rustine !

To be continued !

Merci à Maï de m'avoir suivis et relancé !
C'est en faisant des erreurs, que l'on apprend le mieux !!!


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 39 invités