Portage d'un algorithme écrit pour Carbon

2»

Réponses

  • macvelottemacvelotte Membre
    22:19 modifié #32
    "est-ce que tu comprends l'anglais ?" : pas parfaitement, et c'est bien ce qui me gène.

    Mais ce que je comprends, c'est que mes essais sont très infructueux et que je vous casse les pieds !
  • macvelottemacvelotte Membre
    22:19 modifié #33
    Bon, je finis par réussir, mais en faisant des essais : il suffit donc de lon fichier pi.C (sans main.C) pour que ça marche.

    Mais déception : trois fois plus lent que sous OS 9 ! Alors, pourquoi OS X ???
  • 22:19 modifié #34
    Ce n'est pas comme ça que tu dois le comprendre. Si tu nous casserais les pieds on passerait au message suivant sans rien écrire.

    Simplement tes essais infructueux sont pas clairs, on a juste droit à  des "ça ne marche pas" comme bug reports (exception faite de ton dernier message), et c'est ça qui "énerve". Et pour ton dernier message, il ne s'agit que d'un warning (autrement dit pas quelque chose de grave) et le résoudre est on ne peut plus simple - il suffit juste de s'assurer que main() renvoie un int...
  • mpergandmpergand Membre
    22:19 modifié #35
    Pour le warning, ça veut dire que la fonction main doit retourner un int :
    <br />int main ()<br /><br />{<br /> 	initialisation();<br /> 	calcul();<br />	<br />	return 0;<br />}<br />
    


    Pour voir les messages du programme, il faut ouvrir la fenêtre de log, menu Debug-> Run Log

    Tu peux constaster, également, que le fichier "decimales_de_pi" est bien créé, il se trouve au même niveau que l'exécutable (dossier Build/Debug ou Build/Release)

    Un projet "standard tool" produit un simple exécutable (sans interface) que l'on peut lancer à  l'aide du terminal:
    - lance le prg Terminal (dans Applications/Utilitaires) une fenêtre s'ouvre
    - glisse l'exécutable CalculPI dans cette fenêtre et appuie sur entrée




    [Fichier joint supprimé par l'administrateur]
  • macvelottemacvelotte Membre
    22:19 modifié #36
    MERCI MPERGAND !

    Oui, j'avais repéré le fichier décimales-de-pi ..

    que peut-on faire d'autre d'un "standard tool" ?

  • mpergandmpergand Membre
    22:19 modifié #37
    Exemple d'affichage dans un NSTextView
    J'utilise un fichier temporaire pour récupérer les données.



    [Fichier joint supprimé par l'administrateur]
  • macvelottemacvelotte Membre
    22:19 modifié #38
    Pour mpergand : belle leçon !

    Je vais étudier les ajouts faits à  mon programme C et je pense en tirer beaucoup !

    Je ne voyais pas du tout comment utiliser du C dans Cocoa.

    J'ai donc construit mon fichier Nib et ...ça marche ! et aussi vite que mon programme original (CodeWarrior/OS9).
    Merci encore.
  • LeChatNoirLeChatNoir Membre, Modérateur
    22:19 modifié #39
    J'adore les dénouements heureux  :p

    Te voilà  les 2 pieds dans Cocoa ! Fais gaffe, ca devient vite une drogue  ;D
  • mpergandmpergand Membre
    22:19 modifié #40
    Salut macvelotte,

    Mon code n'a rien d'un modèle, c'est juste un exemple, mon but étant de faire au plus simple pour moi, c'est à  dire avec le minimum de modifs  :)

    Le truc du fichier temporaire me plait pas trop, je pense qu'il vaut mieux utiliser un classique tampon de données pour le résultat (mais c'était plus compliqué pour moi ...)

    D'autre part, il y a pas mal d'améliorations possibles, par exemple, le prog est bloqué pendant tout le calcul, donc il serait bien d'effectuer ce calcul dans un thread (en cocoa c'est pas compliqué) et cerise sur le gateau: faire une barre progression montrant l'avancé du calcul avec un bouton permettant d'annuler d'opération.

    Pour la barre de progression, en regardant le code, c'est pas évident au premier coup d'½il, mais avec un peu de réflection et de méthode, ça ne devrait pas poser de problème.

    A bientôt sur ce forum  ;)
  • macvelottemacvelotte Membre
    22:19 modifié #41
    J'aprécie le dernier message de mpergand.

    Pour les modifications apportées à  "pi.c", pas de problème, il me semble après première lecture.

    Dans Controller.m : pourquoi
    char* resultat=calculPI(nbDecimales);
    
    ?

    D'autre part, la ligne
    return NSApplicationMain(argc,&nbsp; (const char **) argv);
    
    de main.m m'a toujours paru absconse !

    Le fichier temporaire : pourquoi ne pas en faire un fichier sauvegardé ?

    Quant à  la l'indicateur d'avancement, oui, j'y ai déjà  pensé. Avec l'inconvénient d'occuper un peu de temps donc de ralentir le calcul.

    Un calcul parfaitement inutile : qu'est-ce que 130 000 décimales alors qu'on en connaà®t plusieurs milliards ?
  • fouffouf Membre
    22:19 modifié #42
    Je n'ai pas regardé à  ton code sur Pi alors, la réponse à  la première question est peut-être complétement fausse.

    char* resultat doit être un tableau dans lequel sont stockées les décimales. En effet, char est codé sur un octet (8 bits) et donc cela suffit amplement pour les chiffres de 0 à  9 (j'imagine que le calcul est fait en décimal et pas en hexa ;)). Ensuite, tu dois parcourir le tableau sachant de le nombre d'éléments dans ce tableau doit être nbDecimales. A vérifier auprès de mpergand.

    Ensuite pour  return NSApplicationMain(argc,  (const char **) argv);, tu ne te poses pas de questions et surtout, s'il s'agit d'une appli Cocoa, évite de la modifier. IL s'agit de la ligne qui permet le lancement de l'appli en elle-même, c'est-à -dire l'initialisation des objets, le chargement des nibs, etc ... Il s'agit donc de la ligne qui permet le fonctionnement de ton appli (sache que dans la plupart des applis, on ne modifie pas main.m, c'est tout bonnement inutile ;) ).

    Bonne continuation :fouf):
Connectez-vous ou Inscrivez-vous pour répondre.