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
» select intégrés
des debuts sans pretention Emptypar jjn4 Aujourd'hui à 18:33

» Aide de PANORAMIC
des debuts sans pretention Emptypar leclode Aujourd'hui à 18:23

» PANORAMIC V 1
des debuts sans pretention Emptypar Klaus Aujourd'hui à 9:53

» Je teste PANORAMIC V 1 beta 1
des debuts sans pretention Emptypar Klaus Aujourd'hui à 9:52

» bouton dans autre form que 0
des debuts sans pretention Emptypar leclode Hier à 13:59

» KGF_dll - nouvelles versions
des debuts sans pretention Emptypar Klaus Hier à 11:41

» Gestion d'un système client-serveur.
des debuts sans pretention Emptypar Klaus Hier à 10:23

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
des debuts sans pretention Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
des debuts sans pretention Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
des debuts sans pretention Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
des debuts sans pretention Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
des debuts sans pretention Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
des debuts sans pretention Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
des debuts sans pretention Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
des debuts sans pretention Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

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 : -20%
Ecran PC GIGABYTE 28″ LED M28U 4K ( IPS, 1 ms, ...
Voir le deal
399 €

 

 des debuts sans pretention

Aller en bas 
4 participants
AuteurMessage
sergeauze

sergeauze


Nombre de messages : 391
Age : 71
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

des debuts sans pretention Empty
MessageSujet: des debuts sans pretention   des debuts sans pretention EmptyVen 16 Avr 2010 - 22:59

je debute et suis parfois surpris de ce que j'obtiens
presque 3d
[/code]
dim x,y, a
width 0,1950
height 0,1400
color 0,34,231,228
wait 10
a=(-20)
for x=1 to 2000 step 0.3
a=a+0.2
2d_fill_color rnd( 255),0,0

y=500+sin((x*1.2)/57.297)*400
2d_circle x,y,a
2d_circle x+100,y+80,a
2d_fill_color 0,0,rnd(255)
2d_circle x+200,y+85,a
2d_circle x+100,y+100,a
2d_circle x+200,y+25,a

a=20/A


2d_circle x,y,a
2d_circle x+100,y+80,a
2d_fill_color 0,0,rnd(255)
2d_circle x+200,y+185,a
2d_circle x+100,y+200,a
2d_circle x+200,y+125,a
a=a*5
next x
end

parfois des effets visuels
[code]
width 0,1000
height 0,1000
dim a,x,y,q
a=2
2d_poly_from 800,600
for q=1 to 1000 step 0.1


2d_poly_to 900,600-a
2d_poly_to 100+a,600+a
2d_poly_to 300-a,900+a
a=a+2
next q


bizarre ,non?
Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
jjn4

jjn4


Nombre de messages : 2695
Date d'inscription : 13/09/2009

des debuts sans pretention Empty
MessageSujet: +++   des debuts sans pretention EmptyVen 16 Avr 2010 - 23:19

Eh, pas mal, surtout si c'est obtenu un peu par hasard !
Superbe !
king
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Klaus

Klaus


Nombre de messages : 12293
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

des debuts sans pretention Empty
MessageSujet: Re: des debuts sans pretention   des debuts sans pretention EmptyVen 16 Avr 2010 - 23:44

Ah oui, très joli ces effets visuels ! Il y aurait là de quoi faire un économiseur d'écran, en laissant le programme continuer à l'infinie...

Bravo pour cet essai !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

des debuts sans pretention Empty
MessageSujet: Re: des debuts sans pretention   des debuts sans pretention EmptyVen 16 Avr 2010 - 23:52

Pas mal du tout en effet !
Revenir en haut Aller en bas
Invité
Invité




des debuts sans pretention Empty
MessageSujet: Re: des debuts sans pretention   des debuts sans pretention EmptySam 17 Avr 2010 - 1:53

Klaus,

Prend ce code et fais un exécutable...

Code:
dim x,y, a:label debut,suit
debut:
border_hide 0
full_space 0
on_key_up 0,suit
color 0,34,231,228
wait 10
a=(-20)
for x=1 to 2000 step 0.3
a=a+0.2
2d_fill_color rnd( 255),0,0

y=500+sin((x*1.2)/57.297)*400
2d_circle x,y,a
2d_circle x+100,y+80,a
2d_fill_color 0,0,rnd(255)
2d_circle x+200,y+85,a
2d_circle x+100,y+100,a
2d_circle x+200,y+25,a

a=20/A


2d_circle x,y,a
2d_circle x+100,y+80,a
2d_fill_color 0,0,rnd(255)
2d_circle x+200,y+185,a
2d_circle x+100,y+200,a
2d_circle x+200,y+125,a
a=a*5
next x
goto debut
end
suit:
terminate
return

Après renomme l'exécutable Screen.scr
Et met-le dans c:\windows\system32\
Et vas dans les propriétés de l'écran veille...
Chez moi ça marche et je vais bien le prendre comme écran de veille !
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12293
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

des debuts sans pretention Empty
MessageSujet: Re: des debuts sans pretention   des debuts sans pretention EmptySam 17 Avr 2010 - 12:55

Oui, très joli. Seul b-mol: pour quitter le programme, il faut frapper une touche - normal pour un économiseur d'écran. Mais, d'abord, il ne s'arrête pas immédiatement et je n'arrive pas à savoir pourquoi le on_key_up n'est pas exécuté immédiatement. Ensuite, lorsqu'il le prend enfin en compte, il termine par "access violation at address 000...0048; read access at address 000...0048".

Panoramic a sûrement du mal à traiter l'interruption dans la partie initialisation d'un programme (avant de rencontrer l'instruction end), ce qui est la cas ici. L'instruction Wait ne résoud pas le problème, car elle bloque les évènements aussi.

J'ai défini un bouton "Démarrer" et j'ai placé tout le traitement dans la routine on_click de ce bouton. On peut le lancer sans problème, mais alors on ne peut plus l'arrêter du tout.

Apparemment, il y a encore un peu de boulot, mais c'est normal.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




des debuts sans pretention Empty
MessageSujet: Re: des debuts sans pretention   des debuts sans pretention EmptySam 17 Avr 2010 - 13:20

je vois en vitesse le programme, et d'après ce que j'ai déjà rencontré, c'est le goto début qui ne va pas.
Chaque fois qu'on fait une boucle de ce genre, surtout en dehors des événement, il y a ce problème.
Je n'essaye pas ces programmes pour l'instant, j'ai pas tout à fait terminer le mien, et je ne veux pas qu'il y ai des problèmes pour l'instant.
normalement pour sortir dans ce genre de boucle, je mets, mais là il faut faire l'essai, un truc de ce genre:
Code:

repeat
  sorti%=scancode
  if sorti%=27 then ' opération de sorti à définir
until sorti%=27

J'ai mis une sorti dans la boucle parce qu'après on se retrouve dans le code.
Je remarque aussi que la boucle est avant le END, ce qui fait que normalement : on_key_up n'est pas événementiel, puisque le programme ne rencontre pas le END dans son exécution.

Autre chose: il est bon de mettre un: WAIT 1, dans une boucle. Si vous faites l'essai en regardant les courbes du gestionnaire de tâche, vous remarquerez que vous prenez 100/100 du microprocesseur, alors qu'avec le rajout de wait1, celui-ci tombe à 2 - 4%.
A ne pas négliger.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12293
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

des debuts sans pretention Empty
MessageSujet: Re: des debuts sans pretention   des debuts sans pretention EmptySam 17 Avr 2010 - 14:39

Tu as raison, Cosmos70. Avec un Wait 1 dans la boucle, c'est beaucoup mieux. Et l'astuce avec
Code:

  sorti%=scancode
  if sorti%=27 then terminate
permet d'arrêter le programme immédiatement, A CONDITION de frapper Escape ! Si l'on frappe autre chose, Panoramic plante acev violation d'accès en lecture adresse 48 (comme dans mon post précédent).

Bon, ce n'est pas bien grave, tout ça....
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
sergeauze

sergeauze


Nombre de messages : 391
Age : 71
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

des debuts sans pretention Empty
MessageSujet: Re: des debuts sans pretention   des debuts sans pretention EmptyDim 18 Avr 2010 - 18:28

Merci d'abord pour votre acccueil sympa,et votre attention
J'apprends pas mal de choses à votre lecture
j'ai essaye la commande WAIT dans une boucle.
Dans le code suivant si on l'enleve on passe de la vitesse d'un escargot a celle d'un tgv

[height 0,600
width 0,1690 :dim x,y
for x =1 to 1500
WAIT 1
y= 250+sin (x/57)*230
2d_circle x,y,20

next x

existe_t-il un moyen de temporiser un boucle ,sans la ralentir un max]
Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

des debuts sans pretention Empty
MessageSujet: Re: des debuts sans pretention   des debuts sans pretention EmptyDim 18 Avr 2010 - 18:41

Effectivement, ça fait une sacrée différence entre le wait 1 et pas de wait du tout.
Le WAIT 1 étant le minimum, tu peux le remplacer par une boucle interne, à ajuster, et là on obtient des temporisations bien plus brèves:
Code:
height 0,600
width 0,1690 :dim x,y, z
print time$
for x =1 to 1500
    ' WAIT 1
    for z = 1 to 100: next z
    y= 250+sin (x/57)*230
    2d_circle x,y,20
next x
print time$
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12293
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

des debuts sans pretention Empty
MessageSujet: Re: des debuts sans pretention   des debuts sans pretention EmptyDim 18 Avr 2010 - 19:59

Attention ! En faisant ce genre de boucles, tu consommes exclusivement du temps CPU. Fais une boucle plus longue et regarde par le task manager: tu passes à 100 % d'utilisation d'unité centrale.

Ce n'est pas grave si ton programme est le seul qui tourne, mais normalement, XP ou Vista sont des systèmes multi-tâches, et là, tu bloques totalement le système.

Ceci me conduit à dire qu'il manque une possibilité dans Panoramic. En effet, il faut pouvoir rendre la main au système pour qu'il puisses gérer ses affaires en arrière plan (une copie de fichiers, une réception de mail, un téléchargement, ...). Panoramic le fait très bien après la phase d'initialisation, donc après l'instruction "end". Tout ce qui se passe après est géré par des évènements Windows (un click par exemple), et entretemps, windows a la main pour travailler. Or, l'instruction wait bloque les évènements totalement, ce qui est clairement indiqué dans la documentation.

Il manque une fonction du type "suspend n" avec n étant le nombre de millisecondes.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

des debuts sans pretention Empty
MessageSujet: Re: des debuts sans pretention   des debuts sans pretention EmptyDim 18 Avr 2010 - 20:38

C'est vrai que le wait ne permet pas de reprendre la main avant son expiration, et c'est parfois bien embêtant.
Quant à bloquer totalement le système avec une boucle, ça ne doit pas être bien grave dans la grande majorité des cas, dans la mesure où le programme qui tourne est souvent le seul actif (pour l'utilisateur). Et je ne pense tout de même pas que ça bloque les tâches de fond de windows: gestion de l'horloge, etc., je pense qu'il doit y avoir un système de priorités d'exécution des tâches, et d'interruption des tâches moins prioritaires par les plus prioritaires.
D'ailleurs, pendant l'exécution de la boucle, le système continue bien à scruter le clavier et la souris ?
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12293
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

des debuts sans pretention Empty
MessageSujet: Re: des debuts sans pretention   des debuts sans pretention EmptyDim 18 Avr 2010 - 23:28

Ce n'est pas si simple que cela. Essaie de lancer l'exporateur de fchiers ou un éditeur de texte comme wordpad, puis tu lances un programme panoramic avec une boucle infinie du type
Citation :

dim i%,n%
n%=0
while n%=0
i%=1
end_while
end
Puis essaie de parcourir un répertoire avec l'exporateur ou de rentrer du texte dans l'éditeur... Où sont les priorités ? En fait, l'usage d'unité centrale prime sur presque tout, et on sait très bien pour des programmes scientifiques de calcul lourd, il faut régulièrement laisser la main au système par des moyens appropriés pour ne pas bloquer le système entier.Quelque fois, il devient même très difficile d'interrompre une telle boucle par le gestionnaire des tâches. Et que dire si tu as lancé en arrière-plan un téléchargement long ou un gravage de DVD - le DVD sera corrompu !

Tout ça pour dire que même si tu as l'impression d'être le "seul" utilisateur du système, XP ou Windows exécute en permanence des dizaines de process en multi-tâche. Normalement, tu ne t'en rends pas compte justement parceque le système reprend la main très souvent, en fait à chaque fois que ton application attend un évènement ou lance une demnde au système. Tiens, une simple instruction i%=scancode à l'itérieur de la boucle devrait résoudre le problème...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

des debuts sans pretention Empty
MessageSujet: Re: des debuts sans pretention   des debuts sans pretention EmptyDim 18 Avr 2010 - 23:57

Il y a certainement des solutions plus élégantes et plus efficaces que celle de la boucle (je parlais évidemment de petites boucles de quelques millisecondes, qui existent dans tous les programmes, pas de boucles infinies = blocage général). (en fait j'ai travaillé dans un système temps réel où il y avait une tâche la plus prioritaire qui distribuait le temps de travail en fonction des disponibilités et des latences des autres programmes, et une tâche la moins prioritaire qui faisait le watchdog. Mais ce n'était pas windows... et je digresse...)
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12293
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

des debuts sans pretention Empty
MessageSujet: Re: des debuts sans pretention   des debuts sans pretention EmptyLun 19 Avr 2010 - 0:34

Non, tu ne digresses pas. Et je pense que ce genre d'échange au sujet de de l'utilisation du processeur peut en intéresser plus d'un.

Effectivement, dans un système temps réel, les choses fonctionnent différemment. J'en ai fait l'expérience également (il y a bien longtemps) sur les systèmes RSX11 et IAS de feu Digital Equipment.

Cependant, Windows n'est pas temps réel mais temps partagé multi-tâche, et multi-utilisateur dans une certaine limite. Il y a bien la notion de priorités, mais on n'a guère le moyen de jouer avec cela car on risque en réalité de bloquer tout le système. En effet, sous windows, toutes les interruptions ne sont pas prioritaires sur toutes les tâches; on arrive même à saturer le buffeur d'entrée du clavier et de bloquer tout le système avec cela.

Evidemment, si tu ne fais que de micro-boucles, il n'y a pas de risque (sauf erreur dans la programmation de la boucle...). Mais pour le programmeur non averti, il convient de préciser que cette technique ne doit en aucun cas être employée dans un autre contexte. Par exemple, pour afficher les secondes d'une horloge, il ne faut SURTOUT pas faire cela (ni un WAIT 1000 d'ailleurs) !

Il vaut beaucoup mieux chronométrer le temps d'exécution d'une instruction genre i%=DIR_EXISTS("temp.txt"), par exemple en faisant une boucle de 10.000 itérations, mesurer le temps global et diviser par 10.000, puis placer cette instruction dans une boucle dimensionnée par rapport à son temps d'exécution. Là, on est sûr que Windows peut travailler normalement, et avec le gestionnaire des tâches, on peut voir aisément que la charge CPU reste fable.

Une autre solution consiste à lancer un "timer" dans windows et de spécifier une routine d'évènement à appeler pour l'expiration du timer. Mais pour le moment, on ne peut pas faire cela directement dans Panoramic.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

des debuts sans pretention Empty
MessageSujet: Re: des debuts sans pretention   des debuts sans pretention EmptyLun 19 Avr 2010 - 14:09

La boucle n'est certainement pas le meilleur moyen pour temporiser, c'est un pis-aller pour de petites tempos.
Je n'ai certes pas été aussi loin que toi dans les réflexions philosophiques, je constatais simplement qu'on peut toujours arrêter le programme dans une boucle par Ctl/Maj/Echap, donc Windows est toujours à l'écoute des interruptions clavier.
Toutefois le fonctionnement ne semble pas très sain, le programme panoramic reste gelé même si on quitte la boîte de dialogue windows sans rien faire (cas de la boucle que j'ai rajouté: for z = 1 to 3000...).
Revenir en haut Aller en bas
Contenu sponsorisé





des debuts sans pretention Empty
MessageSujet: Re: des debuts sans pretention   des debuts sans pretention Empty

Revenir en haut Aller en bas
 
des debuts sans pretention
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Un petit programme de dessin sans prétention
» Mes débuts en 3D
» Générateur / editeur de donjon (les débuts)
» Une dictée sans (100) fautes
» Univers sans fin

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: