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

 C Discussion :

Besoin assistance langage C : valeurs paires et affichage de l'heure


Sujet :

C

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2023
    Messages : 2
    Par défaut Besoin assistance langage C : valeurs paires et affichage de l'heure
    Comment écrire une fonction avec un argument de type entier et qui va retourner le
    nombre de valeurs paires supérieures à deux entre le nombre en argument et le
    nombre 100

    Comment écrire une fonction à trois arguments (une heure, une minute et une seconde) et
    qui va afficher l’heure suivante après une minute.

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Lenouveau35 Voir le message
    Comment écrire une fonction avec un argument de type entier et qui va retourner le
    nombre de valeurs paires supérieures à deux entre le nombre en argument et le
    nombre 100
    J'aurais tendance à dire "avec un éditeur" mais je sens que ta question n'a pas été posée dans cette optique.
    Le souci c'est que c'est un peu curieux comme question. "Comment écrire une fonction"... je présume que tu as eu des cours de C, des exemples de fonctions donc à priori tu devrais savoir le faire. Et si c'est pour l'algo alors réponse: boucles, conditions, comptage, retour de valeur. Et tout ça dans ladite fonction.

    Citation Envoyé par Lenouveau35 Voir le message
    Comment écrire une fonction à trois arguments (une heure, une minute et une seconde) et
    qui va afficher l’heure suivante après une minute.
    Un peu pareil. Incrément de +1 sur les minutes, test si 60 alors mise à 0 et incrément +1 sur les heures (le paramètre "secondes" semble n'avoir ici aucun intérêt ou alors j'ai pas pigé l'énoncé).
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2023
    Messages : 2
    Par défaut
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    int main()
    {
       int nbr;
     
       printf("Entrez un entier:\n");
       scanf("%d", &nbr);
     
       if (nbr % 2 == 0)
          printf("Paire\n");
       else
          printf("Impaire\n");
     
       return 0;

    Je suis parti de ce code en intégrant une boucle.

    for(i=2; i<=100; i++) Mais toujours pas de solution...

  4. #4
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 769
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 769
    Par défaut
    Citation Envoyé par Lenouveau35 Voir le message
    Mais toujours pas de solution...
    Sérieux

    Même s'il faudrait des exemples pour complétement comprendre "le nombre de valeurs paires supérieures à deux entre le nombre en argument et le nombre 100".
    Les valeurs paires, c'est 1 valeur sur 2

    C'est 1 truc comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (n > 2) { first <- n; } else { first <- 4; }
    if (first impair) { first <- first + 1; }
    nb_valeurs_paires <- ((100 - first) / 2) + 1; // division entière
    Par contre "va afficher l’heure suivante après une minute" je sèche
    C'est 1 fonction qui affiche (spoiler: printf, lien cplusplus.com en anglais)
    Par contre, si on ajoute 1 minute, il y a 1 chance sur 60 qu'on change d'heure. Et on ne gère pas les secondes

    Édit : l'heure, c'est l'heure (HH:MM:SS) et non pas l'heure (la valeur de HH dans HH:MM:SS) donc @Sve@r a sûrement raison

  5. #5
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 785
    Par défaut
    Suite au message de sve@r


    Comme l'écrit @foetus, il n'y a même pas besoin de boucle, et soit dit en passant, je ne vois pas de fonctions dans ton code (si ce n'est le main() évidemment)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #include <stdbool.h>
     
    #define VAL_MAX	100
     
    bool IsEven(int nbr) {
     	return(nbr%2 ? false : true);
    }
     
    int EvensFound(int nbr) {
    	return( (VAL_MAX-nbr)/2 - (IsEven(nbr) ? 1 : 0) );
    }

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Lenouveau35 Voir le message
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    int main()
    {
       int nbr;
     
       printf("Entrez un entier:\n");
       scanf("%d", &nbr);
     
       if (nbr % 2 == 0)
          printf("Paire\n");
       else
          printf("Impaire\n");
     
       return 0;
    Ok. Ca c'est un algo qui, à partir d'un nombre saisi, détermine s'il est pair ou impair. Cette structure de test ne changera jamais. Reste à l'intégrer dans une boucle ce qui te permettra de checker tous les nombres et non un seul. Et mettre tout ça dans une fonction.

    Citation Envoyé par Lenouveau35 Voir le message
    Je suis parti de ce code en intégrant une boucle.

    for(i=2; i<=100; i++) Mais toujours pas de solution...
    Faut travailler étape par étape. Déjà on te dit "écrire une fonction qui..." donc quelque part il faut au-moins commencer par écrire une fonction!!!
    Ensuite cette fonction doit recevoir un nombre et boucler à partir de ce nombre jusqu'à 100. Donc faut intégrer effectivement la boucle dans la fonction. Et ainsi de suite...

    Citation Envoyé par foetus Voir le message
    Par contre "va afficher l’heure suivante après une minute" je sèche
    Oui j'ai eu aussi ce souci de compréhension. Au début je pensais à une horloge qui affiche les secondes entre hh:mm:ss et hh:mm+1:ss mais en relisant mieux j'en ai conclu que la fonction recevait hh:mm:ss et affichait connement hh:mm+1:ss (avec évidemment le piège de mm+1=60 à gérer)

    Citation Envoyé par edgarjacobs Voir le message
    Comme l'écrit @foetus, il n'y a même pas besoin de boucle
    Ouais mais faut être un peu plus conciliant. Sinon l'étape suivante de cette logique sera de dire que le nb de pairs entre n et 100 on s'en bat le steak.
    On sent bien là que le prof a essayé de proposer un exercice faisant intervenir une boucle. Il s'est peut-être raté en ne réalisant pas que la boucle est inutile mais faut essayer de voir plus le but de l'exercice (apprendre les boucles, apprendre à tester les choses dans les boucles, etc).
    C'est pareil, si je vois un exercice demandant la somme des nombres entre 1 et n, même si cette somme est égale à n * (n+1) / 2 je proposerais quand-même de faire ça dans une boucle.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Besoin d'aide java.lang.NullPointerException
    Par youness78 dans le forum Général Java
    Réponses: 8
    Dernier message: 10/11/2009, 16h11
  2. Débuter en Delphi - Besoin d'assistance
    Par japps dans le forum Débuter
    Réponses: 1
    Dernier message: 08/08/2009, 09h01
  3. Réponses: 4
    Dernier message: 23/12/2008, 08h34
  4. [Débutant] Besoin d'assistance fichier texte
    Par kouroux dans le forum Fortran
    Réponses: 7
    Dernier message: 13/02/2007, 00h09

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