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 :

Formuler tableau de 2 matrices


Sujet :

C

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 24
    Points : 13
    Points
    13
    Par défaut Formuler tableau de 2 matrices
    Bonjour,

    Je dois créer un tableau à partir d'une multiplication de 2 matrices, une de nombre entier, et l'autre avec des variables déjà déterminées soit
    1.35, 1.40, 1.60. Je dois afficher la multiplication dans un tableau avec ces 3 variables.

    Dans les colonnes sur le terminal, quand je vais faire ''Run'', je dois avoir 3 colonnes en voyant en titre 1.35, 1.40, 1.60 avec le résultat de la multiplication.

    J'ai fait les codes, mais ce n'est pas le bon résultat qui m'affiche.

    Où je me suis trompé?

    Merci
    Nom : Capture d’écran, le 2018-10-08 à 23.01.30.png
Affichages : 3126
Taille : 41,3 KoNom : Capture d’écran, le 2018-10-08 à 22.59.09.png
Affichages : 12794
Taille : 67,2 KoNom : Capture d’écran, le 2018-10-08 à 22.59.23.png
Affichages : 6059
Taille : 35,9 Ko

  2. #2
    Membre averti Avatar de Seabirds
    Homme Profil pro
    Post-doctoral fellow
    Inscrit en
    Avril 2015
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Post-doctoral fellow
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2015
    Messages : 294
    Points : 341
    Points
    341
    Par défaut
    Bonjour!

    Mhh je pense que ton code ressemble plutôt à du C que du C++ Même si il y a une certaine rétrocompatbilité, les langages diffèrent, et les membres de ce forum C++ le rappellent souvent!
    Donc peut-être obtiendrais-tu plus de réponses du côté du forum C

    Sinon quelques petites remarques:

    • plutôt que d'insérer des images, tu as une balise de code (le dièse dans la barre des tâches) pour formater un copier/coller de ton code
    • scanf/printf sont définitivement des trucs à la C
    • tu n'utilises pas une seule fois la bibliothèque standard du C++ ... ce qui confirme que tu fais surtout du C
    Le débutant, lui, ignore qu'il ignore à ce point, il est fier de ses premiers succès, bien plus qu'il n'est conscient de l'étendue de ce qu'il ne sait pas, dès qu'il progresse en revanche, dès que s'accroît ce qu'il sait, il commence à saisir tout ce qui manque encore à son savoir. Qui sait peu ignore aussi très peu. [Roger Pol-Droit]
    Github
    Mon tout premier projet: une bibliothèque de simulation de génétique des populations

  3. #3
    Membre chevronné
    Avatar de emixam16
    Homme Profil pro
    Chercheur en sécurité
    Inscrit en
    Juin 2013
    Messages
    333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Chercheur en sécurité

    Informations forums :
    Inscription : Juin 2013
    Messages : 333
    Points : 1 828
    Points
    1 828
    Par défaut
    Quelques problèmes dans ton code en plus des remarques de seabirds.

    > Qu'est ce que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int A[1.35][1.40][1.60]
    est censé faire? Très clairement, ça ne marchera pas. Renseigne toi comment déclarer un tableau statique
    > Même question pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scanf("%d" A[1.35][1.40][1.60]);
    . D'une part c'est un truc à la C et d'autre part, c'est très faux.
    > Indente ton code!
    > Ton code n'a en l'état aucune chance de marcher. Règle ces problèmes, revois les bases et reviens nous voir après si tu as encore des problèmes.

  4. #4
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 565
    Points : 7 648
    Points
    7 648
    Par défaut
    Bonjour,

    Ça n'est pas du C++, c'est du C à 100%. Ta question doit être posée dans la section "langage C".
    Un tableau de trois valeurs non entières initialisées (en C) s'écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    double A[3] = {1.35, 1.40, 1.60};
    Et la lecture d'un nombre non entier s'écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    double x;
    scanf( "%ld" , &x );
    En C++ c'est différent, on écrira à la place :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    std::array<double,3> A{1.35, 1.40, 1.60};
    double x;
    std::cin >> x;

  5. #5
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    Que ce soit en C ou en C++, un tableau ne peut contenir qu'un nombre entier d'éléments : si tu crées un tableau de pommes, tu ne pourras décider d'y mettre trois pommes, ou tu pourras décider d'y mettre quatre pommes, mais tu ne pourras pas décider d'y mettre ... 3.1415 pommes!!!

    De même, lorsque tu essaye d'accéder à l'un des éléments du tableau, tu ne peux accéder qu'à des éléments entiers : tu peux accéder à la deuxième, à la troisième ou à la quatrième pomme, mais tu ne peux pas accéder à la 3.5eme pomme

    De plus, les taux qui te sont donnés (1.35, 1.40 et 1.60) sont clairement des valeurs réelles (des float ou des double). Si tu essayes de les représenter sous la forme d'entiers (comme des int), cela va poser problème, car il y aura au mieux un arrondi qui sera effectué, au pire, une perte "pure et simple" de la partie décimale (à toi de voir ce qu'il arrive )

    Si bien que, si tu veux regrouper ces taux dans un tableau, tu dois les regrouper dans un tableau de ... valeurs réelles (float ou double).

    Et, comme les deux monnaies utilisent deux chiffres après la virgule (pour représenter les cents), la conversion -- dans un sens ou dans l'autre -- produira forcément des résultats ... avec deux chiffres après la virgules (théoriquement, même au moins quatre chiffre derrière la virgule, si pas d'avantage )

    Si tu veux créer un tableau à deux dimensions qui reprennent plusieurs valeurs pour chacun de ces taux, il faudra commencer par définir l'ordre dans lequel tu veux obtenir ces valeurs : veux tu obtenir les valeurs en CAN$ à partir de valeurs en € pour les différents taux ou veux tu obtenir des valeurs en € pour les différents taux à partir de valeurs en CAN$

    Car, selon la réponse à cette question, l'organisation des données au niveau de ta matrice sera différente.

    Enfin, retiens toujours que, si tu veux créer une matrice composée de L lignes et de C colonnes, c'est que tu veux pouvoir représenter L*C éléments, et que tu peux donc les représenter dans un tableau "classique" capable de contenir ces L*C éléments.

    Pour accéder à l'élément qui se trouve à la ligne line et à la colonne row, il suffit d'utiliser la formule element_recherche = line * C + rowA l'inverse, pour retrouver la ligne et la position de l'élément dont tu connais l'indice dans ce tableau, la formule sera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    row = indice % C;
    line = indice / C;
    Pour le reste, je ne peux que valider ce qu'ont dit mes collègues : tu devrais relire ton cours, car je suis sur que tu devrais y trouver toutes les informations dont tu as besoin pour résoudre le problème (pourtant simple) qui t'est présenté!
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  6. #6
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    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 690
    Points : 30 985
    Points
    30 985
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Un tout petit détail: ce n'est pas parce que le résultat doit être affiché sous forme de tableau qu'il faut obligatoirement stocker le résultat dans un tableau avant. On peut très bien, pour une somme, afficher les 3 taux différents et passer à la somme suivante. Le résultat sera alors bien affiché sous forme de tableau.

    D'ailleurs quand je lis l'énoncé j'ai de plus en plus de doute sur la nécessité d'avoir deux matrices. En effet, c'est écrit "programme qui effectue la conversion en euro d'une somme exprimée en dollars". Pour moi, "une somme" ne nécessite pas de la stocker dans une matrice. Seule la matrice des taux de change suffit. Et encore, comme il s'agit de 3 taux, c'est donc un simple tableau de 3 doubles qui ne justifie alors plus vraiment le terme de "matrice". Bref voilà comment on passe de "tableau de 2 matrices" à "valeur simple et tableau de 3 doubles" ce qui est nettement plus facile à traiter.

    Citation Envoyé par mohck Voir le message
    J'ai fait les codes, mais ce n'est pas le bon résultat qui m'affiche.
    Je suis surpris que ce code arrive à compiler assez loin pour afficher quelque chose !!!

    Citation Envoyé par mohck Voir le message
    Où je me suis trompé?
    Euh... partout en fait. Rien que ici int A[1.35][1.40][1.60] montre que tu es très loin d'avoir les bases des bases.
    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]

  7. #7
    Membre averti
    Avatar de exe2bin
    Profil pro
    Passionné de programmation
    Inscrit en
    Mars 2009
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Passionné de programmation

    Informations forums :
    Inscription : Mars 2009
    Messages : 537
    Points : 387
    Points
    387
    Billets dans le blog
    3
    Par défaut
    Salut ,
    je m'étonne que certains évoque le langage C++ car il n'en est aucunement fait mention dans l'énoncé !?
    En ce qui concerne l'exercice plutôt trivial ,tu devrais te concentrer sur les entrées/sortie en C puisque visiblement
    on te demande d'afficher un/des résultat(s) sous forme de tableau ce qui laisse penser à un usage intensif de
    printf() ; tu pourrais aussi envisager de stocker les taux de change dans des constantes flottantes ,genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    const float taux1 = 1.35;
    const float taux2 = 1.40;
    const float taux3 = 1.60;
    Tu vas y arriver !

  8. #8
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    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 690
    Points : 30 985
    Points
    30 985
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par exe2bin Voir le message
    je m'étonne que certains évoque le langage C++ car il n'en est aucunement fait mention dans l'énoncé !?
    Je pense que le sujet a été posté au début en section C++ par erreur puis déplacé ensuite ici par un modo.

    Citation Envoyé par exe2bin Voir le message
    tu pourrais aussi envisager de stocker les taux de change dans des constantes flottantes ,genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    const float taux1 = 1.35;
    const float taux2 = 1.40;
    const float taux3 = 1.60;
    Non. Là clairement non. Déjà c'est antinaturel pour tout développeur habitué. Si je dois traiter 3 trucs de même nature je les stocke dans un tableau pour profiter au maximum de la factorisation des traitements par le biais des boucles et des indices. C'est pratique, évolutif (on peut facilement passer de 3 taux à 50 taux sans rien changer au code). Et donc l'inciter à partir sur cette voie "de facilité" le desservira plus tard quand il aura besoin d'avoir le réflexe "tableau" mais qu'il ne l'aura pas acquis. Et en plus je pense qu'il s'agit ici d'un exercice/tp fait pour apprendre à manipuler les tableaux.

    Citation Envoyé par exe2bin Voir le message
    Tu vas y arriver !
    Ouais enfin le mec on l'a pas revu sur le forum depuis 10 jours donc à mon avis il n'y est pas arrivé mais trop pas du tout quoi ; et il a attendu la correction du prof.
    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. formule pour créer une matrice
    Par valenton dans le forum Excel
    Réponses: 14
    Dernier message: 02/09/2012, 20h36
  2. [XL-2002] [FORMULE] Tableau croisé dynamique et cellules vides
    Par jipie dans le forum Excel
    Réponses: 3
    Dernier message: 07/03/2010, 14h18
  3. Conversion tableau 2D ou matrice en chaîne
    Par Florian V dans le forum LabVIEW
    Réponses: 2
    Dernier message: 25/01/2010, 15h09
  4. chercher un tableau dans une matrice
    Par devdébuto dans le forum C
    Réponses: 12
    Dernier message: 11/12/2005, 01h26

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