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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Temas
Páginas: 1 [2] 3 4
11  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 :)
12  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!
13  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 :)
14  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
15  Programación / Programación C/C++ / transponer matriz c++ en: 23 Febrero 2013, 13:12 pm
Hola,
necesitaría ayuda en como transponer una matriz, donde yo doy los elementos.
Creo que faltaría otra función para escribir los elementos de la matriz.

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

typedef vector<int>matriz;
vector<matriz>M(int m,matriz(int n));



void muestra(matriz M, int n, int m){
     for(int i=0;i<m;i++){cout<<"[";
          for(int j=0;j<n;j++){cout<<M[i][j]<<endl;
                 
                  }
                  cout<<"]"<<endl;
           }
     }
     
void transpon(matriz M){
     for(int i=0;i<matriz.size()-1;i++){
             for(int j=i+1;j<matriz.size();j++){
                     int aux=M[i][j];
                     M[i][j]=M[j][i];
                     M[j][i]=aux;
                     }
             }
     }
     
int main(){int M,m,n;
    cout<<"introduzca el numero de filas"<<endl;
    cin>>m;
    cout<<"introduzca el numero de columnas"<<endl;
    cin>>n;
   
    muestra(M,n,m);
    transpon(M);
   
    system("pause");
    return 0;}


¡Gracias por la ayuda! :)
16  Programación / Programación C/C++ / coordenada con diferencia máxima en: 26 Enero 2013, 18:10 pm
Hola,
Como harías el siguiente programa,
supongamos que tenemos dos vectores x, e y. Y queremos encontrar la observación con diferencia mayor.

Es decir, encontrar el valor (x,y) que hace máxima la diferencia.
Código:
(x-x[i], y-y[i])
, este valor es una coordenada que tiene la misma posición para x e y.

Código:
int valor(vector<int>&x, vector<int>&y, int N)

for(int i=0;i<N;i++){
for(int j=i-1;j>=0;j++){

if(x-x[i])>(x-x[j]){return i;}}}

17  Programación / Programación C/C++ / función que devuelva valores únicos en: 24 Enero 2013, 22:19 pm
Hola,

como harías una función que devuelva los números no repetidos,

v= 1 , 2 , 3 , 3 , 7 , 8 , 7 devuelva 1 , 2 , 3 , 7 , 8

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



vector <int> vector_unico (vector <int>& v){
int i=0;
int j=v.size()-1;
int s=0;
while(i<j){
           if(v[i++]!=v[j--]){s=s+v[i];}
           
           }return s;}

int main(){
    int n,i,e;
    cout<<" muestre el tamaño ";
    cin>>n;
    vector<int>v(n);
    for(i=0;i<n;i++){
                     cout<<" el elemento "<<i<<" ... ";
                     cin>>e;
                     v[i]=e;}
    cout<<vector_unico(v)<<endl;
   
system ("pause");
return 0;}

Lo que intento es recorrer todo el vector con dos contadores y que acumule los valores que están repetidos más de una vez.
18  Programación / Programación C/C++ / modificar a la función c++ en: 24 Enero 2013, 12:19 pm
El siguiente programa me muestra la posición que ocupa el primer valor del vector que es divisible por un entero dado, ¿qué debería modificar para que no me mostrara solamente la primera posición sino todas?

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


bool divisor(vector<int>v,int m){
 int i;
    bool encontrado=false;
    while(i<v.size() and not encontrado){
    if(v[i]%m==0){encontrado=true;}
    else{i++;}}
    return i;}
   
   
int main (){
   
    int n,i=0,e,m;
    cout<<endl<<"Entre el divisor...";
    cin>>m;
    cout << endl << "Entre el número de elementos del vector...";
    cin >> n;
    vector<int> v(n);
    for(i=0;i<n;i++){
                     cout << "Entre el elemento " << i << " del vector...";
                     cin >> e;
                     v[i] = e;}
    cout << endl;
   
    cout<<divisor(v,m)<<endl;
    cout<<endl;
    system("pause");
    return 0;}

¡¡Gracias!!
19  Programación / Programación C/C++ / comparar un elemento con un vector c++ en: 23 Enero 2013, 16:25 pm
Hola, hago un programa que consiste en comparar un vector con un número, (función booleana). No se que sucede pero me devuelve siempre el valor "true". Si el elemento está en el vector me devuelve "true" y si no está también.  :(

Código:
#include<iostream>
#include<vector>
using namespace std;
bool todosiguales(vector<int>v,int e){
                                    int i;
                                    for(i=0;i<v.size();i++){if(v[i]!=e){return false;}}
                                    return true;}

int main(){
    int n, m, e,i;
    cout<<"introduzca el tamaño del vector"<<endl;
    cin>>n;
    vector<int>v(n);
    for(i=0;i<v.size();i++){
                            cout<<"introduzca los elementos del vector"<<endl;
                            cin>>v[i];
                            v[i]=e;
                            }
    cout<<"introduzca el elemento a comparar"<<endl;
    cin>>m;
   
    if(todosiguales(v,m)){cout<<"es identico el vector respecto el elemento"<<endl;}
    else{cout<<"el vector es distinto respecto el elemento"<<endl;}
    system ("pause");
    return 0;
    }

¡Gracias por la ayuda!
20  Programación / Programación C/C++ / calcular moda c++ en: 22 Enero 2013, 17:52 pm
Hola,

podrías decirme que debo corregir en mi programa para que me calcule la moda de un vector dado,

La moda es el elemento que más veces se repite en el vector.

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

int main(){

int edad,personas,i,j,aux,suma_edad;
int moda,frecuencia,frecuencia_moda;
cout<<"introduzca el numero de personas"<<endl;
cin>>personas;

vector<int>v(personas);
for(i=0;i<v.size();i++){
                        cout<<"introduzca las edades"<<endl;
                        cin>>edad;
                        v[i]=edad;
                       
                        }
//moda

for(i=0;i<personas-1;i++)
for(j=0;j<personas-i;j++)

if(edad[j]>edad[j+1]){
                      aux=edad[j];
                      edad[j]=edad[j+1];
                      edad[j+1]=aux;}
frecuencia=0;
frecuencia_moda=0;
moda=-1;

for(i=0;i<personas-1;i++)
if(edad[i]==edad[i+1])
                       if(++frecuencia>frecuencia_moda){
                                                        frecuencia_moda=frecuencia;
                                                        moda=edad[i];}
                       else frecuencia=0;

system("PAUSE");
return 0;
}
                     


Gracias por la ayuda :)
Páginas: 1 [2] 3 4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines