Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- void somas(float *v, int n, int ns, short int t, float *r, float *dr){
- int c;
- r[0] = 0; dr[0] = 0;
- for (c = 0; c < ns; c++)
- r[0] += v[2*c];
- for (c = ns; c < n; c++)
- r[0] -= v[2*c];
- if (t == 1)
- for (c = 0; c < n; c++)
- dr[0] += v[2*c + 1];
- if (t == 2){
- for (c = 0; c < n; c++)
- dr[0] += v[2*c + 1]*v[2*c + 1];
- dr[0] = sqrt(dr[0]);
- }
- return;
- }
- void multiplic(float *v, float *r, float *dr, int n, int nd, short int t){
- int c;
- r[0] = 1; dr[0] = 0;
- for (c = 0; c < nd; c++)
- r[0] *= v[2*c];
- for (c = nd; c < n; c++)
- r[0] /= v[2*c];
- if(t == 1)
- for (c = 0; c < n; c++)
- dr[0] += v[2*c +1]/v[2*c];
- if(t == 2){
- for (c = 0; c < n; c++)
- dr[0] += (v[2*c +1]/v[2*c])*(v[2*c +1]/v[2*c]);
- dr[0] = sqrt(dr[0]);
- }
- dr[0] *= r[0];
- return;
- }
- void trat(float *v, float *r, float *dr, int n, short int t){
- int c;
- r[0] = 0; dr[0] = 0;
- for (c = 0; c < n; c++)
- r[0] += v[c];
- r[0] /= n;
- if (t == 1){
- for (c = 0; c < n; c++){
- if (v[c] < r[0])
- dr[0] += r[0] - v[c];
- if (v[c] > r[0])
- dr[0] += v[c] - r[0];
- }
- }
- if (t == 2){
- for (c = 0; c < n; c++)
- dr[0] += (v[c] - r[0])*(v[c] - r[0]);
- dr[0] = sqrt(dr[0]);
- }
- dr[0] /= n;
- return;
- }
- int main(){
- float r, dr, *v;
- int n, c, nn;
- short int t=0, T=0;
- setlocale(LC_ALL, "");
- while (T != 1 && T != 2 && T != 3){
- cout<<"O que dezejas fazer?\n1 - tratamento de dados\n2 - somas\n3 - multiplicações\n";
- cin>>T;
- if (T != 1 && T != 2 && T != 3)
- cout<<"Insira um valor válido"<<endl;
- }
- cout<<endl;
- while (t != 1 && t != 2){
- cout<<"Desejas utilizar o desvio máximo (1) ou o desvio padrão (2)?\n";
- cin>>t;
- if (t != 1 && t != 2)
- cout<<"Insira um valor válido"<<endl;
- }
- cout<<endl<<"Quantos valores diferentes são?"<<endl;
- cin>>n;
- if (T == 1){
- v = new float [n];
- for (c = 0; c < n; c++){
- cout<<"Qual é o "<<c+1<<"° valor?"<<endl;
- cin>>v[c];
- }
- trat(v, &r, &dr, n, t);
- cout<<endl<<endl<<"O valor obtido do tratamento de dados foi: ";
- cout<<r<<" +- "<<dr<<endl<<endl;
- }
- else{
- v = new float[2*n];
- if (T == 2){
- cout<<"Quantos números são positivos?"<<endl;
- cin>>nn;
- cout<<endl<<"Digite primeiro todos os números positivos e, em seguida, os negativos:"<<endl;
- for (c = 0; c < n; c++){
- cout<<"Qual é o "<<c+1<<"° valor?"<<endl;
- cin>>v[2*c];
- cout<<"E a sua incerteza?"<<endl;
- cin>>v[2*c + 1];
- }
- somas(v, n, nn, t, &r, &dr);
- }
- if (T == 3){
- cout<<"Quantos números serão multiplicados?"<<endl;
- cin>>nn;
- cout<<endl<<"Digite primeiro todos os valores a serem multiplicados e, em seguida, os a serem divididos:"<<endl;
- for (c = 0; c < n; c++){
- cout<<"Qual é o "<<c+1<<"° valor?"<<endl;
- cin>>v[2*c];
- cout<<"E a sua incerteza?"<<endl;
- cin>>v[2*c + 1];
- }
- multiplic(v, &r, &dr, n, nn, t);
- }
- cout<<endl<<endl<<"O valor obtido com a operação foi: ";
- cout<<r<<" +- "<<dr;
- }
- delete v;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement