elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: 1 2 [3] 4 5 6 7 8
21  Programación / Programación C/C++ / invertir el orden de un vector en: 22 Junio 2013, 17:07 pm
Hola,
quiero hacer un programa que invierte un vector,

lo he echo pero no lo hace correctamente, ¿Qué errada hay? :S

¡Gracias!

Código:
#include<iostream>
#include<vector>
using namespace std;

    void reverse(vector<int>&A){
     int i=0;
     int last = A.size()-1;
     
    while(i<last){
             int z=A[i];
             A[i]=A[last];
             A[last]=z;
             i++;
             last=last-1;
             }   
         }
   
   
    int main(){
    int n,i,e;
    cout << endl << "Entra el numero de elementos del vector...";
    cin >> n;
    vector<int> v(n);
    for(i=1;i<=n;i++){
                     cout << "Entre el elemento " << i << " del vector...";
                     cin >> e;
                     v[i] = e;}
   
    reverse(v);
    for(i=1;i<n;i++){
    cout<<v[i]<<",";}
   
    system("pause");
    return 0;}
   
22  Programación / Programación C/C++ / Re: pequeña duda sobre matriz simétrica c++ en: 18 Abril 2013, 19:13 pm
¡muchas gracias por corregir el error! ;)
23  Programación / Programación C/C++ / pequeña duda sobre matriz simétrica c++ en: 18 Abril 2013, 18:05 pm
Hola,

he echo un programa donde dada una matriz devuelva "si" si es simétrica y "no" si no lo es. Pero solo me imprime por pantalla "no" cuando no lo es, y cuando si lo es no me imprime nada. ¿Qué debo rectificar para que me imprima por pantalla "si" cuando si lo es?

Código:
#include<iostream>
#include <cstdlib>
#include<vector>
#include<algorithm>
#include <iomanip>
using namespace std;
 
 
 bool Esdiagonal(vector<vector<int> >M){
  int i=0,j;
  bool p=true;
   while(i<M.size()-1 and p){
       j=i+1;
       while(j<M.size() and p){
                              if(M[i][j]!=M[j][i]){
                                                             p=false;
                                                             }
                             
              }
       
       }
       return p;

}


int main(){
    int m,n;
    cout<<"introduzca el numero de filas"<<endl;
    cin>>m;
    cout<<"introduzca el numero de columnas"<<endl;
    cin>>n;
    vector<vector<int> > matriz ( m, vector<int> ( n ) );
   
    int k = 0;
  for ( int i = 0; i < m; i++ ) {
    for ( int j = 0; j < n; j++ ){
      cout << "["<<i+1<<"]"<< "["<<j+1<<"]= ";/*activa esta y la siguiente para entrar a mano*/
      cin >>matriz[i][j];
      //matriz[i][j] = k++;/*y desactivas esta*/
    }
  }
 


  cout<<'\n';
  for ( int i = 0; i < n; i++ ) {
    for ( int j = 0; j < m; j++ )
      cout<< setw ( 3 ) << matriz[i][j] <<' ';
    cout<<'\n';
  }
  if(Esdiagonal(matriz)){cout<<"si"<<endl;}
  else{cout<<"no"<<endl;}
   // muestra(matriz,n,m);
   // transpon(matriz,n,m);
 
    system("pause");
    return 0;
  }
 

¡Gracias por la ayuda!
24  Programación / Programación C/C++ / Re: duda matrices c++ en: 18 Abril 2013, 18:02 pm
¡¡gracias!!
25  Programación / Programación C/C++ / duda matrices c++ en: 15 Abril 2013, 18:03 pm
Hola,

Dada una matriz de notas, donde las filas son el nº de alumnos y las columnas el nº de asignaturas , para calcular la nota media por alumno se haría:

Código:
vector<vector<double> >notas(n, vector<double>(m));
for(int i=0; i<n; i++){
double suma=0;
for (int j=0; j<m; j++){
suma=suma+notas[i][j];
}

}

Ahora bien, para calcular la nota media por asignaturas, he pensado de hacerlo de dos maneras, me gustaría que me dijerais si está bien de las dos maneras...

Código:
vector<vector<double> >notas(n, vector<double>(m));
for(int i=0; i<m; i++){
double suma=0;
for (int j=0; j<n; j++){
suma=suma+notas[i][j];
}

}

o
con solo cambiar los subíndices ya basta.
Código:
vector<vector<double> >notas(n, vector<double>(m));
for(int i=0; i<n; i++){
double suma=0;
for (int j=0; j<m; j++){
suma=suma+notas[j][i];
}

}

Gracias de antemano :)
26  Programación / Programación C/C++ / ayuda con programación orientada a objetos c++ en: 31 Marzo 2013, 00:17 am
Hola, tengo la especificación de una aplicación práctica pero no se como implementar una acción concreta.

Código:
class Data {
 int dia, mes, año;
 public:
 Data (int d, int m, int a);
 // Pre: {1<=d<=31 i 1<=m<=12 i a>=1900}
 // Post: {Construye una data a partir del día d, mes m y año a}
 
int Dia ();

 int Mes ();

 int Año ();    }

class Empleado {
 int dni;
 string nom; // nombre completo del empleado
 string dept; //nombre del departamento al cual pertenece
 Data naci; // data de nacimiento
 int sueldo, trienios; // sueldo que cobra y nombre de los trienios
 
public:
 Empleado (int d, string n, Data dn, int s, string dp, int t);
 // Pre: {d>0 i s>0 i t>=0}
 // Post: {Construye un empleado con DNI d, nombre n, data de nacimiento dn,
 saldo s i trienios t}
 int Dni ();
string Nombre ();
Data Nacimiento ();
 int Sueldo ();
 // Pre: {Ninguna}
string Departament ();
 // Pre: {Ninguna}
 // Post: {Devuelve el departamento del empleado}
 int Trienios ();
void ModificarSueldo (int s);
 // Pre: {s>0}
 // Post: {Substituye el sueldo que tenia el empleado por el sueldo nuevo s}
 void ModificaTrienios (int t);
 // Pre: {t>=0}
 // Post: {Substituye el nombre de trienios que tenia el empleado por
 el nuevo nombre t}
}

class Departamento {
 string nombre;
 int gefe; // dni del empleado que es el gefe del departamento
 public:
 Departamento (string n, int c);
 // Pre: {d>0}
 // Post: {Construye el departamento con nombre n y con DNI del gefe d}

 string NombreDepartamento ();

 int GefeDepartamento ();}

class Empresa {

 vector<Empleat> empls;
 vector<Departament> depts;

 public;

 Empresa (vector<Empleat> &emp, vector<Departamernt> &dep);
}
}

Quiero crear una acción
Código:
void accion (Empresa & emp) 
que duplique el sueldo de los empleados nacidos antes del 1971, incremente el número de trienios en uno de los empleados nacido el 20 de febrero y que incremente el sueldo en una tercer parte ( + 1/3) a todos los empleados que son gefes de algún departamento.


¡Gracias por vuestra ayuda!
27  Programación / Programación C/C++ / ejercicio bucle while en: 19 Marzo 2013, 14:22 pm
Hola,
tengo unas cuestiones en resolver el siguiente ejercicio.

I. Desarrollar un programa que lea una lista de enteros menores de 1000 que
acabará cuando se den las tres condiciones siguientes:
1) Se han encontrado al menos 5 múltiplos de 3 o de 7.
2) El número mayor es al menos 10 veces más grande que el número menor.
3) El promedio de los números pares supera al de los impares.

II. Cuando las tres condiciones se den y se termine la lectura de la lista de enteros se deberá:
• Escribir en pantalla y en orden descendente todos los números múltiplos de 5 entre el número
mayor y el menor.
• Escribir en pantalla la lista de todos los números impares mayores del promedio y menores
del mayor de la siguiente manera: En el primer renglón el primer número, en el segundo
reglón dos, el segundo y tercero, y así sucesivamente.
• Decir si existe algún divisor común de los números mayor y menor. Si existe decir cuál.


¿Cómo cuento el valor mayor y menor de una lista sin usar vectores?

En II, que debo hacer poner en el mismo bucle while al final las tres condiciones con and y cout.

Código:
#include<iostream>
using namespace std;


int main(){
    int i=0,s=0,p;
   
    while(i<1000){
   
    if((i%3==0)>=5){return 0;} //apartado 1
    else if((i%3==0)>=5){return 0;}
   
   //apartado 2 ?
   
    else if(if(i%2==0)){{p=p+1;}//apartado 3
   
    else{s=s+1;}
    return 0;}
             
                i++; }
   
    system("PAUSE");
    return 0;}


Gracias por la ayuda :)
28  Programación / Programación C/C++ / Re: transponer matriz c++ en: 19 Marzo 2013, 00:28 am
muchas gracias  :D
29  Programación / Programación C/C++ / Re: Duda en programa uso char en: 19 Marzo 2013, 00:11 am
Muchas gracias por la respuesta :D

Lo único es que debería especificar las variables (letras del abecedario).

Saludos!
30  Programación / Programación C/C++ / Duda en programa uso char en: 18 Marzo 2013, 20:48 pm
Hola,
Tengo que realizar un programa el cual 2 dada un carácter leído desde teclado devolver su lugar en el alfabeto (a=1, z=26) independientemente si es mayúscula o minúscula. Si no es letra devolver el valor 0 ó si es un espacio en blanco devolver el valor -1.

Mi problema está que no me quedan caracteres para utilizar, ya que si utilizo 'ñ' (que no está en el alfabeto) me da un error del tipo stray '\347' creo que es debido a que char no puede guardar el valor en la letra 'ñ'.

Aquí hasta donde he llegado:
Citar
#include<iostream>
using namespace std;
int main(){
char ñ,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z;
cin>>ñ;
if(ñ=='a' or ñ=='A'){cout<<"1"<<endl;}
else if(ñ=='b' or ñ=='B'){cout<<"2"<<endl;}
else if(ñ=='c' or ñ=='C'){cout<<"3"<<endl;}
else if(ñ=='d' or ñ=='D'){cout<<"4"<<endl;}
else if(ñ=='e' or ñ=='E'){cout<<"5"<<endl;}
else if(ñ=='f' or ñ=='F'){cout<<"6"<<endl;}
else if(ñ=='g' or ñ=='G'){cout<<"7"<<endl;}
else if(ñ=='h' or ñ=='H'){cout<<"8"<<endl;}
else if(ñ=='i' or ñ=='I'){cout<<"9"<<endl;}
else if(ñ=='j' or ñ=='J'){cout<<"10"<<endl;}
else if(ñ=='k' or ñ=='K'){cout<<"11"<<endl;}
else if(ñ=='l' or ñ=='L'){cout<<"12"<<endl;}
else if(ñ=='m' or ñ=='M'){cout<<"13"<<endl;}
else if(ñ=='n' or ñ=='N'){cout<<"14"<<endl;}
else if(ñ=='o' or ñ=='O'){cout<<"15"<<endl;}
else if(ñ=='p' or ñ=='P'){cout<<"16"<<endl;}
else if(ñ=='q' or ñ=='Q'){cout<<"17"<<endl;}
else if(ñ=='r' or ñ=='R'){cout<<"18"<<endl;}
else if(ñ=='s' or ñ=='S'){cout<<"19"<<endl;}
else if(ñ=='t' or ñ=='T'){cout<<"20"<<endl;}
else if(ñ=='u' or ñ=='U'){cout<<"21"<<endl;}
else if(ñ=='v' or ñ=='V'){cout<<"22"<<endl;}
else if(ñ=='w' or ñ=='W'){cout<<"23"<<endl;}
else if(ñ=='x' or ñ=='X'){cout<<"24"<<endl;}
else if(ñ=='y' or ñ=='Y'){cout<<"25"<<endl;}
else if(ñ=='z' or ñ=='Z'){cout<<"26"<<endl;}



}

Gracias
Páginas: 1 2 [3] 4 5 6 7 8
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines