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ú

Temas - Faceless

#1
Buenas, necesito ayuda con la siguiente parte que se pide para el programa, por que en verdad no se me ocurre como hacerlo:

Citarel programa llama a la función "calcular_matriz" la
cual debe calcular una matriz cuadrada cuyo numero de filas y de
columnas es igual a la longitud del vector. En la fila 'k' y columna
'n' de debe almacenar la suma de todos los números del vector que se
encuentran entre las posiciones 'k' y 'n' incluyendo a estas
últimas. Por ejemplo, si el vector es [1 2 3 4 5] con k=1 y n=3,
entonces en la fila 1 y conlumna 3 de la matriz se debe poner el
numero vector[1]+vector[2]+vector[3] = 2+3+4 = 9 y lo mismo vale si
k=3 y n=1. Es decir que la matriz resultante es simétrica.


El programa consiste en que se almacena un vector de máximo 10 digitos enteros. Se pueden almacenar menos numeros introduciendo un entero negativo al final del vector, el cual no va a ser almacenado.

El vector es impreso en pantalla

Luego la función que calcula la matriz debe crear una matriz de numero de filas y columnas iguales a la longitud del vector hecha a partir del vector de la manera en que mencioné arriba, y por último debe ser impresa, quedando por ejemplo:

CitarIngrese los numeros del vector: 7 6 5 4 3 2 1 -1

El vector es: 7 6 5 4 3 2 1

La matriz es:

    7   13   18   22   25   27   28
   13    6   11   15   18   20   21
   18   11    5    9   12   14   15
   22   15    9    4    7    9   10
   25   18   12    7    3    5    6
   27   20   14    9    5    2    3
   28   21   15   10    6    3    1


Aquí dejo lo que tengo hecho del programa, solo me falta la función calcular_matriz e imprimir_matriz, tengan en cuenta que soy nuevo en esto de la programación, aunque no se me exige mucho con este programa :

#include<iostream>

using namespace std;
const int MAX = 10;

void cargar_vector(int [],int& );
void imprimir_vector(int [],int );

void calcular_matriz(double [][],int [],int);

void imprimir_matriz(double [][],int )

int main
{

int vector[MAX];
int longitud;
double matriz[MAX][MAX];

        cargar_vector(vector,longitud);

    imprimir_vector(vector,longitud);
     
        calcular_matriz(matriz, vector, longitud);
   
        imprimir_matriz(matriz, longitud);


       
return 0;
}

void cargar_vector(int V[],int& L)
{
    int i;
    cout<<"Ingrese los numeros del vector:"<<endl;   
    for(i=0;i<MAX;i++)
    {
        cin>>V[i];
       
       
        if(V[i]<0)
        {
            V[i]=0;
            break;
        }
       
        else if(V[i]>=0)
        {
            L++;
           
        }
        if(L>10)
            {
                L=10;  // EL PROGRAMA PERMITE INGRESAR NUMEROS UNO AL LADO DEL
            }              // OTRO, SEPARADOS POR UNO O MAS ESPACIOS, ENTONCES , SI
                                       // SE INGRESA MAS DE 10 NUMEROS, EL PROGRAMA TOMA 10.

       
    }


return;
}


void imprimir_vector(int V[],int L)
{
    int j;
   
    cout<<"El vector es :  ";
    for(j=0;j<L;j++)
    {
        cout<<V[j]<<" ";
    }
    cout<<endl;
    return;
   
}

void calcular_matriz(double M[][],int V[],int L)
{

}

void imprimir_matriz(double M[][],int L)
{

}
     
#2
Muy buenas necesito ayuda para terminar con este programa, me quedé estancado en las ultimas 2 funciones que no se bien como hacerlas.

Como verán , el programa almacena valores ingresados por el usuario en forma de matriz y luego los imprime en pantalla.

Me quedan por hacer las siguientes funciones..

void sumas(int MATRIZ[N][M],int Suma[N]):

Esta función toma como argumentos una matriz tamaño NxM y un vector de longitud N. Se debe calcular la sumatoria de cada fila y almacenarlo en el vector Suma en la posición cuyo índice sea el mismo que la fila en cuestión.

int busca_mayor(int Suma[N],int &fila):

Esta función toma como argumentos un vector de tamaño N por referencia la variables fila. Se debe buscar el máximo valor del vector y devolverlo como valor de retorno, a su vez se debe almacenar en fila la posición del máximo valor.


#include <iostream>
#include <iomanip>
using namespace std;

const int N=3;
const int M=4;
int f,c;

void mostrar_matriz(int [N][M]);
void sumas(int [N][M],int [N]);
int busca_mayor(int [N],int &);


int main()
{

int MATRIZ[N][M];



for(f=0;f<N;f++)
{
  for(c=0;c<M;c++)
  {
     cout<<"Ingrese el elemento ("<<f<<" , "<<c<<") =";
     
     cin>>MATRIZ[f][c];
     
     while(MATRIZ[f][c]<0)
     {
      cout<<"Los valores deben ser positivos\n"<<endl;
      cout<<"Vuelva a ingresar el elemento ("<<f<<" , "<<c<<") =";
cin>>MATRIZ[f][c];
cout<<"\n\n";
 }
     
}
 
}

mostrar_matriz(MATRIZ);





system("pause");
return 0;

}



void mostrar_matriz(int MATRIZ[N][M])
{
cout<<"La matriz ingresada es: "<<endl;

for(f=0;f<N;f++)
{
cout<<endl;
for(c=0;c<M;c++)
{
cout<<setw(4)<<MATRIZ[f][c];
}

}
cout<<"\n\n";



}


void sumas(int MATRIZ[N][M],int Suma[N])
{


}

int busca_mayor(int Suma[N],int &fila)
{

}

#3
Programación C/C++ / Ayuda con vectores c++
16 Noviembre 2015, 00:30 AM
Muy buenas, necesito saber como consigo hacer lo siguiente:

-Que pida al usuario ingresar un vector de números enteros positivos.

-Los números del vector se deben ingresar separados por uno o mas espacios.

-El final del vector estar indicado por un numero negativo. El vector se debe cargar dentro de la función
"cargar_vector".


-El tamaño máximo del vector esta indicado por la constante entera MAX=10. Si el usuario ingresa un vector mas grande de lo soportado,el programa deberá utilizar los primeros 10 números.

- Posteriormente, el programa debe imprimir por pantalla los elementos
del vector mediante la función "imprimir_vector".


Lo que necesito ayuda es en lo siguiente:

-Que una variable almacene el vector ingresado, el cual no debe tener mas de 10 numeros, y excluir el numero negativo que se ingresó al final para terminar de ingresarlo en el caso de que se ingresen menos de 10 numeros

y que la otra función imprimir_vector almacene la variable de la función cargar_vector



Ejemplo de funcionamiento:

Ingrese los números del vector: 7 6 5 4 3 2 1 -1

El vector es: 7 6 5 4 3 2 1


#include <iostream>
#include<iomanip>
using namespace std;

void cargar_vector(int [],int);
void imprimir_vector(int [],int);

const int MAX=10;

int main()
{

int vector[MAX];

int longitud;



  cargar_vector(vector, longitud);

imprimir_vector(vector, longitud);




return 0;
}

void cargar_vector(int vector[],int longitud)
{
longitud=0;
    cout<<"Ingrese los numeros del vector: ";


while(longitud<MAX)
{
cin>>vector[longitud];

if(vector[longitud]<0)
{

break;
}

longitud++;

}



}
#4
Muy buenas, quisiera que me ayuden a entender lo siguiente

-Como llega la variable "a" a valer 47 ?

-Como actúa el If y porque al suprimirlo se altera el resultado de la suma que está en el final?

#include <iostream>
using namespace std;



int main()
{

int a=5;
int b=8;





while(a<4*b)
{
if((a+b)%2==0)


for(int d=a;d<3*b;d+=a+3)
a=a+d;
a=a+3;



}


cout<<a+b;

return 0;


}
#5
Muy buenas, Debo hacer un programa que cumpla lo siguiente:

que solicite en forma continua que se introduzca una calificación. Si la calificación es menor que 0 o mayor que 100, el programa debe imprimir un mensaje informando al usuario que se ha introducido una calificación inválida y solicitar el ingreso de una calificación nueva.

Cuando se introduzca una calificación de 999 el programa deberá salir del ciclo de repetición y calcular y desplegar:

1). la cantidad de calificaciones válidas introducidas,
2). el promedio de las calificaciones válidas introducidas
3) .el valor de la mayor calificación válida introducida.

Hasta ahora tengo hecho lo siguiente pero no se si está bien, y además me falta completarlo

#include <iostream>

using namespace std;



int main()
{

cout<<"Ingrese las calificaciones: "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;


int c;
const int i=0;

while(i==0)
{

cin>>c;

if(c<0 || c>100)
{
cout<<"Por favor,ingrese un numero desde 0 hasta 100"<<endl;

}
}


return 0;
}