CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

J´aide les personne en C/C++

Fvirtman
Fvirtman
Niveau 10
18 juin 2006 à 21:01:23

En ce qui concerne la lib associée a stdio, c´est bien une lib (ou un .a selon systeme) standard.

Bon, ensuite, pour afficher un "a" sous la console, il y a un historique :
Jadis sous MS DOS, donc un systeme en "mode réel", c´était tres facile :
2 instructions assmbleur :
un MOV qui charge un registre (charge un parametre)
un INT qui appelle une instructions appelée interruption : une instruction electronique.
Cette instruction copiait simplement le code ASCII de ton caractere dans le chipset texte de la pseudo carte graphique de l´époque.
Ensuite, électroniquement, ce buffer était lu et pour chaque code, un symbole prédéfini (la police DOS par exemple) était envoyé a l´écran.

Maintenant, sous Windows, c´est plus complexe : il n´y a plus vraiment de chipset texte (sauf si tu travailles en plein écran). De plus, Windows est en "mode protégé", donc tu n´as plus le droit a certaines choses, notement appeler l´interruption qui écrit directement dans le chipset texte.
Donc maintenant, un printf faire une requete a une fonction Windows, et seul Windows est habilité a piloter ces interruptions de base. Pour Linux, c´est pareil. Il n´est plus possible maintenant de piloter directement certaines interruptions car ça pourrait rendre le systeme instable.

Bref, y´en aurait a dire la dessus mais bon...

dynoplasmma
dynoplasmma
Niveau 9
18 juin 2006 à 21:25:18

Merci beaucoup pour ta reponse.
Et donc stdio.h sur mon windows est incorrect sur linux ? Ou alors dans stdio on definit sur quel systeme je suis, puis on envoie une requete a une fonction windows ou linux selon mon systeme ?

Au passage, linux est gratuit ou payant ?

dnob700
dnob700
Niveau 10
18 juin 2006 à 22:22:38

a priori, le fichier stdio.h doit assez peu dépendre du système (mais probablement un peu quand même, selon le compilo).

Par contre le fichier .lib ou .a qu´il y a derrière dépend lui de l´OS, du processeur et du compilateur (chaque combinaison de ceux-là ayant un fichier différent). Et oui, ces bibliothèque va probablement appelé des fonctions de l´OS de plus bas niveau (mais en fait il possible ausi que ce soit le contraire, la seule obligation est qu´au final, ça marche comme l´utilisateur s´attend à ce que ça marche).

Pour ta deuxième question, oui : linux est gratuit ou payant.

dynoplasmma
dynoplasmma
Niveau 9
18 juin 2006 à 23:21:31

Merci dnob :)

Je comptais me telecharger un systeme linux en parrallele par rapport a windows, pour essayer, apparemment il y a plusieurs distribution, mandriva, Red halt...

J´ai été voir pour mandriva, en free, je tombe sur une page :
http://www.mandriva.com/fm/fr/downloads/mirrors/2006iso

Je vais dans france, je clique sur un des liens (avec la ville la plus proche de chez moi) je tombre sur une serie de documents texte...

Je crois que je vais rester exclusivement sur mon windows!!!

Fvirtman
Fvirtman
Niveau 10
18 juin 2006 à 23:33:29
  • /me espere que les prochains posts ne seront pas hors sujet...
jojo____
jojo____
Niveau 9
19 juin 2006 à 08:23:03

Bon j´ai déja poster pleni de question sur le c++ et tt mais on m´ad dit de apprendre d´abord à l´aide de site du zero , ect. Me voilà, je revien la tête plein de savoir ^^.Mais ce n´est bien sûr pas pour ça que je poste ici ^^. Et non, qqn va devoir m´aider maintenant que je connais un peu mieu. Donc voivi le pb: j´aimerais bien faire un projet que je ne divulguerai pas ici ^^ mais comme vous le savez et comme c´est si bien écrit sur le site du zero, pour faire un bon projet complet et tt il faut faire plusieur dossier car avec 10000 ligne sur main.c ce n´est pas evident à se retrouver. Donc, il faut se servir des prototyper et tt, le pb c que surle site du zero ya tt expliquer comment fallai faire pour les différents fichier, avec les prototype en h et les source en C ... mais ...... je nai rien compris ^^. Qnn pourrait m´explique de manière clair et précise comment faire différent dossier (me dit pas nouveau/dossier^^) et comment faire des prototype et comment faire le lien avec les include ... Merci d´avance.

extasy89
extasy89
Niveau 6
19 juin 2006 à 09:13:04

bon eh bien commençons par le début:

tout comme pour les variables (qui peuivent être globale ou locale), les fonctions ne peuvent pas être utilisée dans n´importe quel ordre. ainsi, tu ne vas pas pouvoir appeller une fonction si celle-ci n´a pas encore été déclarée. cela peut poser des problemes notamment d´agencement car tu vas devoir organiser tout ton code de manière à ce que toutes tes fonctions soient bien déclarée dans l´ordre.

l´intérêt des prototypes est évident ici. en déclarant préalablement tes fonctions, tu vas pouvoir les utiliser dans n´importe quel ordre par la suite.

sa c´est pour les prototypes, passons maintenant aux headers. je ne sai pas quels sont les projets que tu as déjà fait, mais tu doit savoir qu´il arrive (même tout le temps en fait :)) d´avoir des programmes nécéssitant beaucoups de lignes de codes (plusieurs millier). tout écrire dans le même fichier main.c serait de la folie... imagine que tu doive parcourir à chaque fois tes 10000 lignes de code pour aller modifier quelque chose ! c´est pour cela qu´existe la programmation modulaire. en quoi sa consiste? c´est très simple. le principe est que tu vas pouvoir segmenter ton code source en plusieurs fichier portants des noms différents. ainsi, prenons l´exemple d´un petit jeu, tu vas pouvoir avoir un fichier ia.c qui vas s´occuper de tous les problemes d´ia,...

... et je poursuit tout à l´heure car la j´ai examen dans 1 heure :-)

jojo____
jojo____
Niveau 9
19 juin 2006 à 09:27:49

Merci beaucoup de ton aide tt d´abord. Je sais pas ce que tu allais ecrire après et je suis tt a fait daccord avec toi mais enfaite, ce que je voulais dire c´est que comment faire un prtototype, ya un ex sur le site du zero: double machin(double bidule, double autre bidule). Bon j´avoue c un peu théorique mé g pas trouver mieu =P. Donc, enfaite je sais tres bien a quoi ça sert les prototypes, je connais leur fonctionnement et tt, je sais seulement pas comment les utiliser. Par exemple pour l´exemple de tt a l´heure avec double, g rien compris ^^. C koi les bidules et les machins qui fo mettre? Comment faut présenter touc ça après dans mes fichier source et mes headers? Bon attendons ta réponse^^. G cours alors je reviendrai surement demain aprem^^.

extasy89
extasy89
Niveau 6
19 juin 2006 à 09:45:32

ta question me surprend un peu parce que si j´ai bien compris ce ne sont pas les prototypes qui te posent problemes mais plutôt les paramètres des fonctions... et ca sa n´a rien à voir avec les prototype. je t´invite alors plutôt à aller relire le chapitre traitant des fonctions car c´est la qu´il doit y avoir un probleme de compréhension.

dnob700
dnob700
Niveau 10
19 juin 2006 à 10:50:35

quand tu as une fonction, elle commence par une ligne (juste avant les accolades ouvrantes) qui contient le type de la fonction, son nom puis, entre parenthèse, la liste de ses arguments avec leur type.

Le prototype de la fonction c´est la même ligne mais avec un point virgule à la fin :

le prototype de la fonction :

int bonjour(int nombre1,double nombre2)
{
return nombre1+(int)nombre2;
}
est :
int bonjour(int nombre1,double nombre2);

et celui de la fonction :
void salut(char lettre,int compte)
{
for (int i=0;i<compte;i++)
printf("%c",lettre);
}
est :
void salut(char lettre,int compte)

mais ce ne sont que des exemples.

Et ce sont ces prototype que tu mets dans le fichier .h qui va avec ton fichier .cpp afin de pouvoir utilisé les fonctions dans d´autre fichier (mais ce n´est pas clair dans ton post si tu as compris cette partie ou non).

jojo____
jojo____
Niveau 9
19 juin 2006 à 10:51:16

Ba que ce soit les ptototypes ou les fonctions tu peut mexpliquer? G rien compris ^^

extasy89
extasy89
Niveau 6
19 juin 2006 à 11:07:34

t´as rien compris à quoi... on t´as expliquer ce qu´était les prototypes et comment les déclarer... maintenant tu as tous les outils en mains pour comprendre il me semble... à moins que tu ai un probleme de compréhension des fonctions et de leurs paramètres...

jojo____
jojo____
Niveau 9
19 juin 2006 à 11:11:21

ba justement jai un pb avec les fonctions et leur parametres: JI PIGE QUE DALLE

guyver2
guyver2
Niveau 10
19 juin 2006 à 11:56:09

une fonction sert a rassembler un certaint nombre d´instruction enssemble afin de factoriser (réduir la taille du code)

Les parametres sont les variable (entier, caractere, ...) que tu donne a ta fonction pour qu´elle puisse travailler corectement.

par exemeple, une fonction qui servirait a renvoyer la somme de 2 entier:
int somme(int a, int b)
{
int som = a+b;
return som;
}

le ´int´ devant le nom de la fonction est le type de l´element renvoyé par la fonction (ici un entier)
´somme´ est le nom de la fonction
´int a´ et ´int b´ sert a definir les paramteres de ta fonction. (la fonction prend deux entiers en parametre)
dans le corps de la fonction (entre { et } ) on décrit les actions. puis on revoit le resultat (´return som;´)

le prototype de cette fonction est:
int somme(int a, int b);

pour appeler cette fonction, il faut faire comme ceci:

int main()
{
int chiffre1 = 5;
int chiffre2 = 7;
int som = somme(chiffre1, chiffre2);
//ici somme vaut 12;
return 0;
}

dans cet exemple, j´appelle la fonction somme avec
chiffre1 et chiffre2 comme parametre.

kikou81
kikou81
Niveau 9
19 juin 2006 à 12:15:24

Salut tous le monde, j´ai une question en C avec la SDL, connaissez vous une fonction, qui regarde si deux rectangle créé avec SDL_Rect ne se touche pas(jveux dire au extrémité) et, genre qui renvoi 0 si sa touche et 1 si ca touche pas ou un truc comme sa??Parce que sans la fonction :malade: ?? Merci beaucoup d´avance!!

godrik
godrik
Niveau 30
19 juin 2006 à 12:45:00

je ne suis pas sur d´avoir bien compris ta question, mais ca ressemble a un test de collision classique qui doit resssembler a:
si (r1.gauche < r2.gauche < r1.droite OU r1.gauche < r2.droite < r1.droite) ET (r1.haut < r2.haut < r1.bas OU r1.haut < r2.bas < r1.bas) alors r1 est en collision avec r2

Dememe en remplacant r1 par r2 et reciproquement.

(j´ai bon, ou j´ai pas bon ?)

Fvirtman
Fvirtman
Niveau 10
19 juin 2006 à 12:58:16

kikou81 >
https://www.jeuxvideo.com/forums/1-31-8496370-2-0-1-0-0.htm

la réponse pour la fonction de collision est la, en 2e page :)
(tout est intéressant a lire)

jojo____ > il faut que tu repotasse absolument les bases si tu veux faire un projet.

kikou81
kikou81
Niveau 9
19 juin 2006 à 13:16:20

Vraimment génial, je n´est pas encore testé, mais des que je rentre chez moi je le fais :ok: merci merci merci merci :) :) :)

dynoplasmma
dynoplasmma
Niveau 9
21 juin 2006 à 11:46:38

Bonjours, est-il possible d´inserer une fonction dans une structure (j´ai essayer, j´ai eu des erreurs), ou cette methode est reservée aux classes en C++ ?

Fvirtman
Fvirtman
Niveau 10
21 juin 2006 à 11:57:12

C´est du C++.
Cependant, un compilateur C++ tolere que tu mettes des fonctions dans des structures malgré tout (il voit ça comme une classe publique, tout simplement)

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment