IPB

Bienvenue invité ( Connexion | Inscription )

> [deterrage] retour des deulignes ?, ou in memoriam Hebdogiciel
Options
Not a Number
posté 24 Oct 2005, 22:46
Message #1


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 431
Inscrit : 22 Sep 2005
Lieu : X
Membre no 46 478



En ces temps de bi-dualcores@2,5GHz, d'interfaces graphiques, de clefs USB à 1Go, je me souviens, des débuts de l'informatique familiale.
A l'époque ou les disquettes étaient souples ("dit papa, c'est quoi une disquette ?" smile.gif ), étaient faites pour les ordinateurs "professionnels".
Je me souviens d'un magazine ( Hebdogiciel) qui avait entres-autres un concours permanent :
celui de l'écriture du meilleur programme de deux lignes maximum en basic.
Evidemment compte-tenu des contraintes, les poke devaient être comptés et l'originalité et/ou l'humour faisait la différence....


Comme j'ai vu passé dernièrement un topic relatif aux concours sur MB, je me demandai si un concours de deuligneurs intéresserait des macbidouilleurs.
Un "bon" exercice "d'obfuscation" partielle de code.

Bon évidemment rien n'oblige à faire du basic (lequel d'ailleurs tongue.gif), ni à rester bloqué sur le nombre de lignes max initiales (un sixlignes en shell-script par exemple, pourquoi pas ?)

PS: J'ai choisi un lien "bateau" (Wikipedia), car j'avais un doute sur l'accord du site le plus représentatif avec la charte en ce qui concerne l'abandonware

Un premier essai qui ne fait pas grand chose d'un uneligne en fortran90 tongue.gif
(il me reste de la place....et j'aurai pu encore en gagner)

CODE
program deulignes_qui_nen_fait_qune;integer(kind=2)::i=0;do;i=i+1;if(i<0)exit;enddo;print*,i,int2(i-1);endprogram


Ce message a été modifié par Not a Number - 16 Nov 2005, 00:20.


--------------------
-- ceci n'est pas une signature --
Go to the top of the page
 
+Quote Post
 
Start new topic
Réponse(s)
Jaypee
posté 25 Oct 2005, 12:21
Message #2


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



Certains langages sont plus ou moins avantagés pour ça, comme par exemple APL.

Ex 1 : Calcul de la moyenne d'une série de notes saisies au ternminal, ça donne:

CODE
+/V : rho V <-- []

APL utilise des symbôles comme quad (boîte), rho (taille d'un vecteur) ça se lit dedroite à gauche :
V <-- [] // prononcer V reçoit quad, un, ça lit un vecteur au terminal
rho V // longueur du vecteur
+/V // somme des composantes d'un vecteur
: // la division, en fait en APL c'est représenté comme certaines calculettes les deux points sont superposés au tiret.

Ex2 : Tri ascendant d'une séries de notes saisies au terminal
CODE
V [ ordrecroissant V <-- [] ]

V indicé par l'odre croissant de V qui reçoit quad
L'ordre croissant est un opérateur composé du delta et de la barre verticale comme une silhouette disons de Concorde ou de Mirage. Il retourne les indices d'un vecteur qui correspond à l'ordre croissant. L'ordre décroissant existe aussi par superposisition du nabla (delta pointe vers le bas) et de la barre verticale. On l'appelle aussi la carotte.

Ex 3 : Inversion de matrice
CODE
Domino M

Le domino est la superposition du quad (boite) et du symbole de la division, qui fait ressembler le résultat au domino double As.

Ex 4 : Justification d'une ligne de texte à 80 colonnes en rajoutant des espaces là où il y en a déjà un :
CODE
L <-- 'Une ligne de texte à formatter'
L [ ordrecroissant iota rho L, (80 - rho L) rho (L iota ' ') ]

L iota ' ' // retourne les indices des blancs dans L
iota rho L // retourne les indices 1 .. longueur de L
(80 - rho L) rho (L iota ' ') // génère un vecteur de la difference de taille entre 80 et la longueur de L, rempli des indices des blancs, en les répétant au besoin.
Ensuite on concatène les 1.. longueur avec les indices des blancs, on trie le tout et on indice le vecteur L de départ avec le résultat.
Si le début des indices calculés c'est : 1 2 3 4 4 4 5 6 ..., le résultat sera "Une<espace><espace><espace>li..."

Si c'est si bien pourquoi on ne l'utilise plus ???
- Terminal spécial pour taper ces symbôles spéciaux.
- Efficacité supérieure de certains individus doués qui chope le melon ...

C'est devenu quoi ?
Le langage J, franchement illisible, à mon humble avis.

J-P
[edit]Un clavier APL dans toute sa splendeur wink.gif
Une copie d'écran utilisant partiellement les symbôles APL, le rho est remplacé par le dièse

Ce message a été modifié par Jaypee - 25 Oct 2005, 21:45.
Go to the top of the page
 
+Quote Post
Not a Number
posté 25 Oct 2005, 13:15
Message #3


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 431
Inscrit : 22 Sep 2005
Lieu : X
Membre no 46 478



QUOTE(Jaypee @ 25 Oct 2005, 12:21)
Certains langages sont plus ou moins avantagés pour ça, comme par exemple APL.

Ex 1 : Calcul de la moyenne d'une série de notes saisies au ternminal, ça donne: 

CODE
+/V : rho V <-- []

APL utilise des symbôles comme quad (boîte), rho (taille d'un vecteur) ça se lit dedroite à gauche :
V <-- []  // prononcer V reçoit quad, un, ça lit un vecteur au terminal
rho V // longueur du vecteur
+/V // somme des composantes d'un vecteur
: // la division, en fait en APL c'est représenté comme certaines calculettes les deux points sont superposés au tiret.

Ex2 : Tri ascendant d'une séries de notes saisies au terminal
CODE
V [ ordrecroissant V <-- [] ]

V indicé par l'odre croissant de V qui reçoit quad
L'ordre croissant est un opérateur composé du delta et de la barre verticale comme une silhouette disons de Concorde ou de Mirage. Il retourne les indices d'un vecteur qui correspond à l'ordre croissant. L'ordre décroissant existe aussi par superposisition du nabla (delta pointe vers le bas) et de la barre verticale. On l'appelle aussi la carotte.

Ex 3 : Inversion de matrice
CODE
Domino M

Le domino est la superposition du quad (boite) et du symbole de la division, qui fait ressembler le résultat au domino double As.

Ex 4 : Justification d'une ligne de texte à 80 colonnes en rajoutant des espaces là où il y en a déjà un :
CODE
L <-- 'Une ligne de texte à formatter'
L [ ordrecroissant iota rho L, (80 - rho L) rho (L iota ' ') ]

L iota ' '  // retourne les indices des blancs dans L
iota rho L // retourne les indices 1 .. longueur de L
(80 - rho L) rho (L iota ' ') // génère un vecteur de la difference de taille entre 80 et la longueur de L, rempli des indices des blancs, en les répétant au besoin.
Ensuite on concatène les 1.. longueur avec les indices des blancs, on trie le tout et on indice le vecteur L de départ avec le résultat.
Si le début des indices calculés c'est : 1 2 3 4 4 4 5 6 ..., le résultat sera "Une<espace><espace><espace>li..."

Si c'est si bien pourquoi on ne l'utilise plus ???
- Terminal spécial pour taper ces symbôles spéciaux.
- Efficacité supérieure de certains individus doués qui chope le melon  ...

C'est devenu quoi ?
Le langage J, franchement illisible, à mon humble avis.

J-P
[right][snapback]1386737[/snapback][/right]


Une quote connue

rom "Quick C" by Al Stevens

COBOL was designed so that managers could read code.
BASIC was designed for people who are not programmers. wink.gif
FORTRAN is for scientists. sad.gif
ADA comes from a committee - a government committee no less.
PILOT is for teachers.
PASCAL is for students.
LOGO is for children
APL is for martians. smile.gif
FORTH, LISP and PROLOG are speciality languages.
C, however, is for programmers. tongue.gif

un peu outrancier, mais comme d'habitude un fond de vérité

J'avais mis le nez dans le J il y a qques années, mais je n'ai pas résisté
à la complexité de la chose.

Pour en revenir au topic, il faut effectivement faire un choix de langage.
Le C (ou l'objective C) me parai[t/ssent] pas mal.

Dès que j'ai le temps, je soumet un xligne (x = ?) en opengl pour donner qquechose
d'un peu plus conséquent à voir.






--------------------
-- ceci n'est pas une signature --
Go to the top of the page
 
+Quote Post

Les messages de ce sujet
- Not a Number   [deterrage] retour des deulignes ?   24 Oct 2005, 22:46
- - schlum   C'est de la triche les ";" Sinon, ...   25 Oct 2005, 09:35
|- - Not a Number   QUOTE(schlum @ 25 Oct 2005, 09:35)C'est d...   25 Oct 2005, 11:51
- - docphil   ce concours m'énervait au plus au point étan...   25 Oct 2005, 12:21
- - Jaypee   Certains langages sont plus ou moins avantagés po...   25 Oct 2005, 12:21
|- - Not a Number   QUOTE(Jaypee @ 25 Oct 2005, 12:21)Certains la...   25 Oct 2005, 13:15
|- - Not a Number   Comme "promis", ci-dessous un petit prog...   25 Oct 2005, 19:13
- - Cochonou   Allez, pour ceux qui ne connaissent pas ce que c...   25 Oct 2005, 13:13
- - Jaypee   Y' a pas besoin de le faire tourner, il sait f...   25 Oct 2005, 19:23
|- - Not a Number   QUOTE(Jaypee @ 25 Oct 2005, 19:23)Y' a pa...   25 Oct 2005, 19:31
- - schlum   Le programme OpenGL tourne très bien, mais les li...   25 Oct 2005, 19:43
|- - Not a Number   QUOTE(schlum @ 25 Oct 2005, 19:43)Le programm...   25 Oct 2005, 19:58
|- - schlum   QUOTE(Bus Error @ 25 Oct 2005, 20:58)Je ne sa...   25 Oct 2005, 20:13
|- - schlum   QUOTE(Bus Error @ 25 Oct 2005, 20:58)J'ut...   25 Oct 2005, 22:22
|- - Not a Number   QUOTE(schlum @ 25 Oct 2005, 22:22)QUOTE(Bus E...   25 Oct 2005, 22:24
|- - schlum   QUOTE(Bus Error @ 25 Oct 2005, 23:24)PS: les ...   25 Oct 2005, 22:30
|- - Not a Number   QUOTE(schlum @ 25 Oct 2005, 22:30)QUOTE(Bus E...   25 Oct 2005, 22:31
|- - schlum   QUOTE(Bus Error @ 25 Oct 2005, 23:31)C'es...   26 Oct 2005, 12:00
- - Jaypee   Juste une dernière couche d'APL, après j...   25 Oct 2005, 22:05
|- - Not a Number   QUOTE(Jaypee @ 25 Oct 2005, 22:05)Juste une d...   25 Oct 2005, 22:18
|- - schlum   QUOTE(Jaypee @ 25 Oct 2005, 23:05)Juste une d...   25 Oct 2005, 22:20
- - SuperCed   Les nombres permiers en perl : CODE perl -le ...   26 Oct 2005, 08:29
|- - Not a Number   QUOTE(SuperCed @ 26 Oct 2005, 08:29)Les nombr...   26 Oct 2005, 09:37
- - f_cam   C'est sympa le python, j'en ai fait tres p...   26 Oct 2005, 12:10
- - SuperCed   Oui, c'est ça. J'en ai fait un tout petit...   26 Oct 2005, 13:02
- - Not a Number   Quelqu'un aurait un xlignes (x<8) à propos...   26 Oct 2005, 13:15
|- - schlum   QUOTE(Bus Error @ 26 Oct 2005, 14:15)Au passa...   26 Oct 2005, 13:28
|- - Not a Number   QUOTE(schlum @ 26 Oct 2005, 13:28)QUOTE(Bus E...   26 Oct 2005, 13:36
|- - schlum   QUOTE(Bus Error @ 26 Oct 2005, 14:36)QUOTE(sc...   26 Oct 2005, 13:45
|- - SuperCed   QUOTE(schlum @ 26 Oct 2005, 13:45)après avoi...   26 Oct 2005, 13:56
||- - schlum   QUOTE(SuperCed @ 26 Oct 2005, 14:56)QUOTE(sch...   26 Oct 2005, 15:12
|- - Not a Number   QUOTE(schlum @ 26 Oct 2005, 13:45)J'ai fa...   26 Oct 2005, 14:04
- - Cochonou   QUOTEschlum tu peux donc maintenant révéler au m...   26 Oct 2005, 14:21
|- - Not a Number   QUOTE(Cochonou @ 26 Oct 2005, 14:21)QUOTEschl...   26 Oct 2005, 14:31
|- - schlum   QUOTE(Cochonou @ 26 Oct 2005, 15:21)QUOTEschl...   26 Oct 2005, 15:09
|- - Not a Number   QUOTE(schlum @ 26 Oct 2005, 15:09)QUOTE(Cocho...   26 Oct 2005, 15:23
|- - Not a Number   Oyé, Oyé braves programmeurs de MB , je propose...   30 Oct 2005, 01:32
|- - Not a Number   Suite à une demande nombreuse () et particulière...   16 Nov 2005, 00:18
- - Not a Number   Parce que je voulais avoir très vite une idée de...   29 Jan 2006, 00:04
- - Jaypee   Pourrais-tu élaborer un peu stp ? Tu dis: en nat...   29 Jan 2006, 18:04
|- - Not a Number   CITATION(Jaypee @ 29 Jan 2006, 18:04) 153...   30 Jan 2006, 19:48
- - Not a Number   Avec le nouveau MacBook à 2GHz en fréquence effe...   23 May 2006, 22:12
- - franzou   Sur le mac mini solo et sa brave GMA 950 : 97% de ...   23 May 2006, 22:39
- - Not a Number   Avec les Intel Core, il vaut mieux s'assurer q...   23 May 2006, 23:02


Reply to this topicStart new topic
2 utilisateur(s) sur ce sujet (2 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 6th November 2025 - 02:48