Bonsoir
Écrire un algorithme qui demande l'heure (en h et min) à Paris et renvoie l'heure à Pointe-à-Pitre.
j'écris ce qui me passe par la tête
il y a 2 variables, une pour les heures et une pour les minutes, il y a un décalage horaire, si par
exemple (enfin je crois) il est 15 heures à Paris il est 9 heures à Pointe-à-Pitre, 6 heures de
décalage.
Quelles questions puis-je encore me poser ou que puis-je encore constater ?
Merci
ah ! aussi pour les variables avec lesquelles j'ai des difficultés, j'ai trouvé ceci : La
déclaration des variables est un genre de déclaration certes moins romantique qu'une déclaration
d'amour, mais d'un autre côté moins désagréable qu'une déclaration d'impôts.
Oula, bientôt tu nous conteras les histoires passionnantes de logarithme et exponentielle .
Sinon, pour ton algo, la principale difficulté sera dans la manière tu choisiras d'entrer l'heure dans le programme.
Non, vas tu rentrer l'heure comme une chaine : "12h33" ou comme deux entrées séparées, H = 12 et M = 33.
Ça veut tout dire , j'avais une chance sur 2
Je change d'avis alors
2 entrées séparées, na !
le nombre d'heures et le nombre de minutes
je dois retirer (et ça c'est sûr) 6 heures pour avoir l'heure à Pointe-à-Pitre
mais faut savoir si on est la veille ou le lendemain
En effet, la chaine sera un peu plus lourde à mettre en place mais loin d'être impossible.
Pour le problème soulevé par plumemeteore, je te conseille d'utiliser la commande mod.
Boltzmann_Solver
p'tète que je trouverai d'ici demain enfin demain en Guadeloupe
Bonsoir Rodolphe
Algobox, pour la première fois hier
Avec Algobox, un peu d'entrainement et une prise en main de quelques heures te suffit pour résoudre ton problème. Tu peux utiliser les variables de type chaine, et il faudra ensuite extraire de la chaine tes deux variables numériques correspondant aux heures et aux minutes.
Prends ce que tu veux entre les deux. Tout est possible. En entré séparé, ça demande moins de travail mais c'est moins jolie.
a mod b est le reste de la division euclidienne de a par b.
Lorque tu déclares une variable sous Algobox, il y a trois type de variable (NOMBRE, LISTE ou CHAINE).
Donc tu peux déclarer une variable du nom "hp" pour heure à Paris et la déclarer de type chaine. Il te faut déclarer aussi entre autres, deux autres variables h et m de type NOMBRE.
Et ensuite, il faut écrire ton algorithme. SI tu vois que tu manques de variables, tu peux toujours les définir au moment où tu veux.
alors Rodolphe pour ces quelques heures qui me suffisent pour la prise en main, je reviendrais
demain, là il se fait tard pour bien apprendre
Merci à tous
Bonsoir Rodolphe,
Il doit bien y avoir une commande qui donne le reste de la division euclidienne (GIAC fait la même chose )
>> BS
Sous Algobox, c'est bien la syntaxe a%b qui renvoie le reste de la division euclidienne de a par b. On retrouve aussi MOD sous open office d'ailleurs. Bonne soirée à toi.
C'est possible en effet, je trouve ça juste plus élégant que de mettre des if (vive la programmation spaghetti comme ils disent sur usenet).
Mais, on attend toujours un premier jet de ta part.
Peut-être demain.
Bonne nuit à toi aussi.
Bonjour,
Je suis d'accord sur l'élégance du modulo par rapport aux boucles conditionnelles...
et en complexité de l'algorithme donc temps d'éxécution aussi, mais là n'est pas le problème
Salut
Bonjour Louisa
je t'explique en détail
1) pour afficher une variable il faut cliquer sur le bouton:
ajouter AFFICHER Variable
tu choisis h puis OK
2) ensuite tu peux ajouter du texte:
ajouter AFFICHER Message
tu tapes heures avec un espace devant et derrière
3) pour afficher la deuxième variable:
ajouter AFFICHER Variable
tu choisis m puis OK
4) ensuite tu ajoutes lu texte:
ajouter AFFICHER Message
tu tapes minutes avec un espace devant
et tu coches la case Ajouter un retour à la ligne
ton test (SI ... ALORS) devrait être comme ceci:
SI (h<0) ALORS faire quelque chose ...
tout ce qui est entre " " est une chaîne
AFFICHER h <------ h est la variable
AFFICHER "h heures" <------ h est la lettre h et fait partie du texte.
maintenant tu dois penser à ce que tu dois faire SI (h<0)
après avoir soustrait 6 à h
donc en repartant de h du départ:
h-6 < 0 lorsque h < 6
exemple h = 5 (il est 5 heures à Paris)
5 - 6 = -1
h = -1
il sera quelle heure à Pointe-à-Pitre ?
quelle correction faut-il faire ?
Bonjour louisa,
Bon, je vais te donner mon analyse (qui est la même que celle de Daniel).
1) La variable heure_paris est inutile dans ce programme.
2) Ton calcul via le si de l'heure à Pointe à pitre est fausse. De plus avec cette faute, ton si ne sert à rien car h sera toujours inférieur à 24.
3) Si tu veux afficher le résultat en une ligne voici la solution qui est trop compliqué pour toi, je pense pour le moment.
voilà l'organigramme (très) simplifié du programme:
penses que les heures sont cycliques sur une période de 24 heures,
ajouter 24h ne change rien à l'heure du jour comprise entre 0 et 24
h [0;24[
Je poste une correction pour le post.
CODE DE L'ALGORITHME :
VARIABLES
H EST_DU_TYPE NOMBRE
M EST_DU_TYPE NOMBRE
RES EST_DU_TYPE CHAINE
DEBUT_ALGORITHME
LIRE H
LIRE M
H PREND_LA_VALEUR (H+18)%24
RES PREND_LA_VALEUR "Il est "+H.toString()+" heure et "+M.toString()+" minute à Pointe-à-Pitre."
AFFICHER RES
FIN_ALGORITHME
mais pourquoi donc ?
h [0;24[
si h est plus petit que zéro, on le ramène dans l'intervalle:
le programme complet:
Bonjour Daniel
tu me fais vraiment plaisir là , j'avais testé celui de BS mais je ne connais pas ses toString()
, et ça n'a pas fonctionné.
tu le vois bien je commence , je voulais seulement m'entrainer avant mon entrée en 2nde, mais là,
j'ai vraiment bougné un mur
Je vais le tester de suite
A tantôt
Bonsoir,
Je suis un peu vexé...
Sinon, mon programme fonctionne sous Algobox 0.5
La fonction "Variable".toString() sert à convertir une variable de type nombre en type chaine et ainsi pouvoir concaténer des chaines pour former une phrase.
Bonsoir Boltzmann_Solver
il n'était pas dans mon intention de te vexer, loin de moi cette idée, c'est vrai que je n'ai pas réussi
à le faire fonctionner, je ne connais pas exactement ma version
Excuse-moi, peut-être que je me suis mal exprimée en voulant dire que je n'y connait que dalle en
programmation.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :