std::cout* le fait (c'est cout pour afficher, pas cin...
)
je sais mais c'est l'utilisateur qui va entrer les nombre donc si il veut il peut entrer un nombre en hexadécimal et vue comment cin gère les lettre ..... ![]()
iLIKEto: si tu veux lire un nombre en base autre que 10, la bonne fonction c'est strtol (include cstdlib). Consulte impérativement la doc (sur http://www.cplusplus.com par exemple) sur strtol parce que c'est pas immédiat d'usage.
je lirai sa demain la je suis crevé ![]()
mais j'ai quelque autre question ( oui encore
)
sur je veut par exemple programmer un jeux en 3d ( vos gueule laissé moi rêvé
) qui contiens des millier et des millier de ligne de code un seul fichier.h est suffisant pour toute les fonction ou bien ?
j'ai vue que la plus part des gens qui programme un Système d'exploitation ( ou du moin le noyeu ) utilisé le c + l'assembleur puisque le c++ c'est le c plus plein de nouveau truc on peut programmer un os avec assembleur + c++ ?
j'ai vue que parfois dans une fonction on déclare les variable avec & sa sert a quoi ? je sais que en c'est une référence mais lorsqu’on déclare une variable on la fait passé par référence avec elle même ?
merci ![]()
« un seul fichier.h est suffisant pour toute les fonction ou bien ? »
suffisant... oui. Est-ce que tu veux faire ça ? ... non !
Un fichier de plus de quelques centaines de lignes, pour moi, c'est du délire (encore plus si c'est un .hpp car il ne contient pas de code).
« on peut programmer un os avec assembleur + c++ ? »
oui et non. Tu peux faire 99% du code de ton OS en C++ (nachos typiquement ça doit être à peut près ça). En revanche, il y a quelques règles à respecter (sur le placement des choses par exemple) qui font que tu es "obligé" de passer par de l'assembleur (bon, tu peux aussi prier pour que ton compilo fasse pile ce qui faut... certains le font... ils ont eu des problèmes
).
« j'ai vue que parfois dans une fonction on déclare les variable avec & sa sert a quoi ? »
le premier intérêt du & (dans ce contexte) c'est d'indiquer que tu vas modifier un argument passé à ta fonction. On rencontre des & ailleurs, mais je zape ça pour le moment car c'est souvent inutile (car le compilateur optimise tout seul). ![]()
Un fichier de plus de quelques centaines de lignes, pour moi, c'est du délire (encore plus si c'est un .hpp car il ne contient pas de code).
justement le fait qu'il nous contient pas de code te permet de le remplir a mort tu va pas dire a quoi sert cette parti la ou bien celle la car tu t'en fou
si je me goure pas le fichier.hpp ne contient que des prototype c'est bien sa ?
Une fois maîtrisé le c++ je vaudrai faire de l'assembleur mais tu peut m'en conseillé un car je suis perdu ( pas besoin de te précisé que c'est du x86
)
donc tu modifier l'argument mais une fois la fonction fini il reprend sa valeur initial c'est bien sa ? ![]()
Et pendant que j'y suis c'est quoi la différence entre le mode réel et le mode protégé ?
iLIKEto, tu fera de l'assembleur avant de maitriser le C++ a mon avis. Tu ne te rends pas compte de la tache que c'est "maitriser le C++". L'assembleur est beaucoup plus simple. (En vrai, c'est con comme ses pieds l'assembleur.)
La difference entre mode reel et mode protege est un peu complique a expliquer. Basiquement, tu as plusieurs mode de fonctionnement de ton processeur. En mode protege, tu n'as pas d'access directe aux peripherique et a la memoire physique de la machine. C'est ce que tu utilises actuellement quand tu programme. Tous les access au peripheriques passent par le systeme d'exploitation et la memoire a laquelle tu as access es alloue par le systeme d'exploitation. Quand tu fera des pointeurs, tu pourra obtenir l'addresse en memoire d'une variable, mais c'est pas directement son addresse en RAM, tu n'ecris jamais directement a une addresse en RAM quand tu ecris une application. Tu ecris a une addresse virtuelle, et le systeme d'exploitation "traduit" cette addresse pour savoir ou ecrire en memoire physique.
"tu fera de l'assembleur avant de maitriser le C++ a mon avis"
tu te rend pas conte a quel point cette phrase ma remonté le moral
au début je voulais faire de l'asm mais il n y avais pas vraiment de tuto pour débutant donc j'ai commencé le c++
si j'ai bien compris le mode réel c'est cette horreur avec plein de registre différent ?
ahh les registre la principale raison qui ma fait abandonner
l'asm avant même de commencé ![]()
"tu te rend pas conte a quel point cette phrase ma remonté le moral
"
C'est surtout pour que maitriser le c++ il te faudra plusieurs dizaines d'année... ![]()
(enfin je veux dire maitriser totalement)
"si j'ai bien compris le mode réel c'est cette horreur avec plein de registre différent ?"
Non, le mode protege comme le mode reel utilisent des registres. Les registres sont des zones de memoire du proceseur. Le processeur sait uniquement travailler sur les registres. Il sait egalement charger le contenu d'une addresse memoire dans un registre et sauver le contenu d'un registre dans une addresse memoire. Les registres peuvent avoir des utilites particuliere: tous les registres ne sont pas interchangeable.
mem virtuel et pagination
http://projetpfe.com/Courrs/ARCHITECTURE_ORDINATEUR.pdf chapitre 18.4
http://www.liafa.jussieu.fr/~carton/Enseignement/Architecture/archi.pdf chapitre 16
![]()
"si je me goure pas le fichier.hpp ne contient que des prototype c'est bien sa ?"
Pour l'instant, oui. En fait parfois on doit écrire du code dans les .hpp pour des raisons que tu verra plus tard(templates et fonctions inline). Et pour éviter de l'écrire dans le .hpp certains programmeurs l'écrivent dans un .hxx(ou autre, il n'y a pas d'extension officielle) qu'ils incluent dans le .hpp.
Un conseil pour ne pas te décourager: ne te focalise pas trop sur ton jeu 3D pour l'instant, faire un jeu 3D c'est un travail long et qui nécessite plein de gens, pas que des programmeurs d'ailleurs.
« justement le fait qu'il nous contient pas de code te permet de le remplir a mort tu va pas dire a quoi sert cette parti la ou bien celle la car tu t'en fou »
ouais... mais si ton .hpp fait 1000 lignes, le .cpp qui va avec il va en faire 50000 hein.
iLIKEto: pour l'assembleur, je me permets de te pointer ça (mais si je n'ai fait qu'une seule passe dessus, donc que c'est sans doute loin d'être parfait) : http://chadok.info/~cmouille/teaching/UniteProc/
J'ai des erzatz de corrigés sous la main, mais c'est pas digne d'être uploadé.
Note que ce n'est pas suffisant pour faire un OS, mais au moins l'intégration d'assembleur dans du C/C++ ne devrait plus poser de problème.
"Non, le mode protege comme le mode reel utilisent des registres"
En gros quoi je fasse je boufferai des registre
"Pour l'instant, oui. En fait parfois on doit écrire du code dans les .hpp pour des raisons que tu verra plus tard(templates et fonctions inline)"
Les inline se sont les fonction qui alourdissent le programme mais le rendent plus rapide c'est bien sa ?
quel relation avec .hpp ?
"Un conseil pour ne pas te décourager: ne te focalise pas trop sur ton jeu 3D pour l'instant, faire un jeu 3D c'est un travail long et qui nécessite plein de gens, pas que des programmeurs d'ailleurs."
quand je dis jeux 3d c'est pas du crysis hein ![]()
Je pensais a un ballon que l'en fait rouler via les flèche directionnel dans une petite chambre mais même sa c'est encore très très loin ![]()
"ouais... mais si ton .hpp fait 1000 lignes, le .cpp qui va avec il va en faire 50000 hein. "
Ah donc chaque .cpp a son propre .hpp ?
Et moi qui voulais foutre un seul .hpp pour tous le programme...
Sinon merci pour les lien je vais voire sa ![]()
Salut,
Je rentre dans ce topic en béotien face aux deux mastodontes que sont Chris et Godrik.
Juste pour te dire : ne te noie pas dans les problèmes avant de les avoir rencontré PERSONNELLEMENT. (bouh que c'est laid les majuscules).
Tu débutes, tu es motivé, et c'est normal d'avoir plein de questions. Mais attention à ne pas obtenir un effet inverse : tu peux soit te décourager d'avance (ils font quand même un peu peur quand tu les écoutes, Chris et Godrik
),
soit, dans un autre extrême, penser que maintenant qu'on t'en a parlé tu connais.
En gros ce que j'essaye de dire : la programmation d'abord, les questions après ! Sinon les réponses qui te seront données arriveront trop tôt par rapport à ton expérience personnelle (et ce décalage est source de nombreux problèmes plus tard).
Vu le niveau des gens qui te répondent, ils peuvent sans problème partir très loin, tant que tu poses des questions en fait. Le problème est que tu ne pourras pas le suivre
En tout cas bonne continuation, tu sembles bien parti ![]()
Les inline se sont les fonction qui alourdissent le programme mais le rendent plus rapide c'est bien sa ? »
j'ai relu ça pas plus tard que ce matin :
http://www.parashift.com/m/c++-faq/inline-and-perf.html
Clairement, on voit que c'est complexe de bien utiliser inline, et du coup, ce n'est clairement pas pour tout de suite que tu feras ça.
« Ah donc chaque .cpp a son propre .hpp ? »
oui (exception faite de main.cpp).
Caudheur:
« Juste pour te dire : ne te noie pas dans les problèmes avant de les avoir rencontré PERSONNELLEMENT. »
+1000.
« ils font quand même un peu peur quand tu les écoutes, Chris et Godrik
»
tu es sur l'IRC toi ? tu as suivi notre discussion sur les automates d'hier ???
(parce que là, oui, ça pouvait faire peur)
iLIKEto:
Sinon, pour le lien vers mes sujets de TDs que j'ai donné tout à l'heure, je pense que ce qui est important c'est surtout de jouer avec les exemples proposés au début (et de récupérer le manuel d'intel qui est une source riche en informations, y compris la fin pour l'objectif faire un OS).
Cela dit, ne te disperse pas trop (ou plutôt pas trop tôt), car tu risques d'affaiblir tes bases, et ça tu le paieras cher ensuite.
Au fait, ça en est où la fonction pour chiffrer un message ? ![]()
@Chris_27 Il y a un chan où on parle d'automates? Tu me fais rêver là!
Pas spécialement d'automates (au sens théorie des langages hein, pas au sens automatique/électronique/mécanique), c'est juste que j'avais besoin d'un avis pour un cours que je prépare pour le semestre prochain.
ENfin bon, si l'IRC t'intéresse, c'est #linux sur irc.neutralnetwork.org.