IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AppleScript Discussion :

Premier programme sous AppleScript


Sujet :

AppleScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 2
    Par défaut Premier programme sous AppleScript
    Bonjour,

    Je sollicite le forum pour débuter sous AppleScript, étant nouveau sous Mac (et plus habitué à Matlab). Ce que je veux faire est tout à fait faisable sous Numbers, mais les fonctions sont instables, j'ai de mauvais retours numériques.

    Je souhaiterais écrire un script qui aille chercher un fichier textedit "NomFichiertxt" qui comporte n lignes de séries numériques variables.

    Exemple :
    26924587
    097
    78909897654383
    ...
    Le but serait d'importer sous forme de liste ce fichier, puis d'appliquer les fonctions suivantes :

    1) déterminer le nombre "x_i" de chiffre de chaque série avec cette fonction mathématique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Pour i de 1 à n
    x_i=ENT(LOG(série_i+1))+1 ;
    Fin boucle i;
    Exemple :
    x_1=8
    x_2=3
    x_3=14
    ...
    2)Décomposer chaque série_i en ses x_i chiffres. J'ai fait une autre fonction maison :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Pour k de 1 à x_i
    d_i_k=ENT(10*((série_i / (10^k))-ENT(série_i / (10^k)))) ;
    Fin boucle k ;
    Exemple :
    d_1_1=2
    d_1_2=6
    d_1_3=9
    d_1_4=2
    d_1_5=4
    ...
    d_1_8=7
    3) Cette étape est un bonus pour moi, il s'agit d'appliquer un test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Pour i de 1 à n
    g_i=1 ;
    Pour k de 1 à x_i ;
    g_i=d_i_k+1 - d_i_k ;
    Si g_i=0 alors retourner affichage "Stop" ;
    Fin boucle k ;
    Fin boucle i ;

    4) Il s'agit d'appliquer à chaque liste d_i le test suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Pour i de 1 à n ;
    Pour k de 1 à x_i ;
    s_i=0 ;
    Si d_i_k+1>d_i_k alors s_i=s_i+(d_i_k + 1-d_i_k) ;
    Sinon  s_i=s_i + 10-(d_i_k - d_i_k+1) ;
    Fin boucle k ;
    Fin boucle i ;
    Exemple :
    s_1=25
    s_2=17
    s_3=76
    5) Il s'agit de la mise en forme des résultats des précédents tests sous la forme d'un tableau ( sous Numbers ? ) d'une colonne : les s_i .

    Voilà ce qu'il en est de ma demande sous AppleScript.

    Merci de votre aide.

  2. #2
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonjour,
    Bienvenu sur ce forum.
    Nous pouvons bien sûr t'aider dans ta démarche Applescript, mais la première question à se poser est celle de l'adéquation entre les caractéristiques du langage et celle de ta demande.
    En effet, Applescript est un langage très sympathique, mais pas vraiment fait pour la manipulation d'objets mathématiques.

    Les fonctions d'arrondi se limitent à la coercition d'une variable réelle en integer.
    Il n'y a pas, en standard, de fonction log ou ln. Pour celles-ci, il faut soit passer par des commandes shell Unix (do shell script) en ayant installé des bibliothèques adéquates, ou encore utiliser la bibliothèque AppleScript faite par Satimage (voir Google) qui offre quelques fonctions supplémentaires.
    Et encore, certaines solutions n'offrent que le ln et pas le log (base 10). il faut donc convertir à chaque fois (Log(x) = ln(x) / ln(10) ) !!

    J'ajoute que la précision des variables en nombre réel sur AppleScript est limitée. (probablement moindre que celle de Numbers)

    Ceci pour dire que Applescript n'est pas conçu, de base, pour les calculas mathématiques. Tu peux certes en faire, mais ce sera au prix d'une usine à gaz.

    Je n'utilise pas Numbers et je ne peux juger si les fonctions sont "instables", mais je te conseille fortement l'utilisation de macros sur Excel (langage VBA).
    En effet, Excel dispose naturellement des toutes les fonctions mathématiques permettant la gestion des suites et séries. Par ailleurs Excel peut gérer tes suites sous forme de colonnes de chiffres et effectuer des calculs sur des plages de cellules (somme de l'indice i à l'indice j en une seule instruction !).
    La précisions de stockage des nombre est en général suffisante.
    Les versions actuelles d'Excel sont limitées à environ 1 000 000 de lignes par colonnes !
    VBA n'est pas compliqué à apprendre.

    Ce n'est bien sûr qu'un conseil pour te faire gagner du temps. Ceci étant dit, si tu persistes à vouloir apprendre AS, bienvenu !
    Tu peux effectivement lire des fichiers texte, mettre chaque ligne dans un liste (équivalent d'un tableau indicé) et faire des boucles sur les indices.

    Cordialement

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 28
    Par défaut
    Bonjour à tous

    Je partage totalement l'analyse et les conseils de Philippe, AppleScript est en principe un langage conçu pour automatiser des tâches (workflow) avec la possibilité de piloter d'autres applications. De fait, nativement AppleScript ne dispose que de très peu d'outils pour manipuler des données.

    Je suis donc aussi de l'avis de travailler avec des logiciels adaptés pour ce type de calculs et traitements (tableurs ou base de données) ou de passer à un langage de programmation plus approprié (C/C++, Ruby, Php, MatLab, etc.).


  4. #4
    Nouveau candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 2
    Par défaut
    Bonjour,

    merci des conseils, je vais me procurer Excel, je suis sûr qu'il sera toujours utile pour l'avenir.

    Bonne continuation.

Discussions similaires

  1. Erreurs premiers programmes sous Delphi 7
    Par laymos dans le forum Débuter
    Réponses: 8
    Dernier message: 10/03/2013, 00h25
  2. Mon premier programme sous éclipse
    Par dot-_-net dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 09/07/2008, 14h26
  3. Premier programme sous Python
    Par Helios07 dans le forum Général Python
    Réponses: 6
    Dernier message: 06/06/2008, 10h33
  4. mon premier programme sous eclipse
    Par ninours23 dans le forum Eclipse C & C++
    Réponses: 3
    Dernier message: 28/02/2008, 13h29
  5. Réponses: 2
    Dernier message: 14/04/2004, 19h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo