Προς το περιεχόμενο

C++ Ας να με βοηθήσει κάποιος


giorgos paok

Προτεινόμενες αναρτήσεις

Αρκεί να δεις τα υπόλοιπα ποστ του TS για να καταλάβεις 2 πράγματα.

Πρώτον, ότι ακόμα και σε περιπτώσεις που οι άλλοι παίζουν με τη νοημοσύνη του κόσμου, πάντα υπάρχουν άτομα πρόθυμα να τους βοηθήσουν με το πρόβλημά τους, πράγμα που με κάνει να χαίρομαι.

Και δεύτερον, αρκούν αυτά τα 2-3 ποστ για να αντιληφθούμε γιατί έχουμε φτάσει σε αυτά τα χάλια ως χώρα και δεν αναφέρομαι στην οικονομική κατάσταση.

 

On topic τώρα, και 10 να πάρεις σε όλες τις εργασίες, με 0 στην εξεταστική μάθημα δε περνάς.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 69
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Συχνή συμμετοχή στο θέμα

Αρκεί να δεις τα υπόλοιπα ποστ του TS για να καταλάβεις 2 πράγματα.

Πρώτον, ότι ακόμα και σε περιπτώσεις που οι άλλοι παίζουν με τη νοημοσύνη του κόσμου, πάντα υπάρχουν άτομα πρόθυμα να τους βοηθήσουν με το πρόβλημά τους, πράγμα που με κάνει να χαίρομαι.

Και δεύτερον, αρκούν αυτά τα 2-3 ποστ για να αντιληφθούμε γιατί έχουμε φτάσει σε αυτά τα χάλια ως χώρα και δεν αναφέρομαι στην οικονομική κατάσταση.

 

On topic τώρα, και 10 να πάρεις σε όλες τις εργασίες, με 0 στην εξεταστική μάθημα δε περνάς.

ε μην το λες όλο και κάποιο σκονάκι θα κάνει η θα αντιγράψει από κάνα φίλο του

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Θα σου παραθέσω και εγώ μία λύση αλλά όχι σε C++ αλλά σε C# θέλοντας

να συνεχίσω το έργο του αξιοσέβαστου Virxen75.

Έχουμε και λέμε λοιπόν:

 

>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ask_insomnia
{
   class Program
   {
        
       
       static void Main(string[] args)
       {
           
           
           Console.WriteLine("Dwse mou kilowatores (kwh):"); // Η ερώτηση για τις κιλοβατόρες για να γίνει ο υπολογισμός
           double kwh = Convert.ToDouble(Console.ReadLine()); // Ανάγνωση και αποθήκευση της τιμής των κιλοβάτ ανά ώρα από το πληκτρολόγιο
           
           Console.WriteLine("Dwse mou tetragwnika toy spitiou:"); // Η ζητούμενη ερώτηση για το πόσα τετραγωνικά είναι το εν λόγω σπίτι
           double tetr_kat = Convert.ToDouble(Console.ReadLine()); // Ανάγνωση και αποθήκευση της τιμής των τετραγωνικών από το πληκτρολόγιο

           Console.WriteLine("Dwse mou thn ekptwsh pou thes na kaneis:");
           double ekptwsh = Convert.ToDouble(Console.ReadLine());
           Console.WriteLine(); // Κενή γραμμή
           
           Console.WriteLine(" To toimologio einai: {0} ", timologio(kwh,tetr_kat)); // Μας δίνει την τιμη για το πρώτο τιμολόγιο με την επιβάρυνση του 13% δίχως την έκπτωση
           Console.WriteLine(); // Κενή γραμμή
           Console.WriteLine(" To timologio meta thn ekptwsh einai: {0} ", timologio(kwh,tetr_kat,ekptwsh)); /* Μας δίνει την τελική τιμή μετά την προσθήκη του 13% και με δοθείσα έκπτωση 
                                                                                                              από το πληκτρολόγιο*/
           
           Console.ReadKey(); // Πάγωμα του παραθύρου
           

       }

           // Η ζητούμενη συνάρτηση Τιμολόγιο
           public static double timologio(double kwh, double tetr_kat)
           {
               // Έλεγχος τιμών για τις κιλοβατόρες
               if (kwh > 0 && kwh <= 800)
                                 {
                                   kwh = kwh * 0.054;
                              }

                              else
                                  if (kwh > 800 && kwh <= 1200)
                                              {
                                          kwh = kwh * 0.063;
                                          }

                              else
                                  if (kwh > 1200)
                                      {
                                        kwh = kwh * 0.071;
                                    }


               double ert = tetr_kat * 0.05; // Υπολογισμός της ΕΡΤ

               double tel_poso = (kwh + ert) * 113 / 100; // Τελικό ποσό μετά την προσαύξηση  του 13%
                  

               return tel_poso;
        }
           //Υπερφορτωμένη συνάρτηση timologio!!!
           public static double timologio(double kwh, double tetr_kat, double ekptwsh)
           {
               if (kwh > 0 && kwh <= 800)
               {
                   kwh = kwh * 0.054;
               }

               else
                   if (kwh > 800 && kwh <= 1200)
                   {
                       kwh = kwh * 0.063;
                   }

                   else
                       if (kwh > 1200)
                       {
                           kwh = kwh * 0.071;
                       }


               double ert = tetr_kat * 0.05; // Υπολογισμός της ΕΡΤ

               double tel_poso = (kwh + ert) * 113 / 100; // Τελικό ποσό μετά την προσαύξηση  του 13% 

               double tel_poso1 = (100 - ekptwsh) / 100 * tel_poso; //Τελικό ποσό μετά την έκπτωση

               return tel_poso1; // Επιστροφή τιμής


           }
        }
   }

 

Ελπίζω να σε βοηθήσει να καταλάβεις ας πούμε τον αλγόριθμο του πως δουλεύει

εν γένει το όλο πράγμα. Λίγο πολύ όλες οι γλώσσες ίδιες είναι απλά αλλάζουν

οι συντακτικές τους δομές και ουδόλως η ουσία η οποία είναι ο αλγόριθμος!!!

Επειδή ασχολείσαι τώρα έστω και από ανάγκη και χρειάζεσαι μία βοήθεια όπως

και εγώ χρειάστηκα όταν ξεκινούσα-και ακόμα χρειάζομαι-θέλω να σε βοηθήσω.

Αυτό δεν σημαίνει ότι εσύ πρέπει να τεμπελιάσεις, πρέπει να διαβάσεις όχι

μόνο για να περάσεις το όποιο μάθημα είσαι υποχρεωμένος αλλά για να δημιουργήσεις μία υποδομή

για τον ευατό σου στον προγραμματισμό, να αγαπήσεις ενδεχομένως το αντικείμενο

και να συνεχισεις με το να γίνεις ακόμα καλλίτερος σε τούτο εάν σε ενδιαφέρει

πάντα εννοείται!!! Κατά συνέπεια, υποστηρίζω κι εγώ τα λεχθέντα των φίλων του

forum που διαφωνούν δίνοντας απευθείας μία λύση, απλά με μία διαφορετική οπτική

γωνία για το όλο θέμα...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

>
double tel_poso = (kwh + ert) * 113 / 100; // Τελικό ποσό μετά την προσαύξηση  του 13% 
double tel_poso1 = (100 - ekptwsh) / 100 * tel_poso; //Τελικό ποσό μετά την έκπτωση
return tel_poso1; // Επιστροφή τιμής

 

 

εδώ βάζεις έκπτωση και στην ΕΡΤ και στον ΦΠΑ μήπως είναι λίγο...γενναιόδωρο?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Θα σου παραθέσω και εγώ μία λύση αλλά όχι σε C++ αλλά σε C# θέλοντας

να συνεχίσω το έργο του αξιοσέβαστου Virxen75.

 

Φίλε μου η λύση σου έχει σοβαρά προβλήματα.

 

1. (και βασικότερο) Η χρέωση όπως την υπολογίζεις δεν είναι κλιμακωτή οπότε βγαίνει λάθος αποτέλεσμα.

2. Έχεις 2 overloads με το ένα να υπολογίζει την έκπτωση, αλλά αυτό είναι τελείως λάθος δομή προγράμματος. Το σωστό θα ήταν να έχεις μια method να υπολογίζει κόστος ρεύματος, μια να υπολογίζει ΕΡΤ, και απο κει και πέρα ο υπολογισμός της έκπτωσης και του ΦΠΑ (που είναι και θα είναι πάντα απλά ένας πολλαπλασιασμός επομένως δεν χρειάζεται abstraction) μπορεί να γίνει "ξερά" (όπως και η πρόσθεση). Αν προτιμάς, θα μπορούσες να κάνεις μια 3η method που να παίρνει κόστος ρεύματος, κόστος ΕΡΤ, έκπτωση και ποσοστό ΦΠΑ και να επιστρέφει το αποτέλεσμα.

3. Τα 2 overloads που έχεις δεν είναι implemented το ένα βάσει του άλλου -- σοβαρότατο πρόβλημα γιατί αν κάτι αλλάξει θα πρέπει να θυμηθείς να κάνεις την αλλαγή σε 2 σημεία.

 

Δοκίμασε να κάνεις τις παραπάνω αλλαγές και θα δείς πόσο πιο "καθαρό" θα φαίνεται το πρόγραμμα.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

εδώ βάζεις έκπτωση και στην ΕΡΤ και στον ΦΠΑ μήπως είναι λίγο...γενναιόδωρο?

 

Ναι αγαπητέ Virxen75, αυτό έκανα αλλά όχι εν αγνοία μου, έτσι αντιλήφθηκα την άσκηση

σε μία γρήγορη ανάγνωση. Αφού έχουν υπολογιστεί όλα εννοείται και το ΦΠΑ, να κάνουμε μία

έκπτωση όσο θέλουμε υποτίθεται δοσμένη από το πληκτρολόγιο.Κατάλαβα λάθος? Οπότε στο τελικό ποσό βάζω έκπτωση και μου δίνει την τελική εκπτωτική τιμή.

 

Φίλε μου η λύση σου έχει σοβαρά προβλήματα.

 

1. (και βασικότερο) Η χρέωση όπως την υπολογίζεις δεν είναι κλιμακωτή οπότε βγαίνει λάθος αποτέλεσμα.

2. Έχεις 2 overloads με το ένα να υπολογίζει την έκπτωση, αλλά αυτό είναι τελείως λάθος δομή προγράμματος. Το σωστό θα ήταν να έχεις μια method να υπολογίζει κόστος ρεύματος, μια να υπολογίζει ΕΡΤ, και απο κει και πέρα ο υπολογισμός της έκπτωσης και του ΦΠΑ (που είναι και θα είναι πάντα απλά ένας πολλαπλασιασμός επομένως δεν χρειάζεται abstraction) μπορεί να γίνει "ξερά" (όπως και η πρόσθεση). Αν προτιμάς, θα μπορούσες να κάνεις μια 3η method που να παίρνει κόστος ρεύματος, κόστος ΕΡΤ, έκπτωση και ποσοστό ΦΠΑ και να επιστρέφει το αποτέλεσμα.

3. Τα 2 overloads που έχεις δεν είναι implemented το ένα βάσει του άλλου -- σοβαρότατο πρόβλημα γιατί αν κάτι αλλάξει θα πρέπει να θυμηθείς να κάνεις την αλλαγή σε 2 σημεία.

 

Δοκίμασε να κάνεις τις παραπάνω αλλαγές και θα δείς πόσο πιο "καθαρό" θα φαίνεται το πρόγραμμα.

 

Μισό λεπτό αγαπητέ defacer.

1) Γιατί είναι λάθος η χρέωση?? Εγώ την έκανα και έτσι απλά και βάσει της άσκησης όπως τα ζητάει

νομίζω ότι έτσι το θέλει.

2) Αν θυμάμαι καλά ζητάει η άσκηση δύο συναρτήσεις να έχει-εν προκειμένω-μεθόδους. Δεν καταλαβαίνω

γιατί το αποτέλεσμα είναι λάθος???? Την άσκηση δεν την λύνω όπως μου αρέσει εμένα, αλλά όπως την ζητάει

με δύο μεθόδους με συγκεκριμένα ορίσματα. Πες μου σε παρακαλώ ποια είναι τα λάθη που βγαίνουν και στον

υπολογισμό... Μήπως δεν έχω καταλάβει καλά την άσκηση...

3) Το τρίτο ναι, αλλά δεν είναι και πολύ ουσιώδες εδώ που τα λέμε,αλλά δεκτό.

 

Ευχαριστώ για τις παρατηρήσεις σου ωστόσο.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Ναι αγαπητέ Virxen75, αυτό έκανα αλλά όχι εν αγνοία μου, έτσι αντιλήφθηκα την άσκηση

σε μία γρήγορη ανάγνωση. Αφού έχουν υπολογιστεί όλα εννοείται και το ΦΠΑ, να κάνουμε μία

έκπτωση όσο θέλουμε υποτίθεται δοσμένη από το πληκτρολόγιο.Κατάλαβα λάθος? Οπότε στο τελικό ποσό βάζω έκπτωση και μου δίνει την τελική εκπτωτική τιμή.

 

η άσκηση λέει:

 

.........Η συνάρτηση αυτή θα υπολογίζει πάλι το τελικό ποσό πληρωμής όπως και παραπάνω αλλά θα κάνει έκπτωση στην χρέωση των kWh..............

 

και ολοκληρωμένη η λύση μου

 

EDIT:<κλιμακωτά>

 

>

#include <iostream>

using namespace std;
double timologio(float,float);
double timologio(float,float,float);

int main(){
   float kwh,tetragonika,ekptosi;
   cout<<"DOSE kwh:";
   cin>>kwh;
   cout<<"DOSE tetragonika:";
   cin>>tetragonika;
   cout<<"DOSE ekptosi (%):";
   cin>>ekptosi;
   cout<<"Poso pliromis xoris ekptosi="<<timologio(kwh,tetragonika)<<endl;
   cout<<"Poso pliromis  me ekptosi  ="<<timologio(kwh,tetragonika,ekptosi)<<endl;
   while ( cin.get ()== '\n' );
   return 0;
}
double timologio (float kwh,float tetragonika) {
   if (kwh<0)
       return 0;
   if (kwh<=800 )
       return (0.054*kwh+0.05*tetragonika)*1.13;
   float proigoumena=0.054*800;
   if (kwh<=1200)
       return (proigoumena+0.063*(kwh-800)+0.05*tetragonika)*1.13;
   proigoumena+=0.063*(1200-800);
   return (proigoumena+0.071*(kwh-1200)+0.05*tetragonika)*1.13; 
}
double timologio (float kwh,float tetragonika,float ekptosi) {
   ekptosi=(100.0-ekptosi)/100.0;
   if (kwh<0)
       return 0;
   if (kwh<=800 )
       return (0.054*kwh*ekptosi+0.05*tetragonika)*1.13;
   float proigoumena=0.054*800*ekptosi;
   if (kwh<=1200)
       return (prota800+0.063*(kwh-800)*ekptosi+0.05*tetragonika)*1.13;
   proigoumena+=0.063*(1200-800)*ekptosi;
   return (proigoumena+0.071*(kwh-1200)*ekptosi+0.05*tetragonika)*1.13;
}

Επεξ/σία από virxen75
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

η άσκηση λέει:

 

 

 

και ολοκληρωμένη η λύση μου

>

#include <iostream>

using namespace std;
double timologio(float,float);
double timologio(float,float,float);

int main(){
   float kwh,tetragonika,ekptosi;
   cout<<"DOSE kwh:";
   cin>>kwh;
   cout<<"DOSE tetragonika:";
   cin>>tetragonika;
   cout<<"DOSE ekptosi (%):";
   cin>>ekptosi;
   cout<<"Poso pliromis xoris ekptosi="<<timologio(kwh,tetragonika)<<endl;
   cout<<"Poso pliromis  me ekptosi  ="<<timologio(kwh,tetragonika,ekptosi)<<endl;
   while ( cin.get ()== '\n' );
   return 0;
}
double timologio (float kwh,float tetragonika) {
   if (kwh<0)
       return 0;
   if (kwh<=800 )
       return (0.054*kwh+0.05*tetragonika)*1.13;
   if (kwh<=1200)
       return (0.063*kwh+0.05*tetragonika)*1.13;
   return (0.071*kwh+0.05*tetragonika)*1.13; 
}
double timologio (float kwh,float tetragonika,float ekptosi) {
   return timologio(kwh*(100.0-ekptosi)/100.0,tetragonika);
}

 

Σωστά, απλά εγώ στη γρήγορη ανάγνωση δεν το πρόσεξα θα κάνω κι εγώ την αλλαγή στον δικό μου κώδικα!

Ευχαριστώ Virxen75 για την επισήμανση... Βλέπεις όταν το κάνεις το ξημέρωμα όλο και κάτι θα σου ξεφύγει...

Ζητώ συγγνώμη διότι μου ξέφυγε η εκφώνηση και απάντησα σε ό,τι κατάλαβα.

Παραθέτω κι εγώ-σύμφωνα με τα νέα δεδομένα-τη δική μου λύση σε C#

 

>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ask_insomnia
{
   class Program
   {
        
       
       static void Main(string[] args)
       {

           // Η ερώτηση για τις κιλοβατόρες για να γίνει ο υπολογισμός
           Console.WriteLine("Dwse mou kilowatores (kwh):");
           // Ανάγνωση και αποθήκευση της τιμής των κιλοβάτ ανά ώρα από το πληκτρολόγιο
           double kwh = Convert.ToDouble(Console.ReadLine());

           // Η ζητούμενη ερώτηση για το πόσα τετραγωνικά είναι το εν λόγω σπίτι
           Console.WriteLine("Dwse mou tetragwnika toy spitiou:");
           // Ανάγνωση και αποθήκευση της τιμής των τετραγωνικών από το πληκτρολόγιο
           double tetr_kat = Convert.ToDouble(Console.ReadLine()); 

           Console.WriteLine("Dwse mou thn ekptwsh pou thes na kaneis:");
           double ekptwsh = Convert.ToDouble(Console.ReadLine());
           Console.WriteLine(); // Κενή γραμμή

           // Μας δίνει την τιμη για το πρώτο τιμολόγιο με την επιβάρυνση του 13% δίχως την έκπτωση
           Console.WriteLine(" To toimologio einai: {0} ", timologio(kwh,tetr_kat)); 
           Console.WriteLine(); // Κενή γραμμή
           //Μας δίνει την τελική τιμή μετά την προσθήκη του 13% και με δοθείσα έκπτωση από το πληκτρολόγιο
           Console.WriteLine(" To timologio meta thn ekptwsh einai: {0} ", timologio(kwh,tetr_kat,ekptwsh)); 
           
           Console.ReadKey(); // «Πάγωμα» του παραθύρου
           

       }

           // Η ζητούμενη συνάρτηση Τιμολόγιο
           public static double timologio(double kwh, double tetr_kat)
           {
               // Έλεγχος τιμών για τις κιλοβατόρες
               if (kwh > 0 && kwh <= 800)
                                 {
                                   kwh = kwh * 0.054;
                              }

                              else
                                  if (kwh > 800 && kwh <= 1200)
                                              {
                                          kwh = kwh * 0.063;
                                          }

                              else
                                  if (kwh > 1200)
                                      {
                                        kwh = kwh * 0.071;
                                    }


               double ert = tetr_kat * 0.05; // Υπολογισμός της ΕΡΤ

               // Τελικό ποσό μετά την προσαύξηση  του 13%
               double tel_poso = (kwh + ert) * 113 / 100; 
                  

               return tel_poso;
        }
           //Υπερφορτωμένη συνάρτηση timologio!!!
           public static double timologio(double kwh, double tetr_kat, double ekptwsh)
           {
               return timologio((kwh*(100.00 - ekptwsh) / 100), tetr_kat);
              }
        }
   }

 

Ποιος τη χάρη του φίλου μας. Η άσκηση λυμένη με δύο υλοποιήσεις μάλιστα,σε C++ και σε C#. Να δούμε και μία σε java??? Πλάκα κάνω...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

και σε Java.... :-D

EDIT:<κλιμακωτά>

>
import java.util.Scanner;

public class Deh{

private float kwh,tetragonika,ekptosi;
public Deh(){
	Scanner in=new Scanner(System.in);
	String temp=null;
	try{
		System.out.print("Δωσε kwh:");
		kwh=in.nextFloat();
		System.out.print("Δωσε τετραγωνικά:");
		tetragonika=in.nextFloat();
		System.out.print("Δωσε έκπτωση(%):");
		ekptosi=in.nextFloat();
		System.out.format("Ποσό πληρωμής χωρίς έκπτωση=%.2f\n",timologio(kwh,tetragonika));
       	System.out.format("Ποσό πληρωμής   με  έκπτωση=%.2f\n",timologio(kwh,tetragonika,ekptosi));
	}catch(java.util.InputMismatchException ex){
		System.out.println("Τα δεδομένα πρέπει να είναι αριθμητικά!");
	}
}
public static void main(String args[]){
	new Deh();
}
private double timologio(float kwh,float tetragonika){
	    if (kwh<0)
       		return 0;
   		if (kwh<=800 )
       		return (0.054*kwh+0.05*tetragonika)*1.13;
       	double proigoumena=0.054*800;
   		if (kwh<=1200)
       		return (proigoumena+0.063*(kwh-800)+0.05*tetragonika)*1.13;
       	proigoumena+=0.063*(1200.0-800.0);
   		return (proigoumena+0.071*(kwh-1200)+0.05*tetragonika)*1.13;
}
private double timologio(float kwh,float tetragonika,float ekptosi){
		ekptosi=(float)((100.0-ekptosi)/100.0);
	    if (kwh<0)
       		return 0;
   		if (kwh<=800 )
       		return (0.054*kwh*ekptosi+0.05*tetragonika)*1.13;
       	double proigoumena=0.054*800*ekptosi;
   		if (kwh<=1200)
       		return (proigoumena+0.063*(kwh-800)*ekptosi+0.05*tetragonika)*1.13;
       	proigoumena+=0.063*(1200-800)*ekptosi;
   		return (proigoumena+0.071*(kwh-1200)*ekptosi+0.05*tetragonika)*1.13;
}	
}

Επεξ/σία από virxen75
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ρε παιδιά μισό λεπτό γιατί θα με τρελλάνετε... Εγώ πάω κόντρα στο μονόδρομο ή όλοι οι υπόλοιποι;

 

Η άσκηση λέει:

 

Η χρέωση να kWh γίνεται κλιμακωτά σύμφωνα με τον παρακάτω πίνακα

kWh Χρέωση ανά kWh

0 < kWh ≤ 800 0,054 ευρώ

800 < kWh ≤ 1200 0,063 ευρώ

1200 < kWh 0,071 ευρώ

 

Εγώ αυτό που καταλαβαίνω από το κλιμακωτά είναι αυτό:

 

>float kwh; // ας υποθέσουμε ότι έχει κάποια τιμή
float cost = 0;

if (kwh > 1200) {
   cost += (kwh - 1200) * .071;
   kwh = 1200;
}
if (kwh > 800) {
   cost += (kwh - 800) * .063;
   kwh = 800;
}
if (kwh > 0) {
   cost += kwh * .054;
}

 

Αυτά όσον αφορά το κόστος του ρεύματος, τα υπόλοιπα είναι πολλαπλασιασμοί. Επίσης αντί για hardcoded τα βάζεις όλα σε ένα ωραίο map<float, float> ή αντίστοιχο dictionary με keys τα κατώφλια της κλίμακας και values τις χρεώσεις ανα kwh και το κάνεις ένα ωραίο loop χωρίς magic numbers μέσα κλπ κλπ αλλά αυτό είναι άλλο θέμα.

 

Αμα υπολογιζόταν έτσι που δείχνετε και ο φόρος εισοδήματός σας δηλαδή δε θα είχατε αντίρρηση; :P

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Κι εγώ αυτό που καταλαβαίνει ο defacer καταλαβαίνω ως κλιμακωτή χρέωση... αλλά για να τον κάνω να τραβάει λίγο τα μαλλιά του....

 

>
#include <stdio.h>
#define MAGIC	68.4

/* ----------------------------------------------------------------- */
float cost( const int kwh, const int m2 )
{
int diff = kwh - 1200;
return	diff > 0 ? MAGIC + diff * .071 : (diff > -399	? MAGIC + diff * .063
							: (kwh > 0 ? kwh * .054 : 0));
}
/* ----------------------------------------------------------------- */
int main( void )
{
int kwh = 0, m2 = 0, dsc = 0;
float after = .0;

printf("Give data in one line (kwh m2 discount): ");
scanf("%d %d %d", &kwh, &m2, &dsc);

printf("Before discount: %f\n", after = cost( kwh, m2 ) );
printf("After  discount: %f\n", after -= dsc/100.0 * after );

return 0;
}

 

Don't try this at home :lol:

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αν είναι έτσι τα πράγματα,τότε πρέπει να μας εξηγησει ο φίλος πως το εννοούν το κλιμακωτά.

Δεν λέω, μπορεί να καταλάβαμε λάθος. Ωστόσο, αν είναι έτσι, έπρεπε να δίνει ένα παράδειγα τι εννοούμε κλιμακωτά.

Θα μπορούσε κάποιος, εν προκειμένω εσύ, να ισχυριστείς. Χμμμ...κλιμακωτά, οπότε:

Για όποιον έχει καταναλώσει ας πούμε 850 kwh είναι 800*0.054+(kwh-800)*0.063 αλλά ας έδινε ένα παράδειγμα του τι σημαίνει κλιμακωτά.Αλλά ακόμα και ασκήσεις που έχω δει, παρόμοιες και λύνονται με τον παραπάνω τρόπο, δεν αναφέρουν κλιμακωτά! Το αποσαφηνίζουν με ένα παράδειγμα. Κατά συνέπεια, χρειαζόμαστε μία διευκρίνιση από τον δότη της άσκησης τι ακριβώς εννοούμε κλιμακωτά!!!

Αν έχω καταλάβει λάθος ζητώ συγγνώμη και ανασκευάζω... Μένει στον δότη να δώσει την αποσαφήνιση... και μετά θα πράξουμε αναλόγως. Πάντως defacer είναι σωστή η παρατηρησή σου εκτιμώ αλλά κατ'εμέ είναι ασαφές ελαφρώς-βαρέως και χρειαζόμαστε ένα ξεκαθάρισμα επί του θέματος. Να δούμε τι θα γράψει και ο Virxen75 και πάλι εδώ είμαστε!! Πάντως από υλοποιήσεις, άλλο τίποτα...χαχαχαχα, σε τρείς γλώσσες έγινε!!!! Ποιος τη χάρη του φίλου που έδωσε την άσκηση!!!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Κι εγώ αυτό που καταλαβαίνει ο defacer καταλαβαίνω ως κλιμακωτή χρέωση... αλλά για να τον κάνω να τραβάει λίγο τα μαλλιά του....

 

>
#include <stdio.h>
#define MAGIC	68.4

/* ----------------------------------------------------------------- */
float cost( const int kwh, const int m2 )
{
int diff = kwh - 1200;
return	diff > 0 ? MAGIC + diff * .071 : (diff > -399	? MAGIC + diff * .063
							: (kwh > 0 ? kwh * .054 : 0));
}
/* ----------------------------------------------------------------- */
int main( void )
{
int kwh = 0, m2 = 0, dsc = 0;
float after = .0;

printf("Give data in one line (kwh m2 discount): ");
scanf("%d %d %d", &kwh, &m2, &dsc);

printf("Before discount: %f\n", after = cost( kwh, m2 ) );
printf("After  discount: %f\n", after -= dsc/100.0 * after );

return 0;
}

 

Don't try this at home :lol:

ελα εξηγησε το λιγο εε εεε φανταστικε migf1 :-D B)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

if then else...

 

Δεν είναι και τίποτα... και λίγο μαθηματικό τρικ με το MAGIC.

 

 

Γνώμη μου, θα μπορούσε να μην έχει δύο συναρτήσεις για την χρέωση εάν χρησιμοποιούσε default ορίσματα, για το τρίτο όρισμα: ekptosi = 0.

 

Π.χ.

 

>
double theValue theFunction(double firstValue, double secondValue, double ekptosi = 0)

 

Οπότε, εάν θες βάζεις έκπτωση εάν δεν θες δεν βάζεις. Γιατί δύο δεν μπορώ να καταλάβω.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...