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
» Aide de PANORAMIC
Voulez-vous relever ce challenge? Emptypar papydall Aujourd'hui à 4:21

» Je teste PANORAMIC V 1 beta 1
Voulez-vous relever ce challenge? Emptypar papydall Aujourd'hui à 4:17

» select intégrés
Voulez-vous relever ce challenge? Emptypar jjn4 Hier à 18:33

» PANORAMIC V 1
Voulez-vous relever ce challenge? Emptypar Klaus Hier à 9:53

» bouton dans autre form que 0
Voulez-vous relever ce challenge? Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Voulez-vous relever ce challenge? Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Voulez-vous relever ce challenge? Emptypar Klaus Lun 6 Mai 2024 - 10:23

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Voulez-vous relever ce challenge? Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
Voulez-vous relever ce challenge? Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Voulez-vous relever ce challenge? Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Voulez-vous relever ce challenge? Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Voulez-vous relever ce challenge? Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Voulez-vous relever ce challenge? Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Voulez-vous relever ce challenge? Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Voulez-vous relever ce challenge? 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 : -45%
WHIRLPOOL OWFC3C26X – Lave-vaisselle pose libre ...
Voir le deal
339 €

 

 Voulez-vous relever ce challenge?

Aller en bas 
3 participants
AuteurMessage
papydall

papydall


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

Voulez-vous relever ce challenge? Empty
MessageSujet: Voulez-vous relever ce challenge?   Voulez-vous relever ce challenge? EmptySam 2 Juil 2022 - 22:47

Salut les Panoramiciens.

Je vous propose un mini challenge.
Ecrire deux fonctions MAXI(a,b) et MINI(a,b) qui retournent respectivement le maximum et le minimum de 2 valeurs a et b passées en paramètres.
Contrainte :
Ne pas utiliser la structure conditionnelle du genre IF ... THEN ni les opérateurs de comparaisons =, >, <, <>, etc..
Il va de soi qu'il ne faut pas utiliser non plus les fonctions dejà implementées MIN et MAX, sinon le défi n'aura plus de sens!

NB : Il n'y a rien à gagner (rien à perdre non plus).
Si personne ne relèvera  le défi, je satisferais votre curiosité dans la journée.



Dernière édition par papydall le Sam 2 Juil 2022 - 23:59, édité 1 fois
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

Voulez-vous relever ce challenge? Empty
MessageSujet: Re: Voulez-vous relever ce challenge?   Voulez-vous relever ce challenge? EmptySam 2 Juil 2022 - 23:30

Bonsoir Papydall !

Pour une fois le défi semble à ma porté ! A moins qu'il y ai un piège...  Laughing

Voilà ma solution :


Dernière édition par Minibug le Sam 2 Juil 2022 - 23:54, édité 3 fois
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Marc

Marc


Nombre de messages : 2390
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Voulez-vous relever ce challenge? Empty
MessageSujet: Re: Voulez-vous relever ce challenge?   Voulez-vous relever ce challenge? EmptySam 2 Juil 2022 - 23:41

Bonjour Papydall !

Je n'ai pas de mérite, tu m'avais communiqué la technique dans un autre post.


Spoiler:

Bon week-end !
Revenir en haut Aller en bas
Minibug

Minibug


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

Voulez-vous relever ce challenge? Empty
MessageSujet: Re: Voulez-vous relever ce challenge?   Voulez-vous relever ce challenge? EmptySam 2 Juil 2022 - 23:48

Ah oui bien sûr en utilisant les fonctions MIN et MAX !!! Laughing

Moi je croyais qu'il fallait chercher la solution sans cela justement sinon ça me semblait vraiment trop simple !!!!
lol! lol! lol!


Dernière édition par Minibug le Dim 3 Juil 2022 - 0:03, édité 1 fois
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
papydall

papydall


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

Voulez-vous relever ce challenge? Empty
MessageSujet: Re: Voulez-vous relever ce challenge?   Voulez-vous relever ce challenge? EmptySam 2 Juil 2022 - 23:48

Merci Minibug pour la solution.
Mais l'utilisation d'un DLIST et surtout le SORT_ON fait en sorte que le DLIST se trouve ordonné.
Bon, c'est une solution et tu seras sans doute surpris de l'élégance et de la concision de la mienne.
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

Voulez-vous relever ce challenge? Empty
MessageSujet: Re: Voulez-vous relever ce challenge?   Voulez-vous relever ce challenge? EmptySam 2 Juil 2022 - 23:51

ah ben oui on peut faire plus simple la preuve par Marc !!!!
lol! lol! lol! lol! lol!
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
papydall

papydall


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

Voulez-vous relever ce challenge? Empty
MessageSujet: Re: Voulez-vous relever ce challenge?   Voulez-vous relever ce challenge? EmptySam 2 Juil 2022 - 23:52

Minibug a écrit:
Ah oui bien sûr en utilisant les fonctions MIN et MAX !!!

#Marc

Justement, il NE FALLAIT PAS utilisr les fonctions dejà existantes MIN et MAX!
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Marc

Marc


Nombre de messages : 2390
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Voulez-vous relever ce challenge? Empty
MessageSujet: Re: Voulez-vous relever ce challenge?   Voulez-vous relever ce challenge? EmptySam 2 Juil 2022 - 23:59

Papydall a écrit:
Justement, il NE FALLAIT PAS utilisr les fonctions dejà existantes MIN et MAX!

Je ne le savais pas Embarassed

Ce n'est pas interdit dans l'énoncé du challenge. Laughing


Revenir en haut Aller en bas
Minibug

Minibug


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

Voulez-vous relever ce challenge? Empty
MessageSujet: Re: Voulez-vous relever ce challenge?   Voulez-vous relever ce challenge? EmptyDim 3 Juil 2022 - 0:02

Marc a écrit:
Je ne le savais pas Embarassed. Ce n'est pas interdit dans l'énoncé du challenge. Laughing

lol! lol! lol!

Bon en attendant j'ai repris mon code pour le simplifier un peu...
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
papydall

papydall


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

Voulez-vous relever ce challenge? Empty
MessageSujet: Re: Voulez-vous relever ce challenge?   Voulez-vous relever ce challenge? EmptyDim 3 Juil 2022 - 0:06

Merci Marc pour la tentative.
Je viens de rectifier l'énoncé du défi dans le 1er message.

Tente une autre approche.

Indication : Et si on utiliserait la moyenne arithmétique de deux nombres à laquelle on ajouterait (ou retrancherait) une certaine quantité ...
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Marc

Marc


Nombre de messages : 2390
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Voulez-vous relever ce challenge? Empty
MessageSujet: Re: Voulez-vous relever ce challenge?   Voulez-vous relever ce challenge? EmptyDim 3 Juil 2022 - 0:18

Autre approche :

Spoiler:

Revenir en haut Aller en bas
papydall

papydall


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

Voulez-vous relever ce challenge? Empty
MessageSujet: Re: Voulez-vous relever ce challenge?   Voulez-vous relever ce challenge? EmptyDim 3 Juil 2022 - 0:33

BRAVO Marc !

On part de la moyenne de deux nombres :
(a+b) / 2
puis on ajoute (respectivement on retranche) la moitié de la valeur absolue de l'intervalle [a,b]
abs(a-b) / 2
Ce qui donne

Code:

rem ============================================================================
' Exemples
print "Le maximum de 1 et de 15 est : " ; maxi(1,15)
print "Le minimum de 3 et de -5 est : " ; mini(3,-5)
print
print "Le maximum de -123 et 456 est : " ; maxi(-123,456)
print "Le minimum de -123 et 456 est : " ; mini(-123,456)
end
rem ============================================================================
FNC maxi(a,b)
    result ((a+b) + abs(a-b))/2
END_FNC
rem ============================================================================
FNC mini(a,b)
    result ((a+b) - abs(a-b))/2
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

Voulez-vous relever ce challenge? Empty
MessageSujet: Re: Voulez-vous relever ce challenge?   Voulez-vous relever ce challenge? EmptyDim 3 Juil 2022 - 0:53

Merci à tous les 2 pour ce petit cours de mathématique !!!! geek
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
papydall

papydall


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

Voulez-vous relever ce challenge? Empty
MessageSujet: Re: Voulez-vous relever ce challenge?   Voulez-vous relever ce challenge? EmptyDim 3 Juil 2022 - 1:39

Comme vous êtes aussi forts en mathématiques qu'en Panoramic, voici un autre challenge s'il vous plait:
Ecrire une fonction Racine_Carree(a) qui retourne la racine carrée de son argument.
Il ne faut utiliser bien sûr ni SQR ni POWER
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

Voulez-vous relever ce challenge? Empty
MessageSujet: Re: Voulez-vous relever ce challenge?   Voulez-vous relever ce challenge? EmptyDim 3 Juil 2022 - 8:28

Désolé Papydall mais là je suis perdu !

Quand il s'agit de logique ou de programmation, Ok pas de problème ! Mais pour les math, l'algèbre et tout le reste alors là c'est autre chose... Laughing
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Marc

Marc


Nombre de messages : 2390
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Voulez-vous relever ce challenge? Empty
MessageSujet: Re: Voulez-vous relever ce challenge?   Voulez-vous relever ce challenge? EmptyDim 3 Juil 2022 - 11:19

Papydall a écrit:
Ecrire une fonction Racine_Carree(a) qui retourne la racine carrée de son argument.
Il ne faut utiliser bien sûr ni SQR ni POWER

Ma proposition est une adaptation en langage Panoramic d'un code C++
Source : http://coliru.stacked-crooked.com/a/c1caaf3e67313aa8

Code:
dim a
a=3

if a < 0
    message "Nombres négatifs interdits !"
    terminate
end_if
print sqr(a)
print racine_carree(a)
end
 
fnc racine_carree(a1)
    dim_local i,rc
    i = 1
    rc = a1*a1
    while abs(rc-i) > 1E-15
        i = rc
        rc = 0.5*(rc + a1/rc)
    end_while
    result rc
end_fnc
Revenir en haut Aller en bas
papydall

papydall


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

Voulez-vous relever ce challenge? Empty
MessageSujet: Re: Voulez-vous relever ce challenge?   Voulez-vous relever ce challenge? EmptyDim 3 Juil 2022 - 22:42

Merci Minibug et merci Marc.

Ma proposition:

Code:

rem ============================================================================
rem                Racine carrée
rem ============================================================================
print Racine_Carree(123)  
print Racine_Carree(10000)
print Racine_Carree(2)
end
rem ============================================================================
FNC Racine_Carree(a)
    dim_local x,y
    x = (1+a)/2
    repeat
        y = x : x = (y+a/y)/2
    until x >= y
    result x
END_FNC
rem ============================================================================

Une autre approche dite la méthode de Héron

Code:

rem ============================================================================
rem               Racine carrée
rem ============================================================================
print Racine_Carree(2)
print Racine_Carree(625)
print Racine_Carree(123)
print Racine_Carree(123456789)

end
rem ============================================================================
' Méthode de Héron
FNC Racine_Carree(a)
    dim_local long,larg, epsilon
    if (a < 0)
       message "!!! ERREUR !!! L'argument doit être un nombre positif"
       exit_fnc
    end_if
    long = a
    larg = 1
    epsilon = 0.0000001
    while abs(long - larg) > epsilon
        long = (long + larg) / 2
        larg = a / long        
    end_while    
    result long    
END_FNC
rem ============================================================================


Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





Voulez-vous relever ce challenge? Empty
MessageSujet: Re: Voulez-vous relever ce challenge?   Voulez-vous relever ce challenge? Empty

Revenir en haut Aller en bas
 
Voulez-vous relever ce challenge?
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Un challenge à relever
» Je fais la pluie, voulez-vous faire le beau temps?
» Je vous mets au courant au cas où vous le seriez pas, info
» Nouveau challenge : Méthode de déplacement des objets
» Bonjour a vous

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