30

Bon, alors pour simplifier et donner un exemple concret (mais simpliste) :
En prog normale, tu donnes une série d'instruction organisées en fonctions, récursives ou non, mais dont le déroulement est linéaire.
En prog objet, tu définies des classes qui permettront de créer des objets. Dans la classe, tu définies des attributs de l'objet et des methodes.
Par exemple, dans ton programme, tu vas gérér une fenêtre. Une fenêtre a deux dimensions (X, Y), une position (pX, pY), et un état qui peut prendre trois valeurs : maximisé, minimisé ou intermédiaire. Ce sont les attributs.
Ensuite tu vas pouvoir interagir avec l'objet par le biais de methodes, comme par exemple :
agrandirFenetre, dimensionnerFenetre, réduireFenetre....
l'avantage, c'est que tu peux à n'importe quel moment créer une nouvelle fenêtre (donc un nouvel objet à partir de ta classe d'objet) qui aura ses attributs personnels, et qui réagira de façon indépendante d'une autre fenêtre.
Par exemple, tu as trois fenêtres à créer :
fenetre1.create()
fenetre2.create()
fenetre3.create()
ensuite, tu peux agrandir la 1ere, minimiser la 2eme et redimensionner la 3eme (+10pixels horiz, +0vert):
fenetre1.agrandirFenetre()
fenetre2.minimiserFenetre()
fenetre3.redimFenetre(10,0)

Autres avantages de la prog objet : tu peux faire hériter ta classe Fenetre pour, par exemple gérer une classe d'objets FenetreComplexe, qui sont des Fenetres avec une barre de menu. Tu n'as pas à redéfinir ce qui est commun, mais que ce qui est nouveau.

Bien sûr, ça ne se limite pas à l'interface. Si ton programme est un jeu, tu peux avoir une classe personnage de ce type :
Classe Personnage
Attributs :
vie
taille
force
age
sexe
...

methodes
naitre(avec un sexe défini, une taille initiale, un âge=0, une vie pas très élevée, une force pas très élevée)
grandir(X cm)
modifierLaForce(+/-X pts)
mourir()
...

Bon, c'est très restrictif, mais tu as une vue globale qui - à mon avis - est assez juste.
avatar

31

Pourquoi vouloir tout de suite se lancer sur le C++ ? sad

Le C est d'un certain point de vue un langage joli et minimaliste.

Le C++ est une usine à gaz malpropre...
Les droits inaliénables du troll :
1) le droit d'avoir raison
2) le droit d'être péremptoire
3) le droit de ne pas lire
4) le droit de ne pas répondre
5) le droit d'être de mauvaise foi
6) Autant pour moi / Faignant / Vivent Tintin et Milou

32

Cela dit, Kevin n'a pas tord (surtout en Java)... A force de vouloir "objetiser" (-> bon pour le dico du futur) le plus possible, on en arrive à une complexification du problème qui n'a pas lieu d'être (moi, ce qui me saoule le plus en Java, c'est la gestion de l'interface graphique quand on ne travaille pas en RAD... ah oui, et la gestion de l'impression).
avatar

33

./31> Cf mon post ./26
avatar

34

Ceci dit, l'exemple de Nil est donné avec une syntaxe moche mais on peut faire de l'orienté objet avec une syntaxe jolie ^^
Par exemple :
type mot = Ga | Bu | Zo | Meu
exception Y_a_plus_de_mots

class chiffre = object
  val mutable mot = Ga
  method ecrit =
    match mot with
      Ga -> "ga"
    | Bu -> "bu"
    | Zo -> "zo"
    | Meu -> "meu"
  method incremente =
    mot <- match mot with
      Ga -> Bu
    | Bu -> Zo
    | Zo -> Meu
    | _ -> raise Y_a_plus_de_mots
  method private reset = mot <- Ga
end

class virtual jetable = object (bibi)
  val mutable poubelles = None
  method private reset = ()
  method private virtual cree_poubelle : #chiffre
  method jette =
    bibi#reset;
    begin
      match poubelles with
        None -> let p = bibi#cree_poubelle in poubelles <- Some p; p
      | Some p -> p
    end#incremente
  method ecrit =
    match poubelles with
      None -> ""
    | Some p -> p#ecrit
end

class nombre = object (bibi)
  inherit jetable as maman
  inherit chiffre as papa
  method incremente = try papa#incremente with Y_a_plus_de_mots -> bibi#jette
  method ecrit = maman#ecrit ^ papa#ecrit
  method private cree_poubelle = new nombre
end

(En l'occurence ce code ne sert pas à grand-chose, mais c'est pour montrer la syntaxe cheeky)
Tu vois, donc là ça définit une classe nombre, qui a à la fois les propriétés d'un chiffre et celles d'un objet jetable. Pour s'incrémenter il essaye la méthode du chiffre (qui est son papa), mais si ça rate (parce qu'il n'y a plus de mots), il se jette à la poubelle (il sait le faire, il a hérité la méthode de sa maman : il lui suffit de créer une poubelle -- c'est-à-dire en fait un autre nombre -- et de se réinitialiser. Pour se réinitialiser, il utilise la méthode de son papa plutôt que celle de sa maman car il a hérité de son papa en dernier.)
Et pour écrire sa valeur (en shadok), il écrit d'abord la valeur de sa maman (c'est à dire son nombre de poubelles), puis celle de son papa (le chiffre).
Voilà, c'est tout simple comme tu peux constater smile

Et grâce à ça on peut écrire une fonction qui écrit n'importe quel nombre en shadok :
let shadok nombre = print_endline
    (let n = new nombre in for i = 1 to nombre do n#incremente done; n#ecrit)


avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

35

La différence entre ta syntaxe et la mienne, c'est que la mienne n'est pas associée à une langage, mais est utilisée pour montrer "comment ça marche l'objet" happy.
M'enfin, c'est aussi bien de montrer un exemple (enfin, il veut faire du C++ et tu lui montres du OCamL - c'est bien ça ?)
Bon, oui, c'est vrai, mon code-minute est moche ^^
avatar

36

(enfin, il veut faire du C++ et tu lui montres du OCamL - c'est bien ça ?)

Ca se défend : il ferait bien mieux de faire du ocaml que du C++ smile
Les droits inaliénables du troll :
1) le droit d'avoir raison
2) le droit d'être péremptoire
3) le droit de ne pas lire
4) le droit de ne pas répondre
5) le droit d'être de mauvaise foi
6) Autant pour moi / Faignant / Vivent Tintin et Milou

37

En fait c'est le seul exemple de code objet que j'ai sous la main gnignigni
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

38

looooooooooooooooooooool
avatar

39

J'crois plutotque je vais faire un langage linéaire comme le C ou Basic pour des petits jeux en 2D ca sera suffisant grin
avatar
Zut je suis reperé, vite ! L1+R1+L2+R2 !
Des ennemis ! ACTIVATING COMBAT MODE - MODULATING PHASE - POWER SURGE ! - CONFLICT RESOLVED
La longue liste des clichés de l'animé et du manga !
RAW ! RAW ! FIGHT THE POWER !

40

Bah fais du C, comme ça, après tu pourras développer pour plus de plateformes (alors que le basic, bah... non seulement c'est très limité, mais en plus c'est très peu normalisé).
avatar

41

Bah vala je commence le C sauf que quelqu'un pourrait me dire ou trouver un bon ide?
avatar
Zut je suis reperé, vite ! L1+R1+L2+R2 !
Des ennemis ! ACTIVATING COMBAT MODE - MODULATING PHASE - POWER SURGE ! - CONFLICT RESOLVED
La longue liste des clichés de l'animé et du manga !
RAW ! RAW ! FIGHT THE POWER !

42

Hum, tt le monde va te dire MS Visual Studio... mais bon, pour débuter, le pack de Borland C 4.5 (en mode console) est déjà bien (AMHA).
avatar

43

Clad2
: Bah vala je commence le C sauf que quelqu'un pourrait me dire ou trouver un bon ide?

http://www.bloodshed.net
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

44

borland C ou dev-c++
à toi de voir

45

KK > eek, encore un troll anti-C++ ? Quelle surprise... triroll

Clad2 > Dev-C++, et si tu peux te le trouver (essaye VRAIMENT), Visual Studio.
Ce dimanche j'ai galéré avec LouisXIV sur Dev-C++ rien que pour faire un listing assembleur,
aucun dialogue ne le permet, il faut savoir que c'est la switch -S. Il y a 3 endroits différents où
on peut ajouter des switch à GCC, et aucun ne marche (triso). J'ai donc compilé en ligne
de commande pour avoir mon listing...
Visual Studio est vraiment parfait. Sans doute le meilleur débogueur Windows en mode protégé,
une compilation puissante, le DirectX SDK qui ne marche quasiment qu'avec VC++,
SDL qui colle parfaitement avec...

Pour faire des trucs graphiques, utilise soit QBasic avec des graphismes DOS,
soit Visual Studio + SDL pour faire ça sous Windows (et c'est très portable)
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.

46

Pt1, snow, t'es un boulet, tu vois pas que tu conseilles n'importe quoi ?
Pour faire des trucs graphiques, utilise soit QBasic avec des graphismes DOS, --> C'est *presque* ce qu'il y a de plus basique, et ça permet de faire les choses les plus crades en prog (super, pour un débutant autodidacte gol)
soit Visual Studio + SDL pour faire ça sous Windows (et c'est très portable) --> C'est *presque* ce qu'il y a de plus complêt/complexe et ça permet de faire les choses les plus crades en prog (super, pour un autodidacte qui débute gol).
Si Kevin déconseille le C++, c'est qu'il a de très bonnes raisons. Moi-même, j'apprécie énormément la programmation objet, mais je pense que ça n'est pas l'idéal pour commencer (cf. mes posts, résumé : la prog. objet demande une methode d'analyse qu'il n'est pas possible d'acquérir seul). En plus, la prog objet n'est pas du tout adaptée à l'apprentissage, durant lequel on se focalise sur l'algo pure et dure.
En outre, tu conseilles quasi ouvertement de pirater VC++ :/. Et Dev-C++ n'est rien d'autre que ce qu'a conseillé Kevin, en passant :/².
avatar

47

"C'est *presque* ce qu'il y a de plus complêt/complexe et ça permet de faire les choses les plus crades en prog (super, pour un autodidacte qui débute gol)."
C'est clair que c'est pas évident, mais à part ça y'a soit OpenGL, plus
complexe, soit DirectX, carrément cauchemardesque.
Et oublions toute autre idée comme dessiner dans une zone image d'une
fenêtre faite en VB.


"En outre, tu conseilles quasi ouvertement de pirater VC++ :/."
S'il ne veut pas d'un truc souvent buggé il ne doit pas prendre
Dev-C++, qu'il ne peut/veut pas pirater et qu'il veut un truc simple,
et bien il utilise QBasic, donc "C'est *presque* ce qu'il y a de plus basique, et ça permet de faire les choses les plus crades en prog" passe à la poubelle.
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.

48

roll OpenGL et DirectX ne sont pas des langages mais des librairies tsss

Quant à ta tirade sur l'IDE, il peut très bien utiliser un IDE gratuit et très simple (surtout s'il travaille en mode DOS/Console, comme c'est conseillé quand on commence), il y en a de nombreux.
Sinon, même si ça n'est pas non plus très légal, il y a BC++ 4.5 qui est en abandonware (en passant, Borland n'est pas contre l'abandonware, Borland Pascal 7.01fr a longtemps été dispo gratos chez eux).
Tu ne connais que les etrêmes, j'ai l'impression... QBasic est vraiment ce qu'il y a de pire pour commencer (je sais, j'ai commencé par là). A choisir, il vaut mieux qu'il fasse du Pascal (cf. encore les raisons invoquées plus haut, mais bon, il faudrait que tu commences à lire les topics avant de poster, j'en ai marre de me répéter) : c'est simple, ça oblige à travailler proprement. Par contre, quand on passe au C, on a des problèmes (notamment par rapport à la gestion de la mémoire et des pointeurs, AMHA).
Enfin, tout ça a déjà été dit, redit, Clad2 a décidé de se mettre au C, qu'il le fasse.
(En passant, je me demande où en est ton projet, pour l'instant, on n'a pas d'analyse, on a du vent en poudre).
avatar

49

Bon là je ne peux plus me retenir... très sincèrement, si tu veux quelque chose de simple, qui encourage (pour ne pas dire force) la programmation propre, qui a une interface avec un interpréteur méga-pratique pour apprendre et tester, bref parfaitement adapté aux débutants (c'est d'ailleurs avec que j'ai débuté en programmation sérieuse, j'avais fait quelques vagues trucs en basic dix ans avant mais bon) et malgré tout puissant, le meilleur choix est je pense ocaml. D'autant que, pour commencer, tu n'es pas du tout obligé de connaître tous les aspects du langage (par exemple il y a des objets mais on peut ne pas les utiliser).
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

50

"roll OpenGL et DirectX ne sont pas des langages mais des librairies tsss"
C'est vrai ? triroll

"Quant à ta tirade sur l'IDE, il peut très bien utiliser un IDE gratuit et très simple (surtout s'il travaille en mode DOS/Console, comme c'est conseillé quand on commence), il y en a de nombreux."

Bien sûr. Mais c'est juste que si des IDE sont payants, c'est pas pour rien cheeky.

"Tu ne connais que les etrêmes, j'ai l'impression..."
Exactement. smile

"QBasic est vraiment ce qu'il y a de pire pour commencer (je sais, j'ai commencé par là)."
Moi aussi, j'en suis pas mort. eek
Et puis j'ai obtenu bien plus de résultats que ce que je pourrais faire
aujourd'hui comme démo 3d avec mesh 3DS Max affiché par DirectX.


"A choisir, il vaut mieux qu'il fasse du Pascal"
Naaaan. Encore une fois, comme je ne connaît que les extrêmes,
il vaut mieux qu'il fasse soit du Basic, ce sera simple, soit du C parceque
c'est le langage de référence qui lui servira bien plus que le Pascal.

"c'est simple, ça oblige à travailler proprement"
Mais il a le temps pour ça. Avant je ne programmais qu'en spaghetti
quand j'ai débuté. Quand j'ai découvert les blocs je m'y suis mis tout
seul, naturellement.


"Par contre, quand on passe au C, on a des problèmes (notamment par rapport à la gestion de la mémoire et des pointeurs, AMHA)."
pencil, et puis Pascal et C quand on regarde bien c'est la même chose
mais écrite différemment. (struct = RECORD, ^ = *, les déclarations sont
claires en Pascal mais en C aussi il y a une zone car on ne peut pas déclarer
n'importe où, etc)

"(En passant, je me demande où en est ton projet, pour l'instant, on n'a pas d'analyse, on a du vent en poudre)."
Quel projet ? triso
Y'en a pas mal des projets. cheeky
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.

51

Je suis on ne peut plus d'accord avec Sally smile

Si ce n'est que le lien est caml.inria.fr
Les droits inaliénables du troll :
1) le droit d'avoir raison
2) le droit d'être péremptoire
3) le droit de ne pas lire
4) le droit de ne pas répondre
5) le droit d'être de mauvaise foi
6) Autant pour moi / Faignant / Vivent Tintin et Milou

52

Sally > NOOOOOOON pas de Caml !!!!
C'est peut-être qqch qui va bien avec notre notation, mais c'est ça le problème,
c'est contraire à la définition de programmation qui implique de manipuler
des trucs incompréhensibles, obscures et sales. triso

Non franchement, s'il ne choisit pas le C ou le QBasic, je préfèrerais qu'il écoute Nil
et fasse du Pascal plutôt que du Caml....
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.

53

Snowtiger est vraiment une bénédiction.
Dans tous les domaines, il suffit d'adopter exactement le contraire de ce qu'il dit pour trouver les solutions justes et de bon goût.
Les droits inaliénables du troll :
1) le droit d'avoir raison
2) le droit d'être péremptoire
3) le droit de ne pas lire
4) le droit de ne pas répondre
5) le droit d'être de mauvaise foi
6) Autant pour moi / Faignant / Vivent Tintin et Milou

54

l'Objective Caml ? Une solution juste et de bon goût ?
C'est vrai, comparé au C, au Basic ou au Pascal, y'a vraiment personne
qui programme avec, c'est un langage joliment à part comme ça ceux qui
ont appris la prog avec n'arrivent pas à en apprendre un autre, et puis
ça sent le bourrin de la théorie, le petit prof de fac qui fait tout son algol
avec (alors qu'il n'a jamais touché une machine) et qui au fond n'a que
des raisons minables de l'utiliser. Si encore il l'utilisait seul, ça irait, mais
comme y'a une zoulie situation entre les USA et la France il faut que
le cours du second semestre des étudiants de première année incorpore
du caml parceque c'est pas américain. Sacré raisonnement.
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.

55

le moyen le plus court pour aller en nvelle calédonie ? => suivre st, il y va par le chemin le plus direct entre deux points... roll
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

56

Je ne le mets pas en ignore juste pour avoir le plaisir de lire sa prose amusante. smile
Les droits inaliénables du troll :
1) le droit d'avoir raison
2) le droit d'être péremptoire
3) le droit de ne pas lire
4) le droit de ne pas répondre
5) le droit d'être de mauvaise foi
6) Autant pour moi / Faignant / Vivent Tintin et Milou

57

Ben faut dire que j'ai légèrement les nerfs d'avoir des cours avec du caml à la con
en lieu et place du pascal il y a quelques années. grin
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.

58

en fait il faudrait se mettre au PRO-COBOL ça c'est du langage !!!! cheeky
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

59

Bon, je m'emporte un peu dans mes posts.
(Mais essayez de comprendre, l'histoire du ./54 c'est mon histoire cry)

Toujours est-il que s'il débute, il ne devrait pas débuter dans un langage
possédant une communauté réduite (et qui se voile la face en prônant son langage)
, façon Rebol par exemple. Quels que soient les avantages de l'OCaml, on ne peut
négliger que les programmeurs C, Basic et Pascal sont "un peu" plus nombreux.
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.

60

Sally > la seule raison pour laquelle je pense qu'il vaut mieux qu'il ne fasse pas du oCalm est que c'est objet et que donc pour débuter... (cf. ma tirade). Je peux aussi dire que ce n'est pas très développé, mais le Pascal est dans la même situation cheeky.
Snow > Dis-moi, dans la vraie vie, tu es normal ? Soit tu manques de maturité (exemple frappant avec les extremes que tu choisis), soit tu es un mytho qui ne sait pas de quoi il parle (exemple frappant avec ton projet d'endoxometapro-kernel), soit tu es les deux (c'est loin d'être incompatible).
Moi aussi, j'en suis pas mort.

Oui, on s'en rend bien compte sad.
Et puis j'ai obtenu bien plus de résultats que ce que je pourrais faire aujourd'hui comme démo 3d avec mesh 3DS Max affiché par DirectX.

J'ai pas comprendu ta phrase. Il manque des bouts à la construction, un peu comme la différence entre un pigeon, quoi.
avatar