dimanche 15 juin 2008
Politique (?)
A nous qui dans nos vies quotidiennes sommes souvent bien loin des préoccupations politiques, à nous qui n'avons rien appris de l'histoire et de la guerre entre les peuples et à tous ceux qui pensent que l'on peut changer le monde avec des mots, voici quelques éclaircissements.
Pour changer les choses avec des mots, il faut d'abord pouvoir se comprendre, parler la même langue, utiliser des termes compris par chacun, mais ce n'est pas suffisant. Ce qui est bien pour moi, l'est peut-être à tes dépends et vice-versa. Alors si mes besoins sont plus importants que les vôtres, pourquoi ne pourriez-vous pas céder, pourquoi ne pourrions-nous pas trouver un compromis ? Ça, ça peut fonctionner pour deux personnes, mais pour des peuples entiers, c'est peu probable. Et c'est sans prendre en considération les conflits d'intérêt. Si nous
voulons vous et moi la même chose, il n'y a pas à discuter pour
l'obtenir.
Prenons exemple sur l'incursion saxonne sur les côtes bretonnes aux alentours du IVe siècle avant J.-C. (Jean-Claude pour les intimes). Ils n'avaient plus assez d'espace, plus rien à manger, plus de terre fertile, alors ils sont allés explorer le monde. Ils sont tombés sur la Bretagne (actuellement la Grande-Bretagne ), et ont trouvé que cette terre leur conviendrait. Bien sûr il y avait déjà les habitants sur place.
Première difficulté : ils ne parlaient pas la même langue.
Deuxième difficulté : ils avaient une culture, des moeurs, différents.
Troisième difficulté : pourquoi diable les bretons accepteraient-ils de céder une partie de leur territoire qu'ils se disputaient déjà entre eux et dont ils avaient besoin à des étrangers crève-la-faim ?? La seule solution restante c'est la guerre.
Quand nous croyons en nos idées, en notre vision des choses, quand nous voulons appliquer ces idées, nous avons forcément contre nous tous ceux qui pensent que nous avons tort, tous ceux qui veulent le contraire, et tout ceux qui ne veulent pas tout à fait la même chose. On ne peut pas discuter avec tout le monde. Pour arriver à ses fins, il faut imposer ses idées. Même ceux qui veulent le faire avec des mots, sont obligés de l'imposer par d'autres moyens. Toutes les solutions sont envisageables. Regardez aujourd'hui la politique : idées de gauche, idées de droite, idées d'on ne sait où. La bataille médiatique, publicitaire, politique, pour imposer ses idées, on n'essaie pas autant de prouver que l'on a raison et que l'autre à tort, ou que nos idées sont les meilleures, que de dé-crédibiliser la personne en face. On se renseigne (Sun Tzu le disait : dans une guerre, le renseignement est primordial), on sort des casseroles, on pointe du doigt. Et même après avoir perdu, on continue : "regardez il dit des gros mots", "regardez il a des comptes numérotés en Suisse", "regardez elle a maltraité une employée", etc. Cette bataille de cour d'école reflète les ficelles du métier.
Il est évident qu'un homme ne peut gagner seul, et qu'il a besoin de partisans à cette échelle. Les partisans sont les ouvriers de l'application des idées, c'est grâce à eux que les choses sont possibles. La manipulation des masses fait partie intégrante de la stratégie. J'aimerais vous dire "je vous en prie, ne soyez pas dupes", mais le travail de certaines personnes consiste à la recherche de moyens de persuasion toujours plus efficaces pour arriver à leurs fins.
En conclusion, que dire de tout ça, à part souvent que "ça nous dépasse". C'est bien naïf de dire cela comme ça, car en réalité, c'est étudié et fait pour ça, "pour nous dépasser" et ainsi que nous puissions être dirigés.
samedi 15 décembre 2007
Explications sur le programmation.
1°) Algorithmie
L'algorithmie pourrait être associée à la grammaire. En effet, on utilise pour programmer des "langages" informatiques qui ont tout autant que nos langues des règles, une syntaxe, etc.
De la même façon qu'on peut écrire une phrase en respectant la syntaxe "sujet - verbe - complément", on peut écrire un programme respectant la syntaxe "test - itération - affichage".
Ainsi on dissocie l'algorithmie qui est l'écriture théorique d'"algorithmes" avec lesquels on réalise des programmes, de l'écriture de programmes avec un langage de programmation. L'algorithmie propose des conventions d'écriture étendues à tous les langages de programmation, de la même façon que sujet verbe et compléments se retrouvent dans beaucoup de langues, pour ne pas dire toutes.
2°)Le concept de variable
a)Les variables simples
Ce concept est omniprésent dans le domaine de l'algorithmie et de la programmation c'est pourquoi il est indispensable de bien le comprendre pour être à même de programmer.
Par analogie, une variable peut être considérée comme une boîte. Les principaux attributs d'une variable simple sont son nom et le type de données qu'elle peut contenir. Je m'explique : imaginons que vous ayez des boîtes à thé. Vous n'allez pas mélanger les thés dans plusieurs boîte mais chaque boîte contiendra un type de thé. On peut donc considérer que vous aurez par exemple une boîte qui s'appellera "boîte à earl grey" dans laquelle vous ne mettrez que du thé earl grey, une boîte "darjeeling" dans laquelle vous ne mettrez que du thé darjeeling, etc. Cependant cela reste du thé, mais pas le même à chaque fois. Dela même manière vous pouvez avoir plusieurs variables dans laquelle vous stockez des données de type entier, vous aurez alors la variable entier1 qui contiendra 1, la variable entier2 qui contiendra 4, etc.
Mais vous pouvez aussi avoir une boîte à sucre par exemple et là vous ne mettrez pas de thé dedans, elle s'appellera alors "boîte à sucre". Encore une fois on peut imaginer avoir une variable caractere qui contiendra 'c'.
On ne peut pas mettre de sucre dans la boîte à thé ni de thé dans la boîte à sucre, on ne peut pas mettre 'c' dans entier1 et on ne peut pas mettre 1 dans caractere. Par contre, on peut mettre le thé darjeeling dans une boîte pour earl grey et du earl grey dans une boîte de darjeeling comme on peut mettre 3 dans entier1 et 1 dans entier2.
Pour récapituler :
| Nom | contenu | Nom | contenu |
| Boîte à earl grey | contient du thé | entier1 | contient 1 |
| Boîte à darjeeling | contient du thé | entier2 | contient 2 |
| Boîte à sucre | contient du sucre | caractere | contient 'c' |
J'attire votre attention sur le fait qu'un caractère est noté par convention entre quotes ' et non entre guillemets ". Les guillemets sont réservés pour les chaînes de caractères qui sont comme nous allons le voir des variables complexes.
b)Les variables complexes
En effet, il existe également des boîtes avec des compartiments n'est-ce pas ?
C'est comme si dans une boîte, il y en avait plusieurs. Et bien les variables dites complexes sont exactement cela : ce sont des variables contenant d'autres variables. Le type le plus connu de ces variables complexes est la chaîne de caractères, qui est en relation étroite avec le tableau. Je ne vais pas parler des autres pour l'instant.
En gros, un tableau est une variable contenant un certain nombre d'autres variables mais toutes du même type ! Ainsi on aura une boîte dans laquelle on a plusieurs compartiments pour différents type de boutons, mais cette grande boîte sera réservée uniquement aux boutons.
Par exemple on pourra donc avoir un tableau d'entiers ou un tableau de caractères, c'est ce qu'on appelle une chaîne de caractères !
C'est pourquoi la chaîne "toto" peut être considérée comme un tableau contenant 't' 'o' 't' 'o'.
On accède à chaque élément avec son indice que l'on place entre crochets comme suit : [indice].
Ainsi dans la chaîne "toto", 't' est à l'indice 1, etc. ATTENTION, ceci est valable en algorithmie mais dans certains langages comme le c++ le premier indice du tableau est 0 et non pas 1.
Mais revenons à notre tableau. Prenons une variable de type chaîne de caractère que l'on appellera ch et dans laquelle on mettra "toto".
ch[1] = 't'
ch[4] = 'o'
ch = "toto"
Le tableau étant un conteneur, on peut imaginer créer une variable comme étant un tableau de tableaux !
Voici un autre exemple avec un tableau d'entiers : tablo est un tableau d'entiers dans lequel on met 5, 4, et 3. tablo[1] = 5, tablo[2] = 4 et tablo[3] = 3.
Vous suivez toujours ?
Passons donc rapidement sur la notation algorithmique : on déclare une variable, c'est à dire qu'on dit qu'on va l'utiliser en écrivant "var nomdelavariable : type".
Cela donne :
var ch : chaîne de caractères
var entier1 : entier
var car : caractère
L'attribution d'une valeur à la variable se fait ensuite comme ceci :
ch <- "toto"
entier1 <- 3
Voilà, vous savez maintenant déclarer des variables ! Mais vous allez me dire : "c'est bien beau tout ça, mais les variables, ça sert à quoi ?"
Eh bien admettons que l'instruction "affiche" avec entre paranthèses ce que l'on veut afficher, serve à faire apparaître à l'écran quelque chose.
Affiche("toto") afficherait donc "toto" à l'écran. Si vous voulez afficher l'âge de la personne qui tape au clavier, il faut d'abord lui demander, mais comment savoir ce qu'elle tape ? On récupère ce qu'elle tape dans une variable pardi ! Ainsi on peut afficher directement ce que l'utilisateur tape, sans savoir exactement ce qu'il tape.
Exemple :
var age : entier
age<-saisie("Saissez votre âge :")
affiche(age)
Le tour est joué. Peu importe ce que tape l'utilisateur comme âge, on verra apparaître ce qu'il a tapé à l'écran. Bien sûr, l'utilisation des variables ne se limite pas uniquement à la saisie de l'utilisateur, mais le principe est là : récupérer des données et les stocker pour pouvoir les traiter indépendamment de leur contenu.
Nous arrivons maintenant à la première étape de la programmation : le test.
3°)Le test
Comme nous venons de le voir, nous pouvons récupérer la saisie d'un utilisateur, mais nous ne pouvons pas connaître directement son contenu. Pourtant nous avons besoin de traiter ce que l'utilisateur nous fournit : c'est là qu'intervient le test. Nous ne pouvons pas connaître directement le contenu de la variable mais nous pouvons en quelque sorte deviner ce qu'elle contient avec la syntaxe "si... alors...sinon".
Reprenons l'algorithme précédent et imaginons qu'on veut simplement afficher à l'écran si la personne est majeure ou pas. Nous ne pouvons pas savoir directement si elle a tapé 18, 22, 23 ou encore 16, mais en stockant l'âge saisi par l'utilisateur dans une variable de type entier, nous pouvons tester si la variable est supérieure ou égale à 18.
Par convention, un bloc algorithmique est imbriqué par un "début...fin", mais voyez plutôt :
var age : entier
Début
age<-saisie("Saissez votre âge :")
SI age >= 18 ALORS
affiche("Vous êtes majeur(e).")
SINON
affiche("Vous êtes mineur(e).")
FIN
FIN
Voilà : nous venons de demander la saisie de son âge à l'utilisateur, nous avons testé ce qu'il nous a envoyé et nous avons renvoyé un résultat en fonction de sa saisie. Si l'utilisateur tape 16, il aura le message "vous êtes mineur(e)", s'il tape 22 par exemple, il aura le message "vous êtes majeur(e)".
Pour pousser un peu plus loin, sachez qu'on peut imbriquer plusieurs tests. On pourrait donc ajouter un message de plus pour afficher à l'utilisateur qui a 18 ans qu'il est majeur depuis peu de temps :
var age : entier
Début
age<-saisie("Saissez votre âge :")
SI age = 18 ALORS
affiche("Vous êtes majeur(e) depuis peu de temps ! ")
SINON
SI age >18 ALORS
affiche("Vous êtes majeur(e).")
SINON
affiche("Vous êtes mineur(e).")
FIN
FIN
FIN
Vous n'avez pas mal à la tête ? Ok on peut continuer alors.
3°)Les itérations
