FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier

 

 Codage unaire (plus bas que le binaire langage bas niveau)

Aller en bas 
2 participants
AuteurMessage
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Codage unaire (plus bas que le binaire langage bas niveau) Empty
MessageSujet: Codage unaire (plus bas que le binaire langage bas niveau)   Codage unaire (plus bas que le binaire langage bas niveau) EmptyDim 8 Mai 2022 - 11:39

Vous savez coder en langage bas niveau, le binaire pour ne pas le nommer ?
Hé bien, figurez-vous qu'il y a plus bas que le bas niveau!
C'est le langage unaire.
Oui, oui, ça existe.

Monsieur Chuck Norris a un clavier qui ne comporte que le chiffre 0 (en plus bien sûr de la touche espace).
Avec son unique zéro, Chuck Norris peut envoyer des messages à ceux qui savent les décoder.

Le programme suivant vous permet de devenir aussi fort que Chuck Norris en manipulant le langage du plus bas niveau.


Code:

rem ============================================================================
rem           Chuck Norris Programming Language (CNPL)
rem REF : https://www.xarg.org/puzzle/codingame/chuck-norris/
rem ============================================================================
rem Dans ce langage, le "0" est codé "00" et le "1" est codé "0".
rem Puis un espace, puis ensuite autant de "0" que le texte contient de "0"
rem ou "1" successifs.
rem ============================================================================
rem A l’origine c’est un concept inventé par Chuck Norris pour envoyer des
rem messages dits unaires.
rem On se propose ici, d’écrire un programme qui, à partir d’un texte en entrée,
rem affiche le texte codé façon Chuck Norris en sortie.
rem ============================================================================
rem Principe d’encodage :
rem   * Le texte en entrée est constitué de caractères ASCII (7 bits)
rem   * Le texte encodé en sortie est constitué de blocs de 0
rem   * Un bloc est séparé d’un autre bloc par un espace
rem   * Deux blocs consécutifs servent à produire une série de bits de même
rem     valeur ( 1  ou  0 uniquement ) :
rem     ** Premier bloc : il vaut toujours 0 ou 00.
rem        S’il vaut 0, alors la série contients des 1, sinon elle contient des 0
rem     ** Deuxième bloc : le nombre de 0 dans ce bloc correspond au nombre de
rem        bits dans la série
rem ============================================================================
rem Premier exemple
rem Prenons un exemple simple avec un texte constitué d’un seul caractère :
rem C majuscule.
rem C en binaire vaut 1000011 ce qui donne avec la technique de Chuck Norris :
rem   0 0     (la première série  est composée d’un seul 1)
rem   00 0000 (la deuxième série  est composée de quatre 0)
rem   0 00    (la troisième série est composée de deux   1)
rem
rem C vaut donc : 0 0 00 0000 0 00
rem ============================================================================
rem Deuxième exemple :
rem Nous voulons encoder le texte CC (soit les 14 bits 10000111000011) :
rem   0 0     (un seul 1)
rem   00 0000 (quatre 0)
rem   0 000   (trois 1)
rem   00 0000 (quatre 0)
rem   0 00    (deux 1)
rem
rem CC vaut donc : 0 0 00 0000 0 000 00 0000 0 00
rem ============================================================================
dim phrase$
width 0,1400

' phrase$ = "C"        : ' <---  0 0 00 0000 0 00
' phrase$ = "CC"       : ' <---  0 0 00 0000 0 000 00 0000 0 00
' phrase$ = "%"        : ' <---  00 0 0 0 00 00 0 0 00 0 0 0
' phrase$ = "Hello"    : ' <---  0 0 00 00 0 0 00 000 0 00 00 00 0 0 00 0 0 000 00
                       '       0 0 00 00 00 0 00 00 0 0 00 00 00 0 00 00 0 0 0000
phrase$ = "Vive Panoramic"
print "Codage unaire du texte : " + phrase$
print Binaire2Unaire$(Texte2Binaire$(phrase$))

end
rem ============================================================================
FNC Texte2Binaire$(texte$)
    dim_local decimal,binaire$,i
    for i = 1 to len(texte$)
        decimal = asc(mid$(texte$,i,1))
        binaire$ = binaire$ + Decimal2Binaire$(decimal)        
    next i
    result binaire$
END_FNC
rem ============================================================================
FNC Binaire2Unaire$(binaire$)
    dim_local unaire$,caractere$,i,j,k,bloc$
    unaire$ = ""
    i = 0
    while i < len(binaire$)
        bloc$ = ""
        caractere$ = mid$(binaire$,i+1,1)
        j = 1
        while ((i+j) < len(binaire$)) and (mid$(binaire$,i+j+1,1) = caractere$)
            j = j + 1
        end_while
        if caractere$ = "0"
           unaire$ = unaire$ + "00 "
        else
           unaire$ = unaire$ + "0 "
        end_if
        i = i + j
        for k = 1 to j : bloc$ = bloc$ + "0" : next k
        unaire$ = unaire$ + bloc$ + " "
        
    end_while
    unaire$ = rtrim$(unaire$)
    result unaire$
END_FNC
rem ============================================================================
' Convertir un nombre décimal en un nombre en binaire (7 bits)
' Paramètre : un nombre en décimal
' Le résultat est une chaîne de caractères représentant un nombre en binaire
' sur 7 bits
FNC Decimal2Binaire$(dec)
    dim_local n,tmp$,ret$
    n = dec
    while n > 1
        tmp$ = str$(n-2*int(n/2)) + tmp$
        n = int(n/2)
    end_while
    ret$ = str$(n) + tmp$
    while len(ret$) < 7
        ret$ = "0" + ret$
    end_while
    result ret$    
END_FNC
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Codage unaire (plus bas que le binaire langage bas niveau) Empty
MessageSujet: Re: Codage unaire (plus bas que le binaire langage bas niveau)   Codage unaire (plus bas que le binaire langage bas niveau) EmptyDim 8 Mai 2022 - 11:48

Houlà j'ai déjà mal au crane !! scratch geek

Comme dit l'adage... Pourquoi faire simple quand on peut faire compliqué ???!!!
lol! lol! lol!
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
 
Codage unaire (plus bas que le binaire langage bas niveau)
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Binaire vous avez dit binaire mais....
» Signe "moins" unaire
» codage spécial
» Langage Linotte.
» AUTOMENU ou le codage automatique de menus

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: