Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » Aprentissage du C (Casio)[encore une fois]
Silaxe Hors ligne Membre Points: 809 Défis: 12 Message

Aprentissage du C (Casio)[encore une fois]

Posté le 04/06/2014 21:48

Comme Darkysun et Eltoredo je me pose pas mal même énormément de questions pour programmer en C sur Casio.
Déjà (première question ) je ne comprend pas tout le code mis par défaut sur le SDK:
J'ai enlevé les commentaires mais je les ai très rapidement remplacés.
J'espère qu'il y aura un âme charitable pour m'aider .
[brown]#include [gray]"fxlib.h"[/gray][/brown]

[purple]int[/purple] AddIn_main(int isAppli, unsigned short OptionNum) [green]//Que veut dire exactement cette ligne?[/green]
{
    [purple]unsigned int[/purple] key;

    Bdisp_AllClr_DDVRAM(); [green]//Je sais que ça efface l[gray]'écran mais j'ai compris qu'[/gray]il y avait plusieur couche (une pré-chargée?)[/green]

[green]//Ici ça va :) [/green]
    locate(1,[maroon]4[/maroon]);
    Print((unsigned char*)[gray]"This application is"[/gray]);
    locate(1,[maroon]5[/maroon]);
    Print((unsigned char*)[gray]" sample Add-In."[/gray]);

[green]//Une boucle infinie?[/green]
    [b][blue]while[/blue][/b](1){
        GetKey(&key); [green]//à quoi correspond ce Getkey[/green]
    }

    [b][blue]return[/blue][/b] 1;
}

[green]//A partir de là je suis complétement perdu[/green]
[brown]#pragma section _BR_Size[/brown]
unsigned long BR_Size;
[brown]#pragma section[/brown]


[brown]#pragma section _TOP[/brown]

[purple]int[/purple] InitializeSystem(int isAppli, unsigned short OptionNum)
{
    [b][blue]return[/blue][/b] INIT_ADDIN_APPLICATION(isAppli, OptionNum);
}

[brown]#pragma section[/brown]

Je m'arrête la pour aujourd'hui
Merci d'avance pour vos réponses


Silaxe Hors ligne Membre Points: 809 Défis: 12 Message

Citer : Posté le 05/06/2014 20:03 | #


ah non
C'est une des lib de base du C non?
Darkysun Hors ligne Membre Points: 1747 Défis: 52 Message

Citer : Posté le 05/06/2014 20:03 | #


presque
Si je ne réponds pas à un post depuis trop longtemps : envoyez-moi un message pour me le rappeler !




Lephenixnoir En ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 05/06/2014 20:03 | #


Oui, mais il n'empêche qu'il faut le header, c'est dans les règles du C.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Silaxe Hors ligne Membre Points: 809 Défis: 12 Message

Citer : Posté le 05/06/2014 20:05 | #


Mais comment on fait pour afficher une variable qui évolue au cours d'un programme vu qu'on doit mettre sa valeur dans char buffer?
Y-a-t-il un autre moyen d'afficher une variable?
Lephenixnoir En ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 05/06/2014 20:06 | #


Non, c'est le seul vrai moyen.
Si tu veux afficher une variable, il faut utiliser sprintf() et un buffer à chaque fois.

Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Darkysun Hors ligne Membre Points: 1747 Défis: 52 Message

Citer : Posté le 05/06/2014 20:06 | #


non tu la remet dans le char puis tu la réaffiche
Si je ne réponds pas à un post depuis trop longtemps : envoyez-moi un message pour me le rappeler !




Silaxe Hors ligne Membre Points: 809 Défis: 12 Message

Citer : Posté le 05/06/2014 20:09 | #


Mais si par exemple dans une boucle on incrémente de 1 une variable à chaque tour on fait comment ?
Et que fait le char buffer? char c'est un type de variable?

Lephenixnoir En ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 05/06/2014 20:11 | #


Oui, 1 char = 1 caractère. Et un tableau de char, c'est une chaîne de caractères, i.e. du texte.
À chaque tour de boucle, tu fais un sprintf() et un PrintMini().
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Cartix Hors ligne Membre Points: 2748 Défis: 98 Message

Citer : Posté le 05/06/2014 20:15 | #


Sinon tu peux modifier le buffet directement
Lephenixnoir En ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 05/06/2014 20:18 | #


Ce qui est équivalent à réécrire sprintf().
Je ne vois pas trop l'intérêt, ou alors je n'ai pas compris ce que tu voulais dire.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Cartix Hors ligne Membre Points: 2748 Défis: 98 Message

Citer : Posté le 05/06/2014 20:19 | #


Lephenixnoir a écrit :
Ce qui est équivalent à réécrire sprintf().

C'est pas plus rapide ?
Je ne vois pas trop l'intérêt, ou alors je n'ai pas compris ce que tu voulais dire.
Elle est pour moi cette question ?
Lephenixnoir En ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 05/06/2014 20:21 | #


Oui, je ne vois pas l'intérêt de modifier le buffer directement. sprintf() est très rapide, et également très optimisée, comme toute la lib standard.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Cartix Hors ligne Membre Points: 2748 Défis: 98 Message

Citer : Posté le 05/06/2014 20:26 | #


Vu qu'il ne veut qu''incrémenter, je pensais que ca serait plus rapide (on peut incrémenter un char, non ?)
Lephenixnoir En ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 05/06/2014 20:28 | #


Oui, mais avec les retenues... c'est pire que sprintf().
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Cartix Hors ligne Membre Points: 2748 Défis: 98 Message

Citer : Posté le 05/06/2014 20:32 | #


Ok, au temps pour moi, je n'avais jamais testé
Silaxe Hors ligne Membre Points: 809 Défis: 12 Message

Citer : Posté le 05/06/2014 20:34 | #


Est-ce que c'est expliqué le buffer et le sprintf(buffer,"%d", variable) sur le site du zero?
Lephenixnoir En ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 05/06/2014 20:37 | #


Non, ils utilisent printf() qui sort directement sur la console. Mais la présence d'un buffer en premier argument est la seule différence, donc toutes les histoires de formatage, avec les '%', les '\' c'est identique. Je te conseille d'aller y jeter un coup d'oeil.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Silaxe Hors ligne Membre Points: 809 Défis: 12 Message

Citer : Posté le 31/08/2014 15:42 | #


Il est temps de relancer ce topic
Je m'attaque a un plus ou moins(rassurez vous je ne vais le mettre sur le site ) et il y a des choses que je ne comprend pas ou je n'arrive pas.
Voila le code:
[brown]#include [gray]"stdlib.h"[/gray][/brown]
[brown]#include [gray]"fxlib.h"[/gray][/brown]
[brown]#include [gray]"stdio.h"[/gray][/brown]
static [purple]int[/purple] SysCallCode[] = {[maroon]0[/maroon]xD201422B,[maroon]0[/maroon]x60F20000,[maroon]0[/maroon]x80010070};
static [purple]int[/purple] (*SysCall)(int R4, [purple]int[/purple] R5, [purple]int[/purple] R6, [purple]int[/purple] R7, [purple]int[/purple] FNo ) = (void*)&SysCallCode;

[purple]int[/purple] AddIn_main(int isAppli, unsigned short OptionNum)
{
   [green]//Variable [/green]
    [purple]unsigned int[/purple] key;
    [purple]int[/purple] nbrAlea =[maroon]0[/maroon];

    [green]//Nombre aléatoire[/green]
    srand(RTC_getTicks());
nbrAlea = rand_int_ab(1,[maroon]100[/maroon]);

    [green]//Menu[/green]
locate(5,[maroon]2[/maroon]);
Print([gray]"Jeu du + ou -"[/gray]);
Bdisp_DrawLineVRAM(23,[maroon]16[/maroon],[maroon]103[/maroon],[maroon]16[/maroon]);
PrintMini(11,[maroon]40[/maroon],[gray]"Appuyer sur EXE pour jouer"[/gray],[maroon]0[/maroon]);

[b][blue]do[/blue][/b]{
GetKey(&key);[green]//Pourquoi il y a un & ?    [/green]
}while(key != KEY_CTRL_EXE);[green]//est ce que c'est une constante qui renvoie une valeur(ou elle est)[/green]
Bdisp_AllClr_DDVRAM();
    [green]//Jeu[/green]
PrintMini(1,[maroon]1[/maroon],[gray]"Choisi un nombre :"[/gray],[maroon]0[/maroon]);    

[b][green]/*Apres il faut que je demande à l'utilisateur de saisir un nombre
Est ce que le getkey C fonctionne de la meme facon qu'en Basic?
Est ce utile de l'isoler?
Comment savoir si on a appuyer sur une touche quelconque?
Est ce que je dois faire un test pour chaque touche ou il existe une lib ou un tuto particulier?
Voila je crois que c'est tout ;)
*/[/green][/b]

[b][blue]do[/blue][/b]{
[b][blue]do[/blue][/b]{
GetKey(&key);
[green]//reconnaissance de la touche pressée[/green]
}while[green]//incomplet[/green]


}while[green]//incomplet[/green]

    
    [b][blue]while[/blue][/b](1){
        GetKey(&key);
    }

    [b][blue]return[/blue][/b] 1;
}

[purple]int[/purple] RTC_getTicks(){
      [b][blue]return[/blue][/b] (*SysCall)(0, [maroon]0[/maroon], [maroon]0[/maroon], [maroon]0[/maroon], [maroon]0[/maroon]x3B);
}

[purple]int[/purple] rand_int_ab(int min, [purple]int[/purple] max){
     [b][blue]return[/blue][/b] rand() % (max - min) + min;
}



Dark storm En ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 31/08/2014 15:44 | #


Silaxe, tu as lu le tuto du C sur le site du zéro jusqu'à la partie sur la SDL ?
Si c'est pas le cas, tu ferai mieux d'aller le lire
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Silaxe Hors ligne Membre Points: 809 Défis: 12 Message

Citer : Posté le 31/08/2014 15:45 | #


non pas encore
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 31/08/2014 17:05 | #


Franchement, c'est quoi cette manie épidémique de créer chacun son topic ? -_-
Qui ici connaît l'existence de ce topic, et surtout en a lu la première phrase ?

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 175 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd