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

Langage PHP Discussion :

Aide sur entraînement algorithmes classiques en PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chef de Projet et futur développeur web qui s'entraîne dur
    Inscrit en
    Avril 2016
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de Projet et futur développeur web qui s'entraîne dur

    Informations forums :
    Inscription : Avril 2016
    Messages : 49
    Par défaut Aide sur entraînement algorithmes classiques en PHP
    Bonjour,

    J'ai besoin d'un petit coup de main pour continuer mon entraînement en algorithmie simple... j'essaye de combler les lacunes, tant j'ai l'impression que c'est important d'avoir des bases hyper solides !

    Actuellement cette fonction affiche les voyelles contenus dans une chaîne de caractère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public static function afficheVoyelle($param) {
            $voyll = Array('a','e','i','o','u','y');
            for ($t=0; $t<StringUtils::longueurChaineCaractere($param); $t++) {
                for ($v=0; $v<5; $v++) {
                    if ($param[$t] == $voyll[$v]) {
                        print_r($param[$t]);
                    }
                }
            }
        }
    Pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StringUtils::afficheVoyelle("Bonjour");
    J'ai : "oou"

    Cependant pour avancer plus loin, j'aurais souhaité avoir l'affichage de "$param" complet, avec simplement les voyelles en majuscules. Mais je me perds un peu pour celui-ci, j'ai du mal à l'écrire en pseudo-code...
    J'aimerais utiliser le moins de fonctions natives PHP possible pour tout écrire à la main.
    (ucfirst() reste l'exception, car je n'ai pas encore trouvé la solution pour m'en passer )

    Je vous remercie pour votre aide !

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    je ne sais pas si ce genre d'exercice trivial favorise l'apprentissage algorithmique
    En tout cas, tu dois savoir que les caractères minuscules et majuscules sont fixés pour chaque langage (en fonction des locales). Savoir que a devient A ne se devine pas, il existe des tables, donc tu ne peux pas les zapper... T'es obligé d'utiliser les fonctions natives fournies par le langage.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function afficheVoyelle(string $p, bool $transform_uppercase = true): array {
        $v = array_intersect(str_split($p, 1), ['a','e','i','o','u','y']);
        return $transform_uppercase ? array_map('strtoupper', $v) : $v;
    }
    Tu peux essayer de rendre ce code compatible avec l'unicode

  3. #3
    Membre averti
    Homme Profil pro
    Chef de Projet et futur développeur web qui s'entraîne dur
    Inscrit en
    Avril 2016
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de Projet et futur développeur web qui s'entraîne dur

    Informations forums :
    Inscription : Avril 2016
    Messages : 49
    Par défaut
    Merci beaucoup pour ton retour.

    je ne sais pas si ce genre d'exercice trivial favorise l'apprentissage algorithmique
    Est-ce que t'aurais quelques conseils à me donner ?
    Je suppose que le principal reste sur le fait de s'inventer des exercices le plus possible et enchaîner enchaîner enchaîner ?

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Le mieux c'est de partir sur un petit projet qui servira de support à tes études.
    Plus tu coderas, plus cela te paraîtra facile dans la mesure où tu connaîtras bien mieux le langage.
    L’algorithmie est une science hautement logique. Il n'y a pas de recette miracle. Faut aimer se frotter à l'abstraction pour bien saisir les arcanes de cette discipline.

    Y a un paquet d'années de ça, j'ai descendu un livre qui m'a littéralement scotché : L'Art du beau code paru chez O'Reilly.
    Dire que je l'ai adoré est un doux euphémisme. Y sont abordés les algorithmes plus ou moins classiques et surtout les solutions proposées par des cadors dans leur langage.
    Là tu te rends compte de l'écart conceptuel entre ta pensée et la leur... Cet ouvrage m'a littéralement ouvert les yeux et depuis je m'efforce de produire du code d'un certain niveau (je n'irai pas jusqu'à dire "beau"), histoire de suivre leurs traces.

  5. #5
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Tiens une idée de livre par ici

  6. #6
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    3 019
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 3 019
    Par défaut
    Pour une version d'ucfirst pour la plage ASCII, il suffit de regarder la table ASCII et la position des minuscules par rapport aux majuscules:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function ucfirst2($str) {
        if ( $str[0] > '`' && $str[0] < '{' )
            $str[0] = chr(ord($str[0]) - 32);
     
        return $str;
    }
    Difficile de faire plus bas niveau que chr qui renvoie le caractère d'un code et ord qui est sa fonction inverse. Mais rien ne t'empêche d'écrire toi-même un tableau de conversion (tu devras introduire un isset), ou deux chaînes pour chercher la position du caractère minuscule dans la première (strpos), ou encore d'utiliser strtr.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Aide sur les algorithmes genetique
    Par Djilou_15 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 22/01/2010, 17h44
  2. aide sur les Algorithmes Génétiques
    Par amineyamane dans le forum Intelligence artificielle
    Réponses: 8
    Dernier message: 30/06/2008, 01h52
  3. Aide sur AMFPHP liaison liaison flash/php ! Urgent !
    Par DjangoSwing dans le forum Flash
    Réponses: 2
    Dernier message: 17/04/2008, 11h49
  4. aide sur un algorithme glouton
    Par simplexieum dans le forum Algorithmes et structures de données
    Réponses: 0
    Dernier message: 23/03/2008, 23h12
  5. Demande Aide sur un algorithme
    Par bouba69 dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 27/03/2007, 18h05

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