Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- #include <string>
- #include <vector>
- #include <sstream>
- #include <utility>
- using namespace std;
- //separazione lettura
- vector<string> explode(string & stringa) {
- ///variabile di assegnazione temporanea
- string temp = "";
- ///vettore risultante
- vector<string> result;
- ///ciclo di analisi carattere a carattere
- ///e inserimento nel vettore a blocchi
- ///separati dallo spazio
- for (char & carattere : stringa) {
- if (carattere != ' ') {
- temp = temp + carattere;
- }
- if (carattere == ' ') {
- result.push_back(temp);
- temp = "";
- }
- }
- result.push_back(temp);
- temp = "";
- return result;
- }
- //differenza
- float differenza(float x, float y) {
- if (x == y) {
- return 0;
- }
- if (x > y) {
- return x - y;
- }
- if (y > x) {
- return y - x;
- }
- }
- //SCOPO
- /*
- calcolo dilatazione termica lineare
- calcolo dilatazione termica superficiale
- calcolo dilatazione termica volumica
- */
- int main()
- {
- //variabili di lavoro
- string * lettura = new string("");
- string * lunghezza_ = new string("");
- string * altezza_ = new string("");
- string * larghezza_ = new string("");
- vector<string> * data = new vector<string>(3);
- float lunghezza = 0;
- float altezza = 0;
- float larghezza = 0;
- float temperatura;
- float coefficiente_dilatazione;
- float temperatura_finale;
- float deltaLunghezza;
- float deltaAltezza;
- float deltaLarghezza;
- bool check = true;
- //acquisizione
- cout << endl << "inserisci le dimensioni dell'oggetto ( x -> y -> z ) e per trascurarle inserisci 0" << endl;
- getline(cin, *lettura);
- if (*lettura == "0 0 0") {
- cout << "[ERRORE]oggetto non valido" << endl << endl;
- exit(0);
- }
- cout << "inserite la temperatura in gradi centigradi e il coefficiente di dilatazione termica" << endl;
- cin >> temperatura >> coefficiente_dilatazione;
- cout << "a che temperatura vuoi portare l'oggetto per verificarne la dilatazione?" << endl;
- cin >> temperatura_finale;
- //separazione dati nelle apposite stringhe di lavoro
- *data = explode(*lettura);
- *lunghezza_ = (*data)[0];
- *altezza_ = (*data)[1];
- *larghezza_ = (*data)[2];
- delete data;
- //conversione in float
- try {
- lunghezza = stof(*lunghezza_);
- altezza = stof(*altezza_);
- larghezza = stof(*larghezza_);
- delete lunghezza_;
- delete larghezza_;
- delete altezza_;
- }
- catch (invalid_argument) {
- cout << "[ERRORE]hai inserito qualcosa che non si puo convertire con successo in un numero" << endl << endl;
- exit(0);
- }
- //calcolo dilatazione lineare sulla lunghezza
- deltaLunghezza = (coefficiente_dilatazione / temperatura)*lunghezza*(differenza(temperatura,temperatura_finale));
- cout << endl << deltaLunghezza << endl;
- //calcolo dilatazione lineare sull'altezza
- deltaAltezza = (coefficiente_dilatazione / temperatura)*altezza*(differenza(temperatura, temperatura_finale));
- cout << endl << deltaAltezza << endl;
- //calcolo dilatazione lineare sulla larghezza
- deltaLarghezza = (coefficiente_dilatazione / temperatura)*larghezza*(differenza(temperatura, temperatura_finale));
- cout << endl << deltaLarghezza << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement