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 - bryanrz96

#1
Programación C/C++ / Invertir un vector
2 Diciembre 2015, 21:10 PM
Hola, quisiera si mi programa cumple con lo que me pide el prof.

Crear un programa que pide en input al cliente la dimension del vector de enteros, crea el vector y lo llena con numeros del 1 hasta la dimension ingresada. Una vez que tengo el vector este debe ser pasado a una funcion que invierte el orden.
y aqui mi codigo, no se si cumple con lo que dice y como estructura esta bien???
Gracias
Código (cpp) [Seleccionar]
int main()
{
  int dim;

  cout << "Inserisci la dimensione del vettore:" << endl;
  cin >> dim; // Supongamos que ingrese 10
  int vettore[dim]; // mi vector es de tamagno 10
  cout<<"Vettore Iniziale:"<<endl;

  for(int i=1; i<=dim; i++){
    vettore[i] = i * 1;

    cout << vettore[i] << endl;

  }
    cout<<"Vettore Invertito:"<<endl;
    for(int i=dim; i>0; i--){
    cout<<vettore[i]<<" ";
    cout<<endl;
        }
  }


#2
Problema:
Crear un programa que gestiona un elenco de personas que van ingresadas por el cliente, el cliente ingresa un nombre, apellido y edad para tres personas diferentes.
El programa, una vez ingresados los datos, imprime el elenco ordenado por apellido y sucessivamente por edad.
hasta el momento tengo esto, que me ordena por edad(El mayor)
Código (cpp) [Seleccionar]
struct persone
{
  string nome;
 string cognome;
 int edad;
};


int main ()
{
  persone arreglo[3];

  for (int i =0; i < 3; i++)
  {
      cout<<"Inserte Nombre " <<i+1 <<endl;
      cin>> arreglo[i].nome;
      cout<<"Inserte Cognome " <<i+1 <<endl;
      cin>> arreglo[i].cognome;
      cout<<"Inserte Edad " <<i+1 <<endl;
      cin>> arreglo[i].edad;
  }

  //ordenar  metodo burbuja por edades
  int temp = 0;
  for (int i =0; i < 3; i++)
     for (int j =i+1; j < 3; j++)
        if ( arreglo[i].edad < arreglo[j].edad )
        {
             temp = arreglo[i].edad;
             arreglo[i].edad = arreglo[j].edad;
             arreglo[j].edad = temp;
        }

  //ordenar  metodo burbuja por nombres
  string temp1 = "";
  for (int i =0; i < 3; i++)
     for (int j =i+2; j < 3; j++)
        if ( arreglo[i].nome < arreglo[j].nome )
        {
             temp1 = arreglo[i].nome;
             arreglo[i].nome = arreglo[j].nome;
             arreglo[j].nome = temp1;
        }
string temp2 = "";
  for (int i =0; i < 3; i++)
     for (int j =i+2; j < 3; j++)
        if ( arreglo[i].cognome < arreglo[j].cognome )
        {
             temp1 = arreglo[i].cognome;
             arreglo[i].cognome= arreglo[j].cognome;
             arreglo[j].cognome = temp2;
        }

  for (int i =0; i < 3; i++)
  {
      cout<<i+1<<": Nome " <<arreglo[i].nome<<endl;
      cout<<i+1<<": Cognome " <<arreglo[i].cognome<<endl;
      cout<<i+1<<": Età " <<arreglo[i].edad<<endl;
  }

 return 0;
}

No se donde esta el problema, los apellidos no me concuerdan con los nombres
#3
Porque no me funciona, la ultima parte no me viene,..
ayuda
me imprime 10 veces v
donde esta el problema, quiero que me ordene de menor a mayor
Gracias
Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

void bubble(int v[], int dim)

{
int tmp;
    for(int i=dim-1; i>0; i--)
{
for(int j=0; j<i; j++)
{
    if(v[j]>v[j+1])
{
tmp=v[j];
v[j]=v[j+1];
v[j+1]=tmp;
}
}
}
}

int main() {
int v[]={5,4,2,54,32,33,55,9,66,12};
for(i=0; i<10; i++)
cout<<"v[i]"<<" ";
cout<<endl;

}
#4
Programación C/C++ / Eliminar vocales C++
29 Octubre 2015, 18:29 PM
Que me falta para eliminar las vocales, me invierte la palabra, pero no me imprime la palabra sin vocales.
Aqui el codigo.
Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>
using namespace std;

void inverti(char v[], char ris[])
{
int len=strlen(v);
for(int i=0; i<len; i++)
{
ris[i]=v[len-i-1];

}
ris[len]='\0';
cout<<v<<endl;
cout<<ris<<endl;
}
void toglivocali(char v[], char ris[])
{
int len=strlen(v);
int j=0;
for(int i=0; i<len;i++)
{
if(v[i]=='a' || v[i]=='e' || v[i]=='i' || v[i]=='0' || v[i]=='u')
{
ris[j]=v[i];
j++;
}
}
ris[j]='\0';
cout<<ris<<endl;
}


int main() {

char s1[256];
char s2[256];
char s3[256];
cout<<"dammi stringa"<<endl;
cin>>s1;

inverti(s1,s2);
toglivocali(s2,s3);
cout<<"il risultato finale è:"<<s3<<endl;
cout<<s2;

return 0;
}


Gracias
#5
Programación C/C++ / Re: Calculadora
28 Octubre 2015, 21:44 PM
Cita de: engel lex en 28 Octubre 2015, 21:33 PM
mira tu switch

Código (cpp) [Seleccionar]
switch(op)
{
case '+':{//cuando es "+" divides?


cout<<"risultato:"<<a/b<<endl;//divides directamente en lugar de usar la función?
break;
}


Si, me he confundido con ese paso.
que funcion puedo usar en ves de la que tengo establecida?
Código (cpp) [Seleccionar]
switch(op)
{
case '+':{


cout<<"risultato:"<<a+b<<endl;
break;
}
#6
Programación C/C++ / Re: Calculadora
28 Octubre 2015, 21:30 PM
Cita de: engel lex en 28 Octubre 2015, 21:25 PM
muestra como tienes el código en este momento

El codigo esta asi:
Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

int somma(int a, int b)
{
int ret;
ret = a + b;
return ret;
}
int sottrai(int a, int b)
{
int ret;
ret = a - b;
return ret;
}
int molt(int a, int b)
{
int ret;
ret = a * b;
return ret;
}
double dividi(int a, int b)
{
double ret;
ret = (double)a/b;
return ret;
}
int main() {
int a,b;
char op;

    cout<<"Inserisci il primo numero:";
cin>>a;
cout<<"Inserisci il secondo numero:";
cin>>b;
cout<<"Scegli l'operatore: ";
cin>>op;
switch(op)
{
case '+':{


cout<<"risultato:"<<a/b<<endl;
break;
}
case '-':{


cout<<"risultato:"<<a-b<<endl;
break;
}
case '*':{

cout<<"risultato:"<<a*b<<endl;
break;
}case '/':{

cout<<"risultato:"<<a/b<<endl;

              break;
}


    }

return 0;
}


Creo que luego del int main debo declarar una variable, pero no se cual...
y para que me imprima "no es posible efectuar la operacion" cuando divido para cero no se donde poner el If para que actue.
#7
Cita de: Slava_TZD en 28 Octubre 2015, 20:50 PM
Código (cpp) [Seleccionar]
#include <iostream>
#include <algorithm>
#include <string>

bool IsParenthesesOrDash(char c)
{
    switch(c)
    {
    case 'a':
    case 'e':
    case 'i':
    case 'o':
    case 'u':
        return true;
    default:
        return false;
    }
}

int main()
{
    std::string str("murcielago");
    str.erase(std::remove_if(str.begin(), str.end(), &IsParenthesesOrDash), str.end());
    std::cout << str << std::endl;
}


https://stackoverflow.com/questions/5891610/how-to-remove-characters-from-a-string

Me parece bien, pero yo quiero introducir la palabra, mediante el teclado., no de manera directa en el codigo.
Gracias
#8
Cita de: engel lex en 28 Octubre 2015, 20:35 PM
te explico... es importante que indiques el error, ¿por qué? porque el error explica el error que hubo
Código (cpp) [Seleccionar]
void invertir (char p [256])
{
    int i;
    int largo=strlen(p)-1;
    cout<<("al reves:\n");
    for(i=0; i<=largo; i++)
    {
        if (p[i]=='a' || p[i]=='e' ||  p[i]=='i' ||p[i]=='o'||p[i]=='u')
        {
            p[i]=' ';
        }
    }
    for(i = largo; i >= 0; --i)
    {
        cout<<("%c",p[i]);
    }
}


me dice lo siguiente en error de 
Código (cpp) [Seleccionar]
cout<<("%c",p[i]); "left operand of comma operator has no effect. , que hago?
#9
Programación C/C++ / Re: Calculadora
28 Octubre 2015, 20:59 PM
Cita de: engel lex en 28 Octubre 2015, 20:32 PM
en la división, linea 25

Ya lo puse, pero no me viene el resultado, si divido 5/2 me da 2.
que puedo hacer?
#10
Cita de: engel lex en 28 Octubre 2015, 20:35 PM
te explico... es importante que indiques el error, ¿por qué? porque el error explica el error que hubo

Código (cpp) [Seleccionar]
void invertir (char p [256])
{
    int i;
    int largo=strlen(p)-1;
    cout<<("al reves:\n");
    for(i=0; i<=largo; i++)
    {
        if (p[i]=='a' || p[i]=='e' ||  p[i]=='i' ||p[i]=='o'||p[i]=='u')
        {
            p[i]=' ';
        }
    }
    for(i = largo; i >= 0; --i)
    {
        cout<<("%c",p[i]);
    }
}


Me dice "left operand of comma operator has no effect."

No se.