APPLICATIONSDIVERS ★ TOUS A TABLE ★

Tous a Table (CPC Revue)Applications Divers

Le plan de table d'un banquet se doit de respecter les "règles" suivantes : chaque convive doit avoir comme voisins et vis-à-vis une personne de sexe opposé, et aucune de ces trois personnes ne doit être son conjoint ; sauf cas particuliers (jeunes mariés).

Ce fastidieux casse-tête est résolu instantanément par ce programme, mieux, il vous propose plusieurs solutions répondant aux critères ci-dessus : deux colonnes de noms à l'écran vous présentent les personnes en vis-à-vis. Lorsqu'une des solutions vous plaît, inutile de la recopier, pressez la touche E, et elle est éditée sur imprimante.
Ce programme n'est pas d'une utilisation fréquente (hélas, hélas !... ), mais sa conception, uniquement logique et aléatoire (il n'y a pas de RND), constitue un exercice Basic qui, lui, n'a rien de futile !

Si vous n'avez pas l'intention de le recopier au clavier, essayez quand même le module du titre (lignes en 12000) dont le type d'animation pourra vous inspirer pour des programmes personnels.

L'ENTREE DES NOMS

Elle se fait en trois étapes : la liste des couples, celle des filles, celle des garçons. Le nombre total de convives est limité à quarante, ce pour des raisons de présentation à l'écran.

COUPLES (lignes en 3000)

L'écran de saisie présente "Mr, Mme", vous complétez par le nom. En fin de liste, on tape "Q" (quitter). Le nom tapé est entré en deux tableaux DIM ; M$(C) pour les maris, et E$(C) pour les épouses. L'adjonction du "Mr" ou du "Mme" est automatique.

FILLES (lignes en 4000)

Les noms entrés sont mis en DIM F$(F). Le préfixe "Mie" est automatique.

GARÇONS (lignes en 5000)

Même méthode, mise en DIM G$(G). Le préfixe automatique est constitué par deux astérisques.
En cours de saisie, le total TOT est incrémenté ; s'il atteint quarante, on est prévenu par un bip sonore, et le programme passe à la suite. TOT est bien sûr égal à (Cx2) + F + G.
Dans les trois écrans de saisie, les noms sont autopositionnés sur deux colonnes. En bas de l'écran figurent les décomptes incrémen-tés, par exemple, "5 Demoiselles **Total = 18". Le passage d'un tableau à l'autre se commande par la lettre "Q".

LA DISPOSITION

En fin de saisie,.nous possédons quatre listes, les DIM M$, E$, F$ et G$, avec lesquels le programme va créer une cinquième, D$(D), D signifiant "Disposition". C'est une suite de noms avec alternance masculin-féminin et éloignement des conjoints. C'est là, le "«gros morceau" ! Une fois cette suite établie, nous l'afficherons sous forme de boucle fermée autour d'une table longue. En faisant tourner cette boucle d'un cran à chaque fois, nous pourrons changer les vis-à-vis, tout en conservant ses voisins droite-gauche. OK ? Ces "calculs" concernent le traitement des couples, de loin le plus complexe, puis on enchaîne sur le mixage des listes filles et garçons.

LA DISPOSITION
DES COUPLES (lignes en 6000)

Le traitement est différent selon le nombre de couples, C est pair ou impair. Si C est pair, la variable P=1.

D'abord, un premier passage en zig-zag : M$(1), E$(2), M$(3), E$(4), etc. (voir figure 1a). Ce premier passage est commun aux nombres de couples pairs et impairs.
Second passage : pour C impair, c'est du zig-zag mais en commençant, cette fois, par l'épouse du couple n° 1 : E$(1 ), MS$(2), E$(3), M$(4), E$(3), etc. que C soit pair ou impair, on termine toujours par une épouse ; normal puisque l'on débute toujours par le mari M$(1).

DISPOSITION
DES CELIBATAIRES
(lignes en 7000)

La fonction Basic MIN(G,F) fournit le nombre de "couples de célibataires", l'excédent en filles ou en garçons sera conservé tel quel (comment faire autrement). Là, c'est très facile, on prend alternativement un garçon, une fille : G$(1),F$(1),G$(2),F$(2),etc, et on complète par "l'excédent". Le tableau D$(D) est enfin terminé. On a alors D = TOT.

L'AFFICHAGE (lignes en 10000)

Les deux colonnes à l'écran figurent les personnes en vis-à-vis. Elles sont séparées par deux caractères graphiques flèche gauche - flèche droite, appartenant au troisième jeu de caractères de l'AMSTRAD, obtenus en faisant précéder de CHR$(1 ) (ceux obtenus au clavier par CTRL H, CTRL I).
C'est la liste D1 (D) qui aurait été pliée en épingle à cheveux, le coude étant en bas de l'écran. En bas de l'écran figure la légende :
P = Permutation : c'est le changement de vis-à-vis ; peut être répétée un nombre indéfini de fois.
E = Edition (si vous avez une imprimante) : la disposition présentée à l'écran est imprimée. On peut demander une édition (ou plusieurs) de diverses permutations.
Q = Quitter : tout est effacé, on a alors le choix entre l'abandon du programme et une nouvelle saisie de noms.

LA STRUCTURE DU PROGRAMME

L'auteur est un inconditionnel de la programmation "structurée" (ou "modulaire"). Ainsi, tout le scénario du programme est dans les lignes en 1000 (peu nombreuses... ). Elles appellent les différents sous-programmes (ou modules) par des GOSUB ; d'où une souplesse totale pour des modifications ultérieures, et ce en toute clarté puisque chaque module (ou sous-module) débute par un numéro de ligne multiple de 1000. Une bonne et sage habitude à prendre. Autres précautions habituelles : en ligne 100, toutes les variables
seront des nombres entiers : gain en mémoire (2 octets au lieu de 5... ) et boucles FOR-NEXT deux fois plus rapides. D'autre part, on confirme le MODE 1 et l'ORIGIN graphique afin de ne pas "hériter" d'options antérieures qui ne sont pas annulées par NEW ou RUN.
En fin de programme, ligne 1300, on restitue les options couleurs par défaut que l'on avait modifiées. Ce qui s'appelle laisser le micro dans l'état où on l'a trouvé...

LE TITRE ANIME
(lignes en 12000)

Il n'apparaît qu'en fin de chargement. Sur l'écran, se dessine un verre ballon qui se remplit de vin rouge, du Beaujolais bien sûr, car je suis chauvin sur ce point. Ce grand arc de cercle (le ballon) est tracé par une suite de "cordes de cercle" depuis 135° jusqu'à 405° (lignes 12020 à 12050). C'est très rapide. Le pied est dessiné par des DRAWR (12100-12110). Le vin : sur un rayon légèrement inférieur, afin de ne pas effacer le verre, on fait PLOT sur un arc de cercle depuis 270° (le fond) jusqu'à 370° ; de là, on trace des traits rouges vers la gauche, de longueurs égales à deux fois le cosinus de l'angle (lignes 1 2200 à 12230).
On attaque alors le texte : La chaîne "Disposition des convives" vient se centrer en arrivant par la gauche de l'écran (12310 à 12330). Puis, deux lignes plus bas, la chaîne "autour d'une table" vient se centrer en arrivant par la droite (12340 à 12360).
En bas à gauche de l'écran, le nom de l'auteur et l'année apparaissent caractère par caractère en commençant par le dernier (12400-124Î0). Deux secondes plus tard, il s'efface de la même manière par PEN = PAPER (12420-12430). Les boucles FOR J = 1 TO... sont des ralentisseurs. En bas à droite, apparaît alors "Pressez une touche", suivi de CALL &BB06 (ligne 12450 ),
routine qui bloque le programme en attendant un caractère au clavier. C'est plus simple à écrire que WHILE INKEY$ = " ":WEND. NOTE : Toutes ces techniques d'animations simples (et beaucoup d'autres) sont décrites plus en détail dans l'ouvrage du même auteur "MIEUX PROGRAMMER SUR AMSTRAD" (Editions SORACOM). Hé hop ! un peu de pub...

PETITS CONSEILS D'UTILISATION DU PROGRAMME

Il est nécessaire d'avoir un nombre de couples supérieur à deux afin que les conjoints soient séparés.
Pour ne pas séparer un couple, exemple des jeunes mariés à un repas de noce, il suffit de les entrer en tête de liste des célibataires.
Entrez les enfants en dernier, ils seront ainsi regroupés. Si le nombre total des convives est impair, il y aura forcément quelqu'un sans vis-à-vis. A vous d'effectuer des permutations successives (touche P) jusqu'à trouver la solution viable, par exemple la personne que l'on peut mettre en bout de table. Suprême avantage de ce programme : si quelqu'un vous reproche d'avoir été mal placé, vous pourrez lui répondre par cet air connu : "Ce n'est pas de ma faute, c'est l'ordinateur... ".

LEGENDE DES VARIABLES:

— A : Angle en Degrés
— B : Nombre de vis–à–vis
— C : Nombre de Couples
— C$ : Nom entré
— D : Nombre de disposés
— D$ = Noms disposés
— E$ : Noms des Epouses
— F : Nombre de Filles
— F$ -, Noms des Filles
— FQ : FLAG de quitté
— G : Nombre de Garçons
— G$ ; Noms des Garçons
— I : Elément de Comptage
— J : Elément de Comptage
— L ; N° ligne d'Ecran
— M$ : Noms des Marie
— P : Parité Couples
— R : Rayon
— R$ : Caractère Réponse
— TOT : Total Convives
CPC n°2

★ EDITEUR: CPC Revue
★ ANNÉE: 1985
★ CONFIG: 64K + AMSDOS
★ LANGAGE:
★ LiCENCE: LISTING
★ AUTEUR: Michel ARCHAMBAULT
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Tous  a  Table    (CPC  Revue)    FRENCHDATE: 2020-04-22
DL: 206
TYPE: ZIP
SiZE: 6Ko
NOTE: 40 Cyls
.HFE: Χ

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Biomorphs (Computing with the Amstrad)
» Applications » Crazy - Writer
» Applications » Calcul Dichotomique (Amstrad Magazine)
» Applications » Editeur de Jaquettes (Amstar&CPC)
» Applications » Multicalc
» Applications » Tipster
Je participe au site:
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 232 millisecondes et consultée 1649 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.