Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2291 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  gros problème sur des algos

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

gros problème sur des algos

n°1230184
Max99
Posté le 25-10-2005 à 09:07:09  profilanswer
 

Bonjour je suis actuellement en terminale Informatique et gestion, et nous étudions la programmation et notamment les algorithmes. Pas facile pour un apprenti comme moi, j'ai du mal, j'ai beaucoup de difficultés à comprendre mais je m'accroche !!!
J'ai 4 ou 5 exos à rendre , et j'en ai réussis 2 ou 3 mais je bloque énormément sur 2 donc j'aimerais un peu d'aide de quelques confirmés de ce forum !!!!
 
voici les exos :
 
Exercice 1 :Transport Express
 
Voici les tarifs de livraison d'une entreprise
-si le poids de la commande ne dépasse pas 100 kg, le prix appliqué sera de 1,20 euros par kg (tarif1)
-si le poids de la commande ne dépasse pas 1000 kg, le tarif 1 sera appliqué jusqu'à 100 kg puis, sur la tranche restante, le prix appliqué sera de 1,00 euro par kg (tarif2)
-au dela de 1000 kg, on continuera d'appliquer un système de tranche avec, sur la partie supérieure à 1000 kg, un tarif de 0,50 euro par kilogramme !!!!
 
Question: présenter l'algo qui permettra de calculer le cout du transport:
 
remarque: pour vous permettre de vérifier seul votre algorithme, vous pouvez comparer ces résultats aux vôtres.
 
Piods de la commande Coût du transport
80 120
120 170
950 1000
1860 1480
3500 2300
 
 
Exercice 2: Transport Express Plus
 
L'entreprise Transport Express souhaite améliorer sa feuille de route.
Elle souhaite avoir un récapitulatif de sa journée. Elle veut notamment que le numéro du client s'affiche automatiquement.
A la fin de la journée, elle souhaite savoir combien de clients elle a livrés et quel est le montant du chiffre d'affaires réalisé.
 
Question: On vous demande de compléter l'algorithme précédent de façon à répondre aux nouvelles exigences de l'entreprise
Vous devez obtenir l'écran ci-dessous :
 
Client n°1
Poids de la commande? 80
Coût du transport : 120
Autre client (oui / non)? Oui
Client n°2
Poids de la commande 120
Coût du transport 170
Autre client (oui / non)? Oui
Client n°3
Poids de la commande? 950
Coût du transport: 1000
Autre client (oui/non)? non
Nombre de clients livrés : 3
Chiffre d'affaires de la journée: 1290
 
 
pour le premier exercice j'ai trouvé un truc mais je suis même pas sur que ce soit bon :
 
var
poids : entier
Tarif1 : entier
Tarif 2 : entier
Tarif 3 : entier
Prest1, Prest2 :entiers
Résultat : entier
 
Début
 
Tarif1 <- Poids * 1.2 * (1+0.196)
Tarif 2 <-Tarif1 + Prest1 *1
Tarif3 <- Tarif2 +Prest2 *0.50
Afficher ("saisissez le poids de la commande" )
Saisir (Poids)
Prest1 <- Poids -100
Prest2 <-Poids -1000
Si Poids < 100
Alors résultat <- Tarif1
Sinon Si Poids <1000
Alors résultat <-Tarif2
Sinon Si poids > 1000
Alors résultat <-Tarif3
Fin si  
Fin si
Fin si
Afficher "le montant de la commande est : ", résultat + 5 (le frais de port)
Fin
 
Je sais pas trop si c'est bon
 

mood
Publicité
Posté le 25-10-2005 à 09:07:09  profilanswer
 

n°1230304
macgawel
Posté le 25-10-2005 à 11:56:44  profilanswer
 

Bonjour,
Tu as testé avec les exemples donnés ? Apparemment, non :
Avec 120 kg tu devrais avoir 170 euros. Et tu as :
 
Début    
 
Tarif1 <- Poids * 1.2 * (1+0.196) Tarif1=172.224  
Tarif 2 <-Tarif1 + Prest1 *1 <Prest1 n'est pas initialisé!>Tarif2=172.224+20*1=192.224  
Tarif3 <- Tarif2 +Prest2 *0.50 Tarif3=192.224+ (-880)*0.5=-246,776  
Afficher ("saisissez le poids de la commande" )    
Saisir (Poids) 120  
Prest1 <- Poids -100 20  
Prest2 <-Poids -1000 -880  
Si Poids < 100Faux  
Alors résultat <- Tarif1    
Sinon Si Poids <1000 Vrai  
Alors résultat <-Tarif2 Resultat=192.224  
Sinon Si poids > 1000    
Alors résultat <-Tarif3    
Fin si    
Fin si    
Fin si    
Afficher "le montant de la commande est : ", résultat + 5 (le frais de port)197.224    
Fin
 
Quelques remarques :
1. Pour Tarif1, tu tiens compte de la TVA (1+0.196). Et pour les autres tarifs ?
2. Tu calcules tes tarifs avant d'avoir le poids du colis !
3. C'est pas très optimisé (TVA en dur, la boucle SI..SINON..., ...)

n°1230323
Max99
Posté le 25-10-2005 à 12:12:14  profilanswer
 

olalala je suis nul, pourtant ça m'interesse mais je comprends pas grand chose, ça veut donc dire que je dois juste rajouter la TVA pour les tarif 2 et 3 et c'est bon?

n°1230364
Max99
Posté le 25-10-2005 à 13:10:28  profilanswer
 

SVP aidez moi sinon je comprendrais jamais !

n°1230387
TheRom_S
Posté le 25-10-2005 à 13:40:08  profilanswer
 

salut
 
tu peux déja corriger ton énnoncé : le tarif 1 c'est 1,5 € / kg
sinon, les exemples sont faux : 120 + 850 != 1000 alors qu'avec 150 + 850 ca marche (ton poids à 900 kg), les autres : pareil
 
donc oublie la tva
 
en gros tu as 3 cas à tester :
pds<100 :
plutot que de lire la réponse, essaye de trouver à chaque fois coment tu calcules le prix à la main
après t'as juste à écrire la formule

Spoiler :

px=pds*1.5


100<=pds<1000 :

Spoiler :

px=150+(pds-100)


1000<=pds :

Spoiler :

px=1050+(pds-1000)/2

n°1230452
macgawel
Posté le 25-10-2005 à 14:14:57  profilanswer
 

Max99 a écrit :

olalala je suis nul, pourtant ça m'interesse mais je comprends pas grand chose, ça veut donc dire que je dois juste rajouter la TVA pour les tarif 2 et 3 et c'est bon?


Question :
C'est dans le sujet, la TVA et les frais de port (5 euros) ?
 
Sinon, comme Therom_s, si tu veux faire un bon algorithme (quel que soit le sujet), pose-toi la question "Comment moi je ferais ?" et essaye de décrire ta méthode sur le papier...

n°1230541
Max99
Posté le 25-10-2005 à 15:25:26  profilanswer
 

nan la TVA et les faris de port ne sont pas ds l'énoncé

n°1230542
Max99
Posté le 25-10-2005 à 15:27:21  profilanswer
 

mais par contre y a un problème mon professeur ne veut pas que j'utilise le < ou = , il veut que les < ou > mais pas le <=

n°1230673
Max99
Posté le 25-10-2005 à 16:41:43  profilanswer
 

Mais si j'enlève les prest c pas bon?
 
 
moi g fait ça:
 
Algo coût du transport
var:
poids: entier */poids de la commande
Tarif1 : entier */valeur de la variable du tarif numéro 1
Tarif2: entier */valeur de la variable du tarif numéro 2
Tarif3: entier */valeur de la variable du tarif numéro 3
résultat */ le prix global de la commande
 
Début
Afficher "saisissez le poids de la commande"
saisir (poids)
Si poids < 1001 ALORS
resultat <- poids * 10.5
sinon si poids < 1001 ALORS
resultat <-100*1.5 + (poids - 100) *1
sinon si poids > 1000 ALORS
resultat <-100*1.5+(1000-100)*1 +(poids -1000) *0.50
Fin si
Fin si
Fin si
Tarif1 <- poids *1.5
Tarif2 <- Tarif1 + (poids -100) *1
Tarif 3 <- Tarif 2 + (poids -1000) *0.50
AFFICHER "le montant de la commande est:", resultat
Fin
 
 
Y a t-il encore des erreurs ?
PS: je savais pas trop ou mettre les tarif donc je les ai mit à la fin car il faut connaitre le poids avant

n°1230792
macgawel
Posté le 25-10-2005 à 17:35:03  profilanswer
 

Max99 a écrit :

Mais si j'enlève les prest c pas bon?
 
 
moi g fait ça:
 
Algo coût du transport
var:
poids: entier */poids de la commande
Tarif1 : entier */valeur de la variable du tarif numéro 1
Tarif2: entier */valeur de la variable du tarif numéro 2
Tarif3: entier */valeur de la variable du tarif numéro 3
résultat */ le prix global de la commande
 
Début
Afficher "saisissez le poids de la commande"
saisir (poids)
Si poids < 1001 ALORS
resultat <- poids * 10.5
sinon si poids < 1001 ALORS
resultat <-100*1.5 + (poids - 100) *1
sinon si poids > 1000 ALORS
resultat <-100*1.5+(1000-100)*1 +(poids -1000) *0.50
Fin si
Fin si
Fin si
Tarif1 <- poids *1.5
Tarif2 <- Tarif1 + (poids -100) *1
Tarif 3 <- Tarif 2 + (poids -1000) *0.50
AFFICHER "le montant de la commande est:", resultat
Fin
 
 
Y a t-il encore des erreurs ?
PS: je savais pas trop ou mettre les tarif donc je les ai mit à la fin car il faut connaitre le poids avant


Tu crois pas qu'il y a un petit problème, en rouge ?
 
Et Tarif1, Tarif2, Tarif3, ils servent à quoi ?
 
Ton prof te dis de tester avec les exemples. Tu l'a fais ?
---------
Sinon, ça commence à être bon :)

mood
Publicité
Posté le 25-10-2005 à 17:35:03  profilanswer
 

n°1230807
Max99
Posté le 25-10-2005 à 17:46:12  profilanswer
 

pas besoin de tarif 1, 2 , 3,  et  en fait on peut faire :
 Var
 
poids (entiers, saisie) : poids de la commande
resultat (entier, calculé) : prix global de la commande
 
Algo
 
Début
 
Afficher ("saisissez le poids de la commande" )
 
Saisir (Poids)
 
Si Poids < 101
 
Alors Resultat <- Poids *1,5
 
Sinon Si Poids < 1001
 
Alors Resultat <- 100 * 1,5 + (Poids - 100) * 1
 
Sinon Si Poids > 1000
 
Alors Resultat <- 100 *1,5 + (1000 - 100) * 1 + (poids - 1000) * 0,50
 
Finsi
Finsi
Finsi
 
Afficher ("le montant de la commande est : " , resultat )
 
Fin

n°1230831
macgawel
Posté le 25-10-2005 à 17:57:24  profilanswer
 

Voilà....
 
Et pour le deuxième, c'est à peu près la même chose...
Simplement, tu boucles tant qu'on veut un autre client, et à la fin tu affiches le nombre de clients saisis et le cumul des montants...

n°1230871
Max99
Posté le 25-10-2005 à 18:24:05  profilanswer
 

ok merci à tous pour votre aide j'ai compris c'est le principal, merci

n°1230907
matafan
Posté le 25-10-2005 à 18:54:59  profilanswer
 

Max99 a écrit :

mais par contre y a un problème mon professeur ne veut pas que j'utilise le < ou = , il veut que les < ou > mais pas le <=


Si tu veux jouer au plus malin avec ton prof, tu peux toujours tirer parti du fait que :
(a == b) <=> ( !(a < b) && !(a > b) )
(a <= b) <=> ( !(a > b) )

n°1231528
Max99
Posté le 26-10-2005 à 14:23:27  profilanswer
 

sinon j’ai fait mon dernier exercice que j’avais à faire mais je suis pas sur, cela donne ça :
 
L’entreprise TRP verse une indemnité mensuelle de transport à ses représentants selon les modalités suivantes:
-du 1er au 100ème km : indemnité fixe de 15 €
-du 101ème au 250ème km: indemnité de 0,05 € par km
-du 251ème au 400ème km: indemnité de 0,07 € par km
-à partir du 401ème km: indemnité de 0,10 € par km
 
1. Calculer l’indemnité de transport du mois de mai 2002 pour les deux représentants suivants:
-M.Moulin qui a parcouru 372 km
-M.Talon qui a parcouru 468 km
 
2.Ecrire l’algorithme qui permet de calculer l’indemnité kilométrique pour un représentant.
 
3. Modifier l’algorithme précédent de façon à ce que l’on puisse calculer l’indemnité de plusieurs représentants. La condition d’arrêt se fera avec la saisie de la réponse “non” à la question “Y a-t-il un autre représentant?” . On désire aussi connaître le montant total des indemnités versées.
 
Voila ce que j’ai fait:
1. M.Moulin = 372 km
     1 à 100 :15 €
     101 à 250: (250-100)*0.05
     251 à 400: (372-250)*0.07
     donc: 15+ (250-100)*0.05 +(372-250 )*0.07 = 31.04 €
 
     M.Talon = 468 km
     1 à 100 :15 €
     101 à 250: (250-100)*0.05
     251 à 400: (400-250)*0.07
     400 à 468: (468-400)*0.10
      donc 15+ (250-100)*0.05 +(400-250 )*0.07+(468-400)*0.10 = 39.8 €
 
Algo indemnité kilométrique
var
nom_représentant: chaîne
Nb km: réel
indemnité :réel
 
Début
SAISIR “quel est le nom du représentant ?”, nom_représentant
SAISIR “Quel est le nombre de kilomètres ?”, Nb km
Si Nb km <101
Alors indemnité <- indemnité+15
Sinon si Nb km <251
Alors indemnité <- indemnité+15+(250-100)*0.05
Sinon si Nb km <- 401
Alors indemnité <- indemnité+15+(250-100)*0.05+(400-250)*0.07
Sinon si Nb km > 400
Alors indemnité <-indemnité+15+(250-100)*0.05+(400-250)*0.07+(Nb km-400)*0.10
Fin si
Fin si
Fin si
Fin si
Afficher “l’indemnité kilométrique pour un représentant est:”, indemnité  
FIN
 
3.Algo indemnité kilométrique
var
nom_représentant: chaîne
Nb km: réel
indemnité :réel
compteur : entier
somme :entier
 
 
Début
somme <-0
compteur <-0
Répéter
compteur <- compteur +1
SAISIR “quel est le nom du représentant ?”, nom_représentant
SAISIR “Quel est le nombre de kilomètres ?”, Nb km
Si Nb km <101
Alors indemnité <- indemnité+15
Sinon si Nb km <251
Alors indemnité <- indemnité+15+(250-100)*0.05
Sinon si Nb km <- 401
Alors indemnité <- indemnité+15+(250-100)*0.05+(400-250)*0.07
Sinon si Nb km > 400
Alors indemnité <-indemnité+15+(250-100)*0.05+(400-250)*0.07+(Nb km-400)*0.10
Fin si
Fin si
Fin si
Fin si
Afficher “l’indemnité kilométrique pour un représentant est:”, indemnité  
somme <- somme + indemnité
Afficher “Y a-t-il un autre représentant ? (O/N”)
Saisir (réponse)
Jusqu’à réponse = “N”
Afficher “le montant total des indemnités versées est:” , somme
FIN
 
Par contre en ce qui concerne de calculer l’indemnité de plusieurs représentants, j’ai pas trop compris

n°1232128
Max99
Posté le 27-10-2005 à 09:42:23  profilanswer
 

personne ne peut me dire si ça semble bon ou complètement hors sujet

n°1232611
TheRom_S
Posté le 27-10-2005 à 15:43:00  profilanswer
 

oui ton algo est presque bon :
 
Répéter
indemnité=0  // pense à réinitialiser ta variable, sinon tu calcules directement la somme pour tous les représentants ;)
compteur <- compteur +1  // inutile (inutilisé)
...
Si Nb km <101
Alors indemnité <- indemnité+15
Sinon si Nb km <251
Alors indemnité <- indemnité+15+(Nb km-100)*0.05
Sinon si Nb km <- 401
Alors indemnité <- indemnité+15+(250-100)*0.05+(Nb km-250)*0.07
Sinon si Nb km > 400
Alors indemnité <-indemnité+15+(250-100)*0.05+(400-250)*0.07+(Nb km-400)*0.10
Fin si
Fin si
Fin si
Fin si
...
somme <- somme + indemnité
...
Jusqu’à réponse = “N”  
 
 
pour le "plusieurs représentants", ca doit vouloir dire un un affichage détailé avant la somme


Message édité par TheRom_S le 27-10-2005 à 15:45:16
n°1232702
Max99
Posté le 27-10-2005 à 16:39:31  profilanswer
 

ok merci beaucoup

n°1232717
Max99
Posté le 27-10-2005 à 16:49:02  profilanswer
 

attend je dois mettre indemnité<-0 entre répéter et SAISIR “quel est le nom du représentant ?”, nom_représentant ? Si oui pk car j'ai pas compris?

n°1233120
TheRom_S
Posté le 28-10-2005 à 02:23:23  profilanswer
 

euh oui, dans ton algo, tu fais : indem=indem+ALGO(km)
au lieu de : indem=ALGO(km)
 
car sans remise à zero, indem garde sa valeur à chaque début de nouvelle boucle (Répeter)
et du coup tu calcule la somme
 
penses toujours à initialiser tes variables ou à choisir leur manière de progresser dans une boucle
c'est justement pour avoir ce genre de choix qu'on utilise les appels conditionnels (si ... alors, répéter ... tant que, ...)


Message édité par TheRom_S le 28-10-2005 à 02:24:05
n°1234359
Max99
Posté le 30-10-2005 à 08:44:07  profilanswer
 

ok j'a

n°1234360
Max99
Posté le 30-10-2005 à 08:44:33  profilanswer
 

ok j"ai compris mais je sais pas comment je vais faire car j'ai pas envi de tout recopier

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  gros problème sur des algos

 

Sujets relatifs
Probleme ecriture sur table attaché AS400Borland c++ builder probleme pour utiliser un idFTP dans un TThread
petit probleme en phpprobleme background-image
Probleme de compilation avec GDI+ sous DevCppProbleme avec les templates
Problème de reconnaissance de fichiersprobleme commande RMIC
Problème de cookies: impossibilité de se déconnecter.[MPatrol] Problème d'utilisation de mpatrol sous windows avec dev c++
Plus de sujets relatifs à : gros problème sur des algos


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR