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
» Gestion d'un système client-serveur.
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Codage unaire (plus bas que le binaire langage bas niveau) Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le deal à ne pas rater :
Cartes Pokémon : la prochaine extension Pokémon sera EV6.5 Fable ...
Voir le deal

 

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

Aller en bas 
2 participants
AuteurMessage
papydall

papydall


Nombre de messages : 7009
Age : 73
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 : 4566
Age : 57
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
-
» Langage Linotte.
» Signe "moins" unaire
» codage spécial
» Codage ROT13
» 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: