Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - novatus84

#11
Programación C/C++ / Dudas varias programa
24 Noviembre 2014, 19:20 PM
Muy buenas estoy haciendo una practica de fibonacci tengo lo siguiente después de mucha comedura de cerebro...
Código (cpp) [Seleccionar]
#include <vector>
#include <math.h>
#include <iostream>
using namespace std;


void fibonacci (int x, int y , vector<int>& v, int n){
    int num1 = x;
    int num2 = y;
    int aux;
    v.push_back(x);
    v.push_back(y);
    for (int d = n-2; d > 0; --d){
        aux = num1 + num2;
        num1 = num2;
        num2 = aux;
        v.push_back(aux);
    }
}

int main(){
    int x;
    int y;
    int n;
    cout << "Enter the first term: \n";
    cin >> x;
    cout << "Enter the second term: \n";
    cin >> y;
    cout << "Enter the number of terms: \n";
    cin >> n;
    vector<int> v;
    fibonacci(x, y, v , n);
    cout << endl << "The numbers for the sequence asked are: " << endl;
    for (int i = 0; i <v.size(); ++i){
        cout << v[i] << endl;
    }
}


¿como puedo sacar del main la lectura de los datos?
¿como hacer que no se pueda introducir letras, que solo lea datos?
en fin mejorarlo que llevo tiempo con ello y no me apaño no hacen mas que salirme errores, Gracias de antemano, saludos
#12
Programación C/C++ / Re: consejos sobre programa
26 Octubre 2014, 20:42 PM
El problema que tengo ahora es al meter el valor erróneo de a == letra, he puesto un break para acabar el programa, realmente quiero que me vaya al loop de while para volver a empezarlo de nuevo, como lo puedo hacer? lo mismo con b y c.
Código (cpp) [Seleccionar]

#include <iostream>
#include <math.h>
using namespace std;


int main(){
   
   
    double a,b,c;
    char z;
   
   
    do{
       
        cout<<"Please enter value of a"<<endl;
        cin>>a;
            if(!cin){
                cout << "a is not a number" << endl;
                break;}
        cout<<"Please enter value of b"<<endl;
        cin>>b;
            if(!cin){
                cout << "b is not a number" << endl;
                break;}
        cout<<"Please enter value of c"<<endl;
        cin>>c;
            if(!cin){
                cout << "c is not a number" << endl;
                break;}
        double operation=pow(b,2)-4*a*c;
       
        if(a!=0){
            if(operation<0){
                cout<<"The solution has imaginary roots";
            }else{
                double x1=(-b+sqrt(operation))/(2*a);
                double x2=(-b-sqrt(operation))/(2*a);
                cout <<"X1 = " <<x1;
                cout << "\n";
                cout <<"X2 = " <<x2;
            }
        }else {
            cout<<"The value of a can not be 0";
        }
        cout << "\nDo you want to do another equation?";
        cout << "\ntouch 'y' For 'YES' ---- 'n' For 'Exit': ";
        cin  >> z;
        cout << "\n";
       
    }while (z == 'y' || z == 'Y');
   
   
    return 0;
}
#13
Programación C/C++ / Re: consejos sobre programa
26 Octubre 2014, 20:03 PM
Como conseguir que el usuario no introduzca letras (que sea error), que solo pueda introducir números no lo consigo ni con el post de antes.

Muchas gracias
#14
Programación C/C++ / Re: consejos sobre programa
26 Octubre 2014, 19:42 PM
Cita de: novatus84 en 26 Octubre 2014, 18:46 PM
Porque me da error el segundo else? no me hace ni el calculo? Gracias por la ayuda.


Código (cpp) [Seleccionar]
#include <iostream>
#include <math.h>
using namespace std;


int main(){
   
   
   double a,b,c;
   char n;
   
   
   do{
       
   cout<<"Ingresa a"<<endl;
   cin>>a;
   cout<<"Ingresa b"<<endl;
   cin>>b;
   cout<<"Ingresa c"<<endl;
   cin>>c;
   double disc=pow(b,2)-4*a*c;
   
       if(a!=0){
       if(disc<0){
           cout<<"Tiene raices imaginarias";
       }else{
           double x1=(-b+sqrt(disc))/(2*a);
           double x2=(-b-sqrt(disc))/(2*a);
           cout<<"X1 = "<<x1<<" X2 = "<<x2;
       }
       }else {
       cout<<"El coeficiente a debe ser diferente a 0";
   }
       cout << "\nquieres hacer otra ecuacion?";
       cout << "\nteclea 'y' para 'Si' -- 'n' para 'No': ";
       cin  >> n;
       cout << "\n";
       
   }while (n == 'y' || n == 'Y');
   
   
   return 0;
   }


#15
Programación C/C++ / Re: consejos sobre programa
26 Octubre 2014, 18:46 PM
Porque me da error el segundo else? no me hace ni el calculo? Gracias por la ayuda.


Código (cpp) [Seleccionar]
#include <iostream>
#include <math.h>
using namespace std;


int main(){
   
   
   double a,b,c;
   char n;
   
   
   do{
       
   cout<<"Ingresa a"<<endl;
   cin>>a;
   cout<<"Ingresa b"<<endl;
   cin>>b;
   cout<<"Ingresa c"<<endl;
   cin>>c;
   double disc=pow(b,2)-4*a*c;
   
       if(a!=0){
       if(disc<0){
           cout<<"Tiene raices imaginarias";
       }else{
           double x1=(-b+sqrt(disc))/(2*a);
           double x2=(-b-sqrt(disc))/(2*a);
           cout<<"X1 = "<<x1<<" X2 = "<<x2;
       }
       }else {
       cout<<"El coeficiente a debe ser diferente a 0";
   }
       cout << "\nquieres hacer otra ecuacion?";
       cout << "\nteclea 'y' para 'Si' -- 'n' para 'No': ";
       cin  >> n;
       cout << "\n";
       
   }while (n == 'y' || n == 'Y');
   
   
   return 0;
   }

#16
Programación C/C++ / consejos sobre programa
26 Octubre 2014, 13:31 PM
buenas tengo realizado este programa:

Código (cpp) [Seleccionar]
#include <iostream>
#include <math.h>
using namespace std;
int main(){
   double a,b,c;
   cout<<"Ingresa a"<<endl;
   cin>>a;
   cout<<"Ingresa b"<<endl;
   cin>>b;
   cout<<"Ingresa c"<<endl;
   cin>>c;
   double disc=pow(b,2)-4*a*c;
   if(a!=0){
       if(disc<0){
           cout<<"Tiene raices imaginarias";
       }else{
           double x1=(-b+sqrt(disc))/(2*a);
           double x2=(-b-sqrt(disc))/(2*a);
           cout<<"X1 = "<<x1<<" X2 = "<<x2;
       }
   }else{
       cout<<"El coeficiente a debe ser diferente a 0";
   }
   return 0;
}


Mis preguntitas son las siguientes:
Como hacer un infinite main loop para que al acabar pregunte al usuario si quiere hacer mas ecuaciones o salir?
Y como puedo conseguir que el usuario no pueda meter letras para que de un error, gracias de antemano saludos
#17
Muchas gracias!!!! ya lo tengo perfecto, cuando se ve después se ve de otra forma como si fuera una tontería que la era.... jejejej. lo dicho muchas gracias!!
#18
Buenas solo llevo 2 días con c ++ y necesito consejos ya que estoy un poco bloqueado, tengo lo siguiente:
#include <iostream>

using namespace std;

int main() {
    double firstnum; double seconnum; double thirnum; double fournum;
    string operation; string operation2;
    double plus ;double minus; double mul; double div;
   
   
    cout << "Please enter 2 operations: ";
    cin >> firstnum >> operation >> seconnum; // numbers for first operation
    cin >> thirnum >> operation2 >> fournum; // numbers for second numbers
   
    if (operation=="+" || operation=="plus" ) {
        plus = firstnum + seconnum;
        cout << "The first sum is: " << plus << endl;}
   
    if  (operation=="-" || operation=="minus") {
        minus = firstnum - seconnum;
        cout << "The first minus is: " << minus << endl;}
   
    if (operation=="*" || operation=="mul") {
        mul = firstnum * seconnum;
        cout << "The first multiplication is: " << mul << endl;}
    if (operation=="/" || operation=="div"){
        if (seconnum==0) {
            cout << "cero is impossible to operate" << endl;  }
       
        div = firstnum / seconnum ;
        cout << "The first div is: " << div << endl; }
   
   
    if (operation2=="+" || operation2=="plus" ) {
        plus = thirnum + fournum;
        cout << "The second sum is: " << plus << endl;}
   
    if  (operation2=="-" || operation2=="minus") {
        minus = thirnum - fournum;
        cout << "The second minus is: " << minus << endl;}
   
    if (operation2=="*" || operation2=="mul") {
        mul = thirnum * fournum;
        cout << "The second multiplication is: " << mul << endl;}
    if (operation2=="/" || operation2=="div"){
        if (fournum==0) {
            cout << "cero is impossible to operate" << endl; }
       
        div = thirnum / fournum;
        cout << "The second div is: " << div << endl; ;
    }
}

El problema que meto la primera operación al poner una division entre 0 quiero que siga con la segunda operación y no que me diga que es infinito, esta un poco guarrete pero para 2 días que llevo me doy por satisfecho al día de hoy, consejos ayudas? gracias de antemano