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
» PANORAMIC V 1
Chercher un algorithme Emptypar papydall Aujourd'hui à 2:21

» Gestion d'un système client-serveur.
Chercher un algorithme Emptypar Klaus Hier à 23:59

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Chercher un algorithme Emptypar Marc Hier à 12:14

» @Jack
Chercher un algorithme Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Chercher un algorithme Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Chercher un algorithme Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Chercher un algorithme Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Chercher un algorithme Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Chercher un algorithme Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Chercher un algorithme Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
Chercher un algorithme Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Chercher un algorithme Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Chercher un algorithme Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
Chercher un algorithme Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Chercher un algorithme Emptypar leclode Mer 17 Avr 2024 - 11:07

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 du moment : -39%
Ordinateur portable ASUS Chromebook Vibe CX34 Flip
Voir le deal
399 €

 

 Chercher un algorithme

Aller en bas 
+3
bignono
mindstorm
papydall
7 participants
AuteurMessage
papydall

papydall


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

Chercher un algorithme Empty
MessageSujet: Chercher un algorithme   Chercher un algorithme EmptyJeu 4 Juil 2013 - 20:32

Comme j’aime joindre l’inutile à l’agréable, je vous propose un programme inutile qui ne sert à rien, sauf ...
Ah, non : tous mes programmes servent à quelque chose : même à RIEN !, si on peut qualifier « il ne sert à rien »,  le fait de trouver un algorithme élégant à un problème non moins élégant !

Pour les débutants en programmation (comme moi-même), mais aussi pour les programmeurs confirmés (comme vous l'êtes) : Comment trouver un algorithme pour résoudre le  problème suivant ?

Voici le problème :
Il s'agit de remplir un tableau avec les entiers consécutifs, en partant de la case en haut à gauche occupée par 1, et en tournant dans le sens de l'horloge, tout en longeant les bords déjà occupés, et en finissant au centre du tableau (pas nécessairement le centre géométrique) sur la dernière case vide.

Le problème peut être décrit autrement :
Soit un tableau A de N lignes et P colonnes et X=1 placé dans la première case. On remplit alors, tant qu'elles sont vides, les cases de la première ligne (de gauche à droite),  de la dernière colonne (de haut en bas), de la dernière ligne (de droite à gauche), et enfin de la première colonne (de bas en haut), avec X incrémenté à chaque fois. Puis on recommence avec le sous-tableau de N-2 lignes et P-2 colonnes encore  libre et le X suivant la dernière valeur qui a été placée.

Remarque :
L'idée suivant laquelle on peut chercher une formulation du terme  d'indice i et j dans A, constitue un autre algorithme qui, non seulement, risque d'être assez laborieux à analyser, mais encore n'apporterait pas d'amélioration au programme : il y aura toujours N*P "affectations".
Il est beaucoup plus élégant de construire quatre tâches se succédant:
Ligne_haute() ;  Colonne_Gauche();  Ligne_Basse();  Colonne_Droite()

Qui dit mieux ? Chercher un algorithme Byeb11

Spoiler:


Dernière édition par papydall le Jeu 4 Juil 2013 - 23:56, édité 1 fois (Raison : Pour incorporer des WAIT 50 sur une idée de Mindstorm)
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
mindstorm

mindstorm


Nombre de messages : 684
Age : 55
Localisation : charente
Date d'inscription : 13/02/2013

Chercher un algorithme Empty
MessageSujet: Re: Chercher un algorithme   Chercher un algorithme EmptyJeu 4 Juil 2013 - 21:04

bonsoir papydall
peut on conciderer que les cases sont toute vides ou faut il sauter les cases pleines
en attendant j'ai rajouté des pause 200 a chaque sub ça permet de visualiser l'escargot pirat 
Revenir en haut Aller en bas
papydall

papydall


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

Chercher un algorithme Empty
MessageSujet: Re: Chercher un algorithme   Chercher un algorithme EmptyJeu 4 Juil 2013 - 23:57

@mindstorm

Au départ, toutes les case sont vides bien sûr ! Puis on ne revient plus sur les cases déjà traitées.
L’idée d’incorporer des pauses dans l’affichage est une bonne idée, pour visualiser le déroulement de l’algorithme.
J’ai modifié mon code, en conséquence.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
bignono

bignono


Nombre de messages : 1127
Age : 66
Localisation : Val de Marne
Date d'inscription : 13/11/2011

Chercher un algorithme Empty
MessageSujet: Re: Chercher un algorithme   Chercher un algorithme EmptyVen 5 Juil 2013 - 16:08

Bonjour à tous, Smile 
Bonjour Papydall Very Happy 
Ton code est intéressant mais pourquoi commencer en haut à gauche et faire tout le tour?
C'est l'algorithme de l'escargot. Moi je me suis dit qu'il est peut-être possible de commencer par le milieu ou plutôt la dernière case et de s'enrouler autour; on peut même construire un tableau. Seule contrainte, connaître la case de départ et avoir un tableau aux mêmes dimensions horizontales et verticales.
Je ne sais pas si mes tests sont bons, j'ai fait le programme à la va vite!
Je n'ai pas le temps, mais je pense que l'on peut l'améliorer sensiblement.
Bon je retourne à mes recherches généalogiques. A plus tard et bon courage à tous!
Code:
dim C,L,q,i,j,k,el,ec
C=14:L=14:q=(C-1)*(L-1)
dim a(C,L)
full_space 0:font_bold 0:font_size 0,12
for i=0 to C:for j=0 to L:a(i,j)=0:next j:next i
i=7:j=7:a(i,j)=q:print_locate 200+(i*36),100+(j*20):print q
for k=(q-1) to 1 step -1
   if a(i-1,j)=0 then el=j:ec=i-1
   if a(i-1,j)=0 and a(i+1,j)<>0 then el=j+1:ec=i
   if a(i+1,j)=0 and a(i,j-1)<>0 then el=j:ec=i+1
   if a(i,j-1)=0 and a(i-1,j)<>0 then el=j-1:ec=i
   if a(i+1,j)<>0 and a(i,j+1)<>0 then el=j:ec=i-1
   j=el:i=ec:a(i,j)=k
   print_locate 200+(i*36),100+(j*20):print k:pause 200
next k
Wink  Wink  Wink
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Chercher un algorithme Empty
MessageSujet: re   Chercher un algorithme EmptyVen 5 Juil 2013 - 16:48

Chercher un algorithme Obelix10
Voilà ce que çà donne quand deux panoramiciens se rencontrent....

lol!
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Chercher un algorithme Empty
MessageSujet: Re: Chercher un algorithme   Chercher un algorithme EmptyVen 5 Juil 2013 - 16:52

lol! 
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Chercher un algorithme Empty
MessageSujet: Re: Chercher un algorithme   Chercher un algorithme EmptyVen 5 Juil 2013 - 16:59

lol! lol! lol! lol! lol! lol! lol!
Je pense que ce sera une image qui ressortira de temps en temps celle là ...
lol! lol! lol! lol! lol! lol! lol!
Revenir en haut Aller en bas
papydall

papydall


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

Chercher un algorithme Empty
MessageSujet: Re: Chercher un algorithme   Chercher un algorithme EmptyVen 5 Juil 2013 - 18:17

Merci  à tous ceux qui ont pris la peine d’intervenir.
Quand une grande idée germe dans la tête de deux plus grands Panoramiciens de tous les temps (Bignono et Papydall), un Ygeronimi se fera découvrir son don de caricaturiste, un Jean Claude résumera ses sentiments dans un LOL, et un Jicehel prédira l’avenir !

Maintenant, les choses sérieuses !
L’algorithme de l’escargot, je l’ai trouvé dans un cours de Turbo Pascal qui parle d’algorithmique. Moi je ne sais rien inventer, mais (faute de mieux) j’essaye d’adapter certaines idées et algorithmes en les codant en PANORAMIC pour prévenir que mes rouages ne deviennent rouillés !
 
Chercher un algorithme Coussi10

!!! VIVE LA TECHNOLOGIE !!!
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
bignono

bignono


Nombre de messages : 1127
Age : 66
Localisation : Val de Marne
Date d'inscription : 13/11/2011

Chercher un algorithme Empty
MessageSujet: Re: Chercher un algorithme   Chercher un algorithme EmptyVen 5 Juil 2013 - 20:01

L'algorithme de l'escargot ça peut servir à plein de choses. Entre autre je pense à faire un plateau de jeu de société avec le départ et l'arrivée un peu comme le jeu de l'oie par exemple. D'autres applications sont certainement possible, il suffit d'un peu d'imagination. Moi je trouve super que Papydall tu aies ouvert le débat là dessus.
Maintenant, yen a qui ...
Chercher un algorithme Donald10
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Chercher un algorithme Empty
MessageSujet: re   Chercher un algorithme EmptyVen 5 Juil 2013 - 21:17

lol! lol! lol! lol! lol! lol!
Revenir en haut Aller en bas
Froggy One

Froggy One


Nombre de messages : 585
Date d'inscription : 06/01/2012

Chercher un algorithme Empty
MessageSujet: Re   Chercher un algorithme EmptyVen 5 Juil 2013 - 22:38

En modifiant deux ou trois lignes au code de Papydall, j'ai obtenu quelque chose qui ressemble déjà un peu plus à un plateau de jeu...

Code:
dim n, p, x, C,L,b

et

Code:

SUB ecrire(L, C)
    x = x + 1 : b=x:alpha b:left b,12*(5*C-4)
    width b,48:top b,24*L :caption b,string$(4-len(str$(x))," ")+str$(x)+" "
    color b,int(1+rnd(255)),int(1+rnd(255)),int(1+rnd(255))
END_SUB

Le tout fait :

Code:

' *****************************************************************************
' Escargot.bas  par Papydall
' --------------------------
' Il s'agit de remplir un tableau avec les entiers consécutifs, en partant de la
' case en haut à gauche occupée par 1, et en tournant dans le sens de l'horloge,
' tout en longeant les bords déjà occupés, et en finissant au centre du tableau
' sur la dernière case vide.
' QUESTION : Comment trouver un algorithme pour resoudre ce problème ?
' ------------------------------------------------------------------------------
' Le problème peut être décrit autrement :
' Soit un tableau A de N lignes et P colonnes et X=1 placé dans la première case.
' On remplit alors, tant qu'elles sont vides, les cases de la première ligne (de gauche à droite),
' de la dernière colonne (de haut en bas), de la dernière ligne (de droite à gauche), et enfin de
' la première colonne (de bas en haut), avec X incrémenté à chaque fois.
' Puis on recommence avec le sous-tableau de N-2 lignes et P-2 colonnes encore
' libre et le X suivant la dernière valeur qui a été placée.
' -----------------------------------------------------------------------------
' Remarque : l'idée suivant laquelle on peut chercher une formulation du terme
' d'indice i et j dans A, constitue un autre algorithme qui, non seulement, risque
' d'être assez laborieux à analyser, mais encore n'apporterait pas d'amélioration
' au programme : il y aura toujours N*P "affectations".
' Il est beaucoup plus élégant de construire quatre tâches se succédant:
' Ligne_haute() ; Colonne_Gauche(); Ligne_Basse(); Colonne_Droite()

' *****************************************************************************

dim n, p, x, C,L,b
n = 24 : p = 16 : ' 24 lignes et 16 colonnes
full_space 0 : font_bold 0 : font_size 0,12
escargot(n, p) : caption 0,"Terminé"
end
' ****************************************************************************
SUB Escargot(n, p)
    x = 0 : Ligne_Haute(1, n, 1, p)
END_SUB
' ***************************************************************************
SUB ecrire(L, C)
    x = x + 1 : b=x:alpha b:left b,12*(5*C-4)
    width b,48:top b,24*L :caption b,string$(4-len(str$(x))," ")+str$(x)+" "
    color b,int(1+rnd(255)),int(1+rnd(255)),int(1+rnd(255))
END_SUB
' ****************************************************************************
SUB Ligne_Haute(L0, L1, C0, C1)
    for C = C0 to C1 : ecrire(L0, C) : next C
    if L0 < L1 then Colonne_Droite(L0 + 1, L1, C0, C1)
END_SUB
' ****************************************************************************
SUB Colonne_Gauche(L0, L1, C0, C1)
    for L = L1 to L0 step -1 :  ecrire(L, C0) : next L
    if C0 < C1 then Ligne_Haute(L0, L1, C0 + 1, C1)
END_SUB
' ****************************************************************************
SUB Ligne_Basse(L0, L1, C0, C1)
    for C = C1 to C0 step -1 : ecrire(L1, C) : next C
    if L0 < L1 then Colonne_Gauche(L0, L1 - 1, C0, C1)

END_SUB
' ****************************************************************************
SUB Colonne_Droite(L0, L1, C0, C1)
    for L = L0 to L1 : ecrire(L, c1): next L
    if C0 < C1 then Ligne_Basse(L0, L1, C0, C1 - 1)
END_SUB
' ***************************************************************************




Sleep Vanné, dodo !
Revenir en haut Aller en bas
http://gaeldwest.wordpress.com
papydall

papydall


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

Chercher un algorithme Empty
MessageSujet: Re: Chercher un algorithme   Chercher un algorithme EmptySam 6 Juil 2013 - 9:39

Merci Froggy One
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
mindstorm

mindstorm


Nombre de messages : 684
Age : 55
Localisation : charente
Date d'inscription : 13/02/2013

Chercher un algorithme Empty
MessageSujet: Re: Chercher un algorithme   Chercher un algorithme EmptySam 6 Juil 2013 - 22:20

bonsoir a tous
seul un panoramicien peut avoir l'idée de commancer un escargot par le centre drunken 
Revenir en haut Aller en bas
papydall

papydall


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

Chercher un algorithme Empty
MessageSujet: Re: Chercher un algorithme   Chercher un algorithme EmptyDim 7 Juil 2013 - 11:11

Excellente constatation ! Chercher un algorithme Txt147
J’aime et je partage.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
mindstorm

mindstorm


Nombre de messages : 684
Age : 55
Localisation : charente
Date d'inscription : 13/02/2013

Chercher un algorithme Empty
MessageSujet: Re: Chercher un algorithme   Chercher un algorithme EmptyLun 8 Juil 2013 - 18:41

bonsoir a tous
il me vient une idée PANORAMICIENNE
si si j'ai des idees
pourquoi ne pas faire un vrai (rond) escargot en partant du centre est qui s'arrete quand il detecte un bord
si quelqu un est en vacance, pas les retraité ils n'ont jamais le temps Razz 
bonne soirée
Mindstorm
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Chercher un algorithme Empty
MessageSujet: re   Chercher un algorithme EmptyLun 8 Juil 2013 - 19:00

Ca y est ! encore un de perverti !!!
lol!
Revenir en haut Aller en bas
Froggy One

Froggy One


Nombre de messages : 585
Date d'inscription : 06/01/2012

Chercher un algorithme Empty
MessageSujet: Re   Chercher un algorithme EmptyMar 9 Juil 2013 - 16:48

un truc comme ça ?

Code:

2d_target_is 0:color 0,60,144,151
dim n,pas,mgbas,mght,mgg,mgd : ' pas et marges
dim x,y,xc,yc:xc=width(0)/2:yc=height(0)/2
dim fgstop
x=xc:y=yc:n=1:pas=3
mgbas=100:mght=mgbas:mgg=mght:mgd=mgg
2d_point x,y : 2d_poly_from x,y
repeat
       x=x+pas
       if x>width(0)-mgd then fgstop=1
       2d_poly_to x,y
       y=y+pas
       if y>height(0)-mght then fgstop=1
       2d_poly_to x,y
       pas=pas*(n+1)
       x=x-pas
       if x<mgg then fgstop=1
       2d_poly_to x,y
       y=y-pas
       if y<mgbas then fgstop=1
       pas=pas*(n+1)
       2d_poly_to x,y
until fgstop=1
Revenir en haut Aller en bas
http://gaeldwest.wordpress.com
papydall

papydall


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

Chercher un algorithme Empty
MessageSujet: Re: Chercher un algorithme   Chercher un algorithme EmptyMar 9 Juil 2013 - 17:57

OK, mais tu n’as pas besoin de 2d_point x,y ligne 7 puisque juste après tu fais 2d_poly_from x,y.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Froggy One

Froggy One


Nombre de messages : 585
Date d'inscription : 06/01/2012

Chercher un algorithme Empty
MessageSujet: Re   Chercher un algorithme EmptyMar 9 Juil 2013 - 18:22

Très juste !
Revenir en haut Aller en bas
http://gaeldwest.wordpress.com
Contenu sponsorisé





Chercher un algorithme Empty
MessageSujet: Re: Chercher un algorithme   Chercher un algorithme Empty

Revenir en haut Aller en bas
 
Chercher un algorithme
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Racine carrée d’un nombre par l’algorithme de Héron
» Spectacle d'un algorithme de tri
» Tracé d’arc de cercle par l'algorithme de Bresenham
»  Algorithme de cryptage de Blaise de Vigénère.
» Chercher une chaîns dans une liste de chaînes

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Les inutilitaires-
Sauter vers: