Array : Différence entre versions

De Design numérique
Aller à : navigation, rechercher
(V1.0)
(V1.0)
Ligne 34 : Ligne 34 :
 
La case 1 de mon tableau contient le nom "Pierre" (car les cases sont comptées à partir de 0) Si l'ont veut que ça soit ma case 6 qui contienne le nom "Pierre" il faut écrire dans le terminal  
 
La case 1 de mon tableau contient le nom "Pierre" (car les cases sont comptées à partir de 0) Si l'ont veut que ça soit ma case 6 qui contienne le nom "Pierre" il faut écrire dans le terminal  
  
tableau[6]='Pierre'  
+
  <nowiki> tableau[6]='Pierre' </nowiki>
  
 
Les cases de 0 (Roger) à 6 (Pierre) n'existeront donc pas puisqu'elles sont vides.  
 
Les cases de 0 (Roger) à 6 (Pierre) n'existeront donc pas puisqu'elles sont vides.  
Ligne 40 : Ligne 40 :
 
En cas de trou de mémoire, on peut afficher l’ensemble des valeurs de l'Array grâce à la commande  
 
En cas de trou de mémoire, on peut afficher l’ensemble des valeurs de l'Array grâce à la commande  
  
${tableau[*]}  
+
<nowiki> ${tableau[*]} </nowiki>
  
 
Ensuite il faut entrer dans le nano, lui dire qu'on lui parle en bash (#!/bin/bash en première ligne)  
 
Ensuite il faut entrer dans le nano, lui dire qu'on lui parle en bash (#!/bin/bash en première ligne)  
 
Retour à la ligne et lancer un compteur partant de la valeur 0. Vous pouvez écrire par exemple  
 
Retour à la ligne et lancer un compteur partant de la valeur 0. Vous pouvez écrire par exemple  
  
i=0
+
 +
<nowiki> i=0
 
for i in $(cut -d: -f1 nomscommuns.txt)
 
for i in $(cut -d: -f1 nomscommuns.txt)
do
+
do </nowiki>
  
 
On défini sur quel fichier va se baser notre procédure, ici l'ont commence par les noms communs préalablement stocké dans le fichier .txt nommé "nomscommuns" et que chaque éléments, chaque noms, sortant de ce tableaux va être placés dans un rang nommé ici par la lettre "i" grace à la ligne suivante  
 
On défini sur quel fichier va se baser notre procédure, ici l'ont commence par les noms communs préalablement stocké dans le fichier .txt nommé "nomscommuns" et que chaque éléments, chaque noms, sortant de ce tableaux va être placés dans un rang nommé ici par la lettre "i" grace à la ligne suivante  
  
tab[$j]=$i
+
<nowiki> tab[$j]=$i </nowiki>
  
 
Puis on  incrémente le compteur pour créer une nouvelle case la prochaine fois en terminant par  
 
Puis on  incrémente le compteur pour créer une nouvelle case la prochaine fois en terminant par  
  
j=$j+1  
+
<nowiki> j=$j+1  
done
+
done </nowiki>
  
 
La suite : le programme va demander une petite participation à l’utilisateur qui va lui même choisir par quelle lettre il veut commencer sa phrase, ce qui se traduit par la ligne de commande "echo "Saisir une lettre en débutant par une minuscule" "
 
La suite : le programme va demander une petite participation à l’utilisateur qui va lui même choisir par quelle lettre il veut commencer sa phrase, ce qui se traduit par la ligne de commande "echo "Saisir une lettre en débutant par une minuscule" "
Ligne 62 : Ligne 63 :
 
C'est ce que le terminal va demander à l'utilisateur quand celui-ci lancera le programme. Imaginons qu'il écrive la lettre "r"
 
C'est ce que le terminal va demander à l'utilisateur quand celui-ci lancera le programme. Imaginons qu'il écrive la lettre "r"
  
read input -
+
<nowiki> read input -
 
for i in ${tab[@]}; do
 
for i in ${tab[@]}; do
 
     if [[ $i = $input* ]]
 
     if [[ $i = $input* ]]
 
         then
 
         then
 
         echo $i
 
         echo $i
     fi
+
     fi </nowiki>
  
 
Le terminal va, grâce a cette commande, ressortir seulement les cases de l'array, donc les mots, débutant avec la lettre donnée par l'utilisateur.  
 
Le terminal va, grâce a cette commande, ressortir seulement les cases de l'array, donc les mots, débutant avec la lettre donnée par l'utilisateur.  
Ligne 73 : Ligne 74 :
 
On anime le tout d'un petit compteur  
 
On anime le tout d'un petit compteur  
  
compteur=3
+
<nowiki> compteur=3
  
 
while [[ $compteur -ge 0 ]]
 
while [[ $compteur -ge 0 ]]
Ligne 81 : Ligne 82 :
 
         sleep 1
 
         sleep 1
 
         compteur=$((compteur-1))
 
         compteur=$((compteur-1))
done
+
done </nowiki>
  
 
Ensuite on demande à l'utilisateur d'écrire l'un des sujet proposé (echo "saisir un des sujet proposés")
 
Ensuite on demande à l'utilisateur d'écrire l'un des sujet proposé (echo "saisir un des sujet proposés")

Version du 27 novembre 2018 à 16:24

Introduction

Cet article aurait put avoir comme titre le nom d'un dictionnaire participatif crée au courant du début du 21ème siècle, plus précisément en l'an de grâce 2k18, appelé aussi an 17 post Iphone 1 dont l'on connais aujourd'hui l’enjeu primordial dans notre société néo-primitive. L'histoire nous raconte que, perturbée par l'usage prophétique d'un certain nombre de termes durant la première année de son cursus une étudiante créa l'Alphabet Référentiel des Techniques et Maîtrises à l'Usage des Résidents De l'Erg Rassemblant et Articulant Tout les Outils de Recherche. Nom de code "Artmurderator" soit en traduction latine "Quæ occidis es" - ce qui tue.

"Derrière toute parole, tout objet, tout évènement, toute manifestation humaine, il y a du langage"

Mode opératoire

V1.0

Voilà comment, grâce à votre dictionnaire personnalisé, vous pouvez, vous aussi, créer les prémisses de cet outil :

La première étape est de créer plusieurs fichiers .txt des mots que vous désirez utiliser pour votre propre Artmurderator (chaque noms, adjectifs ou groupe nominaux devant être séparé par un retour à la ligne)


  • le premier comportant les sujets ou les groupes nominaux sélectionné, par exemple : " la cosmogonie, l’expérimentation permanente, le workshop, la galerie, le système de médiatisation du réel, et cætera..."
  • le deuxième rassemblant les adjectifs tels que " expérimental, linéaire, anti-académique, autoréférentiel, clivant,..." ou bien d'autres.
  • Dans le troisième il faudrait y lister des verbes conjugués au participe présent "interrogeant, restituant, critiquant, corroborant,..."
  • Et enfin, dans le dernier, un ultime groupe nominal qui pulse. "La prolifération de nos spectres intimes, la restitution de sois-même, les enjeux actuels, nos flux de conscience, l'acte de penser, le prélèvement de la réalité,..."

ATTENTION : vos fichiers textes doivent bien être en UTF8, sans quoi le grand tout ne comprendrait pas toutes les singularités de notre langue française et afficherai un message d'erreur au premier accent circonflexe rencontré.

Ce n'est pas le tout d'avoir enrichis son langage, encore faut-il plonger dans un langage tout autre : celui du terminal, pour mettre tout ça en musique.

Touts les mots listées ne doivent pas rester sous la forme de "liste" mais se transformer en tableaux - traduit par "Array" en anglais. Un Array est comme une variable, à cela de différent qu'elle en contient plusieurs sous forme de "case" .

Par exemple je vais écrire dans mon terminal

  tableau=('Roger' 'Pierre' 'Yves') 

La case 1 de mon tableau contient le nom "Pierre" (car les cases sont comptées à partir de 0) Si l'ont veut que ça soit ma case 6 qui contienne le nom "Pierre" il faut écrire dans le terminal

   tableau[6]='Pierre' 

Les cases de 0 (Roger) à 6 (Pierre) n'existeront donc pas puisqu'elles sont vides.

En cas de trou de mémoire, on peut afficher l’ensemble des valeurs de l'Array grâce à la commande

 ${tableau[*]} 

Ensuite il faut entrer dans le nano, lui dire qu'on lui parle en bash (#!/bin/bash en première ligne) Retour à la ligne et lancer un compteur partant de la valeur 0. Vous pouvez écrire par exemple


 i=0
	for i in $(cut -d: -f1 nomscommuns.txt)
	do 

On défini sur quel fichier va se baser notre procédure, ici l'ont commence par les noms communs préalablement stocké dans le fichier .txt nommé "nomscommuns" et que chaque éléments, chaque noms, sortant de ce tableaux va être placés dans un rang nommé ici par la lettre "i" grace à la ligne suivante

 tab[$j]=$i 

Puis on incrémente le compteur pour créer une nouvelle case la prochaine fois en terminant par

 j=$j+1 
	done 

La suite : le programme va demander une petite participation à l’utilisateur qui va lui même choisir par quelle lettre il veut commencer sa phrase, ce qui se traduit par la ligne de commande "echo "Saisir une lettre en débutant par une minuscule" "

C'est ce que le terminal va demander à l'utilisateur quand celui-ci lancera le programme. Imaginons qu'il écrive la lettre "r"

 read input -
for i in ${tab[@]}; do
    if [[ $i = $input* ]]
        then
        echo $i
    fi 

Le terminal va, grâce a cette commande, ressortir seulement les cases de l'array, donc les mots, débutant avec la lettre donnée par l'utilisateur.

On anime le tout d'un petit compteur

 compteur=3

	while [[ $compteur -ge 0 ]]
	do
        echo -e
        echo $compteur
        sleep 1
        compteur=$((compteur-1))
	done 

Ensuite on demande à l'utilisateur d'écrire l'un des sujet proposé (echo "saisir un des sujet proposés")

Le sujet doit devenir la case 0 du nouveau tableau créer, si l'utilisateur écrit un mot qui ne figure pas dans la liste, un message d'erreur doit apparaître et l'invité à réitérer le processus. Si au contraire le mot figure bien dans la liste, celui-ci doit automatiquement devoir la première case du nouvel Array "Phrase"

Ensuite il faut réitérer le processus jusqu'au 4ème fichier texte afin de composer la phrase complète.

Pistes et références

Pour le fond

La tyranie de la langue par Barthes

Noam Chomsy se questionne sur le language

Gaston Bachelard et l’héritage de l’invisible

George Steiner et la Barbarie de l’ignorance

Anthropologie du language

Questionner ce langage par le prisme du numérique

Pour la forme

Du cut-up

Poème dadaïste BeatGeneration

à la table de radotage…

Raymond Quenaud

Vers le pipotron