Déplacement conditionnel pour un programme informatique

Olympiades mathématiques, énigmes et défis
alain94340
Messages: 7
Enregistré le: 04 Oct 2020, 18:34

Déplacement conditionnel pour un programme informatique

par alain94340 » 04 Oct 2020, 19:01

Bonjour,

Informaticien, je tente de réduire des lignes de code et les unifier par un calcul générique plutôt que de faire des "IF"... :
Voici l'énoncé :
imaginez devoir éditer un ficher dont la longueur des enregistrements est égale à 255. Quand le fichier s'ouvre, je visualise les colonnes 1 à 72. Par une touche de fonction, je peux me déplacer d'une valeur qui ne peut dépasser 72, la zone de visualisation.
Donc par exemple, quand je vois les colonnes 1-72, je peux me déplacer de 72 vers la droite.
Cependant si je suis à 255-72=183, la touche de fonction ne doit pas activer de déplacement, car je suis le plus à droite possible de mon fichier. La valeur idéalement pour moi serait 0 :)
Si par une commande manuelle, je me déplace de plus de 255-72, genre à la colonne 184, la touche de fonction doit pouvoir exécuter une valeur négative vers la gauche : je dois faire -1 pour revenir au maximum autorisé 255-72=183. Le -1 doit être testé pour appliquer la commande de retour vers la gauche.
Si je suis à la colonne 182( je vois 182+72 !), je suis à 1 de 183, donc je ne peux faire un saut vers la droite que de 1 seulement et non 72 car la seule colonne cachée est la 255 !

Existe--il une forme de calcul générique me permettant de satisfaire tous les cas où la longueur des enregistrements des fichiers peut varier de 72 à 65535 tout en dépendant de la zone de visualisation qui peut être 1 à 100 par exemple mais peut varier aussi ?

Cordialement
alain



lyceen95
Membre Complexe
Messages: 2255
Enregistré le: 15 Juin 2019, 00:42

Re: Déplacement conditionnel pour un programme informatique

par lyceen95 » 04 Oct 2020, 19:30

Pour t'aider, il faut lire toute ton explication. Des fois, c'est plus ou moins clair...
A priori, tu sais faire, mais tu cherches une solution plus 'élégante'.
Donne ta solution, si tu penses qu'elle est correcte. Comme ça, pour comprendre ce que tu veux faire, on devra lire 10 lignes de code, au lieu de 20 lignes de texte. Et on sera plus en mesure de t'aider.

alain94340
Messages: 7
Enregistré le: 04 Oct 2020, 18:34

Re: Déplacement conditionnel pour un programme informatique

par alain94340 » 04 Oct 2020, 19:53

Peux-ton insérer des impressions d'écran pour que ce soit plus visuel ?

lyceen95
Membre Complexe
Messages: 2255
Enregistré le: 15 Juin 2019, 00:42

Re: Déplacement conditionnel pour un programme informatique

par lyceen95 » 04 Oct 2020, 20:06

cf ce message pour insérer une image : https://www.maths-forum.com/guide-utilisation-f41/comment-inserer-une-image-t215647.html#p1404661

Mais il y a le bouton 'Code' dans la barre de boutons qui paraît très adaptée pour expliquer ton besoin.

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

Re: Déplacement conditionnel pour un programme informatique

par fatal_error » 04 Oct 2020, 20:51

bonjour et bienvenue alain94340

Il s'agit juste d'une fenêtre glissante ou tu ne shiftes que vers la droite:

Code: Tout sélectionner
                  255
<----------------------------------->

  |   <visu 72>  |


Si les colonnes sont dans [0; MAX[ (e.g MAX=256)
et que la visu est de taille v = 72
alors la position max est: [MAX - v; MAX[ (la taille vue étant donnée par (MAX - 1) - (MAX - v) + 1 = v)

si on nomme f(p, m) la fonction manuelle, qui bouge le curseur à la position p, de m colonnes vers la droite, alors on veut

Code: Tout sélectionner
f(p, m) = min(m + p, MAX - v)


ce qui signifie bouge de m vers la droite, sauf si tu dépasses auquel cas mets toi à la position max
la vie est une fête :)

alain94340
Messages: 7
Enregistré le: 04 Oct 2020, 18:34

Re: Déplacement conditionnel pour un programme informatique

par alain94340 » 05 Oct 2020, 12:33

Bonjour

L’image de la fenêtre glissante est toute appropriée !

Utiliser la fonction min() s’impose avec tellement d’évidence !

Merci !

alain94340
Messages: 7
Enregistré le: 04 Oct 2020, 18:34

Re: Déplacement conditionnel pour un programme informatique

par alain94340 » 06 Oct 2020, 08:19

Rebonjour,

j'ai une question un peu différente :

Code: Tout sélectionner
<---------------------------------------> 255
                    ! curseur en colonne 28
<---------------------> 72 zone de visu


Maintenant il s'agit de se déplacer selon la position du curseur :
si le curseur est en colonne 1, avancer de 72
si le curseur est en colonne 72, avancer de 72
Si le curseur est en colonne ?, avancer de ?-1

ex: si le curseur est en colonne 28, avancer de 27

Pour rappel les enregistrements peuvent être bien plus longs que 255 !

Avez-vous une idée ?
Merci

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

Re: Déplacement conditionnel pour un programme informatique

par fatal_error » 06 Oct 2020, 13:24

re,

quelle est la règle qui définit si il faut avancer de -1 (et non de 72)?
la vie est une fête :)

alain94340
Messages: 7
Enregistré le: 04 Oct 2020, 18:34

Re: Déplacement conditionnel pour un programme informatique

par alain94340 » 06 Oct 2020, 13:40

Dès lors que la longueur maximale est dépassée: soit dans la zone de visu soit par la position du curseur.
Si je suis dans la zone 250-72 et que le curseur est en colonne 35 il y a 34 colonnes à gauche, 72-35 à droite. Le déplacement doit être de 255-250.
La condition -1 et plus (-2,-3...) est atteinte si je passe une commande manuelle. Quelque soit la position du curseur dans le fichier, la zone à afficher est 255-72.

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

Re: Déplacement conditionnel pour un programme informatique

par fatal_error » 07 Oct 2020, 08:13

Ca dépasse mes neurones
par ex je ne comprends pas ce qu'est la zone 250-72. S'agit-il de la zone [178, 250] ?
le curseur est en colonne 35 de manière absolue ou relative à la zone? si absolue, on est d'accord qu'il est en dehors de la zone ?
apres déplacement, il est en 40.. mais il est toujours en dehors de la zone alors?
la vie est une fête :)

alain94340
Messages: 7
Enregistré le: 04 Oct 2020, 18:34

Re: Déplacement conditionnel pour un programme informatique

par alain94340 » 07 Oct 2020, 11:58

J'aurais aimé vous répondre en vous montrant des impressions écran mais il ne me semble pas possible de le faire par img ? Sinon j'ai un .docx...

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

Re: Déplacement conditionnel pour un programme informatique

par fatal_error » 07 Oct 2020, 13:22

J'aurais aimé vous répondre en vous montrant des impressions écran mais il ne me semble pas possible de le faire par img

Tu peux suivre le lien fourni par lyceen95 (guide-utilisation-f41/comment-inserer-une-image-t215647.html#p1404661)
la vie est une fête :)

alain94340
Messages: 7
Enregistré le: 04 Oct 2020, 18:34

Re: Déplacement conditionnel pour un programme informatique

par alain94340 » 07 Oct 2020, 14:14

Voici le lien :
<a href="https://www.casimages.com/f/8n2brSG5vUb" target="_blank">Lien vers mon fichier</a>

https://www.casimages.com/f/8n2brSG5vUb

 

Retourner vers ⚔ Défis et énigmes

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 27 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite