Inscription / Connexion Nouveau Sujet

1 2 +


Niveau seconde
Partager :

Algo

Posté par
Louisa59
17-08-10 à 20:54

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

Posté par
Louisa59
re : Algo 17-08-10 à 20:58

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.


Posté par
Boltzmann_Solver
re : Algo 17-08-10 à 21:03

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.

Posté par
Louisa59
re : Algo 17-08-10 à 21:11

Citation :
Oula, bientôt tu nous conteras les histoires passionnantes de logarithme et exponentielle .


Pourquoi ?

heure à paris h

à pointe-à-Pitre h-6

Posté par
Boltzmann_Solver
re : Algo 17-08-10 à 21:18

Non, vas tu rentrer l'heure comme une chaine : "12h33" ou comme deux entrées séparées, H = 12 et M = 33.

Posté par
Louisa59
re : Algo 17-08-10 à 21:22

12h33 comme une chaine

Posté par
Boltzmann_Solver
re : Algo 17-08-10 à 21:24

Ben, on attend de voir comment tu vas nous coder ça.

Bonne chance.

Posté par
plumemeteore
re : Algo 17-08-10 à 21:27

Bonsoir Louisa.
N'oublie pas le cas où on est avant six heures du matin à Paris.

Posté par
Louisa59
re : Algo 17-08-10 à 21:30

Ç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



Posté par
Louisa59
re : Algo 17-08-10 à 21:31

Bonsoir Plumemeteore

c'est justement ce à quoi j'étais entrain de penser

Posté par
Rodolphe
re : Algo 17-08-10 à 21:32

Bonsoir Louisa, et bonsoir à tous

Quel logiciel utilises-tu pour écrire ton algorithme ?

Posté par
Boltzmann_Solver
re : Algo 17-08-10 à 21:33

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.

Posté par
Louisa59
re : Algo 17-08-10 à 21:34

Boltzmann_Solver

p'tète que je trouverai d'ici demain enfin demain en Guadeloupe

Bonsoir Rodolphe

Algobox, pour la première fois hier

Posté par
Louisa59
re : Algo 17-08-10 à 21:34

c'est où ça mod ?

Posté par
Rodolphe
re : Algo 17-08-10 à 21:37

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.

Posté par
Louisa59
re : Algo 17-08-10 à 21:40

Sympa Rodolphe

merci du renseignement

chaine ou entrées séparées ?

entrées séparées ou chaine ?

Posté par
Boltzmann_Solver
re : Algo 17-08-10 à 21:45

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.

Posté par
Rodolphe
re : Algo 17-08-10 à 21:46

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.

Posté par
Louisa59
re : Algo 17-08-10 à 21:47

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

Posté par
Rodolphe
re : Algo 17-08-10 à 21:47

Sous algobox, remplace a mod b par a%b.

Salut BS

Posté par
Boltzmann_Solver
re : Algo 17-08-10 à 21:49

Bonsoir Rodolphe,

Il doit bien y avoir une commande qui donne le reste de la division euclidienne (GIAC fait la même chose )

Posté par
Boltzmann_Solver
re : Algo 17-08-10 à 21:51

C'est l'opérateur %. Donc, a%b

Posté par
Rodolphe
re : Algo 17-08-10 à 21:53

>> 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.

Posté par
Rodolphe
re : Algo 17-08-10 à 21:54

C'est ça, je cherchais le mot "opérateur" (il se fait tard).

Posté par
Boltzmann_Solver
re : Algo 17-08-10 à 21:55

Algobox m'irrite un peu. Le truc tout en clique est vraiment pénible.

Posté par
Louisa59
re : Algo 17-08-10 à 22:22

Ben moi je cherche plus précisément des personnes qui ne sont pas allergique à Algobox

Posté par
Boltzmann_Solver
re : Algo 17-08-10 à 22:23

C'est pas parce que je trouve ça irritant que je ne sais pas faire...

Posté par
Louisa59
re : Algo 17-08-10 à 22:44

a%b => en quel honneur ?

Posté par
Boltzmann_Solver
re : Algo 17-08-10 à 22:54

En l'honneur de la documentation de algobox

Posté par
Louisa59
re : Algo 17-08-10 à 23:41

Je pourrais m'en passer de a%b

Bonne nuit et merci

Posté par
Boltzmann_Solver
re : Algo 17-08-10 à 23:44

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.

Posté par
Eric1
re : Algo 18-08-10 à 09:35

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

Posté par
Louisa59
re : Algo 18-08-10 à 12:09

Salut

Citation :
Mais, on attend toujours un premier jet de ta part.


et moi j'attendais un peu + d'aide pour un truc inconnu

Algo

un problème avec mes minutes

voilà

Posté par
Daniel62
re : Algo 18-08-10 à 12:26

Bonjour Louisa

Citation :
AFFICHER "h heures m minutes"

les variables h et m ne sont pas affichées ici,

il faut afficher variables et textes séparément.


Citation :
SI (h<24) ALORS

après une soustraction h peut être négatif

Posté par
Louisa59
re : Algo 18-08-10 à 12:30

Bonjour Daniel

J'ai fait de mon mieux tu sais, mais je ne comprends ce que tu veux me dire

Posté par
Daniel62
re : Algo 18-08-10 à 12:45

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 ...

Posté par
Daniel62
re : Algo 18-08-10 à 12:59

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 ?

Posté par
Boltzmann_Solver
re : Algo 18-08-10 à 13:29

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.

Citation :
RES PREND_LA_VALEUR "Il est "+h.toString()+" heure et "+m.toString()+" minute à Pointe-à-Pitre."
AFFICHER RES


Pour corriger 2), analyse mieux les cas possibles sinon, tu as toujours la solution du modulo qui tient en 1 ligne .

Posté par
Daniel62
re : Algo 18-08-10 à 14:04

voilà l'organigramme (très) simplifié du programme:

           Algo

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[

Posté par
Louisa59
re : Algo 18-08-10 à 14:28

Bonjour

Je vous remercie bien et je ne vous ennuie plus avec ce topic

A tantôt

Posté par
Boltzmann_Solver
re : Algo 18-08-10 à 14:32

Pourquoi ?

Posté par
Louisa59
re : Algo 18-08-10 à 14:35

T'inquiète

Merci

Posté par
Boltzmann_Solver
re : Algo 18-08-10 à 14:36

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

Posté par
Daniel62
re : Algo 18-08-10 à 14:36

mais pourquoi donc ?

     h [0;24[

si h est plus petit que zéro, on le ramène dans l'intervalle:

Citation :
   SI (h<0) ALORS
      DEBUT_SI
         h = h + 24
      FIN_SI

Posté par
Daniel62
re : Algo 19-08-10 à 17:06

le programme complet:

Citation :
1   VARIABLES
2     h EST_DU_TYPE CHAINE
3     m EST_DU_TYPE CHAINE
4   DEBUT_ALGORITHME
5     LIRE h
6     LIRE m
7     h PREND_LA_VALEUR h-6
8     SI (h<0) ALORS
9       DEBUT_SI
10      h PREND_LA_VALEUR h+24
11      FIN_SI
12    AFFICHER "heure de Pointe-à-Pitre:"
13    AFFICHER h
14    AFFICHER " heures  "
15    AFFICHER m
16    AFFICHER " minutes"
17  FIN_ALGORITHME

Posté par
Louisa59
re : Algo 19-08-10 à 17:33

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

Posté par
Louisa59
re : Algo 19-08-10 à 17:45

un grand merci, ça fonctionne super bien

Posté par
Boltzmann_Solver
re : Algo 19-08-10 à 17:52

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.

Posté par
Louisa59
re : Algo 19-08-10 à 18:00

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

Algo

Excuse-moi, peut-être que je me suis mal exprimée en voulant dire que je n'y connait que dalle en

programmation.

Posté par
Daniel62
re : Algo 19-08-10 à 18:08

mais de rien pour ma part

celui de Boltzmann_Solver est plus sophistiqué que le mien

donc moins facile à comprendre pour toi pour l'instant,

n'empêche qu'il doit fonctionner aussi.

j'ai fait au plus simple pour rester à ton niveau.


1 2 +




Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1677 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !