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

printf("blabla");

2011nobile
2011nobile
Niveau 10
16 juin 2013 à 15:47:08

Salut à tous. :-) L'année prochaine je pense allez en LP Logiciels libre. Y'en a t-il parmi vous qui on fait cette licence ? Si oui, ca donne quoi ? :(

Silvermo
Silvermo
Niveau 26
16 juin 2013 à 15:51:57

elite : intéressant !

vive_cod4
vive_cod4
Niveau 9
16 juin 2013 à 15:53:37

Je suppose que le seul format gratuit est celui du web ?

dark_drow
dark_drow
Niveau 15
17 juin 2013 à 13:30:01

J'ai une librairie opensource qui fonctionne en ligne de commande super bien. j'aimerai pouvoir l'utiliser dans un programme. le problème c'est que le code est tentaculaire et c'est mini 50.000 lignes alors je n'utilise qu'une partie infime de la librairie.

Comment vous feriez pour attaquer ce genre de projet ? J'avais pensé à tracer un peu toutes les fonctions pour voir "par ou ca passe" mais dans un truc aussi gros... ? Et la compilation dure 10min :mort:

Paulop
Paulop
Niveau 12
17 juin 2013 à 15:13:05

C'est quelle librairie ?

dark_drow
dark_drow
Niveau 15
17 juin 2013 à 15:28:55

ffmpeg u_u

tentaculaire, pas de doc, peu de commentaires :\

vive_cod4
vive_cod4
Niveau 9
18 juin 2013 à 12:31:39

En passant, une fois dans un exo en fac, j'ai implémenté une méthode virtuelle pure dans une classe abstraite (oui on peut en C++) et je voulais voir comment c'est vu ?

Pour info, c'était une histoire de dessin, j'avais des formes (Shape, classe abstraite) et dedans une méthode virtuelle pure draw. Chaque forme (qui hérite de Shape) dessine sa propre forme, mais à chaque fois il fallait charger la couleur, l'épaisseur du trait ect. Donc j'avais mis ce bout de code dans la méthode virtuelle pure de Shape que j'appelais ensuite partout. Qu'en pensez-vous ? Aurait-il été mieux de faire une méthode loadXXX qui s'occuperait de ça plutôt que d'implémenter une méthode virtuelle pure dans la classe abstraire ? Sachant qu'on reste en C++

Paulop
Paulop
Niveau 12
18 juin 2013 à 15:05:32

Les méthodes virtuelles pures permettent de transformer une classe en classe abstraite (impossible à instancier) c'est justement leur but.

Shape était quelque chose d'abstrait, ça me parait logique que Draw soit une méthode virtuelle pure. Tu ne peux pas dessiner quelque chose d'abstrait.

Le Framework .NET utilise une fonction Draw similaire pour ses shape, et ça prend en paramètre la brush, qui elle même contient la couleur il me semble (ou alors c'est un autre paramètre) et le motif à peindre dans la shape (genre tous les motifs de base dans paint).

Maintenant pour la fonction load c'est à toi de voir, tout dépend où tu appelles draw, est-ce que c'est un batch de toutes les shapes qui est fait plus tard (dans ce cas là il te faut paramétrer ta shape d'avance) ou bien tu les draws une par une (dans ce cas là tu peux mettre ça en paramètre).

Sinon tu peux aussi avoir la Draw avec paramètre et la Draw sans.

vive_cod4
vive_cod4
Niveau 9
18 juin 2013 à 15:23:08

Paulop, c'est pas ça ce que je soulignais. Ce que je soulignais c'est que si draw est une méthode virtuelle pure dans la classe Shape, alors en C++ tu peux implémenter cette même méthode virtuelle pure dans la même classe Shape (mais seulement dans le cpp, dans le h tu peux pas) alors qu'en java, c'est impossible. Après je parle pas des classes enfants qui redéfinissent cette méthode virtuelle pure.

Donc du coup la question est "Bonne pratique en C++" ? Car si je voulais utiliser la même technique en Java, je serais obligé de me tourner vers une méthode loadXXX

Paulop
Paulop
Niveau 12
18 juin 2013 à 15:24:57

Ah ok je vois.
Hum, à mon avis, implémenter une virtuelle pure dans la classe abstraite la rend instanciable, donc ça doit avoir le même effet que d'enlever =0; dans le .h.

vive_cod4
vive_cod4
Niveau 9
18 juin 2013 à 15:57:45

Nope, elle n'est pas instanciable (d'après mes souvenirs). Elle reste bien abstraite avec le =0. Je posterai l'exemple un peu plus tard

Paulop
Paulop
Niveau 12
18 juin 2013 à 16:45:02

Fun, du coup euh, si tu veux implémenter la fonction, ne la fait pas virtuelle pure, en tout cas c'est ce que je ferais, ptet les autres ont une meilleur idée ?

vive_cod4
vive_cod4
Niveau 9
18 juin 2013 à 19:04:59

Voici juste un exemple qui montre ce que je dis :

http://pastebin.com/FA9HTfvs

Paulop, perso je trouve que mettre "draw" en virtuelle pure a du sens mais d'un côté il y a ce petit côté de redondance (chargement de couleurs) et je me dis que plutôt de créer une fonction qui ne sera peut-être pas utilisé ailleurs que ici, pourquoi ne pas implémenter cette méthode virtuelle pure dans Shape ?

godrik
godrik
Niveau 30
18 juin 2013 à 22:19:46

vive_cod4, de facon general, je trovue preferable d'utiliser des fonctions auxiliaire pour ce genre de chose et laisser l'implementation de la fonction draw decider par elle meme si elle veut changer la couleur ou pas.
Tu risque de rencontrer des cas ou tu te retrouve a vouloir faire des gradient de couleur ou mettre une image et du coup ce bout de code ne devient plus utile et l'extraire devient difficile parceque trop de fonction a plein d'endroit en dependent.

vive_cod4
vive_cod4
Niveau 9
18 juin 2013 à 23:27:40

merci de ta réponse godrik. Y-aurait-il un cas où cette "pratique" se retrouverait utile ? Ou afin d'avoir une homogénéité avec le plus de langage possible, éviter cette pratique ?

marmottdad
marmottdad
Niveau 7
22 juin 2013 à 17:30:39

Bonjour , je suis nouveau ici
J'ai envie de me remettre un peu au C vu que j'galere un peu sur les tableaux et pointeurs
J'ai un niveau assez bas donc soyez indulgent avec moi :ange:

J'essaye de faire un exo où il faut faire la somme des valeurs du tableau , j'ai fais :

  1. include <stdio.h>

int sommetableau(int tableau[] , int taille){
int i,somme,tab[3];
for(i=0;i<=taille;i++){
somme += tab[i] ;
}
return somme;
}
int main(){

int tab[3];
printf("tab0 : ? ");
scanf("%d",&tab[0]);
printf("tab1 : ?");
scanf("%d",&tab[1]);
printf("tab2 : ?");
scanf("%d",&tab[2]);
sommetableau(tab[3],3);

return 0;

}

Mais à la fin , le resultat est 0 :( , ou est ma faute svp ? j'ai pas de corrigé :/

Merci d'avance :D

marmottdad
marmottdad
Niveau 7
22 juin 2013 à 17:33:51

J'ai oublié le printf de fin mais ca me donne un resultat faux aussi ( un truc negatif genre -20181215 ) :(

Auriez-vous un site a part lesiteduzero avec des exo+corrigé pour s'entrainer ?

Pseudo supprimé
Pseudo supprimé 22 juin 2013 à 18:15:01

Essaye avec ce code (que j'ai un peu commenté):

  1. include <stdio.h>

int sommetableau(int* tableau , int taille) //tableau est une adresse
{
int i,somme=0;
for(i=0;i<taille;i++){ // /!\on parcourt le tableau entre les indice 0 et 2, donc il faut mettre '<' au lieu de '<='
somme += tableau[i] ;
}
return somme;
}

int main(){
int tab[3];
int somme;
printf("tab0 : ? ");
scanf("%d",&tab[0]);
printf("tab1 : ?");
scanf("%d",&tab[1]);
printf("tab2 : ?");
scanf("%d",&tab[2]);
somme=sommetableau(tab,3); //on envoi l'adresse du tableau à la fonction sommetableau
printf("%d",somme); //on affiche la somme
return 0;
}

Si t'as encore des questions n'hésite pas ;)

chris_27
chris_27
Niveau 10
22 juin 2013 à 23:33:25

"ou est ma faute svp ? " :d) Celle qui m'a sauté aux yeux est ici :

sommetableau(tab[3],3);

:d) si tu écris tab[3], tu passes le contenu de la case numéro 3 de ton tableau en argument à la fonction. Or tu veux passer en argument le tableau (et pas juste une case), il faut donc écrire "tab" tout court, comme l'a fait mimgames.

marmottdad
marmottdad
Niveau 7
23 juin 2013 à 15:41:32

Ah ouiii j'suis bete , merci les mecs :D

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