-3
votes

Signification de la signature longue entier

J'ai l'exigence suivante:

Créer les fonctions de la liste linéaire: Createlist, Addnode, Deletenode, SEARCHNODE et Supprimist, pour une liste détenant des entiers longs signés.

Je suis confus à propos de 2 terminologies ici Le sens des entiers longs signés signifie ici-t-il ici:

"Tout entier long positif ou négatif, y compris 0"?

Est-ce que je manque quelque chose?

et 2e

par "Liste linéaire" signifie-t-il une liste unique ou double liée?

merci


1 commentaires

Dites à votre professeur s'il pose des questions stupides, ils obtiennent des prix stupides.


3 Réponses :


0
votes

Un entier "signé" est un entier avec un "signe" indiquant s'il s'agit d'une valeur négative ou positive.

Un entier "long" qui peut être plus long que l'INT en fonction de l'architecture. Sur 32 bits, un long est d'au moins 32 bits et de la même taille que l'INT, sur un système 64 bits, un long est de 64 bits.

Vous n'avez pas besoin de spécifier "Signé" car il s'agit de la valeur par défaut, déclarant simplement une variable sous forme de long en fera une variable longue signée. D'autre part, si vous ne vouliez qu'une valeur positive, vous auriez besoin de le spécifier comme non signé long .

Pour un entier signé, le maximum est 1/2 le maximum d'un non signé car il est divisé au milieu. Par exemple, une plage d'entiers non signée de 16 bits est de 0 à 65535, mais une gamme d'entier de 16 bits signée est de -32768 à 32767.

Une liste linéaire est exactement que, une liste qui se trouve dans une commande linéaire, elle ne spécifie pas comment vous devez la créer, car les fonctions utilisent la terminologie "noeud", je supposerais qu'une liste liée serait convenir au paradigme plus correctement. Voir std :: Liste Comme cela conviendrait probablement à ce que vous faites.


3 commentaires

Un entier "long" qui peut être plus long que l'INT en fonction de l'architecture. Sur 32 bits longs est de 64 bits, sur un système de 64 bits, une longue est de 64 bits. aucune garantie d'aucun de cela n'est correct. long est d'au moins 32 bits et au moins la même taille de taille de int . Tout le reste est à la mise en œuvre, et rien n'empêche la mise en œuvre de faire tous les types de données intégrés 64 bits. Ne riez pas. Crayon faisait presque exactement cela.


Merci pour la correction, c'est exactement pourquoi j'utilise stdint.h définit.


"tu ne peux pas non plus" - je peux.



3
votes

J'ai l'exigence suivante:

Créer les fonctions de la liste linéaire:

Ce libellé est déjà étrange pour C ++. En C ++, plusieurs fonctions qui fonctionnent sur les mêmes données sont généralement regroupées dans une classe.

Createlist, Addnode, Deletenode, Numéro de recherche et Suppression,

  • une classe a un nom, dans ce cas Liste ou LinkedList .
  • Étant donné que les fonctions sont définies à l'intérieur de la classe, leurs noms n'ont pas besoin de contenir le mot list comme cela serait redondant.
  • Les noms de fonction ne doivent pas non plus contenir le mot nœud car c'est un détail de mise en œuvre sur lequel l'appelant de ces fonctions ne devrait pas s'inquiéter.
  • La fonction CreateElist doit être le constructeur de la classe. Les constructeurs n'ont pas de nom.
  • La fonction Suppression doit être le destructeur de la classe. Les destructeurs n'ont pas de nom.

    Pour une liste tenant des entiers longs signés.

    Lors de la conception d'un type de données, il est plus facile au début de fonctionner avec un seul type de données concret. Plus tard, le type de données est généralement remplacé par un espace réservé afin que cette liste puisse être utilisée avec n'importe quel type, ce qui en fait une classe de modèle. Aux fins de cet exercice, votre professeur signifie très probablement le type unique long int (qui est implicitement signé). Si vous le souhaitez, vous pouvez également écrire signé long int , c'est équivalent.

    par "Liste linéaire" signifie-t-il une liste unique ou double liée?

    Nous ne pouvons pas vous dire. C'est quelque chose que vous devez demander à votre professeur.

    en idiomatic c ++, la structure de base de la définition de type ressemblerait à ceci, j'ai laissé de côté les détails de la mise en œuvre: xxx

    Dans la bibliothèque standard C ++, la fonction recherche semble un peu différente (elle renvoie un itérateur au lieu d'une valeur booléenne), mais pour un débutant, le booléen est assez bon. Les itérateurs seront enseignés plus tard.

    En résumé, vos instructions actuelles vous feront écrire un code avec une structure simple, ce qui est bon pour l'apprentissage. Mais soyez conscient que le code résultant n'est pas considéré comme un bon code C ++. Après avoir introduit les concepts nécessaires, votre professeur vous permettra de transformer le code actuel en bon C ++ ultérieurement. Si cela ne se produit pas dans les prochains mois, vous pouvez publier votre code actuel (qui doit fonctionner comme prévu) sur https: //codereview.stackexchange. com / Pour que les programmeurs expérimentés C ++ vous disent ce que cela devrait vraiment ressembler, et pourquoi.


0 commentaires

0
votes

C'est la terminologie d'enseignement, voici la traduction:

  • Liste linéaire - une liste qui n'est pas circulaire (le dernier nœud n'est pas lié au premier nœud). Peut être seul ou double liée. Si non spécifié, l'enseignant veut généralement seul, mais vous devriez demander.
  • Signé longs entiers - le type long ". Les entiers signés incluent des nombres négatifs (INT, long, etc.). Les entiers non signés n'ont que des nombres positifs (INT non signé, non signé long, etc.).

0 commentaires