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

Scripts/Batch Discussion :

Qui est pour de petits execices pour manipulation de chaînes de caractères ?


Sujet :

Scripts/Batch

  1. #41
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 840
    Points : 9 225
    Points
    9 225
    Par défaut Solution en Vbscript EX N°10 : "Calcul de la somme des chiffres d'un nombre"
    Citation Envoyé par I'm_HERE Voir le message
    Exercice 10:
    L'utilisateur entre une suite de chiffres "78231" le programme fait leur sommes (récursivement) et retourne "3"
    7 + 8 + 2 + 3 + 1 = 21
    2 + 1 = 3
    @I'M Here, tu as oublié mon +1 dans l’exercice précédent Ex N°9
    La solution de l'exercice N°10 en Vbscript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    Option Explicit
    Dim N,Titre,fso,ws,LogFile,resultat
    Titre = "Calcul de la somme des chiffres d'un nombre"
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ws = CreateObject("Wscript.Shell")
    'Nom du fichier qui va stocker le résultat
    LogFile = Left(Wscript.ScriptFullName,InstrRev(Wscript.ScriptFullName, ".")) & "txt"
    if fso.FileExists(LogFile) Then 'Si le fichier LogFile existe 
    	fso.DeleteFile LogFile 'alors on le supprime
    end If
    'La boîte de saisie de la chaîne de caractères
    N = inputbox("Entrez un entier numérique "&vbCrLf&_
    "pour calculer la somme de ses chiffres",Titre,"78231")
    N = Trim(N) 'Pour enlever les espaces de gauche et à droite
    If N = "" Or Not IsNumeric(N) Then
    	MsgBox "Il faut choisir un entier numerique",48,Titre
    	WScript.Quit
    End If
    MsgBox "La somme des chiffres du nombre "& DblQuote(N) & " = " & DblQuote(Somme(N)),64,Titre
    WriteLog String(70,"*"),LogFile
    WriteLog Space(7) & Titre,LogFile
    WriteLog String(70,"*"),LogFile
    WriteLog "La somme des chiffres du nombre "& DblQuote(N) & " = " & DblQuote(Somme(N)),LogFile
    ws.Run LogFile,1,False
    
    '*****************************************************************
    Function Somme(N)
    	Dim LongeurChaine,i,j,Str
    	LongeurChaine = Len(N)
    	Somme = 0
    	If LongeurChaine = 1 Then
    	   Somme = N
    	End If   
    'Boucle For : on parcourt et on extrait caractère par caractère
    	For i = 1 To LongeurChaine
    		Str = Mid(N,i,1)
    'On somme les nombres extraits tant que sa taille est > 1
    		Do While LongeurChaine > 1
    			Somme = Somme + Str  
    			If Len(Somme) = 2 Then 
    			'Appel récursive de notre fonction Somme
    				Somme = Somme(Somme)
    			End If
    			Exit Do
    		Loop        
    	Next
    End Function
    '*****************************************************************
    'Fonction pour écrire le résultat dans un fichier texte
    Sub WriteLog(strText,LogFile)
    	Dim fs,ts 
    	Const ForAppending = 8
    	Set fs = CreateObject("Scripting.FileSystemObject")
    	Set ts = fs.OpenTextFile(LogFile,ForAppending,True)
    	ts.WriteLine strText
    	ts.Close
    End Sub
    '*****************************************************************
    'Fonction pour ajouter des guillemets dans une variable
    Function DblQuote(Str)
    	DblQuote = Chr(34) & Str & Chr(34)
    End Function
    '*****************************************************************

  2. #42
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    salut hackoofr,

    excellent tu mérite la notes entière...juste pour le fun voici une variante en scripting de commande NT:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @echo off
    
    set num=9978411
    :f
    set sum=0
    for /l %%a in (1 1 10) do set /a sum+=num%%10,num/=10
    if %sum% gtr 9 set /a "num=sum"& goto :f
    set sum
    pause
    je te remercie toi, l'AMI DU BAT, Laurent, minnesota, et tous les autres membres, je suggère au modérateur s'il le permet de mettre vos scripts dans la FAQ


Discussions similaires

  1. Réponses: 11
    Dernier message: 13/12/2011, 17h41
  2. Réponses: 3
    Dernier message: 17/08/2011, 14h40
  3. Réponses: 3
    Dernier message: 26/05/2010, 23h39
  4. un petit probleme pour vous un grand pour moi
    Par forstyle dans le forum Réseau
    Réponses: 6
    Dernier message: 04/11/2009, 20h03
  5. Meilleur algorithme pour trier de très grandes quantités de chaînes de caractères
    Par Cecilka dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 07/05/2006, 11h23

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