| Auteur | Message | 
| ora Forumeur occasionnel
 
  
 
 
    
 Messages: 41
 
 
   | 
|  Posté le:
Mar 07 Mar 2006 - 13:32 |   |  
| bonjour a tous ....
 j'aurais vouloir avoir un petit conseil pour un algo, voilà en fait je dois calculer   une facture d'électricité en faisant un sous-programme, en fonction d'une consommation donnée en KW/h et d'un abonnement donné aussi, en mois,
 en fait je voulais savoir si il valait mieu décomposer mon calcule en créant deux variables, une pour le prix TTC de la consommation et une pour le tarif de l'abonnement TTc
 ou bien alors donné directement le résultat de la facture...
 c'est pas très clair... en fait vaut-il mieu:
 
 fonction...(tab:tableau,CP:entier, conso:entier, duréeAbonnement:réel):réél
 var
 i:entier
 consoTTC:réel
 abonnementTTC:réel
 
 début
 i=1
 tant que tab.t[i]<>CP faire
 i=i+1
 fin tant que
 consoTTC= conso*tab[2,i]*tva
 abonnementTT=durééAbonnement*tab[3,i]*tva
 résultat=abonnementTTC + consoTTc
 FIN
 
 ou bien
 ........
 fin tant que
 Résultat:=(conso*tab[2,i]*tva)+(duréeabonnement*tab[3,i]*tva)
 
 je sais pas si c'est très clair et merci à ceux qui me répondront.
 |  
|  |  | 
|   | 
|  | 
| N'oubliez pas de vous inscrire à la communauté pour participer. Si vous êtes déjà membre, connectez-vous pour faire disparaître ce bandeau publicitaire.
 | 
| jun Accro à Web-IG
 
  
  
 
  Sexe:
  Messages: 111
 Localisation: lyon
 
   | 
|  Posté le:
Mar 07 Mar 2006 - 14:05 |   |  
| a mon avis peu importe .... du moment que ton calcul donne le bon resultat
  |  
|  |  | 
|    | 
|  | 
 
| ora Forumeur occasionnel
 
  
 
 
    
 Messages: 41
 
 
   | 
|  Posté le:
Mar 07 Mar 2006 - 14:13 |   |  
| merci jun, je pensai qu'il devait sûrement y avoir une des deux solutions qui était préférable a l'autre mais bon après tout tu a raison...
 merci encore
 |  
|  |  | 
|   | 
|  | 
 
| kronky Accro à Web-IG
 
  
 
 
    Sexe:
  Messages: 143
 Localisation: Dijon
 
   | 
|  Posté le:
Mar 07 Mar 2006 - 15:49 |   |  
| En fait, ça dépend de ce que tu préfères : la lisibilité ou l'économie de variable.
 
 En décomposant, c'est plus lisible et plus facile à maintenir/corriger.
 En mettant tout d'un coup, tu économises deux variables, d'où un gain de temps (pas forcément perceptible d'ailleurs...).
 
 Après, à toi de voir quel est le meilleur compromis lisibilité/optimisation.
 
 Pour un algo simple comme ça, l'une ou l'autre, ça ne change rien à l'execution mais pour un algo bien plus complexe la question peut devenir sérieuse.
  |  
|  |  | 
|      | 
|  | 
 
| ora Forumeur occasionnel
 
  
 
 
    
 Messages: 41
 
 
   | 
|  Posté le:
Mer 08 Mar 2006 - 13:02 |   |  
| merci kronky...
 ba en fait j'ai opter pour la solution tout d'un coup....
 je me suis dit qu'est ce qu'il y a en entrée, qu'est ce que je veux en sortie...
 ba en sortie je veux le total....alors voilà
 merci a vous..
 |  
|  |  | 
|   | 
|  | 
 
| dununfolette Modérateur
 
  
  
 
  Sexe:
  Messages: 2497
 Localisation: chambéry (73)
 
   | 
|  Posté le:
Mer 08 Mar 2006 - 16:14 |   |  
| 
 
| ora a écrit: |  
| fonction...(tab:tableau,CP:entier, conso:entier, duréeAbonnement:réel):réél var
 i:entier
 consoTTC:réel
 abonnementTTC:réel
 
 début
 i=1
 tant que tab.t[i]<>CP faire
 i=i+1
 fin tant que
 consoTTC= conso*tab[2,i]*tva
 abonnementTTC=durééAbonnement*tab[3,i]*tva
 résultat=abonnementTTC + consoTTc
 FIN
 
 ou bien
 ........
 fin tant que
 Résultat:=(conso*tab[2,i]*tva)+(duréeabonnement*tab[3,i]*tva)
 
 |  les deux fins m'ont l'air bien...c'est le milieu qui me perturbe
   
 si j'ai bien compris : tab est un tableau dans lequel tu range en première position le type d'abonnement, en seconde le prix HT au kW et en troisième le prix HT de l'abonnement (au mois).
 CP c'est l'abonnement choisi par le client
 conso la quantité de kW/h consommés
 duréeAbonnement la durée de l'abonnement
 i la variable dans tab(x,i)
 résultat le prix à payer, c'est la valeur retournée par la fonction.
 
 fonction "facture" (tab:tableau (1 à 3, 1 à 100) de réels, CP:entier, conso:entier, duréeAbonnement:réel, résultat : réel):réél
 var
 i:entier
 consoTTC:réel
 abonnementTTC:réel
 résultat : réel
 
 début
 i=1;
 tant que tab(1,i)<>CP faire
 i=i+1;
 fin tant que
 consoTTC= conso*tab(2,i)*tva;
 abonnementTT=durééAbonnement*tab(3,i)*tva;
 résultat=abonnementTTC + consoTTc;
 retourne résultat;
 FIN
 
 on pourrait l'inserer dans un algo de type (considérant que le tableau données est déjà remplis) :
 
 Algo facturation client
 
 var :
 Abo, Cons : entiers;
 Durée, Prix : réels;
 données : tableau (1 à 3, 1 à 100) de réels;
 
 Début
 Afficher "entrer l'abonnement choisi :";
 Saisir Abo;
 Afficher "entrer la durée de l'abonnement"
 Saisir Durée;
 "Entrer la consommation électrique en kW/h :"
 Saisir Cons;
 Facture (données, Abo, Cons, Durée, Prix);
 Afficher "prix à payer :" Prix;
 Fin
 
 c'est ça ? où j'ai pas compris ?
 |  
| _________________
 Doudou BTS IG ARLE eu et LP Réseaux Sans Fil et Sécurité validée ! Boulot, boulot, boulot...
 Pensez à valider votre profil !
 
  |  | 
|   | 
|  | 
 
| Yipyip Modérateur
 
  
  
 
 Sexe:
  Messages: 1163
 Localisation: Ici, là, pas loin ...
 
   | 
|  Posté le:
Mer 08 Mar 2006 - 17:20 |   |  
| Et testé dans un langage (n'importe lequel) ça donne quoi ?
 C'est le meilleurs moyen de voir si c'est bon.
 |  
| _________________
 
   
  |  | 
|   | 
|  | 
 
| dununfolette Modérateur
 
  
  
 
  Sexe:
  Messages: 2497
 Localisation: chambéry (73)
 
   | 
|  Posté le:
Mer 08 Mar 2006 - 17:24 |   |  
| moi 1°année ARLE, moi pas parler langages
   si quelqu'un avait la gentillesse de le faire...
 |  
| _________________
 Doudou BTS IG ARLE eu et LP Réseaux Sans Fil et Sécurité validée ! Boulot, boulot, boulot...
 Pensez à valider votre profil !
 
  |  | 
|   | 
|  | 
 
| ora Forumeur occasionnel
 
  
 
 
    
 Messages: 41
 
 
   | 
|  Posté le:
Mer 08 Mar 2006 - 18:02 |   |  
| salut a tous et merci..
 les données sont un tableau  Té[3,10]
 dans lequel la première ligne concerne les code puissance qui détermine le pris du KW/h et le prix de l'abonnement mensuel...
 on nous dit aussi que le prix du KW/h actuellement est de 0,0779HT
 pour mon exercice, on suppose que le programme principal définit et initialise le tableau Té
 On me demande d'ecrire un sous programme calculant la facture d'électricité en fonction d'une durée d'abonnement donnée(en mois par exemple 2,5)
 de la conso en KW/h sur cette periode (arrondie a l'entier le plus proche)
 et du code puissance choisi
 
 TVA=5,5%
 taxe sur KW/h=19,6%
 
 
 mon sous programme est donc...
 
 Fonction FactureElec (Tab:Té[3,10], CP:entier; DuréeA:réel; Conso:entier):réel
 
 var
 i:entier
 
 début
 i=1
 tant que Tab.t[1,i]<>CP faire
 i=i+1
 fin tant que
 Résultat:=(Conso*0,0779*0,196*Tab[2,i])+(DuréeA*0,055*Tab[3,i])
 Fin
 je ne dois pas m'occuper du programme principal...
 |  
|  |  | 
|   | 
|  | 
 
| dununfolette Modérateur
 
  
  
 
  Sexe:
  Messages: 2497
 Localisation: chambéry (73)
 
   | 
|  Posté le:
Mer 08 Mar 2006 - 18:53 |   |  
| en fait c'était juste parce que j'avais du mal dans tes variables donc je voulais savoir si ça correspondait bien
   sinon c'est bon
  à part le fait qu'une fonction retourne obligatoirement quelque chose (il me semble) donc tu dois indiquer ce que retourne ta fonction  sinon c'est une procédure (c'est un peu bête puisqu'on veut le résultat du calcul  ) |  
| _________________
 Doudou BTS IG ARLE eu et LP Réseaux Sans Fil et Sécurité validée ! Boulot, boulot, boulot...
 Pensez à valider votre profil !
 
  |  | 
|   | 
|  | 
 
| ora Forumeur occasionnel
 
  
 
 
    
 Messages: 41
 
 
   | 
|  Posté le:
Mer 08 Mar 2006 - 21:17 |   |  
| tu veux parler du retourne résultat? j'ai jamais vu ça moi...
 pour moi la différence entre une procedure et une fonction, c'est que la fonction retourne un résultat du même type que la foncion, ici réel
 ca peut etre un booléen aussi, tandis qu'une procédure retourne une instruction
 et le retourne...j'ai jamais vu
  |  
|  |  | 
|   | 
|  | 
 
| dununfolette Modérateur
 
  
  
 
  Sexe:
  Messages: 2497
 Localisation: chambéry (73)
 
   | 
|  Posté le:
Mer 08 Mar 2006 - 21:40 |   |  
| c'est chiant l'algo ! chacun utilise des notifications différentes !
   chez moi si on met pas le retourne on a pas les points pour la fonction...
 |  
| _________________
 Doudou BTS IG ARLE eu et LP Réseaux Sans Fil et Sécurité validée ! Boulot, boulot, boulot...
 Pensez à valider votre profil !
 
  |  | 
|   | 
|  | 
 
| Yipyip Modérateur
 
  
  
 
 Sexe:
  Messages: 1163
 Localisation: Ici, là, pas loin ...
 
   | 
|  Posté le:
Mer 08 Mar 2006 - 21:41 |   |  
| Bon voici le code en C d'apres l'algo ci dessus
   A tester avec un tableau rempli.
 
 
 
| Code: |  
| #include <stdio.h>
 
 double facture (double tab[100], int CP, double conso, double dureeAbonnement)
 {
 int i;
 double consoTTC;
 double abonnementTTC;
 double resultat;
 double tva = 007.5;
 
 i = 1;
 while (tab[i] != CP)
 {
 i++;
 }
 
 consoTTC = conso * tab[i] * tva;
 abonnementTTC = dureeAbonnement * tab[i] * tva;
 resultat = consoTTC + abonnementTTC;
 
 return resultat;
 }
 
 /* la facturation client est dans la fonction principale */
 int main ()
 {
 double donnees[100];
 double duree, prix;
 double resultat;
 int abo, cons;
 
 
 printf ("Entrer l'abonnement choisi :");
 scanf ("&d", &abo);
 printf ("Entrer la duree de l'abonnement :");
 scanf ("&f", &duree);
 printf ("Entrer la consommation electrique en kW/h :");
 scanf ("&f", &cons);
 resultat = facture(donnees, abo, cons, duree);
 printf ("prix à payer : %f\n", resultat);
 
 return 0;
 }
 
 |  
 Pour la différence entre la fonction et la procédure, c'est bien que la fonction retourne un resultat et que la procédure ne retourne rien. Elle se contente d'effectuer un traitement.
 |  
| _________________
 
   
  |  | 
|   | 
|  | 
 
| ora Forumeur occasionnel
 
  
 
 
    
 Messages: 41
 
 
   | 
|  Posté le:
Mer 08 Mar 2006 - 23:51 |   |  
| meci yipyip
 est ca veut dire qu'il faut mettre le retourne résultat, j'ai jamais vu ca dans mes cours....
 |  
|  |  | 
|   | 
|  | 
 
| kronky Accro à Web-IG
 
  
 
 
    Sexe:
  Messages: 143
 Localisation: Dijon
 
   | 
|  Posté le:
Jeu 09 Mar 2006 - 10:40 |   |  
| 
 
| ora a écrit: |  
| meci yipyip est ca veut dire qu'il faut mettre le retourne résultat, j'ai jamais vu ca dans mes cours....
 |  Ca dépend du langage avec lequel ton prof d'algo est habitué à programmer. Il n'y a pas vraiment une syntaxe algo universelle.
 
 Là ton algo a une syntaxe très proche du Pascal/Delphi dans lequel une fonction retourne son résultat avec l'instruction
 
 qui est l'équivalent de ton Resultat:=
 
 Donc le retourne que veut dununfolette , c'est ton Resultat:=.
 En C, l'instruction correspondante, c'est return (cf le post de yipyip).
 |  
|  |  | 
|      | 
|  | 
 
|  |