begin process at 2012 05 29 04:48:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

fonction avec 2 test


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

fonction avec 2 test

mardi 10 novembre 2009 à 21:59:24 | fonction avec 2 test

flowneo

Bonjour,

Je voudrais faire une fonction qui contient 2 conditions (2 test à faire), je vous explique:

Une fonction test qui va vérifier que la saisie utilisateur est correct, celle-ci vérifie dans 1 premier temps si les caractères voulue sont bien saisie ( par exemple aeiouy):

for (i=0; i<longueurMot; i++){ //boucle pour extraire chaque caractère 1 à 1
string extrait= mot.substr(i,1);
if (extrait != "a" & extrait != "e" & extrait != "i"& extrait != "o" & extrait != "u"& extrait != "y"){ //compare chaque caractère pour vérifier la saisie
cout<<"erreur de saisie"<<endl;
return true; //si erreur
}
}return false;

j'ai donc réussi a faire cela , mais maintenant je voudrais inclure dans ma fonction test un deuxieme test qui va vérifier que l'utilisateur ne rentre pas 2 fois la même lettre...et a la fin je voudrais avoir return(bool); de l'ensemble de la fontion.

jespere que vous comprendrez ce que je veux dire...
merci à ceux qui vont m'aider !
mercredi 11 novembre 2009 à 00:30:01 | Re : fonction avec 2 test

CptPingu

Administrateur CodeS-SourceS
Ouch horrible !
Ta fonction n'est particulièrement pas optimisé. Tu recopies une sous-chaines de taille 1 à chaque itération. Il te suffit juste de regarde le caractère courant.
De plus le symbole "ET" est "&&" et non "&" (qui a un sens légèrement différent).

Voilà une amélioration de ton code.
Code C/C++ :
#include <iostream>

bool stringContains(const std::string& s, char c)
{
  const int size = s.length();

  for (int i = 0; i < size; ++i)
    if (c == s[i])
      return true;

  return false;
}

bool letterIsUnique(const std::string& s)
{
  const int size = s.length();

  for (int i = 0; i < size - 1; ++i)
    for (int j = i + 1; j < size; ++j)
      if (s[j] == s[i])
	return false;

  return true;
}

bool test(const std::string& chaine, const std::string& whiteList)
{
  const int size = chaine.length();

  // Vérifier que le caractère en cours n'est pas interdit
  for (int i = 0; i < size; ++i)
    if (!stringContains(whiteList, chaine[i]))
      return false;

  // Maintenant on vérifie qu'aucune lettre n'est en double
  return letterIsUnique(chaine);
}

int main()
{
  std::cout << test("Tete", "aeiouy") << std::endl;
  std::cout << test("eayi", "aeiouy") << std::endl;
  std::cout << test("eau", "aeiouy") << std::endl;
  std::cout << test("eaau", "aeiouy") << std::endl;
  std::cout << test("", "aeiouy") << std::endl;

  return 0;
}


Cette discussion est classée dans : fonction, test, extrait, vérifier, saisie


Répondre à ce message

Sujets en rapport avec ce message

Fonction de saisie [Débutant] [ par nsr974 ] Bonjour à tous,Voilà mon problème : Je dois réaliser une fonction de saisie qui serait capable de prendre soit une ou plusieurs variables, par exemple GTK+-2.0, saisie d'un int ! [ par zazar ] G me demande si la réalisation d'une fonction retournant un int qu'un utilisateur à rentré par le biais d'une fenetre nécessite forcément une conversi Touches de fonctions [ par CHENRY ] En VC++6.0 avec les MFC, je souhaite employer les touches de fonction( F1 à F8) .Le but est:Dans un ecran de saisie, quand l'user est sur un champ de [?] Saisie d'une fonction [ par Cidrik ] Salut,Je débute en C et j'aimerais créer un programme qui réalise une étude de fonction (niveau 1°S) mais j'aimerais savoir comment faire pour que qua Créer un masque de saisie en C [ par jimmi ] Bonjour, J'ai cherché partout mais en vainje développe un petit prog. en C qui fonctionne sur des lecteurs code barre.N'etant pas un grand Spécialiste Pointeur sur fonction envoyé par dll [ par MoDDiB ] Voila ce que j'ai fais mais ca ne marche pas :Dll :#include BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved){ retu sasie d'un ligne [ par liliefr2000 ] bonjour!jai un probleme lorsque je veux faire une fonction pour saisir une ligne en C!ma fonction saisir_ligne doi appele une fonction qui saisie un m répeter une action /fonction ?? [ par hansmeier ] //******************************************************* #include "stdafx.h" int APIENTRY WinMain(HINSTANCE hInstance, Arbre représentant une fonction mathématique [ par r_farez ] Salutje recherche un programme qui permet de générer un arbre binaire représentant une fonction mathématique saisie par l'utilisateur. (ex : ln(3x²) / Uttilisation la fonction d'une DLL [ par aDebhian ] Pour ce faire, j'ai lu msdn, codes-sources et j'en suis arrivé à ceci: [FONCTION DLL] extern "C" __declspec(dllexport) int tests(int test) {     retu


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales