Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.13 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <string>
  4. #include <vector>
  5. #include <sstream>
  6. #include <utility>
  7. using namespace std;
  8.  
  9.  
  10.     //separazione lettura
  11.     vector<string> explode(string & stringa) {
  12.  
  13.     ///variabile di assegnazione temporanea
  14.     string temp = "";
  15.  
  16.     ///vettore risultante
  17.     vector<string> result;
  18.  
  19.     ///ciclo di analisi carattere a carattere
  20.     ///e inserimento nel vettore a blocchi
  21.     ///separati dallo spazio
  22.     for (char & carattere : stringa) {
  23.         if (carattere != ' ') {
  24.             temp = temp + carattere;
  25.         }
  26.         if (carattere == ' ') {
  27.             result.push_back(temp);
  28.             temp = "";
  29.         }
  30.     }
  31.  
  32.     result.push_back(temp);
  33.     temp = "";
  34.  
  35.     return result;
  36.  
  37.  
  38. }
  39.  
  40.     //differenza
  41.     float differenza(float x, float y) {
  42.         if (x == y) {
  43.             return 0;
  44.         }
  45.  
  46.         if (x > y) {
  47.             return x - y;
  48.         }
  49.  
  50.         if (y > x) {
  51.             return y - x;
  52.         }
  53.     }
  54.  
  55. //SCOPO
  56. /*
  57. calcolo dilatazione termica lineare
  58. calcolo dilatazione termica superficiale
  59. calcolo dilatazione termica volumica
  60. */
  61.  
  62.  
  63. int main()
  64. {
  65.     //variabili di lavoro
  66.     string * lettura = new string("");
  67.     string * lunghezza_ = new string("");
  68.     string * altezza_ = new string("");
  69.     string * larghezza_ = new string("");
  70.     vector<string> * data = new vector<string>(3);
  71.     float  lunghezza = 0;
  72.     float  altezza = 0;
  73.     float  larghezza = 0;
  74.     float  temperatura;
  75.     float  coefficiente_dilatazione;
  76.     float  temperatura_finale;
  77.     float  deltaLunghezza;
  78.     float  deltaAltezza;
  79.     float  deltaLarghezza;
  80.     bool   check = true;
  81.  
  82.     //acquisizione
  83.  
  84.     cout << endl << "inserisci le dimensioni dell'oggetto ( x -> y -> z ) e per trascurarle inserisci 0" << endl;
  85.     getline(cin, *lettura);
  86.     if (*lettura == "0 0 0") {
  87.         cout << "[ERRORE]oggetto non valido" << endl << endl;
  88.         exit(0);
  89.     }
  90.  
  91.     cout << "inserite la temperatura in gradi centigradi e il coefficiente di dilatazione termica" << endl;
  92.     cin >> temperatura >> coefficiente_dilatazione;
  93.     cout << "a che temperatura vuoi portare l'oggetto per verificarne la dilatazione?" << endl;
  94.     cin >> temperatura_finale;
  95.  
  96.     //separazione dati nelle apposite stringhe di lavoro
  97.     *data = explode(*lettura);
  98.     *lunghezza_ = (*data)[0];
  99.     *altezza_ = (*data)[1];
  100.     *larghezza_ = (*data)[2];
  101.     delete data;
  102.  
  103.     //conversione in float
  104.     try {
  105.  
  106.         lunghezza = stof(*lunghezza_);
  107.         altezza = stof(*altezza_);
  108.         larghezza = stof(*larghezza_);
  109.         delete lunghezza_;
  110.         delete larghezza_;
  111.         delete altezza_;
  112.  
  113.     }
  114.     catch (invalid_argument) {
  115.  
  116.         cout << "[ERRORE]hai inserito qualcosa che non si puo convertire con successo in un numero" << endl << endl;
  117.         exit(0);
  118.     }
  119.  
  120.     //calcolo dilatazione lineare sulla lunghezza
  121.     deltaLunghezza = (coefficiente_dilatazione / temperatura)*lunghezza*(differenza(temperatura,temperatura_finale));
  122.     cout << endl << deltaLunghezza << endl;
  123.  
  124.     //calcolo dilatazione lineare sull'altezza
  125.     deltaAltezza = (coefficiente_dilatazione / temperatura)*altezza*(differenza(temperatura, temperatura_finale));
  126.     cout << endl << deltaAltezza << endl;
  127.  
  128.     //calcolo dilatazione lineare sulla larghezza
  129.     deltaLarghezza = (coefficiente_dilatazione / temperatura)*larghezza*(differenza(temperatura, temperatura_finale));
  130.     cout << endl << deltaLarghezza << endl;
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement