CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : [help] javascool

DébutPage précedente
12
Page suivanteFin
[K]aze [K]aze
MP
Niveau 7
19 novembre 2015 à 21:33:38

Bonsoir , actuellement en classe de terminale S spé isn , j ai un travail à faire sur ce logiciel de programmation . Je souhaiterai un peu d'aide car j'ai vraiment du mal .
Je dois créer un programme donnant le nombre de lettre distinctes d'un mot .
Merci de d'éclaircir .

[Kakuzu]2 [Kakuzu]2
MP
Niveau 24
20 novembre 2015 à 13:27:48

Montre ce que tu as déjà fait!

AtheeOk AtheeOk
MP
Niveau 4
20 novembre 2015 à 18:35:53

tu récupère la longueur du mot puis tu soustrais le nombre de fois ou ça rencontre un espace ou un tiret :ok:

[K]aze [K]aze
MP
Niveau 7
21 novembre 2015 à 17:32:43

Je sais afficher le nombre de caractères d'un mot ou phrase , mais la commande (length , il me semble) compte aussi les espaces les très d'union , ect . Du coup on m'a dit d'utiliser le tableau acsii pour pouvoir encadrer juste les caractère voulu : mais la commande ne marche pas :/ , voilà où j'en suis rendu :

void main() {
String x = "être";
char x = 2;
if (((int) charAt(i) >= 97) && ((int) charAt(i) <= 122));
println(charAt(2));

J'ai beaucoup de mal avec l'utilité de certaines commandes , et je crois qu'ici il y'a un sérieux problème , merci à vous !

[K]aze [K]aze
MP
Niveau 7
22 novembre 2015 à 00:09:16

up

[Kakuzu]2 [Kakuzu]2
MP
Niveau 24
22 novembre 2015 à 00:13:43

Ok merci, c'était pour savoir ce que tu as de disponible dans Java's Cool

Solution possible : (1) Tu veux parcourir tous les caractères d'une phrase/mot, (2) vérifier si chaque caractère est une lettre a-z ou A-Z (pour question de simplicité on prend pas en compte les accents comme tu as dit non?) et (3) compter ce nombre de caractères

Initialisation

taille = 0

Debut

(1) pour i = 0 à taille du mot
(2)        si caractère[i] du mot est compris entre 97 et 122 de la table ascii OU entre 65 et 90 (pour les majuscules)
(3)               taille++
           fin si
    fin pour

Je te laisse traduire ça en Java (tu es sur la bonne voie). J'espère avoir compris ton problème, si jamais tu veux faire un affichage du caractère alors fait le au niveau du taille++
Cette algorithme n'affichera que les lettres "simples" sans accent ou autre, si tu veux être plus précis il te faudra ajouter d'autres cas dans le IF ou alors procéder autrement, comme à l'inverse enlever ce que tu ne veux pas si tu sais déjà ce que tu veux, utiliser un regex ou autres...

Bonne chance

[K]aze [K]aze
MP
Niveau 7
22 novembre 2015 à 00:49:03

Merci de m'avoir éclairci , je vois un peu mieux le déroulement du programme . Néanmoins , je ne susi pas sûr d'avoir tout compris ce que tu m'as expliquer , j'aurais dû mettre l'intituler de l'exercice :
"Niveau 1 :
Ecrire un programme en javascool qui compte le nombre de lettres distinctes d'un mot saisi par
l'utilisateur.
Les accents seront des lettres à part entière.
Ainsi le programme appliqué au mot « être » renverra 4 lettres distinctes.
Vous devrez impérativement utiliser au moins une fonction et un tableau.
On pourra, par exemple, parcourir toutes les lettres du mot et stocker les nouvelles dans un tableau
de caractères.
Niveau 2 :
même chose en ne tenant pas compte des accents.
Ainsi le mot « épithète » comptera 5 lettres distinctes au lieu de 7 dans le cas du niveau 1."

En faite , je pense , que j'aurais besoin de connaitre les différentes commandes(ex: types .. ) utiles à la résolution de l'éxo parce que je crois que c'est sur la mise en forme du programme que je pèche .

Sinon , c'est vraiment sympa de m'aider .

Message édité le 22 novembre 2015 à 00:50:57 par [K]aze
[Kakuzu]2 [Kakuzu]2
MP
Niveau 24
22 novembre 2015 à 01:19:45

Ah d'accord, je n'avais donc rien compris.

Pour l'exercice 1 je ferais 2 boucles for, 1 qui parcourt le mot et l'autre qui parcourt ton tableau. Si le caractère i du mot n'est pas dans ton tableau alors tu l'ajoutes dans ton tableau et ainsi de suite. Au final tu comptes le nombre de caractère de ton tableau et c'est finit.

Pour le 2 je ne suis pas trop sûr d'avoir compris, on ne compte pas les accents tout court (du style brulé = 4 lettres) ou alors on ne compte pas les accents si y'a une lettre pareil sans l'accent (du genre être = 3 lettres car ê = e ?). Si c'est le premier cas alors l'algorithme posté plus haut fera l'affaire, en rajoutant un tableau à la place de la taille++.

Excuse moi, c'est juste moi qui a du mal a piger :noel:

Si jamais tu as des soucis pour la syntaxe, je reviendrai demain

Message édité le 22 novembre 2015 à 01:22:11 par [Kakuzu]2
[K]aze [K]aze
MP
Niveau 7
22 novembre 2015 à 19:01:54

J'ai un problème lorsque je met la condition , le programme m'affiche ça :
Erreur de syntaxe ligne 6 :
error: cannot find symbol
if (((int) charAt(i) >= 97) && ((int) charAt(i) <= 122));
^

Comme si ce n'était pas la bonne formule :/

TheRealMarco TheRealMarco
MP
Niveau 10
22 novembre 2015 à 20:40:10

Ta boucle if ne contient qu'une instruction (; à la fin de la ligne), sans rien à exécuter.

[K]aze [K]aze
MP
Niveau 7
22 novembre 2015 à 23:31:51

Je vois pas ce que je peux mettre de plus :\

[Kakuzu]2 [Kakuzu]2
MP
Niveau 24
22 novembre 2015 à 23:44:40

IF est une condition, si la condition (ce qui est entre parenthèse) est vraie alors on passe dedans, sinon non.

en gros c'est :

if (la condition) {
       //si condition vrai
}

Je te conseil d'aller regarder un cours Java car c'est vraiment la base de tout langage de programmation.

TheRealMarco TheRealMarco
MP
Niveau 10
23 novembre 2015 à 07:17:57
if (((int) charAt(i) >= 97) && ((int) charAt(i) <= 122))
{ 
     // Alors ton caractere est une lettre minuscule
    printf("La lettre est une minuscule");
}

printf marche pas, mais c'était pour donner un exemple avec ton propre code. :noel:

[K]aze [K]aze
MP
Niveau 7
23 novembre 2015 à 18:44:38

J'ai toujours le même résultat :/

Candystand Candystand
MP
Niveau 10
23 novembre 2015 à 19:13:19

charAt c'est une méthode de la classe String, tu dois donc l'appeler de la manière suivante:

taChaine.charAt(index)
[K]aze [K]aze
MP
Niveau 7
23 novembre 2015 à 19:23:25

Oh putainnnnn , tu est mon dieux !!!!! Merci , infiniment !

[K]aze [K]aze
MP
Niveau 7
23 novembre 2015 à 19:56:39

Maintenant , problème pour lire le nombre de caractère du tableau , j'ai essayé avec length() mais rien n'y fait vu que mon tableau , ici , n'a pas de nom à part x mais celui-ci retourne compter le nombre de caractère totale du String donc les espaces :/ . Je sais que je peux paraître pénible mais je débute vraiment avec java et désormais je commence à y voir de plus en plus clair grâce à vous , bien plus qu'en cours , merci !

TheRealMarco TheRealMarco
MP
Niveau 10
23 novembre 2015 à 20:00:05

Tu déclarer un int.
Tu fais une boucle de la taille du tableau (.length).
Et tu fais une condition pour comparer le caractère actuel à un espace, ou un retour à la ligne.
Si la condition est validée, tu n'incrémentes pas le int que tu as déclaré au début, sinon tu l'incrémente.

[K]aze [K]aze
MP
Niveau 7
24 novembre 2015 à 19:31:38

Je ne pense pas qu'il y ai besoin de refaire une boucle , je pense qu'il y'a plus simple , je vous montre où j'en suis ,peut-être sera-ce plus clair !

void main() {
String x = "être";
for (int i =0; i < x.length(); i ++) {
if ((int)97 <= (x.charAt(i)) && (int)(x.charAt(i)) <= 122) {
println(x.charAt(0));
}
}
}

Je vais essayé avec une boucle for , l'on verra !

TheRealMarco TheRealMarco
MP
Niveau 10
24 novembre 2015 à 19:54:00

Utilise les balises <code></code> s'il te plait (c'est plus lisible).

void main() 
{
  String x = "être";
  Int nbCar = 0;     // nombre de caracteres
  for (int i =0; i < x.length(); i ++) 
  {
    if ((int)97 <= (x.charAt(i)) && (int)(x.charAt(i)) <= 122) 
    {
       println(x.charAt(0));
       nbCar++;
    }
  }
  println("Il y a " + Integer.toString(nbCar) + " nombre de caracteres);
}

Tu peux rajouter des conditions dans ta boucle if pour inclure les lettres majuscules etc...
Je suis pas sûr d'avoir exactement compris ce que tu voulais réaliser.

DébutPage précedente
12
Page suivanteFin
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : godrik, LGV
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

La vidéo du moment