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

Traduction Penser en C++ Discussion :

Traduction du chapitre 2.7


Sujet :

Traduction Penser en C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut Traduction du chapitre 2.7
    Sujet dédié à la traduction et la relecture du chapitre 2.7

  2. #2
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    je prend, merci

  3. #3
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    <section id="2.7"><title>Intoduction à la classe vector</title>

    <paragraph>Avec les <b>string</b> nous avons pu remplir une chaîne de caractères sans savoir de quelle taille nous allions avoir besoin. Le problème avec la lecture de lignes dans des objets <b>string</b> individuels est que vous ne savez pas à l'avance de combien d'objets vous allez avoir besoin - vous ne le savez qu'après avoir lu le fichier en entier. Pour résoudre ce problème, nous avons besoin d'une sorte de support qui va automatiquement s'agrandir pour contenir autant d'objets <b>string</b> que nous aurons besoin d'y mettre.</paragraph>

    <paragraph>
    En fait, pourquoi se limiter à des objets <b>string</b> ?
    Il s'avère que ce genre de problème - ne pas connaître le nombre de choses que vous avez lorsque vous écrivez le programme - est fréquent. Et il semble que ce “conteneur” serait beaucoup plus utile s'il pouvait contenir <i>toute sorte d'objet !</i> Heureusement, la bibliothèque standard a une solution toute faite : les classes de conteneurs standards. Les classes de conteneur sont une des forces du standard C++.
    </paragraph>

    <paragraph>
    Il y a souvent une petite confusion entre les conteneurs et les algorithmes dans la bibliothèque standard du C++, et l'entité connue sous le nom de STL. Standard Template Library (Bibliothèque de modèle standards) est le nom qu'Alex Stepanov (qui travaillait alors pour Hewlett-Packard) utilisa lorsqu'il présenta sa bibliothèque au Comité de Standardisation de C++ à la conférence de San Diego, Californie au printemps 1994. Le nom est resté, surtout après que HP ai décidé de la rendre disponible au libre téléchargement.
    Entre-temps,le comité l'a intégré dans la bibliothèque standard du C++, source d'un grand nombre de changements. Le développement de la STL continu à la Silicon Graphics (SGI; voir <i>http://www.sgi.com/Technology/STL</i>). Le STL de SGI diverge de la bibliothèque strandard du C++ si un certain nombre de points subtiles. Ainsi, bien que cela soit une populaire idée fausse, la bibliothèque standard du C++ n'inclut pas la STL. Cela peut prêter à confusion du fait que les conteneurs et les algorithmes de la bibliothèque standard du C++ ont la même racine (et souvent les mêmes noms) que la STL de SGI. Dans ce livre, je dirais “bibliothèque standard du C++” ou “conteneurs de la bibliothèque standard,” ou quelque chose de similaire et éviterais le terme “STL.”</paragraph>

    <paragraph>
    Même si l'implémentation des conteneurs et des algorithmes de la bibliothèque standard du C++ utilisent des concepts avancés et que la couverture de cette dernière prenne deux grands chapitres dans le volume 2 de ce livre, cette bibliothèque peut également être efficace sans en savoir beaucoup à son sujet. Elle est si utile que le plus basique des conteneurs standards, le <b>vector</b>, est introduit dès ce chapitre et utilisé tout au long de ce livre. Vous constaterez que vous pouvez faire une quantité de choses énorme juste en employant les fonctionnalités de base du <b>vector</b> et sans vous inquiéter pour l'implémentation (encore une fois, un but important de la POO).
    Puisque vous apprendrez beaucoup plus à ce sujet et sur d'autres conteneurs quand vous atteindrez les chapitres sur la bibliothèque standard dans le volume 2, on pardonnera le fait que les programmes utilisant le <b>vector</b> dans la première partie de ce livre ne soient pas exactement ce qu'un programmeur expérimenté de C++ ferait. Vous trouverez cela dans la plupart des cas, l'utilisation montré ici est suffisante.
    </paragraph>

    <paragraph>
    La classe <b>vector</b> est une <i>classe générique</i>, ce qui signifie qu'elle peut être appliquée efficacement à différents types. Ainsi, on peut créer un vecteur de formes, un vecteur de chats, un vecteur de chaînes de caractères, etc. Fondamentalement, avec une classe générique vous pouvez créer une “classe de n'importe quoi”. Pour dire au compilateur ce avec quoi la classe va travailler (dans ce cas, ce que le <b>vector</b> va contenir), vous mettez le type désiré entre ‘&lt;’ et ‘&gt;’. Ainsi un vecteur de chaînes de caractères se note <b>vector&lt;string&gt;</b>. Lorsque vous faites cela, vous obtenez un vecteur personnalisé ne pouvant contenir uniquement que des objets string, et vous aurez un message d'erreur de la part du compilateur si vous essayez d'y mettre autre chose.
    </paragraph>

    <paragraph>
    Puisque le vecteur exprime le concept de “conteneur,” il doit y avoir une manière d'y mettre des objets et d'en enlever. Pour ajouter un élément nouveau à la fin d'un <b>vector</b>, vous utilisez la fonction membre <b>push_back( ).</b> (Rappelez vous que, lorsqu'il s'agit d'une fonction membre, vous utilisez le ‘<b>.</b>’ pour l'appeler à partir d'un objet particulier.) La raison du nom de cette fonction membre qui peut sembler verbeux –<b>push_back( )</b> au lieu de quelque chose de plus simple comme “put”– est qu'il y d'autres conteneurs et fonctions membres pour mettre des éléments dans les conteneurs. Par exemple, il y a une fonction membre <b>insert( )</b> pour mettre quelque chose au milieu d'un conteneur. Le <b>vector</b> supporte cela mais son utilisation est plus compliquée et nous n'avons pas besoin de la découvrir avant le volume 2 de ce livre. Il y a aussi <b>push_front( )</b> (qui n'est pas une fonction membre de la classe <b>vector</b>) pour mettre des objets en tête. Il y a pas mal d'autres fonctions membre de <b>vector</b> et pas mal de conteneurs standards dans le bibliothèque standard du C++, mais vous seriez surpris de tout ce que vous pouvez faire en ne connaissant que quelques fonctionnalités simples.
    </paragraph>

    <paragraph>
    Donc vous pouvez mettre des éléments dans un <b>vector</b> avec <b>push_back( )</b>, mais comment les récupérer par la suite ? Cette solution est plus intelligente et et élégante – la surcharge d'opérateur est utilisée pour faire ressembler le <v>vector</b> à un <i>tableau</i>. Le tableau (qui sera décrit plus en détail dans le prochain chapitre) est un type de données qui est disponible dans pratiquement tout langage de programmation il devait déjà vous être familier. Les tableaux sont des <i>agrégats</i>, ce qui signifie qu'ils consistent en un nombre d'éléments groupé entre eux. La caractéristique distinctive d'un tableau est que les éléments sont de même taille et sont arrangés pour être l'un après l'autre. Plus important, ces éléments peuvent être sélectionnés par “indexation”, ce qui veut dire que vous pouvez dire “je veux l'élément numéro n” et cet élément sera accessible, en général très rapidement. Bien qu'il y ait des exceptions dans les langages de programmation, l'indexation est normalement réalisé en utilisant les crochets, de cette façon si vous avez un tableau <b>a</b> et que vous voulez accéder au cinquième élément, vous écrivez <b>a[4]</b> (notez que l'indexation commence à zéro).</paragraph>

    <paragraph>Cette notation d'indexation très compact et puissante est incorporée dans la classe <b>vector</n> en utilisant la surcharge d'opérateur, tout comme pour ‘<b>&lt;&lt;</b>’ et ‘<b>&gt;&gt;</b>’ sont incorporés dans iostreams. Encore une fois, nous n'avons pas besoin de connaître les détails de l'implémentation de la surcharge – cela fera l'objet d'un prochain chapitre – mais c'est utile si vous avez l'impression qu'il y a de la magie dans l'air dans l'utilisation de <b>[ ]</b> avec le vecteur.</paragraph>

    <paragraph>Avec cela à l'esprit, vous pouvez maintenant voir un programme utilisant la classe <b>vector</b>. Pour utiliser un <b>vector</b>, vous incluez le fichier d'en-tête <b>&lt;vector&gt;</b> :</paragraph>

    <code langage="cpp">//: C02:Fillvector.cpp
    // Copy an entire file into a vector of string
    #include &lt;string&gt;
    #include &lt;iostream&gt;
    #include &lt;fstream&gt;
    #include &lt;vector&gt;
    using namespace std;

    int main() {
    vector&lt;string&gt; v;
    ifstream in("Fillvector.cpp");
    string line;
    while(getline(in, line))
    v.push_back(line); // Add the line to the end
    // Add line numbers:
    for(int i = 0; i &lt; v.size(); i++)
    cout &lt;&lt; i &lt;&lt; ": " &lt;&lt; v[i] &lt;&lt; endl;
    } ///:~</code>

    <paragraph>Une grande partie de ce programme est similaire au précédent; un fichier est ouvert et les lignes sont lues une par une dans des objets <b>string</b>. Cependant, ces objets <b>string</b> sont <i>poussés</i> à la fin du <b>vecteur v</b>. Une fois la boucle <b>while</b> terminée, le fichier entier réside en mémoire, dans <b>v</b>.</paragraph>

    <paragraph>L'étape suivante du programme est ce que l'on appelle une boucle <b>for</b>. Elle est similaire à la boucle <b>while</b> excepté qu'on lui ajoute comme une commande supplémentaire. Après le <b>for</b>, il y a une “expression de contrôle” entre parenthèses, tout comme pour la boucle <b>while</b>. Cependant, cette expression de contrôle est en trois parties : une partie qui initialise, une qui teste si l'on doit sortir de la boucle, et une qui change quelque chose, typiquement pour incrémenter une séquence d'items. Ce programme exhibe une boucle <b>for</b> telle qu'elle est communément utilisée : l'initialisation <b>int i = 0</b> crée un entier <b>i</b> utilisé comme un compteur de boucle et de valeur initiale zéro. La portion de test dit que pour rester dans la boucle, <b>i</b> doit être inférieur au nombre d'éléments du vecteur <b>v</b>. (Cela est déterminé en utilisant la fonction membre <b>size( ), que j'ai glissé ici, mais vous admettrez que sa signification est assez évidente.</b>) La portion finale emploie une notation du C et du C++, l'opérateur d'“auto-incrémentation”, pour ajouter une unité à la valeur de <b>i</b>. En effet, <b>i++</b> signifie “prend la valeur de <b>i</b>, ajoutes-y un, et mets le résultat dans <b>i</b>”. Ainsi, l'ffet global de la boucle <b>for</b> est de prendre une variable <b>i</b> et de l'incrémenter par pas de un à partir de zéro tant qu'elle est inférieure à la taille du vecteur. Pour chaque valeur de <b>i</b>, le <b>cout</b> est exécuté et cela construit une ligne contenant la valeur de <b>i</b> (magiquement convertie en tableau de caractères par <b>cout</b>), deux-points et un espace, la ligne du fichier, et un retour à la ligne amené par <b>endl</b>. Lorsque vous compilerez et exécuterez ce programme, vous verrez que l'effet est d'ajouter une numérotation de ligne au fichier.</paragraph>

    <paragraph>Du fait que l'opérateur ‘<b>&gt;&gt;</b>’ fonctionne avec iostreams, vous pouvez facilement modifier le programme afin qu'il découpe l'entrée en mots au lieu de lignes :</paragraph>

    <code langage="cpp">//: C02:GetWords.cpp
    // Break a file into whitespace-separated words
    #include &lt;string&gt;
    #include &lt;iostream&gt;
    #include &lt;fstream&gt;
    #include &lt;vector&gt;
    using namespace std;

    int main() {
    vector&lt;string&gt; words;
    ifstream in("GetWords.cpp");
    string word;
    while(in &gt;&gt; word)
    words.push_back(word);
    for(int i = 0; i &lt; words.size(); i++)
    cout &lt;&lt; words[i] &lt;&lt; endl;
    } ///:~</code>

    <paragraph>L'expression<paragraph>

    <code langage="cpp">while(in &gt;&gt; word)</code>

    <paragraph>permet d'obtenir une entrée mot à mot, et quand cette expression est évaluée à faux cela signifie que la fin du fichier a été atteinte. Naturellement, délimiter des mots par un espace est assez brut, mais cela est exemple simple.</paragr Plus tard dans ce livre, vous verrez des exemples plus sophistiqués qui vous permettrons de modificer l'entrée comme vous le souhaitez.</paragraph>

    <paragraph>Pour démontrer la facilité d'utilisation d'un vecteur de n'importe quel type, voici un exemple qui crée un <b>vector&lt;int&gt;</b> :</paragraph>

    <code langage="cpp">//: C02:Intvector.cpp
    // Creating a vector that holds integers
    #include &lt;iostream&gt;
    #include &lt;vector&gt;
    using namespace std;

    int main() {
    vector&lt;int&gt; v;
    for(int i = 0; i &lt; 10; i++)
    v.push_back(i);
    for(int i = 0; i &lt; v.size(); i++)
    cout &lt;&lt; v[i] &lt;&lt; ", ";
    cout &lt;&lt; endl;
    for(int i = 0; i &lt; v.size(); i++)
    v[i] = v[i] * 10; // Assignment
    for(int i = 0; i &lt; v.size(); i++)
    cout &lt;&lt; v[i] &lt;&lt; ", ";
    cout &lt;&lt; endl;
    } ///:~</code>

    <paragraph>Pour créer un <b>vector</b> pour contenir un certain type, vous avez juste à mettre ce type en temps que paramètre de template (entre <b>&lt; &gt;</b>). Les templates et les bibliothèques de templates optimisées sont prévus pour être aussi facile à employer.</paragraph>

    <paragraph>Cet exemple va vous montrer un autre aspect essentiel de la classe <b>vector</b>. Dans l'expression</paragraph>

    <code langage="cpp">v[i] = v[i] * 10;</code>

    <paragraph>vous pouvez voir que le <b>vector</b> n'est pas limité seulement à y mettre des choses et à les récupérer. Vous êtes aussi abilité à <i>assigner</i> (et donc de modifier) n'importe quel élément du vecteur, ceci en utilisant l'opérateur d'indexation crochet. Cela signifie que la classe <b>vector</b> est d'usage universel, flexible pour travailler avec une collection d'objets, et nous en ferons usage dans les chapitres à venir.</paragraph>
    </section>

  4. #4
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Chapitre 2 traduit en intégralité

  5. #5
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Je prend la relecture pour ce soir (long voyage en train)

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  6. #6
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Voilà!

    Je joins à ce message le fichier avec mes corrections. Pour le détails de celles-ci, consultez le fichier fr2-7_diff.txt

    Voici quelques points à discussion: (les corrections sont en rouge et mes commentaires suivent le tag -TC-: )

    Citation Envoyé par Thierry Chappuis

    §2:
    ne pas connaître le nombre de choses que vous avez lorsque vous écrivez le programme
    => ne pas connaître le nombres de choses/objets/entités que vous allez avoir
    (-TC-:J'ai choisi objets dans ma proposition, et je préfère entité à chose... )


    Ainsi, bien que cela soit une populaire idée fausse
    => Ainsi, bien que cela soit une idée faussement répendue

    §3:
    présenta sa bibliothèque au Comité de Standardisation du C++
    => au comité de normité de normalisation du C++
    (-TC- Quelle est le concensus relatif à la traduction de C++ standard et standardisation? Le terme C++ standard est largement accepté même s'il faudrait dire C++ conforme à la norme. J'ai systématiquement accepté C++ standard. Par contre, il me semble que parler de comité de normalisation est plus aproprié??? J'ai utilisé comité de normalisation dans ma proposition au lieu de Comité de Normalisation)


    Le développement de la STL continu à la Silicon Graphics
    => (a) Le développement de la STL continue à Silicon Graphics
    => (b) Le développement de la STL continue au sein de Silicon Graphics
    (-TC-: j'ai choisi la traduction (b) dans ma correction)


    §4:
    cette bibliothèque peut également être efficace sans en savoir beaucoup à son sujet
    traduction de
    this library can also be potent without knowing a lot about it.
    => (-TC-: j'ai pas mieux pour traduire l'idée de "potent" dans ce contexte. A discuter)

    Vous trouverez cela dans la plupart des cas, l'utilisation montré ici est suffisante.
    =>Vous vous rendrez compte que dans la plupart des cas, l'utilisation montrée ici est adéquate.

    §5:
    La classe <b>vector</b> est une <i>classe générique</i>
    => (-TC- Quelle est la traduction acceptée pour template? classe générique? patron de classe? J'ai choisi de conservé ici classe générique !)

    vous mettez le type désiré entre '<' et '>'
    traduction de
    you put the name of the desired type in “angle brackets,” which means ‘<’ and ‘>’
    => vous mettez le nom du type désiré entre les caractères '<' et '>'
    (-TC- Y a-t'il un nom officiel désignant des crochets angulaires?)


    vous obtenez un vecteur personnalisé ne pouvant contenir uniquement que des objets string
    => (a) vous obtenez un vecteur personnalisé ne pouvant que des objets string
    => (b) vous obtenez un vecteur personnalisé pouvant uniquement des objets string
    (-TC-: J'ai choisi la traduction (a))


    §7:
    ces éléments peuvent être sélectionnés par "indexation"
    => (-TC- indexation est la traduction officielle pour l'accès direct à un élément du tableau? Cela sonne pas très bien à mes oreille, mais j'ai conservé cette traduction, n'ayant mieux que "indiçage" à proposer)

    §10:

    J'ai traduit les commentaires du programme. Au vu des chapitres que j'ai déjà pu lire, c'est ce qui a déjà été fait ailleurs!
    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
    18
    //: C02:Fillvector.cpp
    // Copie un fichier entier dans un vecteur de chaînes de caractères
    #include <string>
    #include <iostream>
    #include <fstream>
    #include <vector>
    using namespace std;
     
    int main() {
      vector<string> v;
      ifstream in("Fillvector.cpp");
      string line;
      while(getline(in, line))
        v.push_back(line); // Ajoute la ligne à la fin
      // Ajoute les numéros de lignes:
      for(int i = 0; i < v.size(); i++)
        cout << i << ": " << v[i] << endl;
    } ///:~
    ATTENTION!!! Dans certains chapitres que j'ai lu, les noms des variables ont également été traduits e.g. ligne pour line, entree pour in. Ce serait une excellente idée d'uniformiser cela. Ici, je n'ai pas traduit les noms de variable par soucis de cohésion avec le chapitre 2.6.

    §12:

    Elle est similaire à la boucle while excepté qu'on lui ajoute comme une commande supplémentaire
    => Elle est similaire à la boucle <b>while</b> à l'exception du fait qu'elle ajoute des possibilités de contrôle supplémentaires

    et une qui change quelque chose, typiquement pour incrémenter une séquence d'items
    => et une qui change quelque chose, typiquement pour itérer sur une séquence d'éléments.

    l'ffet global de la boucle for est de prendre une variable i et de l'incrémenter par pas de un à partir de zéro tant qu'elle est inférieure à la taille du vecteur.
    => et de l'incrémenter par pas de un à partir de zéro jusqu'à la taille du vecteur moins un. Pour chaque valeur de <b>i</b>

    §20:
    Pour créer un vector pour contenir un certain type, vous avez juste à mettre ce type en temps que paramètre de template (entre < >)
    => Pour créer un <b>vector</b> pour contenir un certain type, vous avez juste à mettre ce type en temps que paramètre de template (entre les caractères <b>'<'</b> et <b>'>'</b>)
    (-TC-: Pensez-vous qu'il faille traduire ici le terme template par patron, ou faut-il le prendre ici comme mot clé C++. J'ai conservé template)


    §23:
    You also have the ability to assign (and thus to change) to any element of a vector, also through the use of the square-brackets indexing operator
    => Vous êtes aussi abilités à <i>affecter à</i> (et donc à modifier) n'importe quel élément du vecteur, ceci en utilisant l'opérateur d'indexation.

    This means that vector is a general-purpose, flexible “scratchpad” for working with collections of objects, and we will definitely make use of it in coming chapters.
    => Cela signifie que la classe <b>vector</b> est un outil d'usage universel et flexible pour travailler avec une collection d'objets, et nous en ferons usage dans les chapitres à venir.
    (-TC-: litéralement, scratchpad signifie "bloc-note", mais son utilisation n'est pas claire dans le contexte présent)

    Fichiers attachés Fichiers attachés
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  7. #7
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 294
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Thierry Chappuis
    §2:
    ne pas connaître le nombre de choses que vous avez lorsque vous écrivez le programme
    => ne pas connaître le nombres de choses/objets/entités que vous allez avoir
    (-TC-:J'ai choisi objets dans ma proposition, et je préfère entité à chose... )
    Ok pour objet.

    Citation Envoyé par Thierry Chappuis
    Ainsi, bien que cela soit une populaire idée fausse
    => Ainsi, bien que cela soit une idée faussement répendue
    Adopté
    Citation Envoyé par Thierry Chappuis
    §3:
    présenta sa bibliothèque au Comité de Standardisation du C++
    => au comité de normité de normalisation du C++
    (-TC- Quelle est le concensus relatif à la traduction de C++ standard et standardisation? Le terme C++ standard est largement accepté même s'il faudrait dire C++ conforme à la norme. J'ai systématiquement accepté C++ standard. Par contre, il me semble que parler de comité de normalisation est plus aproprié??? J'ai utilisé comité de normalisation dans ma proposition au lieu de Comité de Normalisation)
    J'ai tranché pour "Comité de Normalisation du C++".
    Citation Envoyé par Thierry Chappuis
    Le développement de la STL continu à la Silicon Graphics
    => (a) Le développement de la STL continue à Silicon Graphics
    => (b) Le développement de la STL continue au sein de Silicon Graphics
    (-TC-: j'ai choisi la traduction (b) dans ma correction)
    J'ai choisi le (b)
    Citation Envoyé par Thierry Chappuis
    §4:
    cette bibliothèque peut également être efficace sans en savoir beaucoup à son sujet
    traduction de
    this library can also be potent without knowing a lot about it.
    => (-TC-: j'ai pas mieux pour traduire l'idée de "potent" dans ce contexte. A discuter)
    C'était déjà traduit, avec la solution que tu proposes. Donc c'est OK.
    Citation Envoyé par Thierry Chappuis
    Vous trouverez cela dans la plupart des cas, l'utilisation montré ici est suffisante.
    =>Vous vous rendrez compte que dans la plupart des cas, l'utilisation montrée ici est adéquate.
    Adopté
    Citation Envoyé par Thierry Chappuis
    §5:
    La classe <b>vector</b> est une <i>classe générique</i>
    => (-TC- Quelle est la traduction acceptée pour template? classe générique? patron de classe? J'ai choisi de conservé ici classe générique !)
    Les deux sont acceptés
    Citation Envoyé par Thierry Chappuis
    vous mettez le type désiré entre '<' et '>'
    traduction de
    you put the name of the desired type in “angle brackets,” which means ‘<’ and ‘>’
    => vous mettez le nom du type désiré entre les caractères '<' et '>'
    (-TC- Y a-t'il un nom officiel désignant des crochets angulaires?)
    Je ne sais pas, mais j'ai mis ta traduction
    Citation Envoyé par Thierry Chappuis
    vous obtenez un vecteur personnalisé ne pouvant contenir uniquement que des objets string
    => (a) vous obtenez un vecteur personnalisé ne pouvant que des objets string
    => (b) vous obtenez un vecteur personnalisé pouvant uniquement des objets string
    (-TC-: J'ai choisi la traduction (a))
    J'ai opté pour:
    vous obtenez un vecteur personnalisé pouvant contenir uniquement des objets string
    Citation Envoyé par Thierry Chappuis
    §10:[/B]
    J'ai traduit les commentaires du programme. Au vu des chapitres que j'ai déjà pu lire, c'est ce qui a déjà été fait ailleurs!
    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
    18
    //: C02:Fillvector.cpp
    // Copie un fichier entier dans un vecteur de chaînes de caractères
    #include <string>
    #include <iostream>
    #include <fstream>
    #include <vector>
    using namespace std;
     
    int main() {
      vector<string> v;
      ifstream in("Fillvector.cpp");
      string line;
      while(getline(in, line))
        v.push_back(line); // Ajoute la ligne à la fin
      // Ajoute les numéros de lignes:
      for(int i = 0; i < v.size(); i++)
        cout << i << ": " << v[i] << endl;
    } ///:~
    ATTENTION!!! Dans certains chapitres que j'ai lu, les noms des variables ont également été traduits e.g. ligne pour line, entree pour in. Ce serait une excellente idée d'uniformiser cela. Ici, je n'ai pas traduit les noms de variable par soucis de cohésion avec le chapitre 2.6.
    Ok pour traduire les commentaires, ça me parait évident. Quant aux noms de variables, j'ai créé un topic pour en débattre. Pour l'instant, je clos le sujet, je ferais une deuxième passe quand nous aurons fait un choix.
    Citation Envoyé par Thierry Chappuis
    §12:
    Elle est similaire à la boucle while excepté qu'on lui ajoute comme une commande supplémentaire
    => Elle est similaire à la boucle <b>while</b> à l'exception du fait qu'elle ajoute des possibilités de contrôle supplémentaires
    Adopté
    Citation Envoyé par Thierry Chappuis
    et une qui change quelque chose, typiquement pour incrémenter une séquence d'items
    => et une qui change quelque chose, typiquement pour itérer sur une séquence d'éléments.
    Adopté
    Citation Envoyé par Thierry Chappuis
    l'ffet global de la boucle for est de prendre une variable i et de l'incrémenter par pas de un à partir de zéro tant qu'elle est inférieure à la taille du vecteur.
    => et de l'incrémenter par pas de un à partir de zéro jusqu'à la taille du vecteur moins un. Pour chaque valeur de <b>i</b>
    Adopté
    Citation Envoyé par Thierry Chappuis
    §20:
    Pour créer un vector pour contenir un certain type, vous avez juste à mettre ce type en temps que paramètre de template (entre < >)
    => Pour créer un <b>vector</b> pour contenir un certain type, vous avez juste à mettre ce type en temps que paramètre de template (entre les caractères <b>'<'</b> et <b>'>'</b>)
    (-TC-: Pensez-vous qu'il faille traduire ici le terme template par patron, ou faut-il le prendre ici comme mot clé C++. J'ai conservé template)
    Entièrement d'accord pour template. Ok pour "les caractères...".

    Citation Envoyé par Thierry Chappuis
    §23:
    You also have the ability to assign (and thus to change) to any element of a vector, also through the use of the square-brackets indexing operator
    => Vous êtes aussi abilités à <i>affecter à</i> (et donc à modifier) n'importe quel élément du vecteur, ceci en utilisant l'opérateur d'indexation.
    Adopté
    Citation Envoyé par Thierry Chappuis
    This means that vector is a general-purpose, flexible “scratchpad” for working with collections of objects, and we will definitely make use of it in coming chapters.
    => Cela signifie que la classe <b>vector</b> est un outil d'usage universel et flexible pour travailler avec une collection d'objets, et nous en ferons usage dans les chapitres à venir.
    (-TC-: litéralement, scratchpad signifie "bloc-note", mais son utilisation n'est pas claire dans le contexte présent)
    Ok pour ta proposition.

  8. #8
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    vous obtenez un vecteur personnalisé ne pouvant contenir uniquement que des objets string
    ceci est correct, la double négation sert à souligner le caractère restrictif

    http://atilf.atilf.fr/dendien/script...mot=uniquement

    B. Synon. de seulement, ne... que
    [...]
    [Avec nég.] Ce n'était plus uniquement du côté de la mer que je regardais (PROUST, J. filles en fleurs, 1918, p. 869).
    [...]
    [En redondance avec ne... que] Rare. Il semble que la nature ait voulu constater qu'il [le charbon] l'était [le plus précieux des minéraux], en faisant le diamant, qui n'est uniquement que du carbone pur cristallisé (VERNE, Île myst., 1874, p. 317).
    ceci dit c'est pour l'information. sans la négation c'est bon aussi je pense, et correspond littéralement à la VO.

    ( j'ai mis "je pense", parce que sans la négation ça me titille l'oreille. chez moi on utilise la double négation)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Traduction du chapitre 0.3
    Par Aurelien.Regat-Barrel dans le forum Traduction Penser en C++
    Réponses: 9
    Dernier message: 24/07/2007, 19h47
  2. Traduction du chapitre 0.4
    Par Aurelien.Regat-Barrel dans le forum Traduction Penser en C++
    Réponses: 12
    Dernier message: 24/07/2007, 19h46
  3. Traduction du chapitre 0.0
    Par Aurelien.Regat-Barrel dans le forum Traduction Penser en C++
    Réponses: 10
    Dernier message: 09/07/2007, 09h14
  4. Traduction du chapitre 0.2
    Par Aurelien.Regat-Barrel dans le forum Traduction Penser en C++
    Réponses: 2
    Dernier message: 18/12/2006, 12h54
  5. Traduction du chapitre 0.1
    Par Aurelien.Regat-Barrel dans le forum Traduction Penser en C++
    Réponses: 1
    Dernier message: 17/11/2006, 14h33

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