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 :

ecriture d'une table en C


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2022
    Messages : 2
    Points : 1
    Points
    1
    Par défaut ecriture d'une table en C
    Mon professeur nous a donné un TP a faire pour dimanche unique probleme est j'etait absent la derniere semaine et tout ce qu'ils m'ont etait debrouille toi et voit avec les autres ma classe etant tres social je ne pense pas vraiment obtenir de l'aide donc je ne vois pas vraiment d'autre option apart une aide externe de forums.
    voici l'exercise:

    3)
    Faire une table de la fonction sin(x) pour x de 0 à 92°, en deux colonnes :
    X SIN(X) X SIN(X)
    0 46
    . .
    . .
    45 92

    Ecrire l'algorithme puis la traduction en C.
    Donnez une copie du résultat obtenu.

    4)
    On se propose de calculer C , nombre de façons possibles de choisir P objets pris parmi N à l'aide de la formule mathématique
    n!
    C = -----------
    p! ( n-p )!
    Ecrire l'algorithme puis la traduction en C.
    Donnez les résultats pour :
    p=3 n=3
    p=2 n=3
    p=2 n=4

    5)
    Vous avez le listing d'un programme C fournit en Annexe.
    5-1- remplir à la place des commentaires le résultat attendu,
    5-2- tapez le programme et vérifier .

    // Etude de comparaisons et d'évaluations d'expressions
    //
    int main()
    {
    int x = 11,y = 11,z = 11;
    char a = 40,b = 40,c = 40;
    float r = 12.987,s = 12.987,t = 12.987;
    // premier groupe de comparaisons
    if (x == y) z = -13; //
    if (x > z) a = 'A'; //
    if (!(x > z)) a = 'B'; //
    if (b <= c) r = 0.0; //
    if (r != s) t = c/2; //
    // second groupe de comparaisons
    if (x = (r != s)) z = 1000; //
    if (x = y) z = 222; //
    if (x != 0) z = 333; //
    if (x) z = 444; //
    // troisième groupe de comparaisons
    x = y = z = 77;
    if ((x == y) && (x == 77)) z = 33; //
    if ((x > y) || (z > 12)) z = 22; //
    if (x && y && z) z = 11; //
    if ((x = 1) && (y = 2) && (z = 3)) r = 12.00; //
    if ((x == 2) && (y = 3) && (z = 4)) r = 14.56; //
    // quatrième groupe de comparaisons
    if (x == x); z = 27.345; //
    if (x != x) z = 27.345; //
    if (x = 0) z = 27.345; //
    Return 0;
    }

    6)
    Une classe d'étudiants a obtenu les notes suivantes pour trois examens passés dans un cours de logiciel :
    numéro de l'étudiant notes d'examen ( / 100 )
    1001 45 80 80
    1002 60 50 70
    1003 40 30 10
    1004 0 5 8
    1005 82 94 85
    1006 15 25 20

    Ecrivez un algorithme puis sa traduction en C de type conversationnel qui accepte comme données d'entrée le numéro de l'étudiant et
    ses notes, qui calcule la moyenne pour chaque étudiant et imprime le numéro de l'étudiant, les notes de chaque examen et la moyenne
    calculée.
    Rédigez un programme aussi général que possible.

    7)
    Ecrire un algorithme qui réalise la conversion d'un caractère en sa valeur numérique ( code Ascii ), jusqu’a ce que le caractère entré
    soit $. Traduire cet algorithme en C.

    voila je n'est absolument aucune idée de comment faire cette exercise vraiment aucune apart peut-etre qu'ils faut utiliser des boucles pour certains exercise et que j'ai reussi a faire l'exercise 1 en cherchant comment faire les autres exercise.
    Merci d'avance pour ceux qui m'aideront.

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    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 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par evolio133 Voir le message
    voila je n'ai absolument aucune idée de comment faire cette exercice vraiment aucune
    Si vraiment tu n'as aucune idée, alors attend le corrigé parce que aider c'est guider quelqu'un qui avance déjà, le guider dans la bonne direction. Mais celui qui n'avance pas on ne peut pas avancer à sa place.
    3° exercice: écrire la table de sin(x). Ensuite on voit deux colonnes, la première de 0 à 45 et la seconde de 46 à 92. C'est quoi le lien entre chaque couple (0, 45) et (46, 92)? Trouve ce lien.
    Et comment ensuite faire afficher n lignes avec 2 valeurs par lignes? Trouve cette méthode
    Ensuite commence déjà par simplement afficher les nombres, juste les nombres, rien de plus. Quand tu en seras là, revient poster ton code (entre balises [code] et [/code] comme mentionné dans les règles et aussi dans ma signature) et on te montrera comment alors passer de "afficher n" à "afficher sin(n)".

    Citation Envoyé par evolio133 Voir le message
    unique probleme est j'etait absent la derniere semaine
    ...
    On se propose de calculer C , nombre de façons possibles de choisir P objets pris parmi N
    Soit vous avez des semaines 100% full programmation en H24, soit tu étais absent bien plus qu'une semaine. Parce que calculer C(n, p) c'est pas super compliqué mais ça demande déjà une certaine habitude. Et entre "afficher bêtement n fois X Y" et cette fonction il y a quand-même pas mal d'écart !!!
    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
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    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 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Je ne veux pas être méchant, mais effectivement cela fait assez peur sur ton niveau en programmation ... tout est dans les premiers cours.

    2 - 3 conseils:
    • La fonction sinus se trouve dans l'entête math.h (<- lien cplusplus en anglais, cmath c'est pour le C++)
    • Tu sembles n'avoir besoin que des tableaux statiques. Par exemple pour le premier exercice double tab[46][4] = {0}.
    • Il faut coder la fonction factorielle pour le deuxième exercice en gros unsigned int factoriel(unsigned int /* ou size_t*/ n) { return ((n > 2)? (factoriel(n - 1) * n): n); }.
    • dans le dernier exercice, il faut regarder la table ASCII et faire 1 translation de '0' Édit : @-Eks- a raison, j'ai lu trop vite il faut coder la fameuse fonction ord().

  4. #4
    Membre averti
    Homme Profil pro
    très occupé
    Inscrit en
    Juillet 2014
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : très occupé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 137
    Points : 411
    Points
    411
    Par défaut
    @evolio133 :

    Il n'y a pas un seul exercice, mais 5. Lequel te pose problème ?

    Le 1er exercice (numéroté 3°) n'est pas difficile. Il faut juste savoir que la fonction standard du C sin() travaille avec des radians et que tu devras convertir tes degrés. Après c'est juste un problème d'affichage en boucle de 46 lignes .

    Pour C(n,p) il faudra que tu te crées une fonction factorielle, car elle n'existe pas en standard dans le langage C. foetus t'a donné un exemple récursif, tu peux le faire aussi sous la forme d'une simple boucle for.

    Pour les comparaisons et évaluations d'expressions ce n'est pas dur, c'est juste long et chiant. Il y a 2 ou 3 finesses à savoir, du genre qu'une expression dont le résultat s'évalue à 0 signifie "faux" en C que toute autre valeur signifie "vrai", la différence entre l'opérateur d'affectation = et d'égalité ==

    Pour les notes d'étudiants le commentaire "Rédigez un programme aussi général que possible" est un peu énigmatique. Puisque le programme est interactif, tu devras obtenir les données de l'utilisateur avec scanf() par exemple. Tu pourrais faire un programme qui décode les lignes quelque soit le nombre de notes et quelque soit le nombre d'étudiants. C'est peut-être cela que signifie l'indication "aussi général que possible"... Pour te donner une idée, voilà un programme d'exemple que j'ai bricolé qui fait l'addition successive d'entiers tapés les uns à la suite des autres sur une ligne.

    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
    #include <stdio.h>
     
    int main(void) {
            printf("Veuillez taper des nombres entiers séparés par des espaces, "
                   "et taper Entrée, pour afficher l'addition de ces nombres\n");
            int addition = 0;
            int n;
            while (scanf("%d", &n) == 1) {
                    addition = addition + n;
                    int c = getchar();
                    if (c == '\n')
                            break;
            }
            printf("L'addition de ces différents nombres donne : %d\n", addition);
     
            return 0;
    }
    (c'est juste une base simple à travailler pour te montrer que le nombre de valeurs à récupérer peut ne pas être prédéterminé - dans ton cas tu voudras peut être utiliser un type différent, si tu veux pouvoir prendre en compte des notes avec une partie décimale...)

    Pour le dernier concernant les valeurs ASCII tu as déjà des indications, mais je ne pense pas que l'exercice demande de "faire 1 translation de '0'" comme le mentionne foetus (ce qui peut être utile dans un autre type d'exercice classique de conversion numérique). Si on lit "conversion d'un caractère en sa valeur numérique ( code Ascii )" on peut comprendre qu'il faut afficher le code ASCII d'un caractère saisi (et s'arrêter lorsque '$' est rencontré). C'est tout. En C, il faut aussi que tu aies à l'esprit que '$' désigne ce char et que char est déjà un type entier consistant déjà, dans le cas de ce caractère, dans son code ASCII que tu n'as pas vraiment à déterminer puisqu'il suffit de comparer le char à '$'. Quant à afficher la valeur numérique ASCII d'un char saisi, il suffit d'afficher le char avec le bon spécificateur de printf() permettant d'afficher un entier, et rien d'autre.

  5. #5
    Membre averti
    Homme Profil pro
    très occupé
    Inscrit en
    Juillet 2014
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : très occupé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 137
    Points : 411
    Points
    411
    Par défaut
    Citation Envoyé par foetus Voir le message
    @-Eks- a raison, j'ai lu trop vite il faut coder la fameuse fonction ord().
    Pas besoin de créer une fonction ord().

    Le type char est un type entier, 'a' vaut 97 :


  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2022
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    J'ai quelque base comme les printf les scanf et d'autre depuis le depuis de l'année mais j'ai etait absent une semaine pasque j'etait malade et visiblement il ont vu plein de trucs d'un coup sur les boucle j'ai vu quelque truc avec while/for et les if else mais la j'ai aucune idée de quoi faire mais vraiment c'est que ma premiere année en bts sn et je sens que je vais pas passé la seconde année pasque si ont utile sa tout le long de l'année et que je comprend toujours pas comment les utilisé autant que je quitte la filiaire tout de suite.

    puis en soit ce qui me pose probleme c'est que je sais pas de quoi partir je sais pas quelle fonction je suis sensé utilisé pour moi c'est aussi incomprehensible que des hieroglyphe mais si je comprend bien vu toute les reponse j'ai un serieux retard juste avec une semaine d'absence ou mes profs avance trop vite?

    puis je n'est pas 24h de tp informatique ont en a meme pas 12 par ce que desfois il y a une heure ou les profs font du cours et nous laisse pas faire les tps donné et tout ce qui nous explique dans ces cours c'est l'algo et pas comment le traduire en C c'est a nous apres de trouver ou de chercher sur internet comment et oui j'ai chercher comment faire ces exercises sur internet avant de venir demander de l'aide ici
    mais j'ai la serieuse impresion que je vais juste avoir une mauvaise note a ce tp et que je devrais comprendre plus tard sur le tas.

    il me reste aujourd'hui et demain pour faire le tp ou au moins le plus possible.

  7. #7
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    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 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par evolio133 Voir le message
    j'ai etait absent une semaine pasque j'etait malade
    J'espère que tu es bien conscient qu'un jour ou l'autre, cette excuse sera complètement éculée. D'ailleurs elle a peu de valeur en réalité. Ben oui, tu n'es plus au CP. Tu es malade ben tu récupères les cours ; et/ou tu télécharges un tuto de C sur le net et tu rattrappes.

    Citation Envoyé par evolio133 Voir le message
    mais la j'ai aucune idée de quoi faire
    Donc si je te dis "affiche les nombres de 0 à 45" (exercice 3) tu ne sais pas comment faire ??????
    Admettons. Mais dans ce cas, tu te prends par la main et tu t'emmènes sur le net télécharger un tuto de C pour débutant (il y en a de partout gratuitement). En t'y mettant sérieusement en 1h c'est réglé (ce genre de truc est expliqué dans le 15 premières pages) !!!

    Ensuite pour les autres ok on peut laisser tomber, ça va effectivement demander pas mal de notions et de réflexes un peu longs à acquérir. Je suis d'ailleurs étonné qu'en une semaine, avec parfois "même pas 12h de cours" comme tu le dis, ils aient pu aller aussi loin. Ben oui, faut être logique, soit ils avancent super vite et en une semaine t'es largué, soit ils avancent super lentement tellement qu'une semaine d'absence compte pour que dalle. Mais ils ne peuvent pas faire les deux à la fois.
    Mais l'exercice 5 (je les donne par numéro et non pas par rang, donc l'exercice numéroté 5 est le 3° dans ta liste) est vraiment facile
    On te donne des variables, puis des expressions et on te demande de mettre en commentaire la valeur attendue selon si l'expression est vraie ou pas. Rien d'autre, juste de remplir le commentaire de chaque ligne !!! Sans déconner quoi, suffit juste de lire la ligne. Sors-toi donc un peu les doigts aussi.
    Premier exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int x = 11,y = 11,z = 11;
    // premier groupe de comparaisons
    if (x == y) z = -13; //
    Est-ce que x est égal à y ??? Ben oui, ça se voit (11 égale 11). Donc le if est vrai donc z passe à -13 et la ligne devient if (x == y) z = -13; // z = -13.
    Puis if (x > z) a = 'A'; // oui puisque x vaut 11 et z vaut maintenant -13, il est clair (enfin pour moi) que 11 est supérieur à -13 (si tu ne sais pas évaluer les relations d'ordre, te suffit d'écrire les nombres sur une ligne de la gauche vers la droite, et si un nombre est à droite d'un autre alors il lui est supérieur) donc la ligne devient if (x > z) a = 'A'; // a='A'.
    Puis if (!(x > z)) a = 'B'; // ben non puisque x (11) est toujours plus grand que z (-13) donc le "not (x>z)" est faux donc la ligne devient if (!(x > z)) a = 'B'; // a = 'A' (on reste sur la valeur précédente de a).
    Et tout le reste à l'avenant. Tu ne vas pas me dire que ça c'est des hiéroglyphes !!! A mon avis c'est juste du découragement. Pourtant comme je viens de te le montrer, c'est franchement pas compliqué. Suffit d'écrire tes valeurs sur un papier et à chaque fois tu vérifies et si la valeur change tu le modifies sur ton papier et tu passes à l'instruction suivante.

    Citation Envoyé par evolio133 Voir le message
    et tout ce qui nous explique dans ces cours c'est l'algo et pas comment le traduire en C
    Ca c'est la connaissance du C. Si en algo on te dit "faire une boucle de 0 à 45", tu dois savoir de toi-même l'écrire en C. Et c'est créer l'algo qui est le plus compliqué, une fois l'algo obtenu, le traduire ça reste de la recopie dans la bonne syntaxe. C'est de la bête traduction littérale.

    Citation Envoyé par evolio133 Voir le message
    mais j'ai la serieuse impresion que je vais juste avoir une mauvaise note a ce tp
    On ne travaille pas pour la note mais pour soi. La note n'est qu'un moyen de te montrer ton niveau, et si on travaille pour augmenter ce niveau, la note augmente en parallèle. La note est donc une conséquence du travail accompli, pas un but.
    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. Ecriture dans une table
    Par NFHnv dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 21/11/2012, 10h53
  2. [mySQL-C]Ecriture dans une table
    Par fx007 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 05/02/2007, 15h18
  3. conflit d'ecriture dans une table
    Par laurent.w dans le forum Access
    Réponses: 6
    Dernier message: 25/01/2007, 17h02
  4. Verrouiller une table en lecture ecriture
    Par ullgom dans le forum Access
    Réponses: 1
    Dernier message: 18/12/2006, 16h16
  5. fonction ecriture dans une table
    Par smbpopov33 dans le forum Access
    Réponses: 5
    Dernier message: 20/06/2005, 14h52

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