summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp')
-rw-r--r--cpp/compito.cpp101
1 files changed, 101 insertions, 0 deletions
diff --git a/cpp/compito.cpp b/cpp/compito.cpp
new file mode 100644
index 0000000..ce3863d
--- /dev/null
+++ b/cpp/compito.cpp
@@ -0,0 +1,101 @@
+#include <iostream>
+#define N 5
+
+using namespace std;
+
+struct puntiVendita {
+ string citta;
+ float entrate;
+ float uscite;
+};
+
+struct puntiVendita pV[N];
+bool utili(struct puntiVendita p);
+void carica();
+void ord();
+void visualizza();
+
+int main()
+{
+ carica();
+
+ for(int i = 0; i < N; i++) {
+ if(!utili(pV[i]))
+ cout << "Attenzione" << endl;
+ }
+
+ ord();
+ visualizza();
+
+ return 0;
+}
+
+bool utili(struct puntiVendita p)
+{
+ return ((p.uscite > p.entrate) ? false : true);
+}
+
+void carica()
+{
+ pV[0].citta = "Catania";
+ pV[0].entrate = 380;
+ pV[0].uscite = 245;
+ pV[1].citta = "Ragusa";
+ pV[1].entrate = 231;
+ pV[1].uscite = 175;
+ pV[2].citta = "Siracusa";
+ pV[2].entrate = 214;
+ pV[2].uscite = 227;
+ pV[3].citta = "Messina";
+ pV[3].entrate = 294;
+ pV[3].uscite = 189;
+ pV[4].citta = "Enna";
+ pV[4].entrate = 145;
+ pV[4].uscite = 175;
+}
+
+void ord()
+{
+ struct puntiVendita t;
+ bool s;
+ int last = N-1;
+
+ do {
+ s = false;
+
+ for(int i = 0; i < last; i++) {
+ if(pV[i].entrate > pV[i+1].entrate) {
+ t.citta = pV[i].citta;
+ t.entrate = pV[i].entrate;
+ t.uscite = pV[i].uscite;
+
+ pV[i].citta = pV[i+1].citta;
+ pV[i].entrate = pV[i+1].entrate;
+ pV[i].uscite = pV[i+1].uscite;
+
+
+ pV[i+1].citta = t.citta;
+ pV[i+1].entrate = t.entrate;
+ pV[i+1].uscite = t.uscite;
+
+ s = true;
+ }
+ }
+
+ last--;
+ } while(s);
+}
+
+void visualizza()
+{
+ for(auto i : pV) {
+ cout << i.entrate << endl;
+ }
+}
+
+
+
+
+
+
+