[Algorithmes] Débutant

Fermé
Axouraid Messages postés 2 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 19 mars 2007 - 14 févr. 2007 à 23:28
mamiemando Messages postés 33073 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 avril 2024 - 15 févr. 2007 à 03:03
Bonjour,

Me voilà lancée dans la programmation. Je n'y connais pas grand chose malheuresement. Je n'ai que des bases dans les langages dits "internet" ...
J'ai essayé de lire des cours sur l'algorithme mais j'ai beau essayé de comprendre, je n'y arrive point. Par quoi faut t-il vraiment commencé? D'abord un langage type C, Pascal ect? Ou je peux directement commencé par l'Algorithme sans avoir des bases.
Merci d'avance. Je fais tout ceci pour un concours !! Je ne suis que dans la maintenance informatique et je voudrais changer de direction.

1 réponse

mamiemando Messages postés 33073 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 avril 2024 7 748
15 févr. 2007 à 03:03
A priori les notions d'algorithmique sont générique et ensuite tu apprends la syntaxe et les spécificités de chaque langage. A mon avis pour débuter pascal est peut être le plus accessible ou même une bonne vieille calculatrice programmable comme tu avais au lycée !

Les langages que tu donnes sont généralement programmés à l'aide de plusieurs fonctions. Typiquement en C, le programme commence lance la fonction "main()", et celle ci se charge d'appeler les différentes fonctions du programmes, qui elles-même peuvent appeler d'autres fonction. L'idée c'est de toujours avoir un découpage de fonction représentant quelque chose qui a un sens (par exemple additionner une matrice, inverser une matrice etc...). En général la fonction main appelle des fonctions très générique et ces fonctions appellent des fonction plus précises.

Fonction Reparer_crevaison()
  Arreter_voiture()
  Changer_roue()
  Redemarrer_voiture()
FinFonction

Fonction Changer_route
  Sortir_cric()
  Demonter_route_crevee()
  Monter_roue_de_secours()
  Ranger_roue_crevee()
  Ranger_cric()
FinFonction

et ainsi de suite....

Ce qui est vraiment important en algorithmique c'est de comprendre le rôle de chaque boucle, la manière de les imbriquer etc. Il faut imaginer un curseur qui parcourt chaque ligne du programme et remonte en début de boucle quand c'est nécessaire.

Exemples
1) écrire une ligne d'étoile horizontale :
Pour i=1...10
  Ecrire '*'
Fin pour

donne :
**********

2) écrire un ligne verticale
Pour i=1...10
  Ecrire '*'
  Passer à la ligne
Fin pour

3) Ecrire un rectangle 5x4
Pour i=1...5
  Pour i=1...4
    Ecrire '*'
  Fin pour
  Passer à la ligne
Fin pour

va donner
****
****
****
****
****

4) écrire un triangle inférieur
Pour i=1...4
  Pour j=1...i
    Ecrire '*'
  Fin pour
  Passer à la ligne
Fin pour

donne :
*
**
***
****

Et ainsi de suite. Si tu as compris ça tu as compris. Après tu peux t'exercer avec des matrices (par exemple écrire le produit matriciel, l'addition matricielle etc...) c'est exactement le même principe.

Exemple
Fonction additionner(matrice A,matrice B)
  Precondition L = nb_ligne(A) = nb_ligne(B)
  Precondition C = nb_colonne(A) = nb_colonne(B)
  C = matrice de taille L*C
  Pour i = 1 ... L
    Pour j = 1 ... C
      C(i,j) = A(i,j) + B(i,j)
    Fin pour
  Fin pour
  Retourner C
Fin fonction

Je sais pas si ca t'éclaire un peu :s

Bonne chance en tout cas
1